From f44a1b6c1c6ab9d30c07dc98633eff7ee0aa357e Mon Sep 17 00:00:00 2001 From: Nimisha Asthagiri <nasthagiri@edx.org> Date: Fri, 28 Mar 2014 14:04:24 -0400 Subject: [PATCH] Tiny MCE version 4.0.20 Changed tiny-MCE to not load CSS files dynamically. Added CSS files for tiny-MCE in env files. Moved TinyMCE files to directory structure required by Jake command. Changed clients of "tinymce.min.js" to use "tinymce.full.min.js" instead. Updated CHANGELOG to indicate tinymce version 4.0.20. Renamed tinymce.css. Directions for creating tinymce.full.min.js and commenting of edX changes. Updated comments related to disabling dynamic JS and CSS file loading in tinymce. Allow TinyMCE to handle CSS within the iframe. --- CHANGELOG.rst | 8 +- cms/envs/common.py | 15 +- cms/static/coffee/spec/main.coffee | 4 +- cms/static/coffee/spec/main_squire.coffee | 4 +- cms/templates/base.html | 6 +- common/lib/xmodule/xmodule/js/js_test.yml | 4 +- .../xmodule/xmodule/js/src/html/edit.coffee | 17 +- ...iny-mce.css => tinymce-studio-content.css} | 0 .../js/vendor/tiny_mce/jquery.tinymce.min.js | 1 - .../tiny_mce/plugins/advlist/plugin.min.js | 1 - .../tiny_mce/plugins/anchor/plugin.min.js | 1 - .../tiny_mce/plugins/autolink/plugin.min.js | 1 - .../tiny_mce/plugins/autoresize/plugin.min.js | 1 - .../tiny_mce/plugins/autosave/plugin.min.js | 1 - .../tiny_mce/plugins/bbcode/plugin.min.js | 1 - .../tiny_mce/plugins/charmap/plugin.min.js | 1 - .../tiny_mce/plugins/code/plugin.min.js | 1 - .../plugins/contextmenu/plugin.min.js | 1 - .../plugins/directionality/plugin.min.js | 1 - .../plugins/emoticons/img/smiley-cool.gif | Bin 354 -> 0 bytes .../plugins/emoticons/img/smiley-cry.gif | Bin 329 -> 0 bytes .../emoticons/img/smiley-embarassed.gif | Bin 331 -> 0 bytes .../emoticons/img/smiley-foot-in-mouth.gif | Bin 342 -> 0 bytes .../plugins/emoticons/img/smiley-frown.gif | Bin 340 -> 0 bytes .../plugins/emoticons/img/smiley-innocent.gif | Bin 336 -> 0 bytes .../plugins/emoticons/img/smiley-kiss.gif | Bin 338 -> 0 bytes .../plugins/emoticons/img/smiley-laughing.gif | Bin 343 -> 0 bytes .../emoticons/img/smiley-money-mouth.gif | Bin 321 -> 0 bytes .../plugins/emoticons/img/smiley-sealed.gif | Bin 323 -> 0 bytes .../plugins/emoticons/img/smiley-smile.gif | Bin 344 -> 0 bytes .../emoticons/img/smiley-surprised.gif | Bin 338 -> 0 bytes .../emoticons/img/smiley-tongue-out.gif | Bin 328 -> 0 bytes .../emoticons/img/smiley-undecided.gif | Bin 337 -> 0 bytes .../plugins/emoticons/img/smiley-wink.gif | Bin 350 -> 0 bytes .../plugins/emoticons/img/smiley-yell.gif | Bin 336 -> 0 bytes .../tiny_mce/plugins/emoticons/plugin.min.js | 1 - .../tiny_mce/plugins/example/plugin.min.js | 1 - .../plugins/example_dependency/plugin.min.js | 1 - .../tiny_mce/plugins/fullpage/plugin.min.js | 1 - .../tiny_mce/plugins/fullscreen/plugin.min.js | 1 - .../vendor/tiny_mce/plugins/hr/plugin.min.js | 1 - .../tiny_mce/plugins/importcss/plugin.min.js | 1 - .../plugins/insertdatetime/plugin.min.js | 1 - .../tiny_mce/plugins/layer/plugin.min.js | 1 - .../plugins/legacyoutput/plugin.min.js | 1 - .../tiny_mce/plugins/lists/plugin.min.js | 1 - .../tiny_mce/plugins/media/moxieplayer.swf | Bin 20017 -> 0 bytes .../tiny_mce/plugins/media/plugin.min.js | 1 - .../plugins/nonbreaking/plugin.min.js | 1 - .../plugins/noneditable/plugin.min.js | 1 - .../tiny_mce/plugins/pagebreak/plugin.min.js | 1 - .../tiny_mce/plugins/paste/plugin.min.js | 1 - .../tiny_mce/plugins/preview/plugin.min.js | 1 - .../tiny_mce/plugins/print/plugin.min.js | 1 - .../tiny_mce/plugins/save/plugin.min.js | 1 - .../plugins/searchreplace/plugin.min.js | 1 - .../plugins/spellchecker/plugin.min.js | 1 - .../tiny_mce/plugins/tabfocus/plugin.min.js | 1 - .../tiny_mce/plugins/table/plugin.min.js | 1 - .../tiny_mce/plugins/template/plugin.min.js | 1 - .../tiny_mce/plugins/textcolor/plugin.min.js | 1 - .../plugins/visualblocks/css/visualblocks.css | 128 - .../plugins/visualblocks/plugin.min.js | 1 - .../plugins/visualchars/plugin.min.js | 1 - .../tiny_mce/plugins/wordcount/plugin.min.js | 1 - .../skins/lightgray/content.inline.min.css | 1 - .../tiny_mce/skins/lightgray/content.min.css | 1 - .../skins/lightgray/fonts/tinymce-small.eot | Bin 8348 -> 0 bytes .../skins/lightgray/fonts/tinymce-small.svg | 175 - .../skins/lightgray/fonts/tinymce-small.ttf | Bin 8164 -> 0 bytes .../skins/lightgray/fonts/tinymce-small.woff | Bin 8340 -> 0 bytes .../skins/lightgray/fonts/tinymce.eot | Bin 8276 -> 0 bytes .../skins/lightgray/fonts/tinymce.svg | 153 - .../skins/lightgray/fonts/tinymce.ttf | Bin 8112 -> 0 bytes .../skins/lightgray/fonts/tinymce.woff | Bin 8408 -> 0 bytes .../tiny_mce/skins/lightgray/skin.ie7.min.css | 1 - .../tiny_mce/skins/lightgray/skin.min.css | 1 - .../skins/studio-tmce4/fonts/readme.md | 1 - .../skins/studio-tmce4/img/anchor.gif | Bin 53 -> 0 bytes .../skins/studio-tmce4/img/loader.gif | Bin 2608 -> 0 bytes .../skins/studio-tmce4/img/object.gif | Bin 152 -> 0 bytes .../tiny_mce/skins/studio-tmce4/img/trans.gif | Bin 43 -> 0 bytes .../tiny_mce/themes/modern/theme.min.js | 1 - .../js/vendor/tiny_mce/tiny_mce_popup.js | 7 - .../static/js/vendor/tiny_mce/tinymce.min.js | 6340 --- .../static/js/vendor/tinymce/BUILD_README.txt | 16 + .../js/tinymce/classes/AddOnManager.js | 256 + .../tinymce/js/tinymce/classes/Compat.js | 84 + .../tinymce/js/tinymce/classes/Editor.js | 2168 + .../js/tinymce/classes/EditorCommands.js | 721 + .../js/tinymce/classes/EditorManager.js | 574 + .../tinymce/js/tinymce/classes/EnterKey.js | 670 + .../vendor/tinymce/js/tinymce/classes/Env.js | 135 + .../js/tinymce/classes/FocusManager.js | 230 + .../tinymce/js/tinymce/classes/ForceBlocks.js | 132 + .../tinymce/js/tinymce/classes/Formatter.js | 2426 ++ .../tinymce/js/tinymce/classes/LegacyInput.js | 73 + .../tinymce/js/tinymce/classes/Shortcuts.js | 111 + .../tinymce/js/tinymce/classes/UndoManager.js | 337 + .../js/tinymce/classes/WindowManager.js | 221 + .../tinymce/classes/dom/ControlSelection.js | 519 + .../js/tinymce/classes/dom/DOMUtils.js | 2078 + .../js/tinymce/classes/dom/DomQuery.js | 730 + .../js/tinymce/classes/dom/EventUtils.js | 557 + .../tinymce/js/tinymce/classes/dom/Range.js | 777 + .../js/tinymce/classes/dom/RangeUtils.js | 476 + .../js/tinymce/classes/dom/ScriptLoader.js | 255 + .../js/tinymce/classes/dom/Selection.js | 1259 + .../js/tinymce/classes/dom/Serializer.js | 387 + .../js/tinymce/classes/dom/Sizzle.jQuery.js | 23 + .../tinymce/js/tinymce/classes/dom/Sizzle.js | 1928 + .../tinymce/classes/dom/StyleSheetLoader.js | 185 + .../js/tinymce/classes/dom/TreeWalker.js | 79 + .../tinymce/classes/dom/TridentSelection.js | 502 + .../js/tinymce/classes/html/DomParser.js | 756 + .../js/tinymce/classes/html/Entities.js | 263 + .../tinymce/js/tinymce/classes/html/Node.js | 496 + .../js/tinymce/classes/html/SaxParser.js | 423 + .../tinymce/js/tinymce/classes/html/Schema.js | 938 + .../js/tinymce/classes/html/Serializer.js | 156 + .../tinymce/js/tinymce/classes/html/Styles.js | 324 + .../tinymce/js/tinymce/classes/html/Writer.js | 199 + .../js/tinymce/classes/jquery.tinymce.js | 364 + .../js/tinymce/classes/ui/AbsoluteLayout.js | 63 + .../tinymce/js/tinymce/classes/ui/Button.js | 141 + .../js/tinymce/classes/ui/ButtonGroup.js | 62 + .../tinymce/js/tinymce/classes/ui/Checkbox.js | 119 + .../js/tinymce/classes/ui/Collection.js | 430 + .../js/tinymce/classes/ui/ColorButton.js | 107 + .../tinymce/js/tinymce/classes/ui/ComboBox.js | 332 + .../js/tinymce/classes/ui/Container.js | 495 + .../tinymce/js/tinymce/classes/ui/Control.js | 1559 + .../tinymce/js/tinymce/classes/ui/DomUtils.js | 95 + .../js/tinymce/classes/ui/DragHelper.js | 136 + .../js/tinymce/classes/ui/ElementPath.js | 83 + .../tinymce/js/tinymce/classes/ui/Factory.js | 105 + .../tinymce/js/tinymce/classes/ui/FieldSet.js | 59 + .../js/tinymce/classes/ui/FilePicker.js | 53 + .../js/tinymce/classes/ui/FitLayout.js | 48 + .../js/tinymce/classes/ui/FlexLayout.js | 246 + .../js/tinymce/classes/ui/FloatPanel.js | 366 + .../js/tinymce/classes/ui/FlowLayout.js | 42 + .../tinymce/js/tinymce/classes/ui/Form.js | 154 + .../tinymce/js/tinymce/classes/ui/FormItem.js | 56 + .../js/tinymce/classes/ui/FormatControls.js | 652 + .../js/tinymce/classes/ui/GridLayout.js | 226 + .../tinymce/js/tinymce/classes/ui/Iframe.js | 83 + .../tinymce/classes/ui/KeyboardNavigation.js | 390 + .../tinymce/js/tinymce/classes/ui/Label.js | 125 + .../tinymce/js/tinymce/classes/ui/Layout.js | 114 + .../tinymce/js/tinymce/classes/ui/ListBox.js | 125 + .../tinymce/js/tinymce/classes/ui/Menu.js | 140 + .../tinymce/js/tinymce/classes/ui/MenuBar.js | 33 + .../js/tinymce/classes/ui/MenuButton.js | 244 + .../tinymce/js/tinymce/classes/ui/MenuItem.js | 292 + .../js/tinymce/classes/ui/MessageBox.js | 205 + .../tinymce/js/tinymce/classes/ui/Movable.js | 200 + .../tinymce/js/tinymce/classes/ui/Panel.js | 67 + .../js/tinymce/classes/ui/PanelButton.js | 105 + .../tinymce/js/tinymce/classes/ui/Path.js | 140 + .../tinymce/js/tinymce/classes/ui/Radio.js | 29 + .../js/tinymce/classes/ui/Resizable.js | 68 + .../js/tinymce/classes/ui/ResizeHandle.js | 86 + .../js/tinymce/classes/ui/Scrollable.js | 149 + .../tinymce/js/tinymce/classes/ui/Selector.js | 369 + .../tinymce/js/tinymce/classes/ui/Spacer.js | 39 + .../js/tinymce/classes/ui/SplitButton.js | 119 + .../js/tinymce/classes/ui/StackLayout.js | 30 + .../tinymce/js/tinymce/classes/ui/TabPanel.js | 180 + .../tinymce/js/tinymce/classes/ui/TextBox.js | 214 + .../tinymce/js/tinymce/classes/ui/Throbber.js | 70 + .../tinymce/js/tinymce/classes/ui/Toolbar.js | 54 + .../tinymce/js/tinymce/classes/ui/Tooltip.js | 86 + .../tinymce/js/tinymce/classes/ui/Widget.js | 156 + .../tinymce/js/tinymce/classes/ui/Window.js | 373 + .../tinymce/js/tinymce/classes/util/Class.js | 163 + .../tinymce/js/tinymce/classes/util/I18n.js | 80 + .../tinymce/js/tinymce/classes/util/JSON.js | 109 + .../tinymce/js/tinymce/classes/util/JSONP.js | 38 + .../js/tinymce/classes/util/JSONRequest.js | 110 + .../js/tinymce/classes/util/LocalStorage.js | 213 + .../js/tinymce/classes/util/Observable.js | 250 + .../tinymce/js/tinymce/classes/util/Quirks.js | 1139 + .../tinymce/js/tinymce/classes/util/Tools.js | 503 + .../tinymce/js/tinymce/classes/util/URI.js | 366 + .../tinymce/js/tinymce/classes/util/VK.js | 37 + .../tinymce/js/tinymce/classes/util/XHR.js | 84 + .../tinymce/js/tinymce/jquery.tinymce.min.js | 1 + .../js/tinymce}/langs/readme.md | 0 .../js/tinymce}/license.txt | 0 .../tinymce}/plugins/codemirror/LICENSE.txt | 0 .../js/tinymce}/plugins/codemirror/README.txt | 0 .../tinymce}/plugins/codemirror/langs/en.js | 0 .../tinymce}/plugins/codemirror/langs/nl.js | 0 .../js/tinymce}/plugins/codemirror/plugin.js | 0 .../tinymce}/plugins/codemirror/source.html | 0 .../js/tinymce}/plugins/image/plugin.min.js | 0 .../js/tinymce}/plugins/link/plugin.min.js | 0 .../plugins/paste/classes/Clipboard.js | 489 + .../tinymce/plugins/paste/classes/Plugin.js | 110 + .../tinymce/plugins/paste/classes/Quirks.js | 123 + .../js/tinymce/plugins/paste/classes/Utils.js | 98 + .../plugins/paste/classes/WordFilter.js | 287 + .../js/tinymce/plugins/paste/plugin.dev.js | 120 + .../js/tinymce/plugins/paste/plugin.js | 1206 + .../js/tinymce/plugins/paste/plugin.min.js | 1 + .../spellchecker/classes/DomTextMatcher.js | 470 + .../plugins/spellchecker/classes/Plugin.js | 343 + .../plugins/spellchecker/plugin.dev.js | 117 + .../js/tinymce/plugins/spellchecker/plugin.js | 903 + .../plugins/spellchecker/plugin.min.js | 1 + .../plugins/table/classes/CellSelection.js | 167 + .../tinymce/plugins/table/classes/Plugin.js | 794 + .../tinymce/plugins/table/classes/Quirks.js | 370 + .../plugins/table/classes/TableGrid.js | 833 + .../js/tinymce/plugins/table/plugin.dev.js | 119 + .../js/tinymce/plugins/table/plugin.js | 2260 + .../js/tinymce/plugins/table/plugin.min.js | 1 + .../js/tinymce/plugins/textcolor/plugin.js | 164 + .../tinymce/plugins/textcolor/plugin.min.js | 1 + .../skins/studio-tmce4/content.inline.min.css | 0 .../skins/studio-tmce4/content.min.css | 0 .../studio-tmce4/fonts/icomoon-small.eot | Bin .../studio-tmce4/fonts/icomoon-small.svg | 0 .../studio-tmce4/fonts/icomoon-small.ttf | Bin .../studio-tmce4/fonts/icomoon-small.woff | Bin .../skins/studio-tmce4/fonts/icomoon.eot | Bin .../skins/studio-tmce4/fonts/icomoon.svg | 0 .../skins/studio-tmce4/fonts/icomoon.ttf | Bin .../skins/studio-tmce4/fonts/icomoon.woff | Bin .../skins/studio-tmce4}/fonts/readme.md | 0 .../skins/studio-tmce4}/img/anchor.gif | Bin .../skins/studio-tmce4}/img/loader.gif | Bin .../skins/studio-tmce4}/img/object.gif | Bin .../tinymce/skins/studio-tmce4}/img/trans.gif | Bin .../tinymce}/skins/studio-tmce4/img/wline.gif | Bin .../skins/studio-tmce4/skin.ie7.min.css | 0 .../js/tinymce}/skins/studio-tmce4/skin.json | 0 .../tinymce}/skins/studio-tmce4/skin.min.css | 0 .../tinymce/js/tinymce/themes/modern/theme.js | 599 + .../js/tinymce/themes/modern/theme.min.js | 1 + .../vendor/tinymce/js/tinymce/tinymce.dev.js | 214 + .../tinymce/js/tinymce/tinymce.full.min.js | 17 + .../tinymce/js/tinymce/tinymce.jquery.dev.js | 213 + .../tinymce/js/tinymce/tinymce.jquery.js | 32176 ++++++++++++++ .../tinymce/js/tinymce/tinymce.jquery.min.js | 10 + .../js/vendor/tinymce/js/tinymce/tinymce.js | 34814 ++++++++++++++++ .../vendor/tinymce/js/tinymce/tinymce.min.js | 10 + lms/envs/common.py | 14 +- .../courseware/instructor_dashboard.html | 6 +- .../instructor_dashboard_2.html | 6 +- vendor_extra/tinymce/JakePackage.zip | Bin 0 -> 6409572 bytes 252 files changed, 111928 insertions(+), 6870 deletions(-) rename common/static/css/{tiny-mce.css => tinymce-studio-content.css} (100%) delete mode 100644 common/static/js/vendor/tiny_mce/jquery.tinymce.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/advlist/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/anchor/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/autolink/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/autoresize/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/autosave/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/bbcode/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/charmap/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/code/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/contextmenu/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/directionality/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-cool.gif delete mode 100644 common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-cry.gif delete mode 100644 common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-embarassed.gif delete mode 100644 common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-foot-in-mouth.gif delete mode 100644 common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-frown.gif delete mode 100644 common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-innocent.gif delete mode 100644 common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-kiss.gif delete mode 100644 common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-laughing.gif delete mode 100644 common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-money-mouth.gif delete mode 100644 common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-sealed.gif delete mode 100644 common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-smile.gif delete mode 100644 common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-surprised.gif delete mode 100644 common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-tongue-out.gif delete mode 100644 common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-undecided.gif delete mode 100644 common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-wink.gif delete mode 100644 common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-yell.gif delete mode 100644 common/static/js/vendor/tiny_mce/plugins/emoticons/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/example/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/example_dependency/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/fullpage/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/fullscreen/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/hr/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/importcss/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/insertdatetime/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/layer/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/legacyoutput/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/lists/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/media/moxieplayer.swf delete mode 100644 common/static/js/vendor/tiny_mce/plugins/media/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/nonbreaking/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/noneditable/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/pagebreak/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/paste/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/preview/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/print/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/save/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/searchreplace/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/spellchecker/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/tabfocus/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/table/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/template/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/textcolor/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/visualblocks/css/visualblocks.css delete mode 100644 common/static/js/vendor/tiny_mce/plugins/visualblocks/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/visualchars/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/plugins/wordcount/plugin.min.js delete mode 100644 common/static/js/vendor/tiny_mce/skins/lightgray/content.inline.min.css delete mode 100644 common/static/js/vendor/tiny_mce/skins/lightgray/content.min.css delete mode 100644 common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce-small.eot delete mode 100644 common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce-small.svg delete mode 100644 common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce-small.ttf delete mode 100644 common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce-small.woff delete mode 100644 common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce.eot delete mode 100644 common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce.svg delete mode 100644 common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce.ttf delete mode 100644 common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce.woff delete mode 100644 common/static/js/vendor/tiny_mce/skins/lightgray/skin.ie7.min.css delete mode 100644 common/static/js/vendor/tiny_mce/skins/lightgray/skin.min.css delete mode 100755 common/static/js/vendor/tiny_mce/skins/studio-tmce4/fonts/readme.md delete mode 100755 common/static/js/vendor/tiny_mce/skins/studio-tmce4/img/anchor.gif delete mode 100755 common/static/js/vendor/tiny_mce/skins/studio-tmce4/img/loader.gif delete mode 100755 common/static/js/vendor/tiny_mce/skins/studio-tmce4/img/object.gif delete mode 100755 common/static/js/vendor/tiny_mce/skins/studio-tmce4/img/trans.gif delete mode 100644 common/static/js/vendor/tiny_mce/themes/modern/theme.min.js delete mode 100644 common/static/js/vendor/tiny_mce/tiny_mce_popup.js delete mode 100644 common/static/js/vendor/tiny_mce/tinymce.min.js create mode 100644 common/static/js/vendor/tinymce/BUILD_README.txt create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/AddOnManager.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/Compat.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/Editor.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/EditorCommands.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/EditorManager.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/EnterKey.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/Env.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/FocusManager.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ForceBlocks.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/Formatter.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/LegacyInput.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/Shortcuts.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/UndoManager.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/WindowManager.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/dom/ControlSelection.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/dom/DOMUtils.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/dom/DomQuery.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/dom/EventUtils.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/dom/Range.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/dom/RangeUtils.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/dom/ScriptLoader.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/dom/Selection.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/dom/Serializer.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/dom/Sizzle.jQuery.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/dom/Sizzle.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/dom/StyleSheetLoader.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/dom/TreeWalker.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/dom/TridentSelection.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/html/DomParser.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/html/Entities.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/html/Node.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/html/SaxParser.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/html/Schema.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/html/Serializer.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/html/Styles.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/html/Writer.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/jquery.tinymce.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/AbsoluteLayout.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/Button.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/ButtonGroup.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/Checkbox.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/Collection.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/ColorButton.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/ComboBox.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/Container.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/Control.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/DomUtils.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/DragHelper.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/ElementPath.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/Factory.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/FieldSet.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/FilePicker.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/FitLayout.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/FlexLayout.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/FloatPanel.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/FlowLayout.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/Form.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/FormItem.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/FormatControls.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/GridLayout.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/Iframe.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/KeyboardNavigation.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/Label.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/Layout.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/ListBox.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/Menu.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/MenuBar.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/MenuButton.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/MenuItem.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/MessageBox.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/Movable.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/Panel.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/PanelButton.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/Path.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/Radio.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/Resizable.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/ResizeHandle.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/Scrollable.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/Selector.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/Spacer.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/SplitButton.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/StackLayout.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/TabPanel.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/TextBox.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/Throbber.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/Toolbar.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/Tooltip.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/Widget.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/ui/Window.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/util/Class.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/util/I18n.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/util/JSON.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/util/JSONP.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/util/JSONRequest.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/util/LocalStorage.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/util/Observable.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/util/Quirks.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/util/Tools.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/util/URI.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/util/VK.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/classes/util/XHR.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/jquery.tinymce.min.js rename common/static/js/vendor/{tiny_mce => tinymce/js/tinymce}/langs/readme.md (100%) mode change 100644 => 100755 rename common/static/js/vendor/{tiny_mce => tinymce/js/tinymce}/license.txt (100%) mode change 100644 => 100755 rename common/static/js/vendor/{tiny_mce => tinymce/js/tinymce}/plugins/codemirror/LICENSE.txt (100%) rename common/static/js/vendor/{tiny_mce => tinymce/js/tinymce}/plugins/codemirror/README.txt (100%) rename common/static/js/vendor/{tiny_mce => tinymce/js/tinymce}/plugins/codemirror/langs/en.js (100%) rename common/static/js/vendor/{tiny_mce => tinymce/js/tinymce}/plugins/codemirror/langs/nl.js (100%) rename common/static/js/vendor/{tiny_mce => tinymce/js/tinymce}/plugins/codemirror/plugin.js (100%) rename common/static/js/vendor/{tiny_mce => tinymce/js/tinymce}/plugins/codemirror/source.html (100%) rename common/static/js/vendor/{tiny_mce => tinymce/js/tinymce}/plugins/image/plugin.min.js (100%) rename common/static/js/vendor/{tiny_mce => tinymce/js/tinymce}/plugins/link/plugin.min.js (100%) create mode 100755 common/static/js/vendor/tinymce/js/tinymce/plugins/paste/classes/Clipboard.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/plugins/paste/classes/Plugin.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/plugins/paste/classes/Quirks.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/plugins/paste/classes/Utils.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/plugins/paste/classes/WordFilter.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/plugins/paste/plugin.dev.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/plugins/paste/plugin.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/plugins/paste/plugin.min.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/plugins/spellchecker/classes/DomTextMatcher.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/plugins/spellchecker/classes/Plugin.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/plugins/spellchecker/plugin.dev.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/plugins/spellchecker/plugin.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/plugins/spellchecker/plugin.min.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/plugins/table/classes/CellSelection.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/plugins/table/classes/Plugin.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/plugins/table/classes/Quirks.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/plugins/table/classes/TableGrid.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/plugins/table/plugin.dev.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/plugins/table/plugin.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/plugins/table/plugin.min.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/plugins/textcolor/plugin.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/plugins/textcolor/plugin.min.js rename common/static/js/vendor/{tiny_mce => tinymce/js/tinymce}/skins/studio-tmce4/content.inline.min.css (100%) rename common/static/js/vendor/{tiny_mce => tinymce/js/tinymce}/skins/studio-tmce4/content.min.css (100%) rename common/static/js/vendor/{tiny_mce => tinymce/js/tinymce}/skins/studio-tmce4/fonts/icomoon-small.eot (100%) rename common/static/js/vendor/{tiny_mce => tinymce/js/tinymce}/skins/studio-tmce4/fonts/icomoon-small.svg (100%) rename common/static/js/vendor/{tiny_mce => tinymce/js/tinymce}/skins/studio-tmce4/fonts/icomoon-small.ttf (100%) rename common/static/js/vendor/{tiny_mce => tinymce/js/tinymce}/skins/studio-tmce4/fonts/icomoon-small.woff (100%) rename common/static/js/vendor/{tiny_mce => tinymce/js/tinymce}/skins/studio-tmce4/fonts/icomoon.eot (100%) rename common/static/js/vendor/{tiny_mce => tinymce/js/tinymce}/skins/studio-tmce4/fonts/icomoon.svg (100%) rename common/static/js/vendor/{tiny_mce => tinymce/js/tinymce}/skins/studio-tmce4/fonts/icomoon.ttf (100%) rename common/static/js/vendor/{tiny_mce => tinymce/js/tinymce}/skins/studio-tmce4/fonts/icomoon.woff (100%) rename common/static/js/vendor/{tiny_mce/skins/lightgray => tinymce/js/tinymce/skins/studio-tmce4}/fonts/readme.md (100%) mode change 100644 => 100755 rename common/static/js/vendor/{tiny_mce/skins/lightgray => tinymce/js/tinymce/skins/studio-tmce4}/img/anchor.gif (100%) mode change 100644 => 100755 rename common/static/js/vendor/{tiny_mce/skins/lightgray => tinymce/js/tinymce/skins/studio-tmce4}/img/loader.gif (100%) mode change 100644 => 100755 rename common/static/js/vendor/{tiny_mce/skins/lightgray => tinymce/js/tinymce/skins/studio-tmce4}/img/object.gif (100%) mode change 100644 => 100755 rename common/static/js/vendor/{tiny_mce/skins/lightgray => tinymce/js/tinymce/skins/studio-tmce4}/img/trans.gif (100%) mode change 100644 => 100755 rename common/static/js/vendor/{tiny_mce => tinymce/js/tinymce}/skins/studio-tmce4/img/wline.gif (100%) rename common/static/js/vendor/{tiny_mce => tinymce/js/tinymce}/skins/studio-tmce4/skin.ie7.min.css (100%) rename common/static/js/vendor/{tiny_mce => tinymce/js/tinymce}/skins/studio-tmce4/skin.json (100%) rename common/static/js/vendor/{tiny_mce => tinymce/js/tinymce}/skins/studio-tmce4/skin.min.css (100%) create mode 100755 common/static/js/vendor/tinymce/js/tinymce/themes/modern/theme.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/themes/modern/theme.min.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/tinymce.dev.js create mode 100644 common/static/js/vendor/tinymce/js/tinymce/tinymce.full.min.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/tinymce.jquery.dev.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/tinymce.jquery.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/tinymce.jquery.min.js create mode 100755 common/static/js/vendor/tinymce/js/tinymce/tinymce.js create mode 100644 common/static/js/vendor/tinymce/js/tinymce/tinymce.min.js create mode 100644 vendor_extra/tinymce/JakePackage.zip diff --git a/CHANGELOG.rst b/CHANGELOG.rst index ad83dbbf307..94fd2fba0f2 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -7,6 +7,10 @@ the top. Include a label indicating the component affected. Blades: Create an upload modal for video transcript translations (BLD-751). +Studio and LMS: Upgrade version of TinyMCE to 4.0.20. Switch from tabbed Visual/HTML +Editor for HTML modules to showing the code editor as a plugin within TinyMCE (triggered +from toolbar). STUD-1422 + Studio: Add ability to reorder Pages and hide the Wiki page. STUD-1375 Blades: Added template for iFrames. BLD-611. @@ -16,10 +20,6 @@ Studio: Support for viewing built-in tabs on the Pages page. STUD-1193 Blades: Fixed bug when image mapped input's Show Answer multiplies rectangles on many inputtypes. BLD-810. -Studio and LMS: Upgrade version of TinyMCE to 4.0.16. Switch from tabbed Visual/HTML -Editor for HTML modules to showing the code editor as a plugin within TinyMCE (triggered -from toolbar). STUD-1422 - LMS: Enabled screen reader feedback of problem responses. LMS-2158 diff --git a/cms/envs/common.py b/cms/envs/common.py index 434f534a275..a8b2fc12760 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -310,10 +310,23 @@ PIPELINE_CSS = { 'css/vendor/ui-lightness/jquery-ui-1.8.22.custom.css', 'css/vendor/jquery.qtip.min.css', 'js/vendor/markitup/skins/simple/style.css', - 'js/vendor/markitup/sets/wiki/style.css', + 'js/vendor/markitup/sets/wiki/style.css' ], 'output_filename': 'css/cms-style-vendor.css', }, + 'style-vendor-tinymce-content': { + 'source_filenames': [ + 'js/vendor/tinymce/js/tinymce/skins/studio-tmce4/content.min.css', + 'css/tinymce-studio-content.css' + ], + 'output_filename': 'css/cms-style-vendor-tinymce-content.css', + }, + 'style-vendor-tinymce-skin': { + 'source_filenames': [ + 'js/vendor/tinymce/js/tinymce/skins/studio-tmce4/skin.min.css' + ], + 'output_filename': 'css/cms-style-vendor-tinymce-skin.css', + }, 'style-app': { 'source_filenames': [ 'sass/style-app.css', diff --git a/cms/static/coffee/spec/main.coffee b/cms/static/coffee/spec/main.coffee index 1cbc3fc805b..4980e86c65f 100644 --- a/cms/static/coffee/spec/main.coffee +++ b/cms/static/coffee/spec/main.coffee @@ -25,8 +25,8 @@ requirejs.config({ "backbone": "xmodule_js/common_static/js/vendor/backbone-min", "backbone.associations": "xmodule_js/common_static/js/vendor/backbone-associations-min", "backbone.paginator": "xmodule_js/common_static/js/vendor/backbone.paginator.min", - "tinymce": "xmodule_js/common_static/js/vendor/tiny_mce/tiny_mce", - "jquery.tinymce": "xmodule_js/common_static/js/vendor/tiny_mce/jquery.tinymce", + "tinymce": "xmodule_js/common_static/js/vendor/tinymce/js/tinymce/tinymce.full.min", + "jquery.tinymce": "xmodule_js/common_static/js/vendor/tinymce/js/tinymce/jquery.tinymce", "xmodule": "xmodule_js/src/xmodule", "xblock/cms.runtime.v1": "coffee/src/xblock/cms.runtime.v1", "xblock": "xmodule_js/common_static/coffee/src/xblock", diff --git a/cms/static/coffee/spec/main_squire.coffee b/cms/static/coffee/spec/main_squire.coffee index c3ce440bcae..e7e6bef00b4 100644 --- a/cms/static/coffee/spec/main_squire.coffee +++ b/cms/static/coffee/spec/main_squire.coffee @@ -24,8 +24,8 @@ requirejs.config({ "backbone": "xmodule_js/common_static/js/vendor/backbone-min", "backbone.associations": "xmodule_js/common_static/js/vendor/backbone-associations-min", "backbone.paginator": "xmodule_js/common_static/js/vendor/backbone.paginator.min", - "tinymce": "xmodule_js/common_static/js/vendor/tiny_mce/tiny_mce", - "jquery.tinymce": "xmodule_js/common_static/js/vendor/tiny_mce/jquery.tinymce", + "tinymce": "xmodule_js/common_static/js/vendor/tinymce/js/tinymce/tinymce.full.min", + "jquery.tinymce": "xmodule_js/common_static/js/vendor/tinymce/js/tinymce/jquery.tinymce", "xmodule": "xmodule_js/src/xmodule", "xblock/cms.runtime.v1": "coffee/src/xblock/cms.runtime.v1", "xblock": "xmodule_js/common_static/coffee/src/xblock", diff --git a/cms/templates/base.html b/cms/templates/base.html index 579a26f504e..93a3ec4ff7f 100644 --- a/cms/templates/base.html +++ b/cms/templates/base.html @@ -23,6 +23,8 @@ <meta name="path_prefix" content="${EDX_ROOT_URL}"> <%static:css group='style-vendor'/> + <%static:css group='style-vendor-tinymce-content'/> + <%static:css group='style-vendor-tinymce-skin'/> <%static:css group='style-app'/> <%static:css group='style-app-extend1'/> <%static:css group='style-xmodule'/> @@ -70,8 +72,8 @@ "backbone": "js/vendor/backbone-min", "backbone.associations": "js/vendor/backbone-associations-min", "backbone.paginator": "js/vendor/backbone.paginator.min", - "tinymce": "js/vendor/tiny_mce/tinymce.min", - "jquery.tinymce": "js/vendor/tiny_mce/jquery.tinymce.min", + "tinymce": "js/vendor/tinymce/js/tinymce/tinymce.full.min", + "jquery.tinymce": "js/vendor/tinymce/js/tinymce/jquery.tinymce.min", "xmodule": "/xmodule/xmodule", "xblock": "coffee/src/xblock", "utility": "js/src/utility", diff --git a/common/lib/xmodule/xmodule/js/js_test.yml b/common/lib/xmodule/xmodule/js/js_test.yml index 8b251a48428..95d4df3e3f4 100644 --- a/common/lib/xmodule/xmodule/js/js_test.yml +++ b/common/lib/xmodule/xmodule/js/js_test.yml @@ -49,8 +49,8 @@ lib_paths: - common_static/js/vendor/backbone-min.js - common_static/js/vendor/jquery.leanModal.min.js - common_static/js/vendor/CodeMirror/codemirror.js - - common_static/js/vendor/tiny_mce/jquery.tinymce.min.js - - common_static/js/vendor/tiny_mce/tinymce.min.js + - common_static/js/vendor/tinymce/js/tinymce/jquery.tinymce.min.js + - common_static/js/vendor/tinymce/js/tinymce/tinymce.full.min.js - common_static/js/vendor/mathjax-MathJax-c9db6ac/MathJax.js - common_static/js/vendor/jquery.timeago.js - common_static/js/vendor/sinon-1.7.1.js diff --git a/common/lib/xmodule/xmodule/js/src/html/edit.coffee b/common/lib/xmodule/xmodule/js/src/html/edit.coffee index f0ca39f8528..97e713dad53 100644 --- a/common/lib/xmodule/xmodule/js/src/html/edit.coffee +++ b/common/lib/xmodule/xmodule/js/src/html/edit.coffee @@ -6,21 +6,30 @@ class @HTMLEditingDescriptor if @base_asset_url == undefined @base_asset_url = null + # Create an array of all content CSS links to use in and pass to Tiny MCE. + # We create this dynamically in order to support hashed files from our Django pipeline. + # CSS files that are to be used by Tiny MCE should contain the string "tinymce" so + # they can be found by the search below. + # We filter for only those files that are "content" files (as opposed to "skin" files). + tiny_mce_css_links = [] + $("link[rel=stylesheet][href*='tinymce']").filter("[href*='content']").each -> + tiny_mce_css_links.push $(this).attr("href") + return + # This is a workaround for the fact that tinyMCE's baseURL property is not getting correctly set on AWS # instances (like sandbox). It is not necessary to explicitly set baseURL when running locally. - tinyMCE.baseURL = "#{baseUrl}/js/vendor/tiny_mce" + tinyMCE.baseURL = "#{baseUrl}/js/vendor/tinymce/js/tinymce" # This is necessary for the LMS bulk e-mail acceptance test. In that particular scenario, # tinyMCE incorrectly decides that the suffix should be "", which means it fails to load files. tinyMCE.suffix = ".min" @tiny_mce_textarea = $(".tiny-mce", @element).tinymce({ - script_url : "#{baseUrl}/js/vendor/tiny_mce/tinymce.min.js", + script_url : "#{baseUrl}/js/vendor/tinymce/js/tinymce/tinymce.full.min.js", theme : "modern", skin: 'studio-tmce4', schema: "html5", # Necessary to preserve relative URLs to our images. convert_urls : false, - # TODO: we should share this CSS with studio (and LMS) - content_css : "#{baseUrl}/css/tiny-mce.css", + content_css : tiny_mce_css_links.join(", "), formats : { # tinyMCE does block level for code by default code: {inline: 'code'} diff --git a/common/static/css/tiny-mce.css b/common/static/css/tinymce-studio-content.css similarity index 100% rename from common/static/css/tiny-mce.css rename to common/static/css/tinymce-studio-content.css diff --git a/common/static/js/vendor/tiny_mce/jquery.tinymce.min.js b/common/static/js/vendor/tiny_mce/jquery.tinymce.min.js deleted file mode 100644 index 9221fa9a4fc..00000000000 --- a/common/static/js/vendor/tiny_mce/jquery.tinymce.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){function t(){function t(e){"remove"===e&&this.each(function(e,t){var n=r(t);n&&n.remove()}),this.find("span.mceEditor,div.mceEditor").each(function(e,t){var n=tinymce.get(t.id.replace(/_parent$/,""));n&&n.remove()})}function i(e){var n,i=this;if(null!=e)t.call(i),i.each(function(t,n){var i;(i=tinymce.get(n.id))&&i.setContent(e)});else if(i.length>0&&(n=tinymce.get(i[0].id)))return n.getContent()}function r(e){var t=null;return e&&e.id&&a.tinymce&&(t=tinymce.get(e.id)),t}function c(e){return!!(e&&e.length&&a.tinymce&&e.is(":tinymce"))}var u={};e.each(["text","html","val"],function(t,a){var o=u[a]=e.fn[a],s="text"===a;e.fn[a]=function(t){var a=this;if(!c(a))return o.apply(a,arguments);if(t!==n)return i.call(a.filter(":tinymce"),t),o.apply(a.not(":tinymce"),arguments),a;var u="",l=arguments;return(s?a:a.eq(0)).each(function(t,n){var i=r(n);u+=i?s?i.getContent().replace(/<(?:"[^"]*"|'[^']*'|[^'">])*>/g,""):i.getContent({save:!0}):o.apply(e(n),l)}),u}}),e.each(["append","prepend"],function(t,i){var a=u[i]=e.fn[i],o="prepend"===i;e.fn[i]=function(e){var t=this;return c(t)?e!==n?(t.filter(":tinymce").each(function(t,n){var i=r(n);i&&i.setContent(o?e+i.getContent():i.getContent()+e)}),a.apply(t.not(":tinymce"),arguments),t):void 0:a.apply(t,arguments)}}),e.each(["remove","replaceWith","replaceAll","empty"],function(n,i){var r=u[i]=e.fn[i];e.fn[i]=function(){return t.call(this,i),r.apply(this,arguments)}}),u.attr=e.fn.attr,e.fn.attr=function(t,a){var o=this,s=arguments;if(!t||"value"!==t||!c(o))return a!==n?u.attr.apply(o,s):u.attr.apply(o,s);if(a!==n)return i.call(o.filter(":tinymce"),a),u.attr.apply(o.not(":tinymce"),s),o;var l=o[0],m=r(l);return m?m.getContent({save:!0}):u.attr.apply(e(l),s)}}var n,i,r=[],a=window;e.fn.tinymce=function(n){function c(){var i=[],r=0;t&&(t(),t=null),l.each(function(e,t){var a,c=t.id,u=n.oninit;c||(t.id=c=tinymce.DOM.uniqueId()),tinymce.get(c)||(a=new tinymce.Editor(c,n,tinymce.EditorManager),i.push(a),a.on("init",function(){var e,t=u;l.css("visibility",""),u&&++r==i.length&&("string"==typeof t&&(e=-1===t.indexOf(".")?null:tinymce.resolve(t.replace(/\.\w+$/,"")),t=tinymce.resolve(t)),t.apply(e||tinymce,i))}))}),e.each(i,function(e,t){t.render()})}var u,o,s,l=this,m="";if(!l.length)return l;if(!n)return tinymce.get(l[0].id);if(l.css("visibility","hidden"),a.tinymce||i||!(u=n.script_url))1===i?r.push(c):c();else{i=1,o=u.substring(0,u.lastIndexOf("/")),-1!=u.indexOf(".min")&&(m=".min"),a.tinymce=a.tinyMCEPreInit||{base:o,suffix:m},-1!=u.indexOf("gzip")&&(s=n.language||"en",u=u+(/\?/.test(u)?"&":"?")+"js=true&core=true&suffix="+escape(m)+"&themes="+escape(n.theme||"modern")+"&plugins="+escape(n.plugins||"")+"&languages="+(s||""),a.tinyMCE_GZ||(a.tinyMCE_GZ={start:function(){function t(e){tinymce.ScriptLoader.markDone(tinymce.baseURI.toAbsolute(e))}t("langs/"+s+".js"),t("themes/"+n.theme+"/theme"+m+".js"),t("themes/"+n.theme+"/langs/"+s+".js"),e.each(n.plugins.split(","),function(e,n){n&&(t("plugins/"+n+"/plugin"+m+".js"),t("plugins/"+n+"/langs/"+s+".js"))})},end:function(){}}));var p=document.createElement("script");p.type="text/javascript",p.onload=p.onreadystatechange=function(t){t=t||event,2===i||"load"!=t.type&&!/complete|loaded/.test(p.readyState)||(tinymce.dom.Event.domLoaded=1,i=2,n.script_loaded&&n.script_loaded(),c(),e.each(r,function(e,t){t()}))},p.src=u,document.body.appendChild(p)}return l},e.extend(e.expr[":"],{tinymce:function(e){return!!(e.id&&"tinymce"in window&&tinymce.get(e.id))}})}(jQuery); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/advlist/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/advlist/plugin.min.js deleted file mode 100644 index da1cdb2ba4a..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/advlist/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("advlist",function(t){function e(t,e){var n=[];return tinymce.each(e.split(/[ ,]/),function(t){n.push({text:t.replace(/\-/g," ").replace(/\b\w/g,function(t){return t.toUpperCase()}),data:"default"==t?"":t})}),n}function n(e,n){var i,r=t.dom,a=t.selection;i=r.getParent(a.getNode(),"ol,ul"),i&&i.nodeName==e&&n!==!1||t.execCommand("UL"==e?"InsertUnorderedList":"InsertOrderedList"),n=n===!1?o[e]:n,o[e]=n,i=r.getParent(a.getNode(),"ol,ul"),i&&(r.setStyle(i,"listStyleType",n),i.removeAttribute("data-mce-style")),t.focus()}function i(e){var n=t.dom.getStyle(t.dom.getParent(t.selection.getNode(),"ol,ul"),"listStyleType")||"";e.control.items().each(function(t){t.active(t.settings.data===n)})}var r,a,o={};r=e("OL",t.getParam("advlist_number_styles","default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman")),a=e("UL",t.getParam("advlist_bullet_styles","default,circle,disc,square")),t.addButton("numlist",{type:"splitbutton",tooltip:"Numbered list",menu:r,onshow:i,onselect:function(t){n("OL",t.control.settings.data)},onclick:function(){n("OL",!1)}}),t.addButton("bullist",{type:"splitbutton",tooltip:"Bullet list",menu:a,onshow:i,onselect:function(t){n("UL",t.control.settings.data)},onclick:function(){n("UL",!1)}})}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/anchor/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/anchor/plugin.min.js deleted file mode 100644 index 6a3fd792d8d..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/anchor/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("anchor",function(e){function t(){var t=e.selection.getNode();e.windowManager.open({title:"Anchor",body:{type:"textbox",name:"name",size:40,label:"Name",value:t.name||t.id},onsubmit:function(t){e.execCommand("mceInsertContent",!1,e.dom.createHTML("a",{id:t.data.name}))}})}e.addButton("anchor",{icon:"anchor",tooltip:"Anchor",onclick:t,stateSelector:"a:not([href])"}),e.addMenuItem("anchor",{icon:"anchor",text:"Anchor",context:"insert",onclick:t})}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/autolink/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/autolink/plugin.min.js deleted file mode 100644 index 332cababb54..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/autolink/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("autolink",function(t){function e(t){o(t,-1,"(",!0)}function n(t){o(t,0,"",!0)}function i(t){o(t,-1,"",!1)}function o(t,e,n){var i,o,r,s,d,a,f,l,c;if(i=t.selection.getRng(!0).cloneRange(),i.startOffset<5){if(l=i.endContainer.previousSibling,!l){if(!i.endContainer.firstChild||!i.endContainer.firstChild.nextSibling)return;l=i.endContainer.firstChild.nextSibling}if(c=l.length,i.setStart(l,c),i.setEnd(l,c),i.endOffset<5)return;o=i.endOffset,s=l}else{if(s=i.endContainer,3!=s.nodeType&&s.firstChild){for(;3!=s.nodeType&&s.firstChild;)s=s.firstChild;3==s.nodeType&&(i.setStart(s,0),i.setEnd(s,s.nodeValue.length))}o=1==i.endOffset?2:i.endOffset-1-e}r=o;do i.setStart(s,o>=2?o-2:0),i.setEnd(s,o>=1?o-1:0),o-=1;while(" "!=i.toString()&&""!==i.toString()&&160!=i.toString().charCodeAt(0)&&o-2>=0&&i.toString()!=n);if(i.toString()==n||160==i.toString().charCodeAt(0)?(i.setStart(s,o),i.setEnd(s,r),o+=1):0===i.startOffset?(i.setStart(s,0),i.setEnd(s,r)):(i.setStart(s,o),i.setEnd(s,r)),a=i.toString(),"."==a.charAt(a.length-1)&&i.setEnd(s,r-1),a=i.toString(),f=a.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|(?:mailto:)?[A-Z0-9._%+\-]+@)(.+)$/i),f&&("www."==f[1]?f[1]="http://www.":/@$/.test(f[1])&&!/^mailto:/.test(f[1])&&(f[1]="mailto:"+f[1]),d=t.selection.getBookmark(),t.selection.setRng(i),t.execCommand("createlink",!1,f[1]+f[2]),t.selection.moveToBookmark(d),t.nodeChanged(),tinymce.Env.webkit)){t.selection.collapse(!1);var g=Math.min(s.length,r+1);i.setStart(s,g),i.setEnd(s,g),t.selection.setRng(i)}}return t.on("keydown",function(e){return 13==e.keyCode?i(t):void 0}),tinymce.Env.ie?void t.on("init",function(){try{t.execCommand("AutoUrlDetect",!1,!0)}catch(e){}}):(t.on("keypress",function(n){return 41==n.which?e(t):void 0}),void t.on("keyup",function(e){return 32==e.keyCode?n(t):void 0}))}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/autoresize/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/autoresize/plugin.min.js deleted file mode 100644 index 4713ec26fd2..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/autoresize/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("autoresize",function(e){function t(i){var a,s,g,r,m=e.getDoc(),u=m.body,l=m.documentElement,h=tinymce.DOM,_=n.autoresize_min_height;!u||!i||"setcontent"===i.type&&i.initial||e.plugins.fullscreen&&e.plugins.fullscreen.isFullscreen()||(g=e.dom.getStyle(u,"margin-top",!0),r=e.dom.getStyle(u,"margin-bottom",!0),s=u.offsetHeight+parseInt(g,10)+parseInt(r,10),(isNaN(s)||0>=s)&&(s=tinymce.Env.ie?u.scrollHeight:tinymce.Env.webkit&&0===u.clientHeight?0:u.offsetHeight),s>n.autoresize_min_height&&(_=s),n.autoresize_max_height&&s>n.autoresize_max_height?(_=n.autoresize_max_height,u.style.overflowY="auto",l.style.overflowY="auto"):(u.style.overflowY="hidden",l.style.overflowY="hidden",u.scrollTop=0),_!==o&&(a=_-o,h.setStyle(h.get(e.id+"_ifr"),"height",_+"px"),o=_,tinymce.isWebKit&&0>a&&t(i)))}function i(e,n,o){setTimeout(function(){t({}),e--?i(e,n,o):o&&o()},n)}var n=e.settings,o=0;e.settings.inline||(n.autoresize_min_height=parseInt(e.getParam("autoresize_min_height",e.getElement().offsetHeight),10),n.autoresize_max_height=parseInt(e.getParam("autoresize_max_height",0),10),e.on("init",function(){var t=e.getParam("autoresize_overflow_padding",1);e.dom.setStyles(e.getBody(),{paddingBottom:e.getParam("autoresize_bottom_margin",50),paddingLeft:t,paddingRight:t})}),e.on("change setcontent paste keyup",t),e.getParam("autoresize_on_init",!0)&&e.on("init",function(){i(20,100,function(){i(5,1e3)})}),e.addCommand("mceAutoResize",t))}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/autosave/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/autosave/plugin.min.js deleted file mode 100644 index bb419751021..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/autosave/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("autosave",function(e){function t(e,t){var n={s:1e3,m:6e4};return e=/^(\d+)([ms]?)$/.exec(""+(e||t)),(e[2]?n[e[2]]:1)*parseInt(e,10)}function n(){var e=parseInt(l.getItem(d+"time"),10)||0;return(new Date).getTime()-e>v.autosave_retention?(a(!1),!1):!0}function a(t){l.removeItem(d+"draft"),l.removeItem(d+"time"),t!==!1&&e.fire("RemoveDraft")}function r(){!c()&&e.isDirty()&&(l.setItem(d+"draft",e.getContent({format:"raw",no_events:!0})),l.setItem(d+"time",(new Date).getTime()),e.fire("StoreDraft"))}function o(){n()&&(e.setContent(l.getItem(d+"draft"),{format:"raw"}),e.fire("RestoreDraft"))}function i(){m||(setInterval(function(){e.removed||r()},v.autosave_interval),m=!0)}function s(){var t=this;t.disabled(!n()),e.on("StoreDraft RestoreDraft RemoveDraft",function(){t.disabled(!n())}),i()}function u(){e.undoManager.beforeChange(),o(),a(),e.undoManager.add()}function f(){var e;return tinymce.each(tinymce.editors,function(t){t.plugins.autosave&&t.plugins.autosave.storeDraft(),!e&&t.isDirty()&&t.getParam("autosave_ask_before_unload",!0)&&(e=t.translate("You have unsaved changes are you sure you want to navigate away?"))}),e}function c(t){var n=e.settings.forced_root_block;return t=tinymce.trim("undefined"==typeof t?e.getBody().innerHTML:t),""===t||new RegExp("^<"+n+"[^>]*>(( | |[ ]|<br[^>]*>)+?|)</"+n+">|<br>$","i").test(t)}var d,m,v=e.settings,l=tinymce.util.LocalStorage;d=v.autosave_prefix||"tinymce-autosave-{path}{query}-{id}-",d=d.replace(/\{path\}/g,document.location.pathname),d=d.replace(/\{query\}/g,document.location.search),d=d.replace(/\{id\}/g,e.id),v.autosave_interval=t(v.autosave_interval,"30s"),v.autosave_retention=t(v.autosave_retention,"20m"),e.addButton("restoredraft",{title:"Restore last draft",onclick:u,onPostRender:s}),e.addMenuItem("restoredraft",{text:"Restore last draft",onclick:u,onPostRender:s,context:"file"}),e.settings.autosave_restore_when_empty!==!1&&(e.on("init",function(){n()&&c()&&o()}),e.on("saveContent",function(){a()})),window.onbeforeunload=f,this.hasDraft=n,this.storeDraft=r,this.restoreDraft=o,this.removeDraft=a,this.isEmpty=c}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/bbcode/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/bbcode/plugin.min.js deleted file mode 100644 index 70a88a7d698..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/bbcode/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(){tinymce.create("tinymce.plugins.BBCodePlugin",{init:function(e){var t=this,n=e.getParam("bbcode_dialect","punbb").toLowerCase();e.on("beforeSetContent",function(e){e.content=t["_"+n+"_bbcode2html"](e.content)}),e.on("postProcess",function(e){e.set&&(e.content=t["_"+n+"_bbcode2html"](e.content)),e.get&&(e.content=t["_"+n+"_html2bbcode"](e.content))})},getInfo:function(){return{longname:"BBCode Plugin",author:"Moxiecode Systems AB",authorurl:"http://www.tinymce.com",infourl:"http://www.tinymce.com/wiki.php/Plugin:bbcode"}},_punbb_html2bbcode:function(e){function t(t,n){e=e.replace(t,n)}return e=tinymce.trim(e),t(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]"),t(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),t(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),t(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),t(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),t(/<span style=\"color: ?(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]"),t(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]"),t(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]"),t(/<font>(.*?)<\/font>/gi,"$1"),t(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]"),t(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]"),t(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]"),t(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]"),t(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]"),t(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]"),t(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]"),t(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]"),t(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]"),t(/<\/(strong|b)>/gi,"[/b]"),t(/<(strong|b)>/gi,"[b]"),t(/<\/(em|i)>/gi,"[/i]"),t(/<(em|i)>/gi,"[i]"),t(/<\/u>/gi,"[/u]"),t(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]"),t(/<u>/gi,"[u]"),t(/<blockquote[^>]*>/gi,"[quote]"),t(/<\/blockquote>/gi,"[/quote]"),t(/<br \/>/gi,"\n"),t(/<br\/>/gi,"\n"),t(/<br>/gi,"\n"),t(/<p>/gi,""),t(/<\/p>/gi,"\n"),t(/ |\u00a0/gi," "),t(/"/gi,'"'),t(/</gi,"<"),t(/>/gi,">"),t(/&/gi,"&"),e},_punbb_bbcode2html:function(e){function t(t,n){e=e.replace(t,n)}return e=tinymce.trim(e),t(/\n/gi,"<br />"),t(/\[b\]/gi,"<strong>"),t(/\[\/b\]/gi,"</strong>"),t(/\[i\]/gi,"<em>"),t(/\[\/i\]/gi,"</em>"),t(/\[u\]/gi,"<u>"),t(/\[\/u\]/gi,"</u>"),t(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,'<a href="$1">$2</a>'),t(/\[url\](.*?)\[\/url\]/gi,'<a href="$1">$1</a>'),t(/\[img\](.*?)\[\/img\]/gi,'<img src="$1" />'),t(/\[color=(.*?)\](.*?)\[\/color\]/gi,'<font color="$1">$2</font>'),t(/\[code\](.*?)\[\/code\]/gi,'<span class="codeStyle">$1</span> '),t(/\[quote.*?\](.*?)\[\/quote\]/gi,'<span class="quoteStyle">$1</span> '),e}}),tinymce.PluginManager.add("bbcode",tinymce.plugins.BBCodePlugin)}(); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/charmap/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/charmap/plugin.min.js deleted file mode 100644 index dff18e6e555..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/charmap/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("charmap",function(e){function t(){function t(e){for(;e;){if("TD"==e.nodeName)return e;e=e.parentNode}}var i,a,r,o;i='<table role="presentation" cellspacing="0" class="mce-charmap"><tbody>';var s=25;for(r=0;10>r;r++){for(i+="<tr>",a=0;s>a;a++){var l=n[r*s+a],c="g"+(r*s+a);i+='<td title="'+l[1]+'"><div id="'+c+'" tabIndex="-1">'+(l?String.fromCharCode(parseInt(l[0],10)):" ")+"</div></td>"}i+="</tr>"}i+="</tbody></table>";var u={type:"container",html:i,onclick:function(t){var n=t.target;"DIV"==n.nodeName&&e.execCommand("mceInsertContent",!1,n.firstChild.nodeValue)},onmouseover:function(e){var n=t(e.target);n&&o.find("#preview").text(n.firstChild.firstChild.data)}};o=e.windowManager.open({title:"Special character",spacing:10,padding:10,items:[u,{type:"label",name:"preview",text:" ",style:"font-size: 40px; text-align: center",border:1,minWidth:100,minHeight:80}],buttons:[{text:"Close",onclick:function(){o.close()}}]})}var n=[["160","no-break space"],["38","ampersand"],["34","quotation mark"],["162","cent sign"],["8364","euro sign"],["163","pound sign"],["165","yen sign"],["169","copyright sign"],["174","registered sign"],["8482","trade mark sign"],["8240","per mille sign"],["181","micro sign"],["183","middle dot"],["8226","bullet"],["8230","three dot leader"],["8242","minutes / feet"],["8243","seconds / inches"],["167","section sign"],["182","paragraph sign"],["223","sharp s / ess-zed"],["8249","single left-pointing angle quotation mark"],["8250","single right-pointing angle quotation mark"],["171","left pointing guillemet"],["187","right pointing guillemet"],["8216","left single quotation mark"],["8217","right single quotation mark"],["8220","left double quotation mark"],["8221","right double quotation mark"],["8218","single low-9 quotation mark"],["8222","double low-9 quotation mark"],["60","less-than sign"],["62","greater-than sign"],["8804","less-than or equal to"],["8805","greater-than or equal to"],["8211","en dash"],["8212","em dash"],["175","macron"],["8254","overline"],["164","currency sign"],["166","broken bar"],["168","diaeresis"],["161","inverted exclamation mark"],["191","turned question mark"],["710","circumflex accent"],["732","small tilde"],["176","degree sign"],["8722","minus sign"],["177","plus-minus sign"],["247","division sign"],["8260","fraction slash"],["215","multiplication sign"],["185","superscript one"],["178","superscript two"],["179","superscript three"],["188","fraction one quarter"],["189","fraction one half"],["190","fraction three quarters"],["402","function / florin"],["8747","integral"],["8721","n-ary sumation"],["8734","infinity"],["8730","square root"],["8764","similar to"],["8773","approximately equal to"],["8776","almost equal to"],["8800","not equal to"],["8801","identical to"],["8712","element of"],["8713","not an element of"],["8715","contains as member"],["8719","n-ary product"],["8743","logical and"],["8744","logical or"],["172","not sign"],["8745","intersection"],["8746","union"],["8706","partial differential"],["8704","for all"],["8707","there exists"],["8709","diameter"],["8711","backward difference"],["8727","asterisk operator"],["8733","proportional to"],["8736","angle"],["180","acute accent"],["184","cedilla"],["170","feminine ordinal indicator"],["186","masculine ordinal indicator"],["8224","dagger"],["8225","double dagger"],["192","A - grave"],["193","A - acute"],["194","A - circumflex"],["195","A - tilde"],["196","A - diaeresis"],["197","A - ring above"],["198","ligature AE"],["199","C - cedilla"],["200","E - grave"],["201","E - acute"],["202","E - circumflex"],["203","E - diaeresis"],["204","I - grave"],["205","I - acute"],["206","I - circumflex"],["207","I - diaeresis"],["208","ETH"],["209","N - tilde"],["210","O - grave"],["211","O - acute"],["212","O - circumflex"],["213","O - tilde"],["214","O - diaeresis"],["216","O - slash"],["338","ligature OE"],["352","S - caron"],["217","U - grave"],["218","U - acute"],["219","U - circumflex"],["220","U - diaeresis"],["221","Y - acute"],["376","Y - diaeresis"],["222","THORN"],["224","a - grave"],["225","a - acute"],["226","a - circumflex"],["227","a - tilde"],["228","a - diaeresis"],["229","a - ring above"],["230","ligature ae"],["231","c - cedilla"],["232","e - grave"],["233","e - acute"],["234","e - circumflex"],["235","e - diaeresis"],["236","i - grave"],["237","i - acute"],["238","i - circumflex"],["239","i - diaeresis"],["240","eth"],["241","n - tilde"],["242","o - grave"],["243","o - acute"],["244","o - circumflex"],["245","o - tilde"],["246","o - diaeresis"],["248","o slash"],["339","ligature oe"],["353","s - caron"],["249","u - grave"],["250","u - acute"],["251","u - circumflex"],["252","u - diaeresis"],["253","y - acute"],["254","thorn"],["255","y - diaeresis"],["913","Alpha"],["914","Beta"],["915","Gamma"],["916","Delta"],["917","Epsilon"],["918","Zeta"],["919","Eta"],["920","Theta"],["921","Iota"],["922","Kappa"],["923","Lambda"],["924","Mu"],["925","Nu"],["926","Xi"],["927","Omicron"],["928","Pi"],["929","Rho"],["931","Sigma"],["932","Tau"],["933","Upsilon"],["934","Phi"],["935","Chi"],["936","Psi"],["937","Omega"],["945","alpha"],["946","beta"],["947","gamma"],["948","delta"],["949","epsilon"],["950","zeta"],["951","eta"],["952","theta"],["953","iota"],["954","kappa"],["955","lambda"],["956","mu"],["957","nu"],["958","xi"],["959","omicron"],["960","pi"],["961","rho"],["962","final sigma"],["963","sigma"],["964","tau"],["965","upsilon"],["966","phi"],["967","chi"],["968","psi"],["969","omega"],["8501","alef symbol"],["982","pi symbol"],["8476","real part symbol"],["978","upsilon - hook symbol"],["8472","Weierstrass p"],["8465","imaginary part"],["8592","leftwards arrow"],["8593","upwards arrow"],["8594","rightwards arrow"],["8595","downwards arrow"],["8596","left right arrow"],["8629","carriage return"],["8656","leftwards double arrow"],["8657","upwards double arrow"],["8658","rightwards double arrow"],["8659","downwards double arrow"],["8660","left right double arrow"],["8756","therefore"],["8834","subset of"],["8835","superset of"],["8836","not a subset of"],["8838","subset of or equal to"],["8839","superset of or equal to"],["8853","circled plus"],["8855","circled times"],["8869","perpendicular"],["8901","dot operator"],["8968","left ceiling"],["8969","right ceiling"],["8970","left floor"],["8971","right floor"],["9001","left-pointing angle bracket"],["9002","right-pointing angle bracket"],["9674","lozenge"],["9824","black spade suit"],["9827","black club suit"],["9829","black heart suit"],["9830","black diamond suit"],["8194","en space"],["8195","em space"],["8201","thin space"],["8204","zero width non-joiner"],["8205","zero width joiner"],["8206","left-to-right mark"],["8207","right-to-left mark"],["173","soft hyphen"]];e.addButton("charmap",{icon:"charmap",tooltip:"Special character",onclick:t}),e.addMenuItem("charmap",{icon:"charmap",text:"Special character",onclick:t,context:"insert"})}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/code/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/code/plugin.min.js deleted file mode 100644 index 9e7e89895ed..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/code/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("code",function(e){function o(){e.windowManager.open({title:"Source code",body:{type:"textbox",name:"code",multiline:!0,minWidth:e.getParam("code_dialog_width",600),minHeight:e.getParam("code_dialog_height",Math.min(tinymce.DOM.getViewPort().h-200,500)),value:e.getContent({source_view:!0}),spellcheck:!1,style:"direction: ltr; text-align: left"},onSubmit:function(o){e.focus(),e.undoManager.transact(function(){e.setContent(o.data.code)}),e.selection.setCursorLocation(),e.nodeChanged()}})}e.addCommand("mceCodeEditor",o),e.addButton("code",{icon:"code",tooltip:"Source code",onclick:o}),e.addMenuItem("code",{icon:"code",text:"Source code",context:"tools",onclick:o})}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/contextmenu/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/contextmenu/plugin.min.js deleted file mode 100644 index f4c664a0654..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/contextmenu/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("contextmenu",function(e){var n,t=e.settings.contextmenu_never_use_native;e.on("contextmenu",function(o){var i;if(!o.ctrlKey||t){if(o.preventDefault(),i=e.settings.contextmenu||"link image inserttable | cell row column deletetable",n)n.show();else{var c=[];tinymce.each(i.split(/[ ,]/),function(n){var t=e.menuItems[n];"|"==n&&(t={text:n}),t&&(t.shortcut="",c.push(t))});for(var a=0;a<c.length;a++)"|"==c[a].text&&(0===a||a==c.length-1)&&c.splice(a,1);n=new tinymce.ui.Menu({items:c,context:"contextmenu"}),n.addClass("contextmenu"),n.renderTo(document.body),e.on("remove",function(){n.remove(),n=null})}var l={x:o.pageX,y:o.pageY};e.inline||(l=tinymce.DOM.getPos(e.getContentAreaContainer()),l.x+=o.clientX,l.y+=o.clientY),n.moveTo(l.x,l.y)}})}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/directionality/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/directionality/plugin.min.js deleted file mode 100644 index 60c7f9d5373..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/directionality/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("directionality",function(e){function t(t){var n,i=e.dom,a=e.selection.getSelectedBlocks();a.length&&(n=i.getAttrib(a[0],"dir"),tinymce.each(a,function(e){i.getParent(e.parentNode,"*[dir='"+t+"']",i.getRoot())||(n!=t?i.setAttrib(e,"dir",t):i.setAttrib(e,"dir",null))}),e.nodeChanged())}function n(e){var t=[];return tinymce.each("h1 h2 h3 h4 h5 h6 div p".split(" "),function(n){t.push(n+"[dir="+e+"]")}),t.join(",")}e.addCommand("mceDirectionLTR",function(){t("ltr")}),e.addCommand("mceDirectionRTL",function(){t("rtl")}),e.addButton("ltr",{title:"Left to right",cmd:"mceDirectionLTR",stateSelector:n("ltr")}),e.addButton("rtl",{title:"Right to left",cmd:"mceDirectionRTL",stateSelector:n("rtl")})}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-cool.gif b/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-cool.gif deleted file mode 100644 index ba90cc36fb0415d0273d1cd206bff63fd9c91fde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 354 zcmV-o0iFIwNk%w1VG;lm0Mr!#3ke00dJfFY%i+lrhK7V(RutUQJhPY;?(XfrsZKgL z7WLQ^zPO&zzav{)SL^9nBOw~z(=orMEH5uC-P_gr`uhCnASMa|$-iRw?m_(dUwU8) zq>Kx}s1_F$4FCWDA^8LW0018VEC2ui01^Na000Hw;3tYzX_jM3Qpv$_M?zI9i5=0S zX-{-uv=l<p*=3HIT}Of#RazKBq;Z@YZV4Iz0#Fnb06?MO>3%&P0s%m9Ox_a(m_c|u z01g3U0`Wll5)poVdma=N8y<3f0Sf~hXmTC}2oxMW4FdxUj+z4<0}lrX2nP=qkDRIt z9Ge*(qzMrj3jrIOjvI{`5eWzt3`G_T8yChG8w(a19SkK12@M(+799Zr9n=~PzBCmA z5)BU-)YKUd4H5!D9|!^o9kWIe9SH(WDHRk92}DZ?3})2$P@$55g90f0N)ZA8JID5J Aw*UYD diff --git a/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-cry.gif b/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-cry.gif deleted file mode 100644 index 74d897a4f6d22e814e2b054e98b8a75fb464b4be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 329 zcmV-P0k-}}Nk%w1VG;lm0Mr-&E)xPSit@9T3%;vR+|V+?t0A(pllJjXrMl7n=_A_a za^B+Su$LjvyC3@TIQZNZa##w=!k(SO^P#bO*w(eU#;{U83XFCU_V)J5wrb+;g2vkN z#>U24qVoOvY5)KLA^8LW0018VEC2ui01^Na000HX;3tY$X_jM3QUfCh%s^o(nF++< zc?Th6v=oL>*by8K!mhvwelUXuuW&&U9iGO3hM@>Njw{l^#0q9mWpcefdI;O$;efnY zkd~@r-o$*74FCWI1%d((4+jDz0va0>69^fI6%`W{8w!gU1pyL>prH>E0R<%k6Aq%H z4ij+^9TEwM5P}eh2@)L<B?|!!2MHGf4Gk9;2?q@U3tR{Vzzzx13409%2tlM00|hxd bJp}{XBh3p2-Gt%><~6+>@EpxfA0YrcPNsSu diff --git a/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-embarassed.gif b/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-embarassed.gif deleted file mode 100644 index 963a96b8a7593b1d8bcbab073abe5ee4e539dbf6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 331 zcmV-R0kr-{Nk%w1VG;lm0MrryDh>j~yq&6%75dW~z^P39(NxsGDE{UkxtkIEq(S-a zRKlwv+S=Lr?>hbYY~sQ?c3T&ZcN_Nh_E<O%#>U3s(>Io6B&>WW`@bsw**)Ocy1bht z{*G6|uwwqUQ2+n{A^8LW0018VEC2ui01^Na000HZ;3tYwX_jM3YQ!c88=*-m*&&bO zILd=`w3KAC;8hxpif*w9ek6oqV-Z0L77fROK$B<?js^^gTnMs=8C02!K#=aEqQaFR z6pBm+GC@uzdU#EC4h0?_7ZwKt5f%vv7zzj_2!<RSkOKo436}{4lS7u67@C}(1%m_+ z1&^hgn~wz#bpZ=`7y=Uj023D&843#lB@6@x3J1!|$_fSq3|$Nh$PLU5&I{2a5)2&+ dN;`849os?-0Z|L<1OetM#T4=s(M}&B06V4ic~SrX diff --git a/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-foot-in-mouth.gif b/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-foot-in-mouth.gif deleted file mode 100644 index c7cf1011dad0e7500e29a278b0d395b253871109..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 342 zcmV-c0jd5+Nk%w1VG;lm0Q4UKxtkou#>SR@5BAv-%C>6y>>#+D4e#&nz^qMDItlpp zTG728+|V&?R13PIEBW(C`uh6d*t-1sZ^XQv;oDD}iYLOV7uVO;{`xl4#4tJ{0;h@! z>)kdc3IhA?Hvj+tA^8La0018VEC2ui01^Na06+!P;3tYuX_ljS7!u|-O)<bjtr*7$ zT@&J176)Q-futaag{0!(c%F`mWPvb3CKkn_!{urOiG{*4F_H*|3`HWLWDErJ2gy*p z5_gw^Q9S?@9yNjn4F(zs0}lW>I}TzP1q%xT4HOFwMJaO;2ml)!00<FsBL_bU2o)S0 z6$oPvIh!mG92pr;wj2)<2BUro4=xFK7{e|P3X3Z(kb=%N4>$)141pU08x3594IX?4 o5YuAA8yXz~76K1c;3^jg77WP185Rf^u}23N0sR5^q(T4yJ1sVN5dZ)H diff --git a/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-frown.gif b/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-frown.gif deleted file mode 100644 index 716f55e161bfebb1c3d34f0b0f40c177fc82c30b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 340 zcmV-a0jvH;Nk%w1VG;lm0MroxK_>;q#>Sw62=mns-On=0wransPVevT^YK{Dy(0YY zH)vE6x0?;Wqb>gZas1^OT0si>`ugD5y87}*#H$s=yq(wA*8cf7{`y+(+9J7|9QfT7 z`ROHiU=Y&6FaQ7mA^8LW0018VEC2ui01^Na000Hi;3tYvX_jM3N`@u~nju9hSuh^r zIEcp-wA7(NL0~2d#RP+(G!CPPA>o*KJjv_CkucCA5=K?AfF#RG2V*8BU@jL304|4P z2;PGRF@bj$et;Jf2pR_mVsIA<85|n}kQ*Bq42Ovqj*yy>6P0=h3X&9Z01y<C4-<w5 z1_YrDr5zn|3>yk~2N4w%7#RW^55W%`0vQ+-6(y_*2pqz~90*;x9}yM}%$UI(7t#$D mK_3Se1{4HKM+6iG7EmeH6$V631{L5n)#CyC0qx-*Apkoyg?w!Q diff --git a/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-innocent.gif b/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-innocent.gif deleted file mode 100644 index 334d49e0e60f2997c9ba24071764f95d9e08a5cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmV-W0k8f?Nk%w1VG;lm0MrryI4TI-%dP0m5~*<p%dw5l&RW5fRqyTWvyTq>+Y`T~ z7Rth){q{I_X%*S48uRZ|(b3V&wIKTX`u+WJzo<^$#wuY;3W|Cf{O29IkTAcaE&lpe z+P*^H)-tknA^-pYA^8LW0018VEC2ui01^Na000He;3tYwX_n)75QgVvNQ`6#5gcMm zEEG~blgXokptKAJgCU?%JT?yo<M~i%4gt?6Fz6~Am9UtD7-RyH0HP3SJKk^yXMmPa zIvd6X(CBm;d>s!R6cPtcQWh2siHlNI2L}ifQhgX02^InZ2?-ktkqVRyZJY^Trk|lv zovp437?1~d46O)?2(1i+2NDYk8<+_Kil!K!3njA^!I#dL8x<729}*B65mC=m5gHH@ iDi9P3f*VjB3KS4HDb_qqRul{0DI<mu`1#Z$Apkp|ihYg% diff --git a/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-kiss.gif b/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-kiss.gif deleted file mode 100644 index 4efd549ed31c44b1faac17ed34bb67abeb42baf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 338 zcmV-Y0j>T=Nk%w1VG;lm0Mrx!QauaC#>Vb6G=_5=^YB^9wrc376Sb5I-qJGf@9vZ# z5WlKU(!eVB+7tfnDXp0zyB`?BZ5IChalob*`uh6d*t+@dKGHcU+L|83yq*5~IoH?L zy`?Gp<{bX|SpWb4A^8LW0018VEC2ui01^Na000Hg;3tYyX_jM3R?Bl7&r(q;SsVx< zNd$5fv{ZsKA$SlL3&KN~a1tZRf*~1Ltk<iAv7k{Z2Z`pvc_hgXjpQ(sE;$1LK%<cl zILB_HNUzT|aeYk*31NL24jm1Pj2;JshKLOYi<FIzdjt-Z3NH$l9TpRW3rGzS3J|Ig z3K0!T3keh%6CNEM5fB0b7ZJA}6B#85Qy!Zb7Z(@}4jx>x9~2uL3<QX`4jKdu92-F& k2^$L&NFE+a6AK$qDbg7WL{1AC-ZjzT0r>&z-yb0WJDRY082|tP diff --git a/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-laughing.gif b/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-laughing.gif deleted file mode 100644 index 82c5b182e61d32bd394acae551eff180f1eebd26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmV-d0jT~*Nk%w1VG;lm0Q4UK!lp8=s;1-69HWK?p_PpF=Pd8<?!T%|a$ZRD@LAHn zAH%B}$j8NMQxe3yo%Yxe`tnEM*t)ly6Z-o4{{3<N_BV)iTG-Xox}Pq}wrbweGI?VY z)x$ATJq`Z*S^xk5A^8La0018VEC2ui01^Na06+!Q;3tYxX_ljCNL1w(@FNIM?McQs zUCse43&6o~nWQEM1qH(4xS9}(;$WOO79K(4!YDB=4TWdnFp@G7PJ%*7a3mS?2dVM6 zI-PsI;?Yo72@41ogoT6%7!Wvf7XS(g6$={!3l#|p07WTt5eE_j0}=-jaw7&93ke<& ztPmc77&)9Q5ETu3w-r$mq=2;*8x1bOE)WSgD-;DBG&Rl-3j&G;1_v6p1PlQe7Xb_e p!hQx5)nWo01l-^P9#i8g7Y7R(uB#dg2N$wO23!pP`bvcW06U9bekA|^ diff --git a/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-money-mouth.gif b/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-money-mouth.gif deleted file mode 100644 index ca2451e102722e12e131ae53ea76989acbf191e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 321 zcmV-H0lxl6Nk%w1VG;lm0Mrx!DHsO6wwjoX9Kxs~!mLsE+7oVAHu>~Ygtcnp*fHAL z**;z>w3iC}`fmL6IkKB1N;3zEa}&zKpsu1;_V)HocR5-{J~BcYvE`YXhBnc@CfU=! za(E<?eig#P!T<mOA^8LW0018VEC2ui01^Na000HP;3tYyX_jM3Zp6bd53x}yNif>c zG>66zv=rqr;2j)}gKqE$ekcSD?}0=<bQ<7u!)Q1n00<H+ZZKxh#32EQBphsaG65Va zkpjTmkyjs@6kSLVZ3P8{5rzj0C4zW{h8>WLB?AWp85)qAL<a*U1aAfwq@|<=aCH)v z4*(Si6|WTl0-h2j3Q-&j3$U*X6&G0wG!zO07rYn<2p9_&0t3V&#uK|3*v<n4(?SXX Tyx|K0-72^q=pMvQA0YrcF~)Li diff --git a/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-sealed.gif b/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-sealed.gif deleted file mode 100644 index fe66220c24b4da4526818a5d68f75a06d9985a29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 323 zcmV-J0lfZ4Nk%w1VG;lm0Q4UKz^WI%xS#gj6sL~~h=_>d+P=4)6X4oXy{bw2>K^d$ z@6ERvva+(4ib~41YUkTEn1&#?rzrOHT>1I=Y*h`+%*@WtPUPg|!@EEI_d5LgZ>^Og z-qyBKJqy*wF8}}lA^8La0018VEC2ui01^Na06+!6;3tYxX_lj?7+U61R3gAaEg8x< zT>%mSfCwURnWQF&g=Q0ZxH1ulW`QtH0>O!5%iT_X0VBy_@EkOngU8?ye~=H!t21{= z9@Uj3a_UbE88~kh5Eq7rh!7QSBn1c?0|Off1&k^`5*QE<4-gm<K{;<6EEx|T9xkX( z8U`F%268SPbQ!cyH(M+Z5eAXJzYDnv2)q*nU0VcScnUiRg#;DT)C3n02t_Ik4G<9+ V78V#$4Gf}33K!HB7tSdm06S^%c-8;_ diff --git a/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-smile.gif b/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-smile.gif deleted file mode 100644 index fd27edfaaa29a70a8c4563c0eab9f18c74d374fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 344 zcmV-e0jK^)Nk%w1VG;lm0Q4UKd0-C4#>SR<4C>Dj%C>6W(lWoQPVevT^YB^Fy&h6M z4YZgH{O~qtR1(Ci8T;lQ`uh6d*t-7xar*K{#Jrulo-Wtd*44u?{`oh#n;gQXGXDEo z_}UUC3IeK%0ssI2A^8La0018VEC2ui01^Na06+!R;3tYuX_ljSEE482&%+G^XK%|f zLKbCc4u{4-u|QG~LqamSTo?@JM3OKZAr!|Z2IzP@fY`=CIg$vA3qm46TowfLCt29I z6pDKuvnf~)83+sm9yW#?9s>^(89F=~2?!W44-6Ox2^vNza}fp^9v&G65pp936%Gg+ z6HpTy2o4oGoh+>l3Q)KVQwybl2oo*<4a3D469|nfEii|MH4`}p1_cZp0ssj%2>=2d q41Na?)CpS;4gvxWVpZcR76uLludD?Q1{SnP2NnVU0rZ&)0RTIit8@_n diff --git a/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-surprised.gif b/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-surprised.gif deleted file mode 100644 index 0cc9bb71cca4cdeafbb248ce7e07c3708c1cbd64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 338 zcmV-Y0j>T=Nk%w1VG;lm0Q4UK`{WwN#>SnDDC*4*{OcpiwransPVevTQacIr@mkQp zCf(06s)_=>r7UYx48o@u`uh6d*t-7rH~ji<`P&oj;5Wp)o!8ga`SV6TA_BIW5#ZWV z{`*)c3<AWsL;wH)A^8La0018VEC2ui01^Na06+!L;3tYuX_ljSXp`hR4gtVa&1uI7 zU6#>2kA}f=futY?#YE7kxGD|7L}4&OEDw$hkm+~<00QS>F_H?J#bz?uEHnl42f5(9 z5O)`6Q9V2o5;YVLUK)Y`7!Nr+4GMq?85s%^2?`BGDRU798Vn2?1`%>22R{iO0u>bk z9tlA?nk*O<3zHJH6&Mp5qALj)E(mxM!Y&vII4dm@1Ov{`f*8pL3xPEVUI>D>1_uxa kNm?`6VH{N6Di;P13m6<67z+;u7qCYM7XkVK^`jvGJD~P?KL7v# diff --git a/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-tongue-out.gif b/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-tongue-out.gif deleted file mode 100644 index 2075dc16058f1f17912167675ce5cfb9986fc71d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 328 zcmV-O0k{4~Nk%w1VG;lm0Mrx!CJF+^#>SU@3-{U*rx+Q^wrc$ABfqLn@9*x?z8(4X zSW-O=@){bmmI~g|GQXoP);c<FSP}d3M*jVA`uh6d*t))=8CnMdwl62dyq*2^H`mwJ z)x$CM;3E1`Q~&?~A^8LW0018VEC2ui01^Na000HW;3tYyX_jM3R)^Iz)=^O^Su~t7 zO$yf(v=riDQ79xxiP7>vj3|f1M8e@{G*!tYaiCEujj1NGxRN#6#tiCETo+{x{Hkzt z5k-kPvcD=V2nb<UR~-feh=~dffrA={iID>mjCgL6k{uF&2nP-t0s;w<385Nx2oxDb z9T5Pp7qJl?3Kkh9oe2sCr5F$p7zPSlsUH*@54w*83=9Or4;w)r2pcU95(FL|1Th;< aDaRQH4;Tal7#Y$v#?=Au0pHUfApkpvZg^t= diff --git a/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-undecided.gif b/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-undecided.gif deleted file mode 100644 index bef7e257303f8243c89787e7a7f9955dd1f112e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 337 zcmV-X0j~Z>Nk%w1VG;lm0MroxDi#99#>R?y8~4}{%C>6#>?OadPVevTr-=vi@LATn z4rERY-qJF+n+?CCE&B3D{{3<K`ugD5x<W4p!>Shh?>WT0o%`b%*Voqm`dL;(4F35y zc485^n;g!+Bme*aA^8LW0018VEC2ui01^Na000Hf;3tYvX_jM3N=AnuogqakNi<9X zK?&0kwA8^tNn{?C$|IAYI1ZzT!2>}iuMddFK#NEkRl!7%6brJAnUs;)XcnA}TNBSP zxQ9;SvEfwYeSaGd2^|LqU~(QF1qBxr3Ii7x84ZVt8wCTKoSYAqc?p`G2onnpk`IOl z1`HLGj}riN2p1K12N4z&8IBDc6tEWs859;JtRB6>lf+xO9}yT19toMv8wnl`7(pKg j7zPv!OGgY81{hE&(iR3pP6ig;HPPS!_yOwPA0Yrc)=Yf3 diff --git a/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-wink.gif b/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-wink.gif deleted file mode 100644 index 0631c7616ec8624ddeee02b633326f697ee72f80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 350 zcmV-k0ipg!Nk%w1VG;lm0Q4UK(ZVUl#>Sn03F^-g-qAA3wransPV?|t@9*x%vmQ`7 z4E*pcw3rOOq%3t@4*K#({N^40{c-yG`rz2Q!KfI-yq*61HrBop*VoqW<}&{JS@_x# zwwfF$4Fdh~IsgCwA^8La0018VEC2ui01^Na06+!X;3tYwX_ljiFp=e23$zWxW@`*G zN?2ty6iUNT!AMdPLn89<I6VNsBa$#2B^8PW0&#S{9S2uKsT@fK2H_Bi90-iU`I97Q z0E%zIqENUr1Xc(f2MYrXHi;Vy0}u}!Iy?;k2OcpH3myjm4Mr(+69yat0vrYtb0Y{q z2O3Qt4;lwTI-o2K1Rfax9u5ky5e%q<2M-n*2^lU94lWM|kSi@QiitH3IS2;18v+g& wHWv;88y<lO650S7F$tszn0E%~Di{V71hK9J6b2ZzNDyEMKrq0+R3QKWI|*@ij{pDw diff --git a/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-yell.gif b/common/static/js/vendor/tiny_mce/plugins/emoticons/img/smiley-yell.gif deleted file mode 100644 index 648e6e879123fe49beebbc1f3635141864a79a9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmV-W0k8f?Nk%w1VG;lm0MrryG8O{K#>IbS7WCB_mWF$+hzY-{PWkp(?(Xf;zbH~P z3jOdj?W+^YwrakfE8fyG&5jTBz!3WS`fgM_;MltQ+c}4GO8)(E`S3`@yq&d~5!ct& z)v79NObo)O7XSbNA^8LW0018VEC2ui01^Na000He;3tYwX_jM3QifI(nn6h_*=Wyk zUB{y}v=qYOIUF#R3dZPhAVv~H;(|<CF_(maCZTAu39B_R)y$%~g`mSpayo)VZ;Q|z z7ZnA-;Q%Nq3riXZbr%Z>a2yN_5FH&J0|$eJ3kw4gj1Y?v5d#>LMV12^6BYy$1)ZKA zga!|m2?POz0R)f>4+aPl8KD{gz`+G_9vLMFQU?RU!8uyH9}*i52|cC+7S0YEK_3Vk i1|APfM-Ltb8&4_H83sg61{vHn(cc000qNZzApkp<uzFPh diff --git a/common/static/js/vendor/tiny_mce/plugins/emoticons/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/emoticons/plugin.min.js deleted file mode 100644 index 57ae02583a3..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/emoticons/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("emoticons",function(t,e){function n(){var t;return t='<table role="presentation" class="mce-grid">',tinymce.each(i,function(n){t+="<tr>",tinymce.each(n,function(n){var i=e+"/img/smiley-"+n+".gif";t+='<td><a href="#" data-mce-url="'+i+'" tabindex="-1"><img src="'+i+'" style="width: 18px; height: 18px"></a></td>'}),t+="</tr>"}),t+="</table>"}var i=[["cool","cry","embarassed","foot-in-mouth"],["frown","innocent","kiss","laughing"],["money-mouth","sealed","smile","surprised"],["tongue-out","undecided","wink","yell"]];t.addButton("emoticons",{type:"panelbutton",panel:{autohide:!0,html:n,onclick:function(e){var n=t.dom.getParent(e.target,"a");n&&(t.insertContent('<img src="'+n.getAttribute("data-mce-url")+'" />'),this.hide())}},tooltip:"Emoticons"})}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/example/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/example/plugin.min.js deleted file mode 100644 index 1ff20b46b9a..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/example/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("example",function(t){t.addButton("example",{text:"My button",icon:!1,onclick:function(){t.windowManager.open({title:"Example plugin",body:[{type:"textbox",name:"title",label:"Title"}],onsubmit:function(e){t.insertContent("Title: "+e.data.title)}})}}),t.addMenuItem("example",{text:"Example plugin",context:"tools",onclick:function(){t.windowManager.open({title:"TinyMCE site",url:"http://www.tinymce.com",width:800,height:600,buttons:[{text:"Close",onclick:"close"}]})}})}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/example_dependency/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/example_dependency/plugin.min.js deleted file mode 100644 index e61bf473ad1..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/example_dependency/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("example_dependency",function(){},["example"]); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/fullpage/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/fullpage/plugin.min.js deleted file mode 100644 index 7cdbf79275c..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/fullpage/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("fullpage",function(e){function t(){var t=n();e.windowManager.open({title:"Document properties",data:t,defaults:{type:"textbox",size:40},body:[{name:"title",label:"Title"},{name:"keywords",label:"Keywords"},{name:"description",label:"Description"},{name:"robots",label:"Robots"},{name:"author",label:"Author"},{name:"docencoding",label:"Encoding"}],onSubmit:function(e){l(tinymce.extend(t,e.data))}})}function n(){function t(e,t){var n=e.attr(t);return n||""}var n,l,a=i(),r={};return r.fontface=e.getParam("fullpage_default_fontface",""),r.fontsize=e.getParam("fullpage_default_fontsize",""),n=a.firstChild,7==n.type&&(r.xml_pi=!0,l=/encoding="([^"]+)"/.exec(n.value),l&&(r.docencoding=l[1])),n=a.getAll("#doctype")[0],n&&(r.doctype="<!DOCTYPE"+n.value+">"),n=a.getAll("title")[0],n&&n.firstChild&&(r.title=n.firstChild.value),s(a.getAll("meta"),function(e){var t,n=e.attr("name"),l=e.attr("http-equiv");n?r[n.toLowerCase()]=e.attr("content"):"Content-Type"==l&&(t=/charset\s*=\s*(.*)\s*/gi.exec(e.attr("content")),t&&(r.docencoding=t[1]))}),n=a.getAll("html")[0],n&&(r.langcode=t(n,"lang")||t(n,"xml:lang")),r.stylesheets=[],tinymce.each(a.getAll("link"),function(e){"stylesheet"==e.attr("rel")&&r.stylesheets.push(e.attr("href"))}),n=a.getAll("body")[0],n&&(r.langdir=t(n,"dir"),r.style=t(n,"style"),r.visited_color=t(n,"vlink"),r.link_color=t(n,"link"),r.active_color=t(n,"alink")),r}function l(t){function n(e,t,n){e.attr(t,n?n:void 0)}function l(e){r.firstChild?r.insert(e,r.firstChild):r.append(e)}var a,r,o,c,u,f=e.dom;a=i(),r=a.getAll("head")[0],r||(c=a.getAll("html")[0],r=new m("head",1),c.firstChild?c.insert(r,c.firstChild,!0):c.append(r)),c=a.firstChild,t.xml_pi?(u='version="1.0"',t.docencoding&&(u+=' encoding="'+t.docencoding+'"'),7!=c.type&&(c=new m("xml",7),a.insert(c,a.firstChild,!0)),c.value=u):c&&7==c.type&&c.remove(),c=a.getAll("#doctype")[0],t.doctype?(c||(c=new m("#doctype",10),t.xml_pi?a.insert(c,a.firstChild):l(c)),c.value=t.doctype.substring(9,t.doctype.length-1)):c&&c.remove(),t.docencoding&&(c=null,s(a.getAll("meta"),function(e){"Content-Type"==e.attr("http-equiv")&&(c=e)}),c||(c=new m("meta",1),c.attr("http-equiv","Content-Type"),c.shortEnded=!0,l(c)),c.attr("content","text/html; charset="+t.docencoding)),c=a.getAll("title")[0],t.title?c||(c=new m("title",1),c.append(new m("#text",3)).value=t.title,l(c)):c&&c.remove(),s("keywords,description,author,copyright,robots".split(","),function(e){var n,i,r=a.getAll("meta"),o=t[e];for(n=0;n<r.length;n++)if(i=r[n],i.attr("name")==e)return o?i.attr("content",o):i.remove(),void 0;o&&(c=new m("meta",1),c.attr("name",e),c.attr("content",o),c.shortEnded=!0,l(c))});var g={};tinymce.each(a.getAll("link"),function(e){"stylesheet"==e.attr("rel")&&(g[e.attr("href")]=e)}),tinymce.each(t.stylesheets,function(e){g[e]||(c=new m("link",1),c.attr({rel:"stylesheet",text:"text/css",href:e}),c.shortEnded=!0,l(c)),delete g[e]}),tinymce.each(g,function(e){e.remove()}),c=a.getAll("body")[0],c&&(n(c,"dir",t.langdir),n(c,"style",t.style),n(c,"vlink",t.visited_color),n(c,"link",t.link_color),n(c,"alink",t.active_color),f.setAttribs(e.getBody(),{style:t.style,dir:t.dir,vLink:t.visited_color,link:t.link_color,aLink:t.active_color})),c=a.getAll("html")[0],c&&(n(c,"lang",t.langcode),n(c,"xml:lang",t.langcode)),r.firstChild||r.remove(),o=new tinymce.html.Serializer({validate:!1,indent:!0,apply_source_formatting:!0,indent_before:"head,html,body,meta,title,script,link,style",indent_after:"head,html,body,meta,title,script,link,style"}).serialize(a),d=o.substring(0,o.indexOf("</body>"))}function i(){return new tinymce.html.DomParser({validate:!1,root_name:"#document"}).parse(d)}function a(t){function n(e){return e.replace(/<\/?[A-Z]+/g,function(e){return e.toLowerCase()})}var l,a,o,m,u=t.content,f="",g=e.dom;if(!t.selection&&!("raw"==t.format&&d||t.source_view&&e.getParam("fullpage_hide_in_source_view"))){u=u.replace(/<(\/?)BODY/gi,"<$1body"),l=u.indexOf("<body"),-1!=l?(l=u.indexOf(">",l),d=n(u.substring(0,l+1)),a=u.indexOf("</body",l),-1==a&&(a=u.length),t.content=u.substring(l+1,a),c=n(u.substring(a))):(d=r(),c="\n</body>\n</html>"),o=i(),s(o.getAll("style"),function(e){e.firstChild&&(f+=e.firstChild.value)}),m=o.getAll("body")[0],m&&g.setAttribs(e.getBody(),{style:m.attr("style")||"",dir:m.attr("dir")||"",vLink:m.attr("vlink")||"",link:m.attr("link")||"",aLink:m.attr("alink")||""}),g.remove("fullpage_styles");var y=e.getDoc().getElementsByTagName("head")[0];f&&(g.add(y,"style",{id:"fullpage_styles"},f),m=g.get("fullpage_styles"),m.styleSheet&&(m.styleSheet.cssText=f));var h={};tinymce.each(y.getElementsByTagName("link"),function(e){"stylesheet"==e.rel&&e.getAttribute("data-mce-fullpage")&&(h[e.href]=e)}),tinymce.each(o.getAll("link"),function(e){var t=e.attr("href");h[t]||"stylesheet"!=e.attr("rel")||g.add(y,"link",{rel:"stylesheet",text:"text/css",href:t,"data-mce-fullpage":"1"}),delete h[t]}),tinymce.each(h,function(e){e.parentNode.removeChild(e)})}}function r(){var t,n="",l="";return e.getParam("fullpage_default_xml_pi")&&(n+='<?xml version="1.0" encoding="'+e.getParam("fullpage_default_encoding","ISO-8859-1")+'" ?>\n'),n+=e.getParam("fullpage_default_doctype","<!DOCTYPE html>"),n+="\n<html>\n<head>\n",(t=e.getParam("fullpage_default_title"))&&(n+="<title>"+t+"</title>\n"),(t=e.getParam("fullpage_default_encoding"))&&(n+='<meta http-equiv="Content-Type" content="text/html; charset='+t+'" />\n'),(t=e.getParam("fullpage_default_font_family"))&&(l+="font-family: "+t+";"),(t=e.getParam("fullpage_default_font_size"))&&(l+="font-size: "+t+";"),(t=e.getParam("fullpage_default_text_color"))&&(l+="color: "+t+";"),n+="</head>\n<body"+(l?' style="'+l+'"':"")+">\n"}function o(t){t.selection||t.source_view&&e.getParam("fullpage_hide_in_source_view")||(t.content=tinymce.trim(d)+"\n"+tinymce.trim(t.content)+"\n"+tinymce.trim(c))}var d,c,s=tinymce.each,m=tinymce.html.Node;e.addCommand("mceFullPageProperties",t),e.addButton("fullpage",{title:"Document properties",cmd:"mceFullPageProperties"}),e.addMenuItem("fullpage",{text:"Document properties",cmd:"mceFullPageProperties",context:"file"}),e.on("BeforeSetContent",a),e.on("GetContent",o)}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/fullscreen/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/fullscreen/plugin.min.js deleted file mode 100644 index 1bb1940dd95..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/fullscreen/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("fullscreen",function(e){function t(){var e,t,n=window,i=document,l=i.body;return l.offsetWidth&&(e=l.offsetWidth,t=l.offsetHeight),n.innerWidth&&n.innerHeight&&(e=n.innerWidth,t=n.innerHeight),{w:e,h:t}}function n(){function n(){d.setStyle(a,"height",t().h-(h.clientHeight-a.clientHeight))}var u,h,a,f,m=document.body,g=document.documentElement;s=!s,h=e.getContainer(),u=h.style,a=e.getContentAreaContainer().firstChild,f=a.style,s?(i=f.width,l=f.height,f.width=f.height="100%",c=u.width,o=u.height,u.width=u.height="",d.addClass(m,"mce-fullscreen"),d.addClass(g,"mce-fullscreen"),d.addClass(h,"mce-fullscreen"),d.bind(window,"resize",n),n(),r=n):(f.width=i,f.height=l,c&&(u.width=c),o&&(u.height=o),d.removeClass(m,"mce-fullscreen"),d.removeClass(g,"mce-fullscreen"),d.removeClass(h,"mce-fullscreen"),d.unbind(window,"resize",r)),e.fire("FullscreenStateChanged",{state:s})}var i,l,r,c,o,s=!1,d=tinymce.DOM;return e.settings.inline?void 0:(e.on("init",function(){e.addShortcut("Ctrl+Alt+F","",n)}),e.on("remove",function(){r&&d.unbind(window,"resize",r)}),e.addCommand("mceFullScreen",n),e.addMenuItem("fullscreen",{text:"Fullscreen",shortcut:"Ctrl+Alt+F",selectable:!0,onClick:n,onPostRender:function(){var t=this;e.on("FullscreenStateChanged",function(e){t.active(e.state)})},context:"view"}),e.addButton("fullscreen",{tooltip:"Fullscreen",shortcut:"Ctrl+Alt+F",onClick:n,onPostRender:function(){var t=this;e.on("FullscreenStateChanged",function(e){t.active(e.state)})}}),{isFullscreen:function(){return s}})}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/hr/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/hr/plugin.min.js deleted file mode 100644 index ca36c927518..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/hr/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("hr",function(e){e.addCommand("InsertHorizontalRule",function(){e.execCommand("mceInsertContent",!1,"<hr />")}),e.addButton("hr",{icon:"hr",tooltip:"Horizontal line",cmd:"InsertHorizontalRule"}),e.addMenuItem("hr",{icon:"hr",text:"Horizontal line",cmd:"InsertHorizontalRule",context:"insert"})}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/importcss/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/importcss/plugin.min.js deleted file mode 100644 index ab38e3959d1..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/importcss/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("importcss",function(t){function e(t){return"string"==typeof t?function(e){return-1!==e.indexOf(t)}:t instanceof RegExp?function(e){return t.test(e)}:t}function n(e,n){function i(t,e){var o,l=t.href;if((e||c[l])&&(!n||n(l))){s(t.imports,function(t){i(t,!0)});try{o=t.cssRules||t.rules}catch(a){}s(o,function(t){t.styleSheet?i(t.styleSheet,!0):t.selectorText&&s(t.selectorText.split(","),function(t){r.push(tinymce.trim(t))})})}}var r=[],c={};s(t.contentCSS,function(t){c[t]=!0});try{s(e.styleSheets,function(t){i(t)})}catch(o){}return r}function i(e){var n,i=/^(?:([a-z0-9\-_]+))?(\.[a-z0-9_\-\.]+)$/i.exec(e);if(i){var r=i[1],s=i[2].substr(1).split(".").join(" "),c=tinymce.makeMap("a,img");return i[1]?(n={title:e},t.schema.getTextBlockElements()[r]?n.block=r:t.schema.getBlockElements()[r]||c[r.toLowerCase()]?n.selector=r:n.inline=r):i[2]&&(n={inline:"span",title:e.substr(1),classes:s}),t.settings.importcss_merge_classes!==!1?n.classes=s:n.attributes={"class":s},n}}var r=this,s=tinymce.each;t.on("renderFormatsMenu",function(c){var o=t.settings,l={},a=o.importcss_selector_converter||i,m=e(o.importcss_selector_filter);t.settings.importcss_append||c.control.items().remove();var f=[];tinymce.each(o.importcss_groups,function(t){t=tinymce.extend({},t),t.filter=e(t.filter),f.push(t)}),s(n(t.getDoc(),e(o.importcss_file_filter)),function(e){if(-1===e.indexOf(".mce-")&&!l[e]&&(!m||m(e))){var n,i=a.call(r,e);if(i){var s=i.name||tinymce.DOM.uniqueId();if(f)for(var o=0;o<f.length;o++)if(!f[o].filter||f[o].filter(e)){f[o].item||(f[o].item={text:f[o].title,menu:[]}),n=f[o].item.menu;break}t.formatter.register(s,i);var u=tinymce.extend({},c.control.settings.itemDefaults,{text:i.title,format:s});n?n.push(u):c.control.add(u)}l[e]=!0}}),s(f,function(t){c.control.add(t.item)}),c.control.renderNew()}),r.convertSelectorToFormat=i}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/insertdatetime/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/insertdatetime/plugin.min.js deleted file mode 100644 index 0a47b92bee8..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/insertdatetime/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("insertdatetime",function(e){function t(t,a){function n(e,t){if(e=""+e,e.length<t)for(var a=0;a<t-e.length;a++)e="0"+e;return e}return a=a||new Date,t=t.replace("%D","%m/%d/%Y"),t=t.replace("%r","%I:%M:%S %p"),t=t.replace("%Y",""+a.getFullYear()),t=t.replace("%y",""+a.getYear()),t=t.replace("%m",n(a.getMonth()+1,2)),t=t.replace("%d",n(a.getDate(),2)),t=t.replace("%H",""+n(a.getHours(),2)),t=t.replace("%M",""+n(a.getMinutes(),2)),t=t.replace("%S",""+n(a.getSeconds(),2)),t=t.replace("%I",""+((a.getHours()+11)%12+1)),t=t.replace("%p",""+(a.getHours()<12?"AM":"PM")),t=t.replace("%B",""+e.translate(u[a.getMonth()])),t=t.replace("%b",""+e.translate(m[a.getMonth()])),t=t.replace("%A",""+e.translate(c[a.getDay()])),t=t.replace("%a",""+e.translate(i[a.getDay()])),t=t.replace("%%","%")}function a(a){var n=t(a);if(e.settings.insertdatetime_element){var r;r=/%[HMSIp]/.test(a)?t("%Y-%m-%dT%H:%M"):t("%Y-%m-%d"),n='<time datetime="'+r+'">'+n+"</time>";var i=e.dom.getParent(e.selection.getStart(),"time");if(i)return e.dom.setOuterHTML(i,n),void 0}e.insertContent(n)}var n,r,i="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),c="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),m="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),u="January February March April May June July August September October November December".split(" "),d=[];e.addCommand("mceInsertDate",function(){a(e.getParam("insertdatetime_dateformat",e.translate("%Y-%m-%d")))}),e.addCommand("mceInsertTime",function(){a(e.getParam("insertdatetime_timeformat",e.translate("%H:%M:%S")))}),e.addButton("inserttime",{type:"splitbutton",title:"Insert time",onclick:function(){a(n||r)},menu:d}),tinymce.each(e.settings.insertdatetime_formats||["%H:%M:%S","%Y-%m-%d","%I:%M:%S %p","%D"],function(e){r||(r=e),d.push({text:t(e),onclick:function(){n=e,a(e)}})}),e.addMenuItem("insertdatetime",{icon:"date",text:"Insert date/time",menu:d,context:"insert"})}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/layer/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/layer/plugin.min.js deleted file mode 100644 index eb1ad4b68df..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/layer/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("layer",function(e){function t(e){do if(e.className&&-1!=e.className.indexOf("mceItemLayer"))return e;while(e=e.parentNode)}function n(t){var n=e.dom;tinymce.each(n.select("div,p",t),function(e){/^(absolute|relative|fixed)$/i.test(e.style.position)&&(e.hasVisual?n.addClass(e,"mceItemVisualAid"):n.removeClass(e,"mceItemVisualAid"),n.addClass(e,"mceItemLayer"))})}function i(n){var i,o,a=[],r=t(e.selection.getNode()),l=-1,s=-1;for(o=[],tinymce.walk(e.getBody(),function(e){1==e.nodeType&&/^(absolute|relative|static)$/i.test(e.style.position)&&o.push(e)},"childNodes"),i=0;i<o.length;i++)a[i]=o[i].style.zIndex?parseInt(o[i].style.zIndex,10):0,0>l&&o[i]==r&&(l=i);if(0>n){for(i=0;i<a.length;i++)if(a[i]<a[l]){s=i;break}s>-1?(o[l].style.zIndex=a[s],o[s].style.zIndex=a[l]):a[l]>0&&(o[l].style.zIndex=a[l]-1)}else{for(i=0;i<a.length;i++)if(a[i]>a[l]){s=i;break}s>-1?(o[l].style.zIndex=a[s],o[s].style.zIndex=a[l]):o[l].style.zIndex=a[l]+1}e.execCommand("mceRepaint")}function o(){var t=e.dom,n=t.getPos(t.getParent(e.selection.getNode(),"*")),i=e.getBody();e.dom.add(i,"div",{style:{position:"absolute",left:n.x,top:n.y>20?n.y:20,width:100,height:100},"class":"mceItemVisualAid mceItemLayer"},e.selection.getContent()||e.getLang("layer.content")),tinymce.Env.ie&&t.setHTML(i,i.innerHTML)}function a(){var n=t(e.selection.getNode());n||(n=e.dom.getParent(e.selection.getNode(),"DIV,P,IMG")),n&&("absolute"==n.style.position.toLowerCase()?(e.dom.setStyles(n,{position:"",left:"",top:"",width:"",height:""}),e.dom.removeClass(n,"mceItemVisualAid"),e.dom.removeClass(n,"mceItemLayer")):(n.style.left||(n.style.left="20px"),n.style.top||(n.style.top="20px"),n.style.width||(n.style.width=n.width?n.width+"px":"100px"),n.style.height||(n.style.height=n.height?n.height+"px":"100px"),n.style.position="absolute",e.dom.setAttrib(n,"data-mce-style",""),e.addVisual(e.getBody())),e.execCommand("mceRepaint"),e.nodeChanged())}e.addCommand("mceInsertLayer",o),e.addCommand("mceMoveForward",function(){i(1)}),e.addCommand("mceMoveBackward",function(){i(-1)}),e.addCommand("mceMakeAbsolute",function(){a()}),e.addButton("moveforward",{title:"layer.forward_desc",cmd:"mceMoveForward"}),e.addButton("movebackward",{title:"layer.backward_desc",cmd:"mceMoveBackward"}),e.addButton("absolute",{title:"layer.absolute_desc",cmd:"mceMakeAbsolute"}),e.addButton("insertlayer",{title:"layer.insertlayer_desc",cmd:"mceInsertLayer"}),e.on("init",function(){tinymce.Env.ie&&e.getDoc().execCommand("2D-Position",!1,!0)}),e.on("mouseup",function(n){var i=t(n.target);i&&e.dom.setAttrib(i,"data-mce-style","")}),e.on("mousedown",function(n){var i,o=n.target,a=e.getDoc();tinymce.Env.gecko&&(t(o)?"on"!==a.designMode&&(a.designMode="on",o=a.body,i=o.parentNode,i.removeChild(o),i.appendChild(o)):"on"==a.designMode&&(a.designMode="off"))}),e.on("NodeChange",n)}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/legacyoutput/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/legacyoutput/plugin.min.js deleted file mode 100644 index 4f6f7c1aa3b..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/legacyoutput/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){e.on("AddEditor",function(e){e.editor.settings.inline_styles=!1}),e.PluginManager.add("legacyoutput",function(t){t.on("init",function(){var n="p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img",i=e.explode(t.settings.font_size_style_values),o=t.schema;t.formatter.register({alignleft:{selector:n,attributes:{align:"left"}},aligncenter:{selector:n,attributes:{align:"center"}},alignright:{selector:n,attributes:{align:"right"}},alignjustify:{selector:n,attributes:{align:"justify"}},bold:[{inline:"b",remove:"all"},{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}}],italic:[{inline:"i",remove:"all"},{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}}],underline:[{inline:"u",remove:"all"},{inline:"span",styles:{textDecoration:"underline"},exact:!0}],strikethrough:[{inline:"strike",remove:"all"},{inline:"span",styles:{textDecoration:"line-through"},exact:!0}],fontname:{inline:"font",attributes:{face:"%value"}},fontsize:{inline:"font",attributes:{size:function(t){return e.inArray(i,t.value)+1}}},forecolor:{inline:"font",attributes:{color:"%value"}},hilitecolor:{inline:"font",styles:{backgroundColor:"%value"}}}),e.each("b,i,u,strike".split(","),function(e){o.addValidElements(e+"[*]")}),o.getElementRule("font")||o.addValidElements("font[face|size|color|style]"),e.each(n.split(","),function(e){var t=o.getElementRule(e);t&&(t.attributes.align||(t.attributes.align={},t.attributesOrder.push("align")))})})})}(tinymce); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/lists/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/lists/plugin.min.js deleted file mode 100644 index 3f1de3972e0..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/lists/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("lists",function(e){function t(e){return e&&/^(OL|UL)$/.test(e.nodeName)}function n(e){return e.parentNode.firstChild==e}function r(e){return e.parentNode.lastChild==e}function o(t){return t&&!!e.schema.getTextBlockElements()[t.nodeName]}function i(e){return e&&"SPAN"===e.nodeName&&"bookmark"===e.getAttribute("data-mce-type")}var a=this;e.on("init",function(){function d(e){function t(t){var r,o,i;o=e[t?"startContainer":"endContainer"],i=e[t?"startOffset":"endOffset"],1==o.nodeType&&(r=b.create("span",{"data-mce-type":"bookmark"}),o.hasChildNodes()?(i=Math.min(i,o.childNodes.length-1),t?o.insertBefore(r,o.childNodes[i]):b.insertAfter(r,o.childNodes[i])):o.appendChild(r),o=r,i=0),n[t?"startContainer":"endContainer"]=o,n[t?"startOffset":"endOffset"]=i}var n={};return t(!0),e.collapsed||t(),n}function s(e){function t(t){function n(e){for(var t=e.parentNode.firstChild,n=0;t;){if(t==e)return n;(1!=t.nodeType||"bookmark"!=t.getAttribute("data-mce-type"))&&n++,t=t.nextSibling}return-1}var r,o,i;r=i=e[t?"startContainer":"endContainer"],o=e[t?"startOffset":"endOffset"],r&&(1==r.nodeType&&(o=n(r),r=r.parentNode,b.remove(i)),e[t?"startContainer":"endContainer"]=r,e[t?"startOffset":"endOffset"]=o)}t(!0),t();var n=b.createRng();n.setStart(e.startContainer,e.startOffset),e.endContainer&&n.setEnd(e.endContainer,e.endOffset),L.setRng(n)}function f(t,n){var r,o,i,a=b.createFragment(),d=e.schema.getBlockElements();if(e.settings.forced_root_block&&(n=n||e.settings.forced_root_block),n&&(o=b.create(n),o.tagName===e.settings.forced_root_block&&b.setAttribs(o,e.settings.forced_root_block_attrs),a.appendChild(o)),t)for(;r=t.firstChild;){var s=r.nodeName;i||"SPAN"==s&&"bookmark"==r.getAttribute("data-mce-type")||(i=!0),d[s]?(a.appendChild(r),o=null):n?(o||(o=b.create(n),a.appendChild(o)),o.appendChild(r)):a.appendChild(r)}return e.settings.forced_root_block?i||tinymce.Env.ie&&!(tinymce.Env.ie>10)||o.appendChild(b.create("br",{"data-mce-bogus":"1"})):a.appendChild(b.create("br")),a}function l(){return tinymce.grep(L.getSelectedBlocks(),function(e){return"LI"==e.nodeName})}function c(e,t,n){var r,o,i=b.select('span[data-mce-type="bookmark"]',e);n=n||f(t),r=b.createRng(),r.setStartAfter(t),r.setEndAfter(e),o=r.extractContents(),b.isEmpty(o)||b.insertAfter(o,e),b.insertAfter(n,e),b.isEmpty(t.parentNode)&&(tinymce.each(i,function(e){t.parentNode.parentNode.insertBefore(e,t.parentNode)}),b.remove(t.parentNode)),b.remove(t)}function p(e){var n,r;if(n=e.nextSibling,n&&t(n)&&n.nodeName==e.nodeName){for(;r=n.firstChild;)e.appendChild(r);b.remove(n)}if(n=e.previousSibling,n&&t(n)&&n.nodeName==e.nodeName){for(;r=n.firstChild;)e.insertBefore(r,e.firstChild);b.remove(n)}}function u(e){tinymce.each(tinymce.grep(b.select("ol,ul",e)),function(e){var n,r=e.parentNode;"LI"==r.nodeName&&r.firstChild==e&&(n=r.previousSibling,n&&"LI"==n.nodeName&&(n.appendChild(e),b.isEmpty(r)&&b.remove(r))),t(r)&&(n=r.previousSibling,n&&"LI"==n.nodeName&&n.appendChild(e))})}function m(e){function o(e){b.isEmpty(e)&&b.remove(e)}var i,a=e.parentNode,d=a.parentNode;return n(e)&&r(e)?("LI"==d.nodeName?(b.insertAfter(e,d),o(d),b.remove(a)):t(d)?b.remove(a,!0):(d.insertBefore(f(e),a),b.remove(a)),!0):n(e)?("LI"==d.nodeName?(b.insertAfter(e,d),e.appendChild(a),o(d)):t(d)?d.insertBefore(e,a):(d.insertBefore(f(e),a),b.remove(e)),!0):r(e)?("LI"==d.nodeName?b.insertAfter(e,d):t(d)?b.insertAfter(e,a):(b.insertAfter(f(e),a),b.remove(e)),!0):("LI"==d.nodeName?(a=d,i=f(e,"LI")):i=t(d)?f(e,"LI"):f(e),c(a,e,i),u(a.parentNode),!0)}function h(e){function n(n,r){var o;if(t(n)){for(;o=e.lastChild.firstChild;)r.appendChild(o);b.remove(n)}}var r,o;return r=e.previousSibling,r&&t(r)?(r.appendChild(e),!0):r&&"LI"==r.nodeName&&t(r.lastChild)?(r.lastChild.appendChild(e),n(e.lastChild,r.lastChild),!0):(r=e.nextSibling,r&&t(r)?(r.insertBefore(e,r.firstChild),!0):r&&"LI"==r.nodeName&&t(e.lastChild)?!1:(r=e.previousSibling,r&&"LI"==r.nodeName?(o=b.create(e.parentNode.nodeName),r.appendChild(o),o.appendChild(e),n(e.lastChild,o),!0):!1))}function v(){var t=l();if(t.length){for(var n=d(L.getRng(!0)),r=0;r<t.length&&(h(t[r])||0!==r);r++);return s(n),e.nodeChanged(),!0}}function C(){var t=l();if(t.length){var n,r,o=d(L.getRng(!0)),i=e.getBody();for(n=t.length;n--;)for(var a=t[n].parentNode;a&&a!=i;){for(r=t.length;r--;)if(t[r]===a){t.splice(n,1);break}a=a.parentNode}for(n=0;n<t.length&&(m(t[n])||0!==n);n++);return s(o),e.nodeChanged(),!0}}function g(n){function r(){function t(e){var t,n;for(t=a[e?"startContainer":"endContainer"],n=a[e?"startOffset":"endOffset"],1==t.nodeType&&(t=t.childNodes[Math.min(n,t.childNodes.length-1)]||t);t.parentNode!=d;){if(o(t))return t;if(/^(TD|TH)$/.test(t.parentNode.nodeName))return t;t=t.parentNode}return t}for(var n,r=[],d=e.getBody(),s=t(!0),f=t(),l=[],c=s;c&&(l.push(c),c!=f);c=c.nextSibling);return tinymce.each(l,function(e){if(o(e))return r.push(e),n=null,void 0;if(b.isBlock(e)||"BR"==e.nodeName)return"BR"==e.nodeName&&b.remove(e),n=null,void 0;var t=e.nextSibling;return i(e)&&(o(t)||!t&&e.parentNode==d)?(n=null,void 0):(n||(n=b.create("p"),e.parentNode.insertBefore(n,e),r.push(n)),n.appendChild(e),void 0)}),r}var a=L.getRng(!0),f=d(a),l=r();tinymce.each(l,function(e){var r,o;o=e.previousSibling,o&&t(o)&&o.nodeName==n?(r=o,e=b.rename(e,"LI"),o.appendChild(e)):(r=b.create(n),e.parentNode.insertBefore(r,e),r.appendChild(e),e=b.rename(e,"LI")),p(r)}),s(f)}function N(){var n=d(L.getRng(!0)),r=e.getBody();tinymce.each(l(),function(e){var n,o;if(b.isEmpty(e))return m(e),void 0;for(n=e;n&&n!=r;n=n.parentNode)t(n)&&(o=n);c(o,e)}),s(n)}function y(e){var t=b.getParent(L.getStart(),"OL,UL");if(t)if(t.nodeName==e)N(e);else{var n=d(L.getRng(!0));p(b.rename(t,e)),s(n)}else g(e)}var b=e.dom,L=e.selection;a.backspaceDelete=function(e){function n(e,t){var n=e.startContainer,r=e.startOffset;if(3==n.nodeType&&(t?r<n.data.length:r>0))return n;for(var o=new tinymce.dom.TreeWalker(e.startContainer);n=o[t?"next":"prev"]();)if(3==n.nodeType&&n.data.length>0)return n}function r(e,n){var r,o,i=e.parentNode;for(t(n.lastChild)&&(o=n.lastChild),r=n.lastChild,r&&"BR"==r.nodeName&&e.hasChildNodes()&&b.remove(r);r=e.firstChild;)n.appendChild(r);o&&n.appendChild(o),b.remove(e),b.isEmpty(i)&&b.remove(i)}if(L.isCollapsed()){var o=b.getParent(L.getStart(),"LI");if(o){var i=L.getRng(!0),a=b.getParent(n(i,e),"LI");if(a&&a!=o){var f=d(i);return e?r(a,o):r(o,a),s(f),!0}if(!a&&!e&&N(o.parentNode.nodeName))return!0}}},e.addCommand("Indent",function(){return v()?void 0:!0}),e.addCommand("Outdent",function(){return C()?void 0:!0}),e.addCommand("InsertUnorderedList",function(){y("UL")}),e.addCommand("InsertOrderedList",function(){y("OL")}),e.on("keydown",function(t){9==t.keyCode&&e.dom.getParent(e.selection.getStart(),"LI")&&(t.preventDefault(),t.shiftKey?C():v())})}),e.addButton("indent",{icon:"indent",title:"Increase indent",cmd:"Indent",onPostRender:function(){var t=this;e.on("nodechange",function(){var r=e.dom.getParent(e.selection.getNode(),"LI,UL,OL");t.disabled(r&&("LI"!=r.nodeName||n(r)))})}}),e.on("keydown",function(e){e.keyCode==tinymce.util.VK.BACKSPACE?a.backspaceDelete()&&e.preventDefault():e.keyCode==tinymce.util.VK.DELETE&&a.backspaceDelete(!0)&&e.preventDefault()})}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/media/moxieplayer.swf b/common/static/js/vendor/tiny_mce/plugins/media/moxieplayer.swf deleted file mode 100644 index 19c771bea50c6665fe0ee5f46515e9686427dbc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20017 zcmV)0K+eBIS5pf5iU0t3+T6ScSX9T?Fn(w5-MzcZ0t+H4HdGWPt6(p&p@KrxHG)y2 zAj`7rt}ZOHU`veHdu*}A-h1z{CB_!(0(Oli8cVE+z4Je3?l#oq{k`A+d%ov;KOWB9 zDQC{ioH=vK+zb6V;Tp&JE#tV7gliR0isQJ!#f}k<Yn+v4YSgh+Y-s;<YlgiMl$wN_ zv$HcBMMn1P*RMvu+BIxhJtJ#2Y}ha|s#avJTGaugx_v-Kw!VM$411;Uri?%<qur2Y z$;`IcGD5MePqpP_Hwh1SQcW|siDu?xSsBSRL!{AaOgCm^+aqh%s0oD942?{-taN>L zQ+;Np)nd>ixyb(2?Pi;ycRzh!V|9~NZ#OrN^dMrNY)iJ)*fcuLmTC-*wHo_})(MUF z^k>)-3L>X@Cfd|%nR@J9!(dB~%*?W-<rrX2CLqN+dv`$+nK`Lei`{I@YMPVLJHysb z8p2bHIEE~vKHF9l!&QgvR((d#9DPq?)0p<G&0S`5)Mp!;#^+>&)~uxstrb<Xwloc_ zZ5;U?x1BYxflawqn%jJ1t|f)N{Zhq4DhCkA@unR6xk()jn!%1ASEbwfTa1}j{QzSY z*G$>Zm*WU0tHnJb{V(31+iiUDn2^IU*QV~jJhS1j`jgDTv-Bw`rkT+#7X3X$oG_+T zm%sEE)&!Jj`A3AmA^WdbDsPcHI`;IWnk$B6cKVG326kAK_xqyIiVAaP%;*xKRrh!3 z)}zm=?aSKdbbflH%*`k72LICR%-cadIzK%(qo7IMq+jnXo1KwrahzV6kg!lJ*FUs) z$ftd+5p_(*XC~g>`}%=laqEforbq9M+8DPrAhBNk`kSXu4>pwg!>8En#M05mgoK2M z)92402?+@qZ=4j_*4i;$nD+B1f8B^XckXmtc=6)J#M|?}dJs3_!S2T=Pv8Fb(+5#* zV#{K-|Jt`(uk5>Pw}%`H?J@KGl8cIn*UumNKMn2Fx%2YaS#1w>k-yx3pvsxp4qdx; zRXz=UdiPwU?+=7a88P?Me%~hT$c*mXeolpvbDIrr8vfw?M#H^>C3<N4muo$-oH1NC z@AR}{JxA*gPb^>m(A#&fAKp7KrkM50?g6r6*Du-j6;JPVbWH678y@a`T_gO#Y}?*| zy$Q?PkNLX)x;1<D>@h!{H09-AU7lUGpDLbSZeY{wcU!h@m2$~VA0MwBGketOiOt^K zzES(DXZIGJXnE?^k;#=dK6-Iy_4-zqz8`;g`Q5wg_w`+SYSo0&^$#62JiM~!-m%Di z(u81zr^ej9cdyQ&SC$(`r;V9Y{`Ir_#V&Q2+UL`RU7NznHpu*ON0R#KjobIPUv2;7 z`PfGd`v0|H-JAw3$M@Oy^7O4g=k~ku%dw}!%9l<qJ<6}_6l422*B)PM_xi;0rrUa* zS+zU))XR<0w^nPm&Zus`mNq^jq1?bhWy_Y8?cBHM`kTLg|M`dU119OFhb8RYw71{Y zLE9HR-*xBVxU3qb&*_?+i(B@%@$ZjIptvpwecsBy*_)_tyZTlyT|c9H(>sMF-rDrX zrdJ<uYVp>sou1U5({#}H?dCOZ_{$H4T|fVP<F%E`=cV>MIVbMxJ=4;Ep7+fw%d>l% zPmQ&_+urbL{jf79n;kuR^b5!4J&nbL`EhH?G=1||%bZIaV#Wn;>@oQ5w6#6<B_ALB z?&U4(rETebF5d1BLeb`v={1rf>}_iKZyWH~1jsU<;L(pJw=Sn|R`{m&?7F>!XV)^0 zT{*aM;-^gqeYWw=o9h#sHMU$DIq21&%d@U-DE`S88(@#lcboWU!SdD_1<Q5S=3k0^ z(puYf)9_b;H?A6BdQA<FZ=ITW@n-4!_wU;p7ruGCWI@w4VcUH#ZSLv6_}Pn{C;L9U zQr$ZL>qlc6KffNesPp<{+m*qEZ@(E-Vd0|=uXk=q|GDq|i#N)CcK7UB!<)-Nf1iE; zLN>KQc<F)9AH1#7<go2_%h7WRwpa>Ir?))k`+5G(c7?6`Kgnx-;o8A*f9{BXRDVj= z!mH0)4es~nz=hV*lS?NR!im}a%{cn5e2t76zuqiA@OFiV7biD4Irh=JvF~~|FD!BY z-aYNBuMU<x=Od|=HP2^fS#SK>@9K$&h=}vmw_o0$vG=7Z{Bv#fme&uNt(DK^92<71 zRsN3YQ>FxNZ2#nV|4yBzg*RM(Y3YRN3ymxNl4sa=*>9b!TzUH81<}I}{NN}l<h*Tr zH~nb4_A{nU`#h<A`pH?fN3HF;Id-%ze2Tbs-~2a^CN-^F<I{3KU%YaBR_zOS&aA%h z=*F=T=I<}1-ddP(ZbipuleezdpIOyuk*!tn3#rd~kG>ywxcJK5yDxvzX=T%?OHOTS zcHS_t$)VsH-K#!<^D?lqC4WiW#zzY_4u4YU*RaZgdQDqRC`jL3qxV<-O<#n5bz@rR z^Kf?VO}iZYdPhi9O74rbdFMK<oBhUjasGGf=j?m??9zoFhwyVRE@^t~*|WZRkw=#o zYk11ixPq<6_|8lFSeHFMXnUOi>^Ro3?Cu)3`fh%B|HtBGB<3Cd>h|WIr*7U}JhAE6 z?&aU6KiTgS8Ps@U`EOn<oSiy;mOgUNlfc(-42RcCzj*IL{q&39J#Rea>txHJ@w1YX zp6m`hH6rWC;m0}K8sFYAwp0118&~f9<M)@1t~S2C^V5z^v*KPrzFxn3=YMZ!ySg`N z%V(!P+x_ff@5y(&Z?kq?`1nZIQNE??9cUPN;n0NHr+dC!*STE7yD^5}Czk#6i__<V z2afy;bV`e(J5mZt>TfkVHNV;X#m}z}ZuW4e<MG5Nb4pBDKJ`>c$f27J&n=($dAk?0 zw*I)ya#`DCcI)fA<3?^=eKM!o_2`(LnZNHJTF!8B$LS+aJCt2@yDTaH^<UA^S-(B+ z_6q89@*X{DCQK=_FMj9oISoHq-*ETyD_>nJ)#97E0q06YOzYi#_*XMZU3v24&w@RD z*6EtQv|ZkchK*Y?qZFL17Yo;R+n)UH+PKIzb=qx9J@$K<UrQ%6`+4bSGlsvYb75?? z5*MFU6w78*>ap>U=);rGi;XVFHvJ=D?%6)q50$+!xG-s9zp8)dESPe$8-Hle^DWoM zo_$L9{5<+y#<G56lJ^Yk^xfC<?tQcKK$BCQYjoN0n|gxoMtX;xwLY!aC}PX6F@9Bc z%zYDA_#nSgkA=^9$LrTW{P4qyB`+K79Bml0ZJ#n@UuyrJiQNx;v!G1ki^dl!J-0Ys z#vh)d+;r>rImI7dTl988i^nw&#Vs=qKG3k)qA3#}SGx1CQ{c|9mtPfs`U;Hn%SF#8 z)W5Q0@#4kTEAA;V;!2;RF$HP3kj&IuC+A+9`^UaFk9=N(jvo$kf26Z|r=wnphA(~^ z^r`B}-m{^1diUzpcU|(HSGsR}E9KR>u%t(s&$iru`&-koJFg6I3>??5_mSu2{<dry z@O(ygQ%9da#Fy%a3u@Ha;(y@PXD^=2Kl--smyg;U>oaZo<HptZ?Xv9jqnS;*oIZQD z@4!>@nj~G=*L&rXmoWog%!_aOaL>AY`xnjLJ}I`V|KE#l_gpaL)YLuUZ_4euCr%zV z(6`g?eIGr4^0vj{Z_oQjXEr-n`ND%Y4ed8aH+`_@tLGgXHoLit9(dXOa0kuhtJ5;) zFFG>hP^0cUvqr>!KQW<4%GGsCC-zGmH0bTCb3F#nedYL}(Wjs8+Vs`}d`Q{#L>qpi zd52$a`Rr`=M^53GxT#g%j=Iw6<=f|1$L&3FY(}I{UY+feACAfGQyBMfV%1w>dhf~n zo`iG$4;Gi)_jbyYmjO4PkNvjv#`4y`N{+q1@|?e6{=P9Y3&kVPpUyeivrmolztv1? z^5X3@%P)(=%Xik_UU_RkmnkoPy<hFX9=~T>-UdG1E1(<}&foC&+O;hPmv1(tow@9( zDjj~Qo7{Hd^Ed1ItgF|%N$~u=Z*Je5-n-W?t1eVLw`0fCEe*7*4{TA??NP9zFz$u< z;^R*b?Yvm#&fh&|T)xq|?u2W-Qcvt&G9aQ;+`iu3OLptfq(;-arbNTkNprrqzv^n; z8e>naZ!%jq!E&vj-Gm8iRxbSf{K|Xvs=r;==X0xk-#Fcb&(Ad2wD9%r3Ww^RJQ$of z5o#<YYvvcbaArWWoreytJbZBZq4CG#Czf6LGU@vM^VX+z8r1mY>!+2@EAsz()w^JK z;_{_zknK&N=gL#PhA$g<;$cXML#EX|hhN{cM4$8X@H?Y?ON7)on4TEFulJnQC%%|? zVtM4lt<#>ae*CjKYm9y4g*zKxKDlvs<k_Tz`yJ|OyQ%*EbK!+ev#ot9Sfiirc=2Rr zqns-hCjPi1s$RDyHTJIQ)w|b-k-b(uom{=f_!D28>TuW?SGQ%ajteV1_X}9{d7ZH4 z>-w}zJ$wCHg5g2guOHTZo4&#E+nOU)j%92*u=C=Y`(3|&^(c8wVEHiQ?RhBl^WDAr zcAX<Bt4}8SJYE0b;j}wjp6oglv+?EDo{#^md1hAIldt-Au9DV0X!h!6#ZtCcpP>vW zaq#Ay=g*C+YPHDva_j1E&h4mLZ{IU()4H)YOI>b%sG-F3Q(NYaOX@VO)4V4hPOf-) zyYCrb&%vAL=AD>v`q{n7Q?7=@N7OJi`6)f|rZ#eKse<+StGlgl{R){)?<)T?u39zz z*xjpxADxbT@#*J7`uJ^IFtGdAhiu7t&j)TYE<N>p^qgxg&JVrQ=kGsjT8{kudgPSo zLl1j&y|({iMA^6Nj$Pba{07^N!w17F@0(C1>*(}5Ti*HB?FP&F<>9rv!Ih>x{c1|R zx92w<9042A=WpZEn=1|_nqf^*+kS+RdZ`EXp7=@lzBTP$N&62Q^7iuz`#!09uIttj zW5%UE?tSWJLh5N-*s6`uS39c5`WSrHz)}x>*ZXk$0lD3;A2q;U)IR9w*Z$bCb<<M6 zyx8K<h)uGsw|+}7B)+_`m@(#D^>dr7-z<H%ah0{t$$Fy(em!W5b>*pN)y^c|EY^FR zk74tfggZO5oh_D?lYUv}p2zN)Q#uZwHeLRD*tPgdr#pZD;}1bQ<6li5{V;7@zOHiR z->)q?-~H`$qp^LjZ<6O#fYO_bn_oVeS!bnf{@!21()CU<OJ1cdJ@mYjbx@rP*Y-0` zuB`ba$rLzf@t4!KutPO_ZMhQj6W5m>xHP)|BBv4lKmU{a=I<UqH?y@aEUpXSILhi8 zH-lI?w68JC4q;uBiZyFQRSY#|7;I^ljGj#@c1nz`-k@T$roO7iEP8{CvavmTfYlgk zNo!IuH77gUmQgXZpCv8Z+@xYH=xa7wdYZE#U$<gtwk@+sMW~B>uN%gIJ?z;KSyl{9 z)f;;E%(CTVq+$P1?Dhe=KF4nS82-o6``WBI>Bb&8ng1|E-Kc-;lLkTa#|QdYCsU5q z3K6l<_z!(*Mt!7H2Hqh2OSfA8&@bEAKf7Y6$(8}U{lb`)rq9q<47FPZ8ez|BRtz=R zthTHs6)VNEA0TP7VyCPeqjMW-1Gdp>G-T^jt<c8=b1*tb!GY3kY2Ndz*c5A(jd50) zp?X6$6AlB6o@KMz-5U-wtz2}=i*f+gk!8#@>a$%_u^LU;Oe9imAUWx*4^9Dwl4L2A zt=J=3uAxz6T-|F%Ir}IZ!{nSDyk#oV)ocT~{#OLt@P9=xTe7o__UwPbX&fod^*>t% zin7-_Li<|m7OxHY$hy3R|Kkh$C`OT$eH7#UrF{gc=-Q;J%q&~aETi3?s?YK)%Two; zjq0`PdZ~kkMMa}h6#H??W&;mL>bhC*G5YTjaS40m$NHq^m`uj3_j<HsKVIwenz{EP z|9uxFZIP1+(k-p7ZrzXU+y{E-qr3OdSl&DM&sgv6;y)pNY$yMdMdBo!yHwM&+&ce( z;C@7<{u={6iuVx~d=&5FO!x@uf1eE=CGTE-?T_i74~@Y`SNkt$-i!SgwD;EfkC-1@ zDjE^@%Car#Mx#}qX*Z@-bWxM6jC2_5M7hs$J;>^<mY&dy@xU|42NbdId*qyKtBLl( zMbKrpVVcawIPDNvyi7|*hS773tu{TnA|Ke++AighZb?hCx^=3-n2~MtD4{wHJSwOT z=pcKh(FpxL);tmo-v>s}Yt#QTLs+Mdm#(YZ@PpYl{0B?uny$+n)<im4u;LuMmz@1K zY@>@HV@>`4H|(TqP4B6ke_7-IRGV3=LEZn*WTKoD;m-dUvng2=Y3>c&4#5Aj_QT^V zIG0@Ozh3kIRF?r`2bZm6Ypm<BnIH3zJ{AjobjAOQ=)LHFMSO4F|APCmrQ5BRG%vd( zaZRdpIY{+fn_TPTZmiUY9eCFvZ{R-rXp=sA-d*OPW|a3@^ci6F-lJ?a_BC4F1RE3? zrAUm~FtkB!uf<BM_+NGuY8G`Aq;RwD|B{bTzo?7gCiOAr<Np%R0W)|rvM*?d1>b0M zoGDA6Zmh{^xEh>{TSIGg;OO_W@MmYUJb@GX+AL{m_DMkv*sqLiyDSDDs`UPr8q(Ww z-<D4Qf;Gq!va?_va!Fq0y3}3}#rw54W+#Bm=14gHvEZ>JFi~b@Ux|L2#f}tJEiBpT z`pj1PY`xgRX0sag8G=41+veL!YL`gLfL>2yaFIHkh~5HRmAB7HPc>$#B)UC~wsd7j zyiCaGX*J5Cv$FI9l!;mT3_E@xA?skXz<SyO|BYF3875mXsh8eh0Fz-!wOB3L14=}D zmpWwGGL2c;7NcDeo0GvdkOvw<4kU7E_I#IiZB^}TU~oO`lKAJ7z~onARy#d#tG_~e z)NUmvNK)a0=uUR1W0_ziWM)~ijp_tTdZyLbf}MBg@=zp|iIBuvjMg-t4o+j&LZ2m< zhLR<i^_fO7y?+gZEz9U1*O9q)#;lfB3(UdC>q7^*G>R&rw<SZ$%38u0b`dLJMRGf< z<ol;v<(YaA96O(3%vMVCfSfPvGi*YJk?}-s&(1RH)0J%VF(=Qo*<oB+UznB6N9qM8 z)}ohvfi()3qpEO8lrO`K%jm#nr?A*NpbL|xwAd5iOk^6<<dP~;q~&C>4_P$Q1aUKC z^%ko!%@?NXDXA<OmTU_g&w)nY%q%0Gxejbf8a#%5fhn$$1N3QWY>V1jpdGfvt}?@1 zBy5%4Z0jdwl~~JWud*BTRw*kWVKuh6$f>c1tKgpodOgcFz*Sbo;TJj4cDpg#uf>3D zBNI?obn+-C+hVmV-A%#HoorMTxtP~R_Hb^P3Moqx8R+WesZwOyq|;g=uC0E6EhoE` zB}>}680n*<@~%Gr(C%+7T3yPL(HFRjU*WvhA&{-H$Z7SDa~||8eLuYB)5I}`BaS}X zU^ZrjxJUn>uaIT4Wy|cS0)!0EUnq^xS4h{}dy7uboAf6G<ZM&ANRO`abUct<q(@gp zmMxnJjZAONH0xzdmC7Y8>TA%$45IDQ3^le)eV-g-3%6#5y@rjmqD~P_7AwesT?r#* zq_qPrtIT$(7D*%;w$8Go`S!HhQuWqETU#5{`C2hew6$iH%AUsT7D(1ELJo<ltZr@O z3w}T%$cwaYwX?)@Rtf#bm6Bh&QE$)5GN!eW*5WF5#sv!L;Hvn7xI`PWbM)2(I0`<} zDxE^)k}a<~X_sR`X#g2J(+GY=>w@AKX4@i_WT4nXVyDu@>MrhFS9k79X?MQV^mtF2 zcx!f+8qOgsg!vCyA$WYF)B5T&492vgW0i2pom;O<IyLzHLm{cPk{<KbsEGLzfQH_u zHJT;~vxJu_Zsb)jm$bR&eLdlyWke1~Tdl0xUede2w<?#LV2k52M11ISkntbPNU+0% znKJI6&$1h{1T^9*M3M}E4~yueyq}~AJ7r2mjZ|y}-lkNcmMSERpz&N8IMF@Mu#+@; zJ~5ITrNDe!a65c5J+?*dRMs8z8AfYycA|9P1Gn_5RrGK=HOd|?{jBKWbj?K82C5vF zp9u7`RE)VSD>{+n5{~F3BZHxh*#WkUL|acV<Y*L_Jy6@2fsiKd3k45X{F$cq;u0&n zkwF2rX%iQhke~#@UoZxVPUXzQe#km8#S6JcET@3O!E~{rJ?I>)3UJjla@CY^E3J>5 z2vL&oF3x9H=krS+>B$bL%B?=Sc(PqR*)N?+x1;Mwy;tt~UinM4R8C-;(7VvpyWm2T zj*Xvpp>`|5Vz1pwCDp}2R-SIj%CcoC(7=PL?&8XH^)uMgGjp<yX;M#3(PHgZf!?P< zl0_aO47n5_$WxgXl=pzcoMV)+)EAU|RyNp(o;^VX)ON7@u7Yox(^N1*!5$Z@k(Z0* z|DI7P?sd*QCriYW)g|4kNZ0pgyP$-Oq&`K-L$~vwn}sy6ReqpKZ5~_TgLO`OsKI<Y zW476r7SkUTg5AgI=A(^MvH$>cDk)yWtOC6^%=mj<QZO7T%wae^CGXj&WEqG<?EaE_ z4a!?8%Yh1*A2lGff)kX1uSeD1vkdlHwwH&faE&ULZc=3I`~`oY^H_BWw`dpjApI>F zut}hk<1*4LV3AZ7dn=nEhdBsYPE2Q$(p9#X^tfU!YRr|f2YPRi#67tb?Z{9MWeIqM z1$3?gnFRq42p8Crq3~8)&xntHvRo@Fsvi4XIWoO}qy=#^^j7hUn2rf?y7oSGYSgR| zRikFTsQUFZ=xlr;y<uji&R-H<Jlw3Tj!sC3NlfU`F($fIS06o|ayxjpX#-Rp+D3Qn z(Xwq^%g>a!0E5+H=<U-Xx>G`oRI6h8npOLC=%{PmF(x5FYVmdL18emCLf5uaJLuFV zx_#>yr{*@m8R=>ClbSkpaQ1Uu*sy*Ysj-!=b9<@T-*bs2A;flS+cu$P$Cwxwg2xa@ z2<>$p+Z93Z7zT!*$i(x~Da$Hlz<m^eIq9MS_5l58_Wic8Q-%fnB~*#U)4bibM3=t_ za@r}Q5BMJzlf{_E*oxS)gv98MiIV8Eb1zG18`mmE%_<;>$pp!kJGsK@B&MVZ35mK6 zYG*eV7(fKo!?nwP&hWLrR1Ao5X5z5jq&FCSz?Rt|(5wN{BY-lrs#tJiL^<VivaF<8 z1*c4T<S9C#wj@)jIp6?VGDJ&8nz6smB)8|Jf;RLs>+QOJ8BV8cKv0ngw~^!lgcYs) zcqm)GC=#193s#I0V(EV&QpP)OZ}grbRIva$8m}r8z`Y)AV`39!?B*gEPgpCXNuOh7 z^8m)RGiK!Yu@1~wpqr~`uj`S}GP-Sy((bB~gA3d<+pNaZ&?zw%!xKA528#z(l7c}+ z;;+xn2KU+%7Q#-0Kqy-3+I46flNck%Eif93NuE>@?@ICrvXE#t#?MmJ9^fo`Vt7@j zj%_;{K?d#FayV9S24w8)32>IpGLzM213h9i_V!Ca-Qo5b{p>}G0c^!imNE_Og9oUG zbU@T;UJY_QIMHo=+UfALw~dMZB1R?U+vy<7A{Ay>d{|a8Eq>9hTE(>LkqC@TjBXvH z0AI4D*<wu-EU*N@030pmW>O9GT54d}t1`K7PgI`ct8j*j78$#B5Kve8q~Z=RuB540 zJ`psgRb|Tn8>Pn!7P*0Ga8>)5M4Urnrvy1DrMNF+d}7)s#&qlv+cCObj4x~sn^zo) zxR10gtim@st0&X*G3X9ZV}BmZrc4TvT#Jd$R<S5va&ACbq6mN=;lpYrM)2vD3;}r= z@PT~G7-?curMhp0d^0Wmjn;$=&<E&T+S4HxG^2AMvA{k6WF<Yo>(5(S+0x-G`5JPv zFi4b2K`vv~$V=b*!l?zpXQl~CXieRvAoOK`oD^+2JG^(UrJ%{jX;pgE=@BJkTkPxh z-Z0*hr!#}X>r?IS0K3u0!<rzsf7!@mg%s&7w=8==rcr^X1uqSS%pAKJq}pl{PzkD- z&1R=ZmKfJArlTKAd$>-Sj44=BUBL4#ldKk;8tDu<Jrq3Dz93B)f3?iXvV+UlGfSUo zwiqDZHG&ToYq44t==88q7(5WH@X5$YXIl^4cKc}3eHV*+yC^&A;1t2R=%|o#of0u3 z^^!3!XGraRcdc;QJC(<>sXQji$LsP}78TVfDoWwH!If8M<>IdSxSXJtXw`yTwNebw zl35iJMWdofBM~gN4ZKofCKh6sOYwr3sZaaTm}QfL!pJfhA%Zo71E|#Jfa?dUeSiX( z#uSl&86gwwn_#xtvxQ7sR<<Gwric;__26lyv3S>(H9#;~tVS6qt*ikG6Zp7zu;d+$ zJ!AT3&LGKEn>DK1ExA$m$Yzz2KB?BIS~IBV9@#yzYBg+u-)c^b=1CFN8Z~p}sx@m~ zt(m)H1R^!6+C2>$;8*J8BGE0mS*7lgNfF&6s{vv)XAKg;v5*QY;K-G#)?g$AV}GMT zk&|HrBamsN-9I5cNvN2G5x2oes>tA6Sh7hIA-TIfLI4OW4u|UV4-7wT)JO%k9Ky#m zV{|s@K`m*d8%^pa^s-qpND`^xn_z_F3!G)@z_*B3!8E)zo7m6>qn9Zdj25d?{h~9Z zkg}aR2w-UJ0ti(XOuC9v*wMxL?5cFf8VXmOp={y0){%j87t>Mf(ylEUBZceF@_e#w zZEgL)71rC0GWL>yx25)y8Bms~(dvVL7zY&efT{$$mt}#IWt2-Xg@6?T^Y+tO(15G} zR~{n=8N0$)dEN%loJ=t%lNlQU-!>^Rk&1W<l$fxh=zMeJx+`LpDt1B4{vJ@k&+<g) zS9vn_DV~6z<_Y)}p1%i=xdsBd1uD<CcmZjWU*JLWjn2rn0IuGih}tN+)fdt2TY}2d zdshdz@28`4vTdjYh4#AkVDX$Km76toU+F5(d2^(8me}PS51f)q7in_obqJ|Mqx#e2 zN&+rez;6`<JnS;|>P768W6!pj1_WeFw{FHx;2E-w;$e5?(pL;}>4lYC3QT0oO35Xw zL@S5U<mxKugYgGgZJEJp)Mu#-w#)$?&;;52nG%$=K59N+rV4SlP#*?(-QG50+E}_8 zgu`#79pdCt_|iF;1oOeNV0Ca%a7b{);PBvx;K-6SWn6Hh;O4<yOLi;Sy=1aNujpBF zJdtrFXOoh1NXhx6<YH2C8B_!xAtjHJ;A5oZ38FYjO5Q-E2c+a*_#8<~j-`rmwB%$e z;}kO?3EoE)hu~R)gwzZ<N<)s(kmEGu1PwV!LzKa<Xo<++>AZ{!8BaozL*_ybP{Tv! z6U>AxhDQlm$TC(cafE~%#foDj<ODoJ{*sW!0y!a&sE9zQubM<g)%2-VyH4GD^&1f4 z8%!Fj8buaw(zF?r{hF7GB+-f%EuGB@|5hzxh$1p1)>)$|Lt67~B1^})DhRKPCy}3( zZCkEg17-C{(!RVdv_k_@o`|X{B=U2<P34aD8~7wtC6S4W7M;GR-(Z^{5-L(b<mDm} zMWPg`N~Aub;42b8QP7A&fG7ltq?jlxE|OqTRzj4O6opcvytGKlh@`AY%85dG5p)`@ zAc~blS(qrREb>)EMO9I#CMrJ>d9A3ZE($e7Rg_3-ib5?>U0Wn|M0H(JT~Ack7u5|! zbwknjQ&HVm^lc)ln~LgYqF=PAZXxn5MRhAt9V4n^MRjXY-9}W$iRyS!{h6q4E2`Ux z>h_{qC#pM$>d!@WN0B6m>O@i9NmPF!syd6RE~5XJ%FaY2-9=TBNP38>6tP&USj-@* z(v(K3H1T4PSq!p>LA}JF-eQnd3`!S+GQ=R87?ddn^$~-z#2~vElr0A3h(UeDpnhUd ze=%r)7&K4}`brG?S_~Q_27Mz24HkoPi5N5lU?{*afZ+fm07e3g0vHW224E~~#yFx( zBgzya22TL^7HTHKBr`-%(PR?j`ijAm;n7bdQ{XWb;5&e9kz|Ubk4UCLr|D3UDiWYf zfHE<N1c(zL9y}9Z7QpvVo((XUh>CecEVTgg3jr1ZECE;wu$+ke3V5z0VwrkknfhXx zRghZ^um)f)z&e2S02=@{0&D`<46p@YE5J5@?EpIfb^`nWqwNBUZA7vg9(w@x0_=mP z&%`o6!s91^{ZREYzyZh~gy$iE!$d6m3lYm7Ct`(D01kjWfP8=gfYShH0L}uO12_+G z0pKFQC4kESzXDtVxC-za!0!Op0Imc40b|?*xJATDw*mfy{2h3HCRVx&k9z?3iAWz3 zu}VF$N`0})-;jF*@EG6;AU_3o2JjrpF92QwyaIR)@CM*5z&n6KfLtn883HgAU>Lw~ zfDsh-3t%)A{l`$TDr`u#@l>of0pMGJi2#$JeF_ynnF`PE0H#qfVmdr$P*FRJiovr1 z=0JHaz<hv(0E+>Z0xSnu39uSqEx>w!4FDUdSbY;bHv?<|*b1->U<bet0K2KE+DpY6 zKSF*#fLSENaDO0sfQpfa0geFtLQ8|Tu!zDbXm9}J0pwFrD1hf_fHMGR0nP!O2e<%m z5#SQQWvcv@3d$=0R{?$ll_UHP_1CEAd!33kuR{J0fExfe0d4`@rlQ}U@Vo<K+=b^o zfcpRs03HJT1@Je(BY?*MPk_!!qHF`Rd`gwiU<mSpiVa^w(;I-d0Pg^Dd65hO7z!{9 zU^u`CfRO;B07e6h0T>G~ju-vM!*c?_w*V6XuE2CA@yael*<B`*ULu(cl~Z`J(Nuu% z0H*QEBqDw~1FB~Nd=D_2FAWNIKI8_$p21@g0N|6}uywq093jftL?%YA;7g0jWxS|d z4ls`>#1<=gWsXv8f%32l@Y6-Q8Xju^)&i{K#TIRpRTZ$&yz)D$QceT?O*ZnP?<Q#7 z46p@YE5J5@?EpIfb^`nWunS-}z#f3Tyx8Ulz%RTQ*+Xn|0<tFoP60Ro@&NJy+9+H4 zh~#%by3UtY!=6FzHozTTd52ev{tqDk7hl>}jC=}2U+|*tCBQ3y*8o6C_l8#<Cw|I_ z1VrpD;JgDU1jrS{7DE7r0t^Ef4%;^ZV5Fd|u25F;FAc_M6qH8`%C9xbl|%!(B=|kz zHOjGqM%hcF?4ePPgWMCU5!*}<#5SPQ+VmCM^b^~B3#EyIauT#o2AB$P7O|#6{dj;W zg5MOdb#10We!8H{&?x(Als1jBpGG+YaA!gr`5uOz127L@fuKy+h{}Zm>=P7M2+Bo> zvPe)a!RHb|xfGvE1?4h)E)$e_FdSJWC|6>6CG=Yj{nh}ih5R~rt_Rp4C~p#t@)p2& z7<Qtd@x$jvfZi~>Eik*Sf*AP&z&L<?g7O!tQQqdEZ8Yv4wBI4ht-z6ApvyLR{*1#N z6_m%IydU5=z;>wL0kDGjD78MN13=sYK->b9yNE&=1v~@sY_k$J<Rnb#6o5leR`K~k z`uifnvA<X(gyR%Mt#&=}Lm5ISJP1eGS2L`F{~&R-N$mosA__vlFM@&`6H%h$!l7RD zsH=}O3km*PKRl-pl$?rJtNn>eC9TByBX~#`{ZRq<cq6E#N<y$ji5W;Z{O=dU_rJ_= zzW*Vvn=oSyB%B{+AmRKm<L^Bs4Q4c6I3yszmH4Tg2^R<%C1iM|udfnz4LDE?@r!w; zMTxIF{g81A7vuiJ#r|)}xEJZ-9w|CaZ)y4H4@DAeway<I5rUM(aXBg#0r;S!TRek7 zJSqP{+56{%344{4Qa>3dlql)z>rJ>6CL!)zsUqisdTNU_5g`~8UqlElIwgE6TvK(e zLMFHpLHLj@L_o<BR6q@LMVkIye&1i_|E^4F$dtwm{y}9K=?u8wpAK1RC#v^Pu*4VV zQX~e-olF$m;E@hrU>)H-6(veK)tmq+?3;?mcEU48sZi;0h@ljKb!9PE4wLejgkn+w zlZue=l>`~)A)!PjW3tRCLGY+b<>NzrO9BN-IN3kRt#5HQvwxLWw=z(A7hD-a!rmtu zfRe)V9_b;xbfiibcjA<&Tt(@_(X!zjSCy-VNd#1?)t_)&Nwr#w0$rWsYH*Pp7sb_t zCaxC8)#mDOTwS%g9?V3gst>7;PXm@VgdGw1M!0F85{_>SOl<;-Zb~?@8Q}t&6Rt!w zaI^*CO0^_hNGrmXjv-u`Si+TUO}KJx2v<H1hOEfNf2P!sww1Yd@yY<0RQnRjK<*Qw ztH5bHKzl9zbIL)4%SCl0T+IYdMiV>ruJ;Ay>UO4Fy)Kli--YKIbfsLwFDcjPOP>3* z8|4~z<GCi?Dc7_+&oxV;T=OKJi%zCoi)5Z_*@JSedhlFK3gu$;lxv+zxi+ah7iXYc zyn*LFOQT%dG@ff`q+EL=&*@B*>tN!!&wEm?V^5w-FjFqk%yXSAl>5TMbDeupu1hbT z>)M-gU-ss?ZdS^5xAI(4I^mKt2-m|#xRgx7>HAPFHH&ZtJK@r@DQC>)Ia3bhdiJH9 zxgX&y{R!7=Kzn6zzU{!TGOB!y8#IXHzTpN}<ZOd0ahbWKBG)IERN}IRK+Zk{a@j*6 zmopS{eTNa;iQ!Q0Hyq0SM?h}C2*?c_3AwLELhkEPkQ+1#a^H-G+~CoW%Z2E&A~yum zO59M0GAnY!Agu(1#zB4rq?NdlWIPZTW)Ly~l=3J@d2TfM7V=}rL`cU%XiK<pWHO}V zA+ROf1PE;j_bmjsgqsLaE#W4S>12Si1UD5#g(^#O(+Qcu<b5WoqAbPDCj2ad^8G!j zz|Df_mO!rDOri|omJm7ziVGmzCEQ|Cx16#xx1Lm;2k7&$8js&X!X$YSVWPYk9_67Q zrb}76jHSyVt;nrl`IRhP1!*X^nx$(Xt-!5?v>dmN;K5tZCb$6^OZbh_W0UmQ4390K zGPc6<my@l)kQHPb<X1w<1KI76u7;EX*&UEyOLoHS*O4C}-9dIix)Y*k!u<eoG~sqZ zBu%*85K9wo5BU+&edH%de<X8&9s6PB6}X?teyBMB!L>|TjysB3nKG2iBOoC%?hUDW z5QaHT4#JRUAnNA1vyf8m97NwdcOFv8T_8swy$C7KT_V3gdKps6{Ys8P{tBd&yGo8h z{x?V|_d7Wb`D>6;?m9UE`9C0~+zoOP@;4!++%0kn^0y(S+@Hh&`8$wO?k>rL{5?o1 zcc0`#{sE+vdq@f({}-f``<tAG^bt7&>0@#h(kGDe+*5K6^3NdUx##3O<X=F_b1%sS z$iE^NA$?6Mf^>l7QlCo%r3lu-9={TFm##n>O!%vSSxBxz-(30|ux}VeCJv{+Lpp+9 zgLEXl4(TWwLX~0MSjvRb7X<4MqO8nKpe1ggWWicNuwbp2-ewqovh)sf1MZ@%(|aiE z^ghZueE{iX`Vi77^e;%K(!U}7jy{5P8hs4ubovC+8T2WnGwCx(XVK><_4Ea#v*}An z=g?P>&ZVy*okuHFQHFC1DSZQDR^i^VbPIV$lvTMUlrMCjo~0B|&oUYYGuucNxfG<5 z=7JBgiVlJNYC06sHIRZ-(qWKa2Px03r^CT!ZJ=e#DI>ToR5k+KuK-{V$GrnN9|djO z=x9i{(=m|l0H=K{4d7wCFfxwHiSRuo;ar3}Ujyt$I`1ltryQ*c?Bw{W+!SB|QGSap z^C+1}<y2Te$s{W0g+-K1rgA}8Ldg^=mkG-#nM&nyVFe}MQMo9rqGTGCD}*(aOs8_C zu#OVg@wo)gH;DWUn9yM|lLiP!$SfKl`vs&`=9<FyFooiTpA9%C$sE8rMdkvI10)ev z$c>>e8^GL7$$XsBPD&Qwly*_F5T~?<En)%X7E^8o<u+5UWGJZ&o<t=Q2aZP-5)Ved z8fhnRe09=Z;Dp+wgTTqGBthWhpcn@ToCw-*I=H+FP^7#-l%UmSVx+W`ka7a&bC8g_ z0;fJk;D`&v_c$SoD1=U0MLr=10MG9&A>Rm`KWsupfzynmBt+l>=EHoUF%Vc+LEwrl zr(_EhgEmnTCUC`J6=el3_&9`b5Cig#sMg>e@KmAnb3~;qrrMuqo^A=HP)h}cQgw<r zqC!WU3C)$A4dc$i!ytr?FvuJ!(}_9Uk<!jw&C!W7YaMZ%BV{QyEu*I8)U0)8S5WOi z8oQDb`?-R!!ct#yT*}YH-Bu7r7R18-#m=Mz>4tFzxx=I#Y7jM*LD!~=sq%6#RH^`- zQf0BT0CP1Zf#CfBR;sMm8d|NEC=WPYSf~&c@|3kSWgRuGr}_;P^5Oc8_(<7AO`EBH z3w7u|<s7=k9IT6{RH=g1IvnxgoH@dwYl5|cz$;bdp*Fr6m;2dSM^efBeA8AMyN#0g zlEnOp6HUfLVAT!KOc9}LA_8DHsyR%bgsusM!`9lNYsxv2YQ)#z%+(#H>Y+Li9Y+%2 zR*#P&=17MrGEAl4K^;l8<7;!~S`HKZM(SWk99o608FA>E;}CKlJip3$rXOeuHSMDL zrrlJxhtlMlSY_HvP5Y?1W>O1X3q%$Ls#1UEi0T}12FB59n<9?_a56@c^dpV`k#e~| z(sW`ZR$}@|qS#!n`<_s&N!m|YC({}lzn>Ca3~9}gpWz@wHw6!YRKt{d(<1^QD6W>G z)gGWoyl)`Hnn^LN4E>;w2Dp$CsXIWq<oe;}`pFH#%?)5`N(uzj&~OkNs+j9ToeHL_ zDxDIUa){=cW{|M7#VK`6Tgjr>!!Y_03d3_gh!T?A5ZlcSQzDaop(zakG5!}y^hZ%J z)f6z4DRsiqbYK#p!q-*7IV=2d=)j~lx;7jN!7*w&PW30Sum1-vC!H-CTyI&dq^46e zB^G&vrBWsbO=*oKKnf6fmHG-nexHpplDu@--@3?2kOz<hz&GV#FH=5^uPZaxahU3) z@TQ5hxdI7DrAf58(o>pDo2xvfDYUtdr!<u|S9?m|(dNFM(lpxK&r_OCoBO*;)Koy5 zYn&yAsgZswVVQ==9EYhsZYNae_7P4aO4+@HOFE6{y3@D^<P3;_pdf()NMf;+I?0Xl zOlN7tS#zU&1qE`zh+@ccZJy~IHJzv0=QOA+$0awYVs4NU3A+G0nNml$6R5V-wd7o~ z8iakK^Gp{g6QO3>mlUKvskN>(r}1MIcnVT3Qr#%Zr8K~k&bn$Ko=>h9ZmyTqO4kYr z6-PqV*(Uzyoq}<H!%`Xqz)Vx>q(qu7QT;Z;a+fJ2ztY8FX^ZsRadjnlI8|+3rz%og zNSg<CBKj-9qR14v=_+kr%q1Qoh*t9;SBaW_qs@zBDd~FxrQd1uV5jJmgk$Yr&qcFl zU{#ptH6U11ca4&y>nwMj5{(A7Bq}fJOD^JUMARqgq^yFrCcYIa|3Pn1u9N_}YZF2J zQ*(MmfQ+f12JT$FzDy6n>5?Q7uuMbAVo4yeFq|xoy-8`#87Kgj)SkB}_7<G2p~O=; z+*LW;S?Nu0VHjP^8V7sYT;$ztxg_Z})`2wKX67UW*Wbvs{#x$!*K)7F)<3P^0o&-| zL22Z{e#V1(lG-)ZGW`k8jV}t(9U#=I@)4rD1EYFP98uhisAakf)4V4!q83{-wtF$c zRe6_sF``xxdPNyg%Zm}UiZTMuRk(hK#E)7MKO9wHMI2WKO;HG}L>G<cunJ&-gyre( zgGrF2wk%@!;#%ue24y>!skd@PE9bDv@@ScwvdYk6U_f1(%wdYvJ)mw?<}kI!BA)gA za6YfI9Pr%{YOVuRLMgZfl^sz=E=3lV@&}1ZQAMRZq){pAsFW)3+l4F3e$16yV{Alt z9>=Z(y{O6&mDD!03o*w*O&DIGs2x$s<EZv~Y95CYP?->!Tn;mg!<AKmK0*-m`HSLE zpTTbz3WVdKEgUf=-=r!ba?#zX8g!DCgie3EI>p0p7anKS4%#CqV81u)CxTqz8;^o# z5G0*#B>CxJ{|eH12kLGBw1#{fpZtiX93YO^*_4<cQB5F<Vyb|$XplLDQP!GNu3i5z zeM0%Cpd}S*^)qlI1%L7!Tv;XPL`p=35BO3@XAUK8IIcQOT3!|={epTiwFLZj5g0Gq zx5i5rCogNec==Um7n!*O)YQRiJ#4bNng)h;k((2sCLKq6Z@n3UOrh)pZd>k4Y7iWG z`2}%&%6J+Y^a%*XOKN&Wp#gZIoyEt#28SvL6y<oDR5g{=ya6|>D$$Rp(4}t#Hdce2 zb`EcPi&ffrnAs2rN6i7^^$x^mDsgH!8wHONrP(wnG)Msm!r&aq!VEGUBssu|ObU)> zRm2#a7bG2BCu*K-utv>L^YjNn_@@!v?mkGdw38w_enKvBlRU&oW+BN4M9C#yG?k2I zE^!k*<R)tWfankp(Zh^rwwvgX4~Y)(5IyWBnj_;C%FmJM0cRMl3<(b<ZBi!C&|;N< z^Ao^;Y8N2)@^PReaMFj7ltOCC<)e88g?@Q~z==E)FwNN+r_vXF^ENn@p&w3VDA7bX zr-JkbIZP8t7*`Aod>&>O=V*91id>HVlzXE6aH1XGpXl)a=0ue^QQQk>Z=7j=oM|l1 zbohre9Zob=F=HMk>E&Jiqmtr^7wZ0Uzwr2+uAZX9Es&@6w152OQzqrQ>d*UwuGy zq=)DUM)Yep(UBh#9qA!@!cBD02Si7Ch@NCbzi|^C^&!zw9-=4RL<fIBboBc~bBUYk z=ntum{utFE<O8x}JY-KXvO`%k*aUILd`NZ-(Uf<RJ%u}oj(qG8o}jobLLqdHH0;BX z#(G9_u#twdkv>J7u^)~!mT1a4M*^wvjPos7ghJ#TXT*o&jPs0>$Hp1yVbr(}#~J5g zRGypcD1y<kh+W2`3Lni#lmN#BD<l$m=J9|(iQ$i7_{Bi&59I@4aCpEeXcNXk-?1NQ z8|rKu2TEU|oC?lN_}P?Ue6IS8W-vrfc_|$>2ikB}<4Ndhh`{`rdpDjWb;yhDKun*n zp5FItKB#9Y{u~s#IuLoK`;Op3LW@ZY%GaNj7NiN~xO|`@If;Y%25O47gY6%LOvp2_ zDdYuwU04W<8c!%p4y=nK4?LWF@MNHJ0;@#lBhL(uQoeaO)_x0yNugArCnGUrA`t-X z7?I4-nb6#C&N@tAhX%FtvO#C^w2LJZg!4(N%8HWxF@KHfC<sI?PrF3IDF$Y00!6GP zZYwo`BGF>0&^`WZ4#vnwp#{mzN09=#$;T~+ea%N50g50Wk2Rd#d^|I7FyJ{D>`gve z4=@q=sPI9n=cBeoX+~X!(w1)?1dE!)gsrwDY{jZdGIp9^G~*BoDV8pRr^su3Jrx(g z1LUFaWax_@Iz=Uo;EQ?z?cukJD0x)_0CNiQ+{{dcyi(<Mf4)N^iYh>4<cCBCz;73Y z(><GxyE2WS7nTU_!M9+zsrg%)JdtV_Q1e8ZJc()-QS&64Jeg{jQ1fJ(JcVkPQS%g< zJe6u!Q1eup{2kS<qUP^t@-(VlL(S7@@^q?QN6pjG+E0famdWuRCEq-QIP${7<8Ylb zaEd}Pmj?-+BkiJu31Qnzua(UL4^OEogS?zYw9EKB?Q%Z96GU-v#`E&qOCH7d1aD<p zIHJP1Gl*x}O6_MMj{>bsdO)!*&or7hjp5zdu{`>>`$=AY@r#9pjxRX#Eab&(n3qz8 z!pv$Ue$HY13<rLW<Nv|mRXG_t6N$`a+aWDr9^r|Pk0xb2I9I%B0v|~h=qKPR=L1n6 zpAt|T1`^7re9P-5@?7$_e5n3gY+pcRypL}`*BwHIq3DZ-=Ds88Jo8RdCh>vN1&)I? zCA}k{{m@YjQ?ZaDOcno*P}U)N5?{qUiAV1>WioG?!Z)8soR>SSVk+N!zPm#A9S@7< zr|}#Kru=vw|BvjqJjcHy+`<nQvrt;hBDR=vxESt(#lYy{Fgl<uW^2m)w>1U)r)%<B z%)<8<v*<rr%o5lom5=+-EX7S$YGIS7e|(c?5`->3Wu04H4mvGkG^Cwg4tXCnGX@*b z7_1-y^-)JL6}SN`(pECvrHNOQzUVSzM!TMOU|Z~u1SDeya%rW9&_*P*ipY5%^+ZsT zRnG#gjX-M^2}I=qPe&g1gpNooFt{kuyoD~Z4$~UqHUwK?_@>OMT0=mCEy9|`Ij9v` z*^k|wvTP2h<9S3oifa4jYx}Xv;RKG~eRl3v6FID~HCy2(^1%?FAQ|XA8hSIse3;@@ zo@>+(>8<fBd=oBwEtm@*br_b{lfY6i<3MJz))U=Kp3^9t`B}Kd+&Yv^bvZx|<ILL# zrrU`lsT72>-}CXMh;9#yf7cV4(nmd+S)3oKK^~ern>UD|xm64byq(T7FMv+-Nq#{* z98mK-f-7+3r3$Gs-8~{WbU#2eTqV8=ms=&mps1ps!>203^>ZOL%>&tw(9P$mE6+MD z;00FJE#$dW1)Ge+w2R3nMEX#(h@a}b`q%&xs8%bI*O4mbbvW0J?uu}!ViPc2tqxCG z%qQ{eQjlGcF5y!cNAY3`c^uDE-C`CbZUzxltAkzmQ`l{)r+Eu_R%&%j$^xQQ1VMz5 zvXq4DC-EuE2y;M|kt$Gfb^eaV^8`C;@K(-QIn`AO)V97)ZJ9)EsYGpQ5o%LEM(sN< zYTIBt)#^Z3(=@N9?M0iWdo}IAIruFVr28Y(EkPK^<AXYwFt&)jONe<b?CV+*7>W|K zmcXto<(qFH(q$+sFXNkUl*+8vUc$PqCrlFYW)w4FoNhVq#F)r4jKzSlSTgnSbZ+-< zFG@Ek!&?G)OPqL1TzGrD@b*dc*05t0Sd-(7r1>U-%VDSHjnoHKqcm%%d;4A;qw}Lg zXE}6RPVh(qoy~;t11eHNO!HAsQi%wwSm3E(6n>H@ECmWnB_9l)Y^3H}yaw7Yp)CWn zWlpqZPPDCFXfLJpuK=_aPP7$Hv~6B!KTFhB0@_L^+Da$db}zI8651+BC8{Kqs6EJ| z#$yPFB!tz3sYjJlJs#$nrll*uECg{Y!72oCJHdCC^apI535+Wu=jnD6_TmC^lK%Js zB+N%$3SC&d4tL7nL@ycK<-yqJ!I<QQu^X+Wx)KfrGN6!T08a;#9fc%2cy<7H&&P1X z-@~mU;qHYcsMTfj!j$WA_Ia_Zcy0vVaBGk9tgv7NXw`k-Evfwuy5CMzMN3;14QkbN z0nW;ZbeZ$|tNC6O6uFVT77A;;BnR7_2D$R2GE2f5FGhWngMB^K&N|Av$<rVaq6s64 z204sdkK5^L;-kq>jQ}$|#t+pV=NCYgYym^I(lE}i6k@t?X*78cMb?IsuZBJJ<<`I+ z`f_W*vioxDc>IKGJ<rJmZUfKBgSa1=DXxZ0ghRk=$a0dWze@1#&PzLbRO3%zia_-y z%_X|IEK=FexHhuLI~~&kl;@xxNN+O<Emca&pzFh)vsuivS-Px7?zEpnT<;(pNn1!| zhkqD}-vV}KGr<l{@8u`wkp>Fjy<lfo9~X_*9N8#&G(R(`O~92&lWBl+SVyD_e&{wD zy5+T>ONcbZ;{P;7CgX_b>;y|bz|3)olWPizYwS9BHtPr|2hnL#MS|0`>7SjZa`4+l zUDo9{)rEeC2)@ad{HDXiPvnJM;H<WQ*PiCJXL#*dUVDz$p69g}c<n`Adx_Ux=C!}_ z+AF;FDzE*G|H3cV|7^-;UVDviL2@_q=L+&-x9}v_-yn42a%Bctn4dweDTnWeg;cp| zD<23Oohr*`d1sX#a`K3u4Dx{Ug@vggO5715gPAN~zJdR_P#3kcN!#G~Y~u+Ic!Ss8 z<XcefEk1TT0RRsF@lQuUaQY`7y90+lR{(KG0MBuqIEdP_4Kgfe!!%mKGzwB>Fr@Y_ zAG;HABMbr}gW$8EJIzW`g)j~<@cp$^BF+*{Q#KjMrOHy}#kUj|=EF>X0Ug5&pE#oO z0>GioYr{@APVXM@LrZXKSi0{nL7$_*b3x|zcaP!L@fueIChOu`*8DSy{&B#A=$-A& z2|(iU`rUnVocukUOa1rgubd<Tuq)F!iO@DlKLDG4;K_)y`PzrP`-MK<-{lvCQT7%e z+VFk()Yx4-u>%*vqBck_BdoaLI?Uy3|K=B*%}@HCMi^u!NPjfQap^FoLavZ4fR&sg zGC@%8q^`3FDvQMtDpW*JKrNQ*?^a`YYOqc72W$lD9Mdp<D0r%%7^|`3T8c%Dt2m5z z)~*i34cd-6Nc)IYZiztc!O)<_w43jXcP^gd2y{wW??-e5n+U`tVVeW%V{K9x7Gq&& zbEz~vs|+t>*bD{jV;n)IeZt4?;mHE+Gk(DWMgcWn=xV%6MYIw44wT_PXR44c7%{@B zYjNfh53GD>P_e>7=_Oe{zL+@Yd@q5Gv<<1efG(kX`6pDi5A=wN`w`Tq!2Ja3Q^oBE z^(k;agZlL69C%8FX83W(*}N2CGczkG!l)5v(X9N38xA{`S5)@$nd}9C+Bm>V!sl1k zd;o>7fVf_8yhR-912_ly&@TSwZ(8FAMV`RAkO&ZZ;Vlb$2X~p620Kib+<x#Oo|vzI z(z^m7haW1pury~G??kCURX*)Na>F>a0`HWw&uH+P8E|3C!_u<PKqP?Zm(j50v8aX7 zW`y;F(Po4&Unws>#AP#vP#$I!!4~OAnn~hk63%>yxU-jugS~Zkn0|A;3mFO%@$o5> ze3iI7`JyYhigbrj5u)btyi43+wz%W?;H8HkJzN6sV#rW}Zx?|M!)GfP&ejBvwSk}= zU5LY7jSF2Jq?`6^?-7djU+?bkUHf5wnIp+B3<Xx^<e+nAD2EFdVtu@yVE&a+$8ZXt z*rp%s%<=5i=q0D~H`M8=UUnj1W@iVHSx&}~FC+3{X#JhIu%Y4zR9qvTSMd1G(^K|t zM=4?U4l}R^4jdo9d2k>p>Ej34FK}@DxubA!g1KXGaDutxaBzaT6L4^Xx#3I}@OoT# zjc`Q<biZYF4#-}!UXn~PlE<ghypCXUTGtWfc`bWg3LTyDHxFvA5~m1a?{J6dSE4(~ zqi~I6z3~D9$)4i5B2-{l7nOzHRPb7xb;S3lPK5dIA&jQ3yAsF0-j!%vHoqcXep9?= z3<p~>k7~C=Y)zBrQ|(S_o==k(Q0*>iUO<x<QtcjUUWn5lOFw#ZIF7pB2<P$ctHS^o zBLwfFu}vl^hzXQJe~ok;^UOE!diEx}g{G9s<oFSn=?=+bUyHHJ6eyVT`Joy#W<x<s zOr(O3Tse-J8G}r^uaco@DTzLDkr%{9u-Hu7lavD9beh+nVegE2^KF7p!Tcw|58&?L zwS+-*m~Il&S-$^JgCYgo9MXb-mrw<r6-BC8DZ-$PFsRC;oaa-{@=Wii%2UNur9Pi8 zt57MFwG?7NL1Cdnp%7E$3OTq9`MmiSk-m$&MPe`T9DW=Z%Zwd<9#=`4uvH#=k>_GB z0bJ%e?RWuS;~Clf<gpJ387f(%@KS1KVAyfe{mK*kdTz7y^;~OCeue#Uz*V#t3i2EJ z+l2oe9d5#3<MA&Su7k&2lAA<jO1W|ybC=JtK>Qr<yySCo4dyFj^ZkS8fD>{TCj?D( z<OJA!;Di`qP?SjmpKFQ`djlM>n@)xZ;1P(7A;5)Na#_G}m>_ruse(dqjs%wW7SBnM zv%?{U9>A&C=Y;8(*q4On%Gj;I9qF^Td}bSUuTe4cw_%wA_a`h<rdHp9WuD`?$&?pm z@`214f)JdmFw`L6r;f5b(_M);ROWdzdBj;qzV<s|LF_|90-J!0MHu9)0&r91dC^26 z2O0(7e2Cyx6ySvWqNj>;DsT}=6=0#MLYr_9$tmFV$x*FHmLMD%$yn-eE+KUF^mM8z z{+``um~P{*DPIXcOrZDJ8t=mzmE2S+m&xP<(DRkS;>v>e8(<I|+8IJvtxkB!2yByB zb~Y&h)PBC{0iSPr$b-ILfETl@>MyAJ+g%kOK#@jL*;FCl^oWlyOM$GTARjqgfc^D@ z3$PEU>;hQYca&Gi<l{kNB)*n3$dby%m*aBFot1{qm4S!-n7tcw<QE_n6!|=tyw`Pp z3<}Z?r}ceNF9DrWWlYS$>kKaiMDkMwROKk%2PE;%FJQBR2b&c-F4L$C{FYvzZOX@& z=W@$?=92Hw&JrN(ct&{r6CO&lU8Sd3n(Hb(!_s_L={f)2AO)rue0T_)n|uuFameXZ zEtko603(t@<3qXJ(6dP|`S_PSm-~`Gr(Gmy7Yo`Y5G`nz3SmClWkR?%kEXohO|N<F zN+G<H96yqEqzc}92C)dlA8&a5TOKp-czq$u<O=#B0%nE^`e7_HT+nZz`33qBLOzs6 z3i?q(e#&UUG)B;mh1@v7G+xk8V2x}Q@RWE3nTNc7C}Y|TkW!gk=Mtt0=UhxXn^Ymb z0*4in7@(YMN6`Y)8v-)UN~59l7E2!yk(q2W^e(y;z35hqugGDAlWqYRR7alaTfu$i zoz<7IdScP)kBl^n@~{V=!WLADuf*k60*)4-ad7v`m4T4q0nk5$@C?OX|2OYoH@-j- zPAkWKPh|?Z@}%2s3q^G!nGari2+qTcL8enB3d}Z45<nx$oEq_*MvI~ix(yVf9CRWx z4U+{E=tPk4)##}dU`)&OA&7A;nGkRSBwD5r3KTBIB&kHNs7F#Z_zf0!j+LhhaE=80 zQUvXWP*6#lA^Ye_@IFth40#x@mcR#`f}sQ)2g#8Czhn?oyGdaBEcQEr)AoyfMW|j< z&f3jh4Sl^E`bsG?=C0co31cWa_Rh{|-d#QVNomm@{fhS3<m%yICgTNx;6VTbM@n+j z1TYQUbb;eba$qcklH6=6SIOiz<Y*txg^rNEfX7P&IlDwa!=DEhUsH^i41Ku~=kf}G zK45Bw5WK0-PN6{+KoejrAk7wZX`ZBI7qYJeAMiN0{3PF0A=Z}_4^mE<@5FXiFU0z_ zlu_I!cqndiQ~cXQ@vov3p=g&VZYn|%>bqfm0kcLL9m~5qK}A!kA{d6;E@*cMc;^rs z%$h2(nE)^FMq;PX0>9FqA+Yy3`OraDw8LZeS{&2~-mvW8S;g-}8aZ|*Z2K-@HBvo6 zJhS-;^4i^kb`Nq;yI1%^z#A61)B(fNutL<ZfMO8x3qV&w%PaxU1@;~Wy*1wuuE2mq zQk5ZcJQJEKgad-kBGHt9;*YK()hM9&ldH&UUIO(;yt621?m%&ot5v4C1jQMyqFi&F zL*4Bxikdx8-0vzXH0z+a#8p&k=0kC&tEkdUg5ok)(MK}`ia)!GYE2dt)14(>O&XL| zx*Gj7ouJs)S@PGw!PoY4mNc4%P}=N54Zy<-`|m6UYDz;fk2;IR@DmWcE({AoPdO|| zp)CE=yTYKDw}pe>7S4EEnD@5uPxkxN^(%i@Sm9lv!Rxo5*YB`*h0q_p+M92fSDUZR zV1J%~mqB412y?#H=3Vg@Gm~?`0hP%!@U$6Z=n3Sb7oaQhCm~LChsG(NPYK%0?sGt! z76ihQ@<0y17ua=h9$pQ~obvEq8U2G*l7El~!_H-n?JVBq*m^F`J+3V%D5sv&t|USD zl1V$-siv5=)*cX~OYeiiP;>>`NOx3B$AFiM9i7g&=@uU_5|xqUExSy^zc|b9*@pkh zS^kGH1Dy&H6)i&nwb%yF?;$w9h{R5C3s?M51dqKAKpYpomc-5$XpZwPiw{d%jH-VT z42MAqVjcFTTI*k_@-E7U-INysr6gb0-xn0LOj6Ld*_GBD0pAGB74VI~JOSgAc~k^X z_m%sSR{=T!+{%>T&4DHH+ot(~Zh^p_Sgl(q5X~5nJ4Er{95_hILeC^czG;yVC>?n8 z-#|~>(GiGO&|F0XTJjsjG?Y*BD_|zLAPoI;)<?uXIj&AQtdpOR6cENmfYYp7Eb!jb zNEJfEtLT;pf(GyO^FdcIn^jtxEc8JlNF(30RM0IGWSU|hH0hQL0;9P?z<Y)HEQT%t z?#)WU6~F&Mx&%TLJs%_F1=RBe&O%C^UyS3e7QXs6zab9r*w_V(RPh!n-m(hz_aSfD z9SO_6abA~ji>T|Hq*cN{d_z;rd09{azZ9XKZ@ZUJo|lV$(l<GU_}xz&-VZE=AYLxA zPlF2o@zbDXRDiy&PlF0S@@Y^ZME$D;(;C5@T`Ro*X;2}qU^%Wp2ID2IbFbhXgDych z?JbD3g1YW6H&NI9<$58sOL21;zK^G#&qcPts(jSt8DE`W$T;%MBd8<k9SN%y|Bevz zNL;~Iif_A1C5@pe8-%cHx-pcdY!pm|Sd_jQ+Xj@>enyX<Sx)jZOS=PZhg5}U$;7_U z#WwudraFF6=QW<gG?F?$s@dwiX&XuLEmYDRqML(vQapR{MEH&1|CHl4!0{^0ZKwE- zGL(G{OG8Vs%M|E_@0db?sOKfx4%iJJbtCqD<OpgSJc&JW$t2w-f##u?V%jWJ-a-~H z(rpol6Um8#C_rK-b-i)gD*XE!r(pLRr?SwmS+Qp9-<FX7Zw%P4w_spmz;YQ3Pz#bM Mg9DHc0Jc!!L}z*R?*IS* diff --git a/common/static/js/vendor/tiny_mce/plugins/media/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/media/plugin.min.js deleted file mode 100644 index e276ecfd39b..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/media/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("media",function(e,t){function i(e){return-1!=e.indexOf(".mp3")?"audio/mpeg":-1!=e.indexOf(".wav")?"audio/wav":-1!=e.indexOf(".mp4")?"video/mp4":-1!=e.indexOf(".webm")?"video/webm":-1!=e.indexOf(".ogg")?"video/ogg":-1!=e.indexOf(".swf")?"application/x-shockwave-flash":""}function r(t){var i=e.settings.media_scripts;if(i)for(var r=0;r<i.length;r++)if(-1!==t.indexOf(i[r].filter))return i[r]}function a(){function t(e){var t,o,c,n;t=i.find("#width")[0],o=i.find("#height")[0],c=t.value(),n=o.value(),i.find("#constrain")[0].checked()&&r&&a&&c&&n&&(e.control==t?(n=Math.round(c/r*n),o.value(n)):(c=Math.round(n/a*c),t.value(c))),r=c,a=n}var i,r,a,m;m=s(e.selection.getNode()),r=m.width,a=m.height,i=e.windowManager.open({title:"Insert/edit video",data:m,bodyType:"tabpanel",body:[{title:"General",type:"form",onShowTab:function(){m=n(this.next().find("#embed").value()),this.fromJSON(m)},items:[{name:"source1",type:"filepicker",filetype:"media",size:40,autofocus:!0,label:"Source"},{name:"source2",type:"filepicker",filetype:"media",size:40,label:"Alternative source"},{name:"poster",type:"filepicker",filetype:"image",size:40,label:"Poster"},{type:"container",label:"Dimensions",layout:"flex",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:3,onchange:t},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:3,onchange:t},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}]},{title:"Embed",type:"panel",layout:"flex",direction:"column",align:"stretch",padding:10,spacing:10,onShowTab:function(){this.find("#embed").value(c(this.parent().toJSON()))},items:[{type:"label",text:"Paste your embed code below:"},{type:"textbox",flex:1,name:"embed",value:o(),multiline:!0,label:"Source"}]}],onSubmit:function(){e.insertContent(c(this.toJSON()))}})}function o(){var t=e.selection.getNode();return t.getAttribute("data-mce-object")?e.selection.getContent():void 0}function c(a){var o="";if(!a.source1&&(tinymce.extend(a,n(a.embed)),!a.source1))return"";if(a.source1=e.convertURL(a.source1,"source"),a.source2=e.convertURL(a.source2,"source"),a.source1mime=i(a.source1),a.source2mime=i(a.source2),a.poster=e.convertURL(a.poster,"poster"),a.flashPlayerUrl=e.convertURL(t+"/moxieplayer.swf","movie"),a.embed)o=m(a.embed,a,!0);else{tinymce.each(d,function(e){var t,i,r;if(t=e.regex.exec(a.source1)){for(r=e.url,i=0;t[i];i++)r=r.replace("$"+i,function(){return t[i]});a.source1=r,a.type=e.type,a.width=a.width||e.w,a.height=a.height||e.h}});var c=r(a.source1);c&&(a.type="script",a.width=c.width,a.height=c.height),a.width=a.width||300,a.height=a.height||150,tinymce.each(a,function(t,i){a[i]=e.dom.encode(t)}),"iframe"==a.type?o+='<iframe src="'+a.source1+'" width="'+a.width+'" height="'+a.height+'"></iframe>':"application/x-shockwave-flash"==a.source1mime?(o+='<object data="'+a.source1+'" width="'+a.width+'" height="'+a.height+'" type="application/x-shockwave-flash">',a.poster&&(o+='<img src="'+a.poster+'" width="'+a.width+'" height="'+a.height+'" />'),o+="</object>"):-1!=a.source1mime.indexOf("audio")?e.settings.audio_template_callback?o=e.settings.audio_template_callback(a):o+='<audio controls="controls" src="'+a.source1+'">'+(a.source2?'\n<source src="'+a.source2+'"'+(a.source2mime?' type="'+a.source2mime+'"':"")+" />\n":"")+"</audio>":"script"==a.type?o+='<script src="'+a.source1+'"></script>':o=e.settings.video_template_callback?e.settings.video_template_callback(a):'<video width="'+a.width+'" height="'+a.height+'"'+(a.poster?' poster="'+a.poster+'"':"")+' controls="controls">\n<source src="'+a.source1+'"'+(a.source1mime?' type="'+a.source1mime+'"':"")+" />\n"+(a.source2?'<source src="'+a.source2+'"'+(a.source2mime?' type="'+a.source2mime+'"':"")+" />\n":"")+"</video>"}return o}function n(e){var t={};return new tinymce.html.SaxParser({validate:!1,allow_conditional_comments:!0,special:"script,noscript",start:function(e,i){if(t.source1||"param"!=e||(t.source1=i.map.movie),("iframe"==e||"object"==e||"embed"==e||"video"==e||"audio"==e)&&(t.type||(t.type=e),t=tinymce.extend(i.map,t)),"script"==e){var a=r(i.map.src);if(!a)return;t={type:"script",source1:i.map.src,width:a.width,height:a.height}}"source"==e&&(t.source1?t.source2||(t.source2=i.map.src):t.source1=i.map.src),"img"!=e||t.poster||(t.poster=i.map.src)}}).parse(e),t.source1=t.source1||t.src||t.data,t.source2=t.source2||"",t.poster=t.poster||"",t}function s(t){return t.getAttribute("data-mce-object")?n(e.serializer.serialize(t,{selection:!0})):{}}function m(e,t,i){function r(e,t){var i,r,a,o;for(i in t)if(a=""+t[i],e.map[i])for(r=e.length;r--;)o=e[r],o.name==i&&(a?(e.map[i]=a,o.value=a):(delete e.map[i],e.splice(r,1)));else a&&(e.push({name:i,value:a}),e.map[i]=a)}var a,o=new tinymce.html.Writer,c=0;return new tinymce.html.SaxParser({validate:!1,allow_conditional_comments:!0,special:"script,noscript",comment:function(e){o.comment(e)},cdata:function(e){o.cdata(e)},text:function(e,t){o.text(e,t)},start:function(e,n,s){switch(e){case"video":case"object":case"embed":case"img":case"iframe":r(n,{width:t.width,height:t.height})}if(i)switch(e){case"video":r(n,{poster:t.poster,src:""}),t.source2&&r(n,{src:""});break;case"iframe":r(n,{src:t.source1});break;case"source":if(c++,2>=c&&(r(n,{src:t["source"+c],type:t["source"+c+"mime"]}),!t["source"+c]))return;break;case"img":if(!t.poster)return;a=!0}o.start(e,n,s)},end:function(e){if("video"==e&&i)for(var n=1;2>=n;n++)if(t["source"+n]){var s=[];s.map={},n>c&&(r(s,{src:t["source"+n],type:t["source"+n+"mime"]}),o.start("source",s,!0))}if(t.poster&&"object"==e&&i&&!a){var m=[];m.map={},r(m,{src:t.poster,width:t.width,height:t.height}),o.start("img",m,!0)}o.end(e)}},new tinymce.html.Schema({})).parse(e),o.getContent()}var d=[{regex:/youtu\.be\/([a-z1-9.-_]+)/,type:"iframe",w:425,h:350,url:"http://www.youtube.com/embed/$1"},{regex:/youtube\.com(.+)v=([^&]+)/,type:"iframe",w:425,h:350,url:"http://www.youtube.com/embed/$2"},{regex:/vimeo\.com\/([0-9]+)/,type:"iframe",w:425,h:350,url:"http://player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc"},{regex:/maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/,type:"iframe",w:425,h:350,url:'http://maps.google.com/maps/ms?msid=$2&output=embed"'}];e.on("ResolveName",function(e){var t;1==e.target.nodeType&&(t=e.target.getAttribute("data-mce-object"))&&(e.name=t)}),e.on("preInit",function(){var t=e.schema.getSpecialElements();tinymce.each("video audio iframe object".split(" "),function(e){t[e]=new RegExp("</"+e+"[^>]*>","gi")}),e.schema.addValidElements("object[id|style|width|height|classid|codebase|*],embed[id|style|width|height|type|src|*],video[*],audio[*]");var i=e.schema.getBoolAttrs();tinymce.each("webkitallowfullscreen mozallowfullscreen allowfullscreen".split(" "),function(e){i[e]={}}),e.parser.addNodeFilter("iframe,video,audio,object,embed,script",function(t,i){for(var a,o,c,n,s,m,d,u,l=t.length;l--;)if(o=t[l],"script"!=o.name||(u=r(o.attr("src")))){for(c=new tinymce.html.Node("img",1),c.shortEnded=!0,u&&(u.width&&o.attr("width",u.width.toString()),u.height&&o.attr("height",u.height.toString())),m=o.attributes,a=m.length;a--;)n=m[a].name,s=m[a].value,"width"!==n&&"height"!==n&&"style"!==n&&(("data"==n||"src"==n)&&(s=e.convertURL(s,n)),c.attr("data-mce-p-"+n,s));d=o.firstChild&&o.firstChild.value,d&&(c.attr("data-mce-html",escape(d)),c.firstChild=null),c.attr({width:o.attr("width")||"300",height:o.attr("height")||("audio"==i?"30":"150"),style:o.attr("style"),src:tinymce.Env.transparentSrc,"data-mce-object":i,"class":"mce-object mce-object-"+i}),o.replace(c)}}),e.serializer.addAttributeFilter("data-mce-object",function(e,t){for(var i,r,a,o,c,n,s,m=e.length;m--;){for(i=e[m],s=i.attr(t),r=new tinymce.html.Node(s,1),"audio"!=s&&"script"!=s&&r.attr({width:i.attr("width"),height:i.attr("height")}),r.attr({style:i.attr("style")}),o=i.attributes,a=o.length;a--;){var d=o[a].name;0===d.indexOf("data-mce-p-")&&r.attr(d.substr(11),o[a].value)}"script"==s&&r.attr("type","text/javascript"),c=i.attr("data-mce-html"),c&&(n=new tinymce.html.Node("#text",3),n.raw=!0,n.value=unescape(c),r.append(n)),i.replace(r)}})}),e.on("ObjectSelected",function(e){var t=e.target.getAttribute("data-mce-object");("audio"==t||"script"==t)&&e.preventDefault()}),e.on("objectResized",function(e){var t,i=e.target;i.getAttribute("data-mce-object")&&(t=i.getAttribute("data-mce-html"),t&&(t=unescape(t),i.setAttribute("data-mce-html",escape(m(t,{width:e.width,height:e.height})))))}),e.addButton("media",{tooltip:"Insert/edit video",onclick:a,stateSelector:"img[data-mce-object=video]"}),e.addMenuItem("media",{icon:"media",text:"Insert video",onclick:a,context:"insert",prependToContext:!0})}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/nonbreaking/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/nonbreaking/plugin.min.js deleted file mode 100644 index 866339c7dc3..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/nonbreaking/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("nonbreaking",function(e){var t=e.getParam("nonbreaking_force_tab");if(e.addCommand("mceNonBreaking",function(){e.insertContent(e.plugins.visualchars&&e.plugins.visualchars.state?'<span data-mce-bogus="1" class="mce-nbsp"> </span>':" ")}),e.addButton("nonbreaking",{title:"Insert nonbreaking space",cmd:"mceNonBreaking"}),e.addMenuItem("nonbreaking",{text:"Nonbreaking space",cmd:"mceNonBreaking",context:"insert"}),t){var n=+t>1?+t:3;e.on("keydown",function(t){if(9==t.keyCode){if(t.shiftKey)return;t.preventDefault();for(var i=0;n>i;i++)e.execCommand("mceNonBreaking")}})}}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/noneditable/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/noneditable/plugin.min.js deleted file mode 100644 index aa642de8c6d..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/noneditable/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("noneditable",function(e){function t(e){var t;if(1===e.nodeType){if(t=e.getAttribute(u),t&&"inherit"!==t)return t;if(t=e.contentEditable,"inherit"!==t)return t}return null}function n(e){for(var n;e;){if(n=t(e))return"false"===n?e:null;e=e.parentNode}}function r(){function r(e){for(;e;){if(e.id===g)return e;e=e.parentNode}}function a(e){var t;if(e)for(t=new f(e,e),e=t.current();e;e=t.next())if(3===e.nodeType)return e}function i(n,r){var a,i;return"false"===t(n)&&u.isBlock(n)?void s.select(n):(i=u.createRng(),"true"===t(n)&&(n.firstChild||n.appendChild(e.getDoc().createTextNode(" ")),n=n.firstChild,r=!0),a=u.create("span",{id:g,"data-mce-bogus":!0},m),r?n.parentNode.insertBefore(a,n):u.insertAfter(a,n),i.setStart(a.firstChild,1),i.collapse(!0),s.setRng(i),a)}function o(e){var t,n,i,o;if(e)t=s.getRng(!0),t.setStartBefore(e),t.setEndBefore(e),n=a(e),n&&n.nodeValue.charAt(0)==m&&(n=n.deleteData(0,1)),u.remove(e,!0),s.setRng(t);else for(i=r(s.getStart());(e=u.get(g))&&e!==o;)i!==e&&(n=a(e),n&&n.nodeValue.charAt(0)==m&&(n=n.deleteData(0,1)),u.remove(e,!0)),o=e}function l(){function e(e,n){var r,a,i,o,l;if(r=d.startContainer,a=d.startOffset,3==r.nodeType){if(l=r.nodeValue.length,a>0&&l>a||(n?a==l:0===a))return}else{if(!(a<r.childNodes.length))return n?null:e;var u=!n&&a>0?a-1:a;r=r.childNodes[u],r.hasChildNodes()&&(r=r.firstChild)}for(i=new f(r,e);o=i[n?"prev":"next"]();){if(3===o.nodeType&&o.nodeValue.length>0)return;if("true"===t(o))return o}return e}var r,a,l,d,u;o(),l=s.isCollapsed(),r=n(s.getStart()),a=n(s.getEnd()),(r||a)&&(d=s.getRng(!0),l?(r=r||a,(u=e(r,!0))?i(u,!0):(u=e(r,!1))?i(u,!1):s.select(r)):(d=s.getRng(!0),r&&d.setStartBefore(r),a&&d.setEndAfter(a),s.setRng(d)))}function d(a){function i(e,t){for(;e=e[t?"previousSibling":"nextSibling"];)if(3!==e.nodeType||e.nodeValue.length>0)return e}function d(e,t){s.select(e),s.collapse(t)}function g(a){function i(e){for(var t=d;t;){if(t===e)return;t=t.parentNode}u.remove(e),l()}function o(){var r,o,l=e.schema.getNonEmptyElements();for(o=new tinymce.dom.TreeWalker(d,e.getBody());(r=a?o.prev():o.next())&&!l[r.nodeName.toLowerCase()]&&!(3===r.nodeType&&tinymce.trim(r.nodeValue).length>0);)if("false"===t(r))return i(r),!0;return n(r)?!0:!1}var f,d,c,g;if(s.isCollapsed()){if(f=s.getRng(!0),d=f.startContainer,c=f.startOffset,d=r(d)||d,g=n(d))return i(g),!1;if(3==d.nodeType&&(a?c>0:c<d.nodeValue.length))return!0;if(1==d.nodeType&&(d=d.childNodes[c]||d),o())return!1}return!0}var m,p,v,E,h=a.keyCode;if(v=s.getStart(),E=s.getEnd(),m=n(v)||n(E),m&&(112>h||h>124)&&h!=c.DELETE&&h!=c.BACKSPACE){if((tinymce.isMac?a.metaKey:a.ctrlKey)&&(67==h||88==h||86==h))return;if(a.preventDefault(),h==c.LEFT||h==c.RIGHT){var y=h==c.LEFT;if(e.dom.isBlock(m)){var T=y?m.previousSibling:m.nextSibling,C=new f(T,T),b=y?C.prev():C.next();d(b,!y)}else d(m,y)}}else if(h==c.LEFT||h==c.RIGHT||h==c.BACKSPACE||h==c.DELETE){if(p=r(v)){if(h==c.LEFT||h==c.BACKSPACE)if(m=i(p,!0),m&&"false"===t(m)){if(a.preventDefault(),h!=c.LEFT)return void u.remove(m);d(m,!0)}else o(p);if(h==c.RIGHT||h==c.DELETE)if(m=i(p),m&&"false"===t(m)){if(a.preventDefault(),h!=c.RIGHT)return void u.remove(m);d(m,!1)}else o(p)}if((h==c.BACKSPACE||h==c.DELETE)&&!g(h==c.BACKSPACE))return a.preventDefault(),!1}}var u=e.dom,s=e.selection,g="mce_noneditablecaret",m="";e.on("mousedown",function(n){var r=e.selection.getNode();"false"===t(r)&&r==n.target&&l()}),e.on("mouseup keyup",l),e.on("keydown",d)}function a(t){var n=l.length,r=t.content,a=tinymce.trim(o);if("raw"!=t.format){for(;n--;)r=r.replace(l[n],function(t){var n=arguments,i=n[n.length-2];return i>0&&'"'==r.charAt(i-1)?t:'<span class="'+a+'" data-mce-content="'+e.dom.encode(n[0])+'">'+e.dom.encode("string"==typeof n[1]?n[1]:n[0])+"</span>"});t.content=r}}var i,o,l,f=tinymce.dom.TreeWalker,d="contenteditable",u="data-mce-"+d,c=tinymce.util.VK;i=" "+tinymce.trim(e.getParam("noneditable_editable_class","mceEditable"))+" ",o=" "+tinymce.trim(e.getParam("noneditable_noneditable_class","mceNonEditable"))+" ",l=e.getParam("noneditable_regexp"),l&&!l.length&&(l=[l]),e.on("PreInit",function(){r(),l&&e.on("BeforeSetContent",a),e.parser.addAttributeFilter("class",function(e){for(var t,n,r=e.length;r--;)n=e[r],t=" "+n.attr("class")+" ",-1!==t.indexOf(i)?n.attr(u,"true"):-1!==t.indexOf(o)&&n.attr(u,"false")}),e.serializer.addAttributeFilter(u,function(e){for(var t,n=e.length;n--;)t=e[n],l&&t.attr("data-mce-content")?(t.name="#text",t.type=3,t.raw=!0,t.value=t.attr("data-mce-content")):(t.attr(d,null),t.attr(u,null))}),e.parser.addAttributeFilter(d,function(e){for(var t,n=e.length;n--;)t=e[n],t.attr(u,t.attr(d)),t.attr(d,null)})}),e.on("drop",function(e){n(e.target)&&e.preventDefault()})}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/pagebreak/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/pagebreak/plugin.min.js deleted file mode 100644 index e224cb4414b..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/pagebreak/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("pagebreak",function(e){var a="mce-pagebreak",t=e.getParam("pagebreak_separator","<!-- pagebreak -->"),n=new RegExp(t.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(e){return"\\"+e}),"gi"),r='<img src="'+tinymce.Env.transparentSrc+'" class="'+a+'" data-mce-resize="false" />';e.addCommand("mcePageBreak",function(){e.settings.pagebreak_split_block?e.insertContent("<p>"+r+"</p>"):e.insertContent(r)}),e.addButton("pagebreak",{title:"Page break",cmd:"mcePageBreak"}),e.addMenuItem("pagebreak",{text:"Page break",icon:"pagebreak",cmd:"mcePageBreak",context:"insert"}),e.on("ResolveName",function(t){"IMG"==t.target.nodeName&&e.dom.hasClass(t.target,a)&&(t.name="pagebreak")}),e.on("click",function(t){t=t.target,"IMG"===t.nodeName&&e.dom.hasClass(t,a)&&e.selection.select(t)}),e.on("BeforeSetContent",function(e){e.content=e.content.replace(n,r)}),e.on("PreInit",function(){e.serializer.addNodeFilter("img",function(a){for(var n,r,c=a.length;c--;)if(n=a[c],r=n.attr("class"),r&&-1!==r.indexOf("mce-pagebreak")){var o=n.parent;if(e.schema.getBlockElements()[o.name]&&e.settings.pagebreak_split_block){o.type=3,o.value=t,o.raw=!0,n.remove();continue}n.type=3,n.value=t,n.raw=!0}})})}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/paste/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/paste/plugin.min.js deleted file mode 100644 index c099330686d..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/paste/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i<e.length;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){for(var r=0;r<n.length;r++){for(var i=e,o=n[r],a=o.split(/[.\/]/),l=0;l<a.length-1;++l)i[a[l]]===t&&(i[a[l]]={}),i=i[a[l]];i[a[a.length-1]]=s[o]}}var s={},l="tinymce/pasteplugin/Utils",c="tinymce/util/Tools",d="tinymce/html/DomParser",u="tinymce/html/Schema",f="tinymce/pasteplugin/Clipboard",p="tinymce/Env",m="tinymce/util/VK",h="tinymce/pasteplugin/WordFilter",g="tinymce/html/Serializer",v="tinymce/html/Node",y="tinymce/pasteplugin/Quirks",b="tinymce/pasteplugin/Plugin",C="tinymce/PluginManager";r(l,[c,d,u],function(e,t,n){function r(t,n){return e.each(n,function(e){t=e.constructor==RegExp?t.replace(e,""):t.replace(e[0],e[1])}),t}function i(r){function i(e){var t=e.name,n=e;if("br"===t)return void(s+="\n");if(l[t]&&(s+=" "),c[t])return void(s+=" ");if(3==e.type&&(s+=e.value),!e.shortEnded&&(e=e.firstChild))do i(e);while(e=e.next);d[t]&&n.next&&(s+="\n","p"==t&&(s+="\n"))}var o=new n,a=new t({},o),s="",l=o.getShortEndedElements(),c=e.makeMap("script noscript style textarea video audio iframe object"," "),d=o.getBlockElements();return i(a.parse(r)),s}return{filter:r,innerText:i}}),r(f,[p,m,l],function(e,t,n){return function(r){function i(e){var t,n=r.dom;if(t=r.fire("BeforePastePreProcess",{content:e}),t=r.fire("PastePreProcess",t),e=t.content,!t.isDefaultPrevented()){if(r.hasEventListeners("PastePostProcess")&&!t.isDefaultPrevented()){var i=n.add(r.getBody(),"div",{style:"display:none"},e);t=r.fire("PastePostProcess",{node:i}),n.remove(i),e=t.node.innerHTML}t.isDefaultPrevented()||r.insertContent(e)}}function o(e){e=r.dom.encode(e).replace(/\r\n/g,"\n");var t=r.dom.getParent(r.selection.getStart(),r.dom.isBlock),o=r.settings.forced_root_block,a;o&&(a=r.dom.createHTML(o,r.settings.forced_root_block_attrs),a=a.substr(0,a.length-3)+">"),t&&/^(PRE|DIV)$/.test(t.nodeName)||!o?e=n.filter(e,[[/\n/g,"<br>"]]):(e=n.filter(e,[[/\n\n/g,"</p>"+a],[/^(.*<\/p>)(<p>)$/,a+"$1"],[/\n/g,"<br />"]]),-1!=e.indexOf("<p>")&&(e=a+e)),i(e)}function a(){var t=r.dom,n=r.getBody(),i=r.dom.getViewPort(r.getWin()),o=i.y,a=20;if(h=r.selection.getRng(),r.inline){var s=r.selection.getScrollContainer();s&&(o=s.scrollTop)}if(h.getClientRects){var l=h.getClientRects();l.length&&(a=o+(l[0].top-t.getPos(n).y))}m=t.add(r.getBody(),"div",{id:"mcepastebin",contentEditable:!0,"data-mce-bogus":"1",style:"position: absolute; top: "+a+"px;width: 10px; height: 10px; overflow: hidden; opacity: 0"},v),(e.ie||e.gecko)&&t.setStyle(m,"left","rtl"==t.getStyle(n,"direction",!0)?65535:-65535),t.bind(m,"beforedeactivate focusin focusout",function(e){e.stopPropagation()}),m.focus(),r.selection.select(m,!0)}function s(){if(m){for(var e;e=r.dom.get("mcepastebin");)r.dom.remove(e),r.dom.unbind(e);h&&r.selection.setRng(h)}y=!1,m=h=null}function l(){var e=v,t,n;for(t=r.dom.select("div[id=mcepastebin]"),n=t.length;n--;){var i=t[n].innerHTML;e==v&&(e=""),i.length>e.length&&(e=i)}return e}function c(e){var t={};if(e&&e.types){t["text/plain"]=e.getData("Text");for(var n=0;n<e.types.length;n++){var r=e.types[n];t[r]=e.getData(r)}}return t}function d(e){return c(e.clipboardData||r.getDoc().dataTransfer)}function u(e){var t=r.getDoc(),n;if(t.caretPositionFromPoint){var i=t.caretPositionFromPoint(e.pageX,e.pageY);n=t.createRange(),n.setStart(i.offsetNode,i.offset),n.collapse(!0)}else t.caretRangeFromPoint&&(n=t.caretRangeFromPoint(e.pageX,e.pageY));return n}function f(){r.on("keydown",function(n){if(!n.isDefaultPrevented()&&(t.metaKeyPressed(n)&&86==n.keyCode||n.shiftKey&&45==n.keyCode)){if(y=n.shiftKey&&86==n.keyCode,n.stopImmediatePropagation(),g=(new Date).getTime(),e.ie&&y)return n.preventDefault(),void r.fire("paste",{ieFake:!0});s(),a()}}),r.on("paste",function(t){var c=d(t),u=(new Date).getTime()-g<1e3,f="text"==p.pasteFormat||y;return t.isDefaultPrevented()?void s():(u||t.preventDefault(),!e.ie||u&&!t.ieFake||(a(),r.dom.bind(m,"paste",function(e){e.stopPropagation()}),r.getDoc().execCommand("Paste",!1,null),c["text/html"]=l()),void setTimeout(function(){var e=l();return m&&m.firstChild&&"mcepastebin"===m.firstChild.id&&(f=!0),s(),e!=v&&u||(e=c["text/html"]||c["text/plain"]||v,e!=v)?void(f?o(c["text/plain"]||n.innerText(e)):i(e)):void(u||r.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents."))},0))}),r.on("dragstart",function(e){if(e.dataTransfer.types)try{e.dataTransfer.setData("mce-internal",r.selection.getContent())}catch(t){}}),r.on("drop",function(e){var t=u(e);if(t&&!e.isDefaultPrevented()){var n=c(e.dataTransfer),a=n["mce-internal"]||n["text/html"]||n["text/plain"];a&&(e.preventDefault(),r.undoManager.transact(function(){n["mce-internal"]&&r.execCommand("Delete"),r.selection.setRng(t),n["text/html"]?i(a):o(a)}))}})}var p=this,m,h,g=0,v="%MCEPASTEBIN%",y;p.pasteHtml=i,p.pasteText=o,r.on("preInit",function(){f(),r.parser.addNodeFilter("img",function(t){if(!r.settings.paste_data_images)for(var n=t.length;n--;){var i=t[n].attributes.map.src;i&&0===i.indexOf("data:image")&&(t[n].attr("data-mce-object")||i===e.transparentSrc||t[n].remove())}})}),r.on("PreProcess",function(){r.dom.remove(r.dom.get("mcepastebin"))})}}),r(h,[c,d,u,g,v,l],function(e,t,n,r,i,o){function a(e){return/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(e)}function s(s){var l=s.settings;s.on("BeforePastePreProcess",function(c){function d(e){function t(e,t,a,s){var l=e._listLevel||o;l!=o&&(o>l?n&&(n=n.parent.parent):(r=n,n=null)),n&&n.name==a?n.append(e):(r=r||n,n=new i(a,1),s>1&&n.attr("start",""+s),e.wrap(n)),e.name="li",t.value="";var c=t.next;c&&3==c.type&&(c.value=c.value.replace(/^\u00a0+/,"")),l>o&&r&&r.lastChild.append(n),o=l}for(var n,r,o=1,a=e.getAll("p"),s=0;s<a.length;s++)if(e=a[s],"p"==e.name&&e.firstChild){for(var l="",c=e.firstChild;c&&!(l=c.value);)c=c.firstChild;if(/^\s*[\u2022\u00b7\u00a7\u00d8\u25CF]\s*$/.test(l)){t(e,c,"ul");continue}if(/^\s*\w+\.$/.test(l)){var d=/([0-9])\./.exec(l),u=1;d&&(u=parseInt(d[1],10)),t(e,c,"ol",u);continue}n=null}}function u(t,n){if("p"===t.name){var r=/mso-list:\w+ \w+([0-9]+)/.exec(n);r&&(t._listLevel=parseInt(r[1],10))}if(s.getParam("paste_retain_style_properties","none")){var i="";if(e.each(s.dom.parseStyle(n),function(e,t){switch(t){case"horiz-align":return void(t="text-align");case"vert-align":return void(t="vertical-align");case"font-color":case"mso-foreground":return void(t="color");case"mso-background":case"mso-highlight":t="background"}("all"==p||m&&m[t])&&(i+=t+":"+e+";")}),i)return i}return null}var f=c.content,p,m;if(p=l.paste_retain_style_properties,p&&(m=e.makeMap(p)),l.paste_enable_default_filters!==!1&&a(c.content)){c.wordContent=!0,f=o.filter(f,[/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/ /gi,"\xa0"],[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(e,t){return t.length>0?t.replace(/./," ").slice(Math.floor(t.length/2)).split("").join("\xa0"):""}]]);var h=l.paste_word_valid_elements;h||(h="@[style],-strong/b,-em/i,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-table,-tr,-td[colspan|rowspan],-th,-thead,-tfoot,-tbody,-a[href|name],sub,sup,strike,br");var g=new n({valid_elements:h}),v=new t({},g);v.addAttributeFilter("style",function(e){for(var t=e.length,n;t--;)n=e[t],n.attr("style",u(n,n.attr("style"))),"span"!=n.name||n.attributes.length||n.unwrap()}),v.addNodeFilter("a",function(e){for(var t=e.length,n,r,i;t--;)n=e[t],r=n.attr("href"),i=n.attr("name"),r&&0===r.indexOf("file://")&&(r=r.split("#")[1],r&&(r="#"+r)),r||i?n.attr({href:r,name:i}):n.unwrap()});var y=v.parse(f);d(y),c.content=new r({},g).serialize(y)}})}return s.isWordContent=a,s}),r(y,[p,c,h,l],function(e,t,n,r){return function(i){function o(e){i.on("BeforePastePreProcess",function(t){t.content=e(t.content)})}function a(e){return e=r.filter(e,[/^[\s\S]*<!--StartFragment-->|<!--EndFragment-->[\s\S]*$/g,[/<span class="Apple-converted-space">\u00a0<\/span>/g,"\xa0"],/<br>$/])}function s(e){if(!n.isWordContent(e))return e;var o=[];t.each(i.schema.getBlockElements(),function(e,t){o.push(t)});var a=new RegExp("(?:<br> [\\s\\r\\n]+|<br>)*(<\\/?("+o.join("|")+")[^>]*>)(?:<br> [\\s\\r\\n]+|<br>)*","g");return e=r.filter(e,[[a,"$1"]]),e=r.filter(e,[[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]])}function l(e){return(i.settings.paste_remove_styles||i.settings.paste_remove_styles_if_webkit!==!1)&&(e=e.replace(/ style=\"[^\"]+\"/g,"")),e}e.webkit&&(o(l),o(a)),e.ie&&o(s)}}),r(b,[C,f,h,y],function(e,t,n,r){var i;e.add("paste",function(e){function o(){"text"==s.pasteFormat?(this.active(!1),s.pasteFormat="html"):(s.pasteFormat="text",this.active(!0),i||(e.windowManager.alert("Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off."),i=!0))}var a=this,s,l=e.settings;a.clipboard=s=new t(e),a.quirks=new r(e),a.wordFilter=new n(e),e.settings.paste_as_text&&(a.clipboard.pasteFormat="text"),l.paste_preprocess&&e.on("PastePreProcess",function(e){l.paste_preprocess.call(a,a,e)}),l.paste_postprocess&&e.on("PastePostProcess",function(e){l.paste_postprocess.call(a,a,e)}),e.addCommand("mceInsertClipboardContent",function(e,t){t.content&&a.clipboard.pasteHtml(t.content),t.text&&a.clipboard.pasteText(t.text)}),e.paste_block_drop&&e.on("dragend dragover draggesture dragdrop drop drag",function(e){e.preventDefault(),e.stopPropagation()}),e.settings.paste_data_images||e.on("drop",function(e){var t=e.dataTransfer;t&&t.files&&t.files.length>0&&e.preventDefault()}),e.addButton("pastetext",{icon:"pastetext",tooltip:"Paste as text",onclick:o,active:"text"==a.clipboard.pasteFormat}),e.addMenuItem("pastetext",{text:"Paste as text",selectable:!0,active:s.pasteFormat,onclick:o})})}),a([l,f,h,y,b])}(this); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/preview/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/preview/plugin.min.js deleted file mode 100644 index 8a24058f74e..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/preview/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("preview",function(e){var t=e.settings;e.addCommand("mcePreview",function(){e.windowManager.open({title:"Preview",width:parseInt(e.getParam("plugin_preview_width","650"),10),height:parseInt(e.getParam("plugin_preview_height","500"),10),html:'<iframe src="javascript:\'\'" frameborder="0"></iframe>',buttons:{text:"Close",onclick:function(){this.parent().parent().close()}},onPostRender:function(){var i,n=this.getEl("body").firstChild.contentWindow.document,a="";tinymce.each(e.contentCSS,function(t){a+='<link type="text/css" rel="stylesheet" href="'+e.documentBaseURI.toAbsolute(t)+'">'});var d=t.body_id||"tinymce";-1!=d.indexOf("=")&&(d=e.getParam("body_id","","hash"),d=d[e.id]||d);var r=t.body_class||"";-1!=r.indexOf("=")&&(r=e.getParam("body_class","","hash"),r=r[e.id]||""),i="<!DOCTYPE html><html><head>"+a+"</head>"+'<body id="'+d+'" class="mce-content-body '+r+'">'+e.getContent()+"</body>"+"</html>",n.open(),n.write(i),n.close()}})}),e.addButton("preview",{title:"Preview",cmd:"mcePreview"}),e.addMenuItem("preview",{text:"Preview",cmd:"mcePreview",context:"view"})}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/print/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/print/plugin.min.js deleted file mode 100644 index abc37b5fd4e..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/print/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("print",function(t){t.addCommand("mcePrint",function(){t.getWin().print()}),t.addButton("print",{title:"Print",cmd:"mcePrint"}),t.addShortcut("Ctrl+P","","mcePrint"),t.addMenuItem("print",{text:"Print",cmd:"mcePrint",icon:"print",shortcut:"Ctrl+P",context:"file"})}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/save/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/save/plugin.min.js deleted file mode 100644 index bd50cec41e8..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/save/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("save",function(e){function t(){var t,n;return t=tinymce.DOM.getParent(e.id,"form"),!e.getParam("save_enablewhendirty",!0)||e.isDirty()?(tinymce.triggerSave(),(n=e.getParam("save_onsavecallback"))?(e.execCallback("save_onsavecallback",e)&&(e.startContent=tinymce.trim(e.getContent({format:"raw"})),e.nodeChanged()),void 0):(t?(e.isNotDirty=!0,(!t.onsubmit||t.onsubmit())&&("function"==typeof t.submit?t.submit():e.windowManager.alert("Error: Form submit field collision.")),e.nodeChanged()):e.windowManager.alert("Error: No form element found."),void 0)):void 0}function n(){var t,n=tinymce.trim(e.startContent);return(t=e.getParam("save_oncancelcallback"))?(e.execCallback("save_oncancelcallback",e),void 0):(e.setContent(n),e.undoManager.clear(),e.nodeChanged(),void 0)}function i(){var t=this;e.on("nodeChange",function(){t.disabled(e.getParam("save_enablewhendirty",!0)&&!e.isDirty())})}e.addCommand("mceSave",t),e.addCommand("mceCancel",n),e.addButton("save",{icon:"save",text:"Save",cmd:"mceSave",disabled:!0,onPostRender:i}),e.addButton("cancel",{text:"Cancel",icon:!1,cmd:"mceCancel",disabled:!0,onPostRender:i}),e.addShortcut("ctrl+s","","mceSave")}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/searchreplace/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/searchreplace/plugin.min.js deleted file mode 100644 index 7ffaf4610fb..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/searchreplace/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(){function e(e,t,n,a,r){function i(e,t){if(t=t||0,!e[0])throw"findAndReplaceDOMText cannot handle zero-length matches";var n=e.index;if(t>0){var a=e[t];if(!a)throw"Invalid capture group";n+=e[0].indexOf(a),e[0]=a}return[n,n+e[0].length,[e[0]]]}function d(e){var t;if(3===e.nodeType)return e.data;if(h[e.nodeName]&&!u[e.nodeName])return"";if(t="",(u[e.nodeName]||m[e.nodeName])&&(t+="\n"),e=e.firstChild)do t+=d(e);while(e=e.nextSibling);return t}function o(e,t,n){var a,r,i,d,o=[],l=0,c=e,s=t.shift(),f=0;e:for(;;){if((u[c.nodeName]||m[c.nodeName])&&l++,3===c.nodeType&&(!r&&c.length+l>=s[1]?(r=c,d=s[1]-l):a&&o.push(c),!a&&c.length+l>s[0]&&(a=c,i=s[0]-l),l+=c.length),a&&r){if(c=n({startNode:a,startNodeIndex:i,endNode:r,endNodeIndex:d,innerNodes:o,match:s[2],matchIndex:f}),l-=r.length-d,a=null,r=null,o=[],s=t.shift(),f++,!s)break}else{if((!h[c.nodeName]||u[c.nodeName])&&c.firstChild){c=c.firstChild;continue}if(c.nextSibling){c=c.nextSibling;continue}}for(;;){if(c.nextSibling){c=c.nextSibling;break}if(c.parentNode===e)break e;c=c.parentNode}}}function l(e){var t;if("function"!=typeof e){var n=e.nodeType?e:f.createElement(e);t=function(e,t){var a=n.cloneNode(!1);return a.setAttribute("data-mce-index",t),e&&a.appendChild(f.createTextNode(e)),a}}else t=e;return function(e){var n,a,r,i=e.startNode,d=e.endNode,o=e.matchIndex;if(i===d){var l=i;r=l.parentNode,e.startNodeIndex>0&&(n=f.createTextNode(l.data.substring(0,e.startNodeIndex)),r.insertBefore(n,l));var c=t(e.match[0],o);return r.insertBefore(c,l),e.endNodeIndex<l.length&&(a=f.createTextNode(l.data.substring(e.endNodeIndex)),r.insertBefore(a,l)),l.parentNode.removeChild(l),c}n=f.createTextNode(i.data.substring(0,e.startNodeIndex)),a=f.createTextNode(d.data.substring(e.endNodeIndex));for(var s=t(i.data.substring(e.startNodeIndex),o),u=[],h=0,m=e.innerNodes.length;m>h;++h){var g=e.innerNodes[h],p=t(g.data,o);g.parentNode.replaceChild(p,g),u.push(p)}var x=t(d.data.substring(0,e.endNodeIndex),o);return r=i.parentNode,r.insertBefore(n,i),r.insertBefore(s,i),r.removeChild(i),r=d.parentNode,r.insertBefore(x,d),r.insertBefore(a,d),r.removeChild(d),x}}var c,s,f,u,h,m,g=[],p=0;if(f=t.ownerDocument,u=r.getBlockElements(),h=r.getWhiteSpaceElements(),m=r.getShortEndedElements(),s=d(t)){if(e.global)for(;c=e.exec(s);)g.push(i(c,a));else c=s.match(e),g.push(i(c,a));return g.length&&(p=g.length,o(t,g,l(n))),p}}function t(t){function n(){function e(){r.statusbar.find("#next").disabled(!d(s+1).length),r.statusbar.find("#prev").disabled(!d(s-1).length)}function n(){tinymce.ui.MessageBox.alert("Could not find the specified string.",function(){r.find("#find")[0].focus()})}var a={},r=tinymce.ui.Factory.create({type:"window",layout:"flex",pack:"center",align:"center",onClose:function(){t.focus(),c.done()},onSubmit:function(t){var i,o,l,f;return t.preventDefault(),o=r.find("#case").checked(),f=r.find("#words").checked(),l=r.find("#find").value(),l.length?a.text==l&&a.caseState==o&&a.wholeWord==f?0===d(s+1).length?(n(),void 0):(c.next(),e(),void 0):(i=c.find(l,o,f),i||n(),r.statusbar.items().slice(1).disabled(0===i),e(),a={text:l,caseState:o,wholeWord:f},void 0):(c.done(!1),r.statusbar.items().slice(1).disabled(!0),void 0)},buttons:[{text:"Find",onclick:function(){r.submit()}},{text:"Replace",disabled:!0,onclick:function(){c.replace(r.find("#replace").value())||(r.statusbar.items().slice(1).disabled(!0),s=-1,a={})}},{text:"Replace all",disabled:!0,onclick:function(){c.replace(r.find("#replace").value(),!0,!0),r.statusbar.items().slice(1).disabled(!0),a={}}},{type:"spacer",flex:1},{text:"Prev",name:"prev",disabled:!0,onclick:function(){c.prev(),e()}},{text:"Next",name:"next",disabled:!0,onclick:function(){c.next(),e()}}],title:"Find and replace",items:{type:"form",padding:20,labelGap:30,spacing:10,items:[{type:"textbox",name:"find",size:40,label:"Find",value:t.selection.getNode().src},{type:"textbox",name:"replace",size:40,label:"Replace with"},{type:"checkbox",name:"case",text:"Match case",label:" "},{type:"checkbox",name:"words",text:"Whole words",label:" "}]}}).renderTo().reflow()}function a(e){var t=e.getAttribute("data-mce-index");return"number"==typeof t?""+t:t}function r(n){var a,r;return r=t.dom.create("span",{"data-mce-bogus":1}),r.className="mce-match-marker",a=t.getBody(),c.done(!1),e(n,a,r,!1,t.schema)}function i(e){var t=e.parentNode;t.insertBefore(e.firstChild,e),e.parentNode.removeChild(e)}function d(e){var n,r=[];if(n=tinymce.toArray(t.getBody().getElementsByTagName("span")),n.length)for(var i=0;i<n.length;i++){var d=a(n[i]);null!==d&&d.length&&d===e.toString()&&r.push(n[i])}return r}function o(e){var n=s,a=t.dom;e=e!==!1,e?n++:n--,a.removeClass(d(s),"mce-match-marker-selected");var r=d(n);return r.length?(a.addClass(d(n),"mce-match-marker-selected"),t.selection.scrollIntoView(r[0]),n):-1}function l(e){e.parentNode.removeChild(e)}var c=this,s=-1;c.init=function(e){e.addMenuItem("searchreplace",{text:"Find and replace",shortcut:"Ctrl+F",onclick:n,separator:"before",context:"edit"}),e.addButton("searchreplace",{tooltip:"Find and replace",shortcut:"Ctrl+F",onclick:n}),e.addCommand("SearchReplace",n),e.shortcuts.add("Ctrl+F","",n)},c.find=function(e,t,n){e=e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),e=n?"\\b"+e+"\\b":e;var a=r(new RegExp(e,t?"g":"gi"));return a&&(s=-1,s=o(!0)),a},c.next=function(){var e=o(!0);-1!==e&&(s=e)},c.prev=function(){var e=o(!1);-1!==e&&(s=e)},c.replace=function(e,n,r){var o,f,u,h,m,g,p=s;for(n=n!==!1,u=t.getBody(),f=tinymce.toArray(u.getElementsByTagName("span")),o=0;o<f.length;o++){var x=a(f[o]);if(null!==x&&x.length)if(h=m=parseInt(x,10),r||h===s){for(e.length?(f[o].firstChild.nodeValue=e,i(f[o])):l(f[o]);f[++o];)if(h=a(f[o]),null!==x&&x.length){if(h!==m){o--;break}l(f[o])}n&&p--}else m>s&&f[o].setAttribute("data-mce-index",m-1)}return t.undoManager.add(),s=p,n?(g=d(p+1).length>0,c.next()):(g=d(p-1).length>0,c.prev()),!r&&g},c.done=function(e){var n,r,d,o;for(r=tinymce.toArray(t.getBody().getElementsByTagName("span")),n=0;n<r.length;n++){var l=a(r[n]);null!==l&&l.length&&(l===s.toString()&&(d||(d=r[n].firstChild),o=r[n].firstChild),i(r[n]))}if(d&&o){var c=t.dom.createRng();return c.setStart(d,0),c.setEnd(o,o.data.length),e!==!1&&t.selection.setRng(c),c}}}tinymce.PluginManager.add("searchreplace",t)}(); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/spellchecker/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/spellchecker/plugin.min.js deleted file mode 100644 index 628cf4e0568..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/spellchecker/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i<e.length;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){for(var r=0;r<n.length;r++){for(var i=e,o=n[r],a=o.split(/[.\/]/),l=0;l<a.length-1;++l)i[a[l]]===t&&(i[a[l]]={}),i=i[a[l]];i[a[a.length-1]]=s[o]}}var s={},l="tinymce/spellcheckerplugin/DomTextMatcher",c="tinymce/spellcheckerplugin/Plugin",d="tinymce/PluginManager",u="tinymce/util/Tools",f="tinymce/ui/Menu",p="tinymce/dom/DOMUtils",m="tinymce/util/JSONRequest",h="tinymce/util/URI";r(l,[],function(){return function(e,t){function n(e,t){if(!e[0])throw"findAndReplaceDOMText cannot handle zero-length matches";return{start:e.index,end:e.index+e[0].length,text:e[0],data:t}}function r(e){var t;if(3===e.nodeType)return e.data;if(k[e.nodeName]&&!N[e.nodeName])return"";if(t="",(N[e.nodeName]||E[e.nodeName])&&(t+="\n"),e=e.firstChild)do t+=r(e);while(e=e.nextSibling);return t}function i(e,t,n){var r,i,o,a,s=[],l=0,c=e,d,u=0;t=t.slice(0),t.sort(function(e,t){return e.start-t.start}),d=t.shift();e:for(;;){if((N[c.nodeName]||E[c.nodeName])&&l++,3===c.nodeType&&(!i&&c.length+l>=d.end?(i=c,a=d.end-l):r&&s.push(c),!r&&c.length+l>d.start&&(r=c,o=d.start-l),l+=c.length),r&&i){if(c=n({startNode:r,startNodeIndex:o,endNode:i,endNodeIndex:a,innerNodes:s,match:d.text,matchIndex:u}),l-=i.length-a,r=null,i=null,s=[],d=t.shift(),u++,!d)break}else{if((!k[c.nodeName]||N[c.nodeName])&&c.firstChild){c=c.firstChild;continue}if(c.nextSibling){c=c.nextSibling;continue}}for(;;){if(c.nextSibling){c=c.nextSibling;break}if(c.parentNode===e)break e;c=c.parentNode}}}function o(e){function t(t,n){var r=x[n];r.stencil||(r.stencil=e(r));var i=r.stencil.cloneNode(!1);return i.setAttribute("data-mce-index",n),t&&i.appendChild(_.doc.createTextNode(t)),i}return function n(e){var n,r,i,o=e.startNode,a=e.endNode,s=e.matchIndex,l=_.doc;if(o===a){var c=o;i=c.parentNode,e.startNodeIndex>0&&(n=l.createTextNode(c.data.substring(0,e.startNodeIndex)),i.insertBefore(n,c));var d=t(e.match,s);return i.insertBefore(d,c),e.endNodeIndex<c.length&&(r=l.createTextNode(c.data.substring(e.endNodeIndex)),i.insertBefore(r,c)),c.parentNode.removeChild(c),d}n=l.createTextNode(o.data.substring(0,e.startNodeIndex)),r=l.createTextNode(a.data.substring(e.endNodeIndex));for(var u=t(o.data.substring(e.startNodeIndex),s),f=[],p=0,m=e.innerNodes.length;m>p;++p){var h=e.innerNodes[p],g=t(h.data,s);h.parentNode.replaceChild(g,h),f.push(g)}var v=t(a.data.substring(0,e.endNodeIndex),s);return i=o.parentNode,i.insertBefore(n,o),i.insertBefore(u,o),i.removeChild(o),i=a.parentNode,i.insertBefore(v,a),i.insertBefore(r,a),i.removeChild(a),v}}function a(e){var t=e.parentNode;t.insertBefore(e.firstChild,e),e.parentNode.removeChild(e)}function s(t){var n=e.getElementsByTagName("*"),r=[];t="number"==typeof t?""+t:null;for(var i=0;i<n.length;i++){var o=n[i],a=o.getAttribute("data-mce-index");null!==a&&a.length&&(a===t||null===t)&&r.push(o)}return r}function l(e){for(var t=x.length;t--;)if(x[t]===e)return t;return-1}function c(e){var t=[];return d(function(n,r){e(n,r)&&t.push(n)}),x=t,this}function d(e){for(var t=0,n=x.length;n>t&&e(x[t],t)!==!1;t++);return this}function u(t){return x.length&&i(e,x,o(t)),this}function f(e,t){if(w&&e.global)for(;C=e.exec(w);)x.push(n(C,t));return this}function p(e){var t,n=s(e?l(e):null);for(t=n.length;t--;)a(n[t]);return this}function m(e){return x[e.getAttribute("data-mce-index")]}function h(e){return s(l(e))[0]}function g(e,t,n){return x.push({start:e,end:e+t,text:w.substr(e,t),data:n}),this}function v(e){var n=s(l(e)),r=t.dom.createRng();return r.setStartBefore(n[0]),r.setEndAfter(n[n.length-1]),r}function y(e,n){var r=v(e);return r.deleteContents(),n.length>0&&r.insertNode(t.dom.doc.createTextNode(n)),r}function b(){return x.splice(0,x.length),p(),this}var C,x=[],w,_=t.dom,N,k,E;return N=t.schema.getBlockElements(),k=t.schema.getWhiteSpaceElements(),E=t.schema.getShortEndedElements(),w=r(e),{text:w,matches:x,each:d,filter:c,reset:b,matchFromElement:m,elementFromMatch:h,find:f,add:g,wrap:u,unwrap:p,replace:y,rangeFromMatch:v,indexOf:l}}}),r(c,[l,d,u,f,p,m,h],function(e,t,n,r,i,o,a){t.add("spellchecker",function(t,s){function l(){return y.textMatcher||(y.textMatcher=new e(t.getBody(),t)),y.textMatcher}function c(e,t){var r=[];return n.each(t,function(e){r.push({selectable:!0,text:e.name,data:e.value})}),r}function d(e){for(var t in e)return!1;return!0}function u(e){var o=[],a=b[e.text];n.each(a,function(n){o.push({text:n,onclick:function(){var r=l().replace(e,n);r.collapse(!1),t.selection.setRng(r),p()}})}),o.push.apply(o,[{text:"-"},{text:"Ignore",onclick:function(){m(e)}},{text:"Ignore all",onclick:function(){m(e,!0)}},{text:"Finish",onclick:h}]),x=new r({items:o,context:"contextmenu",onautohide:function(e){-1!=e.target.className.indexOf("spellchecker")&&e.preventDefault()},onhide:function(){x.remove(),x=null}}),x.renderTo(document.body);var s=l().elementFromMatch(e),c=i.DOM.getPos(t.getContentAreaContainer()),d=t.dom.getPos(s),u=t.dom.getRoot();"BODY"==u.nodeName?(d.x-=u.ownerDocument.documentElement.scrollLeft||u.scrollLeft,d.y-=u.ownerDocument.documentElement.scrollTop||u.scrollTop):(d.x-=u.scrollLeft,d.y-=u.scrollTop),c.x+=d.x,c.y+=d.y,x.moveTo(c.x,c.y+s.offsetHeight)}function f(){function e(e){return t.setProgressState(!1),d(e)?(t.windowManager.alert("No misspellings found"),void(C=!1)):(b=e,l().filter(function(t){return!!e[t.text]}).wrap(function(){return t.dom.create("span",{"class":"mce-spellchecker-word","data-mce-bogus":1})}),void t.fire("SpellcheckStart"))}function n(e,n,r){o.sendRPC({url:new a(s).toAbsolute(w.spellchecker_rpc_url),method:e,params:{lang:w.spellchecker_language||"en",words:n},success:function(e){r(e)},error:function(e,n){e="JSON Parse error."==e?"Non JSON response:"+n.responseText:"Error: "+e,t.windowManager.alert(e),t.setProgressState(!1),h()}})}var r=[],i={};if(C)return void h();h(),C=!0;var c=t.getParam("spellchecker_wordchar_pattern")||new RegExp('[^\\s!"#$%&()*+,-./:;<=>?@[\\]^_{|}`\xa7\xa9\xab\xae\xb1\xb6\xb7\xb8\xbb\xbc\xbd\xbe\xbf\xd7\xf7\xa4\u201d\u201c\u201e]+',"g");l().find(c).each(function(e){var t=e.text;if(!i[t]){if(/^\d+$/.test(t)||1==t.length)return;r.push(t),i[t]=!0}}),t.setProgressState(!0);var u=w.spellchecker_callback||n;u("spellcheck",r,e)}function p(){t.dom.select("span.mce-spellchecker-word").length||h()}function m(e,n){t.selection.collapse(),n?l().each(function(t){t.text==e.text&&l().unwrap(t)}):l().unwrap(e),p()}function h(){l().reset(),y.textMatcher=null,C&&(C=!1,t.fire("SpellcheckEnd"))}function g(e){var t=w.spellchecker_language;e.control.items().each(function(e){e.active(e.settings.data===t)})}var v,y=this,b,C,x,w=t.settings,_=w.spellchecker_languages||"English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr_FR,German=de,Italian=it,Polish=pl,Portuguese=pt_BR,Spanish=es,Swedish=sv";v=c("Language",n.map(_.split(","),function(e){var t=e.split("=");return{name:t[0],value:t[1]}})),t.on("click",function(e){if("mce-spellchecker-word"==e.target.className){e.preventDefault();var n=l().matchFromElement(e.target);t.selection.setRng(l().rangeFromMatch(n)),u(n)}}),t.addMenuItem("spellchecker",{text:"Spellcheck",context:"tools",onclick:f,selectable:!0,onPostRender:function(){var e=this;t.on("SpellcheckStart SpellcheckEnd",function(){e.active(C)})}});var N={tooltip:"Spellcheck",onclick:f,onPostRender:function(){var e=this;t.on("SpellcheckStart SpellcheckEnd",function(){e.active(C)})}};v.length>1&&(N.type="splitbutton",N.menu=v,N.onshow=g,N.onselect=function(e){w.spellchecker_language=e.control.settings.data}),t.addButton("spellchecker",N),t.addCommand("mceSpellCheck",f),t.on("remove",function(){x&&(x.remove(),x=null)}),this.getTextMatcher=l,w.spellchecker_language=w.spellchecker_language||w.language||"en"})}),a([l,c])}(this); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/tabfocus/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/tabfocus/plugin.min.js deleted file mode 100644 index 68fe35e35a6..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/tabfocus/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("tabfocus",function(e){function n(e){9!==e.keyCode||e.ctrlKey||e.altKey||e.metaKey||e.preventDefault()}function t(n){function t(n){function t(e){return"BODY"===e.nodeName||"hidden"!=e.type&&"none"!=e.style.display&&"hidden"!=e.style.visibility&&t(e.parentNode)}function r(e){return e.tabIndex||"INPUT"==e.nodeName||"TEXTAREA"==e.nodeName}function c(e){return!r(e)&&"-1"!=e.getAttribute("tabindex")&&t(e)}if(u=i.select(":input:enabled,*[tabindex]:not(iframe)"),o(u,function(n,t){return n.id==e.id?(a=t,!1):void 0}),n>0){for(d=a+1;d<u.length;d++)if(c(u[d]))return u[d]}else for(d=a-1;d>=0;d--)if(c(u[d]))return u[d];return null}var a,u,c,d;if(!(9!==n.keyCode||n.ctrlKey||n.altKey||n.metaKey)&&(c=r(e.getParam("tab_focus",e.getParam("tabfocus_elements",":prev,:next"))),1==c.length&&(c[1]=c[0],c[0]=":prev"),u=n.shiftKey?":prev"==c[0]?t(-1):i.get(c[0]):":next"==c[1]?t(1):i.get(c[1]))){var y=tinymce.get(u.id||u.name);u.id&&y?y.focus():window.setTimeout(function(){tinymce.Env.webkit||window.focus(),u.focus()},10),n.preventDefault()}}var i=tinymce.DOM,o=tinymce.each,r=tinymce.explode;e.on("init",function(){e.inline&&tinymce.DOM.setAttrib(e.getBody(),"tabIndex",null)}),e.on("keyup",n),tinymce.Env.gecko?e.on("keypress keydown",t):e.on("keydown",t)}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/table/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/table/plugin.min.js deleted file mode 100644 index d041caeabf8..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/table/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i<e.length;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){for(var r=0;r<n.length;r++){for(var i=e,o=n[r],a=o.split(/[.\/]/),l=0;l<a.length-1;++l)i[a[l]]===t&&(i[a[l]]={}),i=i[a[l]];i[a[a.length-1]]=s[o]}}var s={},l="tinymce/tableplugin/TableGrid",c="tinymce/util/Tools",d="tinymce/Env",u="tinymce/tableplugin/Quirks",f="tinymce/util/VK",p="tinymce/tableplugin/CellSelection",m="tinymce/dom/TreeWalker",h="tinymce/tableplugin/Plugin",g="tinymce/PluginManager";r(l,[c,d],function(e,t){function n(e,t){return parseInt(e.getAttribute(t)||1,10)}var r=e.each;return function(i,o){function a(){var e=0;R=[],r(["thead","tbody","tfoot"],function(t){var i=H.select("> "+t+" tr",o);r(i,function(i,o){o+=e,r(H.select("> td, > th",i),function(e,r){var i,a,s,l;if(R[o])for(;R[o][r];)r++;for(s=n(e,"rowspan"),l=n(e,"colspan"),a=o;o+s>a;a++)for(R[a]||(R[a]=[]),i=r;r+l>i;i++)R[a][i]={part:t,real:a==o&&i==r,elm:e,rowspan:s,colspan:l}})}),e+=i.length})}function s(e,t){return e=e.cloneNode(t),e.removeAttribute("id"),e}function l(e,t){var n;return n=R[t],n?n[e]:void 0}function c(e,t,n){e&&(n=parseInt(n,10),1===n?e.removeAttribute(t,1):e.setAttribute(t,n,1))}function d(e){return e&&(H.hasClass(e.elm,"mce-item-selected")||e==L)}function u(){var e=[];return r(o.rows,function(t){r(t.cells,function(n){return H.hasClass(n,"mce-item-selected")||n==L.elm?(e.push(t),!1):void 0})}),e}function f(){var e=H.createRng();e.setStartAfter(o),e.setEndAfter(o),D.setRng(e),H.remove(o)}function p(n){var o,a={};return i.settings.table_clone_elements!==!1&&(a=e.makeMap((i.settings.table_clone_elements||"strong em b i span font h1 h2 h3 h4 h5 h6 p div").toUpperCase(),/[ ,]/)),e.walk(n,function(e){var i;return 3==e.nodeType?(r(H.getParents(e.parentNode,null,n).reverse(),function(e){a[e.nodeName]&&(e=s(e,!1),o?i&&i.appendChild(e):o=i=e,i=e)}),i&&(i.innerHTML=t.ie?" ":'<br data-mce-bogus="1" />'),!1):void 0},"childNodes"),n=s(n,!1),c(n,"rowSpan",1),c(n,"colSpan",1),o?n.appendChild(o):t.ie||(n.innerHTML='<br data-mce-bogus="1" />'),n}function m(){var e=H.createRng(),t;return r(H.select("tr",o),function(e){0===e.cells.length&&H.remove(e)}),0===H.select("tr",o).length?(e.setStartBefore(o),e.setEndBefore(o),D.setRng(e),H.remove(o),void 0):(r(H.select("thead,tbody,tfoot",o),function(e){0===e.rows.length&&H.remove(e)}),a(),t=R[Math.min(R.length-1,A.y)],t&&(D.select(t[Math.min(t.length-1,A.x)].elm,!0),D.collapse(!0)),void 0)}function h(e,t,n,r){var i,o,a,s,l;for(i=R[t][e].elm.parentNode,a=1;n>=a;a++)if(i=H.getNext(i,"tr")){for(o=e;o>=0;o--)if(l=R[t+a][o].elm,l.parentNode==i){for(s=1;r>=s;s++)H.insertAfter(p(l),l);break}if(-1==o)for(s=1;r>=s;s++)i.insertBefore(p(i.cells[0]),i.cells[0])}}function g(){r(R,function(e,t){r(e,function(e,r){var i,o,a;if(d(e)&&(e=e.elm,i=n(e,"colspan"),o=n(e,"rowspan"),i>1||o>1)){for(c(e,"rowSpan",1),c(e,"colSpan",1),a=0;i-1>a;a++)H.insertAfter(p(e),e);h(r,t,o-1,i)}})})}function v(t,n,i){var o,s,u,f,p,h,v,y,b,C,x;if(t?(o=E(t),s=o.x,u=o.y,f=s+(n-1),p=u+(i-1)):(A=B=null,r(R,function(e,t){r(e,function(e,n){d(e)&&(A||(A={x:n,y:t}),B={x:n,y:t})})}),s=A.x,u=A.y,f=B.x,p=B.y),y=l(s,u),b=l(f,p),y&&b&&y.part==b.part){for(g(),a(),y=l(s,u).elm,c(y,"colSpan",f-s+1),c(y,"rowSpan",p-u+1),v=u;p>=v;v++)for(h=s;f>=h;h++)R[v]&&R[v][h]&&(t=R[v][h].elm,t!=y&&(C=e.grep(t.childNodes),r(C,function(e){y.appendChild(e)}),C.length&&(C=e.grep(y.childNodes),x=0,r(C,function(e){"BR"==e.nodeName&&H.getAttrib(e,"data-mce-bogus")&&x++<C.length-1&&y.removeChild(e)})),H.remove(t)));m()}}function y(e){var t,i,o,a,l,u,f,m,h;for(r(R,function(n,i){return r(n,function(n){return d(n)&&(n=n.elm,l=n.parentNode,u=s(l,!1),t=i,e)?!1:void 0}),e?!t:void 0}),a=0;a<R[0].length;a++)if(R[t][a]&&(i=R[t][a].elm,i!=o)){if(e){if(t>0&&R[t-1][a]&&(m=R[t-1][a].elm,h=n(m,"rowSpan"),h>1)){c(m,"rowSpan",h+1);continue}}else if(h=n(i,"rowspan"),h>1){c(i,"rowSpan",h+1);continue}f=p(i),c(f,"colSpan",i.colSpan),u.appendChild(f),o=i}u.hasChildNodes()&&(e?l.parentNode.insertBefore(u,l):H.insertAfter(u,l))}function b(e){var t,i;r(R,function(n){return r(n,function(n,r){return d(n)&&(t=r,e)?!1:void 0}),e?!t:void 0}),r(R,function(r,o){var a,s,l;r[t]&&(a=r[t].elm,a!=i&&(l=n(a,"colspan"),s=n(a,"rowspan"),1==l?e?(a.parentNode.insertBefore(p(a),a),h(t,o,s-1,l)):(H.insertAfter(p(a),a),h(t,o,s-1,l)):c(a,"colSpan",a.colSpan+1),i=a))})}function C(){var t=[];r(R,function(i){r(i,function(i,o){d(i)&&-1===e.inArray(t,o)&&(r(R,function(e){var t=e[o].elm,r;r=n(t,"colSpan"),r>1?c(t,"colSpan",r-1):H.remove(t)}),t.push(o))})}),m()}function x(){function e(e){var t,i,o;t=H.getNext(e,"tr"),r(e.cells,function(e){var t=n(e,"rowSpan");t>1&&(c(e,"rowSpan",t-1),i=E(e),h(i.x,i.y,1,1))}),i=E(e.cells[0]),r(R[i.y],function(e){var t;e=e.elm,e!=o&&(t=n(e,"rowSpan"),1>=t?H.remove(e):c(e,"rowSpan",t-1),o=e)})}var t;t=u(),r(t.reverse(),function(t){e(t)}),m()}function w(){var e=u();return H.remove(e),m(),e}function _(){var e=u();return r(e,function(t,n){e[n]=s(t,!0)}),e}function N(e,t){var n=u(),i=n[t?0:n.length-1],o=i.cells.length;e&&(r(R,function(e){var t;return o=0,r(e,function(e){e.real&&(o+=e.colspan),e.elm.parentNode==i&&(t=1)}),t?!1:void 0}),t||e.reverse(),r(e,function(e){var n,r=e.cells.length,a;for(n=0;r>n;n++)a=e.cells[n],c(a,"colSpan",1),c(a,"rowSpan",1);for(n=r;o>n;n++)e.appendChild(p(e.cells[r-1]));for(n=o;r>n;n++)H.remove(e.cells[n]);t?i.parentNode.insertBefore(e,i):H.insertAfter(e,i)}),H.removeClass(H.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"))}function E(e){var t;return r(R,function(n,i){return r(n,function(n,r){return n.elm==e?(t={x:r,y:i},!1):void 0}),!t}),t}function k(e){A=E(e)}function S(){var e,t;return e=t=0,r(R,function(n,i){r(n,function(n,r){var o,a;d(n)&&(n=R[i][r],r>e&&(e=r),i>t&&(t=i),n.real&&(o=n.colspan-1,a=n.rowspan-1,o&&r+o>e&&(e=r+o),a&&i+a>t&&(t=i+a)))})}),{x:e,y:t}}function T(e){var t,n,r,i,o,a,s,l,c,d;if(B=E(e),A&&B){for(t=Math.min(A.x,B.x),n=Math.min(A.y,B.y),r=Math.max(A.x,B.x),i=Math.max(A.y,B.y),o=r,a=i,d=n;a>=d;d++)e=R[d][t],e.real||t-(e.colspan-1)<t&&(t-=e.colspan-1);for(c=t;o>=c;c++)e=R[n][c],e.real||n-(e.rowspan-1)<n&&(n-=e.rowspan-1);for(d=n;i>=d;d++)for(c=t;r>=c;c++)e=R[d][c],e.real&&(s=e.colspan-1,l=e.rowspan-1,s&&c+s>o&&(o=c+s),l&&d+l>a&&(a=d+l));for(H.removeClass(H.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),d=n;a>=d;d++)for(c=t;o>=c;c++)R[d][c]&&H.addClass(R[d][c].elm,"mce-item-selected")}}var R,A,B,L,D=i.selection,H=D.dom;o=o||H.getParent(D.getStart(),"table"),a(),L=H.getParent(D.getStart(),"th,td"),L&&(A=E(L),B=S(),L=l(A.x,A.y)),e.extend(this,{deleteTable:f,split:g,merge:v,insertRow:y,insertCol:b,deleteCols:C,deleteRows:x,cutRows:w,copyRows:_,pasteRows:N,getPos:E,setStartCell:k,setEndCell:T})}}),r(u,[f,d,c],function(e,t,n){function r(e,t){return parseInt(e.getAttribute(t)||1,10)}var i=n.each;return function(n){function o(){function t(t){function o(e,r){var i=e?"previousSibling":"nextSibling",o=n.dom.getParent(r,"tr"),s=o[i];if(s)return g(n,r,s,e),t.preventDefault(),!0;var d=n.dom.getParent(o,"table"),u=o.parentNode,f=u.nodeName.toLowerCase();if("tbody"===f||f===(e?"tfoot":"thead")){var p=a(e,d,u,"tbody");if(null!==p)return l(e,p,r)}return c(e,o,i,d)}function a(e,t,r,i){var o=n.dom.select(">"+i,t),a=o.indexOf(r);if(e&&0===a||!e&&a===o.length-1)return s(e,t);if(-1===a){var l="thead"===r.tagName.toLowerCase()?0:o.length-1;return o[l]}return o[a+(e?-1:1)]}function s(e,t){var r=e?"thead":"tfoot",i=n.dom.select(">"+r,t);return 0!==i.length?i[0]:null}function l(e,r,i){var o=d(r,e);return o&&g(n,i,o,e),t.preventDefault(),!0}function c(e,r,i,a){var s=a[i];if(s)return u(s),!0;var l=n.dom.getParent(a,"td,th");if(l)return o(e,l,t);var c=d(r,!e);return u(c),t.preventDefault(),!1}function d(e,t){var r=e&&e[t?"lastChild":"firstChild"];return r&&"BR"===r.nodeName?n.dom.getParent(r,"td,th"):r}function u(e){n.selection.setCursorLocation(e,0)}function f(){return b==e.UP||b==e.DOWN}function p(e){var t=e.selection.getNode(),n=e.dom.getParent(t,"tr");return null!==n}function m(e){for(var t=0,n=e;n.previousSibling;)n=n.previousSibling,t+=r(n,"colspan");return t}function h(e,t){var n=0,o=0;return i(e.children,function(e,i){return n+=r(e,"colspan"),o=i,n>t?!1:void 0}),o}function g(e,t,r,i){var o=m(n.dom.getParent(t,"td,th")),a=h(r,o),s=r.childNodes[a],l=d(s,i);u(l||s)}function v(e){var t=n.selection.getNode(),r=n.dom.getParent(t,"td,th"),i=n.dom.getParent(e,"td,th");return r&&r!==i&&y(r,i)}function y(e,t){return n.dom.getParent(e,"TABLE")===n.dom.getParent(t,"TABLE")}var b=t.keyCode;if(f()&&p(n)){var C=n.selection.getNode();setTimeout(function(){v(C)&&o(!t.shiftKey&&b===e.UP,C,t)},0)}}n.on("KeyDown",function(e){t(e)})}function a(){function e(e,t){var n=t.ownerDocument,r=n.createRange(),i;return r.setStartBefore(t),r.setEnd(e.endContainer,e.endOffset),i=n.createElement("body"),i.appendChild(r.cloneContents()),0===i.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length}n.on("KeyDown",function(t){var r,i,o=n.dom;(37==t.keyCode||38==t.keyCode)&&(r=n.selection.getRng(),i=o.getParent(r.startContainer,"table"),i&&n.getBody().firstChild==i&&e(r,i)&&(r=o.createRng(),r.setStartBefore(i),r.setEndBefore(i),n.selection.setRng(r),t.preventDefault()))})}function s(){n.on("KeyDown SetContent VisualAid",function(){var e;for(e=n.getBody().lastChild;e;e=e.previousSibling)if(3==e.nodeType){if(e.nodeValue.length>0)break}else if(1==e.nodeType&&!e.getAttribute("data-mce-bogus"))break;e&&"TABLE"==e.nodeName&&(n.settings.forced_root_block?n.dom.add(n.getBody(),n.settings.forced_root_block,n.settings.forced_root_block_attrs,t.ie&&t.ie<11?" ":'<br data-mce-bogus="1" />'):n.dom.add(n.getBody(),"br",{"data-mce-bogus":"1"}))}),n.on("PreProcess",function(e){var t=e.node.lastChild;t&&("BR"==t.nodeName||1==t.childNodes.length&&("BR"==t.firstChild.nodeName||"\xa0"==t.firstChild.nodeValue))&&t.previousSibling&&"TABLE"==t.previousSibling.nodeName&&n.dom.remove(t)})}function l(){function e(e,t,n,r){var i=3,o=e.dom.getParent(t.startContainer,"TABLE"),a,s,l;return o&&(a=o.parentNode),s=t.startContainer.nodeType==i&&0===t.startOffset&&0===t.endOffset&&r&&("TR"==n.nodeName||n==a),l=("TD"==n.nodeName||"TH"==n.nodeName)&&!r,s||l}function t(){var t=n.selection.getRng(),r=n.selection.getNode(),i=n.dom.getParent(t.startContainer,"TD,TH");if(e(n,t,r,i)){i||(i=r);for(var o=i.lastChild;o.lastChild;)o=o.lastChild;t.setEnd(o,o.nodeValue.length),n.selection.setRng(t)}}n.on("KeyDown",function(){t()}),n.on("MouseDown",function(e){2!=e.button&&t()})}function c(){n.on("keydown",function(t){if((t.keyCode==e.DELETE||t.keyCode==e.BACKSPACE)&&!t.isDefaultPrevented()){var r=n.dom.getParent(n.selection.getStart(),"table");if(r){for(var i=n.dom.select("td,th",r),o=i.length;o--;)if(!n.dom.hasClass(i[o],"mce-item-selected"))return;t.preventDefault(),n.execCommand("mceTableDelete")}}})}c(),t.webkit&&(o(),l()),t.gecko&&(a(),s()),t.ie>10&&(a(),s())}}),r(p,[l,m,c],function(e,t,n){return function(r){function i(){r.getBody().style.webkitUserSelect="",d&&(r.dom.removeClass(r.dom.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),d=!1)}function o(t){var n,i,o=t.target;if(l&&(s||o!=l)&&("TD"==o.nodeName||"TH"==o.nodeName)){i=a.getParent(o,"table"),i==c&&(s||(s=new e(r,i),s.setStartCell(l),r.getBody().style.webkitUserSelect="none"),s.setEndCell(o),d=!0),n=r.selection.getSel();try{n.removeAllRanges?n.removeAllRanges():n.empty()}catch(u){}t.preventDefault()}}var a=r.dom,s,l,c,d=!0;return r.on("MouseDown",function(e){2!=e.button&&(i(),l=a.getParent(e.target,"td,th"),c=a.getParent(l,"table"))}),a.bind(r.getDoc(),"mouseover",o),r.on("remove",function(){a.unbind(r.getDoc(),"mouseover",o)}),r.on("MouseUp",function(){function e(e,r){var o=new t(e,e);do{if(3==e.nodeType&&0!==n.trim(e.nodeValue).length)return r?i.setStart(e,0):i.setEnd(e,e.nodeValue.length),void 0;if("BR"==e.nodeName)return r?i.setStartBefore(e):i.setEndBefore(e),void 0}while(e=r?o.next():o.prev())}var i,o=r.selection,d,u,f,p,m;if(l){if(s&&(r.getBody().style.webkitUserSelect=""),d=a.select("td.mce-item-selected,th.mce-item-selected"),d.length>0){i=a.createRng(),f=d[0],m=d[d.length-1],i.setStartBefore(f),i.setEndAfter(f),e(f,1),u=new t(f,a.getParent(d[0],"table"));do if("TD"==f.nodeName||"TH"==f.nodeName){if(!a.hasClass(f,"mce-item-selected"))break;p=f}while(f=u.next());e(p),o.setRng(i)}r.nodeChanged(),l=s=c=null}}),r.on("KeyUp",function(){i()}),{clear:i}}}),r(h,[l,u,p,c,m,d,g],function(e,t,n,r,i,o,a){function s(r){function i(e){return e?e.replace(/px$/,""):""}function a(e){return/^[0-9]+$/.test(e)&&(e+="px"),e}function s(e){l("left center right".split(" "),function(t){r.formatter.remove("align"+t,{},e)})}function c(){var e=r.dom,t,n;t=e.getParent(r.selection.getStart(),"table"),n={width:i(e.getStyle(t,"width")||e.getAttrib(t,"width")),height:i(e.getStyle(t,"height")||e.getAttrib(t,"height")),cellspacing:e.getAttrib(t,"cellspacing"),cellpadding:e.getAttrib(t,"cellpadding"),border:e.getAttrib(t,"border"),caption:!!e.select("caption",t)[0]},l("left center right".split(" "),function(e){r.formatter.matchNode(t,"align"+e)&&(n.align=e)}),r.windowManager.open({title:"Table properties",items:{type:"form",layout:"grid",columns:2,data:n,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell spacing",name:"cellspacing"},{label:"Cell padding",name:"cellpadding"},{label:"Border",name:"border"},{label:"Caption",name:"caption",type:"checkbox"},{label:"Alignment",minWidth:90,name:"align",type:"listbox",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]}]},onsubmit:function(){var n=this.toJSON(),i;r.undoManager.transact(function(){r.dom.setAttribs(t,{cellspacing:n.cellspacing,cellpadding:n.cellpadding,border:n.border}),r.dom.setStyles(t,{width:a(n.width),height:a(n.height)}),i=e.select("caption",t)[0],i&&!n.caption&&e.remove(i),!i&&n.caption&&(i=e.create("caption"),i.innerHTML=o.ie?"\xa0":'<br data-mce-bogus="1"/>',t.insertBefore(i,t.firstChild)),s(t),n.align&&r.formatter.apply("align"+n.align,{},t),r.focus(),r.addVisual()})}})}function d(e,t){r.windowManager.open({title:"Merge cells",body:[{label:"Cols",name:"cols",type:"textbox",size:10},{label:"Rows",name:"rows",type:"textbox",size:10}],onsubmit:function(){var n=this.toJSON();r.undoManager.transact(function(){e.merge(t,n.cols,n.rows)})}})}function u(){var e=r.dom,t,n,o=[];o=r.dom.select("td.mce-item-selected,th.mce-item-selected"),t=r.dom.getParent(r.selection.getStart(),"td,th"),!o.length&&t&&o.push(t),t=t||o[0],n={width:i(e.getStyle(t,"width")||e.getAttrib(t,"width")),height:i(e.getStyle(t,"height")||e.getAttrib(t,"height")),scope:e.getAttrib(t,"scope")},n.type=t.nodeName.toLowerCase(),l("left center right".split(" "),function(e){r.formatter.matchNode(t,"align"+e)&&(n.align=e)}),r.windowManager.open({title:"Cell properties",items:{type:"form",data:n,layout:"grid",columns:2,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell type",name:"type",type:"listbox",text:"None",minWidth:90,maxWidth:null,menu:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{label:"Scope",name:"scope",type:"listbox",text:"None",minWidth:90,maxWidth:null,menu:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{label:"Alignment",name:"align",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]}]},onsubmit:function(){var t=this.toJSON();r.undoManager.transact(function(){l(o,function(n){r.dom.setAttrib(n,"scope",t.scope),r.dom.setStyles(n,{width:a(t.width),height:a(t.height)}),t.type&&n.nodeName.toLowerCase()!=t.type&&(n=e.rename(n,t.type)),s(n),t.align&&r.formatter.apply("align"+t.align,{},n)}),r.focus()})}})}function f(){var e=r.dom,t,n,o,c,d=[];t=r.dom.getParent(r.selection.getStart(),"table"),n=r.dom.getParent(r.selection.getStart(),"td,th"),l(t.rows,function(t){l(t.cells,function(r){return e.hasClass(r,"mce-item-selected")||r==n?(d.push(t),!1):void 0})}),o=d[0],c={height:i(e.getStyle(o,"height")||e.getAttrib(o,"height")),scope:e.getAttrib(o,"scope")},c.type=o.parentNode.nodeName.toLowerCase(),l("left center right".split(" "),function(e){r.formatter.matchNode(o,"align"+e)&&(c.align=e)}),r.windowManager.open({title:"Row properties",items:{type:"form",data:c,columns:2,defaults:{type:"textbox"},items:[{type:"listbox",name:"type",label:"Row type",text:"None",maxWidth:null,menu:[{text:"Header",value:"thead"},{text:"Body",value:"tbody"},{text:"Footer",value:"tfoot"}]},{type:"listbox",name:"align",label:"Alignment",text:"None",maxWidth:null,menu:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"Height",name:"height"}]},onsubmit:function(){var t=this.toJSON(),n,i,o;r.undoManager.transact(function(){var c=t.type;l(d,function(l){r.dom.setAttrib(l,"scope",t.scope),r.dom.setStyles(l,{height:a(t.height)}),c!=l.parentNode.nodeName.toLowerCase()&&(n=e.getParent(l,"table"),i=l.parentNode,o=e.select(c,n)[0],o||(o=e.create(c),n.firstChild?n.insertBefore(o,n.firstChild):n.appendChild(o)),o.appendChild(l),i.hasChildNodes()||e.remove(i)),s(l),t.align&&r.formatter.apply("align"+t.align,{},l)}),r.focus()})}})}function p(e){return function(){r.execCommand(e)}}function m(e,t){var n,i,a;for(a="<table><tbody>",n=0;t>n;n++){for(a+="<tr>",i=0;e>i;i++)a+="<td>"+(o.ie?" ":"<br>")+"</td>";a+="</tr>"}a+="</tbody></table>",r.insertContent(a)}function h(e,t){function n(){e.disabled(!r.dom.getParent(r.selection.getStart(),t)),r.selection.selectorChanged(t,function(t){e.disabled(!t)})}r.initialized?n():r.on("init",n)}function g(){h(this,"table")}function v(){h(this,"td,th")}function y(){var e="";e='<table role="presentation" class="mce-grid mce-grid-border">';for(var t=0;10>t;t++){e+="<tr>";for(var n=0;10>n;n++)e+='<td><a href="#" data-mce-index="'+n+","+t+'"></a></td>';e+="</tr>"}return e+="</table>",e+='<div class="mce-text-center">0 x 0</div>'}var b,C,x=this;r.addMenuItem("inserttable",{text:"Insert table",icon:"table",context:"table",onhide:function(){r.dom.removeClass(this.menu.items()[0].getEl().getElementsByTagName("a"),"mce-active")},menu:[{type:"container",html:y(),onmousemove:function(e){var t,n,i=e.target;if("A"==i.nodeName){var o=r.dom.getParent(i,"table"),a=i.getAttribute("data-mce-index"),s=e.control.parent().rel;if(a!=this.lastPos){if(a=a.split(","),a[0]=parseInt(a[0],10),a[1]=parseInt(a[1],10),e.control.isRtl()||"tl-tr"==s){for(n=9;n>=0;n--)for(t=0;10>t;t++)r.dom.toggleClass(o.rows[n].childNodes[t].firstChild,"mce-active",t>=a[0]&&n<=a[1]);a[0]=9-a[0],o.nextSibling.innerHTML=a[0]+" x "+(a[1]+1)}else{for(n=0;10>n;n++)for(t=0;10>t;t++)r.dom.toggleClass(o.rows[n].childNodes[t].firstChild,"mce-active",t<=a[0]&&n<=a[1]);o.nextSibling.innerHTML=a[0]+1+" x "+(a[1]+1)}this.lastPos=a}}},onclick:function(e){"A"==e.target.nodeName&&this.lastPos&&(e.preventDefault(),m(this.lastPos[0]+1,this.lastPos[1]+1),this.parent().cancel())}}]}),r.addMenuItem("tableprops",{text:"Table properties",context:"table",onPostRender:g,onclick:c}),r.addMenuItem("deletetable",{text:"Delete table",context:"table",onPostRender:g,cmd:"mceTableDelete"}),r.addMenuItem("cell",{separator:"before",text:"Cell",context:"table",menu:[{text:"Cell properties",onclick:p("mceTableCellProps"),onPostRender:v},{text:"Merge cells",onclick:p("mceTableMergeCells"),onPostRender:v},{text:"Split cell",onclick:p("mceTableSplitCells"),onPostRender:v}]}),r.addMenuItem("row",{text:"Row",context:"table",menu:[{text:"Insert row before",onclick:p("mceTableInsertRowBefore"),onPostRender:v},{text:"Insert row after",onclick:p("mceTableInsertRowAfter"),onPostRender:v},{text:"Delete row",onclick:p("mceTableDeleteRow"),onPostRender:v},{text:"Row properties",onclick:p("mceTableRowProps"),onPostRender:v},{text:"-"},{text:"Cut row",onclick:p("mceTableCutRow"),onPostRender:v},{text:"Copy row",onclick:p("mceTableCopyRow"),onPostRender:v},{text:"Paste row before",onclick:p("mceTablePasteRowBefore"),onPostRender:v},{text:"Paste row after",onclick:p("mceTablePasteRowAfter"),onPostRender:v}]}),r.addMenuItem("column",{text:"Column",context:"table",menu:[{text:"Insert column before",onclick:p("mceTableInsertColBefore"),onPostRender:v},{text:"Insert column after",onclick:p("mceTableInsertColAfter"),onPostRender:v},{text:"Delete column",onclick:p("mceTableDeleteCol"),onPostRender:v}]});var w=[];l("inserttable tableprops deletetable | cell row column".split(" "),function(e){"|"==e?w.push({text:"-"}):w.push(r.menuItems[e])}),r.addButton("table",{type:"menubutton",title:"Table",menu:w}),o.isIE||r.on("click",function(e){e=e.target,"TABLE"===e.nodeName&&(r.selection.select(e),r.nodeChanged())}),x.quirks=new t(r),r.on("Init",function(){b=r.windowManager,x.cellSelection=new n(r)}),l({mceTableSplitCells:function(e){e.split()},mceTableMergeCells:function(e){var t,n,i;i=r.dom.getParent(r.selection.getStart(),"th,td"),i&&(t=i.rowSpan,n=i.colSpan),r.dom.select("td.mce-item-selected,th.mce-item-selected").length?e.merge():d(e,i)},mceTableInsertRowBefore:function(e){e.insertRow(!0)},mceTableInsertRowAfter:function(e){e.insertRow()},mceTableInsertColBefore:function(e){e.insertCol(!0)},mceTableInsertColAfter:function(e){e.insertCol()},mceTableDeleteCol:function(e){e.deleteCols()},mceTableDeleteRow:function(e){e.deleteRows()},mceTableCutRow:function(e){C=e.cutRows()},mceTableCopyRow:function(e){C=e.copyRows()},mceTablePasteRowBefore:function(e){e.pasteRows(C,!0)},mceTablePasteRowAfter:function(e){e.pasteRows(C)},mceTableDelete:function(e){e.deleteTable()}},function(t,n){r.addCommand(n,function(){var n=new e(r);n&&(t(n),r.execCommand("mceRepaint"),x.cellSelection.clear())})}),l({mceInsertTable:function(){c()},mceTableRowProps:f,mceTableCellProps:u},function(e,t){r.addCommand(t,function(t,n){e(n)})})}var l=r.each;a.add("table",s)}),a([l,u,p,h])}(this); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/template/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/template/plugin.min.js deleted file mode 100644 index 91a8b5fa2dd..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/template/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("template",function(e){function t(t){return function(){var a=e.settings.templates;"string"==typeof a?tinymce.util.XHR.send({url:a,success:function(e){t(tinymce.util.JSON.parse(e))}}):t(a)}}function a(t){function a(t){function a(t){if(-1==t.indexOf("<html>")){var a="";tinymce.each(e.contentCSS,function(t){a+='<link type="text/css" rel="stylesheet" href="'+e.documentBaseURI.toAbsolute(t)+'">'}),t="<!DOCTYPE html><html><head>"+a+"</head>"+"<body>"+t+"</body>"+"</html>"}t=r(t,"template_preview_replace_values");var l=n.find("iframe")[0].getEl().contentWindow.document;l.open(),l.write(t),l.close()}var c=t.control.value();c.url?tinymce.util.XHR.send({url:c.url,success:function(e){l=e,a(l)}}):(l=c.content,a(l)),n.find("#description")[0].text(t.control.value().description)}var n,l,i=[];return t&&0!==t.length?(tinymce.each(t,function(e){i.push({selected:!i.length,text:e.title,value:{url:e.url,content:e.content,description:e.description}})}),n=e.windowManager.open({title:"Insert template",layout:"flex",direction:"column",align:"stretch",padding:15,spacing:10,items:[{type:"form",flex:0,padding:0,items:[{type:"container",label:"Templates",items:{type:"listbox",label:"Templates",name:"template",values:i,onselect:a}}]},{type:"label",name:"description",label:"Description",text:" "},{type:"iframe",flex:1,border:1}],onsubmit:function(){c(!1,l)},width:e.getParam("template_popup_width",600),height:e.getParam("template_popup_height",500)}),n.find("listbox")[0].fire("select"),void 0):(e.windowManager.alert("No templates defined"),void 0)}function n(t,a){function n(e,t){if(e=""+e,e.length<t)for(var a=0;a<t-e.length;a++)e="0"+e;return e}var l="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),r="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),c="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),i="January February March April May June July August September October November December".split(" ");return a=a||new Date,t=t.replace("%D","%m/%d/%Y"),t=t.replace("%r","%I:%M:%S %p"),t=t.replace("%Y",""+a.getFullYear()),t=t.replace("%y",""+a.getYear()),t=t.replace("%m",n(a.getMonth()+1,2)),t=t.replace("%d",n(a.getDate(),2)),t=t.replace("%H",""+n(a.getHours(),2)),t=t.replace("%M",""+n(a.getMinutes(),2)),t=t.replace("%S",""+n(a.getSeconds(),2)),t=t.replace("%I",""+((a.getHours()+11)%12+1)),t=t.replace("%p",""+(a.getHours()<12?"AM":"PM")),t=t.replace("%B",""+e.translate(i[a.getMonth()])),t=t.replace("%b",""+e.translate(c[a.getMonth()])),t=t.replace("%A",""+e.translate(r[a.getDay()])),t=t.replace("%a",""+e.translate(l[a.getDay()])),t=t.replace("%%","%")}function l(t){var a=e.dom,n=e.getParam("template_replace_values");i(a.select("*",t),function(e){i(n,function(t,l){a.hasClass(e,l)&&"function"==typeof n[l]&&n[l](e)})})}function r(t,a){return i(e.getParam(a),function(e,a){"function"!=typeof e&&(t=t.replace(new RegExp("\\{\\$"+a+"\\}","g"),e))}),t}function c(t,a){function c(e,t){return new RegExp("\\b"+t+"\\b","g").test(e.className)}var o,s,p=e.dom,m=e.selection.getContent();a=r(a,"template_replace_values"),o=p.create("div",null,a),s=p.select(".mceTmpl",o),s&&s.length>0&&(o=p.create("div",null),o.appendChild(s[0].cloneNode(!0))),i(p.select("*",o),function(t){c(t,e.getParam("template_cdate_classes","cdate").replace(/\s+/g,"|"))&&(t.innerHTML=n(e.getParam("template_cdate_format",e.getLang("template.cdate_format")))),c(t,e.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))&&(t.innerHTML=n(e.getParam("template_mdate_format",e.getLang("template.mdate_format")))),c(t,e.getParam("template_selected_content_classes","selcontent").replace(/\s+/g,"|"))&&(t.innerHTML=m)}),l(o),e.execCommand("mceInsertContent",!1,o.innerHTML),e.addVisual()}var i=tinymce.each;e.addCommand("mceInsertTemplate",c),e.addButton("template",{title:"Insert template",onclick:t(a)}),e.addMenuItem("template",{text:"Insert template",onclick:t(a),context:"insert"}),e.on("PreProcess",function(t){var a=e.dom;i(a.select("div",t.node),function(t){a.hasClass(t,"mceTmpl")&&(i(a.select("*",t),function(t){a.hasClass(t,e.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))&&(t.innerHTML=n(e.getParam("template_mdate_format",e.getLang("template.mdate_format"))))}),l(t))})})}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/textcolor/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/textcolor/plugin.min.js deleted file mode 100644 index ee943e497f9..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/textcolor/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("textcolor",function(e){function o(){var o,t,r=[];for(t=e.settings.textcolor_map||["000000","Black","993300","Burnt orange","333300","Dark olive","003300","Dark green","003366","Dark azure","000080","Navy Blue","333399","Indigo","333333","Very dark gray","800000","Maroon","FF6600","Orange","808000","Olive","008000","Green","008080","Teal","0000FF","Blue","666699","Grayish blue","808080","Gray","FF0000","Red","FF9900","Amber","99CC00","Yellow green","339966","Sea green","33CCCC","Turquoise","3366FF","Royal blue","800080","Purple","999999","Medium gray","FF00FF","Magenta","FFCC00","Gold","FFFF00","Yellow","00FF00","Lime","00FFFF","Aqua","00CCFF","Sky blue","993366","Brown","C0C0C0","Silver","FF99CC","Pink","FFCC99","Peach","FFFF99","Light yellow","CCFFCC","Pale green","CCFFFF","Pale cyan","99CCFF","Light sky blue","CC99FF","Plum","FFFFFF","White"],o=0;o<t.length;o+=2)r.push({text:t[o+1],color:t[o]});return r}function t(){var t,r,l,c,n,a,F,i,d,u=this;for(t=o(),l='<table class="mce-grid mce-grid-border mce-colorbutton-grid" role="presentation" cellspacing="0"><tbody>',c=t.length-1,n=e.settings.textcolor_rows||5,a=e.settings.textcolor_cols||8,i=0;n>i;i++){for(l+="<tr>",F=0;a>F;F++)d=i*a+F,d>c?l+="<td></td>":(r=t[d],l+='<td><div id="'+u._id+"-"+d+'"'+' data-mce-color="'+r.color+'"'+' role="option"'+' tabIndex="-1"'+' style="'+(r?"background-color: #"+r.color:"")+'"'+' title="'+r.text+'">'+"</div>"+"</td>");l+="</tr>"}return l+="</tbody></table>"}function r(o){var t,r=this.parent();(t=o.target.getAttribute("data-mce-color"))&&(r.hidePanel(),t="#"+t,r.color(t),e.execCommand(r.settings.selectcmd,!1,t))}function l(){var o=this;o._color&&e.execCommand(o.settings.selectcmd,!1,o._color)}e.addButton("forecolor",{type:"colorbutton",tooltip:"Text color",selectcmd:"ForeColor",panel:{html:t,onclick:r},onclick:l}),e.addButton("backcolor",{type:"colorbutton",tooltip:"Background color",selectcmd:"HiliteColor",panel:{html:t,onclick:r},onclick:l})}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/visualblocks/css/visualblocks.css b/common/static/js/vendor/tiny_mce/plugins/visualblocks/css/visualblocks.css deleted file mode 100644 index fe6fa930a4e..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/visualblocks/css/visualblocks.css +++ /dev/null @@ -1,128 +0,0 @@ -.mce-visualblocks p { - padding-top: 10px; - border: 1px dashed #BBB; - margin-left: 3px; - background: transparent no-repeat url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); -} - -.mce-visualblocks h1 { - padding-top: 10px; - border: 1px dashed #BBB; - margin-left: 3px; - background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); -} - -.mce-visualblocks h2 { - padding-top: 10px; - border: 1px dashed #BBB; - margin-left: 3px; - background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); -} - -.mce-visualblocks h3 { - padding-top: 10px; - border: 1px dashed #BBB; - margin-left: 3px; - background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); -} - -.mce-visualblocks h4 { - padding-top: 10px; - border: 1px dashed #BBB; - margin-left: 3px; - background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); -} - -.mce-visualblocks h5 { - padding-top: 10px; - border: 1px dashed #BBB; - margin-left: 3px; - background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); -} - -.mce-visualblocks h6 { - padding-top: 10px; - border: 1px dashed #BBB; - margin-left: 3px; - background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); -} - -.mce-visualblocks div { - padding-top: 10px; - border: 1px dashed #BBB; - margin-left: 3px; - background: transparent no-repeat url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); -} - -.mce-visualblocks section { - padding-top: 10px; - border: 1px dashed #BBB; - margin: 0 0 1em 3px; - background: transparent no-repeat url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); -} - -.mce-visualblocks article { - padding-top: 10px; - border: 1px dashed #BBB; - margin: 0 0 1em 3px; - background: transparent no-repeat url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); -} - -.mce-visualblocks blockquote { - padding-top: 10px; - border: 1px dashed #BBB; - background: transparent no-repeat url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); -} - -.mce-visualblocks address { - padding-top: 10px; - border: 1px dashed #BBB; - margin: 0 0 1em 3px; - background: transparent no-repeat url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); -} - -.mce-visualblocks pre { - padding-top: 10px; - border: 1px dashed #BBB; - margin-left: 3px; - background: transparent no-repeat url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); -} - -.mce-visualblocks figure { - padding-top: 10px; - border: 1px dashed #BBB; - margin: 0 0 1em 3px; - background: transparent no-repeat url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); -} - -.mce-visualblocks hgroup { - padding-top: 10px; - border: 1px dashed #BBB; - margin: 0 0 1em 3px; - background: transparent no-repeat url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); -} - -.mce-visualblocks aside { - padding-top: 10px; - border: 1px dashed #BBB; - margin: 0 0 1em 3px; - background: transparent no-repeat url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); -} - -.mce-visualblocks figcaption { - border: 1px dashed #BBB; -} - -.mce-visualblocks ul { - padding-top: 10px; - border: 1px dashed #BBB; - margin: 0 0 1em 3px; - background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==) -} - -.mce-visualblocks ol { - padding-top: 10px; - border: 1px dashed #BBB; - margin: 0 0 1em 3px; - background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==); -} diff --git a/common/static/js/vendor/tiny_mce/plugins/visualblocks/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/visualblocks/plugin.min.js deleted file mode 100644 index cafa418736b..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/visualblocks/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("visualblocks",function(e,t){function n(){var t=this;t.active(r),e.on("VisualBlocks",function(){t.active(e.dom.hasClass(e.getBody(),"mce-visualblocks"))})}var i,a,r;window.NodeList&&(e.addCommand("mceVisualBlocks",function(){var n,o=e.dom;i||(i=o.uniqueId(),n=o.create("link",{id:i,rel:"stylesheet",href:t+"/css/visualblocks.css"}),e.getDoc().getElementsByTagName("head")[0].appendChild(n)),e.on("PreviewFormats AfterPreviewFormats",function(t){r&&o.toggleClass(e.getBody(),"mce-visualblocks","afterpreviewformats"==t.type)}),o.toggleClass(e.getBody(),"mce-visualblocks"),r=e.dom.hasClass(e.getBody(),"mce-visualblocks"),a&&a.active(o.hasClass(e.getBody(),"mce-visualblocks")),e.fire("VisualBlocks")}),e.addButton("visualblocks",{title:"Show blocks",cmd:"mceVisualBlocks",onPostRender:n}),e.addMenuItem("visualblocks",{text:"Show blocks",cmd:"mceVisualBlocks",onPostRender:n,selectable:!0,context:"view",prependToContext:!0}),e.on("init",function(){e.settings.visualblocks_default_state&&e.execCommand("mceVisualBlocks",!1,null,{skip_focus:!0})}),e.on("remove",function(){e.dom.removeClass(e.getBody(),"mce-visualblocks")}))}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/visualchars/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/visualchars/plugin.min.js deleted file mode 100644 index 447423884e1..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/visualchars/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("visualchars",function(e){function t(t){var n,a,r,o,l,s,c=e.getBody(),d=e.selection;if(i=!i,e.fire("VisualChars",{state:i}),t&&(s=d.getBookmark()),i)for(a=[],tinymce.walk(c,function(e){3==e.nodeType&&e.nodeValue&&-1!=e.nodeValue.indexOf(" ")&&a.push(e)},"childNodes"),r=0;r<a.length;r++){for(o=a[r].nodeValue,o=o.replace(/(\u00a0)/g,'<span data-mce-bogus="1" class="mce-nbsp">$1</span>'),l=e.dom.create("div",null,o);n=l.lastChild;)e.dom.insertAfter(n,a[r]);e.dom.remove(a[r])}else for(a=e.dom.select("span.mce-nbsp",c),r=a.length-1;r>=0;r--)e.dom.remove(a[r],1);d.moveToBookmark(s)}function n(){var t=this;e.on("VisualChars",function(e){t.active(e.state)})}var i;e.addCommand("mceVisualChars",t),e.addButton("visualchars",{title:"Show invisible characters",cmd:"mceVisualChars",onPostRender:n}),e.addMenuItem("visualchars",{text:"Show invisible characters",cmd:"mceVisualChars",onPostRender:n,selectable:!0,context:"view",prependToContext:!0}),e.on("beforegetcontent",function(e){i&&"raw"!=e.format&&!e.draft&&(i=!0,t(!1))})}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/plugins/wordcount/plugin.min.js b/common/static/js/vendor/tiny_mce/plugins/wordcount/plugin.min.js deleted file mode 100644 index acda5d044c0..00000000000 --- a/common/static/js/vendor/tiny_mce/plugins/wordcount/plugin.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.PluginManager.add("wordcount",function(e){function t(){e.theme.panel.find("#wordcount").text(["Words: {0}",a.getCount()])}var n,o,a=this;n=e.getParam("wordcount_countregex",/[\w\u2019\x27\-\u0600-\u06FF]+/g),o=e.getParam("wordcount_cleanregex",/[0-9.(),;:!?%#$?\x27\x22_+=\\\/\-]*/g),e.on("init",function(){var n=e.theme.panel&&e.theme.panel.find("#statusbar")[0];n&&window.setTimeout(function(){n.insert({type:"label",name:"wordcount",text:["Words: {0}",a.getCount()],classes:"wordcount",disabled:e.settings.readonly},0),e.on("setcontent beforeaddundo",t),e.on("keyup",function(e){32==e.keyCode&&t()})},0)}),a.getCount=function(){var t=e.getContent({format:"raw"}),a=0;if(t){t=t.replace(/\.\.\./g," "),t=t.replace(/<.[^<>]*?>/g," ").replace(/ | /gi," "),t=t.replace(/(\w+)(&.+?;)+(\w+)/,"$1$3").replace(/&.+?;/g," "),t=t.replace(o,"");var r=t.match(n);r&&(a=r.length)}return a}}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/skins/lightgray/content.inline.min.css b/common/static/js/vendor/tiny_mce/skins/lightgray/content.inline.min.css deleted file mode 100644 index 0592828408b..00000000000 --- a/common/static/js/vendor/tiny_mce/skins/lightgray/content.inline.min.css +++ /dev/null @@ -1 +0,0 @@ -.mce-object{border:1px dotted #3A3A3A;background:#d5d5d5 url(img/object.gif) no-repeat center}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#d5d5d5 url(img/anchor.gif) no-repeat center}.mce-nbsp{background:#AAA}hr{cursor:default}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid #F00;cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td.mce-item-selected,th.mce-item-selected{background-color:#3399ff !important}.mce-edit-focus{outline:1px dotted #333} \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/skins/lightgray/content.min.css b/common/static/js/vendor/tiny_mce/skins/lightgray/content.min.css deleted file mode 100644 index eafd4616b37..00000000000 --- a/common/static/js/vendor/tiny_mce/skins/lightgray/content.min.css +++ /dev/null @@ -1 +0,0 @@ -body{background-color:#FFFFFF;color:#000000;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:11px;scrollbar-3dlight-color:#F0F0EE;scrollbar-arrow-color:#676662;scrollbar-base-color:#F0F0EE;scrollbar-darkshadow-color:#DDDDDD;scrollbar-face-color:#E0E0DD;scrollbar-highlight-color:#F0F0EE;scrollbar-shadow-color:#F0F0EE;scrollbar-track-color:#F5F5F5}td,th{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:11px}.mce-object{border:1px dotted #3A3A3A;background:#d5d5d5 url(img/object.gif) no-repeat center}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#d5d5d5 url(img/anchor.gif) no-repeat center}.mce-nbsp{background:#AAA}hr{cursor:default}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid #F00;cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td.mce-item-selected,th.mce-item-selected{background-color:#3399ff !important}.mce-edit-focus{outline:1px dotted #333} \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce-small.eot b/common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce-small.eot deleted file mode 100644 index 128a98f3d81337dbcab72a183ac19914b3e2c5fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8348 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 G-2V#}OT3@} diff --git a/common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce-small.svg b/common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce-small.svg deleted file mode 100644 index fd5e3ff4d28..00000000000 --- a/common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce-small.svg +++ /dev/null @@ -1,175 +0,0 @@ -<?xml version="1.0" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > -<svg xmlns="http://www.w3.org/2000/svg"> -<metadata> -This is a custom SVG font generated by IcoMoon. -<iconset grid="16"></iconset> -</metadata> -<defs> -<font id="tinymce-small" horiz-adv-x="512" > -<font-face units-per-em="512" ascent="480" descent="-32" /> -<missing-glyph horiz-adv-x="512" /> -<glyph class="hidden" unicode="" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" /> -<glyph unicode="" d="M 352,64l0,18.502 c 75.674,30.814, 128,96.91, 128,173.498c0,106.039-100.288,192-224,192S 32,362.039, 32,256 - c0-76.588, 52.327-142.684, 128-173.498L 160,64 L 64,64 l-32,48l0-112 l 160,0 L 192,111.406 c-50.45,25.681-85.333,80.77-85.333,144.594 - c0,88.366, 66.859,160, 149.333,160c 82.474,0, 149.333-71.634, 149.333-160c0-63.824-34.883-118.913-85.333-144.594L 320,0 l 160,0 L 480,112 l-32-48 - L 352,64 z" /> -<glyph unicode="" d="M 128,448l0-448 l 128,128l 128-128L 384,448 L 128,448 z M 352,85.255l-96,96l-96-96L 160,416 l 192,0 L 352,85.255 z" /> -<glyph unicode="" d="M 463.637,364.892l-66.745,66.744C 386.34,442.188, 372.276,448, 357.293,448s-29.047-5.812-39.598-16.363l-82.746-82.745 - c-21.834-21.834-21.834-57.362,0-79.196l 1.373-1.373l 33.941,33.941l-1.373,1.373c-3.066,3.066-3.066,8.247,0,11.313l 82.746,82.746 - C 353.641,399.7, 356.040,400, 357.292,400s 3.651-0.299, 5.656-2.305l 66.745-66.744c 3.066-3.067, 3.066-8.249, 0.001-11.314l-82.747-82.747 - c-2.004-2.004-4.403-2.304-5.655-2.304s-3.651,0.3-5.656,2.306l-1.373,1.373l-33.94-33.942l 1.371-1.371 - c 10.553-10.554, 24.615-16.364, 39.6-16.364s 29.047,5.812, 39.598,16.363l 82.747,82.746C 485.47,307.53, 485.47,343.057, 463.637,364.892 - zM 275.678,179.678l-33.941-33.941l 1.373-1.373c 2.004-2.004, 2.305-4.403, 2.305-5.655c0-1.253-0.299-3.651-2.303-5.657 - l-82.747-82.745c-2.005-2.005-4.405-2.305-5.657-2.305s-3.652,0.3-5.657,2.305L 82.305,117.050C 80.3,119.055, 80,121.455, 80,122.707 - s 0.299,3.65, 2.305,5.656l 82.745,82.744c 2.005,2.006, 4.405,2.306, 5.657,2.306s 3.652-0.3, 5.657-2.306l 1.373-1.371l 33.941,33.94 - l-1.373,1.373c-10.552,10.552-24.615,16.363-39.598,16.363s-29.046-5.812-39.598-16.363l-82.744-82.743 - C 37.812,151.754, 32,137.689, 32,122.707s 5.812-29.047, 16.363-39.599l 66.745-66.745C 125.661,5.812, 139.724,0, 154.707,0 - s 29.046,5.812, 39.598,16.363l 82.747,82.746c 10.552,10.552, 16.361,24.615, 16.361,39.598s-5.812,29.047-16.363,39.598 - L 275.678,179.678zM 400,61c-4.862,0-9.725,1.854-13.435,5.565l-64,63.999c-7.422,7.42-7.422,19.449,0,26.869 - c 7.42,7.422, 19.448,7.422, 26.868,0l 64-64c 7.422-7.42, 7.422-19.448,0-26.868C 409.725,62.854, 404.862,61, 400,61zM 304,0c-8.837,0-16,7.163-16,16l0,64 c0,8.837, 7.163,16, 16,16s 16-7.163, 16-16l0-64 C 320,7.163, 312.837,0, 304,0zM 464,160l-64,0 c-8.837,0-16,7.163-16,16s 7.163,16, 16,16l 64,0 c 8.837,0, 16-7.163, 16-16S 472.837,160, 464,160zM 112,387c 4.862,0, 9.725-1.854, 13.435-5.565l 64-64c 7.421-7.42, 7.421-19.449,0-26.869c-7.42-7.422-19.449-7.422-26.869,0 - l-64,64c-7.421,7.42-7.421,19.449,0,26.869C 102.275,385.146, 107.138,387, 112,387zM 208,448c 8.837,0, 16-7.163, 16-16l0-64 c0-8.837-7.163-16-16-16s-16,7.163-16,16L 192,432 C 192,440.837, 199.163,448, 208,448zM 48,288l 64,0 c 8.837,0, 16-7.163, 16-16s-7.163-16-16-16L 48,256 c-8.837,0-16,7.163-16,16S 39.163,288, 48,288z" /> -<glyph unicode="" d="M 463.637,364.892l-66.745,66.744C 386.34,442.188, 372.276,448, 357.293,448s-29.047-5.812-39.598-16.363l-82.746-82.745 - c-21.834-21.834-21.834-57.362,0-79.196l 1.373-1.373l 33.941,33.941l-1.373,1.373c-3.066,3.066-3.066,8.247,0,11.313l 82.746,82.746 - C 353.641,399.7, 356.040,400, 357.292,400s 3.651-0.299, 5.656-2.305l 66.745-66.744c 3.066-3.067, 3.066-8.249, 0.001-11.314l-82.747-82.747 - c-2.004-2.004-4.403-2.304-5.655-2.304s-3.651,0.3-5.656,2.306l-1.373,1.373l-33.94-33.942l 1.371-1.371 - c 10.553-10.554, 24.615-16.364, 39.6-16.364s 29.047,5.812, 39.598,16.363l 82.747,82.746C 485.47,307.53, 485.47,343.057, 463.637,364.892 - zM 275.678,179.678l-33.941-33.941l 1.373-1.373c 2.004-2.004, 2.305-4.403, 2.305-5.655c0-1.253-0.299-3.651-2.303-5.657 - l-82.747-82.745c-2.005-2.005-4.405-2.305-5.657-2.305s-3.652,0.3-5.657,2.305L 82.305,117.050C 80.3,119.055, 80,121.455, 80,122.707 - s 0.299,3.65, 2.305,5.656l 82.745,82.744c 2.005,2.006, 4.405,2.306, 5.657,2.306s 3.652-0.3, 5.657-2.306l 1.373-1.371l 33.941,33.94 - l-1.373,1.373c-10.552,10.552-24.615,16.363-39.598,16.363s-29.046-5.812-39.598-16.363l-82.744-82.743 - C 37.812,151.754, 32,137.689, 32,122.707s 5.812-29.047, 16.363-39.599l 66.745-66.745C 125.661,5.812, 139.724,0, 154.707,0 - s 29.046,5.812, 39.598,16.363l 82.747,82.746c 10.552,10.552, 16.361,24.615, 16.361,39.598s-5.812,29.047-16.363,39.598 - L 275.678,179.678zM 176,125c-4.862,0-9.725,1.855-13.435,5.564c-7.42,7.42-7.42,19.449,0,26.869l 160,160c 7.42,7.42, 19.448,7.42, 26.868,0 - c 7.422-7.42, 7.422-19.45,0-26.87l-160-160C 185.725,126.855, 180.862,125, 176,125z" /> -<glyph unicode="" d="M 288,339.337L 288,448 l 168.001-168L 288,112L 288,223.048 C 92.547,227.633, 130.5,99.5, 160,0C 16,160, 53.954,345.437, 288,339.337z" /> -<glyph unicode="" d="M 352,0c 29.5,99.5, 67.453,227.633-128,223.048L 224,112 L 55.999,280L 224,448l0-108.663 C 458.046,345.437, 496,160, 352,0z" /> -<glyph unicode="" d="M 128.214,267.637c 52.9,0, 95.786-45.585, 95.786-101.819C 224,109.586, 181.114,64, 128.214,64 - c-52.901,0-95.786,45.585-95.786,101.818L 32,180.364C 32,292.829, 117.77,384, 223.572,384l0-58.182 c-36.55,0-70.913-15.13-96.758-42.602 - c-4.977-5.289-9.517-10.917-13.612-16.828C 118.094,267.208, 123.105,267.637, 128.214,267.637zM 384.214,267.637c 52.9,0, 95.786-45.585, 95.786-101.819C 480,109.586, 437.114,64, 384.214,64 - c-52.901,0-95.786,45.585-95.786,101.818L 288,180.364C 288,292.829, 373.77,384, 479.572,384l0-58.182 c-36.55,0-70.913-15.13-96.758-42.602 - c-4.978-5.289-9.518-10.917-13.612-16.828C 374.094,267.208, 379.105,267.637, 384.214,267.637z" /> -<glyph unicode="" d="M 32,384L 480,384L 480,320L 32,320zM 192,192L 480,192L 480,128L 192,128zM 192,288L 480,288L 480,224L 192,224zM 32,96L 480,96L 480,32L 32,32zM 32,288L 144,208L 32,128 z" /> -<glyph unicode="" d="M 32,384L 480,384L 480,320L 32,320zM 32,192L 320,192L 320,128L 32,128zM 32,288L 320,288L 320,224L 32,224zM 32,96L 480,96L 480,32L 32,32zM 480,288L 368,208L 480,128 z" /> -<glyph unicode="" d="M 192,416L 480,416L 480,352L 192,352zM 192,256L 480,256L 480,192L 192,192zM 192,96L 480,96L 480,32L 192,32zM 160,215L 160,288L 128,288L 128,448L 64,448L 64,416L 96,416L 96,288L 64,288L 64,256L 128,256L 128,231L 64,201L 64,128L 128,128L 128,96L 64,96L 64,64L 128,64L 128,32L 64,32L 64,0L 160,0L 160,160L 96,160L 96,185 z" /> -<glyph unicode="" d="M 192,416L 480,416L 480,352L 192,352zM 192,256L 480,256L 480,192L 192,192zM 192,96L 480,96L 480,32L 192,32zM 64,384A32,32 2700 1 1 128,384A32,32 2700 1 1 64,384zM 64,224A32,32 2700 1 1 128,224A32,32 2700 1 1 64,224zM 64,64A32,32 2700 1 1 128,64A32,32 2700 1 1 64,64z" /> -<glyph unicode="" d="M 444,288l-28,0 L 416,416 l 32,0 L 448,448 L 288,448 l0-32 l 32,0 l0-128 L 192,288 L 192,416 l 32,0 L 224,448 L 64,448 l0-32 l 32,0 l0-128 L 68,288 c-19.8,0-36-16.2-36-36l0-216 c0-19.8, 16.2-36, 36-36l 120,0 - c 19.8,0, 36,16.2, 36,36L 224,192 l 64,0 l0-156 c0-19.8, 16.2-36, 36-36l 120,0 c 19.8,0, 36,16.2, 36,36L 480,252 C 480,271.8, 463.8,288, 444,288z M 174,32L 82,32 - c-9.9,0-18,7.2-18,16s 8.1,16, 18,16l 92,0 c 9.9,0, 18-7.2, 18-16S 183.9,32, 174,32z M 272,224l-32,0 c-8.8,0-16,7.2-16,16s 7.2,16, 16,16l 32,0 - c 8.8,0, 16-7.2, 16-16S 280.8,224, 272,224z M 430,32l-92,0 c-9.9,0-18,7.2-18,16s 8.1,16, 18,16l 92,0 c 9.9,0, 18-7.2, 18-16S 439.9,32, 430,32z" /> -<glyph unicode="" d="M 352,288l0,80 c0,8.8-7.2,16-16,16l-80,0 L 256,416 c0,17.6-14.4,32-32,32l-64,0 c-17.602,0-32-14.4-32-32l0-32 L 48,384 c-8.801,0-16-7.2-16-16l0-256 - c0-8.8, 7.199-16, 16-16l 112,0 l0-96 l 192,0 l 96,96L 448,288 L 352,288 z M 160,415.943c 0.017,0.019, 0.036,0.039, 0.057,0.057l 63.884,0 - c 0.021-0.018, 0.041-0.038, 0.059-0.057L 224,384 l-64,0 L 160,415.943 L 160,415.943z M 96,320l0,32 l 192,0 l0-32 L 96,320 z M 352,45.255L 352,96 l 50.745,0 L 352,45.255z - M 416,128l-96,0 l0-96 L 192,32 L 192,256 l 224,0 L 416,128 z" /> -<glyph unicode="" d="M 416,320l-96,0 l0,32 l-96,96L 32,448 l0-352 l 192,0 l0-96 l 288,0 L 512,224 L 416,320z M 416,274.745L 466.745,224L 416,224 L 416,274.745 z M 224,402.745L 274.745,352 - L 224,352 L 224,402.745 z M 64,416l 128,0 l0-96 l 96,0 l0-192 L 64,128 L 64,416 z M 480,32L 256,32 l0,64 l 64,0 L 320,288 l 64,0 l0-96 l 96,0 L 480,32 z" /> -<glyph unicode="" d="M 432.204,144.934c-23.235,23.235-53.469,34.002-80.541,31.403L 320,208l 96,96c0,0, 64,64,0,128L 256,272L 96,432 - c-64-64,0-128,0-128l 96-96l-31.663-31.663c-27.072,2.599-57.305-8.169-80.54-31.403c-37.49-37.49-42.556-93.209-11.313-124.45 - c 31.241-31.241, 86.96-26.177, 124.45,11.313c 23.235,23.234, 34.001,53.469, 31.403,80.54L 256,144l 31.664-31.664 - c-2.598-27.072, 8.168-57.305, 31.403-80.539c 37.489-37.49, 93.209-42.556, 124.449-11.313 - C 474.76,51.725, 469.694,107.443, 432.204,144.934z M 176.562,100.711c-1.106-12.166-7.51-24.913-17.57-34.973 - C 147.886,54.631, 133.452,48, 120.383,48c-5.262,0-12.649,1.114-17.958,6.424c-10.703,10.702-8.688,36.566, 11.313,56.568 - c 11.106,11.107, 25.54,17.738, 38.609,17.738c 5.262,0, 12.649-1.114, 17.958-6.424C 176.861,115.751, 177.040,105.962, 176.562,100.711z - M 256,176c-17.673,0-32,14.327-32,32s 14.327,32, 32,32s 32-14.327, 32-32S 273.673,176, 256,176z M 409.576,54.424 - c-5.31-5.31-12.696-6.424-17.958-6.424c-13.069,0-27.503,6.631-38.609,17.738c-10.061,10.060-16.464,22.807-17.569,34.973 - c-0.479,5.251-0.3,15.040, 6.257,21.596c 5.309,5.311, 12.695,6.424, 17.958,6.424c 13.068,0, 27.503-6.631, 38.608-17.737 - C 418.265,90.99, 420.279,65.126, 409.576,54.424z" /> -<glyph unicode="" d="M 32,384L 480,384L 480,320L 32,320zM 32,192L 480,192L 480,128L 32,128zM 32,288L 480,288L 480,224L 32,224zM 32,96L 480,96L 480,32L 32,32z" /> -<glyph unicode="" d="M 32,384L 480,384L 480,320L 32,320zM 32,192L 480,192L 480,128L 32,128zM 128,288L 384,288L 384,224L 128,224zM 128,96L 384,96L 384,32L 128,32z" /> -<glyph unicode="" d="M 32,384L 480,384L 480,320L 32,320zM 32,192L 480,192L 480,128L 32,128zM 192,288L 480,288L 480,224L 192,224zM 192,96L 480,96L 480,32L 192,32z" /> -<glyph unicode="" d="M 32,384L 480,384L 480,320L 32,320zM 32,192L 480,192L 480,128L 32,128zM 32,288L 320,288L 320,224L 32,224zM 32,96L 320,96L 320,32L 32,32z" /> -<glyph unicode="" d="M 480,224l-4.571,0 L 347.062,224 c-25.039,17.71-57.215,27.43-91.062,27.43c-44.603,0-82.286,25.121-82.286,54.856 - c0,29.735, 37.683,54.857, 82.286,54.857c 37.529,0, 70.154-17.788, 79.56-41.143l 56.508,0 c-3.965,25.322-18.79,48.984-42.029,66.413 - C 324.599,405.493, 291.201,416, 256,416c-35.202,0-68.598-10.507-94.037-29.587c-27.394-20.545-43.106-49.751-43.106-80.127 - s 15.712-59.582, 43.106-80.127c 0.978-0.733, 1.971-1.449, 2.973-2.158L 36.571,224.001 L 32,224.001 l0-32 l 256.266,0 c 29.104-8.553, 50.021-28.135, 50.021-50.286 - c0-29.734-37.684-54.855-82.286-54.855c-37.53,0-70.154,17.787-79.559,41.143l-56.508,0 c 3.965-25.32, 18.791-48.984, 42.030-66.413 - C 187.402,42.508, 220.798,32, 256,32c 35.201,0, 68.599,10.508, 94.037,29.587c 27.395,20.545, 43.104,49.751, 43.104,80.127 - c0,17.649-5.327,34.896-15.147,50.286L 480,192 L 480,224 z" /> -<glyph unicode="" d="M 96,64l 288,0 l0-32 L 96,32 L 96,64 zM 320,416l0-192 c0-15.656-7.35-30.812-20.695-42.676C 283.834,167.573, 262.771,160, 240,160c-22.772,0-43.834,7.573-59.304,21.324 - C 167.35,193.188, 160,208.344, 160,224L 160,416 L 96,416 l0-192 c0-70.691, 64.471-128, 144-128c 79.529,0, 144,57.309, 144,128L 384,416 L 320,416 z" /> -<glyph unicode="" d="M 416,416l0-32 l-72,0 L 216,64l 72,0 l0-32 L 64,32 l0,32 l 72,0 L 264,384l-72,0 L 192,416 L 416,416 z" /> -<glyph unicode="" d="M 312.721,232.909C 336.758,251.984, 352,280.337, 352,312c0,57.438-50.145,104-112,104L 128,416 l0-384 l 144,0 - c 61.856,0, 112,46.562, 112,104C 384,180.098, 354.441,217.781, 312.721,232.909z M 192,328c0,13.255, 10.745,24, 24,24l 33.602,0 - C 270.809,352, 288,330.51, 288,304s-17.191-48-38.398-48L 192,256 L 192,328 z M 273.6,96L 216,96 c-13.255,0-24,10.745-24,24l0,72 l 81.6,0 - c 21.209,0, 38.4-21.49, 38.4-48S 294.809,96, 273.6,96z" /> -<glyph unicode="" d="M 425.373,358.627l-66.746,66.745C 346.183,437.818, 321.6,448, 304,448L 96,448 c-17.6,0-32-14.4-32-32l0-384 c0-17.6, 14.4-32, 32-32l 320,0 - c 17.6,0, 32,14.4, 32,32L 448,304 C 448,321.6, 437.817,346.182, 425.373,358.627z M 402.745,336.001c 3.396-3.398, 6.896-9.581, 9.447-16.001L 320,320 - L 320,412.193 c 6.42-2.55, 12.602-6.050, 16-9.448L 402.745,336.001z M 415.942,32L 96.057,32 c-0.020,0.017-0.041,0.038-0.057,0.058L 96,415.943 - c 0.017,0.020, 0.038,0.041, 0.057,0.057L 288,416 l0-128 l 128,0 l0-255.942 C 415.983,32.038, 415.962,32.017, 415.942,32z" /> -<glyph unicode="" d="M 480,40L 480,335.969 L 368.031,448L 72,448 c-22.091,0-40-17.908-40-40l0-368 c0-22.092, 17.909-40, 40-40l 368,0 - C 462.092,0, 480,17.908, 480,40z M 288,384l 32,0 l0-96 l-32,0 L 288,384 z M 352,64L 160,64 L 160,191.941 c 0.017,0.021, 0.038,0.041, 0.058,0.059l 191.885,0 - c 0.020-0.018, 0.041-0.038, 0.058-0.059L 352,64L 352,64z M 416,64l-32,0 L 384,192 c0,17.6-14.4,32-32,32L 160,224 c-17.6,0-32-14.4-32-32l0-128 L 96,64 L 96,384 - l 32,0 l0-96 c0-17.6, 14.4-32, 32-32l 160,0 c 17.6,0, 32,14.4, 32,32l0,85.505 l 64-64.036L 416,64 z" /> -<glyph unicode="" d="M 32,384l0-352 l 448,0 L 480,384 L 32,384 z M 192,160l0,64 l 128,0 l0-64 L 192,160 z M 320,128l0-64 L 192,64 l0,64 L 320,128 z M 320,320l0-64 L 192,256 l0,64 L 320,320 z M 160,320l0-64 L 64,256 l0,64 L 160,320 - z M 64,224l 96,0 l0-64 L 64,160 L 64,224 z M 352,224l 96,0 l0-64 l-96,0 L 352,224 z M 352,256l0,64 l 96,0 l0-64 L 352,256 z M 64,128l 96,0 l0-64 L 64,64 L 64,128 z M 352,64l0,64 l 96,0 l0-64 L 352,64 z" /> -<glyph unicode="" d="M 256,410c 49.683,0, 96.391-19.347, 131.521-54.478S 442,273.683, 442,224s-19.348-96.391-54.479-131.521S 305.683,38, 256,38 - s-96.391,19.348-131.522,54.479S 70,174.317, 70,224s 19.347,96.391, 54.478,131.522S 206.317,410, 256,410 M 256,448 - C 132.288,448, 32,347.712, 32,224s 100.288-224, 224-224s 224,100.288, 224,224S 379.712,448, 256,448L 256,448zM 160,288A32,32 2700 1 1 224,288A32,32 2700 1 1 160,288zM 288,288A32,32 2700 1 1 352,288A32,32 2700 1 1 288,288zM 256,152c-50.92,0-96.28,18.437-125.583,47.164C 141.98,140.36, 193.806,96, 256,96c 62.194,0, 114.020,44.36, 125.584,103.164 - C 352.28,170.437, 306.92,152, 256,152z" /> -<glyph unicode="" d="M 240,288L 144,384L 208,448L 32,448L 32,272L 96,336L 192,240 zM 320,240L 416,336L 480,272L 480,448L 304,448L 368,384L 272,288 zM 272,160L 368,64L 304,0L 480,0L 480,176L 416,112L 320,208 zM 192,208L 96,112L 32,176L 32,0L 208,0L 144,64L 240,160 z" /> -<glyph unicode="" d="M 32,256L 480,256L 480,192L 32,192z" /> -<glyph unicode="" d="M 32,96l 256,0 l0-64 L 32,32 L 32,96 z M 384,384L 273.721,384 l-91.883-256l-66.144,0 l 91.881,256L 96,384 L 96,448 l 288,0 L 384,384 z M 464.887,32L 400,96.887 - L 335.113,32L 304,63.113L 368.887,128L 304,192.887L 335.113,224L 400,159.113L 464.887,224L 496,192.887L 431.113,128L 496,63.113 - L 464.887,32z" /> -<glyph unicode="" d="M 128,416l 256,0 l0-64 L 128,352 L 128,416 z M 448,320L 64,320 c-17.6,0-32-14.4-32-32l0-128 c0-17.6, 14.398-32, 32-32l 64,0 l0-96 l 256,0 l0,96 l 64,0 - c 17.6,0, 32,14.4, 32,32L 480,288 C 480,305.6, 465.6,320, 448,320z M 352,64L 160,64 L 160,192 l 192,0 L 352,64 z M 455.2,272c0-12.813-10.387-23.2-23.199-23.2 - S 408.8,259.187, 408.8,272s 10.389,23.2, 23.201,23.2C 444.814,295.2, 455.2,284.813, 455.2,272z" /> -<glyph unicode="" d="M 192,416c-61.856,0-112-50.144-112-112s 50.144-112, 112-112l0-160 l 64,0 L 256,352 l 32,0 l0-320 l 64,0 L 352,352 l 64,0 L 416,416 L 192,416 z" /> -<glyph unicode="" d="M 224,416c-61.856,0-112-50.144-112-112s 50.144-112, 112-112l0-160 l 64,0 L 288,352 l 32,0 l0-320 l 64,0 L 384,352 l 64,0 L 448,416 L 224,416 zM 32,32L 144,128L 32,224 z" /> -<glyph unicode="" d="M 160,416C 98.144,416, 48,365.856, 48,304s 50.144-112, 112-112l0-160 l 64,0 L 224,352 l 32,0 l0-320 l 64,0 L 320,352 l 64,0 L 384,416 L 160,416 zM 480,224L 368,128L 480,32 z" /> -<glyph unicode="" d="M 256,288L 320,288L 320,256L 256,256zM 256,96L 320,96L 320,64L 256,64zM 288,192L 352,192L 352,160L 288,160zM 384,192L 384,96L 352,96L 352,64L 416,64L 416,192 zM 192,192L 256,192L 256,160L 192,160zM 160,96L 224,96L 224,64L 160,64zM 160,288L 224,288L 224,256L 160,256zM 96,384L 96,256L 128,256L 128,352L 160,352L 160,384 zM 352,256L 416,256L 416,384L 384,384L 384,288L 352,288 zM 32,448l0-448 l 448,0 L 480,448 L 32,448 z M 448,32L 64,32 L 64,416 l 384,0 L 448,32 zM 96,192L 96,64L 128,64L 128,160L 160,160L 160,192 zM 288,384L 352,384L 352,352L 288,352zM 192,384L 256,384L 256,352L 192,352z" /> -<glyph unicode="" d="M 408,448l 8-192L 96,256 l 8,192l 16,0 l 8-160l 256,0 l 8,160L 408,448 z M 104,0l-8,160l 320,0 l-8-160l-16,0 l-8,128L 128,128 l-8-128L 104,0 zM 32,224L 96,224L 96,192L 32,192zM 128,224L 192,224L 192,192L 128,192zM 224,224L 288,224L 288,192L 224,192zM 320,224L 384,224L 384,192L 320,192zM 416,224L 480,224L 480,192L 416,192z" /> -<glyph unicode="" d="M 480,416L 480,448 l-96,0 c-17.601,0-32-14.4-32-32l0-160 c0-7.928, 2.929-15.201, 7.748-20.807L 208,105l-71,74l-41-35l 112-144l 208,224l 64,0 - l0,32 l-96,0 L 384,416 L 480,416 zM 128,224l 32,0 L 160,416 c0,17.6-14.4,32-32,32L 64,448 c-17.6,0-32-14.4-32-32l0-192 l 32,0 l0,96 l 64,0 L 128,224 z M 64,352L 64,416 l 64,0 l0-64 L 64,352 zM 320,256l0,48 c0,17.6-4.4,32-22,32c 17.6,0, 22,14.4, 22,32L 320,416 c0,17.6-14.4,32-32,32l-96,0 l0-224 l 96,0 C 305.6,224, 320,238.4, 320,256z - M 224,416l 64,0 l0-64 l-64,0 L 224,416 z M 224,320l 64,0 l0-64 l-64,0 L 224,320 z" /> -<glyph unicode="" d="M 224,224l-64,0 l0,64 l 64,0 l0,64 l 64,0 l0-64 l 64,0 l0-64 l-64,0 l0-64 l-64,0 L 224,224 z M 480,192l0-160 L 32,32 L 32,192 l 64,0 l0-96 l 320,0 l0,96 L 480,192 z" /> -<glyph unicode="" d="M 208,128L 112,224L 208,320L 176,352L 48,224L 176,96 zM 336,352L 304,320L 400,224L 304,128L 336,96L 464,224 z" /> -<glyph unicode="" d="M 224,128l 64,0 l0-64 l-64,0 L 224,128 z M 352,352c 17.673,0, 32-14.327, 32-32l0-83 l-114-77l-46,0 l0,32 l 96,64l0,32 L 160,288 l0,64 L 352,352 z M 256,448 - c-59.833,0-116.083-23.3-158.392-65.608C 55.301,340.083, 32,283.833, 32,224c0-59.832, 23.301-116.084, 65.608-158.392 - C 139.917,23.3, 196.167,0, 256,0c 59.832,0, 116.084,23.3, 158.392,65.608C 456.7,107.916, 480,164.168, 480,224 - c0,59.833-23.3,116.083-65.608,158.392C 372.084,424.7, 315.832,448, 256,448z" /> -<glyph unicode="" d="M 448,416L 64,416 c-17.6,0-32-14.4-32-32l0-320 c0-17.6, 14.4-32, 32-32l 384,0 c 17.6,0, 32,14.4, 32,32L 480,384 C 480,401.6, 465.6,416, 448,416z - M 448,64.058c-0.006-0.007-0.015-0.014-0.021-0.021L 352,224l-80-64L 160,304L 64.016,64.042c-0.005,0.005-0.011,0.011-0.016,0.016 - L 64,383.943 c 0.017,0.020, 0.038,0.041, 0.057,0.057l 383.885,0 c 0.020-0.017, 0.041-0.038, 0.058-0.058L 448,64.058 zM 320,304A48,48 2700 1 1 416,304A48,48 2700 1 1 320,304z" /> -<glyph unicode="" d="M 448,416L 64,416 c-17.6,0-32-14.4-32-32l0-320 c0-17.6, 14.4-32, 32-32l 384,0 c 17.6,0, 32,14.4, 32,32L 480,384 C 480,401.6, 465.6,416, 448,416z - M 128,64L 64,64 l0,64 l 64,0 L 128,64 z M 128,192L 64,192 l0,64 l 64,0 L 128,192 z M 128,320L 64,320 L 64,384 l 64,0 L 128,320 z M 352,64L 160,64 L 160,384 l 192,0 L 352,64 z M 448,64l-64,0 l0,64 l 64,0 L 448,64 z - M 448,192l-64,0 l0,64 l 64,0 L 448,192 z M 448,320l-64,0 L 384,384 l 64,0 L 448,320 zM 192,320L 192,128L 336,224 z" /> -<glyph unicode="" d="M 38.899,327.688l 40.707-25.441C 105.007,342.804, 144,373.974, 190.21,389.37l-15.183,45.547 - C 118.153,415.968, 70.163,377.604, 38.899,327.688zM 336.973,434.917L 321.79,389.37c 46.211-15.396, 85.202-46.566, 110.604-87.124l 40.706,25.441 - C 441.837,377.604, 393.847,415.968, 336.973,434.917zM 303.987,127.996c-2.404,0-4.846,0.545-7.143,1.693L 224,166.111L 224,272 c0,8.836, 7.164,16, 16,16s 16-7.164, 16-16l0-86.111 - l 55.155-27.578c 7.903-3.951, 11.107-13.562, 7.155-21.466C 315.508,131.238, 309.856,127.997, 303.987,127.996zM 256,384C 149.961,384, 64,298.039, 64,192c0-106.039, 85.961-192, 192-192c 106.039,0, 192,85.961, 192,192 - C 448,298.039, 362.039,384, 256,384z M 256,48c-79.529,0-144,64.471-144,144c0,79.529, 64.471,144, 144,144c 79.529,0, 144-64.471, 144-144 - C 400,112.471, 335.529,48, 256,48z" /> -<glyph unicode="" d="M 32,252.127c 22.659,24.96, 48.581,46.18, 76.636,62.562C 153.802,341.061, 204.759,355, 256,355 - c 51.24,0, 102.198-13.939, 147.363-40.312c 28.056-16.382, 53.978-37.602, 76.637-62.562l0,58.716 - c-16.505,14.059-34.062,26.57-52.434,37.297C 375.063,378.796, 315.737,395, 256,395s-119.064-16.204-171.567-46.86 - C 66.062,337.413, 48.505,324.901, 32,310.842L 32,252.127 zM 256,320c-91.598,0-172.919-50.278-224-128c 51.081-77.724, 132.402-128, 224-128c 91.598,0, 172.919,50.276, 224,128 - C 428.919,269.722, 347.598,320, 256,320z M 256,224c0-17.673-14.327-32-32-32s-32,14.327-32,32c0,17.674, 14.327,32, 32,32 - S 256,241.674, 256,224z M 364.033,131.669C 330.316,111.982, 293.969,102, 256,102s-74.316,9.982-108.033,29.669 - C 122.19,146.721, 98.659,167.324, 78.91,192c 19.749,24.675, 43.28,45.279, 69.058,60.33c 6.638,3.876, 13.379,7.37, 20.213,10.491 - C 162.925,250.95, 160,237.817, 160,224c0-53.020, 42.981-96, 96-96c 53.020,0, 96,42.98, 96,96c0,13.817-2.925,26.95-8.18,38.821 - c 6.834-3.122, 13.575-6.615, 20.213-10.491c 25.777-15.051, 49.308-35.655, 69.058-60.33 - C 413.342,167.324, 389.811,146.721, 364.033,131.669z" /> -<glyph unicode="" d="M 325.584,338.083C 313.278,379.064, 311.146,384, 272,384l-32,0 c-39.809,0-41.332-5.076-54.209-48c0-0.001,0-0.001-0.001-0.002 - L 113.791,96l 56.818,0 l 28.8,96l 113.183,0 l 28.8-96l 56.815,0 L 325.584,338.083z M 218.609,256l 19.2,68c 5.043,16.809, 18.19,15, 18.19,15 - s 13.147,1.809, 18.19-15l 0.002,0 l 19.2-68L 218.609,256 z" /> -<glyph unicode="" d="M 288,448 C 411.712,448 512,347.712 512,224 C 512,100.288 411.712,0 288,0 L 288,48 C 335.012,48 379.209,66.307 412.451,99.549 C 445.693,132.791 464,176.988 464,224 C 464,271.011 445.693,315.209 412.451,348.451 C 379.209,381.693 335.012,400 288,400 C 240.989,400 196.791,381.693 163.549,348.451 C 137.979,322.882 121.258,290.828 114.896,256 L 208,256 L 96,128 L -16,256 L 66.285,256 C 81.815,364.551 175.154,448 288,448 ZM 384,256 L 384,192 L 256,192 L 256,352 L 320,352 L 320,256 Z" /> -<glyph unicode="" d="M 512,183.771l0,80.458 l-79.572,7.957c-4.093,15.021-10.044,29.274-17.605,42.49l 52.298,63.919L 410.595,435.12l-63.918-52.298 - c-13.217,7.562-27.471,13.513-42.491,17.604L 296.229,480l-80.458,0 l-7.957-79.573c-15.021-4.093-29.274-10.043-42.49-17.604 - L 101.405,435.12L 44.88,378.595l 52.298-63.918c-7.562-13.216-13.513-27.47-17.605-42.49L0,264.229l0-80.458 l 79.573-7.957 - c 4.093-15.021, 10.043-29.274, 17.605-42.491L 44.88,69.405l 56.524-56.524l 63.919,52.298c 13.216-7.562, 27.47-13.514, 42.49-17.605 - L 215.771-32l 80.458,0 l 7.957,79.572c 15.021,4.093, 29.274,10.044, 42.491,17.605l 63.918-52.298l 56.524,56.524l-52.298,63.918 - c 7.562,13.217, 13.514,27.471, 17.605,42.49L 512,183.771z M 352,192l-64-64l-64,0 l-64,64l0,64 l 64,64l 64,0 l 64-64L 352,192 z" /> -<glyph unicode="" d="M 384,377 L 384,352 L 448,352 L 448,320 L 352,320 L 352,393 L 416,423 L 416,448 L 352,448 L 352,480 L 448,480 L 448,407 ZM 338,352L 270,352L 176,258L 82,352L 14,352L 142,224L 14,96L 82,96L 176,190L 270,96L 338,96L 210,224 z" /> -<glyph unicode="" d="M 384,25 L 384,0 L 448,0 L 448-32 L 352-32 L 352,41 L 416,71 L 416,96 L 352,96 L 352,128 L 448,128 L 448,55 ZM 338,352L 270,352L 176,258L 82,352L 14,352L 142,224L 14,96L 82,96L 176,190L 270,96L 338,96L 210,224 z" /> -<glyph unicode="" d="M 352,288l0,80 c0,8.8-7.2,16-16,16l-80,0 L 256,416 c0,17.6-14.4,32-32,32l-64,0 c-17.602,0-32-14.4-32-32l0-32 L 48,384 c-8.801,0-16-7.2-16-16 - l0-256 c0-8.8, 7.199-16, 16-16l 112,0 l0-96 l 288,0 L 448,288 L 352,288 z M 160,415.943c 0.017,0.019, 0.036,0.039, 0.057,0.057l 63.884,0 - c 0.021-0.018, 0.041-0.038, 0.059-0.057L 224,384 l-64,0 L 160,415.943 z M 96,320l0,32 l 192,0 l0-32 L 96,320 z M 416,32L 192,32 L 192,256 l 224,0 L 416,32 zM 224,224L 224,160L 240,160L 256,192L 288,192L 288,96L 264,96L 264,64L 344,64L 344,96L 320,96L 320,192L 352,192L 368,160L 384,160L 384,224 z" /> -<glyph unicode="" d="M 384,352L 416,352L 416,320L 384,320zM 320,288L 352,288L 352,256L 320,256zM 320,224L 352,224L 352,192L 320,192zM 320,160L 352,160L 352,128L 320,128zM 256,224L 288,224L 288,192L 256,192zM 256,160L 288,160L 288,128L 256,128zM 192,160L 224,160L 224,128L 192,128zM 384,288L 416,288L 416,256L 384,256zM 384,224L 416,224L 416,192L 384,192zM 384,160L 416,160L 416,128L 384,128zM 384,96L 416,96L 416,64L 384,64zM 320,96L 352,96L 352,64L 320,64zM 256,96L 288,96L 288,64L 256,64zM 192,96L 224,96L 224,64L 192,64zM 128,96L 160,96L 160,64L 128,64z" /> -<glyph unicode="" d="M 464,416L 256,416L 240,448L 64,448L 32,384L 480,384 zM 420.17,128L 464,128 l 16,224L 32,352 l 32-320l 178.040,0 C 189.599,50.888, 152,101.133, 152,160c0,74.991, 61.009,136, 136,136 - c 74.99,0, 136-61.009, 136-136C 424,149.161, 422.689,138.425, 420.17,128zM 437.498,55.125l-67.248,55.346C 378.977,124.932, 384,141.878, 384,160c0,53.020-42.98,96-96,96s-96-42.98-96-96 - s 42.98-96, 96-96c 18.122,0, 35.069,5.023, 49.529,13.75l 55.346-67.248c 11.481-13.339, 31.059-14.070, 43.503-1.626l 2.746,2.746 - C 451.568,24.066, 450.837,43.644, 437.498,55.125z M 288,98c-34.242,0-62,27.758-62,62s 27.758,62, 62,62s 62-27.758, 62-62 - S 322.242,98, 288,98z" /> -<glyph unicode=" " horiz-adv-x="256" /> -</font></defs></svg> \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce-small.ttf b/common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce-small.ttf deleted file mode 100644 index 7b50bfdae94f6efce635dcc26469ffb77c123a97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8164 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 diff --git a/common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce-small.woff b/common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce-small.woff deleted file mode 100644 index 725aaf19e21fef9e2510c6934bde9f52f042afe3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8340 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 L?FR&Z0OJ1xJUq%= diff --git a/common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce.eot b/common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce.eot deleted file mode 100644 index b769c2c6611cc18f5cc9ec35528d9924f3a5541e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8276 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 QJ?PKAbfGBe`tQ~M1DmY<JOBUy diff --git a/common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce.svg b/common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce.svg deleted file mode 100644 index fe4e31bf03f..00000000000 --- a/common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce.svg +++ /dev/null @@ -1,153 +0,0 @@ -<?xml version="1.0" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > -<svg xmlns="http://www.w3.org/2000/svg"> -<metadata> -This is a custom SVG font generated by IcoMoon. -<iconset grid="16"></iconset> -</metadata> -<defs> -<font id="tinymce" horiz-adv-x="512" > -<font-face units-per-em="512" ascent="480" descent="-32" /> -<missing-glyph horiz-adv-x="512" /> -<glyph class="hidden" unicode="" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" /> -<glyph unicode="" d="M 464,416L 256,416L 240,448L 64,448L 32,384L 480,384 zM 452.17,128l 37.43,0 L 512,352L0,352 l 32-320l 242.040,0 C 221.599,50.888, 184,101.133, 184,160c0,74.991, 61.009,136, 136,136 - c 74.99,0, 136-61.009, 136-136C 456,149.161, 454.689,138.425, 452.17,128zM 501.498,23.125l-99.248,87.346C 410.977,124.931, 416,141.878, 416,160c0,53.020-42.98,96-96,96s-96-42.98-96-96 - s 42.98-96, 96-96c 18.122,0, 35.069,5.023, 49.529,13.75l 87.346-99.248c 11.481-13.339, 31.059-14.070, 43.503-1.626l 2.746,2.746 - C 515.568-7.934, 514.837,11.644, 501.498,23.125z M 320,98c-34.242,0-62,27.758-62,62s 27.758,62, 62,62s 62-27.758, 62-62 - S 354.242,98, 320,98z" /> -<glyph unicode="" d="M 384,352L 416,352L 416,320L 384,320zM 320,288L 352,288L 352,256L 320,256zM 320,224L 352,224L 352,192L 320,192zM 320,160L 352,160L 352,128L 320,128zM 256,224L 288,224L 288,192L 256,192zM 256,160L 288,160L 288,128L 256,128zM 192,160L 224,160L 224,128L 192,128zM 384,288L 416,288L 416,256L 384,256zM 384,224L 416,224L 416,192L 384,192zM 384,160L 416,160L 416,128L 384,128zM 384,96L 416,96L 416,64L 384,64zM 320,96L 352,96L 352,64L 320,64zM 256,96L 288,96L 288,64L 256,64zM 192,96L 224,96L 224,64L 192,64zM 128,96L 160,96L 160,64L 128,64z" /> -<glyph unicode="" d="M 416,352l-96,0 L 320,384 L 224,480L0,480 l0-384 l 192,0 l0-128 l 320,0 L 512,256 L 416,352z M 416,306.745L 466.745,256L 416,256 L 416,306.745 z M 224,434.745L 274.745,384L 224,384 - L 224,434.745 z M 32,448l 160,0 l0-96 l 96,0 l0-224 L 32,128 L 32,448 z M 480,0L 224,0 l0,96 l 96,0 L 320,320 l 64,0 l0-96 l 96,0 L 480,0 z" /> -<glyph unicode="" d="M 128,448 L 384,448 L 384,384 L 320,384 L 320,0 L 256,0 L 256,384 L 192,384 L 192,0 L 128,0 L 128,224 C 66.144,224 16,274.144 16,336 C 16,397.856 66.144,448 128,448 ZM 480,32L 352,144L 480,256 z" /> -<glyph unicode="" d="M 224,448 L 480,448 L 480,384 L 416,384 L 416,0 L 352,0 L 352,384 L 288,384 L 288,0 L 224,0 L 224,224 C 162.144,224 112,274.144 112,336 C 112,397.856 162.144,448 224,448 ZM 32,256L 160,144L 32,32 z" /> -<glyph unicode="" d="M 192,448 L 448,448 L 448,384 L 384,384 L 384,0 L 320,0 L 320,384 L 256,384 L 256,0 L 192,0 L 192,224 C 130.144,224 80,274.144 80,336 C 80,397.856 130.144,448 192,448 Z" /> -<glyph unicode="" d="M 365.71,221.482 C 397.67,197.513 416,163.439 416,128 C 416,92.561 397.67,58.487 365.71,34.518 C 336.031,12.259 297.068,0 256,0 C 214.931,0 175.969,12.259 146.29,34.518 C 114.33,58.487 96,92.561 96,128 L 160,128 C 160,93.309 203.963,64 256,64 C 308.037,64 352,93.309 352,128 C 352,162.691 308.037,192 256,192 C 214.931,192 175.969,204.259 146.29,226.518 C 114.33,250.488 96,284.561 96,320 C 96,355.439 114.33,389.512 146.29,413.482 C 175.969,435.741 214.931,448 256,448 C 297.068,448 336.031,435.741 365.71,413.482 C 397.67,389.512 416,355.439 416,320 L 352,320 C 352,354.691 308.037,384 256,384 C 203.963,384 160,354.691 160,320 C 160,285.309 203.963,256 256,256 C 297.068,256 336.031,243.741 365.71,221.482 ZM0,224L 512,224L 512,192L0,192z" /> -<glyph unicode="" d="M 352,448 L 416,448 L 416,240 C 416,160.471 344.366,96 256,96 C 167.635,96 96,160.471 96,240 L 96,448 L 160,448 L 160,240 C 160,219.917 169.119,200.648 185.677,185.747 C 204.125,169.145 229.1,160 256,160 C 282.9,160 307.875,169.145 326.323,185.747 C 342.881,200.648 352,219.917 352,240 L 352,448 ZM 96,64L 416,64L 416,0L 96,0z" /> -<glyph unicode="" d="M 448,448 L 448,416 L 384,416 L 224,32 L 288,32 L 288,0 L 64,0 L 64,32 L 128,32 L 288,416 L 224,416 L 224,448 Z" /> -<glyph unicode="" d="M 353.94,237.674C 372.689,259.945, 384,288.678, 384,320c0,70.58-57.421,128-128,128l-64,0 l-64,0 L 96,448 l0-448 l 32,0 l 64,0 l 96,0 - c 70.579,0, 128,57.421, 128,128C 416,174.478, 391.101,215.248, 353.94,237.674z M 192,384l 50.75,0 c 27.984,0, 50.75-28.71, 50.75-64 - s-22.766-64-50.75-64L 192,256 L 192,384 z M 271.5,64L 192,64 L 192,192 l 79.5,0 c 29.225,0, 53-28.71, 53-64S 300.725,64, 271.5,64z" /> -<glyph unicode="" d="M 192,64L 288,64L 288-32L 192-32zM 400,448 C 426.51,448 448,426.51 448,400 L 448,256 L 288,160 L 288,96 L 192,96 L 192,192 L 352,288 L 352,352 L 96,352 L 96,448 L 400,448 Z" /> -<glyph unicode="" d="M 288,448 C 411.712,448 512,347.712 512,224 C 512,100.288 411.712,0 288,0 L 288,48 C 335.012,48 379.209,66.307 412.451,99.549 C 445.693,132.791 464,176.988 464,224 C 464,271.011 445.693,315.209 412.451,348.451 C 379.209,381.693 335.012,400 288,400 C 240.989,400 196.791,381.693 163.549,348.451 C 137.979,322.882 121.258,290.828 114.896,256 L 208,256 L 96,128 L -16,256 L 66.285,256 C 81.815,364.551 175.154,448 288,448 ZM 384,256 L 384,192 L 256,192 L 256,352 L 320,352 L 320,256 Z" /> -<glyph unicode="" d="M0,224L 64,224L 64,192L0,192zM 96,224L 192,224L 192,192L 96,192zM 224,224L 288,224L 288,192L 224,192zM 320,224L 416,224L 416,192L 320,192zM 448,224L 512,224L 512,192L 448,192zM 440,480 L 448,256 L 64,256 L 72,480 L 88,480 L 96,288 L 416,288 L 424,480 ZM 72-32 L 64,160 L 448,160 L 440-32 L 424-32 L 416,128 L 96,128 L 88-32 Z" /> -<glyph unicode="" d="M 192,384L 256,384L 256,352L 192,352zM 288,384L 352,384L 352,352L 288,352zM 448,384 L 448,256 L 352,256 L 352,288 L 416,288 L 416,352 L 384,352 L 384,384 ZM 160,288L 224,288L 224,256L 160,256zM 256,288L 320,288L 320,256L 256,256zM 96,352 L 96,288 L 128,288 L 128,256 L 64,256 L 64,384 L 160,384 L 160,352 ZM 192,192L 256,192L 256,160L 192,160zM 288,192L 352,192L 352,160L 288,160zM 448,192 L 448,64 L 352,64 L 352,96 L 416,96 L 416,160 L 384,160 L 384,192 ZM 160,96L 224,96L 224,64L 160,64zM 256,96L 320,96L 320,64L 256,64zM 96,160 L 96,96 L 128,96 L 128,64 L 64,64 L 64,192 L 160,192 L 160,160 ZM 480,448 L 32,448 L 32,0 L 480,0 L 480,448 Z M 512,480 L 512,480 L 512-32 L 0-32 L 0,480 L 512,480 Z" /> -<glyph unicode="" d="M 224,192 L 128,192 L 128,256 L 224,256 L 224,352 L 288,352 L 288,256 L 384,256 L 384,192 L 288,192 L 288,96 L 224,96 ZM 512,160 L 512-32 L 0-32 L 0,160 L 64,160 L 64,32 L 448,32 L 448,160 Z" /> -<glyph unicode="" d="M 64,352l 64,0 l0-96 l 32,0 L 160,448 c0,17.6-14.4,32-32,32L 64,480 C 46.4,480, 32,465.6, 32,448l0-192 l 32,0 L 64,352 z M 64,448l 64,0 l0-64 L 64,384 L 64,448 z M 480,448L 480,480 l-96,0 - c-17.601,0-32-14.4-32-32l0-160 c0-17.6, 14.399-32, 32-32l 96,0 l0,32 l-96,0 L 384,448 L 480,448 z M 320,400L 320,448 c0,17.6-14.4,32-32,32l-96,0 l0-224 l 96,0 - c 17.6,0, 32,14.4, 32,32l0,48 c0,17.6-4.4,32-22,32C 315.6,368, 320,382.4, 320,400z M 288,288l-64,0 l0,64 l 64,0 L 288,288 z M 288,384l-64,0 L 224,448 l 64,0 L 288,384 zM 416,192 L 208-32 L 96,112 L 137,147 L 208,73 L 384,224 Z" /> -<glyph unicode="" d="M 512,480 L 512,288 L 442.87,357.13 L 336.87,251.13 L 283.13,304.87 L 389.13,410.87 L 320,480 ZM 122.87,410.87 L 228.87,304.87 L 175.13,251.13 L 69.13,357.13 L 0,288 L 0,480 L 192,480 ZM 442.87,90.87 L 512,160 L 512-32 L 320-32 L 389.13,37.13 L 283.13,143.13 L 336.87,196.87 ZM 228.87,143.13 L 122.87,37.13 L 192-32 L 0-32 L 0,160 L 69.13,90.87 L 175.13,196.87 Z" /> -<glyph unicode="" d="M 128,448L 384,448L 384,384L 128,384zM 480,352L 32,352 C 14.4,352,0,337.6,0,320l0-160 c0-17.6, 14.398-32, 32-32l 96,0 l0-128 l 256,0 L 384,128 l 96,0 c 17.6,0, 32,14.4, 32,32L 512,320 - C 512,337.6, 497.6,352, 480,352z M 352,32L 160,32 L 160,192 l 192,0 L 352,32 z M 487.2,304c0-12.813-10.387-23.2-23.199-23.2 - c-12.813,0-23.201,10.387-23.201,23.2s 10.388,23.2, 23.201,23.2C 476.814,327.2, 487.2,316.813, 487.2,304z" /> -<glyph unicode="" d="M 256,480C 114.615,480,0,365.386,0,224c0-141.385, 114.614-256, 256-256c 141.385,0, 256,114.615, 256,256 - C 512,365.386, 397.385,480, 256,480z M 256,8c-119.293,0-216,96.706-216,216c0,119.293, 96.707,216, 216,216c 119.295,0, 216-96.707, 216-216 - C 472,104.706, 375.295,8, 256,8z M 192,320c0-17.673-14.327-32-32-32s-32,14.327-32,32s 14.327,32, 32,32S 192,337.673, 192,320z - M 384,320c0-17.673-14.326-32-32-32s-32,14.327-32,32s 14.326,32, 32,32S 384,337.673, 384,320zM 256,154 C 326.537,154 387.344,182.766 415.231,215.596 C 404.795,129.986 337.087,64 256,64 C 174.941,64 107.251,130.013 96.778,215.584 C 124.671,182.761 185.471,154 256,154 Z" /> -<glyph unicode="" d="M 352,32 L 480,32 L 512,96 L 512-32 L 320-32 L 320,75.107 C 385.556,103.349 432,173.688 432,256 C 432,363.216 353.201,447.133 256,447.133 C 158.797,447.133 80,363.217 80,256 C 80,173.688 126.443,103.349 192,75.107 L 192-32 L 0-32 L 0,96 L 32,32 L 160,32 L 160,48.295 C 66.185,81.525 0,161.996 0,256 C 0,379.712 114.615,480 256,480 C 397.385,480 512,379.712 512,256 C 512,161.996 445.815,81.525 352,48.295 L 352,32 Z" /> -<glyph unicode="" d="M 384,377 L 384,352 L 448,352 L 448,320 L 352,320 L 352,393 L 416,423 L 416,448 L 352,448 L 352,480 L 448,480 L 448,407 ZM 338,352L 270,352L 176,258L 82,352L 14,352L 142,224L 14,96L 82,96L 176,190L 270,96L 338,96L 210,224 z" /> -<glyph unicode="" d="M 384,25 L 384,0 L 448,0 L 448-32 L 352-32 L 352,41 L 416,71 L 416,96 L 352,96 L 352,128 L 448,128 L 448,55 ZM 338,352L 270,352L 176,258L 82,352L 14,352L 142,224L 14,96L 82,96L 176,190L 270,96L 338,96L 210,224 z" /> -<glyph unicode="" d="M0,32L 288,32L 288-32L0-32zM 96,480L 448,480L 448,416L 96,416zM 138.694,64 L 241.038,456.082 L 302.963,439.918 L 204.838,64 ZM 464.887-32 L 400,32.887 L 335.113-32 L 304-0.887 L 368.887,64 L 304,128.887 L 335.113,160 L 400,95.113 L 464.887,160 L 496,128.887 L 431.113,64 L 496-0.887 Z" /> -<glyph unicode="" d="M0,256L 512,256L 512,192L0,192z" /> -<glyph unicode="" d="M0,448l0-448 l 512,0 L 512,448 L0,448 z M 192,160l0,96 l 128,0 l0-96 L 192,160 z M 320,128l0-96 L 192,32 l0,96 L 320,128 z M 320,384l0-96 L 192,288 L 192,384 L 320,384 z M 160,384l0-96 L 32,288 L 32,384 L 160,384 z - M 32,256l 128,0 l0-96 L 32,160 L 32,256 z M 352,256l 128,0 l0-96 L 352,160 L 352,256 z M 352,288L 352,384 l 128,0 l0-96 L 352,288 z M 32,128l 128,0 l0-96 L 32,32 L 32,128 z M 352,32l0,96 l 128,0 l0-96 L 352,32 z" /> -<glyph unicode="" d="M 161.009,64l 28.8,96l 132.382,0 l 28.8-96l 56.816,0 L 311.809,384L 200.191,384 l-96-320L 161.009,64 z M 237.809,320l 36.382,0 l 28.8-96l-93.982,0 - L 237.809,320z" /> -<glyph unicode="" d="M 256,320C 151.316,320, 58.378,269.722,0,192c 58.378-77.723, 151.316-128, 256-128c 104.684,0, 197.622,50.277, 256,128 - C 453.622,269.722, 360.684,320, 256,320z M 224,256c 17.673,0, 32-14.327, 32-32s-14.327-32-32-32s-32,14.327-32,32S 206.327,256, 224,256z - M 386.808,127.352c-19.824-10.129-40.826-17.931-62.423-23.188C 302.141,98.746, 279.134,96, 256,96 - c-23.133,0-46.141,2.746-68.384,8.162c-21.597,5.259-42.599,13.061-62.423,23.188c-31.51,16.101-60.111,38.205-83.82,64.649 - c 23.709,26.444, 52.31,48.55, 83.82,64.649c 16.168,8.261, 33.121,14.973, 50.541,20.020C 165.79,261.547, 160,243.451, 160,224 - c0-53.020, 42.981-96, 96-96c 53.019,0, 96,42.98, 96,96c0,19.451-5.791,37.547-15.733,52.67c 17.419-5.048, 34.372-11.76, 50.541-20.021 - c 31.511-16.099, 60.109-38.204, 83.819-64.649C 446.917,165.557, 418.318,143.45, 386.808,127.352z M 430.459,358.139 - C 376.099,385.916, 317.403,400, 256,400c-61.403,0-120.099-14.084-174.459-41.861C 52.155,343.123, 24.675,324.187,0,302.101l0-54.603 - c 27.669,29.283, 60.347,53.877, 96.097,72.145C 145.907,345.095, 199.706,358, 256,358s 110.093-12.905, 159.902-38.358 - c 35.751-18.268, 68.429-42.862, 96.098-72.145L 512,302.1 C 487.325,324.187, 459.846,343.123, 430.459,358.139z" /> -<glyph unicode="" d="M 256,384C 149.962,384, 64,298.039, 64,192s 85.961-192, 192-192c 106.037,0, 192,85.961, 192,192S 362.037,384, 256,384z - M 357.822,90.177C 330.626,62.979, 294.464,48, 256,48s-74.625,14.979-101.823,42.177C 126.979,117.374, 112,153.536, 112,192 - s 14.979,74.625, 42.177,101.823C 181.375,321.021, 217.536,336, 256,336s 74.626-14.979, 101.821-42.177 - C 385.022,266.625, 400,230.464, 400,192S 385.021,117.374, 357.822,90.177zM 162.965,378.069l-21.47,42.939C 92.058,396.24, 51.76,355.942, 26.992,306.504l 42.938-21.47 - C 90.054,325.202, 122.796,357.945, 162.965,378.069zM 442.067,285.035l 42.939,21.469C 460.24,355.942, 419.943,396.24, 370.504,421.008l-21.472-42.939 - C 389.201,357.945, 421.944,325.203, 442.067,285.035zM 256,288l-32,0 l0-96 c0-5.055, 2.35-9.555, 6.011-12.486l-0.006-0.008l 80-64l 19.988,24.988L 256,199.689L 256,288 z" /> -<glyph unicode="" d="M 160,352L 32,224L 160,96L 224,96L 96,224L 224,352 zM 352,352L 288,352L 416,224L 288,96L 352,96L 480,224 z" /> -<glyph unicode="" d="M 224,128L 288,128L 288,64L 224,64zM 352,352 C 369.673,352 384,337.673 384,320 L 384,224 L 288,160 L 224,160 L 224,192 L 320,256 L 320,288 L 160,288 L 160,352 L 352,352 ZM 256,432 C 200.441,432 148.208,410.364 108.922,371.078 C 69.636,331.792 48,279.559 48,224 C 48,168.441 69.636,116.208 108.922,76.922 C 148.208,37.636 200.441,16 256,16 C 311.559,16 363.792,37.636 403.078,76.922 C 442.364,116.208 464,168.441 464,224 C 464,279.559 442.364,331.792 403.078,371.078 C 363.792,410.364 311.559,432 256,432 Z M 256,480 L 256,480 C 397.385,480 512,365.385 512,224 C 512,82.615 397.385-32 256-32 C 114.615-32 0,82.615 0,224 C 0,365.385 114.615,480 256,480 Z" /> -<glyph unicode="" d="M0,416l0-384 l 512,0 L 512,416 L0,416 z M 96,64L 32,64 l0,64 l 64,0 L 96,64 z M 96,192L 32,192 l0,64 l 64,0 L 96,192 z M 96,320L 32,320 L 32,384 l 64,0 L 96,320 z M 384,64L 128,64 L 128,384 l 256,0 L 384,64 z - M 480,64l-64,0 l0,64 l 64,0 L 480,64 z M 480,192l-64,0 l0,64 l 64,0 L 480,192 z M 480,320l-64,0 L 416,384 l 64,0 L 480,320 zM 192,320L 192,128L 320,224 z" /> -<glyph unicode="" d="M0,416l0-416 l 512,0 L 512,416 L0,416 z M 480,32L 32,32 L 32,384 l 448,0 L 480,32 zM 352,304A48,48 3060 1 0 448,304A48,48 3060 1 0 352,304zM 448,64 L 64,64 L 160,320 L 288,160 L 352,208 Z" /> -<glyph unicode="" d="M 96,480l0-512 l 160,160l 160-160L 416,480 L 96,480 z M 384,45.255l-128,128l-128-128L 128,448 l 256,0 L 384,45.255 z" /> -<glyph unicode="" d="M 238.444,142.443c 2.28-4.524, 3.495-9.579, 3.495-14.848c0-8.808-3.372-17.029-9.496-23.154l-81.69-81.69 - c-6.124-6.124-14.348-9.496-23.154-9.496s-17.030,3.372-23.154,9.496l-49.69,49.69c-6.124,6.125-9.496,14.348-9.496,23.154 - s 3.372,17.030, 9.496,23.154l 81.69,81.691c 6.124,6.123, 14.348,9.496, 23.154,9.496c 5.269,0, 10.322-1.215, 14.848-3.494l 32.669,32.668 - c-13.935,10.705-30.72,16.080-47.517,16.080c-19.993,0-39.986-7.583-55.154-22.751l-81.69-81.691 - c-30.335-30.335-30.335-79.975,0-110.309l 49.69-49.691c 15.167-15.166, 35.16-22.75, 55.153-22.75 - c 19.994,0, 39.987,7.584, 55.154,22.751l 81.69,81.69c 27.91,27.91, 30.119,72.149, 6.672,102.673L 238.444,142.443zM 489.248,407.558l-49.69,49.691C 424.391,472.417, 404.398,480, 384.404,480c-19.993,0-39.985-7.583-55.153-22.751l-81.691-81.691 - c-27.91-27.91-30.119-72.149-6.671-102.671l 32.669,32.67c-2.279,4.525-3.494,9.58-3.494,14.847c0,8.808, 3.372,17.030, 9.496,23.154 - l 81.691,81.691c 6.123,6.124, 14.347,9.497, 23.153,9.497c 8.808,0, 17.030-3.373, 23.154-9.497l 49.69-49.691 - c 6.124-6.124, 9.496-14.347, 9.496-23.154c0-8.807-3.372-17.030-9.496-23.154l-81.69-81.691c-6.124-6.124-14.347-9.496-23.154-9.496 - c-5.268,0-10.322,1.215-14.848,3.495l-32.669-32.669c 13.936-10.705, 30.72-16.080, 47.517-16.080c 19.994,0, 39.987,7.584, 55.154,22.752 - l 81.69,81.69C 519.584,327.584, 519.584,377.223, 489.248,407.558zM 116.684,340.688L 20.687,436.685L 43.315,459.313L 139.312,363.316zM 192,480L 224,480L 224,384L 192,384zM0,288L 96,288L 96,256L0,256zM 395.316,107.312L 491.314,11.314L 468.686-11.314L 372.688,84.684zM 288,64L 320,64L 320-32L 288-32zM 416,192L 512,192L 512,160L 416,160z" /> -<glyph unicode="" d="M 160,128c 8.8-8.8, 23.637-8.363, 32.971,0.971L 351.030,287.029C 360.364,296.363, 360.8,311.2, 352,320 - s-23.637,8.363-32.971-0.971L 160.971,160.971C 151.637,151.637, 151.2,136.8, 160,128zM 238.444,142.444c 2.28-4.525, 3.495-9.58, 3.495-14.848c0-8.808-3.372-17.030-9.496-23.154l-81.691-81.691 - c-6.124-6.124-14.347-9.496-23.154-9.496s-17.030,3.372-23.154,9.496l-49.691,49.691c-6.124,6.124-9.496,14.347-9.496,23.154 - s 3.372,17.030, 9.496,23.154l 81.691,81.691c 6.124,6.124, 14.347,9.497, 23.154,9.497c 5.268,0, 10.322-1.215, 14.848-3.495l 32.669,32.669 - c-13.935,10.705-30.72,16.080-47.517,16.080c-19.993,0-39.986-7.583-55.154-22.751l-81.691-81.691 - c-30.335-30.335-30.335-79.974,0-110.309l 49.691-49.691C 87.611-24.416, 107.604-32, 127.597-32 - c 19.994,0, 39.987,7.584, 55.154,22.751l 81.691,81.691c 27.91,27.91, 30.119,72.149, 6.672,102.672L 238.444,142.444zM 489.249,407.558l-49.691,49.691C 424.391,472.417, 404.398,480, 384.404,480c-19.993,0-39.986-7.583-55.154-22.751l-81.691-81.691 - c-27.91-27.91-30.119-72.149-6.671-102.671l 32.669,32.67c-2.279,4.525-3.494,9.58-3.494,14.847c0,8.808, 3.372,17.030, 9.496,23.154 - l 81.691,81.691c 6.124,6.124, 14.347,9.497, 23.154,9.497s 17.030-3.373, 23.154-9.497l 49.691-49.691 - c 6.124-6.124, 9.496-14.347, 9.496-23.154s-3.372-17.030-9.496-23.154l-81.691-81.691c-6.124-6.124-14.347-9.496-23.154-9.496 - c-5.268,0-10.322,1.215-14.848,3.495l-32.669-32.669c 13.936-10.705, 30.72-16.080, 47.517-16.080c 19.994,0, 39.987,7.584, 55.154,22.751 - l 81.691,81.691C 519.584,327.584, 519.584,377.223, 489.249,407.558z" /> -<glyph unicode="" d="M 288,355.814L 288,480 l 192-192L 288,96L 288,222.912 C 64.625,228.153, 74.206,71.016, 131.070-32 - C-9.286,119.707, 20.52,362.785, 288,355.814z" /> -<glyph unicode="" d="M 380.931-32C 437.794,71.016, 447.375,228.153, 224,222.912L 224,96 L 32,288L 224,480l0-124.186 - C 491.481,362.785, 521.285,119.707, 380.931-32z" /> -<glyph unicode="" d="M 112.5,256 C 174.356,256 224.5,205.855 224.5,144 C 224.5,82.144 174.356,32 112.5,32 C 50.644,32 0.5,82.144 0.5,144 L 0,160 C 0,283.712 100.288,384 224,384 L 224,320 C 181.263,320 141.083,303.357 110.863,273.137 C 105.046,267.319 99.737,261.129 94.948,254.627 C 100.667,255.527 106.528,256 112.5,256 ZM 400.5,256 C 462.355,256 512.5,205.855 512.5,144 C 512.5,82.144 462.355,32 400.5,32 C 338.645,32 288.5,82.144 288.5,144 L 288,160 C 288,283.712 388.288,384 512,384 L 512,320 C 469.263,320 429.083,303.357 398.863,273.137 C 393.045,267.319 387.736,261.129 382.947,254.627 C 388.667,255.527 394.527,256 400.5,256 Z" /> -<glyph unicode="" d="M0,448L 512,448L 512,384L0,384zM 192,352L 512,352L 512,288L 192,288zM 192,256L 512,256L 512,192L 192,192zM 192,160L 512,160L 512,96L 192,96zM0,64L 512,64L 512,0L0,0zM 128,320 L 128,128 L 0,224 Z" /> -<glyph unicode="" d="M0,448L 512,448L 512,384L0,384zM 192,352L 512,352L 512,288L 192,288zM 192,256L 512,256L 512,192L 192,192zM 192,160L 512,160L 512,96L 192,96zM0,64L 512,64L 512,0L0,0zM 0,128 L 0,320 L 128,224 Z" /> -<glyph unicode="" d="M 192,64L 512,64L 512,0L 192,0zM 192,256L 512,256L 512,192L 192,192zM 192,448L 512,448L 512,384L 192,384zM 96,480 L 96,352 L 64,352 L 64,448 L 32,448 L 32,480 ZM 64,217 L 64,192 L 128,192 L 128,160 L 32,160 L 32,233 L 96,263 L 96,288 L 32,288 L 32,320 L 128,320 L 128,247 ZM 128,128 L 128-32 L 32-32 L 32,0 L 96,0 L 96,32 L 32,32 L 32,64 L 96,64 L 96,96 L 32,96 L 32,128 Z" /> -<glyph unicode="" d="M 192,448l 320,0 l0-64 L 192,384 L 192,448 z M 192,256l 320,0 l0-64 L 192,192 L 192,256 z M 192,64l 320,0 l0-64 L 192,0 L 192,64 zM0,416A64,64 3060 1 0 128,416A64,64 3060 1 0 0,416zM0,224A64,64 3060 1 0 128,224A64,64 3060 1 0 0,224zM0,32A64,64 3060 1 0 128,32A64,64 3060 1 0 0,32z" /> -<glyph unicode="" d="M 32,480L 224,480L 224,448L 32,448zM 288,480L 480,480L 480,448L 288,448zM 476,320l-28,0 L 448,448 L 320,448 l0-128 L 192,320 L 192,448 L 64,448 l0-128 L 36,320 c-19.8,0-36-16.2-36-36l0-280 c0-19.8, 16.2-36, 36-36l 152,0 c 19.8,0, 36,16.2, 36,36L 224,192 l 64,0 - l0-188 c0-19.8, 16.2-36, 36-36l 152,0 c 19.8,0, 36,16.2, 36,36L 512,284 C 512,303.8, 495.8,320, 476,320z M 174,0L 50,0 c-9.9,0-18,7.2-18,16 - s 8.1,16, 18,16l 124,0 c 9.9,0, 18-7.2, 18-16S 183.9,0, 174,0z M 272,224l-32,0 c-8.8,0-16,7.2-16,16s 7.2,16, 16,16l 32,0 c 8.8,0, 16-7.2, 16-16 - S 280.8,224, 272,224z M 462,0L 338,0 c-9.9,0-18,7.2-18,16s 8.1,16, 18,16l 124,0 c 9.9,0, 18-7.2, 18-16S 471.9,0, 462,0z" /> -<glyph unicode="" d="M 416,320L 416,400 c0,8.8-7.2,16-16,16L 288,416 L 288,448 c0,17.6-14.4,32-32,32l-64,0 c-17.602,0-32-14.4-32-32l0-32 L 48,416 c-8.801,0-16-7.2-16-16l0-320 - c0-8.8, 7.199-16, 16-16l 144,0 l0-96 l 224,0 l 96,96L 512,320 L 416,320 z M 192,447.943c 0.017,0.019, 0.036,0.039, 0.057,0.057l 63.884,0 - c 0.021-0.018, 0.041-0.038, 0.059-0.057L 256,416 l-64,0 L 192,447.943 z M 96,352L 96,384 l 256,0 l0-32 L 96,352 z M 416,13.255L 416,64 l 50.745,0 L 416,13.255z M 480,96l-96,0 l0-96 - L 224,0 L 224,288 l 256,0 L 480,96 z" /> -<glyph unicode="" d="M 445.387,125.423c-22.827,22.778-51.864,34.536-78.973,34.536l-14.556,0 l-31.952,32.004l 127.81,128.019 - c 31.952,32.005, 31.952,96.014,0,128.019L 256.001,255.973L 64.285,448c-31.952-32.004-31.952-96.014,0-128.019l 127.811-128.017 - l-31.953-32.004l-14.557,0 c-27.11,0-56.146-11.759-78.974-34.538c-40.811-40.721-46.325-101.242-12.315-135.175 - C 69.282-24.704, 89.441-32, 110.795-32c 27.108,0, 56.145,11.757, 78.973,34.536c 26.792,26.732, 38.371,62, 33.542,92.674l 32.692,32.744 - l 32.688-32.744c-4.828-30.674, 6.753-65.941, 33.542-92.674C 345.063-20.243, 374.098-32, 401.206-32 - c 21.354,0, 41.512,7.296, 56.497,22.248C 491.713,24.181, 486.197,84.702, 445.387,125.423z M 176.512,57.231 - c-3.849-8.941-9.505-17.173-16.813-24.463c-7.318-7.302-15.586-12.959-24.574-16.812c-8.066-3.458-16.48-5.284-24.331-5.284 - c-7.573,0-18.306,1.701-26.431,9.806c-8.068,8.052-9.76,18.659-9.76,26.144c0,7.771, 1.821,16.105, 5.263,24.106 - c 3.85,8.942, 9.507,17.173, 16.813,24.463c 7.317,7.303, 15.586,12.957, 24.575,16.812c 8.067,3.457, 16.48,5.284, 24.332,5.284 - c 7.573,0, 18.306-1.7, 26.429-9.807c 8.067-8.049, 9.761-18.658, 9.761-26.142C 181.777,73.567, 179.957,65.23, 176.512,57.231z - M 256.002,146.702c-24.957,0-45.188,20.266-45.188,45.263c0,24.996, 20.231,45.26, 45.188,45.26s 45.186-20.264, 45.186-45.26 - C 301.188,166.966, 280.958,146.702, 256.002,146.702z M 427.636,20.479c-8.124-8.104-18.856-9.806-26.43-9.806 - c-7.852,0-16.265,1.826-24.333,5.284c-8.986,3.853-17.254,9.51-24.571,16.812c-7.307,7.29-12.963,15.521-16.813,24.463 - c-3.443,7.999-5.263,16.336-5.263,24.106c0,7.483, 1.692,18.094, 9.76,26.143c 8.123,8.104, 18.856,9.807, 26.43,9.807 - c 7.85,0, 16.265-1.827, 24.33-5.284c 8.989-3.854, 17.258-9.509, 24.575-16.812c 7.305-7.29, 12.962-15.521, 16.813-24.463 - c 3.442-7.999, 5.263-16.335, 5.263-24.106C 437.396,39.138, 435.702,28.53, 427.636,20.479z" /> -<glyph unicode="" d="M0,448L 512,448L 512,384L0,384zM0,352L 512,352L 512,288L0,288zM0,256L 512,256L 512,192L0,192zM0,160L 512,160L 512,96L0,96zM0,64L 512,64L 512,0L0,0z" /> -<glyph unicode="" d="M0,448L 512,448L 512,384L0,384zM 192,352L 512,352L 512,288L 192,288zM 192,160L 512,160L 512,96L 192,96zM0,256L 512,256L 512,192L0,192zM0,64L 512,64L 512,0L0,0z" /> -<glyph unicode="" d="M0,448L 512,448L 512,384L0,384zM 96,352L 416,352L 416,288L 96,288zM 96,160L 416,160L 416,96L 96,96zM0,256L 512,256L 512,192L0,192zM0,64L 512,64L 512,0L0,0z" /> -<glyph unicode="" d="M0,448L 512,448L 512,384L0,384zM0,352L 320,352L 320,288L0,288zM0,160L 320,160L 320,96L0,96zM0,256L 512,256L 512,192L0,192zM0,64L 512,64L 512,0L0,0z" /> -<glyph unicode="" d="M 512,183.771l0,80.458 l-79.572,7.957c-4.093,15.021-10.044,29.274-17.605,42.49l 52.298,63.919L 410.595,435.12l-63.918-52.298 - c-13.217,7.562-27.471,13.513-42.491,17.604L 296.229,480l-80.458,0 l-7.957-79.573c-15.021-4.093-29.274-10.043-42.49-17.604 - L 101.405,435.12L 44.88,378.595l 52.298-63.918c-7.562-13.216-13.513-27.47-17.605-42.49L0,264.229l0-80.458 l 79.573-7.957 - c 4.093-15.021, 10.043-29.274, 17.605-42.491L 44.88,69.405l 56.524-56.524l 63.919,52.298c 13.216-7.562, 27.47-13.514, 42.49-17.605 - L 215.771-32l 80.458,0 l 7.957,79.572c 15.021,4.093, 29.274,10.044, 42.491,17.605l 63.918-52.298l 56.524,56.524l-52.298,63.918 - c 7.562,13.217, 13.514,27.471, 17.605,42.49L 512,183.771z M 352,192l-64-64l-64,0 l-64,64l0,64 l 64,64l 64,0 l 64-64L 352,192 z" /> -<glyph unicode="" d="M 451.716,380.285l-71.432,71.431C 364.728,467.272, 334,480, 312,480L 72,480 C 50,480, 32,462, 32,440l0-432 c0-22, 18-40, 40-40l 368,0 c 22,0, 40,18, 40,40 - L 480,312 C 480,334, 467.272,364.729, 451.716,380.285z M 429.089,357.657c 1.565-1.565, 3.125-3.487, 4.64-5.657L 352,352 L 352,433.728 - c 2.17-1.515, 4.092-3.075, 5.657-4.64L 429.089,357.657z M 448,8c0-4.336-3.664-8-8-8L 72,0 c-4.336,0-8,3.664-8,8L 64,440 c0,4.336, 3.664,8, 8,8 - l 240,0 c 2.416,0, 5.127-0.305, 8-0.852L 320,320 l 127.148,0 c 0.547-2.873, 0.852-5.583, 0.852-8L 448,8 z" /> -<glyph unicode="" d="M 448,480L0,480 l0-512 l 512,0 L 512,416 L 448,480z M 256,416l 64,0 l0-128 l-64,0 L 256,416 z M 448,32L 64,32 L 64,416 l 32,0 l0-160 l 288,0 L 384,416 l 37.489,0 L 448,389.491L 448,32 z" /> -<glyph unicode="" d="M 64,208L 208,64L 448,304L 384,368L 208,192L 128,272 z" /> -<glyph unicode="" d="M 256,224L 256,160L 272,160L 288,192L 320,192L 320,64L 296,64L 296,32L 408,32L 408,64L 384,64L 384,192L 416,192L 432,160L 448,160L 448,224 zM 416,320L 416,400 c0,8.8-7.2,16-16,16L 288,416 L 288,448 c0,17.6-14.4,32-32,32l-64,0 c-17.602,0-32-14.4-32-32l0-32 L 48,416 c-8.801,0-16-7.2-16-16l0-320 - c0-8.8, 7.199-16, 16-16l 144,0 l0-96 l 320,0 L 512,320 L 416,320 z M 192,447.943c 0.017,0.019, 0.036,0.039, 0.057,0.057l 63.884,0 - c 0.021-0.018, 0.041-0.038, 0.059-0.057L 256,416 l-64,0 L 192,447.943 z M 96,352L 96,384 l 256,0 l0-32 L 96,352 z M 480,0L 224,0 L 224,288 l 256,0 L 480,0 z" /> -<glyph unicode=" " horiz-adv-x="256" /> -</font></defs></svg> \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce.ttf b/common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce.ttf deleted file mode 100644 index a31b584c2bc361084bfd1745ccaee5b70181e4ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8112 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 Gul^s<wCs-n diff --git a/common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce.woff b/common/static/js/vendor/tiny_mce/skins/lightgray/fonts/tinymce.woff deleted file mode 100644 index f0e8a34c6f2bd1d3facaa85d2283dc31f02e4861..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8408 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 Q|9KxRIw6}F`~k543putNr2qf` diff --git a/common/static/js/vendor/tiny_mce/skins/lightgray/skin.ie7.min.css b/common/static/js/vendor/tiny_mce/skins/lightgray/skin.ie7.min.css deleted file mode 100644 index dfa0e4e1902..00000000000 --- a/common/static/js/vendor/tiny_mce/skins/lightgray/skin.ie7.min.css +++ /dev/null @@ -1 +0,0 @@ -.mce-container,.mce-container *,.mce-widget,.mce-widget *{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:visible !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #9e9e9e;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#d9d9d9}.mce-grid td div{border:1px solid #d6d6d6;width:12px;height:12px;margin:2px;cursor:pointer}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover{border-color:#a1a1a1}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#a1a1a1;background:#c8def4}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-toolbar-grp{padding-bottom:2px}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #9e9e9e;background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fdfdfd, #ddd);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fdfdfd), to(#ddd));background-image:-webkit-linear-gradient(top, #fdfdfd, #ddd);background-image:-o-linear-gradient(top, #fdfdfd, #ddd);background-image:linear-gradient(to bottom, #fdfdfd, #ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd', endColorstr='#ffdddddd', GradientType=0);zoom:1}.mce-floatpanel{position:absolute;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);top:0;left:0;background:#fff;border:1px solid #9e9e9e;border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#9e9e9e;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#fff;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#fff;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#fff;border-top:1px solid #c5c5c5;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-inner{-webkit-box-shadow:0 0 5px #000000;-moz-box-shadow:0 0 5px #000000;box-shadow:0 0 5px #000000}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-n .mce-tooltip-arrow{top:0px;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-btn{border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1}.mce-btn:hover,.mce-btn:focus{color:#333;background-color:#e3e3e3;background-image:-moz-linear-gradient(top, #f2f2f2, #ccc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#ccc));background-image:-webkit-linear-gradient(top, #f2f2f2, #ccc);background-image:-o-linear-gradient(top, #f2f2f2, #ccc);background-image:linear-gradient(to bottom, #f2f2f2, #ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffcccccc', GradientType=0);zoom:1}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn:not(.mce-disabled):active{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn button{padding:4px 10px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #fff}.mce-primary{min-width:50px;color:#fff;border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #08c, #04c);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#04c));background-image:-webkit-linear-gradient(top, #08c, #04c);background-image:-o-linear-gradient(top, #08c, #04c);background-image:linear-gradient(to bottom, #08c, #04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);zoom:1}.mce-primary:hover,.mce-primary:focus{background-color:#005fb3;background-image:-moz-linear-gradient(top, #0077b3, #003cb3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0077b3), to(#003cb3));background-image:-webkit-linear-gradient(top, #0077b3, #003cb3);background-image:-o-linear-gradient(top, #0077b3, #003cb3);background-image:linear-gradient(to bottom, #0077b3, #003cb3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0077b3', endColorstr='#ff003cb3', GradientType=0);zoom:1}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#005299;background-image:-moz-linear-gradient(top, #069, #039);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#069), to(#039));background-image:-webkit-linear-gradient(top, #069, #039);background-image:-o-linear-gradient(top, #069, #039);background-image:linear-gradient(to bottom, #069, #039);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff006699', endColorstr='#ff003399', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px #333}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px 0 1px 0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-btn-group .mce-first{border-left:1px solid #b1b1b1;border-left:1px solid rgba(0,0,0,0.25);-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.mce-btn-group .mce-last{border-right:1px solid #b1b1b1;border-right:1px solid rgba(0,0,0,0.1);-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#333;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-14px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;border-left:1px solid transparent;border-right:1px solid transparent}.mce-colorbutton:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:4px;margin-right:-14px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;margin-right:-17px;padding-left:0}.mce-rtl .mce-colorbutton button{padding-right:10px;padding-left:10px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px}.mce-combobox{display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #9e9e9e;width:100%;height:100%}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);border:0;overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar{border:1px solid #c4c4c4}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:transparent;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-menubtn.mce-disabled span{color:#aaa}.mce-menubtn span{color:#333;margin-right:2px;line-height:20px;*line-height:16px}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:#fff}.mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#fff}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:#fff}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#c8def4}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:#333}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:#fff}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #08c, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0077b3));background-image:-webkit-linear-gradient(top, #08c, #0077b3);background-image:-o-linear-gradient(top, #08c, #0077b3);background-image:linear-gradient(to bottom, #08c, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);zoom:1}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#cbcbcb;border-bottom:1px solid #fff;cursor:default;filter:none}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#fff}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:2px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,0.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent;border-right:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-splitbtn button{padding-right:4px}.mce-splitbtn .mce-open{padding-left:4px}.mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:10px;padding-left:10px}.mce-rtl .mce-splitbtn .mce-open{padding-left:4px;padding-right:4px}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce';font-style:normal;font-weight:normal;font-size:16px;line-height:16px;vertical-align:text-top;-webkit-font-smoothing:antialiased;display:inline-block;background:transparent center center;width:16px;height:16px;color:#333;-ie7-icon:' '}.mce-btn-small .mce-ico{font-family:'tinymce-small'}.mce-ico,i.mce-i-checkbox{zoom:expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = this.currentStyle['-ie7-icon'].substr(1, 1) + ' ')}.mce-i-save{-ie7-icon:"\e000"}.mce-i-newdocument{-ie7-icon:"\e001"}.mce-i-fullpage{-ie7-icon:"\e002"}.mce-i-alignleft{-ie7-icon:"\e003"}.mce-i-aligncenter{-ie7-icon:"\e004"}.mce-i-alignright{-ie7-icon:"\e005"}.mce-i-alignjustify{-ie7-icon:"\e006"}.mce-i-cut{-ie7-icon:"\e007"}.mce-i-paste{-ie7-icon:"\e008"}.mce-i-searchreplace{-ie7-icon:"\e009"}.mce-i-bullist{-ie7-icon:"\e00a"}.mce-i-numlist{-ie7-icon:"\e00b"}.mce-i-indent{-ie7-icon:"\e00c"}.mce-i-outdent{-ie7-icon:"\e00d"}.mce-i-blockquote{-ie7-icon:"\e00e"}.mce-i-undo{-ie7-icon:"\e00f"}.mce-i-redo{-ie7-icon:"\e010"}.mce-i-link{-ie7-icon:"\e011"}.mce-i-unlink{-ie7-icon:"\e012"}.mce-i-anchor{-ie7-icon:"\e013"}.mce-i-image{-ie7-icon:"\e014"}.mce-i-media{-ie7-icon:"\e015"}.mce-i-help{-ie7-icon:"\e016"}.mce-i-code{-ie7-icon:"\e017"}.mce-i-inserttime{-ie7-icon:"\e018"}.mce-i-preview{-ie7-icon:"\e019"}.mce-i-forecolor{-ie7-icon:"\e01a"}.mce-i-backcolor{-ie7-icon:"\e01a"}.mce-i-table{-ie7-icon:"\e01b"}.mce-i-hr{-ie7-icon:"\e01c"}.mce-i-removeformat{-ie7-icon:"\e01d"}.mce-i-subscript{-ie7-icon:"\e01e"}.mce-i-superscript{-ie7-icon:"\e01f"}.mce-i-charmap{-ie7-icon:"\e020"}.mce-i-emoticons{-ie7-icon:"\e021"}.mce-i-print{-ie7-icon:"\e022"}.mce-i-fullscreen{-ie7-icon:"\e023"}.mce-i-spellchecker{-ie7-icon:"\e024"}.mce-i-nonbreaking{-ie7-icon:"\e025"}.mce-i-template{-ie7-icon:"\e026"}.mce-i-pagebreak{-ie7-icon:"\e027"}.mce-i-restoredraft{-ie7-icon:"\e028"}.mce-i-untitled{-ie7-icon:"\e029"}.mce-i-bold{-ie7-icon:"\e02a"}.mce-i-italic{-ie7-icon:"\e02b"}.mce-i-underline{-ie7-icon:"\e02c"}.mce-i-strikethrough{-ie7-icon:"\e02d"}.mce-i-visualchars{-ie7-icon:"\e02e"}.mce-i-ltr{-ie7-icon:"\e02f"}.mce-i-rtl{-ie7-icon:"\e030"}.mce-i-copy{-ie7-icon:"\e031"}.mce-i-resize{-ie7-icon:"\e032"}.mce-i-browse{-ie7-icon:"\e034"}.mce-i-pastetext{-ie7-icon:"\e035"}.mce-i-checkbox,.mce-i-selected{-ie7-icon:"\e033"}.mce-i-selected{visibility:hidden}.mce-i-backcolor{background:#BBB} \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/skins/lightgray/skin.min.css b/common/static/js/vendor/tiny_mce/skins/lightgray/skin.min.css deleted file mode 100644 index 86c4eac719d..00000000000 --- a/common/static/js/vendor/tiny_mce/skins/lightgray/skin.min.css +++ /dev/null @@ -1 +0,0 @@ -.mce-container,.mce-container *,.mce-widget,.mce-widget *{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:visible !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #9e9e9e;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#d9d9d9}.mce-grid td div{border:1px solid #d6d6d6;width:12px;height:12px;margin:2px;cursor:pointer}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover{border-color:#a1a1a1}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#a1a1a1;background:#c8def4}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-toolbar-grp{padding-bottom:2px}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #9e9e9e;background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fdfdfd, #ddd);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fdfdfd), to(#ddd));background-image:-webkit-linear-gradient(top, #fdfdfd, #ddd);background-image:-o-linear-gradient(top, #fdfdfd, #ddd);background-image:linear-gradient(to bottom, #fdfdfd, #ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd', endColorstr='#ffdddddd', GradientType=0);zoom:1}.mce-floatpanel{position:absolute;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);top:0;left:0;background:#fff;border:1px solid #9e9e9e;border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#9e9e9e;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#fff;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#fff;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#fff;border-top:1px solid #c5c5c5;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-inner{-webkit-box-shadow:0 0 5px #000000;-moz-box-shadow:0 0 5px #000000;box-shadow:0 0 5px #000000}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-n .mce-tooltip-arrow{top:0px;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-btn{border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1}.mce-btn:hover,.mce-btn:focus{color:#333;background-color:#e3e3e3;background-image:-moz-linear-gradient(top, #f2f2f2, #ccc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#ccc));background-image:-webkit-linear-gradient(top, #f2f2f2, #ccc);background-image:-o-linear-gradient(top, #f2f2f2, #ccc);background-image:linear-gradient(to bottom, #f2f2f2, #ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffcccccc', GradientType=0);zoom:1}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn:not(.mce-disabled):active{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn button{padding:4px 10px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #fff}.mce-primary{min-width:50px;color:#fff;border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #08c, #04c);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#04c));background-image:-webkit-linear-gradient(top, #08c, #04c);background-image:-o-linear-gradient(top, #08c, #04c);background-image:linear-gradient(to bottom, #08c, #04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);zoom:1}.mce-primary:hover,.mce-primary:focus{background-color:#005fb3;background-image:-moz-linear-gradient(top, #0077b3, #003cb3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0077b3), to(#003cb3));background-image:-webkit-linear-gradient(top, #0077b3, #003cb3);background-image:-o-linear-gradient(top, #0077b3, #003cb3);background-image:linear-gradient(to bottom, #0077b3, #003cb3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0077b3', endColorstr='#ff003cb3', GradientType=0);zoom:1}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#005299;background-image:-moz-linear-gradient(top, #069, #039);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#069), to(#039));background-image:-webkit-linear-gradient(top, #069, #039);background-image:-o-linear-gradient(top, #069, #039);background-image:linear-gradient(to bottom, #069, #039);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff006699', endColorstr='#ff003399', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px #333}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px 0 1px 0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-btn-group .mce-first{border-left:1px solid #b1b1b1;border-left:1px solid rgba(0,0,0,0.25);-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.mce-btn-group .mce-last{border-right:1px solid #b1b1b1;border-right:1px solid rgba(0,0,0,0.1);-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#333;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-14px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;border-left:1px solid transparent;border-right:1px solid transparent}.mce-colorbutton:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:4px;margin-right:-14px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;margin-right:-17px;padding-left:0}.mce-rtl .mce-colorbutton button{padding-right:10px;padding-left:10px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px}.mce-combobox{display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #9e9e9e;width:100%;height:100%}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);border:0;overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar{border:1px solid #c4c4c4}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:transparent;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-menubtn.mce-disabled span{color:#aaa}.mce-menubtn span{color:#333;margin-right:2px;line-height:20px;*line-height:16px}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:#fff}.mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#fff}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:#fff}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#c8def4}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:#333}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:#fff}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #08c, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0077b3));background-image:-webkit-linear-gradient(top, #08c, #0077b3);background-image:-o-linear-gradient(top, #08c, #0077b3);background-image:linear-gradient(to bottom, #08c, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);zoom:1}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#cbcbcb;border-bottom:1px solid #fff;cursor:default;filter:none}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#fff}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:2px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,0.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent;border-right:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-splitbtn button{padding-right:4px}.mce-splitbtn .mce-open{padding-left:4px}.mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:10px;padding-left:10px}.mce-rtl .mce-splitbtn .mce-open{padding-left:4px;padding-right:4px}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce',Arial;font-style:normal;font-weight:normal;font-size:16px;line-height:16px;vertical-align:text-top;-webkit-font-smoothing:antialiased;display:inline-block;background:transparent center center;width:16px;height:16px;color:#333}.mce-btn-small .mce-ico{font-family:'tinymce-small',Arial}.mce-i-save:before{content:"\e000"}.mce-i-newdocument:before{content:"\e001"}.mce-i-fullpage:before{content:"\e002"}.mce-i-alignleft:before{content:"\e003"}.mce-i-aligncenter:before{content:"\e004"}.mce-i-alignright:before{content:"\e005"}.mce-i-alignjustify:before{content:"\e006"}.mce-i-cut:before{content:"\e007"}.mce-i-paste:before{content:"\e008"}.mce-i-searchreplace:before{content:"\e009"}.mce-i-bullist:before{content:"\e00a"}.mce-i-numlist:before{content:"\e00b"}.mce-i-indent:before{content:"\e00c"}.mce-i-outdent:before{content:"\e00d"}.mce-i-blockquote:before{content:"\e00e"}.mce-i-undo:before{content:"\e00f"}.mce-i-redo:before{content:"\e010"}.mce-i-link:before{content:"\e011"}.mce-i-unlink:before{content:"\e012"}.mce-i-anchor:before{content:"\e013"}.mce-i-image:before{content:"\e014"}.mce-i-media:before{content:"\e015"}.mce-i-help:before{content:"\e016"}.mce-i-code:before{content:"\e017"}.mce-i-inserttime:before{content:"\e018"}.mce-i-preview:before{content:"\e019"}.mce-i-forecolor:before{content:"\e01a"}.mce-i-backcolor:before{content:"\e01a"}.mce-i-table:before{content:"\e01b"}.mce-i-hr:before{content:"\e01c"}.mce-i-removeformat:before{content:"\e01d"}.mce-i-subscript:before{content:"\e01e"}.mce-i-superscript:before{content:"\e01f"}.mce-i-charmap:before{content:"\e020"}.mce-i-emoticons:before{content:"\e021"}.mce-i-print:before{content:"\e022"}.mce-i-fullscreen:before{content:"\e023"}.mce-i-spellchecker:before{content:"\e024"}.mce-i-nonbreaking:before{content:"\e025"}.mce-i-template:before{content:"\e026"}.mce-i-pagebreak:before{content:"\e027"}.mce-i-restoredraft:before{content:"\e028"}.mce-i-untitled:before{content:"\e029"}.mce-i-bold:before{content:"\e02a"}.mce-i-italic:before{content:"\e02b"}.mce-i-underline:before{content:"\e02c"}.mce-i-strikethrough:before{content:"\e02d"}.mce-i-visualchars:before{content:"\e02e"}.mce-i-visualblocks:before{content:"\e02e"}.mce-i-ltr:before{content:"\e02f"}.mce-i-rtl:before{content:"\e030"}.mce-i-copy:before{content:"\e031"}.mce-i-resize:before{content:"\e032"}.mce-i-browse:before{content:"\e034"}.mce-i-pastetext:before{content:"\e035"}.mce-i-checkbox:before,.mce-i-selected:before{content:"\e033"}.mce-i-selected{visibility:hidden}i.mce-i-backcolor{text-shadow:none;background:#bbb} \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/skins/studio-tmce4/fonts/readme.md b/common/static/js/vendor/tiny_mce/skins/studio-tmce4/fonts/readme.md deleted file mode 100755 index fa5d63946c5..00000000000 --- a/common/static/js/vendor/tiny_mce/skins/studio-tmce4/fonts/readme.md +++ /dev/null @@ -1 +0,0 @@ -Icons are generated and provided by the http://icomoon.io service. diff --git a/common/static/js/vendor/tiny_mce/skins/studio-tmce4/img/anchor.gif b/common/static/js/vendor/tiny_mce/skins/studio-tmce4/img/anchor.gif deleted file mode 100755 index 606348c7f53dba169a9aca7279a2a973f4b07bdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53 zcmZ?wbhEHbWM^P!XkcUjg8%>jEB<5wG8q|kKzxu40~1eAV&{y5e`l1KFoiKNSOWkz C+YCGa diff --git a/common/static/js/vendor/tiny_mce/skins/studio-tmce4/img/loader.gif b/common/static/js/vendor/tiny_mce/skins/studio-tmce4/img/loader.gif deleted file mode 100755 index c69e937232b24ea30f01c68bbd2ebc798dcecfcb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2608 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 T)6_**#cgp_+?JL9(ew3BlNF>u diff --git a/common/static/js/vendor/tiny_mce/skins/studio-tmce4/img/object.gif b/common/static/js/vendor/tiny_mce/skins/studio-tmce4/img/object.gif deleted file mode 100755 index cccd7f023fb80908cb33bb7d9604236cd21b7ae7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152 zcmV;J0B8S4Nk%w1VG#fg0J9GO<>lo+KR<78Z?v?uS65g4{r%Y3*xlXT%F4>`@9+2b z_ww@cot>Tk|Nk>HGXMYpA^8LW000jFEC2ui01*HU000C<(8)=wd#<&tyXIMjHBV`d zBSi|xsj3(;nD0kQ0aJq8eLH~x02P|t2!_J&Wqb%0io?#xD<upxn@Dup`7Ge3XH0HH G0028|K14A9 diff --git a/common/static/js/vendor/tiny_mce/skins/studio-tmce4/img/trans.gif b/common/static/js/vendor/tiny_mce/skins/studio-tmce4/img/trans.gif deleted file mode 100755 index 388486517fa8da13ebd150e8f65d5096c3e10c3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43 ncmZ?wbhEHbWMp7un7{x9ia%KxMSyG_5FaGNz{KRj$Y2csb)f_x diff --git a/common/static/js/vendor/tiny_mce/themes/modern/theme.min.js b/common/static/js/vendor/tiny_mce/themes/modern/theme.min.js deleted file mode 100644 index ced2ffc763f..00000000000 --- a/common/static/js/vendor/tiny_mce/themes/modern/theme.min.js +++ /dev/null @@ -1 +0,0 @@ -tinymce.ThemeManager.add("modern",function(e){function t(){function t(t){var i,o=[];if(t)return d(t.split(/[ ,]/),function(t){function n(){var n=e.selection;"bullist"==r&&n.selectorChanged("ul > li",function(e,n){for(var i,o=n.parents.length;o--&&(i=n.parents[o].nodeName,"OL"!=i&&"UL"!=i););t.active(e&&"UL"==i)}),"numlist"==r&&n.selectorChanged("ol > li",function(e,n){for(var i,o=n.parents.length;o--&&(i=n.parents[o].nodeName,"OL"!=i&&"UL"!=i););t.active(e&&"OL"==i)}),t.settings.stateSelector&&n.selectorChanged(t.settings.stateSelector,function(e){t.active(e)},!0),t.settings.disabledStateSelector&&n.selectorChanged(t.settings.disabledStateSelector,function(e){t.disabled(e)})}var r;"|"==t?i=null:c.has(t)?(t={type:t},u.toolbar_items_size&&(t.size=u.toolbar_items_size),o.push(t),i=null):(i||(i={type:"buttongroup",items:[]},o.push(i)),e.buttons[t]&&(r=t,t=e.buttons[r],"function"==typeof t&&(t=t()),t.type=t.type||"button",u.toolbar_items_size&&(t.size=u.toolbar_items_size),t=c.create(t),i.items.push(t),e.initialized?n():e.on("init",n)))}),n.push({type:"toolbar",layout:"flow",items:o}),!0}for(var n=[],i=1;10>i&&t(u["toolbar"+i]);i++);return n.length||t(u.toolbar||f),n}function n(){function t(t){var n;return"|"==t?{text:"|"}:n=e.menuItems[t]}function n(n){var i,o,r,s,a;if(a=tinymce.makeMap((u.removed_menuitems||"").split(/[ ,]/)),u.menu?(o=u.menu[n],s=!0):o=h[n],o){i={text:o.title},r=[],d((o.items||"").split(/[ ,]/),function(e){var n=t(e);n&&!a[e]&&r.push(t(e))}),s||d(e.menuItems,function(e){e.context==n&&("before"==e.separator&&r.push({text:"|"}),e.prependToContext?r.unshift(e):r.push(e),"after"==e.separator&&r.push({text:"|"}))});for(var l=0;l<r.length;l++)"|"==r[l].text&&(0===l||l==r.length-1)&&r.splice(l,1);if(i.menu=r,!i.menu.length)return null}return i}var i,o=[],r=[];if(u.menu)for(i in u.menu)r.push(i);else for(i in h)r.push(i);for(var s="string"==typeof u.menubar?u.menubar.split(/[ ,]/):r,a=0;a<s.length;a++){var l=s[a];l=n(l),l&&o.push(l)}return o}function i(t){function n(e){var n=t.find(e)[0];n&&n.focus()}e.shortcuts.add("Alt+F9","",function(){n("menubar")}),e.shortcuts.add("Alt+F10","",function(){n("toolbar")}),e.shortcuts.add("Alt+F11","",function(){n("elementpath")}),t.on("cancel",function(){e.focus()})}function o(t,n){function i(e){return{width:e.clientWidth,height:e.clientHeight}}var o,r,s,a;o=e.getContainer(),r=e.getContentAreaContainer().firstChild,s=i(o),a=i(r),null!==t&&(t=Math.max(u.min_width||100,t),t=Math.min(u.max_width||65535,t),m.css(o,"width",t+(s.width-a.width)),m.css(r,"width",t)),n=Math.max(u.min_height||100,n),n=Math.min(u.max_height||65535,n),m.css(r,"height",n),e.fire("ResizeEditor")}function r(t,n){var i=e.getContentAreaContainer();l.resizeTo(i.clientWidth+t,i.clientHeight+n)}function s(o){function r(){if(h&&h.moveRel&&h.visible()&&!h._fixed){var t=e.selection.getScrollContainer(),n=e.getBody(),i=0,o=0;if(t){var r=m.getPos(n),s=m.getPos(t);i=Math.max(0,s.x-r.x),o=Math.max(0,s.y-r.y)}h.fixed(!1).moveRel(n,e.rtl?["tr-br","br-tr"]:["tl-bl","bl-tl"]).moveBy(i,o)}}function s(){h&&(h.show(),r(),m.addClass(e.getBody(),"mce-edit-focus"))}function a(){h&&(h.hide(),m.removeClass(e.getBody(),"mce-edit-focus"))}function d(){return h?(h.visible()||s(),void 0):(h=l.panel=c.create({type:f?"panel":"floatpanel",classes:"tinymce tinymce-inline",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!!f,border:1,items:[u.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:n()},u.toolbar===!1?null:{type:"panel",layout:"stack",classes:"toolbar-grp",items:t()}]}),e.fire("BeforeRenderUI"),h.renderTo(f||document.body).reflow(),i(h),s(),e.on("nodeChange",r),e.on("activate",s),e.on("deactivate",a),e.nodeChanged(),void 0)}var h,f;return u.fixed_toolbar_container&&(f=m.select(u.fixed_toolbar_container)[0]),u.content_editable=!0,e.on("focus",function(){o.skinUiCss?tinymce.DOM.styleSheetLoader.load(o.skinUiCss,d,d):d()}),e.on("blur",a),e.on("remove",function(){h&&(h.remove(),h=null)}),o.skinUiCss&&tinymce.DOM.styleSheetLoader.load(o.skinUiCss),{}}function a(r){var s,a,d;return r.skinUiCss&&tinymce.DOM.loadCSS(r.skinUiCss),s=l.panel=c.create({type:"panel",classes:"tinymce",style:"visibility: hidden",layout:"stack",border:1,items:[u.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:n()},u.toolbar===!1?null:{type:"panel",layout:"stack",classes:"toolbar-grp",items:t()},{type:"panel",name:"iframe",layout:"stack",classes:"edit-area",html:"",border:"1 0 0 0"}]}),u.resize!==!1&&(a={type:"resizehandle",direction:u.resize,onResizeStart:function(){var t=e.getContentAreaContainer().firstChild;d={width:t.clientWidth,height:t.clientHeight}},onResize:function(e){"both"==u.resize?o(d.width+e.deltaX,d.height+e.deltaY):o(null,d.height+e.deltaY)}}),u.statusbar!==!1&&s.add({type:"panel",name:"statusbar",classes:"statusbar",layout:"flow",border:"1 0 0 0",items:[{type:"elementpath"},a]}),u.readonly&&s.find("*").disabled(!0),e.fire("BeforeRenderUI"),s.renderBefore(r.targetNode).reflow(),u.width&&tinymce.DOM.setStyle(s.getEl(),"width",u.width),e.on("remove",function(){s.remove(),s=null}),i(s),{iframeContainer:s.find("#iframe")[0].getEl(),editorContainer:s.getEl()}}var l=this,u=e.settings,c=tinymce.ui.Factory,d=tinymce.each,m=tinymce.DOM,h={file:{title:"File",items:"newdocument"},edit:{title:"Edit",items:"undo redo | cut copy paste pastetext | selectall"},insert:{title:"Insert",items:"|"},view:{title:"View",items:"visualaid |"},format:{title:"Format",items:"bold italic underline strikethrough superscript subscript | formats | removeformat"},table:{title:"Table"},tools:{title:"Tools"}},f="undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image";l.renderUI=function(t){var n=u.skin!==!1?u.skin||"lightgray":!1;if(n){var i=u.skin_url;i=i?e.documentBaseURI.toAbsolute(i):tinymce.baseURL+"/skins/"+n,t.skinUiCss=tinymce.Env.documentMode<=7?i+"/skin.ie7.min.css":i+"/skin.min.css",e.contentCSS.push(i+"/content"+(e.inline?".inline":"")+".min.css")}return e.on("ProgressState",function(e){l.throbber=l.throbber||new tinymce.ui.Throbber(l.panel.getEl("body")),e.state?l.throbber.show(e.time):l.throbber.hide()}),u.inline?s(t):a(t)},l.resizeTo=o,l.resizeBy=r}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/tiny_mce_popup.js b/common/static/js/vendor/tiny_mce/tiny_mce_popup.js deleted file mode 100644 index b726d1ad1a4..00000000000 --- a/common/static/js/vendor/tiny_mce/tiny_mce_popup.js +++ /dev/null @@ -1,7 +0,0 @@ - -// Uncomment and change this document.domain value if you are loading the script cross subdomains -// document.domain = 'moxiecode.com'; - -// increased setTimeout for "windowManager.resizeBy" from 10 to 100 - -var tinymce=null,tinyMCEPopup,tinyMCE;tinyMCEPopup={init:function(){var b=this,a,c;a=b.getWin();tinymce=a.tinymce;tinyMCE=a.tinyMCE;b.editor=tinymce.EditorManager.activeEditor;b.params=b.editor.windowManager.params;b.features=b.editor.windowManager.features;b.dom=b.editor.windowManager.createInstance("tinymce.dom.DOMUtils",document,{ownEvents:true,proxy:tinyMCEPopup._eventProxy});b.dom.bind(window,"ready",b._onDOMLoaded,b);if(b.features.popup_css!==false){b.dom.loadCSS(b.features.popup_css||b.editor.settings.popup_css)}b.listeners=[];b.onInit={add:function(e,d){b.listeners.push({func:e,scope:d})}};b.isWindow=!b.getWindowArg("mce_inline");b.id=b.getWindowArg("mce_window_id");b.editor.windowManager.onOpen.dispatch(b.editor.windowManager,window)},getWin:function(){return(!window.frameElement&&window.dialogArguments)||opener||parent||top},getWindowArg:function(c,b){var a=this.params[c];return tinymce.is(a)?a:b},getParam:function(b,a){return this.editor.getParam(b,a)},getLang:function(b,a){return this.editor.getLang(b,a)},execCommand:function(d,c,e,b){b=b||{};b.skip_focus=1;this.restoreSelection();return this.editor.execCommand(d,c,e,b)},resizeToInnerSize:function(){var a=this;setTimeout(function(){var b=a.dom.getViewPort(window);a.editor.windowManager.resizeBy(a.getWindowArg("mce_width")-b.w,a.getWindowArg("mce_height")-b.h,a.id||window)},100)},executeOnLoad:function(s){this.onInit.add(function(){eval(s)})},storeSelection:function(){this.editor.windowManager.bookmark=tinyMCEPopup.editor.selection.getBookmark(1)},restoreSelection:function(){var a=tinyMCEPopup;if(!a.isWindow&&tinymce.isIE){a.editor.selection.moveToBookmark(a.editor.windowManager.bookmark)}},requireLangPack:function(){var b=this,a=b.getWindowArg("plugin_url")||b.getWindowArg("theme_url");if(a&&b.editor.settings.language&&b.features.translate_i18n!==false&&b.editor.settings.language_load!==false){a+="/langs/"+b.editor.settings.language+"_dlg.js";if(!tinymce.ScriptLoader.isDone(a)){document.write('<script type="text/javascript" src="'+tinymce._addVer(a)+'"><\/script>');tinymce.ScriptLoader.markDone(a)}}},pickColor:function(b,a){this.execCommand("mceColorPicker",true,{color:document.getElementById(a).value,func:function(e){document.getElementById(a).value=e;try{document.getElementById(a).onchange()}catch(d){}}})},openBrowser:function(a,c,b){tinyMCEPopup.restoreSelection();this.editor.execCallback("file_browser_callback",a,document.getElementById(a).value,c,window)},confirm:function(b,a,c){this.editor.windowManager.confirm(b,a,c,window)},alert:function(b,a,c){this.editor.windowManager.alert(b,a,c,window)},close:function(){var a=this;function b(){a.editor.windowManager.close(window);tinymce=tinyMCE=a.editor=a.params=a.dom=a.dom.doc=null}if(tinymce.isOpera){a.getWin().setTimeout(b,0)}else{b()}},_restoreSelection:function(){var a=window.event.srcElement;if(a.nodeName=="INPUT"&&(a.type=="submit"||a.type=="button")){tinyMCEPopup.restoreSelection()}},_onDOMLoaded:function(){var b=tinyMCEPopup,d=document.title,e,c,a;if(b.features.translate_i18n!==false){c=document.body.innerHTML;if(tinymce.isIE){c=c.replace(/ (value|title|alt)=([^"][^\s>]+)/gi,' $1="$2"')}document.dir=b.editor.getParam("directionality","");if((a=b.editor.translate(c))&&a!=c){document.body.innerHTML=a}if((a=b.editor.translate(d))&&a!=d){document.title=d=a}}if(!b.editor.getParam("browser_preferred_colors",false)||!b.isWindow){b.dom.addClass(document.body,"forceColors")}document.body.style.display="";if(tinymce.isIE){document.attachEvent("onmouseup",tinyMCEPopup._restoreSelection);b.dom.add(b.dom.select("head")[0],"base",{target:"_self"})}b.restoreSelection();b.resizeToInnerSize();if(!b.isWindow){b.editor.windowManager.setTitle(window,d)}else{window.focus()}if(!tinymce.isIE&&!b.isWindow){b.dom.bind(document,"focus",function(){b.editor.windowManager.focus(b.id)})}tinymce.each(b.dom.select("select"),function(f){f.onkeydown=tinyMCEPopup._accessHandler});tinymce.each(b.listeners,function(f){f.func.call(f.scope,b.editor)});if(b.getWindowArg("mce_auto_focus",true)){window.focus();tinymce.each(document.forms,function(g){tinymce.each(g.elements,function(f){if(b.dom.hasClass(f,"mceFocus")&&!f.disabled){f.focus();return false}})})}document.onkeyup=tinyMCEPopup._closeWinKeyHandler},_accessHandler:function(a){a=a||window.event;if(a.keyCode==13||a.keyCode==32){var b=a.target||a.srcElement;if(b.onchange){b.onchange()}return tinymce.dom.Event.cancel(a)}},_closeWinKeyHandler:function(a){a=a||window.event;if(a.keyCode==27){tinyMCEPopup.close()}},_eventProxy:function(a){return function(b){tinyMCEPopup.dom.events.callNativeHandler(a,b)}}};tinyMCEPopup.init(); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/tinymce.min.js b/common/static/js/vendor/tiny_mce/tinymce.min.js deleted file mode 100644 index a2cae7b6f9f..00000000000 --- a/common/static/js/vendor/tiny_mce/tinymce.min.js +++ /dev/null @@ -1,6340 +0,0 @@ -// 4.0.16 (2014-01-31) -!function (e, t) { - "use strict"; - function n(e, t) { - for (var n, r = [], i = 0; i < e.length; ++i) { - if (n = s[e[i]] || o(e[i]), !n)throw"module definition dependecy not found: " + e[i]; - r.push(n) - } - t.apply(null, r) - } - - function r(e, r, i) { - if ("string" != typeof e)throw"invalid module definition, module id must be defined and be a string"; - if (r === t)throw"invalid module definition, dependencies must be specified"; - if (i === t)throw"invalid module definition, definition function must be specified"; - n(r, function () { - s[e] = i.apply(null, arguments) - }) - } - - function i(e) { - return!!s[e] - } - - function o(t) { - for (var n = e, r = t.split(/[.\/]/), i = 0; i < r.length; ++i) { - if (!n[r[i]])return; - n = n[r[i]] - } - return n - } - - function a(n) { - for (var r = 0; r < n.length; r++) { - for (var i = e, o = n[r], a = o.split(/[.\/]/), l = 0; l < a.length - 1; ++l)i[a[l]] === t && (i[a[l]] = {}), i = i[a[l]]; - i[a[a.length - 1]] = s[o] - } - } - - var s = {}, l = "tinymce/dom/Sizzle", c = "tinymce/html/Styles", d = "tinymce/dom/EventUtils", u = "tinymce/dom/TreeWalker", f = "tinymce/util/Tools", p = "tinymce/dom/Range", m = "tinymce/html/Entities", h = "tinymce/Env", g = "tinymce/dom/StyleSheetLoader", v = "tinymce/dom/DOMUtils", y = "tinymce/dom/ScriptLoader", b = "tinymce/AddOnManager", C = "tinymce/html/Node", x = "tinymce/html/Schema", w = "tinymce/html/SaxParser", _ = "tinymce/html/DomParser", N = "tinymce/html/Writer", E = "tinymce/html/Serializer", k = "tinymce/dom/Serializer", S = "tinymce/dom/TridentSelection", T = "tinymce/util/VK", R = "tinymce/dom/ControlSelection", A = "tinymce/dom/Selection", B = "tinymce/dom/RangeUtils", L = "tinymce/Formatter", H = "tinymce/UndoManager", M = "tinymce/EnterKey", D = "tinymce/ForceBlocks", P = "tinymce/EditorCommands", O = "tinymce/util/URI", I = "tinymce/util/Class", z = "tinymce/ui/Selector", F = "tinymce/ui/Collection", W = "tinymce/ui/DomUtils", V = "tinymce/ui/Control", U = "tinymce/ui/Factory", q = "tinymce/ui/Container", j = "tinymce/ui/DragHelper", $ = "tinymce/ui/Scrollable", K = "tinymce/ui/Panel", Y = "tinymce/ui/Movable", G = "tinymce/ui/Resizable", X = "tinymce/ui/FloatPanel", J = "tinymce/ui/KeyboardNavigation", Q = "tinymce/ui/Window", Z = "tinymce/ui/MessageBox", et = "tinymce/WindowManager", tt = "tinymce/util/Quirks", nt = "tinymce/util/Observable", rt = "tinymce/Shortcuts", it = "tinymce/Editor", ot = "tinymce/util/I18n", at = "tinymce/FocusManager", st = "tinymce/EditorManager", lt = "tinymce/LegacyInput", ct = "tinymce/util/XHR", dt = "tinymce/util/JSON", ut = "tinymce/util/JSONRequest", ft = "tinymce/util/JSONP", pt = "tinymce/util/LocalStorage", mt = "tinymce/Compat", ht = "tinymce/ui/Layout", gt = "tinymce/ui/AbsoluteLayout", vt = "tinymce/ui/Tooltip", yt = "tinymce/ui/Widget", bt = "tinymce/ui/Button", Ct = "tinymce/ui/ButtonGroup", xt = "tinymce/ui/Checkbox", wt = "tinymce/ui/PanelButton", _t = "tinymce/ui/ColorButton", Nt = "tinymce/ui/ComboBox", Et = "tinymce/ui/Path", kt = "tinymce/ui/ElementPath", St = "tinymce/ui/FormItem", Tt = "tinymce/ui/Form", Rt = "tinymce/ui/FieldSet", At = "tinymce/ui/FilePicker", Bt = "tinymce/ui/FitLayout", Lt = "tinymce/ui/FlexLayout", Ht = "tinymce/ui/FlowLayout", Mt = "tinymce/ui/FormatControls", Dt = "tinymce/ui/GridLayout", Pt = "tinymce/ui/Iframe", Ot = "tinymce/ui/Label", It = "tinymce/ui/Toolbar", zt = "tinymce/ui/MenuBar", Ft = "tinymce/ui/MenuButton", Wt = "tinymce/ui/ListBox", Vt = "tinymce/ui/MenuItem", Ut = "tinymce/ui/Menu", qt = "tinymce/ui/Radio", jt = "tinymce/ui/ResizeHandle", $t = "tinymce/ui/Spacer", Kt = "tinymce/ui/SplitButton", Yt = "tinymce/ui/StackLayout", Gt = "tinymce/ui/TabPanel", Xt = "tinymce/ui/TextBox", Jt = "tinymce/ui/Throbber"; - r(l, [], function () { - if (!window.jQuery)throw new Error("Load jQuery first"); - return jQuery.find - }), r(c, [], function () { - return function (e, t) { - function n(e, t, n, r) { - function i(e) { - return e = parseInt(e, 10).toString(16), e.length > 1 ? e : "0" + e - } - - return"#" + i(t) + i(n) + i(r) - } - - var r = /rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi, i = /(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi, o = /\s*([^:]+):\s*([^;]+);?/g, a = /\s+$/, s, l, c = {}, d, u = "\ufeff"; - for (e = e || {}, d = ("\\\" \\' \\; \\: ; : " + u).split(" "), l = 0; l < d.length; l++)c[d[l]] = u + l, c[u + l] = d[l]; - return{toHex: function (e) { - return e.replace(r, n) - }, parse: function (t) { - function s(e, t, n) { - var r, i, o, a; - if (r = h[e + "-top" + t], r && (i = h[e + "-right" + t], i && (o = h[e + "-bottom" + t], o && (a = h[e + "-left" + t])))) { - var s = [r, i, o, a]; - for (l = s.length - 1; l-- && s[l] === s[l + 1];); - l > -1 && n || (h[e + t] = -1 == l ? s[0] : s.join(" "), delete h[e + "-top" + t], delete h[e + "-right" + t], delete h[e + "-bottom" + t], delete h[e + "-left" + t]) - } - } - - function d(e) { - var t = h[e], n; - if (t) { - for (t = t.split(" "), n = t.length; n--;)if (t[n] !== t[0])return!1; - return h[e] = t[0], !0 - } - } - - function u(e, t, n, r) { - d(t) && d(n) && d(r) && (h[e] = h[t] + " " + h[n] + " " + h[r], delete h[t], delete h[n], delete h[r]) - } - - function f(e) { - return b = !0, c[e] - } - - function p(e, t) { - return b && (e = e.replace(/\uFEFF[0-9]/g, function (e) { - return c[e] - })), t || (e = e.replace(/\\([\'\";:])/g, "$1")), e - } - - function m(t, n, r, i, o, a) { - return(o = o || a) ? (o = p(o), "'" + o.replace(/\'/g, "\\'") + "'") : (n = p(n || r || i), !e.allow_script_urls && /(java|vb)script:/i.test(n.replace(/[\s\r\n]+/, "")) ? "" : (C && (n = C.call(x, n, "style")), "url('" + n.replace(/\'/g, "\\'") + "')")) - } - - var h = {}, g, v, y, b, C = e.url_converter, x = e.url_converter_scope || this; - if (t) { - for (t = t.replace(/[\u0000-\u001F]/g, ""), t = t.replace(/\\[\"\';:\uFEFF]/g, f).replace(/\"[^\"]+\"|\'[^\']+\'/g, function (e) { - return e.replace(/[;:]/g, f) - }); g = o.exec(t);) { - if (v = g[1].replace(a, "").toLowerCase(), y = g[2].replace(a, ""), v && y.length > 0) { - if (!e.allow_script_urls && ("behavior" == v || /expression\s*\(/.test(y)))continue; - "font-weight" === v && "700" === y ? y = "bold" : ("color" === v || "background-color" === v) && (y = y.toLowerCase()), y = y.replace(r, n), y = y.replace(i, m), h[v] = b ? p(y, !0) : y - } - o.lastIndex = g.index + g[0].length - } - s("border", "", !0), s("border", "-width"), s("border", "-color"), s("border", "-style"), s("padding", ""), s("margin", ""), u("border", "border-width", "border-style", "border-color"), "medium none" === h.border && delete h.border, "none" === h["border-image"] && delete h["border-image"] - } - return h - }, serialize: function (e, n) { - function r(n) { - var r, o, a, l; - if (r = t.styles[n])for (o = 0, a = r.length; a > o; o++)n = r[o], l = e[n], l !== s && l.length > 0 && (i += (i.length > 0 ? " " : "") + n + ": " + l + ";") - } - - var i = "", o, a; - if (n && t && t.styles)r("*"), r(n); else for (o in e)a = e[o], a !== s && a.length > 0 && (i += (i.length > 0 ? " " : "") + o + ": " + a + ";"); - return i - }} - } - }), r(d, [], function () { - function e(e, t, n, r) { - e.addEventListener ? e.addEventListener(t, n, r || !1) : e.attachEvent && e.attachEvent("on" + t, n) - } - - function t(e, t, n, r) { - e.removeEventListener ? e.removeEventListener(t, n, r || !1) : e.detachEvent && e.detachEvent("on" + t, n) - } - - function n(e, t) { - function n() { - return!1 - } - - function r() { - return!0 - } - - var i, o = t || {}, l; - for (i in e)s[i] || (o[i] = e[i]); - if (o.target || (o.target = o.srcElement || document), e && a.test(e.type) && e.pageX === l && e.clientX !== l) { - var c = o.target.ownerDocument || document, d = c.documentElement, u = c.body; - o.pageX = e.clientX + (d && d.scrollLeft || u && u.scrollLeft || 0) - (d && d.clientLeft || u && u.clientLeft || 0), o.pageY = e.clientY + (d && d.scrollTop || u && u.scrollTop || 0) - (d && d.clientTop || u && u.clientTop || 0) - } - return o.preventDefault = function () { - o.isDefaultPrevented = r, e && (e.preventDefault ? e.preventDefault() : e.returnValue = !1) - }, o.stopPropagation = function () { - o.isPropagationStopped = r, e && (e.stopPropagation ? e.stopPropagation() : e.cancelBubble = !0) - }, o.stopImmediatePropagation = function () { - o.isImmediatePropagationStopped = r, o.stopPropagation() - }, o.isDefaultPrevented || (o.isDefaultPrevented = n, o.isPropagationStopped = n, o.isImmediatePropagationStopped = n), o - } - - function r(n, r, i) { - function o() { - i.domLoaded || (i.domLoaded = !0, r(c)) - } - - function a() { - ("complete" === l.readyState || "interactive" === l.readyState) && (t(l, "readystatechange", a), o()) - } - - function s() { - try { - l.documentElement.doScroll("left") - } catch (e) { - return void setTimeout(s, 0) - } - o() - } - - var l = n.document, c = {type: "ready"}; - return i.domLoaded ? void r(c) : (l.addEventListener ? "complete" === l.readyState ? o() : e(n, "DOMContentLoaded", o) : (e(l, "readystatechange", a), l.documentElement.doScroll && n.self === n.top && s()), void e(n, "load", o)) - } - - function i() { - function i(e, t) { - var n, r, i, o, a = s[t]; - if (n = a && a[e.type])for (r = 0, i = n.length; i > r; r++)if (o = n[r], o && o.func.call(o.scope, e) === !1 && e.preventDefault(), e.isImmediatePropagationStopped())return - } - - var a = this, s = {}, l, c, d, u, f; - c = o + (+new Date).toString(32), u = "onmouseenter"in document.documentElement, d = "onfocusin"in document.documentElement, f = {mouseenter: "mouseover", mouseleave: "mouseout"}, l = 1, a.domLoaded = !1, a.events = s, a.bind = function (t, o, p, m) { - function h(e) { - i(n(e || _.event), g) - } - - var g, v, y, b, C, x, w, _ = window; - if (t && 3 !== t.nodeType && 8 !== t.nodeType) { - for (t[c] ? g = t[c] : (g = l++, t[c] = g, s[g] = {}), m = m || t, o = o.split(" "), y = o.length; y--;)b = o[y], x = h, C = w = !1, "DOMContentLoaded" === b && (b = "ready"), a.domLoaded && "ready" === b && "complete" == t.readyState ? p.call(m, n({type: b})) : (u || (C = f[b], C && (x = function (e) { - var t, r; - if (t = e.currentTarget, r = e.relatedTarget, r && t.contains)r = t.contains(r); else for (; r && r !== t;)r = r.parentNode; - r || (e = n(e || _.event), e.type = "mouseout" === e.type ? "mouseleave" : "mouseenter", e.target = t, i(e, g)) - })), d || "focusin" !== b && "focusout" !== b || (w = !0, C = "focusin" === b ? "focus" : "blur", x = function (e) { - e = n(e || _.event), e.type = "focus" === e.type ? "focusin" : "focusout", i(e, g) - }), v = s[g][b], v ? "ready" === b && a.domLoaded ? p({type: b}) : v.push({func: p, scope: m}) : (s[g][b] = v = [ - {func: p, scope: m} - ], v.fakeName = C, v.capture = w, v.nativeHandler = x, "ready" === b ? r(t, x, a) : e(t, C || b, x, w))); - return t = v = 0, p - } - }, a.unbind = function (e, n, r) { - var i, o, l, d, u, f; - if (!e || 3 === e.nodeType || 8 === e.nodeType)return a; - if (i = e[c]) { - if (f = s[i], n) { - for (n = n.split(" "), l = n.length; l--;)if (u = n[l], o = f[u]) { - if (r)for (d = o.length; d--;)if (o[d].func === r) { - var p = o.nativeHandler; - o = o.slice(0, d).concat(o.slice(d + 1)), o.nativeHandler = p, f[u] = o - } - r && 0 !== o.length || (delete f[u], t(e, o.fakeName || u, o.nativeHandler, o.capture)) - } - } else { - for (u in f)o = f[u], t(e, o.fakeName || u, o.nativeHandler, o.capture); - f = {} - } - for (u in f)return a; - delete s[i]; - try { - delete e[c] - } catch (m) { - e[c] = null - } - } - return a - }, a.fire = function (e, t, r) { - var o; - if (!e || 3 === e.nodeType || 8 === e.nodeType)return a; - r = n(null, r), r.type = t, r.target = e; - do o = e[c], o && i(r, o), e = e.parentNode || e.ownerDocument || e.defaultView || e.parentWindow; while (e && !r.isPropagationStopped()); - return a - }, a.clean = function (e) { - var t, n, r = a.unbind; - if (!e || 3 === e.nodeType || 8 === e.nodeType)return a; - if (e[c] && r(e), e.getElementsByTagName || (e = e.document), e && e.getElementsByTagName)for (r(e), n = e.getElementsByTagName("*"), t = n.length; t--;)e = n[t], e[c] && r(e); - return a - }, a.destroy = function () { - s = {} - }, a.cancel = function (e) { - return e && (e.preventDefault(), e.stopImmediatePropagation()), !1 - } - } - - var o = "mce-data-", a = /^(?:mouse|contextmenu)|click/, s = {keyLocation: 1, layerX: 1, layerY: 1, returnValue: 1}; - return i.Event = new i, i.Event.bind(window, "ready", function () { - }), i - }), r(u, [], function () { - return function (e, t) { - function n(e, n, r, i) { - var o, a; - if (e) { - if (!i && e[n])return e[n]; - if (e != t) { - if (o = e[r])return o; - for (a = e.parentNode; a && a != t; a = a.parentNode)if (o = a[r])return o - } - } - } - - var r = e; - this.current = function () { - return r - }, this.next = function (e) { - return r = n(r, "firstChild", "nextSibling", e) - }, this.prev = function (e) { - return r = n(r, "lastChild", "previousSibling", e) - } - } - }), r(f, [], function () { - function e(e, n) { - return n ? "array" == n && g(e) ? !0 : typeof e == n : e !== t - } - - function n(e) { - var t = [], n, r; - for (n = 0, r = e.length; r > n; n++)t[n] = e[n]; - return t - } - - function r(e, t, n) { - var r; - for (e = e || [], t = t || ",", "string" == typeof e && (e = e.split(t)), n = n || {}, r = e.length; r--;)n[e[r]] = {}; - return n - } - - function i(e, n, r) { - var i, o; - if (!e)return 0; - if (r = r || e, e.length !== t) { - for (i = 0, o = e.length; o > i; i++)if (n.call(r, e[i], i, e) === !1)return 0 - } else for (i in e)if (e.hasOwnProperty(i) && n.call(r, e[i], i, e) === !1)return 0; - return 1 - } - - function o(e, t) { - var n = []; - return i(e, function (e) { - n.push(t(e)) - }), n - } - - function a(e, t) { - var n = []; - return i(e, function (e) { - (!t || t(e)) && n.push(e) - }), n - } - - function s(e, t, n) { - var r = this, i, o, a, s, l, c = 0; - if (e = /^((static) )?([\w.]+)(:([\w.]+))?/.exec(e), a = e[3].match(/(^|\.)(\w+)$/i)[2], o = r.createNS(e[3].replace(/\.\w+$/, ""), n), !o[a]) { - if ("static" == e[2])return o[a] = t, void(this.onCreate && this.onCreate(e[2], e[3], o[a])); - t[a] || (t[a] = function () { - }, c = 1), o[a] = t[a], r.extend(o[a].prototype, t), e[5] && (i = r.resolve(e[5]).prototype, s = e[5].match(/\.(\w+)$/i)[1], l = o[a], o[a] = c ? function () { - return i[s].apply(this, arguments) - } : function () { - return this.parent = i[s], l.apply(this, arguments) - }, o[a].prototype[a] = o[a], r.each(i, function (e, t) { - o[a].prototype[t] = i[t] - }), r.each(t, function (e, t) { - i[t] ? o[a].prototype[t] = function () { - return this.parent = i[t], e.apply(this, arguments) - } : t != a && (o[a].prototype[t] = e) - })), r.each(t["static"], function (e, t) { - o[a][t] = e - }) - } - } - - function l(e, t) { - var n, r; - if (e)for (n = 0, r = e.length; r > n; n++)if (e[n] === t)return n; - return-1 - } - - function c(e, n) { - var r, i, o, a = arguments, s; - for (r = 1, i = a.length; i > r; r++) { - n = a[r]; - for (o in n)n.hasOwnProperty(o) && (s = n[o], s !== t && (e[o] = s)) - } - return e - } - - function d(e, t, n, r) { - r = r || this, e && (n && (e = e[n]), i(e, function (e, i) { - return t.call(r, e, i, n) === !1 ? !1 : void d(e, t, n, r) - })) - } - - function u(e, t) { - var n, r; - for (t = t || window, e = e.split("."), n = 0; n < e.length; n++)r = e[n], t[r] || (t[r] = {}), t = t[r]; - return t - } - - function f(e, t) { - var n, r; - for (t = t || window, e = e.split("."), n = 0, r = e.length; r > n && (t = t[e[n]], t); n++); - return t - } - - function p(t, n) { - return!t || e(t, "array") ? t : o(t.split(n || ","), h) - } - - var m = /^\s*|\s*$/g, h = function (e) { - return null === e || e === t ? "" : ("" + e).replace(m, "") - }, g = Array.isArray || function (e) { - return"[object Array]" === Object.prototype.toString.call(e) - }; - return{trim: h, isArray: g, is: e, toArray: n, makeMap: r, each: i, map: o, grep: a, inArray: l, extend: c, create: s, walk: d, createNS: u, resolve: f, explode: p} - }), r(p, [f], function (e) { - function t(n) { - function r() { - return D.createDocumentFragment() - } - - function i(e, t) { - _(z, e, t) - } - - function o(e, t) { - _(F, e, t) - } - - function a(e) { - i(e.parentNode, $(e)) - } - - function s(e) { - i(e.parentNode, $(e) + 1) - } - - function l(e) { - o(e.parentNode, $(e)) - } - - function c(e) { - o(e.parentNode, $(e) + 1) - } - - function d(e) { - e ? (M[U] = M[V], M[q] = M[W]) : (M[V] = M[U], M[W] = M[q]), M.collapsed = z - } - - function u(e) { - a(e), c(e) - } - - function f(e) { - i(e, 0), o(e, 1 === e.nodeType ? e.childNodes.length : e.nodeValue.length) - } - - function p(e, t) { - var n = M[V], r = M[W], i = M[U], o = M[q], a = t.startContainer, s = t.startOffset, l = t.endContainer, c = t.endOffset; - return 0 === e ? w(n, r, a, s) : 1 === e ? w(i, o, a, s) : 2 === e ? w(i, o, l, c) : 3 === e ? w(n, r, l, c) : void 0 - } - - function m() { - N(I) - } - - function h() { - return N(P) - } - - function g() { - return N(O) - } - - function v(e) { - var t = this[V], r = this[W], i, o; - 3 !== t.nodeType && 4 !== t.nodeType || !t.nodeValue ? (t.childNodes.length > 0 && (o = t.childNodes[r]), o ? t.insertBefore(e, o) : 3 == t.nodeType ? n.insertAfter(e, t) : t.appendChild(e)) : r ? r >= t.nodeValue.length ? n.insertAfter(e, t) : (i = t.splitText(r), t.parentNode.insertBefore(e, i)) : t.parentNode.insertBefore(e, t) - } - - function y(e) { - var t = M.extractContents(); - M.insertNode(e), e.appendChild(t), M.selectNode(e) - } - - function b() { - return j(new t(n), {startContainer: M[V], startOffset: M[W], endContainer: M[U], endOffset: M[q], collapsed: M.collapsed, commonAncestorContainer: M.commonAncestorContainer}) - } - - function C(e, t) { - var n; - if (3 == e.nodeType)return e; - if (0 > t)return e; - for (n = e.firstChild; n && t > 0;)--t, n = n.nextSibling; - return n ? n : e - } - - function x() { - return M[V] == M[U] && M[W] == M[q] - } - - function w(e, t, r, i) { - var o, a, s, l, c, d; - if (e == r)return t == i ? 0 : i > t ? -1 : 1; - for (o = r; o && o.parentNode != e;)o = o.parentNode; - if (o) { - for (a = 0, s = e.firstChild; s != o && t > a;)a++, s = s.nextSibling; - return a >= t ? -1 : 1 - } - for (o = e; o && o.parentNode != r;)o = o.parentNode; - if (o) { - for (a = 0, s = r.firstChild; s != o && i > a;)a++, s = s.nextSibling; - return i > a ? -1 : 1 - } - for (l = n.findCommonAncestor(e, r), c = e; c && c.parentNode != l;)c = c.parentNode; - for (c || (c = l), d = r; d && d.parentNode != l;)d = d.parentNode; - if (d || (d = l), c == d)return 0; - for (s = l.firstChild; s;) { - if (s == c)return-1; - if (s == d)return 1; - s = s.nextSibling - } - } - - function _(e, t, r) { - var i, o; - for (e ? (M[V] = t, M[W] = r) : (M[U] = t, M[q] = r), i = M[U]; i.parentNode;)i = i.parentNode; - for (o = M[V]; o.parentNode;)o = o.parentNode; - o == i ? w(M[V], M[W], M[U], M[q]) > 0 && M.collapse(e) : M.collapse(e), M.collapsed = x(), M.commonAncestorContainer = n.findCommonAncestor(M[V], M[U]) - } - - function N(e) { - var t, n = 0, r = 0, i, o, a, s, l, c; - if (M[V] == M[U])return E(e); - for (t = M[U], i = t.parentNode; i; t = i, i = i.parentNode) { - if (i == M[V])return k(t, e); - ++n - } - for (t = M[V], i = t.parentNode; i; t = i, i = i.parentNode) { - if (i == M[U])return S(t, e); - ++r - } - for (o = r - n, a = M[V]; o > 0;)a = a.parentNode, o--; - for (s = M[U]; 0 > o;)s = s.parentNode, o++; - for (l = a.parentNode, c = s.parentNode; l != c; l = l.parentNode, c = c.parentNode)a = l, s = c; - return T(a, s, e) - } - - function E(e) { - var t, n, i, o, a, s, l, c, d; - if (e != I && (t = r()), M[W] == M[q])return t; - if (3 == M[V].nodeType) { - if (n = M[V].nodeValue, i = n.substring(M[W], M[q]), e != O && (o = M[V], c = M[W], d = M[q] - M[W], 0 === c && d >= o.nodeValue.length - 1 ? o.parentNode.removeChild(o) : o.deleteData(c, d), M.collapse(z)), e == I)return; - return i.length > 0 && t.appendChild(D.createTextNode(i)), t - } - for (o = C(M[V], M[W]), a = M[q] - M[W]; o && a > 0;)s = o.nextSibling, l = L(o, e), t && t.appendChild(l), --a, o = s; - return e != O && M.collapse(z), t - } - - function k(e, t) { - var n, i, o, a, s, l; - if (t != I && (n = r()), i = R(e, t), n && n.appendChild(i), o = $(e), a = o - M[W], 0 >= a)return t != O && (M.setEndBefore(e), M.collapse(F)), n; - for (i = e.previousSibling; a > 0;)s = i.previousSibling, l = L(i, t), n && n.insertBefore(l, n.firstChild), --a, i = s; - return t != O && (M.setEndBefore(e), M.collapse(F)), n - } - - function S(e, t) { - var n, i, o, a, s, l; - for (t != I && (n = r()), o = A(e, t), n && n.appendChild(o), i = $(e), ++i, a = M[q] - i, o = e.nextSibling; o && a > 0;)s = o.nextSibling, l = L(o, t), n && n.appendChild(l), --a, o = s; - return t != O && (M.setStartAfter(e), M.collapse(z)), n - } - - function T(e, t, n) { - var i, o, a, s, l, c, d, u; - for (n != I && (o = r()), i = A(e, n), o && o.appendChild(i), a = e.parentNode, s = $(e), l = $(t), ++s, c = l - s, d = e.nextSibling; c > 0;)u = d.nextSibling, i = L(d, n), o && o.appendChild(i), d = u, --c; - return i = R(t, n), o && o.appendChild(i), n != O && (M.setStartAfter(e), M.collapse(z)), o - } - - function R(e, t) { - var n = C(M[U], M[q] - 1), r, i, o, a, s, l = n != M[U]; - if (n == e)return B(n, l, F, t); - for (r = n.parentNode, i = B(r, F, F, t); r;) { - for (; n;)o = n.previousSibling, a = B(n, l, F, t), t != I && i.insertBefore(a, i.firstChild), l = z, n = o; - if (r == e)return i; - n = r.previousSibling, r = r.parentNode, s = B(r, F, F, t), t != I && s.appendChild(i), i = s - } - } - - function A(e, t) { - var n = C(M[V], M[W]), r = n != M[V], i, o, a, s, l; - if (n == e)return B(n, r, z, t); - for (i = n.parentNode, o = B(i, F, z, t); i;) { - for (; n;)a = n.nextSibling, s = B(n, r, z, t), t != I && o.appendChild(s), r = z, n = a; - if (i == e)return o; - n = i.nextSibling, i = i.parentNode, l = B(i, F, z, t), t != I && l.appendChild(o), o = l - } - } - - function B(e, t, r, i) { - var o, a, s, l, c; - if (t)return L(e, i); - if (3 == e.nodeType) { - if (o = e.nodeValue, r ? (l = M[W], a = o.substring(l), s = o.substring(0, l)) : (l = M[q], a = o.substring(0, l), s = o.substring(l)), i != O && (e.nodeValue = s), i == I)return; - return c = n.clone(e, F), c.nodeValue = a, c - } - if (i != I)return n.clone(e, F) - } - - function L(e, t) { - return t != I ? t == O ? n.clone(e, z) : e : void e.parentNode.removeChild(e) - } - - function H() { - return n.create("body", null, g()).outerText - } - - var M = this, D = n.doc, P = 0, O = 1, I = 2, z = !0, F = !1, W = "startOffset", V = "startContainer", U = "endContainer", q = "endOffset", j = e.extend, $ = n.nodeIndex; - return j(M, {startContainer: D, startOffset: 0, endContainer: D, endOffset: 0, collapsed: z, commonAncestorContainer: D, START_TO_START: 0, START_TO_END: 1, END_TO_END: 2, END_TO_START: 3, setStart: i, setEnd: o, setStartBefore: a, setStartAfter: s, setEndBefore: l, setEndAfter: c, collapse: d, selectNode: u, selectNodeContents: f, compareBoundaryPoints: p, deleteContents: m, extractContents: h, cloneContents: g, insertNode: v, surroundContents: y, cloneRange: b, toStringIE: H}), M - } - - return t.prototype.toString = function () { - return this.toStringIE() - }, t - }), r(m, [f], function (e) { - function t(e) { - var t; - return t = document.createElement("div"), t.innerHTML = e, t.textContent || t.innerText || e - } - - function n(e, t) { - var n, r, i, a = {}; - if (e) { - for (e = e.split(","), t = t || 10, n = 0; n < e.length; n += 2)r = String.fromCharCode(parseInt(e[n], t)), o[r] || (i = "&" + e[n + 1] + ";", a[r] = i, a[i] = r); - return a - } - } - - var r = e.makeMap, i, o, a, s = /[&<>\"\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, l = /[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, c = /[<>&\"\']/g, d = /&(#x|#)?([\w]+);/g, u = {128: "\u20ac", 130: "\u201a", 131: "\u0192", 132: "\u201e", 133: "\u2026", 134: "\u2020", 135: "\u2021", 136: "\u02c6", 137: "\u2030", 138: "\u0160", 139: "\u2039", 140: "\u0152", 142: "\u017d", 145: "\u2018", 146: "\u2019", 147: "\u201c", 148: "\u201d", 149: "\u2022", 150: "\u2013", 151: "\u2014", 152: "\u02dc", 153: "\u2122", 154: "\u0161", 155: "\u203a", 156: "\u0153", 158: "\u017e", 159: "\u0178"}; - o = {'"': """, "'": "'", "<": "<", ">": ">", "&": "&"}, a = {"<": "<", ">": ">", "&": "&", """: '"', "'": "'"}, i = n("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro", 32); - var f = {encodeRaw: function (e, t) { - return e.replace(t ? s : l, function (e) { - return o[e] || e - }) - }, encodeAllRaw: function (e) { - return("" + e).replace(c, function (e) { - return o[e] || e - }) - }, encodeNumeric: function (e, t) { - return e.replace(t ? s : l, function (e) { - return e.length > 1 ? "&#" + (1024 * (e.charCodeAt(0) - 55296) + (e.charCodeAt(1) - 56320) + 65536) + ";" : o[e] || "&#" + e.charCodeAt(0) + ";" - }) - }, encodeNamed: function (e, t, n) { - return n = n || i, e.replace(t ? s : l, function (e) { - return o[e] || n[e] || e - }) - }, getEncodeFunc: function (e, t) { - function a(e, n) { - return e.replace(n ? s : l, function (e) { - return o[e] || t[e] || "&#" + e.charCodeAt(0) + ";" || e - }) - } - - function c(e, n) { - return f.encodeNamed(e, n, t) - } - - return t = n(t) || i, e = r(e.replace(/\+/g, ",")), e.named && e.numeric ? a : e.named ? t ? c : f.encodeNamed : e.numeric ? f.encodeNumeric : f.encodeRaw - }, decode: function (e) { - return e.replace(d, function (e, n, r) { - return n ? (r = parseInt(r, 2 === n.length ? 16 : 10), r > 65535 ? (r -= 65536, String.fromCharCode(55296 + (r >> 10), 56320 + (1023 & r))) : u[r] || String.fromCharCode(r)) : a[e] || i[e] || t(e) - }) - }}; - return f - }), r(h, [], function () { - var e = navigator, t = e.userAgent, n, r, i, o, a, s, l; - n = window.opera && window.opera.buildNumber, r = /WebKit/.test(t), i = !r && !n && /MSIE/gi.test(t) && /Explorer/gi.test(e.appName), i = i && /MSIE (\w+)\./.exec(t)[1], o = -1 == t.indexOf("Trident/") || -1 == t.indexOf("rv:") && -1 == e.appName.indexOf("Netscape") ? !1 : 11, i = i || o, a = !r && !o && /Gecko/.test(t), s = -1 != t.indexOf("Mac"), l = /(iPad|iPhone)/.test(t); - var c = !l || t.match(/AppleWebKit\/(\d*)/)[1] >= 534; - return{opera: n, webkit: r, ie: i, gecko: a, mac: s, iOS: l, contentEditable: c, transparentSrc: "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", caretAfter: 8 != i, range: window.getSelection && "Range"in window, documentMode: i ? document.documentMode || 7 : 10} - }), r(g, [], function () { - return function (e, t) { - function n(t) { - e.getElementsByTagName("head")[0].appendChild(t) - } - - function r(t, r, s) { - function l() { - for (var e = v.passed, t = e.length; t--;)e[t](); - v.status = 2, v.passed = [], v.failed = [] - } - - function c() { - for (var e = v.failed, t = e.length; t--;)e[t](); - v.status = 3, v.passed = [], v.failed = [] - } - - function d() { - var e = navigator.userAgent.match(/WebKit\/(\d*)/); - return!!(e && e[1] < 536) - } - - function u(e, t) { - e() || ((new Date).getTime() - g < a ? window.setTimeout(t, 0) : c()) - } - - function f() { - u(function () { - for (var t = e.styleSheets, n, r = t.length, i; r--;)if (n = t[r], i = n.ownerNode ? n.ownerNode : n.owningElement, i && i.id === m.id)return l(), !0 - }, f) - } - - function p() { - u(function () { - try { - var e = h.sheet.cssRules; - return l(), !!e - } catch (t) { - } - }, p) - } - - var m, h, g, v; - if (o[t] ? v = o[t] : (v = {passed: [], failed: []}, o[t] = v), r && v.passed.push(r), s && v.failed.push(s), 1 != v.status) { - if (2 == v.status)return void l(); - if (3 == v.status)return void c(); - if (v.status = 1, m = e.createElement("link"), m.rel = "stylesheet", m.type = "text/css", m.id = "u" + i++, m.async = !1, m.defer = !1, g = (new Date).getTime(), "onload"in m && !d())m.onload = f, m.onerror = c; else { - if (navigator.userAgent.indexOf("Firefox") > 0)return h = e.createElement("style"), h.textContent = '@import "' + t + '"', p(), void n(h); - f() - } - n(m), m.href = t - } - } - - var i = 0, o = {}, a; - t = t || {}, a = t.maxLoadTime || 5e3, this.load = r - } - }), r(v, [l, c, d, u, p, m, h, f, g], function (e, n, r, i, o, a, s, l, c) { - function d(e, t) { - var i = this, o; - i.doc = e, i.win = window, i.files = {}, i.counter = 0, i.stdMode = !v || e.documentMode >= 8, i.boxModel = !v || "CSS1Compat" == e.compatMode || i.stdMode, i.hasOuterHTML = "outerHTML"in e.createElement("a"), i.styleSheetLoader = new c(e), this.boundEvents = [], i.settings = t = h({keep_values: !1, hex_colors: 1}, t), i.schema = t.schema, i.styles = new n({url_converter: t.url_converter, url_converter_scope: t.url_converter_scope}, t.schema), i.fixDoc(e), i.events = t.ownEvents ? new r(t.proxy) : r.Event, o = t.schema ? t.schema.getBlockElements() : {}, i.isBlock = function (e) { - if (!e)return!1; - var t = e.nodeType; - return t ? !(1 !== t || !o[e.nodeName]) : !!o[e] - } - } - - var u = l.each, f = l.is, p = l.grep, m = l.trim, h = l.extend, g = s.webkit, v = s.ie, y = /^([a-z0-9],?)+$/i, b = /^[ \t\r\n]*$/, C = l.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom", " "); - return d.prototype = {root: null, props: {"for": "htmlFor", "class": "className", className: "className", checked: "checked", disabled: "disabled", maxlength: "maxLength", readonly: "readOnly", selected: "selected", value: "value", id: "id", name: "name", type: "type"}, fixDoc: function (e) { - var t = this.settings, n; - if (v && t.schema) { - "abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video".replace(/\w+/g, function (t) { - e.createElement(t) - }); - for (n in t.schema.getCustomElements())e.createElement(n) - } - }, clone: function (e, t) { - var n = this, r, i; - return!v || 1 !== e.nodeType || t ? e.cloneNode(t) : (i = n.doc, t ? r.firstChild : (r = i.createElement(e.nodeName), u(n.getAttribs(e), function (t) { - n.setAttrib(r, t.nodeName, n.getAttrib(e, t.nodeName)) - }), r)) - }, getRoot: function () { - var e = this; - return e.get(e.settings.root_element) || e.doc.body - }, getViewPort: function (e) { - var t, n; - return e = e ? e : this.win, t = e.document, n = this.boxModel ? t.documentElement : t.body, {x: e.pageXOffset || n.scrollLeft, y: e.pageYOffset || n.scrollTop, w: e.innerWidth || n.clientWidth, h: e.innerHeight || n.clientHeight} - }, getRect: function (e) { - var t = this, n, r; - return e = t.get(e), n = t.getPos(e), r = t.getSize(e), {x: n.x, y: n.y, w: r.w, h: r.h} - }, getSize: function (e) { - var t = this, n, r; - return e = t.get(e), n = t.getStyle(e, "width"), r = t.getStyle(e, "height"), -1 === n.indexOf("px") && (n = 0), -1 === r.indexOf("px") && (r = 0), {w: parseInt(n, 10) || e.offsetWidth || e.clientWidth, h: parseInt(r, 10) || e.offsetHeight || e.clientHeight} - }, getParent: function (e, t, n) { - return this.getParents(e, t, n, !1) - }, getParents: function (e, n, r, i) { - var o = this, a, s = []; - for (e = o.get(e), i = i === t, r = r || ("BODY" != o.getRoot().nodeName ? o.getRoot().parentNode : null), f(n, "string") && (a = n, n = "*" === n ? function (e) { - return 1 == e.nodeType - } : function (e) { - return o.is(e, a) - }); e && e != r && e.nodeType && 9 !== e.nodeType;) { - if (!n || n(e)) { - if (!i)return e; - s.push(e) - } - e = e.parentNode - } - return i ? s : null - }, get: function (e) { - var t; - return e && this.doc && "string" == typeof e && (t = e, e = this.doc.getElementById(e), e && e.id !== t) ? this.doc.getElementsByName(t)[1] : e - }, getNext: function (e, t) { - return this._findSib(e, t, "nextSibling") - }, getPrev: function (e, t) { - return this._findSib(e, t, "previousSibling") - }, select: function (t, n) { - var r = this; - return e(t, r.get(n) || r.get(r.settings.root_element) || r.doc, []) - }, is: function (n, r) { - var i; - if (n.length === t) { - if ("*" === r)return 1 == n.nodeType; - if (y.test(r)) { - for (r = r.toLowerCase().split(/,/), n = n.nodeName.toLowerCase(), i = r.length - 1; i >= 0; i--)if (r[i] == n)return!0; - return!1 - } - } - return n.nodeType && 1 != n.nodeType ? !1 : e.matches(r, n.nodeType ? [n] : n).length > 0 - }, add: function (e, t, n, r, i) { - var o = this; - return this.run(e, function (e) { - var a; - return a = f(t, "string") ? o.doc.createElement(t) : t, o.setAttribs(a, n), r && (r.nodeType ? a.appendChild(r) : o.setHTML(a, r)), i ? a : e.appendChild(a) - }) - }, create: function (e, t, n) { - return this.add(this.doc.createElement(e), e, t, n, 1) - }, createHTML: function (e, t, n) { - var r = "", i; - r += "<" + e; - for (i in t)t.hasOwnProperty(i) && null !== t[i] && (r += " " + i + '="' + this.encode(t[i]) + '"'); - return"undefined" != typeof n ? r + ">" + n + "</" + e + ">" : r + " />" - }, createFragment: function (e) { - var t, n, r = this.doc, i; - for (i = r.createElement("div"), t = r.createDocumentFragment(), e && (i.innerHTML = e); n = i.firstChild;)t.appendChild(n); - return t - }, remove: function (e, t) { - return this.run(e, function (e) { - var n, r = e.parentNode; - if (!r)return null; - if (t)for (; n = e.firstChild;)!v || 3 !== n.nodeType || n.nodeValue ? r.insertBefore(n, e) : e.removeChild(n); - return r.removeChild(e) - }) - }, setStyle: function (e, t, n) { - return this.run(e, function (e) { - var r = this, i, o; - if (t)if ("string" == typeof t) { - i = e.style, t = t.replace(/-(\D)/g, function (e, t) { - return t.toUpperCase() - }), "number" != typeof n || C[t] || (n += "px"), "opacity" === t && e.runtimeStyle && "undefined" == typeof e.runtimeStyle.opacity && (i.filter = "" === n ? "" : "alpha(opacity=" + 100 * n + ")"), "float" == t && (t = "cssFloat"in e.style ? "cssFloat" : "styleFloat"); - try { - i[t] = n - } catch (a) { - } - r.settings.update_styles && e.removeAttribute("data-mce-style") - } else for (o in t)r.setStyle(e, o, t[o]) - }) - }, getStyle: function (e, n, r) { - if (e = this.get(e)) { - if (this.doc.defaultView && r) { - n = n.replace(/[A-Z]/g, function (e) { - return"-" + e - }); - try { - return this.doc.defaultView.getComputedStyle(e, null).getPropertyValue(n) - } catch (i) { - return null - } - } - return n = n.replace(/-(\D)/g, function (e, t) { - return t.toUpperCase() - }), "float" == n && (n = v ? "styleFloat" : "cssFloat"), e.currentStyle && r ? e.currentStyle[n] : e.style ? e.style[n] : t - } - }, setStyles: function (e, t) { - this.setStyle(e, t) - }, css: function (e, t, n) { - this.setStyle(e, t, n) - }, removeAllAttribs: function (e) { - return this.run(e, function (e) { - var t, n = e.attributes; - for (t = n.length - 1; t >= 0; t--)e.removeAttributeNode(n.item(t)) - }) - }, setAttrib: function (e, t, n) { - var r = this; - if (e && t)return this.run(e, function (e) { - var i = r.settings, o = e.getAttribute(t); - if (null !== n)switch (t) { - case"style": - if (!f(n, "string"))return void u(n, function (t, n) { - r.setStyle(e, n, t) - }); - i.keep_values && (n ? e.setAttribute("data-mce-style", n, 2) : e.removeAttribute("data-mce-style", 2)), e.style.cssText = n; - break; - case"class": - e.className = n || ""; - break; - case"src": - case"href": - i.keep_values && (i.url_converter && (n = i.url_converter.call(i.url_converter_scope || r, n, t, e)), r.setAttrib(e, "data-mce-" + t, n, 2)); - break; - case"shape": - e.setAttribute("data-mce-style", n) - } - f(n) && null !== n && 0 !== n.length ? e.setAttribute(t, "" + n, 2) : e.removeAttribute(t, 2), o != n && i.onSetAttrib && i.onSetAttrib({attrElm: e, attrName: t, attrValue: n}) - }) - }, setAttribs: function (e, t) { - var n = this; - return this.run(e, function (e) { - u(t, function (t, r) { - n.setAttrib(e, r, t) - }) - }) - }, getAttrib: function (e, t, n) { - var r, i = this, o; - if (e = i.get(e), !e || 1 !== e.nodeType)return n === o ? !1 : n; - if (f(n) || (n = ""), /^(src|href|style|coords|shape)$/.test(t) && (r = e.getAttribute("data-mce-" + t)))return r; - if (v && i.props[t] && (r = e[i.props[t]], r = r && r.nodeValue ? r.nodeValue : r), r || (r = e.getAttribute(t, 2)), /^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(t))return e[i.props[t]] === !0 && "" === r ? t : r ? t : ""; - if ("FORM" === e.nodeName && e.getAttributeNode(t))return e.getAttributeNode(t).nodeValue; - if ("style" === t && (r = r || e.style.cssText, r && (r = i.serializeStyle(i.parseStyle(r), e.nodeName), i.settings.keep_values && e.setAttribute("data-mce-style", r))), g && "class" === t && r && (r = r.replace(/(apple|webkit)\-[a-z\-]+/gi, "")), v)switch (t) { - case"rowspan": - case"colspan": - 1 === r && (r = ""); - break; - case"size": - ("+0" === r || 20 === r || 0 === r) && (r = ""); - break; - case"width": - case"height": - case"vspace": - case"checked": - case"disabled": - case"readonly": - 0 === r && (r = ""); - break; - case"hspace": - -1 === r && (r = ""); - break; - case"maxlength": - case"tabindex": - (32768 === r || 2147483647 === r || "32768" === r) && (r = ""); - break; - case"multiple": - case"compact": - case"noshade": - case"nowrap": - return 65535 === r ? t : n; - case"shape": - r = r.toLowerCase(); - break; - default: - 0 === t.indexOf("on") && r && (r = ("" + r).replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/, "$1")) - } - return r !== o && null !== r && "" !== r ? "" + r : n - }, getPos: function (e, t) { - var n = this, r = 0, i = 0, o, a = n.doc, s; - if (e = n.get(e), t = t || a.body, e) { - if (t === a.body && e.getBoundingClientRect)return s = e.getBoundingClientRect(), t = n.boxModel ? a.documentElement : a.body, r = s.left + (a.documentElement.scrollLeft || a.body.scrollLeft) - t.clientLeft, i = s.top + (a.documentElement.scrollTop || a.body.scrollTop) - t.clientTop, {x: r, y: i}; - for (o = e; o && o != t && o.nodeType;)r += o.offsetLeft || 0, i += o.offsetTop || 0, o = o.offsetParent; - for (o = e.parentNode; o && o != t && o.nodeType;)r -= o.scrollLeft || 0, i -= o.scrollTop || 0, o = o.parentNode - } - return{x: r, y: i} - }, parseStyle: function (e) { - return this.styles.parse(e) - }, serializeStyle: function (e, t) { - return this.styles.serialize(e, t) - }, addStyle: function (e) { - var t = this, n = t.doc, r, i; - if (t !== d.DOM && n === document) { - var o = d.DOM.addedStyles; - if (o = o || [], o[e])return; - o[e] = !0, d.DOM.addedStyles = o - } - i = n.getElementById("mceDefaultStyles"), i || (i = n.createElement("style"), i.id = "mceDefaultStyles", i.type = "text/css", r = n.getElementsByTagName("head")[0], r.firstChild ? r.insertBefore(i, r.firstChild) : r.appendChild(i)), i.styleSheet ? i.styleSheet.cssText += e : i.appendChild(n.createTextNode(e)) - }, loadCSS: function (e) { - var t = this, n = t.doc, r; - return t !== d.DOM && n === document ? void d.DOM.loadCSS(e) : (e || (e = ""), r = n.getElementsByTagName("head")[0], void u(e.split(","), function (e) { - var i; - t.files[e] || (t.files[e] = !0, i = t.create("link", {rel: "stylesheet", href: e}), v && n.documentMode && n.recalc && (i.onload = function () { - n.recalc && n.recalc(), i.onload = null - }), r.appendChild(i)) - })) - }, addClass: function (e, t) { - return this.run(e, function (e) { - var n; - return t ? this.hasClass(e, t) ? e.className : (n = this.removeClass(e, t), e.className = n = ("" !== n ? n + " " : "") + t, n) : 0 - }) - }, removeClass: function (e, t) { - var n = this, r; - return n.run(e, function (e) { - var i; - return n.hasClass(e, t) ? (r || (r = new RegExp("(^|\\s+)" + t + "(\\s+|$)", "g")), i = e.className.replace(r, " "), i = m(" " != i ? i : ""), e.className = i, i || (e.removeAttribute("class"), e.removeAttribute("className")), i) : e.className - }) - }, hasClass: function (e, t) { - return e = this.get(e), e && t ? -1 !== (" " + e.className + " ").indexOf(" " + t + " ") : !1 - }, toggleClass: function (e, n, r) { - r = r === t ? !this.hasClass(e, n) : r, this.hasClass(e, n) !== r && (r ? this.addClass(e, n) : this.removeClass(e, n)) - }, show: function (e) { - return this.setStyle(e, "display", "block") - }, hide: function (e) { - return this.setStyle(e, "display", "none") - }, isHidden: function (e) { - return e = this.get(e), !e || "none" == e.style.display || "none" == this.getStyle(e, "display") - }, uniqueId: function (e) { - return(e ? e : "mce_") + this.counter++ - }, setHTML: function (e, t) { - var n = this; - return n.run(e, function (e) { - if (v) { - for (; e.firstChild;)e.removeChild(e.firstChild); - try { - e.innerHTML = "<br />" + t, e.removeChild(e.firstChild) - } catch (r) { - var i = n.create("div"); - i.innerHTML = "<br />" + t, u(p(i.childNodes), function (t, n) { - n && e.canHaveHTML && e.appendChild(t) - }) - } - } else e.innerHTML = t; - return t - }) - }, getOuterHTML: function (e) { - var t, n = this; - return(e = n.get(e)) ? 1 === e.nodeType && n.hasOuterHTML ? e.outerHTML : (t = (e.ownerDocument || n.doc).createElement("body"), t.appendChild(e.cloneNode(!0)), t.innerHTML) : null - }, setOuterHTML: function (e, t, n) { - var r = this; - return r.run(e, function (e) { - function i() { - var i, o; - for (o = n.createElement("body"), o.innerHTML = t, i = o.lastChild; i;)r.insertAfter(i.cloneNode(!0), e), i = i.previousSibling; - r.remove(e) - } - - if (1 == e.nodeType)if (n = n || e.ownerDocument || r.doc, v)try { - 1 == e.nodeType && r.hasOuterHTML ? e.outerHTML = t : i() - } catch (o) { - i() - } else i() - }) - }, decode: a.decode, encode: a.encodeAllRaw, insertAfter: function (e, t) { - return t = this.get(t), this.run(e, function (e) { - var n, r; - return n = t.parentNode, r = t.nextSibling, r ? n.insertBefore(e, r) : n.appendChild(e), e - }) - }, replace: function (e, t, n) { - var r = this; - return r.run(t, function (t) { - return f(t, "array") && (e = e.cloneNode(!0)), n && u(p(t.childNodes), function (t) { - e.appendChild(t) - }), t.parentNode.replaceChild(e, t) - }) - }, rename: function (e, t) { - var n = this, r; - return e.nodeName != t.toUpperCase() && (r = n.create(t), u(n.getAttribs(e), function (t) { - n.setAttrib(r, t.nodeName, n.getAttrib(e, t.nodeName)) - }), n.replace(r, e, 1)), r || e - }, findCommonAncestor: function (e, t) { - for (var n = e, r; n;) { - for (r = t; r && n != r;)r = r.parentNode; - if (n == r)break; - n = n.parentNode - } - return!n && e.ownerDocument ? e.ownerDocument.documentElement : n - }, toHex: function (e) { - return this.styles.toHex(l.trim(e)) - }, run: function (e, t, n) { - var r = this, i; - return"string" == typeof e && (e = r.get(e)), e ? (n = n || this, e.nodeType || !e.length && 0 !== e.length ? t.call(n, e) : (i = [], u(e, function (e, o) { - e && ("string" == typeof e && (e = r.get(e)), i.push(t.call(n, e, o))) - }), i)) : !1 - }, getAttribs: function (e) { - var t; - if (e = this.get(e), !e)return[]; - if (v) { - if (t = [], "OBJECT" == e.nodeName)return e.attributes; - "OPTION" === e.nodeName && this.getAttrib(e, "selected") && t.push({specified: 1, nodeName: "selected"}); - var n = /<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi; - return e.cloneNode(!1).outerHTML.replace(n, "").replace(/[\w:\-]+/gi, function (e) { - t.push({specified: 1, nodeName: e}) - }), t - } - return e.attributes - }, isEmpty: function (e, t) { - var n = this, r, o, a, s, l, c = 0; - if (e = e.firstChild) { - s = new i(e, e.parentNode), t = t || n.schema ? n.schema.getNonEmptyElements() : null; - do { - if (a = e.nodeType, 1 === a) { - if (e.getAttribute("data-mce-bogus"))continue; - if (l = e.nodeName.toLowerCase(), t && t[l]) { - if ("br" === l) { - c++; - continue - } - return!1 - } - for (o = n.getAttribs(e), r = e.attributes.length; r--;)if (l = e.attributes[r].nodeName, "name" === l || "data-mce-bookmark" === l)return!1 - } - if (8 == a)return!1; - if (3 === a && !b.test(e.nodeValue))return!1 - } while (e = s.next()) - } - return 1 >= c - }, createRng: function () { - var e = this.doc; - return e.createRange ? e.createRange() : new o(this) - }, nodeIndex: function (e, t) { - var n = 0, r, i, o; - if (e)for (r = e.nodeType, e = e.previousSibling, i = e; e; e = e.previousSibling)o = e.nodeType, (!t || 3 != o || o != r && e.nodeValue.length) && (n++, r = o); - return n - }, split: function (e, t, n) { - function r(e) { - function t(e) { - var t = e.previousSibling && "SPAN" == e.previousSibling.nodeName, n = e.nextSibling && "SPAN" == e.nextSibling.nodeName; - return t && n - } - - var n, o = e.childNodes, a = e.nodeType; - if (1 != a || "bookmark" != e.getAttribute("data-mce-type")) { - for (n = o.length - 1; n >= 0; n--)r(o[n]); - if (9 != a) { - if (3 == a && e.nodeValue.length > 0) { - var s = m(e.nodeValue).length; - if (!i.isBlock(e.parentNode) || s > 0 || 0 === s && t(e))return - } else if (1 == a && (o = e.childNodes, 1 == o.length && o[0] && 1 == o[0].nodeType && "bookmark" == o[0].getAttribute("data-mce-type") && e.parentNode.insertBefore(o[0], e), o.length || /^(br|hr|input|img)$/i.test(e.nodeName)))return; - i.remove(e) - } - return e - } - } - - var i = this, o = i.createRng(), a, s, l; - return e && t ? (o.setStart(e.parentNode, i.nodeIndex(e)), o.setEnd(t.parentNode, i.nodeIndex(t)), a = o.extractContents(), o = i.createRng(), o.setStart(t.parentNode, i.nodeIndex(t) + 1), o.setEnd(e.parentNode, i.nodeIndex(e) + 1), s = o.extractContents(), l = e.parentNode, l.insertBefore(r(a), e), n ? l.replaceChild(n, t) : l.insertBefore(t, e), l.insertBefore(r(s), e), i.remove(e), n || t) : void 0 - }, bind: function (e, t, n, r) { - var i = this; - if (l.isArray(e)) { - for (var o = e.length; o--;)e[o] = i.bind(e[o], t, n, r); - return e - } - return!i.settings.collect || e !== i.doc && e !== i.win || i.boundEvents.push([e, t, n, r]), i.events.bind(e, t, n, r || i) - }, unbind: function (e, t, n) { - var r = this, i; - if (l.isArray(e)) { - for (i = e.length; i--;)e[i] = r.unbind(e[i], t, n); - return e - } - if (r.boundEvents && (e === r.doc || e === r.win))for (i = r.boundEvents.length; i--;) { - var o = r.boundEvents[i]; - e != o[0] || t && t != o[1] || n && n != o[2] || this.events.unbind(o[0], o[1], o[2]) - } - return this.events.unbind(e, t, n) - }, fire: function (e, t, n) { - return this.events.fire(e, t, n) - }, getContentEditable: function (e) { - var t; - return 1 != e.nodeType ? null : (t = e.getAttribute("data-mce-contenteditable"), t && "inherit" !== t ? t : "inherit" !== e.contentEditable ? e.contentEditable : null) - }, destroy: function () { - var t = this; - if (t.boundEvents) { - for (var n = t.boundEvents.length; n--;) { - var r = t.boundEvents[n]; - this.events.unbind(r[0], r[1], r[2]) - } - t.boundEvents = null - } - e.setDocument && e.setDocument(), t.win = t.doc = t.root = t.events = t.frag = null - }, dumpRng: function (e) { - return"startContainer: " + e.startContainer.nodeName + ", startOffset: " + e.startOffset + ", endContainer: " + e.endContainer.nodeName + ", endOffset: " + e.endOffset - }, _findSib: function (e, t, n) { - var r = this, i = t; - if (e)for ("string" == typeof i && (i = function (e) { - return r.is(e, t) - }), e = e[n]; e; e = e[n])if (i(e))return e; - return null - }}, d.DOM = new d(document), d - }), r(y, [v, f], function (e, t) { - function n() { - function e(e, t) { - function n() { - o.remove(s), a && (a.onreadystatechange = a.onload = a = null), t() - } - - function i() { - "undefined" != typeof console && console.log && console.log("Failed to load: " + e) - } - - var o = r, a, s; - s = o.uniqueId(), a = document.createElement("script"), a.id = s, a.type = "text/javascript", a.src = e, "onreadystatechange"in a ? a.onreadystatechange = function () { - /loaded|complete/.test(a.readyState) && n() - } : a.onload = n, a.onerror = i, (document.getElementsByTagName("head")[0] || document.body).appendChild(a) - } - - var t = 0, n = 1, a = 2, s = {}, l = [], c = {}, d = [], u = 0, f; - this.isDone = function (e) { - return s[e] == a - }, this.markDone = function (e) { - s[e] = a - }, this.add = this.load = function (e, n, r) { - var i = s[e]; - i == f && (l.push(e), s[e] = t), n && (c[e] || (c[e] = []), c[e].push({func: n, scope: r || this})) - }, this.loadQueue = function (e, t) { - this.loadScripts(l, e, t) - }, this.loadScripts = function (t, r, l) { - function p(e) { - i(c[e], function (e) { - e.func.call(e.scope) - }), c[e] = f - } - - var m; - d.push({func: r, scope: l || this}), (m = function () { - var r = o(t); - t.length = 0, i(r, function (t) { - return s[t] == a ? void p(t) : void(s[t] != n && (s[t] = n, u++, e(t, function () { - s[t] = a, u--, p(t), m() - }))) - }), u || (i(d, function (e) { - e.func.call(e.scope) - }), d.length = 0) - })() - } - } - - var r = e.DOM, i = t.each, o = t.grep; - return n.ScriptLoader = new n, n - }), r(b, [y, f], function (e, n) { - function r() { - var e = this; - e.items = [], e.urls = {}, e.lookup = {} - } - - var i = n.each; - return r.prototype = {get: function (e) { - return this.lookup[e] ? this.lookup[e].instance : t - }, dependencies: function (e) { - var t; - return this.lookup[e] && (t = this.lookup[e].dependencies), t || [] - }, requireLangPack: function (t, n) { - if (r.language && r.languageLoad !== !1) { - if (n && new RegExp("([, ]|\\b)" + r.language + "([, ]|\\b)").test(n) === !1)return; - e.ScriptLoader.add(this.urls[t] + "/langs/" + r.language + ".js") - } - }, add: function (e, t, n) { - return this.items.push(t), this.lookup[e] = {instance: t, dependencies: n}, t - }, createUrl: function (e, t) { - return"object" == typeof t ? t : {prefix: e.prefix, resource: t, suffix: e.suffix} - }, addComponents: function (t, n) { - var r = this.urls[t]; - i(n, function (t) { - e.ScriptLoader.add(r + "/" + t) - }) - }, load: function (n, o, a, s) { - function l() { - var r = c.dependencies(n); - i(r, function (e) { - var n = c.createUrl(o, e); - c.load(n.resource, n, t, t) - }), a && a.call(s ? s : e) - } - - var c = this, d = o; - c.urls[n] || ("object" == typeof o && (d = o.prefix + o.resource + o.suffix), 0 !== d.indexOf("/") && -1 == d.indexOf("://") && (d = r.baseURL + "/" + d), c.urls[n] = d.substring(0, d.lastIndexOf("/")), c.lookup[n] ? l() : e.ScriptLoader.add(d, l, s)) - }}, r.PluginManager = new r, r.ThemeManager = new r, r - }), r(C, [], function () { - function e(e, t, n) { - var r, i, o = n ? "lastChild" : "firstChild", a = n ? "prev" : "next"; - if (e[o])return e[o]; - if (e !== t) { - if (r = e[a])return r; - for (i = e.parent; i && i !== t; i = i.parent)if (r = i[a])return r - } - } - - function t(e, t) { - this.name = e, this.type = t, 1 === t && (this.attributes = [], this.attributes.map = {}) - } - - var n = /^[ \t\r\n]*$/, r = {"#text": 3, "#comment": 8, "#cdata": 4, "#pi": 7, "#doctype": 10, "#document-fragment": 11}; - return t.prototype = {replace: function (e) { - var t = this; - return e.parent && e.remove(), t.insert(e, t), t.remove(), t - }, attr: function (e, t) { - var n = this, r, i, o; - if ("string" != typeof e) { - for (i in e)n.attr(i, e[i]); - return n - } - if (r = n.attributes) { - if (t !== o) { - if (null === t) { - if (e in r.map)for (delete r.map[e], i = r.length; i--;)if (r[i].name === e)return r = r.splice(i, 1), n; - return n - } - if (e in r.map) { - for (i = r.length; i--;)if (r[i].name === e) { - r[i].value = t; - break - } - } else r.push({name: e, value: t}); - return r.map[e] = t, n - } - return r.map[e] - } - }, clone: function () { - var e = this, n = new t(e.name, e.type), r, i, o, a, s; - if (o = e.attributes) { - for (s = [], s.map = {}, r = 0, i = o.length; i > r; r++)a = o[r], "id" !== a.name && (s[s.length] = {name: a.name, value: a.value}, s.map[a.name] = a.value); - n.attributes = s - } - return n.value = e.value, n.shortEnded = e.shortEnded, n - }, wrap: function (e) { - var t = this; - return t.parent.insert(e, t), e.append(t), t - }, unwrap: function () { - var e = this, t, n; - for (t = e.firstChild; t;)n = t.next, e.insert(t, e, !0), t = n; - e.remove() - }, remove: function () { - var e = this, t = e.parent, n = e.next, r = e.prev; - return t && (t.firstChild === e ? (t.firstChild = n, n && (n.prev = null)) : r.next = n, t.lastChild === e ? (t.lastChild = r, r && (r.next = null)) : n.prev = r, e.parent = e.next = e.prev = null), e - }, append: function (e) { - var t = this, n; - return e.parent && e.remove(), n = t.lastChild, n ? (n.next = e, e.prev = n, t.lastChild = e) : t.lastChild = t.firstChild = e, e.parent = t, e - }, insert: function (e, t, n) { - var r; - return e.parent && e.remove(), r = t.parent || this, n ? (t === r.firstChild ? r.firstChild = e : t.prev.next = e, e.prev = t.prev, e.next = t, t.prev = e) : (t === r.lastChild ? r.lastChild = e : t.next.prev = e, e.next = t.next, e.prev = t, t.next = e), e.parent = r, e - }, getAll: function (t) { - var n = this, r, i = []; - for (r = n.firstChild; r; r = e(r, n))r.name === t && i.push(r); - return i - }, empty: function () { - var t = this, n, r, i; - if (t.firstChild) { - for (n = [], i = t.firstChild; i; i = e(i, t))n.push(i); - for (r = n.length; r--;)i = n[r], i.parent = i.firstChild = i.lastChild = i.next = i.prev = null - } - return t.firstChild = t.lastChild = null, t - }, isEmpty: function (t) { - var r = this, i = r.firstChild, o, a; - if (i)do { - if (1 === i.type) { - if (i.attributes.map["data-mce-bogus"])continue; - if (t[i.name])return!1; - for (o = i.attributes.length; o--;)if (a = i.attributes[o].name, "name" === a || 0 === a.indexOf("data-mce-"))return!1 - } - if (8 === i.type)return!1; - if (3 === i.type && !n.test(i.value))return!1 - } while (i = e(i, r)); - return!0 - }, walk: function (t) { - return e(this, null, t) - }}, t.create = function (e, n) { - var i, o; - if (i = new t(e, r[e] || 1), n)for (o in n)i.attr(o, n[o]); - return i - }, t - }), r(x, [f], function (e) { - function t(e, t) { - return e ? e.split(t || " ") : [] - } - - function n(e) { - function n(e, n, r) { - function i(e) { - var t = {}, n, r; - for (n = 0, r = e.length; r > n; n++)t[e[n]] = {}; - return t - } - - var o, l, c, d = arguments; - for (r = r || [], n = n || "", "string" == typeof r && (r = t(r)), l = 3; l < d.length; l++)"string" == typeof d[l] && (d[l] = t(d[l])), r.push.apply(r, d[l]); - for (e = t(e), o = e.length; o--;)c = [].concat(s, t(n)), a[e[o]] = {attributes: i(c), attributesOrder: c, children: i(r)} - } - - function i(e, n) { - var r, i, o, s; - for (e = t(e), r = e.length, n = t(n); r--;)for (i = a[e[r]], o = 0, s = n.length; s > o; o++)i.attributes[n[o]] = {}, i.attributesOrder.push(n[o]) - } - - var a = {}, s, l, c, d, u, f, p; - return r[e] ? r[e] : (s = t("id accesskey class dir lang style tabindex title"), l = t("onabort onblur oncancel oncanplay oncanplaythrough onchange onclick onclose oncontextmenu oncuechange ondblclick ondrag ondragend ondragenter ondragleave ondragover ondragstart ondrop ondurationchange onemptied onended onerror onfocus oninput oninvalid onkeydown onkeypress onkeyup onload onloadeddata onloadedmetadata onloadstart onmousedown onmousemove onmouseout onmouseover onmouseup onmousewheel onpause onplay onplaying onprogress onratechange onreset onscroll onseeked onseeking onseeking onselect onshow onstalled onsubmit onsuspend ontimeupdate onvolumechange onwaiting"), c = t("address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul"), d = t("a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd label map noscript object q s samp script select small span strong sub sup textarea u var #text #comment"), "html4" != e && (s.push.apply(s, t("contenteditable contextmenu draggable dropzone hidden spellcheck translate")), c.push.apply(c, t("article aside details dialog figure header footer hgroup section nav")), d.push.apply(d, t("audio canvas command datalist mark meter output progress time wbr video ruby bdi keygen"))), "html5-strict" != e && (s.push("xml:lang"), p = t("acronym applet basefont big font strike tt"), d.push.apply(d, p), o(p, function (e) { - n(e, "", d) - }), f = t("center dir isindex noframes"), c.push.apply(c, f), u = [].concat(c, d), o(f, function (e) { - n(e, "", u) - })), u = u || [].concat(c, d), n("html", "manifest", "head body"), n("head", "", "base command link meta noscript script style title"), n("title hr noscript br"), n("base", "href target"), n("link", "href rel media hreflang type sizes hreflang"), n("meta", "name http-equiv content charset"), n("style", "media type scoped"), n("script", "src async defer type charset"), n("body", "onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload", u), n("address dt dd div caption", "", u), n("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn", "", d), n("blockquote", "cite", u), n("ol", "reversed start type", "li"), n("ul", "", "li"), n("li", "value", u), n("dl", "", "dt dd"), n("a", "href target rel media hreflang type", d), n("q", "cite", d), n("ins del", "cite datetime", u), n("img", "src alt usemap ismap width height"), n("iframe", "src name width height", u), n("embed", "src type width height"), n("object", "data type typemustmatch name usemap form width height", u, "param"), n("param", "name value"), n("map", "name", u, "area"), n("area", "alt coords shape href target rel media hreflang type"), n("table", "border", "caption colgroup thead tfoot tbody tr" + ("html4" == e ? " col" : "")), n("colgroup", "span", "col"), n("col", "span"), n("tbody thead tfoot", "", "tr"), n("tr", "", "td th"), n("td", "colspan rowspan headers", u), n("th", "colspan rowspan headers scope abbr", u), n("form", "accept-charset action autocomplete enctype method name novalidate target", u), n("fieldset", "disabled form name", u, "legend"), n("label", "form for", d), n("input", "accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern readonly required size src step type value width"), n("button", "disabled form formaction formenctype formmethod formnovalidate formtarget name type value", "html4" == e ? u : d), n("select", "disabled form multiple name required size", "option optgroup"), n("optgroup", "disabled label", "option"), n("option", "disabled label selected value"), n("textarea", "cols dirname disabled form maxlength name readonly required rows wrap"), n("menu", "type label", u, "li"), n("noscript", "", u), "html4" != e && (n("wbr"), n("ruby", "", d, "rt rp"), n("figcaption", "", u), n("mark rt rp summary bdi", "", d), n("canvas", "width height", u), n("video", "src crossorigin poster preload autoplay mediagroup loop muted controls width height", u, "track source"), n("audio", "src crossorigin preload autoplay mediagroup loop muted controls", u, "track source"), n("source", "src type media"), n("track", "kind src srclang label default"), n("datalist", "", d, "option"), n("article section nav aside header footer", "", u), n("hgroup", "", "h1 h2 h3 h4 h5 h6"), n("figure", "", u, "figcaption"), n("time", "datetime", d), n("dialog", "open", u), n("command", "type label icon disabled checked radiogroup command"), n("output", "for form name", d), n("progress", "value max", d), n("meter", "value min max low high optimum", d), n("details", "open", u, "summary"), n("keygen", "autofocus challenge disabled form keytype name")), "html5-strict" != e && (i("script", "language xml:space"), i("style", "xml:space"), i("object", "declare classid codebase codetype archive standby align border hspace vspace"), i("param", "valuetype type"), i("a", "charset name rev shape coords"), i("br", "clear"), i("applet", "codebase archive code object alt name width height align hspace vspace"), i("img", "name longdesc align border hspace vspace"), i("iframe", "longdesc frameborder marginwidth marginheight scrolling align"), i("font basefont", "size color face"), i("input", "usemap align"), i("select", "onchange"), i("textarea"), i("h1 h2 h3 h4 h5 h6 div p legend caption", "align"), i("ul", "type compact"), i("li", "type"), i("ol dl menu dir", "compact"), i("pre", "width xml:space"), i("hr", "align noshade size width"), i("isindex", "prompt"), i("table", "summary width frame rules cellspacing cellpadding align bgcolor"), i("col", "width align char charoff valign"), i("colgroup", "width align char charoff valign"), i("thead", "align char charoff valign"), i("tr", "align char charoff valign bgcolor"), i("th", "axis align char charoff valign nowrap bgcolor width height"), i("form", "accept"), i("td", "abbr axis scope align char charoff valign nowrap bgcolor width height"), i("tfoot", "align char charoff valign"), i("tbody", "align char charoff valign"), i("area", "nohref"), i("body", "background bgcolor text link vlink alink")), "html4" != e && (i("input button select textarea", "autofocus"), i("input textarea", "placeholder"), i("a", "download"), i("link script img", "crossorigin"), i("iframe", "srcdoc sandbox seamless allowfullscreen")), o(t("a form meter progress dfn"), function (e) { - a[e] && delete a[e].children[e] - }), delete a.caption.children.table, r[e] = a, a) - } - - var r = {}, i = e.makeMap, o = e.each, a = e.extend, s = e.explode, l = e.inArray; - return function (e) { - function c(t, n, o) { - var s = e[t]; - return s ? s = i(s, ",", i(s.toUpperCase(), " ")) : (s = r[t], s || (s = i(n, " ", i(n.toUpperCase(), " ")), s = a(s, o), r[t] = s)), s - } - - function d(e) { - return new RegExp("^" + e.replace(/([?+*])/g, ".$1") + "$") - } - - function u(e) { - var n, r, o, a, s, c, u, f, p, m, h, g, y, C, x, w, _, N, E, k = /^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/, S = /^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/, T = /[*?+]/; - if (e)for (e = t(e, ","), v["@"] && (w = v["@"].attributes, _ = v["@"].attributesOrder), n = 0, r = e.length; r > n; n++)if (s = k.exec(e[n])) { - if (C = s[1], p = s[2], x = s[3], f = s[5], g = {}, y = [], c = {attributes: g, attributesOrder: y}, "#" === C && (c.paddEmpty = !0), "-" === C && (c.removeEmpty = !0), "!" === s[4] && (c.removeEmptyAttrs = !0), w) { - for (N in w)g[N] = w[N]; - y.push.apply(y, _) - } - if (f)for (f = t(f, "|"), o = 0, a = f.length; a > o; o++)if (s = S.exec(f[o])) { - if (u = {}, h = s[1], m = s[2].replace(/::/g, ":"), C = s[3], E = s[4], "!" === h && (c.attributesRequired = c.attributesRequired || [], c.attributesRequired.push(m), u.required = !0), "-" === h) { - delete g[m], y.splice(l(y, m), 1); - continue - } - C && ("=" === C && (c.attributesDefault = c.attributesDefault || [], c.attributesDefault.push({name: m, value: E}), u.defaultValue = E), ":" === C && (c.attributesForced = c.attributesForced || [], c.attributesForced.push({name: m, value: E}), u.forcedValue = E), "<" === C && (u.validValues = i(E, "?"))), T.test(m) ? (c.attributePatterns = c.attributePatterns || [], u.pattern = d(m), c.attributePatterns.push(u)) : (g[m] || y.push(m), g[m] = u) - } - w || "@" != p || (w = g, _ = y), x && (c.outputName = p, v[x] = c), T.test(p) ? (c.pattern = d(p), b.push(c)) : v[p] = c - } - } - - function f(e) { - v = {}, b = [], u(e), o(x, function (e, t) { - y[t] = e.children - }) - } - - function p(e) { - var n = /^(~)?(.+)$/; - e && o(t(e, ","), function (e) { - var t = n.exec(e), r = "~" === t[1], i = r ? "span" : "div", s = t[2]; - if (y[s] = y[i], R[s] = i, r || (k[s.toUpperCase()] = {}, k[s] = {}), !v[s]) { - var l = v[i]; - l = a({}, l), delete l.removeEmptyAttrs, delete l.removeEmpty, v[s] = l - } - o(y, function (e) { - e[i] && (e[s] = e[i]) - }) - }) - } - - function m(e) { - var n = /^([+\-]?)(\w+)\[([^\]]+)\]$/; - e && o(t(e, ","), function (e) { - var r = n.exec(e), i, a; - r && (a = r[1], i = a ? y[r[2]] : y[r[2]] = {"#comment": {}}, i = y[r[2]], o(t(r[3], "|"), function (e) { - "-" === a ? delete i[e] : i[e] = {} - })) - }) - } - - function h(e) { - var t = v[e], n; - if (t)return t; - for (n = b.length; n--;)if (t = b[n], t.pattern.test(e))return t - } - - var g = this, v = {}, y = {}, b = [], C, x, w, _, N, E, k, S, T, R = {}, A = {}; - e = e || {}, x = n(e.schema), e.verify_html === !1 && (e.valid_elements = "*[*]"), e.valid_styles && (C = {}, o(e.valid_styles, function (e, t) { - C[t] = s(e) - })), w = c("whitespace_elements", "pre script noscript style textarea video audio iframe object"), _ = c("self_closing_elements", "colgroup dd dt li option p td tfoot th thead tr"), N = c("short_ended_elements", "area base basefont br col frame hr img input isindex link meta param embed source wbr track"), E = c("boolean_attributes", "checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"), S = c("non_empty_elements", "td th iframe video audio object script", N), T = c("text_block_elements", "h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure"), k = c("block_elements", "hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex samp option datalist select optgroup", T), o((e.special || "script noscript style textarea").split(" "), function (e) { - A[e] = new RegExp("</" + e + "[^>]*>", "gi") - }), e.valid_elements ? f(e.valid_elements) : (o(x, function (e, t) { - v[t] = {attributes: e.attributes, attributesOrder: e.attributesOrder}, y[t] = e.children - }), "html5" != e.schema && o(t("strong/b em/i"), function (e) { - e = t(e, "/"), v[e[1]].outputName = e[0] - }), v.img.attributesDefault = [ - {name: "alt", value: ""} - ], o(t("ol ul sub sup blockquote span font a table tbody tr strong em b i"), function (e) { - v[e] && (v[e].removeEmpty = !0) - }), o(t("p h1 h2 h3 h4 h5 h6 th td pre div address caption"), function (e) { - v[e].paddEmpty = !0 - }), o(t("span"), function (e) { - v[e].removeEmptyAttrs = !0 - })), p(e.custom_elements), m(e.valid_children), u(e.extended_valid_elements), m("+ol[ul|ol],+ul[ul|ol]"), e.invalid_elements && o(s(e.invalid_elements), function (e) { - v[e] && delete v[e] - }), h("span") || u("span[!data-mce-type|*]"), g.children = y, g.styles = C, g.getBoolAttrs = function () { - return E - }, g.getBlockElements = function () { - return k - }, g.getTextBlockElements = function () { - return T - }, g.getShortEndedElements = function () { - return N - }, g.getSelfClosingElements = function () { - return _ - }, g.getNonEmptyElements = function () { - return S - }, g.getWhiteSpaceElements = function () { - return w - }, g.getSpecialElements = function () { - return A - }, g.isValidChild = function (e, t) { - var n = y[e]; - return!(!n || !n[t]) - }, g.isValid = function (e, t) { - var n, r, i = h(e); - if (i) { - if (!t)return!0; - if (i.attributes[t])return!0; - if (n = i.attributePatterns)for (r = n.length; r--;)if (n[r].pattern.test(e))return!0 - } - return!1 - }, g.getElementRule = h, g.getCustomElements = function () { - return R - }, g.addValidElements = u, g.setValidElements = f, g.addCustomElements = p, g.addValidChildren = m, g.elements = v - } - }), r(w, [x, m, f], function (e, t, n) { - var r = n.each; - return function (i, o) { - var a = this, s = function () { - }; - i = i || {}, a.schema = o = o || new e, i.fix_self_closing !== !1 && (i.fix_self_closing = !0), r("comment cdata text start end pi doctype".split(" "), function (e) { - e && (a[e] = i[e] || s) - }), a.parse = function (e) { - function r(e) { - var t, n; - for (t = f.length; t-- && f[t].name !== e;); - if (t >= 0) { - for (n = f.length - 1; n >= t; n--)e = f[n], e.valid && s.end(e.name); - f.length = t - } - } - - function a(e, t, n, r, o) { - var a, s, l = /[\s\u0000-\u001F]+/g; - if (t = t.toLowerCase(), n = t in C ? t : z(n || r || o || ""), w && !v && 0 !== t.indexOf("data-")) { - if (a = S[t], !a && T) { - for (s = T.length; s-- && (a = T[s], !a.pattern.test(t));); - -1 === s && (a = null) - } - if (!a)return; - if (a.validValues && !(n in a.validValues))return - } - if (W[t] && !i.allow_script_urls) { - var c = n.replace(l, ""); - try { - if (c = decodeURIComponent(c), V.test(c))return - } catch (d) { - if (c = unescape(c), V.test(c))return - } - } - p.map[t] = n, p.push({name: t, value: n}) - } - - var s = this, l, c = 0, d, u, f = [], p, m, h, g, v, y, b, C, x, w, _, N, E, k, S, T, R, A, B, L, H, M, D, P, O, I = 0, z = t.decode, F, W = n.makeMap("src,href"), V = /(java|vb)script:/i; - for (M = new RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([^>]+)>)|(?:([A-Za-z0-9\\-\\:\\.]+)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))", "g"), D = /([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g, b = o.getShortEndedElements(), H = i.self_closing_elements || o.getSelfClosingElements(), C = o.getBoolAttrs(), w = i.validate, y = i.remove_internals, F = i.fix_self_closing, P = o.getSpecialElements(); l = M.exec(e);) { - if (c < l.index && s.text(z(e.substr(c, l.index - c))), d = l[6])d = d.toLowerCase(), ":" === d.charAt(0) && (d = d.substr(1)), r(d); else if (d = l[7]) { - if (d = d.toLowerCase(), ":" === d.charAt(0) && (d = d.substr(1)), x = d in b, F && H[d] && f.length > 0 && f[f.length - 1].name === d && r(d), !w || (_ = o.getElementRule(d))) { - if (N = !0, w && (S = _.attributes, T = _.attributePatterns), (k = l[8]) ? (v = -1 !== k.indexOf("data-mce-type"), v && y && (N = !1), p = [], p.map = {}, k.replace(D, a)) : (p = [], p.map = {}), w && !v) { - if (R = _.attributesRequired, A = _.attributesDefault, B = _.attributesForced, L = _.removeEmptyAttrs, L && !p.length && (N = !1), B)for (m = B.length; m--;)E = B[m], g = E.name, O = E.value, "{$uid}" === O && (O = "mce_" + I++), p.map[g] = O, p.push({name: g, value: O}); - if (A)for (m = A.length; m--;)E = A[m], g = E.name, g in p.map || (O = E.value, "{$uid}" === O && (O = "mce_" + I++), p.map[g] = O, p.push({name: g, value: O})); - if (R) { - for (m = R.length; m-- && !(R[m]in p.map);); - -1 === m && (N = !1) - } - p.map["data-mce-bogus"] && (N = !1) - } - N && s.start(d, p, x) - } else N = !1; - if (u = P[d]) { - u.lastIndex = c = l.index + l[0].length, (l = u.exec(e)) ? (N && (h = e.substr(c, l.index - c)), c = l.index + l[0].length) : (h = e.substr(c), c = e.length), N && (h.length > 0 && s.text(h, !0), s.end(d)), M.lastIndex = c; - continue - } - x || (k && k.indexOf("/") == k.length - 1 ? N && s.end(d) : f.push({name: d, valid: N})) - } else(d = l[1]) ? (">" === d.charAt(0) && (d = " " + d), i.allow_conditional_comments || "[if" !== d.substr(0, 3) || (d = " " + d), s.comment(d)) : (d = l[2]) ? s.cdata(d) : (d = l[3]) ? s.doctype(d) : (d = l[4]) && s.pi(d, l[5]); - c = l.index + l[0].length - } - for (c < e.length && s.text(z(e.substr(c))), m = f.length - 1; m >= 0; m--)d = f[m], d.valid && s.end(d.name) - } - } - }), r(_, [C, x, w, f], function (e, t, n, r) { - var i = r.makeMap, o = r.each, a = r.explode, s = r.extend; - return function (r, l) { - function c(t) { - var n, r, o, a, s, c, u, f, p, m, h, g, v, y; - for (h = i("tr,td,th,tbody,thead,tfoot,table"), m = l.getNonEmptyElements(), g = l.getTextBlockElements(), n = 0; n < t.length; n++)if (r = t[n], r.parent && !r.fixed)if (g[r.name] && "li" == r.parent.name) { - for (v = r.next; v && g[v.name];)v.name = "li", v.fixed = !0, r.parent.insert(v, r.parent), v = v.next; - r.unwrap(r) - } else { - for (a = [r], o = r.parent; o && !l.isValidChild(o.name, r.name) && !h[o.name]; o = o.parent)a.push(o); - if (o && a.length > 1) { - for (a.reverse(), s = c = d.filterNode(a[0].clone()), p = 0; p < a.length - 1; p++) { - for (l.isValidChild(c.name, a[p].name) ? (u = d.filterNode(a[p].clone()), c.append(u)) : u = c, f = a[p].firstChild; f && f != a[p + 1];)y = f.next, u.append(f), f = y; - c = u - } - s.isEmpty(m) ? o.insert(r, a[0], !0) : (o.insert(s, a[0], !0), o.insert(r, s)), o = a[0], (o.isEmpty(m) || o.firstChild === o.lastChild && "br" === o.firstChild.name) && o.empty().remove() - } else if (r.parent) { - if ("li" === r.name) { - if (v = r.prev, v && ("ul" === v.name || "ul" === v.name)) { - v.append(r); - continue - } - if (v = r.next, v && ("ul" === v.name || "ul" === v.name)) { - v.insert(r, v.firstChild, !0); - continue - } - r.wrap(d.filterNode(new e("ul", 1))); - continue - } - l.isValidChild(r.parent.name, "div") && l.isValidChild("div", r.name) ? r.wrap(d.filterNode(new e("div", 1))) : "style" === r.name || "script" === r.name ? r.empty().remove() : r.unwrap() - } - } - } - - var d = this, u = {}, f = [], p = {}, m = {}; - r = r || {}, r.validate = "validate"in r ? r.validate : !0, r.root_name = r.root_name || "body", d.schema = l = l || new t, d.filterNode = function (e) { - var t, n, r; - n in u && (r = p[n], r ? r.push(e) : p[n] = [e]), t = f.length; - for (; t--;)n = f[t].name, n in e.attributes.map && (r = m[n], r ? r.push(e) : m[n] = [e]); - return e - }, d.addNodeFilter = function (e, t) { - o(a(e), function (e) { - var n = u[e]; - n || (u[e] = n = []), n.push(t) - }) - }, d.addAttributeFilter = function (e, t) { - o(a(e), function (e) { - var n; - for (n = 0; n < f.length; n++)if (f[n].name === e)return void f[n].callbacks.push(t); - f.push({name: e, callbacks: [t]}) - }) - }, d.parse = function (t, o) { - function a() { - function e(e) { - e && (t = e.firstChild, t && 3 == t.type && (t.value = t.value.replace(R, "")), t = e.lastChild, t && 3 == t.type && (t.value = t.value.replace(L, ""))) - } - - var t = y.firstChild, n, i; - if (l.isValidChild(y.name, I.toLowerCase())) { - for (; t;)n = t.next, 3 == t.type || 1 == t.type && "p" !== t.name && !T[t.name] && !t.attr("data-mce-type") ? i ? i.append(t) : (i = d(I, 1), i.attr(r.forced_root_block_attrs), y.insert(i, t), i.append(t)) : (e(i), i = null), t = n; - e(i) - } - } - - function d(t, n) { - var r = new e(t, n), i; - return t in u && (i = p[t], i ? i.push(r) : p[t] = [r]), r - } - - function h(e) { - var t, n, r; - for (t = e.prev; t && 3 === t.type;)n = t.value.replace(L, ""), n.length > 0 ? (t.value = n, t = t.prev) : (r = t.prev, t.remove(), t = r) - } - - function g(e) { - var t, n = {}; - for (t in e)"li" !== t && "p" != t && (n[t] = e[t]); - return n - } - - var v, y, b, C, x, w, _, N, E, k, S, T, R, A = [], B, L, H, M, D, P, O, I; - if (o = o || {}, p = {}, m = {}, T = s(i("script,style,head,html,body,title,meta,param"), l.getBlockElements()), O = l.getNonEmptyElements(), P = l.children, S = r.validate, I = "forced_root_block"in o ? o.forced_root_block : r.forced_root_block, D = l.getWhiteSpaceElements(), R = /^[ \t\r\n]+/, L = /[ \t\r\n]+$/, H = /[ \t\r\n]+/g, M = /^[ \t\r\n]+$/, v = new n({validate: S, allow_script_urls: r.allow_script_urls, allow_conditional_comments: r.allow_conditional_comments, self_closing_elements: g(l.getSelfClosingElements()), cdata: function (e) { - b.append(d("#cdata", 4)).value = e - }, text: function (e, t) { - var n; - B || (e = e.replace(H, " "), b.lastChild && T[b.lastChild.name] && (e = e.replace(R, ""))), 0 !== e.length && (n = d("#text", 3), n.raw = !!t, b.append(n).value = e) - }, comment: function (e) { - b.append(d("#comment", 8)).value = e - }, pi: function (e, t) { - b.append(d(e, 7)).value = t, h(b) - }, doctype: function (e) { - var t; - t = b.append(d("#doctype", 10)), t.value = e, h(b) - }, start: function (e, t, n) { - var r, i, o, a, s; - if (o = S ? l.getElementRule(e) : {}) { - for (r = d(o.outputName || e, 1), r.attributes = t, r.shortEnded = n, b.append(r), s = P[b.name], s && P[r.name] && !s[r.name] && A.push(r), i = f.length; i--;)a = f[i].name, a in t.map && (E = m[a], E ? E.push(r) : m[a] = [r]); - T[e] && h(r), n || (b = r), !B && D[e] && (B = !0) - } - }, end: function (t) { - var n, r, i, o, a; - if (r = S ? l.getElementRule(t) : {}) { - if (T[t] && !B) { - if (n = b.firstChild, n && 3 === n.type)if (i = n.value.replace(R, ""), i.length > 0)n.value = i, n = n.next; else for (o = n.next, n.remove(), n = o; n && 3 === n.type;)i = n.value, o = n.next, (0 === i.length || M.test(i)) && (n.remove(), n = o), n = o; - if (n = b.lastChild, n && 3 === n.type)if (i = n.value.replace(L, ""), i.length > 0)n.value = i, n = n.prev; else for (o = n.prev, n.remove(), n = o; n && 3 === n.type;)i = n.value, o = n.prev, (0 === i.length || M.test(i)) && (n.remove(), n = o), n = o - } - if (B && D[t] && (B = !1), (r.removeEmpty || r.paddEmpty) && b.isEmpty(O))if (r.paddEmpty)b.empty().append(new e("#text", "3")).value = "\xa0"; else if (!b.attributes.map.name && !b.attributes.map.id)return a = b.parent, b.empty().remove(), void(b = a); - b = b.parent - } - }}, l), y = b = new e(o.context || r.root_name, 11), v.parse(t), S && A.length && (o.context ? o.invalid = !0 : c(A)), I && ("body" == y.name || o.isRootContent) && a(), !o.invalid) { - for (k in p) { - for (E = u[k], C = p[k], _ = C.length; _--;)C[_].parent || C.splice(_, 1); - for (x = 0, w = E.length; w > x; x++)E[x](C, k, o) - } - for (x = 0, w = f.length; w > x; x++)if (E = f[x], E.name in m) { - for (C = m[E.name], _ = C.length; _--;)C[_].parent || C.splice(_, 1); - for (_ = 0, N = E.callbacks.length; N > _; _++)E.callbacks[_](C, E.name, o) - } - } - return y - }, r.remove_trailing_brs && d.addNodeFilter("br", function (t) { - var n, r = t.length, i, o = s({}, l.getBlockElements()), a = l.getNonEmptyElements(), c, d, u, f, p, m; - for (o.body = 1, n = 0; r > n; n++)if (i = t[n], c = i.parent, o[i.parent.name] && i === c.lastChild) { - for (u = i.prev; u;) { - if (f = u.name, "span" !== f || "bookmark" !== u.attr("data-mce-type")) { - if ("br" !== f)break; - if ("br" === f) { - i = null; - break - } - } - u = u.prev - } - i && (i.remove(), c.isEmpty(a) && (p = l.getElementRule(c.name), p && (p.removeEmpty ? c.remove() : p.paddEmpty && (c.empty().append(new e("#text", 3)).value = "\xa0")))) - } else { - for (d = i; c && c.firstChild === d && c.lastChild === d && (d = c, !o[c.name]);)c = c.parent; - d === c && (m = new e("#text", 3), m.value = "\xa0", i.replace(m)) - } - }), r.allow_html_in_named_anchor || d.addAttributeFilter("id,name", function (e) { - for (var t = e.length, n, r, i, o; t--;)if (o = e[t], "a" === o.name && o.firstChild && !o.attr("href")) { - i = o.parent, n = o.lastChild; - do r = n.prev, i.insert(n, o), n = r; while (n) - } - }) - } - }), r(N, [m, f], function (e, t) { - var n = t.makeMap; - return function (t) { - var r = [], i, o, a, s, l; - return t = t || {}, i = t.indent, o = n(t.indent_before || ""), a = n(t.indent_after || ""), s = e.getEncodeFunc(t.entity_encoding || "raw", t.entities), l = "html" == t.element_format, {start: function (e, t, n) { - var c, d, u, f; - if (i && o[e] && r.length > 0 && (f = r[r.length - 1], f.length > 0 && "\n" !== f && r.push("\n")), r.push("<", e), t)for (c = 0, d = t.length; d > c; c++)u = t[c], r.push(" ", u.name, '="', s(u.value, !0), '"'); - r[r.length] = !n || l ? ">" : " />", n && i && a[e] && r.length > 0 && (f = r[r.length - 1], f.length > 0 && "\n" !== f && r.push("\n")) - }, end: function (e) { - var t; - r.push("</", e, ">"), i && a[e] && r.length > 0 && (t = r[r.length - 1], t.length > 0 && "\n" !== t && r.push("\n")) - }, text: function (e, t) { - e.length > 0 && (r[r.length] = t ? e : s(e)) - }, cdata: function (e) { - r.push("<![CDATA[", e, "]]>") - }, comment: function (e) { - r.push("<!--", e, "-->") - }, pi: function (e, t) { - t ? r.push("<?", e, " ", t, "?>") : r.push("<?", e, "?>"), i && r.push("\n") - }, doctype: function (e) { - r.push("<!DOCTYPE", e, ">", i ? "\n" : "") - }, reset: function () { - r.length = 0 - }, getContent: function () { - return r.join("").replace(/\n$/, "") - }} - } - }), r(E, [N, x], function (e, t) { - return function (n, r) { - var i = this, o = new e(n); - n = n || {}, n.validate = "validate"in n ? n.validate : !0, i.schema = r = r || new t, i.writer = o, i.serialize = function (e) { - function t(e) { - var n = i[e.type], s, l, c, d, u, f, p, m, h; - if (n)n(e); else { - if (s = e.name, l = e.shortEnded, c = e.attributes, a && c && c.length > 1) { - for (f = [], f.map = {}, h = r.getElementRule(e.name), p = 0, m = h.attributesOrder.length; m > p; p++)d = h.attributesOrder[p], d in c.map && (u = c.map[d], f.map[d] = u, f.push({name: d, value: u})); - for (p = 0, m = c.length; m > p; p++)d = c[p].name, d in f.map || (u = c.map[d], f.map[d] = u, f.push({name: d, value: u})); - c = f - } - if (o.start(e.name, c, l), !l) { - if (e = e.firstChild)do t(e); while (e = e.next); - o.end(s) - } - } - } - - var i, a; - return a = n.validate, i = {3: function (e) { - o.text(e.value, e.raw) - }, 8: function (e) { - o.comment(e.value) - }, 7: function (e) { - o.pi(e.name, e.value) - }, 10: function (e) { - o.doctype(e.value) - }, 4: function (e) { - o.cdata(e.value) - }, 11: function (e) { - if (e = e.firstChild)do t(e); while (e = e.next) - }}, o.reset(), 1 != e.type || n.inner ? i[11](e) : t(e), o.getContent() - } - } - }), r(k, [v, _, m, E, C, x, h, f], function (e, t, n, r, i, o, a, s) { - var l = s.each, c = s.trim, d = e.DOM; - return function (e, i) { - var s, u, f; - return i && (s = i.dom, u = i.schema), s = s || d, u = u || new o(e), e.entity_encoding = e.entity_encoding || "named", e.remove_trailing_brs = "remove_trailing_brs"in e ? e.remove_trailing_brs : !0, f = new t(e, u), f.addAttributeFilter("src,href,style", function (t, n) { - for (var r = t.length, i, o, a = "data-mce-" + n, l = e.url_converter, c = e.url_converter_scope, d; r--;)i = t[r], o = i.attributes.map[a], o !== d ? (i.attr(n, o.length > 0 ? o : null), i.attr(a, null)) : (o = i.attributes.map[n], "style" === n ? o = s.serializeStyle(s.parseStyle(o), i.name) : l && (o = l.call(c, o, n, i.name)), i.attr(n, o.length > 0 ? o : null)) - }), f.addAttributeFilter("class", function (e) { - for (var t = e.length, n, r; t--;)n = e[t], r = n.attr("class").replace(/(?:^|\s)mce-item-\w+(?!\S)/g, ""), n.attr("class", r.length > 0 ? r : null) - }), f.addAttributeFilter("data-mce-type", function (e, t, n) { - for (var r = e.length, i; r--;)i = e[r], "bookmark" !== i.attributes.map["data-mce-type"] || n.cleanup || i.remove() - }), f.addAttributeFilter("data-mce-expando", function (e, t) { - for (var n = e.length; n--;)e[n].attr(t, null) - }), f.addNodeFilter("noscript", function (e) { - for (var t = e.length, r; t--;)r = e[t].firstChild, r && (r.value = n.decode(r.value)) - }), f.addNodeFilter("script,style", function (e, t) { - function n(e) { - return e.replace(/(<!--\[CDATA\[|\]\]-->)/g, "\n").replace(/^[\r\n]*|[\r\n]*$/g, "").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi, "").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g, "") - } - - for (var r = e.length, i, o; r--;)if (i = e[r], o = i.firstChild ? i.firstChild.value : "", "script" === t) { - var a = (i.attr("type") || "text/javascript").replace(/^mce\-/, ""); - i.attr("type", "text/javascript" === a ? null : a), o.length > 0 && (i.firstChild.value = "// <![CDATA[\n" + n(o) + "\n// ]]>") - } else o.length > 0 && (i.firstChild.value = "<!--\n" + n(o) + "\n-->") - }), f.addNodeFilter("#comment", function (e) { - for (var t = e.length, n; t--;)n = e[t], 0 === n.value.indexOf("[CDATA[") ? (n.name = "#cdata", n.type = 4, n.value = n.value.replace(/^\[CDATA\[|\]\]$/g, "")) : 0 === n.value.indexOf("mce:protected ") && (n.name = "#text", n.type = 3, n.raw = !0, n.value = unescape(n.value).substr(14)) - }), f.addNodeFilter("xml:namespace,input", function (e, t) { - for (var n = e.length, r; n--;)r = e[n], 7 === r.type ? r.remove() : 1 === r.type && ("input" !== t || "type"in r.attributes.map || r.attr("type", "text")) - }), e.fix_list_elements && f.addNodeFilter("ul,ol", function (e) { - for (var t = e.length, n, r; t--;)n = e[t], r = n.parent, ("ul" === r.name || "ol" === r.name) && n.prev && "li" === n.prev.name && n.prev.append(n) - }), f.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style,data-mce-selected", function (e, t) { - for (var n = e.length; n--;)e[n].attr(t, null) - }), {schema: u, addNodeFilter: f.addNodeFilter, addAttributeFilter: f.addAttributeFilter, serialize: function (t, n) { - var i = this, o, d, p, m, h; - return a.ie && s.select("script,style,select,map").length > 0 ? (h = t.innerHTML, t = t.cloneNode(!1), s.setHTML(t, h)) : t = t.cloneNode(!0), o = t.ownerDocument.implementation, o.createHTMLDocument && (d = o.createHTMLDocument(""), l("BODY" == t.nodeName ? t.childNodes : [t], function (e) { - d.body.appendChild(d.importNode(e, !0)) - }), t = "BODY" != t.nodeName ? d.body.firstChild : d.body, p = s.doc, s.doc = d), n = n || {}, n.format = n.format || "html", n.selection && (n.forced_root_block = ""), n.no_events || (n.node = t, i.onPreProcess(n)), m = new r(e, u), n.content = m.serialize(f.parse(c(n.getInner ? t.innerHTML : s.getOuterHTML(t)), n)), n.cleanup || (n.content = n.content.replace(/\uFEFF/g, "")), n.no_events || i.onPostProcess(n), p && (s.doc = p), n.node = null, n.content - }, addRules: function (e) { - u.addValidElements(e) - }, setRules: function (e) { - u.setValidElements(e) - }, onPreProcess: function (e) { - i && i.fire("PreProcess", e) - }, onPostProcess: function (e) { - i && i.fire("PostProcess", e) - }} - } - }), r(S, [], function () { - function e(e) { - function t(t, n) { - var r, i = 0, o, a, s, l, c, d, u = -1, f; - if (r = t.duplicate(), r.collapse(n), f = r.parentElement(), f.ownerDocument === e.dom.doc) { - for (; "false" === f.contentEditable;)f = f.parentNode; - if (!f.hasChildNodes())return{node: f, inside: 1}; - for (s = f.children, o = s.length - 1; o >= i;)if (d = Math.floor((i + o) / 2), l = s[d], r.moveToElementText(l), u = r.compareEndPoints(n ? "StartToStart" : "EndToEnd", t), u > 0)o = d - 1; else { - if (!(0 > u))return{node: l}; - i = d + 1 - } - if (0 > u)for (l ? r.collapse(!1) : (r.moveToElementText(f), r.collapse(!0), l = f, a = !0), c = 0; 0 !== r.compareEndPoints(n ? "StartToStart" : "StartToEnd", t) && 0 !== r.move("character", 1) && f == r.parentElement();)c++; else for (r.collapse(!0), c = 0; 0 !== r.compareEndPoints(n ? "StartToStart" : "StartToEnd", t) && 0 !== r.move("character", -1) && f == r.parentElement();)c++; - return{node: l, position: u, offset: c, inside: a} - } - } - - function n() { - function n(e) { - var n = t(o, e), r, i, s = 0, l, c, d; - if (r = n.node, i = n.offset, n.inside && !r.hasChildNodes())return void a[e ? "setStart" : "setEnd"](r, 0); - if (i === c)return void a[e ? "setStartBefore" : "setEndAfter"](r); - if (n.position < 0) { - if (l = n.inside ? r.firstChild : r.nextSibling, !l)return void a[e ? "setStartAfter" : "setEndAfter"](r); - if (!i)return void(3 == l.nodeType ? a[e ? "setStart" : "setEnd"](l, 0) : a[e ? "setStartBefore" : "setEndBefore"](l)); - for (; l;) { - if (d = l.nodeValue, s += d.length, s >= i) { - r = l, s -= i, s = d.length - s; - break - } - l = l.nextSibling - } - } else { - if (l = r.previousSibling, !l)return a[e ? "setStartBefore" : "setEndBefore"](r); - if (!i)return void(3 == r.nodeType ? a[e ? "setStart" : "setEnd"](l, r.nodeValue.length) : a[e ? "setStartAfter" : "setEndAfter"](l)); - for (; l;) { - if (s += l.nodeValue.length, s >= i) { - r = l, s -= i; - break - } - l = l.previousSibling - } - } - a[e ? "setStart" : "setEnd"](r, s) - } - - var o = e.getRng(), a = i.createRng(), s, l, c, d, u; - if (s = o.item ? o.item(0) : o.parentElement(), s.ownerDocument != i.doc)return a; - if (l = e.isCollapsed(), o.item)return a.setStart(s.parentNode, i.nodeIndex(s)), a.setEnd(a.startContainer, a.startOffset + 1), a; - try { - n(!0), l || n() - } catch (f) { - if (-2147024809 != f.number)throw f; - u = r.getBookmark(2), c = o.duplicate(), c.collapse(!0), s = c.parentElement(), l || (c = o.duplicate(), c.collapse(!1), d = c.parentElement(), d.innerHTML = d.innerHTML), s.innerHTML = s.innerHTML, r.moveToBookmark(u), o = e.getRng(), n(!0), l || n() - } - return a - } - - var r = this, i = e.dom, o = !1; - this.getBookmark = function (n) { - function r(e) { - var t, n, r, o, a = []; - for (t = e.parentNode, n = i.getRoot().parentNode; t != n && 9 !== t.nodeType;) { - for (r = t.children, o = r.length; o--;)if (e === r[o]) { - a.push(o); - break - } - e = t, t = t.parentNode - } - return a - } - - function o(e) { - var n; - return n = t(a, e), n ? {position: n.position, offset: n.offset, indexes: r(n.node), inside: n.inside} : void 0 - } - - var a = e.getRng(), s = {}; - return 2 === n && (a.item ? s.start = {ctrl: !0, indexes: r(a.item(0))} : (s.start = o(!0), e.isCollapsed() || (s.end = o()))), s - }, this.moveToBookmark = function (e) { - function t(e) { - var t, n, r, o; - for (t = i.getRoot(), n = e.length - 1; n >= 0; n--)o = t.children, r = e[n], r <= o.length - 1 && (t = o[r]); - return t - } - - function n(n) { - var i = e[n ? "start" : "end"], a, s, l, c; - i && (a = i.position > 0, s = o.createTextRange(), s.moveToElementText(t(i.indexes)), c = i.offset, c !== l ? (s.collapse(i.inside || a), s.moveStart("character", a ? -c : c)) : s.collapse(n), r.setEndPoint(n ? "StartToStart" : "EndToStart", s), n && r.collapse(!0)) - } - - var r, o = i.doc.body; - e.start && (e.start.ctrl ? (r = o.createControlRange(), r.addElement(t(e.start.indexes)), r.select()) : (r = o.createTextRange(), n(!0), n(), r.select())) - }, this.addRange = function (t) { - function n(e) { - var t, n, a, u, m; - a = i.create("a"), t = e ? s : c, n = e ? l : d, u = r.duplicate(), (t == f || t == f.documentElement) && (t = p, n = 0), 3 == t.nodeType ? (t.parentNode.insertBefore(a, t), u.moveToElementText(a), u.moveStart("character", n), i.remove(a), r.setEndPoint(e ? "StartToStart" : "EndToEnd", u)) : (m = t.childNodes, m.length ? (n >= m.length ? i.insertAfter(a, m[m.length - 1]) : t.insertBefore(a, m[n]), u.moveToElementText(a)) : t.canHaveHTML && (t.innerHTML = "<span></span>", a = t.firstChild, u.moveToElementText(a), u.collapse(o)), r.setEndPoint(e ? "StartToStart" : "EndToEnd", u), i.remove(a)) - } - - var r, a, s, l, c, d, u, f = e.dom.doc, p = f.body, m, h; - if (s = t.startContainer, l = t.startOffset, c = t.endContainer, d = t.endOffset, r = p.createTextRange(), s == c && 1 == s.nodeType) { - if (l == d && !s.hasChildNodes()) { - if (s.canHaveHTML)return u = s.previousSibling, u && !u.hasChildNodes() && i.isBlock(u) ? u.innerHTML = "" : u = null, s.innerHTML = "<span></span><span></span>", r.moveToElementText(s.lastChild), r.select(), i.doc.selection.clear(), s.innerHTML = "", void(u && (u.innerHTML = "")); - l = i.nodeIndex(s), s = s.parentNode - } - if (l == d - 1)try { - if (h = s.childNodes[l], a = p.createControlRange(), a.addElement(h), a.select(), m = e.getRng(), m.item && h === m.item(0))return - } catch (g) { - } - } - n(!0), n(), r.select() - }, this.getRangeAt = n - } - - return e - }), r(T, [h], function (e) { - return{BACKSPACE: 8, DELETE: 46, DOWN: 40, ENTER: 13, LEFT: 37, RIGHT: 39, SPACEBAR: 32, TAB: 9, UP: 38, modifierPressed: function (e) { - return e.shiftKey || e.ctrlKey || e.altKey - }, metaKeyPressed: function (t) { - return(e.mac ? t.metaKey : t.ctrlKey) && !t.altKey - }} - }), r(R, [T, f, h], function (e, t, n) { - return function (r, i) { - function o(e) { - return i.settings.object_resizing === !1 ? !1 : /TABLE|IMG|DIV/.test(e.nodeName) ? "false" === e.getAttribute("data-mce-resize") ? !1 : !0 : !1 - } - - function a(t) { - var n, r; - n = t.screenX - k, r = t.screenY - S, M = n * N[2] + A, D = r * N[3] + B, M = 5 > M ? 5 : M, D = 5 > D ? 5 : D, (e.modifierPressed(t) || "IMG" == x.nodeName && N[2] * N[3] !== 0) && (M = Math.round(D / L), D = Math.round(M * L)), b.setStyles(w, {width: M, height: D}), N[2] < 0 && w.clientWidth <= M && b.setStyle(w, "left", T + (A - M)), N[3] < 0 && w.clientHeight <= D && b.setStyle(w, "top", R + (B - D)), H || (i.fire("ObjectResizeStart", {target: x, width: A, height: B}), H = !0) - } - - function s() { - function e(e, t) { - t && (x.style[e] || !i.schema.isValid(x.nodeName.toLowerCase(), e) ? b.setStyle(x, e, t) : b.setAttrib(x, e, t)) - } - - H = !1, e("width", M), e("height", D), b.unbind(P, "mousemove", a), b.unbind(P, "mouseup", s), O != P && (b.unbind(O, "mousemove", a), b.unbind(O, "mouseup", s)), b.remove(w), I && "TABLE" != x.nodeName || l(x), i.fire("ObjectResized", {target: x, width: M, height: D}), i.nodeChanged() - } - - function l(e, t, n) { - var r, l, d, u, f, p = i.getBody(); - r = b.getPos(e, p), T = r.x, R = r.y, f = e.getBoundingClientRect(), l = f.width || f.right - f.left, d = f.height || f.bottom - f.top, x != e && (h(), x = e, M = D = 0), u = i.fire("ObjectSelected", {target: e}), o(e) && !u.isDefaultPrevented() ? C(_, function (e, r) { - function o(t) { - H = !0, k = t.screenX, S = t.screenY, A = x.clientWidth, B = x.clientHeight, L = B / A, N = e, w = x.cloneNode(!0), b.addClass(w, "mce-clonedresizable"), w.contentEditable = !1, w.unSelectabe = !0, b.setStyles(w, {left: T, top: R, margin: 0}), w.removeAttribute("data-mce-selected"), i.getBody().appendChild(w), b.bind(P, "mousemove", a), b.bind(P, "mouseup", s), O != P && (b.bind(O, "mousemove", a), b.bind(O, "mouseup", s)) - } - - var c, u; - return t ? void(r == t && o(n)) : (c = b.get("mceResizeHandle" + r), c ? b.show(c) : (u = i.getBody(), c = b.add(u, "div", {id: "mceResizeHandle" + r, "data-mce-bogus": !0, "class": "mce-resizehandle", contentEditable: !1, unSelectabe: !0, style: "cursor:" + r + "-resize; margin:0; padding:0"}), b.bind(c, "mousedown", function (e) { - e.preventDefault(), o(e) - })), void b.setStyles(c, {left: l * e[0] + T - c.offsetWidth / 2, top: d * e[1] + R - c.offsetHeight / 2})) - }) : c(), x.setAttribute("data-mce-selected", "1") - } - - function c() { - var e, t; - x && x.removeAttribute("data-mce-selected"); - for (e in _)t = b.get("mceResizeHandle" + e), t && (b.unbind(t), b.remove(t)) - } - - function d(e) { - function t(e, t) { - if (e)do if (e === t)return!0; while (e = e.parentNode) - } - - var n; - return C(b.select("img[data-mce-selected],hr[data-mce-selected]"), function (e) { - e.removeAttribute("data-mce-selected") - }), n = "mousedown" == e.type ? e.target : r.getNode(), n = b.getParent(n, I ? "table" : "table,img,hr"), t(n, i.getBody()) && (g(), t(r.getStart(), n) && t(r.getEnd(), n) && (!I || n != r.getStart() && "IMG" !== r.getStart().nodeName)) ? void l(n) : void c() - } - - function u(e, t, n) { - e && e.attachEvent && e.attachEvent("on" + t, n) - } - - function f(e, t, n) { - e && e.detachEvent && e.detachEvent("on" + t, n) - } - - function p(e) { - var t = e.srcElement, n, r, o, a, s, c, d; - n = t.getBoundingClientRect(), c = E.clientX - n.left, d = E.clientY - n.top; - for (r in _)if (o = _[r], a = t.offsetWidth * o[0], s = t.offsetHeight * o[1], Math.abs(a - c) < 8 && Math.abs(s - d) < 8) { - N = o; - break - } - H = !0, i.getDoc().selection.empty(), l(t, r, E) - } - - function m(e) { - var t = e.srcElement; - if (t != x) { - if (h(), 0 === t.id.indexOf("mceResizeHandle"))return void(e.returnValue = !1); - ("IMG" == t.nodeName || "TABLE" == t.nodeName) && (c(), x = t, u(t, "resizestart", p)) - } - } - - function h() { - f(x, "resizestart", p) - } - - function g() { - try { - i.getDoc().execCommand("enableObjectResizing", !1, !1) - } catch (e) { - } - } - - function v(e) { - var t; - if (I) { - t = P.body.createControlRange(); - try { - return t.addElement(e), t.select(), !0 - } catch (n) { - } - } - } - - function y() { - x = w = null, I && (h(), f(i.getBody(), "controlselect", m)) - } - - var b = i.dom, C = t.each, x, w, _, N, E, k, S, T, R, A, B, L, H, M, D, P = i.getDoc(), O = document, I = n.ie && n.ie < 11; - _ = {n: [.5, 0, 0, -1], e: [1, .5, 1, 0], s: [.5, 1, 0, 1], w: [0, .5, -1, 0], nw: [0, 0, -1, -1], ne: [1, 0, 1, -1], se: [1, 1, 1, 1], sw: [0, 1, -1, 1]}; - var z = ".mce-content-body"; - return i.contentStyles.push(z + " div.mce-resizehandle {position: absolute;border: 1px solid black;background: #FFF;width: 5px;height: 5px;z-index: 10000}" + z + " .mce-resizehandle:hover {background: #000}" + z + " img[data-mce-selected], hr[data-mce-selected] {outline: 1px solid black;resize: none}" + z + " .mce-clonedresizable {position: absolute;" + (n.gecko ? "" : "outline: 1px dashed black;") + "opacity: .5;filter: alpha(opacity=50);z-index: 10000}"), i.on("init", function () { - I ? (i.on("ObjectResized", function (e) { - "TABLE" != e.target.nodeName && (c(), v(e.target)) - }), u(i.getBody(), "controlselect", m), i.on("mousedown", function (e) { - E = e - })) : (g(), n.ie >= 11 && (i.on("mouseup", function (e) { - var t = e.target.nodeName; - /^(TABLE|IMG|HR)$/.test(t) && (i.selection.select(e.target, "TABLE" == t), i.nodeChanged()) - }), i.dom.bind(i.getBody(), "mscontrolselect", function (e) { - /^(TABLE|IMG|HR)$/.test(e.target.nodeName) && e.preventDefault() - }))), i.on("nodechange mousedown mouseup ResizeEditor", d), i.on("keydown keyup", function (e) { - x && "TABLE" == x.nodeName && d(e) - }) - }), {isResizable: o, showResizeRect: l, hideResizeRect: c, updateResizeRect: d, controlSelect: v, destroy: y} - } - }), r(A, [u, S, R, h, f], function (e, n, r, i, o) { - function a(e, t, i, o) { - var a = this; - a.dom = e, a.win = t, a.serializer = i, a.editor = o, a.controlSelection = new r(a, o), a.win.getSelection || (a.tridentSel = new n(a)) - } - - var s = o.each, l = o.grep, c = o.trim, d = i.ie, u = i.opera; - return a.prototype = {setCursorLocation: function (e, t) { - var n = this, r = n.dom.createRng(); - e ? (r.setStart(e, t), r.setEnd(e, t), n.setRng(r), n.collapse(!1)) : (n._moveEndPoint(r, n.editor.getBody(), !0), n.setRng(r)) - }, getContent: function (e) { - var n = this, r = n.getRng(), i = n.dom.create("body"), o = n.getSel(), a, s, l; - return e = e || {}, a = s = "", e.get = !0, e.format = e.format || "html", e.selection = !0, n.editor.fire("BeforeGetContent", e), "text" == e.format ? n.isCollapsed() ? "" : r.text || (o.toString ? o.toString() : "") : (r.cloneContents ? (l = r.cloneContents(), l && i.appendChild(l)) : r.item !== t || r.htmlText !== t ? (i.innerHTML = "<br>" + (r.item ? r.item(0).outerHTML : r.htmlText), i.removeChild(i.firstChild)) : i.innerHTML = r.toString(), /^\s/.test(i.innerHTML) && (a = " "), /\s+$/.test(i.innerHTML) && (s = " "), e.getInner = !0, e.content = n.isCollapsed() ? "" : a + n.serializer.serialize(i, e) + s, n.editor.fire("GetContent", e), e.content) - }, setContent: function (e, t) { - var n = this, r = n.getRng(), i, o = n.win.document, a, s; - if (t = t || {format: "html"}, t.set = !0, t.selection = !0, e = t.content = e, t.no_events || n.editor.fire("BeforeSetContent", t), e = t.content, r.insertNode) { - e += '<span id="__caret">_</span>', r.startContainer == o && r.endContainer == o ? o.body.innerHTML = e : (r.deleteContents(), 0 === o.body.childNodes.length ? o.body.innerHTML = e : r.createContextualFragment ? r.insertNode(r.createContextualFragment(e)) : (a = o.createDocumentFragment(), s = o.createElement("div"), a.appendChild(s), s.outerHTML = e, r.insertNode(a))), i = n.dom.get("__caret"), r = o.createRange(), r.setStartBefore(i), r.setEndBefore(i), n.setRng(r), n.dom.remove("__caret"); - try { - n.setRng(r) - } catch (l) { - } - } else r.item && (o.execCommand("Delete", !1, null), r = n.getRng()), /^\s+/.test(e) ? (r.pasteHTML('<span id="__mce_tmp">_</span>' + e), n.dom.remove("__mce_tmp")) : r.pasteHTML(e); - t.no_events || n.editor.fire("SetContent", t) - }, getStart: function () { - var e = this, t = e.getRng(), n, r, i, o; - if (t.duplicate || t.item) { - if (t.item)return t.item(0); - for (i = t.duplicate(), i.collapse(1), n = i.parentElement(), n.ownerDocument !== e.dom.doc && (n = e.dom.getRoot()), r = o = t.parentElement(); o = o.parentNode;)if (o == n) { - n = r; - break - } - return n - } - return n = t.startContainer, 1 == n.nodeType && n.hasChildNodes() && (n = n.childNodes[Math.min(n.childNodes.length - 1, t.startOffset)]), n && 3 == n.nodeType ? n.parentNode : n - }, getEnd: function () { - var e = this, t = e.getRng(), n, r; - return t.duplicate || t.item ? t.item ? t.item(0) : (t = t.duplicate(), t.collapse(0), n = t.parentElement(), n.ownerDocument !== e.dom.doc && (n = e.dom.getRoot()), n && "BODY" == n.nodeName ? n.lastChild || n : n) : (n = t.endContainer, r = t.endOffset, 1 == n.nodeType && n.hasChildNodes() && (n = n.childNodes[r > 0 ? r - 1 : r]), n && 3 == n.nodeType ? n.parentNode : n) - }, getBookmark: function (e, t) { - function n(e, t) { - var n = 0; - return s(a.select(e), function (e, r) { - e == t && (n = r) - }), n - } - - function r(e) { - function t(t) { - var n, r, i, o = t ? "start" : "end"; - n = e[o + "Container"], r = e[o + "Offset"], 1 == n.nodeType && "TR" == n.nodeName && (i = n.childNodes, n = i[Math.min(t ? r : r - 1, i.length - 1)], n && (r = t ? 0 : n.childNodes.length, e["set" + (t ? "Start" : "End")](n, r))) - } - - return t(!0), t(), e - } - - function i() { - function e(e, n) { - var i = e[n ? "startContainer" : "endContainer"], a = e[n ? "startOffset" : "endOffset"], s = [], l, c, d = 0; - if (3 == i.nodeType) { - if (t)for (l = i.previousSibling; l && 3 == l.nodeType; l = l.previousSibling)a += l.nodeValue.length; - s.push(a) - } else c = i.childNodes, a >= c.length && c.length && (d = 1, a = Math.max(0, c.length - 1)), s.push(o.dom.nodeIndex(c[a], t) + d); - for (; i && i != r; i = i.parentNode)s.push(o.dom.nodeIndex(i, t)); - return s - } - - var n = o.getRng(!0), r = a.getRoot(), i = {}; - return i.start = e(n, !0), o.isCollapsed() || (i.end = e(n)), i - } - - var o = this, a = o.dom, l, c, d, u, f, p, m = "", h; - if (2 == e)return p = o.getNode(), f = p ? p.nodeName : null, "IMG" == f ? {name: f, index: n(f, p)} : o.tridentSel ? o.tridentSel.getBookmark(e) : i(); - if (e)return{rng: o.getRng()}; - if (l = o.getRng(), d = a.uniqueId(), u = o.isCollapsed(), h = "overflow:hidden;line-height:0px", l.duplicate || l.item) { - if (l.item)return p = l.item(0), f = p.nodeName, {name: f, index: n(f, p)}; - c = l.duplicate(); - try { - l.collapse(), l.pasteHTML('<span data-mce-type="bookmark" id="' + d + '_start" style="' + h + '">' + m + "</span>"), u || (c.collapse(!1), l.moveToElementText(c.parentElement()), 0 === l.compareEndPoints("StartToEnd", c) && c.move("character", -1), c.pasteHTML('<span data-mce-type="bookmark" id="' + d + '_end" style="' + h + '">' + m + "</span>")) - } catch (g) { - return null - } - } else { - if (p = o.getNode(), f = p.nodeName, "IMG" == f)return{name: f, index: n(f, p)}; - c = r(l.cloneRange()), u || (c.collapse(!1), c.insertNode(a.create("span", {"data-mce-type": "bookmark", id: d + "_end", style: h}, m))), l = r(l), l.collapse(!0), l.insertNode(a.create("span", {"data-mce-type": "bookmark", id: d + "_start", style: h}, m)) - } - return o.moveToBookmark({id: d, keep: 1}), {id: d} - }, moveToBookmark: function (e) { - function t(t) { - var n = e[t ? "start" : "end"], r, i, o, s; - if (n) { - for (o = n[0], i = c, r = n.length - 1; r >= 1; r--) { - if (s = i.childNodes, n[r] > s.length - 1)return; - i = s[n[r]] - } - 3 === i.nodeType && (o = Math.min(n[0], i.nodeValue.length)), 1 === i.nodeType && (o = Math.min(n[0], i.childNodes.length)), t ? a.setStart(i, o) : a.setEnd(i, o) - } - return!0 - } - - function n(t) { - var n = o.get(e.id + "_" + t), r, i, a, c, d = e.keep; - if (n && (r = n.parentNode, "start" == t ? (d ? (r = n.firstChild, i = 1) : i = o.nodeIndex(n), f = p = r, m = h = i) : (d ? (r = n.firstChild, i = 1) : i = o.nodeIndex(n), p = r, h = i), !d)) { - for (c = n.previousSibling, a = n.nextSibling, s(l(n.childNodes), function (e) { - 3 == e.nodeType && (e.nodeValue = e.nodeValue.replace(/\uFEFF/g, "")) - }); n = o.get(e.id + "_" + t);)o.remove(n, 1); - c && a && c.nodeType == a.nodeType && 3 == c.nodeType && !u && (i = c.nodeValue.length, c.appendData(a.nodeValue), o.remove(a), "start" == t ? (f = p = c, m = h = i) : (p = c, h = i)) - } - } - - function r(e) { - return!o.isBlock(e) || e.innerHTML || d || (e.innerHTML = '<br data-mce-bogus="1" />'), e - } - - var i = this, o = i.dom, a, c, f, p, m, h; - if (e)if (e.start) { - if (a = o.createRng(), c = o.getRoot(), i.tridentSel)return i.tridentSel.moveToBookmark(e); - t(!0) && t() && i.setRng(a) - } else e.id ? (n("start"), n("end"), f && (a = o.createRng(), a.setStart(r(f), m), a.setEnd(r(p), h), i.setRng(a))) : e.name ? i.select(o.select(e.name)[e.index]) : e.rng && i.setRng(e.rng) - }, select: function (e, t) { - var n = this, r = n.dom, i = r.createRng(), o; - if (n.lastFocusBookmark = null, e) { - if (!t && n.controlSelection.controlSelect(e))return; - o = r.nodeIndex(e), i.setStart(e.parentNode, o), i.setEnd(e.parentNode, o + 1), t && (n._moveEndPoint(i, e, !0), n._moveEndPoint(i, e)), n.setRng(i) - } - return e - }, isCollapsed: function () { - var e = this, t = e.getRng(), n = e.getSel(); - return!t || t.item ? !1 : t.compareEndPoints ? 0 === t.compareEndPoints("StartToEnd", t) : !n || t.collapsed - }, collapse: function (e) { - var t = this, n = t.getRng(), r; - n.item && (r = n.item(0), n = t.win.document.body.createTextRange(), n.moveToElementText(r)), n.collapse(!!e), t.setRng(n) - }, getSel: function () { - var e = this.win; - return e.getSelection ? e.getSelection() : e.document.selection - }, getRng: function (e) { - var t = this, n, r, i, o = t.win.document, a; - if (!e && t.lastFocusBookmark) { - var s = t.lastFocusBookmark; - return s.startContainer ? (r = o.createRange(), r.setStart(s.startContainer, s.startOffset), r.setEnd(s.endContainer, s.endOffset)) : r = s, r - } - if (e && t.tridentSel)return t.tridentSel.getRangeAt(0); - try { - (n = t.getSel()) && (r = n.rangeCount > 0 ? n.getRangeAt(0) : n.createRange ? n.createRange() : o.createRange()) - } catch (l) { - } - if (d && r && r.setStart && o.selection) { - try { - a = o.selection.createRange() - } catch (l) { - } - a && a.item && (i = a.item(0), r = o.createRange(), r.setStartBefore(i), r.setEndAfter(i)) - } - return r || (r = o.createRange ? o.createRange() : o.body.createTextRange()), r.setStart && 9 === r.startContainer.nodeType && r.collapsed && (i = t.dom.getRoot(), r.setStart(i, 0), r.setEnd(i, 0)), t.selectedRange && t.explicitRange && (0 === r.compareBoundaryPoints(r.START_TO_START, t.selectedRange) && 0 === r.compareBoundaryPoints(r.END_TO_END, t.selectedRange) ? r = t.explicitRange : (t.selectedRange = null, t.explicitRange = null)), r - }, setRng: function (e, t) { - var n = this, r; - if (e.select)try { - e.select() - } catch (i) { - } else if (n.tridentSel) { - if (e.cloneRange)try { - return void n.tridentSel.addRange(e) - } catch (i) { - } - } else if (r = n.getSel()) { - n.explicitRange = e; - try { - r.removeAllRanges(), r.addRange(e) - } catch (i) { - } - t === !1 && r.extend && (r.collapse(e.endContainer, e.endOffset), r.extend(e.startContainer, e.startOffset)), n.selectedRange = r.rangeCount > 0 ? r.getRangeAt(0) : null - } - }, setNode: function (e) { - var t = this; - return t.setContent(t.dom.getOuterHTML(e)), e - }, getNode: function () { - function e(e, t) { - for (var n = e; e && 3 === e.nodeType && 0 === e.length;)e = t ? e.nextSibling : e.previousSibling; - return e || n - } - - var t = this, n = t.getRng(), r, i = n.startContainer, o = n.endContainer, a = n.startOffset, s = n.endOffset, l = t.dom.getRoot(); - return n ? n.setStart ? (r = n.commonAncestorContainer, !n.collapsed && (i == o && 2 > s - a && i.hasChildNodes() && (r = i.childNodes[a]), 3 === i.nodeType && 3 === o.nodeType && (i = i.length === a ? e(i.nextSibling, !0) : i.parentNode, o = 0 === s ? e(o.previousSibling, !1) : o.parentNode, i && i === o)) ? i : r && 3 == r.nodeType ? r.parentNode : r) : (r = n.item ? n.item(0) : n.parentElement(), r.ownerDocument !== t.win.document && (r = l), r) : l - }, getSelectedBlocks: function (t, n) { - var r = this, i = r.dom, o, a, s = []; - if (a = i.getRoot(), t = i.getParent(t || r.getStart(), i.isBlock), n = i.getParent(n || r.getEnd(), i.isBlock), t && t != a && s.push(t), t && n && t != n) { - o = t; - for (var l = new e(t, a); (o = l.next()) && o != n;)i.isBlock(o) && s.push(o) - } - return n && t != n && n != a && s.push(n), s - }, isForward: function () { - var e = this.dom, t = this.getSel(), n, r; - return t && t.anchorNode && t.focusNode ? (n = e.createRng(), n.setStart(t.anchorNode, t.anchorOffset), n.collapse(!0), r = e.createRng(), r.setStart(t.focusNode, t.focusOffset), r.collapse(!0), n.compareBoundaryPoints(n.START_TO_START, r) <= 0) : !0 - }, normalize: function () { - function t(t) { - function a(t, n) { - for (var r = new e(t, f.getParent(t.parentNode, f.isBlock) || p); t = r[n ? "prev" : "next"]();)if ("BR" === t.nodeName)return!0 - } - - function s(e, t) { - return e.previousSibling && e.previousSibling.nodeName == t - } - - function l(t, n) { - var r, a; - for (n = n || c, r = new e(n, f.getParent(n.parentNode, f.isBlock) || p); m = r[t ? "prev" : "next"]();) { - if (3 === m.nodeType && m.nodeValue.length > 0)return c = m, d = t ? m.nodeValue.length : 0, void(i = !0); - if (f.isBlock(m) || h[m.nodeName.toLowerCase()])return; - a = m - } - o && a && (c = a, i = !0, d = 0) - } - - var c, d, u, f = n.dom, p = f.getRoot(), m, h, g, v; - if (c = r[(t ? "start" : "end") + "Container"], d = r[(t ? "start" : "end") + "Offset"], h = f.schema.getNonEmptyElements(), v = t, 1 == c.nodeType && d > c.childNodes.length - 1 && (v = !1), 9 === c.nodeType && (c = f.getRoot(), d = 0), c === p) { - if (v && (m = c.childNodes[d > 0 ? d - 1 : 0], m && (g = m.nodeName.toLowerCase(), h[m.nodeName] || "TABLE" == m.nodeName)))return; - if (c.hasChildNodes() && (d = Math.min(!v && d > 0 ? d - 1 : d, c.childNodes.length - 1), c = c.childNodes[d], d = 0, c.hasChildNodes() && !/TABLE/.test(c.nodeName))) { - m = c, u = new e(c, p); - do { - if (3 === m.nodeType && m.nodeValue.length > 0) { - d = v ? 0 : m.nodeValue.length, c = m, i = !0; - break - } - if (h[m.nodeName.toLowerCase()]) { - d = f.nodeIndex(m), c = m.parentNode, "IMG" != m.nodeName || v || d++, i = !0; - break - } - } while (m = v ? u.next() : u.prev()) - } - } - o && (3 === c.nodeType && 0 === d && l(!0), 1 === c.nodeType && (m = c.childNodes[d], !m || "BR" !== m.nodeName || s(m, "A") || a(m) || a(m, !0) || l(!0, c.childNodes[d]))), v && !o && 3 === c.nodeType && d === c.nodeValue.length && l(!1), i && r["set" + (t ? "Start" : "End")](c, d) - } - - var n = this, r, i, o; - d || (r = n.getRng(), o = r.collapsed, t(!0), o || t(), i && (o && r.collapse(!0), n.setRng(r, n.isForward()))) - }, selectorChanged: function (e, t) { - var n = this, r; - return n.selectorChangedData || (n.selectorChangedData = {}, r = {}, n.editor.on("NodeChange", function (e) { - var t = e.element, i = n.dom, o = i.getParents(t, null, i.getRoot()), a = {}; - s(n.selectorChangedData, function (e, t) { - s(o, function (n) { - return i.is(n, t) ? (r[t] || (s(e, function (e) { - e(!0, {node: n, selector: t, parents: o}) - }), r[t] = e), a[t] = e, !1) : void 0 - }) - }), s(r, function (e, n) { - a[n] || (delete r[n], s(e, function (e) { - e(!1, {node: t, selector: n, parents: o}) - })) - }) - })), n.selectorChangedData[e] || (n.selectorChangedData[e] = []), n.selectorChangedData[e].push(t), n - }, getScrollContainer: function () { - for (var e, t = this.dom.getRoot(); t && "BODY" != t.nodeName;) { - if (t.scrollHeight > t.clientHeight) { - e = t; - break - } - t = t.parentNode - } - return e - }, scrollIntoView: function (e) { - function t(e) { - for (var t = 0, n = 0, r = e; r && r.nodeType;)t += r.offsetLeft || 0, n += r.offsetTop || 0, r = r.offsetParent; - return{x: t, y: n} - } - - var n, r, i = this, o = i.dom, a = o.getRoot(), s, l; - if ("BODY" != a.nodeName) { - var c = i.getScrollContainer(); - if (c)return n = t(e).y - t(c).y, l = c.clientHeight, s = c.scrollTop, void((s > n || n + 25 > s + l) && (c.scrollTop = s > n ? n : n - l + 25)) - } - r = o.getViewPort(i.editor.getWin()), n = o.getPos(e).y, s = r.y, l = r.h, (n < r.y || n + 25 > s + l) && i.editor.getWin().scrollTo(0, s > n ? n : n - l + 25) - }, _moveEndPoint: function (t, n, r) { - var o = n, a = new e(n, o), s = this.dom.schema.getNonEmptyElements(); - do { - if (3 == n.nodeType && 0 !== c(n.nodeValue).length)return void(r ? t.setStart(n, 0) : t.setEnd(n, n.nodeValue.length)); - if (s[n.nodeName])return void(r ? t.setStartBefore(n) : "BR" == n.nodeName ? t.setEndBefore(n) : t.setEndAfter(n)); - if (i.ie && i.ie < 11 && this.dom.isBlock(n) && this.dom.isEmpty(n))return void(r ? t.setStart(n, 0) : t.setEnd(n, 0)) - } while (n = r ? a.next() : a.prev()); - "BODY" == o.nodeName && (r ? t.setStart(o, 0) : t.setEnd(o, o.childNodes.length)) - }, destroy: function () { - this.win = null, this.controlSelection.destroy() - }}, a - }), r(B, [f], function (e) { - function t(e) { - this.walk = function (t, r) { - function i(e) { - var t; - return t = e[0], 3 === t.nodeType && t === l && c >= t.nodeValue.length && e.splice(0, 1), t = e[e.length - 1], 0 === u && e.length > 0 && t === d && 3 === t.nodeType && e.splice(e.length - 1, 1), e - } - - function o(e, t, n) { - for (var r = []; e && e != n; e = e[t])r.push(e); - return r - } - - function a(e, t) { - do { - if (e.parentNode == t)return e; - e = e.parentNode - } while (e) - } - - function s(e, t, n) { - var a = n ? "nextSibling" : "previousSibling"; - for (h = e, g = h.parentNode; h && h != t; h = g)g = h.parentNode, v = o(h == e ? h : h[a], a), v.length && (n || v.reverse(), r(i(v))) - } - - var l = t.startContainer, c = t.startOffset, d = t.endContainer, u = t.endOffset, f, p, m, h, g, v, y; - if (y = e.select("td.mce-item-selected,th.mce-item-selected"), y.length > 0)return void n(y, function (e) { - r([e]) - }); - if (1 == l.nodeType && l.hasChildNodes() && (l = l.childNodes[c]), 1 == d.nodeType && d.hasChildNodes() && (d = d.childNodes[Math.min(u - 1, d.childNodes.length - 1)]), l == d)return r(i([l])); - for (f = e.findCommonAncestor(l, d), h = l; h; h = h.parentNode) { - if (h === d)return s(l, f, !0); - if (h === f)break - } - for (h = d; h; h = h.parentNode) { - if (h === l)return s(d, f); - if (h === f)break - } - p = a(l, f) || l, m = a(d, f) || d, s(l, p, !0), v = o(p == l ? p : p.nextSibling, "nextSibling", m == d ? m.nextSibling : m), v.length && r(i(v)), s(d, m) - }, this.split = function (e) { - function t(e, t) { - return e.splitText(t) - } - - var n = e.startContainer, r = e.startOffset, i = e.endContainer, o = e.endOffset; - return n == i && 3 == n.nodeType ? r > 0 && r < n.nodeValue.length && (i = t(n, r), n = i.previousSibling, o > r ? (o -= r, n = i = t(i, o).previousSibling, o = i.nodeValue.length, r = 0) : o = 0) : (3 == n.nodeType && r > 0 && r < n.nodeValue.length && (n = t(n, r), r = 0), 3 == i.nodeType && o > 0 && o < i.nodeValue.length && (i = t(i, o).previousSibling, o = i.nodeValue.length)), {startContainer: n, startOffset: r, endContainer: i, endOffset: o} - } - } - - var n = e.each; - return t.compareRanges = function (e, t) { - if (e && t) { - if (!e.item && !e.duplicate)return e.startContainer == t.startContainer && e.startOffset == t.startOffset; - if (e.item && t.item && e.item(0) === t.item(0))return!0; - if (e.isEqual && t.isEqual && t.isEqual(e))return!0 - } - return!1 - }, t - }), r(L, [u, B, f], function (e, t, n) { - return function (r) { - function i(e) { - return e.nodeType && (e = e.nodeName), !!r.schema.getTextBlockElements()[e.toLowerCase()] - } - - function o(e, t) { - return I.getParents(e, t, I.getRoot()) - } - - function a(e) { - return 1 === e.nodeType && "_mce_caret" === e.id - } - - function s() { - d({alignleft: [ - {selector: "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li", styles: {textAlign: "left"}, defaultBlock: "div"}, - {selector: "img,table", collapsed: !1, styles: {"float": "left"}} - ], aligncenter: [ - {selector: "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li", styles: {textAlign: "center"}, defaultBlock: "div"}, - {selector: "img", collapsed: !1, styles: {display: "block", marginLeft: "auto", marginRight: "auto"}}, - {selector: "table", collapsed: !1, styles: {marginLeft: "auto", marginRight: "auto"}} - ], alignright: [ - {selector: "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li", styles: {textAlign: "right"}, defaultBlock: "div"}, - {selector: "img,table", collapsed: !1, styles: {"float": "right"}} - ], alignjustify: [ - {selector: "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li", styles: {textAlign: "justify"}, defaultBlock: "div"} - ], bold: [ - {inline: "strong", remove: "all"}, - {inline: "span", styles: {fontWeight: "bold"}}, - {inline: "b", remove: "all"} - ], italic: [ - {inline: "em", remove: "all"}, - {inline: "span", styles: {fontStyle: "italic"}}, - {inline: "i", remove: "all"} - ], underline: [ - {inline: "span", styles: {textDecoration: "underline"}, exact: !0}, - {inline: "u", remove: "all"} - ], strikethrough: [ - {inline: "span", styles: {textDecoration: "line-through"}, exact: !0}, - {inline: "strike", remove: "all"} - ], forecolor: {inline: "span", styles: {color: "%value"}, wrap_links: !1}, hilitecolor: {inline: "span", styles: {backgroundColor: "%value"}, wrap_links: !1}, fontname: {inline: "span", styles: {fontFamily: "%value"}}, fontsize: {inline: "span", styles: {fontSize: "%value"}}, fontsize_class: {inline: "span", attributes: {"class": "%value"}}, blockquote: {block: "blockquote", wrapper: 1, remove: "all"}, subscript: {inline: "sub"}, superscript: {inline: "sup"}, code: {inline: "code"}, link: {inline: "a", selector: "a", remove: "all", split: !0, deep: !0, onmatch: function () { - return!0 - }, onformat: function (e, t, n) { - et(n, function (t, n) { - I.setAttrib(e, n, t) - }) - }}, removeformat: [ - {selector: "b,strong,em,i,font,u,strike,sub,sup", remove: "all", split: !0, expand: !1, block_expand: !0, deep: !0}, - {selector: "span", attributes: ["style", "class"], remove: "empty", split: !0, expand: !1, deep: !0}, - {selector: "*", attributes: ["style", "class"], split: !1, expand: !1, deep: !0} - ]}), et("p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp".split(/\s/), function (e) { - d(e, {block: e, remove: "all"}) - }), d(r.settings.formats) - } - - function l() { - r.addShortcut("ctrl+b", "bold_desc", "Bold"), r.addShortcut("ctrl+i", "italic_desc", "Italic"), r.addShortcut("ctrl+u", "underline_desc", "Underline"); - for (var e = 1; 6 >= e; e++)r.addShortcut("ctrl+" + e, "", ["FormatBlock", !1, "h" + e]); - r.addShortcut("ctrl+7", "", ["FormatBlock", !1, "p"]), r.addShortcut("ctrl+8", "", ["FormatBlock", !1, "div"]), r.addShortcut("ctrl+9", "", ["FormatBlock", !1, "address"]) - } - - function c(e) { - return e ? O[e] : O - } - - function d(e, t) { - e && ("string" != typeof e ? et(e, function (e, t) { - d(t, e) - }) : (t = t.length ? t : [t], et(t, function (e) { - e.deep === X && (e.deep = !e.selector), e.split === X && (e.split = !e.selector || e.inline), e.remove === X && e.selector && !e.inline && (e.remove = "none"), e.selector && e.inline && (e.mixed = !0, e.block_expand = !0), "string" == typeof e.classes && (e.classes = e.classes.split(/\s+/)) - }), O[e] = t)) - } - - function u(e) { - var t; - return r.dom.getParent(e, function (e) { - return t = r.dom.getStyle(e, "text-decoration"), t && "none" !== t - }), t - } - - function f(e) { - var t; - 1 === e.nodeType && e.parentNode && 1 === e.parentNode.nodeType && (t = u(e.parentNode), r.dom.getStyle(e, "color") && t ? r.dom.setStyle(e, "text-decoration", t) : r.dom.getStyle(e, "textdecoration") === t && r.dom.setStyle(e, "text-decoration", null)) - } - - function p(t, n, o) { - function s(e, t) { - t = t || h, e && (t.onformat && t.onformat(e, t, n, o), et(t.styles, function (t, r) { - I.setStyle(e, r, E(t, n)) - }), et(t.attributes, function (t, r) { - I.setAttrib(e, r, E(t, n)) - }), et(t.classes, function (t) { - t = E(t, n), I.hasClass(e, t) || I.addClass(e, t) - })) - } - - function l() { - function t(t, n) { - var r = new e(n); - for (o = r.current(); o; o = r.prev())if (o.childNodes.length > 1 || o == t || "BR" == o.tagName)return o - } - - var n = r.selection.getRng(), i = n.startContainer, a = n.endContainer; - if (i != a && 0 === n.endOffset) { - var s = t(i, a), l = 3 == s.nodeType ? s.length : s.childNodes.length; - n.setEnd(s, l) - } - return n - } - - function d(e, t, n, r, i) { - var o = [], a = -1, s, l = -1, c = -1, d; - return et(e.childNodes, function (e, t) { - return"UL" === e.nodeName || "OL" === e.nodeName ? (a = t, s = e, !1) : void 0 - }), et(e.childNodes, function (e, n) { - "SPAN" === e.nodeName && "bookmark" == I.getAttrib(e, "data-mce-type") && (e.id == t.id + "_start" ? l = n : e.id == t.id + "_end" && (c = n)) - }), 0 >= a || a > l && c > a ? (et(tt(e.childNodes), i), 0) : (d = I.clone(n, K), et(tt(e.childNodes), function (e, t) { - (a > l && a > t || l > a && t > a) && (o.push(e), e.parentNode.removeChild(e)) - }), a > l ? e.insertBefore(d, s) : l > a && e.insertBefore(d, s.nextSibling), r.push(d), et(o, function (e) { - d.appendChild(e) - }), d) - } - - function u(e, r, o) { - var l = [], c, u, f = !0; - c = h.inline || h.block, u = I.create(c), s(u), F.walk(e, function (e) { - function p(e) { - var y, C, x, _, N; - return N = f, y = e.nodeName.toLowerCase(), C = e.parentNode.nodeName.toLowerCase(), 1 === e.nodeType && J(e) && (N = f, f = "true" === J(e), _ = !0), w(y, "br") ? (v = 0, void(h.block && I.remove(e))) : h.wrapper && g(e, t, n) ? void(v = 0) : f && !_ && h.block && !h.wrapper && i(y) && W(C, c) ? (e = I.rename(e, c), s(e), l.push(e), void(v = 0)) : h.selector && (et(m, function (t) { - "collapsed"in t && t.collapsed !== b || I.is(e, t.selector) && !a(e) && (s(e, t), x = !0) - }), !h.inline || x) ? void(v = 0) : void(!f || _ || !W(c, y) || !W(C, c) || !o && 3 === e.nodeType && 1 === e.nodeValue.length && 65279 === e.nodeValue.charCodeAt(0) || a(e) || h.inline && V(e) ? "li" == y && r ? v = d(e, r, u, l, p) : (v = 0, et(tt(e.childNodes), p), _ && (f = N), v = 0) : (v || (v = I.clone(u, K), e.parentNode.insertBefore(v, e), l.push(v)), v.appendChild(e))) - } - - var v; - et(e, p) - }), h.wrap_links === !1 && et(l, function (e) { - function t(e) { - var n, r, i; - if ("A" === e.nodeName) { - for (r = I.clone(u, K), l.push(r), i = tt(e.childNodes), n = 0; n < i.length; n++)r.appendChild(i[n]); - e.appendChild(r) - } - et(tt(e.childNodes), t) - } - - t(e) - }), et(l, function (e) { - function r(e) { - var t = 0; - return et(e.childNodes, function (e) { - k(e) || L(e) || t++ - }), t - } - - function i(e) { - var t, n; - return et(e.childNodes, function (e) { - return 1 != e.nodeType || L(e) || a(e) ? void 0 : (t = e, K) - }), t && x(t, h) && (n = I.clone(t, K), s(n), I.replace(n, e, Y), I.remove(t, 1)), n || e - } - - var o; - if (o = r(e), (l.length > 1 || !V(e)) && 0 === o)return void I.remove(e, 1); - if (h.inline || h.wrapper) { - if (h.exact || 1 !== o || (e = i(e)), et(m, function (t) { - et(I.select(t.inline, e), function (e) { - var r; - if (t.wrap_links === !1) { - r = e.parentNode; - do if ("A" === r.nodeName)return; while (r = r.parentNode) - } - R(t, n, e, t.exact ? e : null) - }) - }), g(e.parentNode, t, n))return I.remove(e, 1), e = 0, Y; - h.merge_with_parents && I.getParent(e.parentNode, function (r) { - return g(r, t, n) ? (I.remove(e, 1), e = 0, Y) : void 0 - }), e && h.merge_siblings !== !1 && (e = H(B(e), e), e = H(e, B(e, Y))) - } - }) - } - - var m = c(t), h = m[0], v, y, b = !o && z.isCollapsed(); - if (h)if (o)o.nodeType ? (y = I.createRng(), y.setStartBefore(o), y.setEndAfter(o), u(T(y, m), null, !0)) : u(o, null, !0); else if (b && h.inline && !I.select("td.mce-item-selected,th.mce-item-selected").length)D("apply", t, n); else { - var C = r.selection.getNode(); - U || !m[0].defaultBlock || I.getParent(C, I.isBlock) || p(m[0].defaultBlock), r.selection.setRng(l()), v = z.getBookmark(), u(T(z.getRng(Y), m), v), h.styles && (h.styles.color || h.styles.textDecoration) && (nt(C, f, "childNodes"), f(C)), z.moveToBookmark(v), P(z.getRng(Y)), r.nodeChanged() - } - } - - function m(e, t, n) { - function i(e) { - var n, r, o, a, s; - if (1 === e.nodeType && J(e) && (a = b, b = "true" === J(e), s = !0), n = tt(e.childNodes), b && !s)for (r = 0, o = p.length; o > r && !R(p[r], t, e, e); r++); - if (m.deep && n.length) { - for (r = 0, o = n.length; o > r; r++)i(n[r]); - s && (b = a) - } - } - - function a(n) { - var r; - return et(o(n.parentNode).reverse(), function (n) { - var i; - r || "_start" == n.id || "_end" == n.id || (i = g(n, e, t), i && i.split !== !1 && (r = n)) - }), r - } - - function s(e, n, r, i) { - var o, a, s, l, c, d; - if (e) { - for (d = e.parentNode, o = n.parentNode; o && o != d; o = o.parentNode) { - for (a = I.clone(o, K), c = 0; c < p.length; c++)if (R(p[c], t, a, a)) { - a = 0; - break - } - a && (s && a.appendChild(s), l || (l = a), s = a) - } - !i || m.mixed && V(e) || (n = I.split(e, n)), s && (r.parentNode.insertBefore(s, r), l.appendChild(r)) - } - return n - } - - function l(e) { - return s(a(e), e, e, !0) - } - - function d(e) { - var t = I.get(e ? "_start" : "_end"), n = t[e ? "firstChild" : "lastChild"]; - return L(n) && (n = n[e ? "firstChild" : "lastChild"]), I.remove(t, !0), n - } - - function f(e) { - var t, n, o = e.commonAncestorContainer; - e = T(e, p, Y), m.split && (t = M(e, Y), n = M(e), t != n ? (/^(TR|TH|TD)$/.test(t.nodeName) && t.firstChild && (t = "TR" == t.nodeName ? t.firstChild.firstChild || t : t.firstChild || t), o && /^T(HEAD|BODY|FOOT|R)$/.test(o.nodeName) && /^(TH|TD)$/.test(n.nodeName) && n.firstChild && (n = n.firstChild || n), t = S(t, "span", {id: "_start", "data-mce-type": "bookmark"}), n = S(n, "span", {id: "_end", "data-mce-type": "bookmark"}), l(t), l(n), t = d(Y), n = d()) : t = n = l(t), e.startContainer = t.parentNode, e.startOffset = q(t), e.endContainer = n.parentNode, e.endOffset = q(n) + 1), F.walk(e, function (e) { - et(e, function (e) { - i(e), 1 === e.nodeType && "underline" === r.dom.getStyle(e, "text-decoration") && e.parentNode && "underline" === u(e.parentNode) && R({deep: !1, exact: !0, inline: "span", styles: {textDecoration: "underline"}}, null, e) - }) - }) - } - - var p = c(e), m = p[0], h, y, b = !0; - return n ? void(n.nodeType ? (y = I.createRng(), y.setStartBefore(n), y.setEndAfter(n), f(y)) : f(n)) : void(z.isCollapsed() && m.inline && !I.select("td.mce-item-selected,th.mce-item-selected").length ? D("remove", e, t) : (h = z.getBookmark(), f(z.getRng(Y)), z.moveToBookmark(h), m.inline && v(e, t, z.getStart()) && P(z.getRng(!0)), r.nodeChanged())) - } - - function h(e, t, n) { - var r = c(e); - !v(e, t, n) || "toggle"in r[0] && !r[0].toggle ? p(e, t, n) : m(e, t, n) - } - - function g(e, t, n, r) { - function i(e, t, i) { - var o, a, s = t[i], l; - if (t.onmatch)return t.onmatch(e, t, i); - if (s)if (s.length === X) { - for (o in s)if (s.hasOwnProperty(o)) { - if (a = "attributes" === i ? I.getAttrib(e, o) : _(e, o), r && !a && !t.exact)return; - if ((!r || t.exact) && !w(a, N(E(s[o], n), o)))return - } - } else for (l = 0; l < s.length; l++)if ("attributes" === i ? I.getAttrib(e, s[l]) : _(e, s[l]))return t; - return t - } - - var o = c(t), a, s, l; - if (o && e)for (s = 0; s < o.length; s++)if (a = o[s], x(e, a) && i(e, a, "attributes") && i(e, a, "styles")) { - if (l = a.classes)for (s = 0; s < l.length; s++)if (!I.hasClass(e, l[s]))return; - return a - } - } - - function v(e, t, n) { - function r(n) { - var r = I.getRoot(); - return n === r ? !1 : (n = I.getParent(n, function (n) { - return n.parentNode === r || !!g(n, e, t, !0) - }), g(n, e, t)) - } - - var i; - return n ? r(n) : (n = z.getNode(), r(n) ? Y : (i = z.getStart(), i != n && r(i) ? Y : K)) - } - - function y(e, t) { - var n, r = [], i = {}; - return n = z.getStart(), I.getParent(n, function (n) { - var o, a; - for (o = 0; o < e.length; o++)a = e[o], !i[a] && g(n, a, t) && (i[a] = !0, r.push(a)) - }, I.getRoot()), r - } - - function b(e) { - var t = c(e), n, r, i, a, s; - if (t)for (n = z.getStart(), r = o(n), a = t.length - 1; a >= 0; a--) { - if (s = t[a].selector, !s || t[a].defaultBlock)return Y; - for (i = r.length - 1; i >= 0; i--)if (I.is(r[i], s))return Y - } - return K - } - - function C(e, t, n) { - var i; - return G || (G = {}, i = {}, r.on("NodeChange", function (e) { - var t = o(e.element), n = {}; - et(G, function (e, r) { - et(t, function (o) { - return g(o, r, {}, e.similar) ? (i[r] || (et(e, function (e) { - e(!0, {node: o, format: r, parents: t}) - }), i[r] = e), n[r] = e, !1) : void 0 - }) - }), et(i, function (r, o) { - n[o] || (delete i[o], et(r, function (n) { - n(!1, {node: e.element, format: o, parents: t}) - })) - }) - })), et(e.split(","), function (e) { - G[e] || (G[e] = [], G[e].similar = n), G[e].push(t) - }), this - } - - function x(e, t) { - return w(e, t.inline) ? Y : w(e, t.block) ? Y : t.selector ? 1 == e.nodeType && I.is(e, t.selector) : void 0 - } - - function w(e, t) { - return e = e || "", t = t || "", e = "" + (e.nodeName || e), t = "" + (t.nodeName || t), e.toLowerCase() == t.toLowerCase() - } - - function _(e, t) { - return N(I.getStyle(e, t), t) - } - - function N(e, t) { - return("color" == t || "backgroundColor" == t) && (e = I.toHex(e)), "fontWeight" == t && 700 == e && (e = "bold"), "fontFamily" == t && (e = e.replace(/[\'\"]/g, "").replace(/,\s+/g, ",")), "" + e - } - - function E(e, t) { - return"string" != typeof e ? e = e(t) : t && (e = e.replace(/%(\w+)/g, function (e, n) { - return t[n] || e - })), e - } - - function k(e) { - return e && 3 === e.nodeType && /^([\t \r\n]+|)$/.test(e.nodeValue) - } - - function S(e, t, n) { - var r = I.create(t, n); - return e.parentNode.insertBefore(r, e), r.appendChild(e), r - } - - function T(t, n, a) { - function s(e) { - function t(e) { - return"BR" == e.nodeName && e.getAttribute("data-mce-bogus") && !e.nextSibling - } - - var r, i, o, a, s; - if (r = i = e ? g : y, a = e ? "previousSibling" : "nextSibling", s = I.getRoot(), 3 == r.nodeType && !k(r) && (e ? v > 0 : b < r.nodeValue.length))return r; - for (; ;) { - if (!n[0].block_expand && V(i))return i; - for (o = i[a]; o; o = o[a])if (!L(o) && !k(o) && !t(o))return i; - if (i.parentNode == s) { - r = i; - break - } - i = i.parentNode - } - return r - } - - function l(e, t) { - for (t === X && (t = 3 === e.nodeType ? e.length : e.childNodes.length); e && e.hasChildNodes();)e = e.childNodes[t], e && (t = 3 === e.nodeType ? e.length : e.childNodes.length); - return{node: e, offset: t} - } - - function c(e) { - for (var t = e; t;) { - if (1 === t.nodeType && J(t))return"false" === J(t) ? t : e; - t = t.parentNode - } - return e - } - - function d(t, n, i) { - function o(e, t) { - var n, r, o = e.nodeValue; - return"undefined" == typeof t && (t = i ? o.length : 0), i ? (n = o.lastIndexOf(" ", t), r = o.lastIndexOf("\xa0", t), n = n > r ? n : r, -1 === n || a || n++) : (n = o.indexOf(" ", t), r = o.indexOf("\xa0", t), n = -1 !== n && (-1 === r || r > n) ? n : r), n - } - - var s, l, c, d; - if (3 === t.nodeType) { - if (c = o(t, n), -1 !== c)return{container: t, offset: c}; - d = t - } - for (s = new e(t, I.getParent(t, V) || r.getBody()); l = s[i ? "prev" : "next"]();)if (3 === l.nodeType) { - if (d = l, c = o(l), -1 !== c)return{container: l, offset: c} - } else if (V(l))break; - return d ? (n = i ? 0 : d.length, {container: d, offset: n}) : void 0 - } - - function u(e, r) { - var i, a, s, l; - for (3 == e.nodeType && 0 === e.nodeValue.length && e[r] && (e = e[r]), i = o(e), a = 0; a < i.length; a++)for (s = 0; s < n.length; s++)if (l = n[s], !("collapsed"in l && l.collapsed !== t.collapsed) && I.is(i[a], l.selector))return i[a]; - return e - } - - function f(e, t) { - var r, a = I.getRoot(); - if (n[0].wrapper || (r = I.getParent(e, n[0].block, a)), r || (r = I.getParent(3 == e.nodeType ? e.parentNode : e, function (e) { - return e != a && i(e) - })), r && n[0].wrapper && (r = o(r, "ul,ol").reverse()[0] || r), !r)for (r = e; r[t] && !V(r[t]) && (r = r[t], !w(r, "br"));); - return r || e - } - - var p, m, h, g = t.startContainer, v = t.startOffset, y = t.endContainer, b = t.endOffset; - if (1 == g.nodeType && g.hasChildNodes() && (p = g.childNodes.length - 1, g = g.childNodes[v > p ? p : v], 3 == g.nodeType && (v = 0)), 1 == y.nodeType && y.hasChildNodes() && (p = y.childNodes.length - 1, y = y.childNodes[b > p ? p : b - 1], 3 == y.nodeType && (b = y.nodeValue.length)), g = c(g), y = c(y), (L(g.parentNode) || L(g)) && (g = L(g) ? g : g.parentNode, g = g.nextSibling || g, 3 == g.nodeType && (v = 0)), (L(y.parentNode) || L(y)) && (y = L(y) ? y : y.parentNode, y = y.previousSibling || y, 3 == y.nodeType && (b = y.length)), n[0].inline && (t.collapsed && (h = d(g, v, !0), h && (g = h.container, v = h.offset), h = d(y, b), h && (y = h.container, b = h.offset)), m = l(y, b), m.node)) { - for (; m.node && 0 === m.offset && m.node.previousSibling;)m = l(m.node.previousSibling); - m.node && m.offset > 0 && 3 === m.node.nodeType && " " === m.node.nodeValue.charAt(m.offset - 1) && m.offset > 1 && (y = m.node, y.splitText(m.offset - 1)) - } - return(n[0].inline || n[0].block_expand) && (n[0].inline && 3 == g.nodeType && 0 !== v || (g = s(!0)), n[0].inline && 3 == y.nodeType && b !== y.nodeValue.length || (y = s())), n[0].selector && n[0].expand !== K && !n[0].inline && (g = u(g, "previousSibling"), y = u(y, "nextSibling")), (n[0].block || n[0].selector) && (g = f(g, "previousSibling"), y = f(y, "nextSibling"), n[0].block && (V(g) || (g = s(!0)), V(y) || (y = s()))), 1 == g.nodeType && (v = q(g), g = g.parentNode), 1 == y.nodeType && (b = q(y) + 1, y = y.parentNode), {startContainer: g, startOffset: v, endContainer: y, endOffset: b} - } - - function R(e, t, n, r) { - var i, o, a; - if (!x(n, e))return K; - if ("all" != e.remove)for (et(e.styles, function (e, i) { - e = N(E(e, t), i), "number" == typeof i && (i = e, r = 0), (!r || w(_(r, i), e)) && I.setStyle(n, i, ""), a = 1 - }), a && "" === I.getAttrib(n, "style") && (n.removeAttribute("style"), n.removeAttribute("data-mce-style")), et(e.attributes, function (e, i) { - var o; - if (e = E(e, t), "number" == typeof i && (i = e, r = 0), !r || w(I.getAttrib(r, i), e)) { - if ("class" == i && (e = I.getAttrib(n, i), e && (o = "", et(e.split(/\s+/), function (e) { - /mce\w+/.test(e) && (o += (o ? " " : "") + e) - }), o)))return void I.setAttrib(n, i, o); - "class" == i && n.removeAttribute("className"), $.test(i) && n.removeAttribute("data-mce-" + i), n.removeAttribute(i) - } - }), et(e.classes, function (e) { - e = E(e, t), (!r || I.hasClass(r, e)) && I.removeClass(n, e) - }), o = I.getAttribs(n), i = 0; i < o.length; i++)if (0 !== o[i].nodeName.indexOf("_"))return K; - return"none" != e.remove ? (A(n, e), Y) : void 0 - } - - function A(e, t) { - function n(e, t, n) { - return e = B(e, t, n), !e || "BR" == e.nodeName || V(e) - } - - var i = e.parentNode, o; - t.block && (U ? i == I.getRoot() && (t.list_block && w(e, t.list_block) || et(tt(e.childNodes), function (e) { - W(U, e.nodeName.toLowerCase()) ? o ? o.appendChild(e) : (o = S(e, U), I.setAttribs(o, r.settings.forced_root_block_attrs)) : o = 0 - })) : V(e) && !V(i) && (n(e, K) || n(e.firstChild, Y, 1) || e.insertBefore(I.create("br"), e.firstChild), n(e, Y) || n(e.lastChild, K, 1) || e.appendChild(I.create("br")))), t.selector && t.inline && !w(t.inline, e) || I.remove(e, 1) - } - - function B(e, t, n) { - if (e)for (t = t ? "nextSibling" : "previousSibling", e = n ? e : e[t]; e; e = e[t])if (1 == e.nodeType && !k(e))return e - } - - function L(e) { - return e && 1 == e.nodeType && "bookmark" == e.getAttribute("data-mce-type") - } - - function H(e, t) { - function n(e, t) { - function n(e) { - var t = {}; - return et(I.getAttribs(e), function (n) { - var r = n.nodeName.toLowerCase(); - 0 !== r.indexOf("_") && "style" !== r && "data-mce-style" !== r && (t[r] = I.getAttrib(e, r)) - }), t - } - - function r(e, t) { - var n, r; - for (r in e)if (e.hasOwnProperty(r)) { - if (n = t[r], n === X)return K; - if (e[r] != n)return K; - delete t[r] - } - for (r in t)if (t.hasOwnProperty(r))return K; - return Y - } - - return e.nodeName != t.nodeName ? K : r(n(e), n(t)) ? r(I.parseStyle(I.getAttrib(e, "style")), I.parseStyle(I.getAttrib(t, "style"))) ? Y : K : K - } - - function r(e, t) { - for (i = e; i; i = i[t]) { - if (3 == i.nodeType && 0 !== i.nodeValue.length)return e; - if (1 == i.nodeType && !L(i))return i - } - return e - } - - var i, o; - if (e && t && (e = r(e, "previousSibling"), t = r(t, "nextSibling"), n(e, t))) { - for (i = e.nextSibling; i && i != t;)o = i, i = i.nextSibling, e.appendChild(o); - return I.remove(t), et(tt(t.childNodes), function (t) { - e.appendChild(t) - }), e - } - return t - } - - function M(t, n) { - var i, o, a; - return i = t[n ? "startContainer" : "endContainer"], o = t[n ? "startOffset" : "endOffset"], 1 == i.nodeType && (a = i.childNodes.length - 1, !n && o && o--, i = i.childNodes[o > a ? a : o]), 3 === i.nodeType && n && o >= i.nodeValue.length && (i = new e(i, r.getBody()).next() || i), 3 !== i.nodeType || n || 0 !== o || (i = new e(i, r.getBody()).prev() || i), i - } - - function D(t, n, o) { - function a(e) { - var t = I.create("span", {id: y, "data-mce-bogus": !0, style: b ? "color:red" : ""}); - return e && t.appendChild(r.getDoc().createTextNode(j)), t - } - - function s(e, t) { - for (; e;) { - if (3 === e.nodeType && e.nodeValue !== j || e.childNodes.length > 1)return!1; - t && 1 === e.nodeType && t.push(e), e = e.firstChild - } - return!0 - } - - function l(e) { - for (; e;) { - if (e.id === y)return e; - e = e.parentNode - } - } - - function d(t) { - var n; - if (t)for (n = new e(t, t), t = n.current(); t; t = n.next())if (3 === t.nodeType)return t - } - - function u(e, t) { - var n, r; - if (e)r = z.getRng(!0), s(e) ? (t !== !1 && (r.setStartBefore(e), r.setEndBefore(e)), I.remove(e)) : (n = d(e), n.nodeValue.charAt(0) === j && (n = n.deleteData(0, 1)), I.remove(e, 1)), z.setRng(r); else if (e = l(z.getStart()), !e)for (; e = I.get(y);)u(e, !1) - } - - function f() { - var e, t, r, i, s, u, f; - e = z.getRng(!0), i = e.startOffset, u = e.startContainer, f = u.nodeValue, t = l(z.getStart()), t && (r = d(t)), f && i > 0 && i < f.length && /\w/.test(f.charAt(i)) && /\w/.test(f.charAt(i - 1)) ? (s = z.getBookmark(), e.collapse(!0), e = T(e, c(n)), e = F.split(e), p(n, o, e), z.moveToBookmark(s)) : (t && r.nodeValue === j ? p(n, o, t) : (t = a(!0), r = t.firstChild, e.insertNode(t), i = 1, p(n, o, t)), z.setCursorLocation(r, i)) - } - - function h() { - var e = z.getRng(!0), t, r, s, l, d, u, f = [], p, h; - for (t = e.startContainer, r = e.startOffset, d = t, 3 == t.nodeType && ((r != t.nodeValue.length || t.nodeValue === j) && (l = !0), d = d.parentNode); d;) { - if (g(d, n, o)) { - u = d; - break - } - d.nextSibling && (l = !0), f.push(d), d = d.parentNode - } - if (u)if (l)s = z.getBookmark(), e.collapse(!0), e = T(e, c(n), !0), e = F.split(e), m(n, o, e), z.moveToBookmark(s); else { - for (h = a(), d = h, p = f.length - 1; p >= 0; p--)d.appendChild(I.clone(f[p], !1)), d = d.firstChild; - d.appendChild(I.doc.createTextNode(j)), d = d.firstChild; - var v = I.getParent(u, i); - v && I.isEmpty(v) ? u.parentNode.replaceChild(h, u) : I.insertAfter(h, u), z.setCursorLocation(d, 1), I.isEmpty(u) && I.remove(u) - } - } - - function v() { - var e; - e = l(z.getStart()), e && !I.isEmpty(e) && nt(e, function (e) { - 1 != e.nodeType || e.id === y || I.isEmpty(e) || I.setAttrib(e, "data-mce-bogus", null) - }, "childNodes") - } - - var y = "_mce_caret", b = r.settings.caret_debug; - r._hasCaretEvents || (Z = function () { - var e = [], t; - if (s(l(z.getStart()), e))for (t = e.length; t--;)I.setAttrib(e[t], "data-mce-bogus", "1") - }, Q = function (e) { - var t = e.keyCode; - u(), (8 == t || 37 == t || 39 == t) && u(l(z.getStart())), v() - }, r.on("SetContent", function (e) { - e.selection && v() - }), r._hasCaretEvents = !0), "apply" == t ? f() : h() - } - - function P(t) { - var n = t.startContainer, r = t.startOffset, i, o, a, s, l; - if (3 == n.nodeType && r >= n.nodeValue.length && (r = q(n), n = n.parentNode, i = !0), 1 == n.nodeType)for (s = n.childNodes, n = s[Math.min(r, s.length - 1)], o = new e(n, I.getParent(n, I.isBlock)), (r > s.length - 1 || i) && o.next(), a = o.current(); a; a = o.next())if (3 == a.nodeType && !k(a))return l = I.create("a", null, j), a.parentNode.insertBefore(l, a), t.setStart(a, 0), z.setRng(t), void I.remove(l) - } - - var O = {}, I = r.dom, z = r.selection, F = new t(I), W = r.schema.isValidChild, V = I.isBlock, U = r.settings.forced_root_block, q = I.nodeIndex, j = "\ufeff", $ = /^(src|href|style)$/, K = !1, Y = !0, G, X, J = I.getContentEditable, Q, Z, et = n.each, tt = n.grep, nt = n.walk, rt = n.extend; - rt(this, {get: c, register: d, apply: p, remove: m, toggle: h, match: v, matchAll: y, matchNode: g, canApply: b, formatChanged: C}), s(), l(), r.on("BeforeGetContent", function () { - Z && Z() - }), r.on("mouseup keydown", function (e) { - Q && Q(e) - }) - } - }), r(H, [h, f], function (e, t) { - var n = t.trim, r; - return r = new RegExp(["<span[^>]+data-mce-bogus[^>]+>[\u200b\ufeff]+<\\/span>", "<div[^>]+data-mce-bogus[^>]+><\\/div>", '\\s?data-mce-selected="[^"]+"'].join("|"), "gi"), function (t) { - function i() { - return n(t.getContent({format: "raw", no_events: 1}).replace(r, "")) - } - - function o() { - a.typing = !1, a.add() - } - - var a, s = 0, l = [], c, d, u; - return t.on("init", function () { - a.add() - }), t.on("BeforeExecCommand", function (e) { - var t = e.command; - "Undo" != t && "Redo" != t && "mceRepaint" != t && a.beforeChange() - }), t.on("ExecCommand", function (e) { - var t = e.command; - "Undo" != t && "Redo" != t && "mceRepaint" != t && a.add() - }), t.on("ObjectResizeStart", function () { - a.beforeChange() - }), t.on("SaveContent ObjectResized", o), t.dom.bind(t.dom.getRoot(), "dragend", o), t.dom.bind(t.getBody(), "focusout", function () { - !t.removed && a.typing && o() - }), t.on("KeyUp", function (n) { - var r = n.keyCode; - (r >= 33 && 36 >= r || r >= 37 && 40 >= r || 45 == r || 13 == r || n.ctrlKey) && (o(), t.nodeChanged()), (46 == r || 8 == r || e.mac && (91 == r || 93 == r)) && t.nodeChanged(), d && a.typing && (t.isDirty() || (t.isNotDirty = !l[0] || i() == l[0].content, t.isNotDirty || t.fire("change", {level: l[0], lastLevel: null})), t.fire("TypingUndo"), d = !1, t.nodeChanged()) - }), t.on("KeyDown", function (e) { - var t = e.keyCode; - return t >= 33 && 36 >= t || t >= 37 && 40 >= t || 45 == t ? void(a.typing && o()) : void((16 > t || t > 20) && 224 != t && 91 != t && !a.typing && (a.beforeChange(), a.typing = !0, a.add(), d = !0)) - }), t.on("MouseDown", function () { - a.typing && o() - }), t.addShortcut("ctrl+z", "", "Undo"), t.addShortcut("ctrl+y,ctrl+shift+z", "", "Redo"), t.on("AddUndo Undo Redo ClearUndos MouseUp", function (e) { - e.isDefaultPrevented() || t.nodeChanged() - }), a = {data: l, typing: !1, beforeChange: function () { - u || (c = t.selection.getBookmark(2, !0)) - }, add: function (e) { - var n, r = t.settings, o; - if (e = e || {}, e.content = i(), u || t.fire("BeforeAddUndo", {level: e}).isDefaultPrevented())return null; - if (o = l[s], o && o.content == e.content)return null; - if (l[s] && (l[s].beforeBookmark = c), r.custom_undo_redo_levels && l.length > r.custom_undo_redo_levels) { - for (n = 0; n < l.length - 1; n++)l[n] = l[n + 1]; - l.length--, s = l.length - } - e.bookmark = t.selection.getBookmark(2, !0), s < l.length - 1 && (l.length = s + 1), l.push(e), s = l.length - 1; - var a = {level: e, lastLevel: o}; - return t.fire("AddUndo", a), s > 0 && (t.fire("change", a), t.isNotDirty = !1), e - }, undo: function () { - var e; - return a.typing && (a.add(), a.typing = !1), s > 0 && (e = l[--s], 0 === s && (t.isNotDirty = !0), t.setContent(e.content, {format: "raw"}), t.selection.moveToBookmark(e.beforeBookmark), t.fire("undo", {level: e})), e - }, redo: function () { - var e; - return s < l.length - 1 && (e = l[++s], t.setContent(e.content, {format: "raw"}), t.selection.moveToBookmark(e.bookmark), t.fire("redo", {level: e})), e - }, clear: function () { - l = [], s = 0, a.typing = !1, t.fire("ClearUndos") - }, hasUndo: function () { - return s > 0 || a.typing && l[0] && i() != l[0].content - }, hasRedo: function () { - return s < l.length - 1 && !this.typing - }, transact: function (e) { - a.beforeChange(), u = !0, e(), u = !1, a.add() - }} - } - }), r(M, [u, h], function (e, t) { - var n = t.ie && t.ie < 11; - return function (r) { - function i(i) { - function u(e) { - return e && o.isBlock(e) && !/^(TD|TH|CAPTION|FORM)$/.test(e.nodeName) && !/^(fixed|absolute)/i.test(e.style.position) && "true" !== o.getContentEditable(e) - } - - function f(e) { - var t; - o.isBlock(e) && (t = a.getRng(), e.appendChild(o.create("span", null, "\xa0")), a.select(e), e.lastChild.outerHTML = "", a.setRng(t)) - } - - function p(e) { - for (var t = e, n = [], r; t = t.firstChild;) { - if (o.isBlock(t))return; - 1 != t.nodeType || d[t.nodeName.toLowerCase()] || n.push(t) - } - for (r = n.length; r--;)t = n[r], !t.hasChildNodes() || t.firstChild == t.lastChild && "" === t.firstChild.nodeValue ? o.remove(t) : "A" == t.nodeName && " " === (t.innerText || t.textContent) && o.remove(t) - } - - function m(n) { - function r(e) { - for (; e;) { - if (1 == e.nodeType || 3 == e.nodeType && e.data && /[\r\n\s]/.test(e.data))return e; - e = e.nextSibling - } - } - - var i, s, l, c = n, u; - if (t.ie && t.ie < 9 && A && A.firstChild && A.firstChild == A.lastChild && "BR" == A.firstChild.tagName && o.remove(A.firstChild), "LI" == n.nodeName) { - var f = r(n.firstChild); - f && /^(UL|OL)$/.test(f.nodeName) && n.insertBefore(o.doc.createTextNode("\xa0"), n.firstChild) - } - if (l = o.createRng(), n.hasChildNodes()) { - for (i = new e(n, n); s = i.current();) { - if (3 == s.nodeType) { - l.setStart(s, 0), l.setEnd(s, 0); - break - } - if (d[s.nodeName.toLowerCase()]) { - l.setStartBefore(s), l.setEndBefore(s); - break - } - c = s, s = i.next() - } - s || (l.setStart(c, 0), l.setEnd(c, 0)) - } else"BR" == n.nodeName ? n.nextSibling && o.isBlock(n.nextSibling) ? ((!B || 9 > B) && (u = o.create("br"), n.parentNode.insertBefore(u, n)), l.setStartBefore(n), l.setEndBefore(n)) : (l.setStartAfter(n), l.setEndAfter(n)) : (l.setStart(n, 0), l.setEnd(n, 0)); - a.setRng(l), o.remove(u), a.scrollIntoView(n) - } - - function h(e) { - var t = s.forced_root_block; - t && t.toLowerCase() === e.tagName.toLowerCase() && o.setAttribs(e, s.forced_root_block_attrs) - } - - function g(e) { - var t = T, r, i, a; - if (e || "TABLE" == P ? (r = o.create(e || I), h(r)) : r = A.cloneNode(!1), a = r, s.keep_styles !== !1)do if (/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(t.nodeName)) { - if ("_mce_caret" == t.id)continue; - i = t.cloneNode(!1), o.setAttrib(i, "id", ""), r.hasChildNodes() ? (i.appendChild(r.firstChild), r.appendChild(i)) : (a = i, r.appendChild(i)) - } while (t = t.parentNode); - return n || (a.innerHTML = '<br data-mce-bogus="1">'), r - } - - function v(t) { - var n, r, i; - if (3 == T.nodeType && (t ? R > 0 : R < T.nodeValue.length))return!1; - if (T.parentNode == A && z && !t)return!0; - if (t && 1 == T.nodeType && T == A.firstChild)return!0; - if ("TABLE" === T.nodeName || T.previousSibling && "TABLE" == T.previousSibling.nodeName)return z && !t || !z && t; - for (n = new e(T, A), 3 == T.nodeType && (t && 0 === R ? n.prev() : t || R != T.nodeValue.length || n.next()); r = n.current();) { - if (1 === r.nodeType) { - if (!r.getAttribute("data-mce-bogus") && (i = r.nodeName.toLowerCase(), d[i] && "br" !== i))return!1 - } else if (3 === r.nodeType && !/^[ \t\r\n]*$/.test(r.nodeValue))return!1; - t ? n.prev() : n.next() - } - return!0 - } - - function y(e, t) { - var n, i, a, s, l, d, f = I || "P"; - if (i = o.getParent(e, o.isBlock), d = r.getBody().nodeName.toLowerCase(), !i || !u(i)) { - if (i = i || S, !i.hasChildNodes())return n = o.create(f), h(n), i.appendChild(n), E.setStart(n, 0), E.setEnd(n, 0), n; - for (s = e; s.parentNode != i;)s = s.parentNode; - for (; s && !o.isBlock(s);)a = s, s = s.previousSibling; - if (a && c.isValidChild(d, f.toLowerCase())) { - for (n = o.create(f), h(n), a.parentNode.insertBefore(n, a), s = a; s && !o.isBlock(s);)l = s.nextSibling, n.appendChild(s), s = l; - E.setStart(e, t), E.setEnd(e, t) - } - } - return e - } - - function b() { - function e(e) { - for (var t = D[e ? "firstChild" : "lastChild"]; t && 1 != t.nodeType;)t = t[e ? "nextSibling" : "previousSibling"]; - return t === A - } - - function t() { - var e = D.parentNode; - return"LI" == e.nodeName ? e : D - } - - var n = D.parentNode.nodeName; - /^(OL|UL|LI)$/.test(n) && (I = "LI"), H = I ? g(I) : o.create("BR"), e(!0) && e() ? "LI" == n ? o.insertAfter(H, t()) : o.replace(H, D) : e(!0) ? "LI" == n ? (o.insertAfter(H, t()), H.appendChild(o.doc.createTextNode(" ")), H.appendChild(D)) : D.parentNode.insertBefore(H, D) : e() ? (o.insertAfter(H, t()), f(H)) : (D = t(), k = E.cloneRange(), k.setStartAfter(A), k.setEndAfter(D), M = k.extractContents(), "LI" == I && "LI" == M.firstChild.nodeName ? (H = M.firstChild, o.insertAfter(M, D)) : (o.insertAfter(M, D), o.insertAfter(H, D))), o.remove(A), m(H), l.add() - } - - function C() { - for (var t = new e(T, A), n; n = t.next();)if (d[n.nodeName.toLowerCase()] || n.length > 0)return!0 - } - - function x() { - var e, t, r; - T && 3 == T.nodeType && R >= T.nodeValue.length && (n || C() || (e = o.create("br"), E.insertNode(e), E.setStartAfter(e), E.setEndAfter(e), t = !0)), e = o.create("br"), E.insertNode(e), n && "PRE" == P && (!B || 8 > B) && e.parentNode.insertBefore(o.doc.createTextNode("\r"), e), r = o.create("span", {}, " "), e.parentNode.insertBefore(r, e), a.scrollIntoView(r), o.remove(r), t ? (E.setStartBefore(e), E.setEndBefore(e)) : (E.setStartAfter(e), E.setEndAfter(e)), a.setRng(E), l.add() - } - - function w(e) { - do 3 === e.nodeType && (e.nodeValue = e.nodeValue.replace(/^[\r\n]+/, "")), e = e.firstChild; while (e) - } - - function _(e) { - var t = o.getRoot(), n, r; - for (n = e; n !== t && "false" !== o.getContentEditable(n);)"true" === o.getContentEditable(n) && (r = n), n = n.parentNode; - return n !== t ? r : t - } - - function N(e) { - var t; - n || (e.normalize(), t = e.lastChild, (!t || /^(left|right)$/gi.test(o.getStyle(t, "float", !0))) && o.add(e, "br")) - } - - var E = a.getRng(!0), k, S, T, R, A, B, L, H, M, D, P, O, I, z; - if (!E.collapsed)return void r.execCommand("Delete"); - if (!i.isDefaultPrevented() && (T = E.startContainer, R = E.startOffset, I = (s.force_p_newlines ? "p" : "") || s.forced_root_block, I = I ? I.toUpperCase() : "", B = o.doc.documentMode, L = i.shiftKey, 1 == T.nodeType && T.hasChildNodes() && (z = R > T.childNodes.length - 1, T = T.childNodes[Math.min(R, T.childNodes.length - 1)] || T, R = z && 3 == T.nodeType ? T.nodeValue.length : 0), S = _(T))) { - if (l.beforeChange(), !o.isBlock(S) && S != o.getRoot())return void((!I || L) && x()); - if ((I && !L || !I && L) && (T = y(T, R)), A = o.getParent(T, o.isBlock), D = A ? o.getParent(A.parentNode, o.isBlock) : null, P = A ? A.nodeName.toUpperCase() : "", O = D ? D.nodeName.toUpperCase() : "", "LI" != O || i.ctrlKey || (A = D, P = O), "LI" == P) { - if (!I && L)return void x(); - if (o.isEmpty(A))return void b() - } - if ("PRE" == P && s.br_in_pre !== !1) { - if (!L)return void x() - } else if (!I && !L && "LI" != P || I && L)return void x(); - I && A === r.getBody() || (I = I || "P", v() ? (H = /^(H[1-6]|PRE|FIGURE)$/.test(P) && "HGROUP" != O ? g(I) : g(), s.end_container_on_empty_block && u(D) && o.isEmpty(A) ? H = o.split(D, A) : o.insertAfter(H, A), m(H)) : v(!0) ? (H = A.parentNode.insertBefore(g(), A), f(H), m(A)) : (k = E.cloneRange(), k.setEndAfter(A), M = k.extractContents(), w(M), H = M.firstChild, o.insertAfter(M, A), p(H), N(A), m(H)), o.setAttrib(H, "id", ""), r.fire("NewBlock", {newBlock: H}), l.add()) - } - } - - var o = r.dom, a = r.selection, s = r.settings, l = r.undoManager, c = r.schema, d = c.getNonEmptyElements(); - r.on("keydown", function (e) { - 13 == e.keyCode && i(e) !== !1 && e.preventDefault() - }) - } - }), r(D, [], function () { - return function (e) { - function t() { - var t = i.getStart(), s = e.getBody(), l, c, d, u, f, p, m, h = -16777215, g, v, y, b, C; - if (C = n.forced_root_block, t && 1 === t.nodeType && C) { - for (; t && t != s;) { - if (a[t.nodeName])return; - t = t.parentNode - } - if (l = i.getRng(), l.setStart) { - c = l.startContainer, d = l.startOffset, u = l.endContainer, f = l.endOffset; - try { - v = e.getDoc().activeElement === s - } catch (x) { - } - } else l.item && (t = l.item(0), l = e.getDoc().body.createTextRange(), l.moveToElementText(t)), v = l.parentElement().ownerDocument === e.getDoc(), y = l.duplicate(), y.collapse(!0), d = -1 * y.move("character", h), y.collapsed || (y = l.duplicate(), y.collapse(!1), f = -1 * y.move("character", h) - d); - for (t = s.firstChild, b = s.nodeName.toLowerCase(); t;)if ((3 === t.nodeType || 1 == t.nodeType && !a[t.nodeName]) && o.isValidChild(b, C.toLowerCase())) { - if (3 === t.nodeType && 0 === t.nodeValue.length) { - m = t, t = t.nextSibling, r.remove(m); - continue - } - p || (p = r.create(C, e.settings.forced_root_block_attrs), t.parentNode.insertBefore(p, t), g = !0), m = t, t = t.nextSibling, p.appendChild(m) - } else p = null, t = t.nextSibling; - if (g && v) { - if (l.setStart)l.setStart(c, d), l.setEnd(u, f), i.setRng(l); else try { - l = e.getDoc().body.createTextRange(), l.moveToElementText(s), l.collapse(!0), l.moveStart("character", d), f > 0 && l.moveEnd("character", f), l.select() - } catch (x) { - } - e.nodeChanged() - } - } - } - - var n = e.settings, r = e.dom, i = e.selection, o = e.schema, a = o.getBlockElements(); - n.forced_root_block && e.on("NodeChange", t) - } - }), r(P, [E, h, f], function (e, n, r) { - var i = r.each, o = r.extend, a = r.map, s = r.inArray, l = r.explode, c = n.gecko, d = n.ie, u = !0, f = !1; - return function (r) { - function p(e, t, n) { - var r; - return e = e.toLowerCase(), (r = N.exec[e]) ? (r(e, t, n), u) : f - } - - function m(e) { - var t; - return e = e.toLowerCase(), (t = N.state[e]) ? t(e) : -1 - } - - function h(e) { - var t; - return e = e.toLowerCase(), (t = N.value[e]) ? t(e) : f - } - - function g(e, t) { - t = t || "exec", i(e, function (e, n) { - i(n.toLowerCase().split(","), function (n) { - N[t][n] = e - }) - }) - } - - function v(e, n, i) { - return n === t && (n = f), i === t && (i = null), r.getDoc().execCommand(e, n, i) - } - - function y(e) { - return k.match(e) - } - - function b(e, n) { - k.toggle(e, n ? {value: n} : t), r.nodeChanged() - } - - function C(e) { - S = _.getBookmark(e) - } - - function x() { - _.moveToBookmark(S) - } - - var w = r.dom, _ = r.selection, N = {state: {}, exec: {}, value: {}}, E = r.settings, k = r.formatter, S; - o(this, {execCommand: p, queryCommandState: m, queryCommandValue: h, addCommands: g}), g({"mceResetDesignMode,mceBeginUndoLevel": function () { - }, "mceEndUndoLevel,mceAddUndoLevel": function () { - r.undoManager.add() - }, "Cut,Copy,Paste": function (e) { - var t = r.getDoc(), i; - try { - v(e) - } catch (o) { - i = u - } - if (i || !t.queryCommandSupported(e)) { - var a = r.translate("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead."); - n.mac && (a = a.replace(/Ctrl\+/g, "\u2318+")), r.windowManager.alert(a) - } - }, unlink: function () { - if (_.isCollapsed()) { - var e = _.getNode(); - return void("A" == e.tagName && r.dom.remove(e, !0)) - } - k.remove("link") - }, "JustifyLeft,JustifyCenter,JustifyRight,JustifyFull": function (e) { - var t = e.substring(7); - "full" == t && (t = "justify"), i("left,center,right,justify".split(","), function (e) { - t != e && k.remove("align" + e) - }), b("align" + t), p("mceRepaint") - }, "InsertUnorderedList,InsertOrderedList": function (e) { - var t, n; - v(e), t = w.getParent(_.getNode(), "ol,ul"), t && (n = t.parentNode, /^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName) && (C(), w.split(n, t), x())) - }, "Bold,Italic,Underline,Strikethrough,Superscript,Subscript": function (e) { - b(e) - }, "ForeColor,HiliteColor,FontName": function (e, t, n) { - b(e, n) - }, FontSize: function (e, t, n) { - var r, i; - n >= 1 && 7 >= n && (i = l(E.font_size_style_values), r = l(E.font_size_classes), n = r ? r[n - 1] || n : i[n - 1] || n), b(e, n) - }, RemoveFormat: function (e) { - k.remove(e) - }, mceBlockQuote: function () { - b("blockquote") - }, FormatBlock: function (e, t, n) { - return b(n || "p") - }, mceCleanup: function () { - var e = _.getBookmark(); - r.setContent(r.getContent({cleanup: u}), {cleanup: u}), _.moveToBookmark(e) - }, mceRemoveNode: function (e, t, n) { - var i = n || _.getNode(); - i != r.getBody() && (C(), r.dom.remove(i, u), x()) - }, mceSelectNodeDepth: function (e, t, n) { - var i = 0; - w.getParent(_.getNode(), function (e) { - return 1 == e.nodeType && i++ == n ? (_.select(e), f) : void 0 - }, r.getBody()) - }, mceSelectNode: function (e, t, n) { - _.select(n) - }, mceInsertContent: function (t, n, i) { - function o(e) { - function t(e) { - return r[e] && 3 == r[e].nodeType - } - - var n, r, i; - return n = _.getRng(!0), r = n.startContainer, i = n.startOffset, 3 == r.nodeType && (i > 0 ? e = e.replace(/^ /, " ") : t("previousSibling") || (e = e.replace(/^ /, " ")), i < r.length ? e = e.replace(/ (<br>|)$/, " ") : t("nextSibling") || (e = e.replace(/( | )(<br>|)$/, " "))), e - } - - var a, s, l, c, u, f, p, m, h, g, v; - /^ | $/.test(i) && (i = o(i)), a = r.parser, s = new e({}, r.schema), v = '<span id="mce_marker" data-mce-type="bookmark">ÈB;</span>', f = {content: i, format: "html", selection: !0}, r.fire("BeforeSetContent", f), i = f.content, -1 == i.indexOf("{$caret}") && (i += "{$caret}"), i = i.replace(/\{\$caret\}/, v), m = _.getRng(); - var y = m.startContainer || (m.parentElement ? m.parentElement() : null), b = r.getBody(); - y === b && _.isCollapsed() && w.isBlock(b.firstChild) && w.isEmpty(b.firstChild) && (m = w.createRng(), m.setStart(b.firstChild, 0), m.setEnd(b.firstChild, 0), _.setRng(m)), _.isCollapsed() || r.getDoc().execCommand("Delete", !1, null), l = _.getNode(); - var C = {context: l.nodeName.toLowerCase()}; - if (u = a.parse(i, C), h = u.lastChild, "mce_marker" == h.attr("id"))for (p = h, h = h.prev; h; h = h.walk(!0))if (3 == h.type || !w.isBlock(h.name)) { - h.parent.insert(p, h, "br" === h.name); - break - } - if (C.invalid) { - for (_.setContent(v), l = _.getNode(), c = r.getBody(), 9 == l.nodeType ? l = h = c : h = l; h !== c;)l = h, h = h.parentNode; - i = l == c ? c.innerHTML : w.getOuterHTML(l), i = s.serialize(a.parse(i.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i, function () { - return s.serialize(u) - }))), l == c ? w.setHTML(c, i) : w.setOuterHTML(l, i) - } else i = s.serialize(u), h = l.firstChild, g = l.lastChild, !h || h === g && "BR" === h.nodeName ? w.setHTML(l, i) : _.setContent(i); - p = w.get("mce_marker"), _.scrollIntoView(p), m = w.createRng(), h = p.previousSibling, h && 3 == h.nodeType ? (m.setStart(h, h.nodeValue.length), d || (g = p.nextSibling, g && 3 == g.nodeType && (h.appendData(g.data), g.parentNode.removeChild(g)))) : (m.setStartBefore(p), m.setEndBefore(p)), w.remove(p), _.setRng(m), r.fire("SetContent", f), r.addVisual() - }, mceInsertRawHTML: function (e, t, n) { - _.setContent("tiny_mce_marker"), r.setContent(r.getContent().replace(/tiny_mce_marker/g, function () { - return n - })) - }, mceToggleFormat: function (e, t, n) { - b(n) - }, mceSetContent: function (e, t, n) { - r.setContent(n) - }, "Indent,Outdent": function (e) { - var t, n, o; - t = E.indentation, n = /[a-z%]+$/i.exec(t), t = parseInt(t, 10), m("InsertUnorderedList") || m("InsertOrderedList") ? v(e) : (E.forced_root_block || w.getParent(_.getNode(), w.isBlock) || k.apply("div"), i(_.getSelectedBlocks(), function (i) { - if ("LI" != i.nodeName) { - var a = r.getParam("indent_use_margin", !1) ? "margin" : "padding"; - a += "rtl" == w.getStyle(i, "direction", !0) ? "Right" : "Left", "outdent" == e ? (o = Math.max(0, parseInt(i.style[a] || 0, 10) - t), w.setStyle(i, a, o ? o + n : "")) : (o = parseInt(i.style[a] || 0, 10) + t + n, w.setStyle(i, a, o)) - } - })) - }, mceRepaint: function () { - if (c)try { - C(u), _.getSel() && _.getSel().selectAllChildren(r.getBody()), _.collapse(u), x() - } catch (e) { - } - }, InsertHorizontalRule: function () { - r.execCommand("mceInsertContent", !1, "<hr />") - }, mceToggleVisualAid: function () { - r.hasVisual = !r.hasVisual, r.addVisual() - }, mceReplaceContent: function (e, t, n) { - r.execCommand("mceInsertContent", !1, n.replace(/\{\$selection\}/g, _.getContent({format: "text"}))) - }, mceInsertLink: function (e, t, n) { - var r; - "string" == typeof n && (n = {href: n}), r = w.getParent(_.getNode(), "a"), n.href = n.href.replace(" ", "%20"), r && n.href || k.remove("link"), n.href && k.apply("link", n, r) - }, selectAll: function () { - var e = w.getRoot(), t; - _.getRng().setStart ? (t = w.createRng(), t.setStart(e, 0), t.setEnd(e, e.childNodes.length), _.setRng(t)) : (t = _.getRng(), t.item || (t.moveToElementText(e), t.select())) - }, "delete": function () { - v("Delete"); - var e = r.getBody(); - w.isEmpty(e) && (r.setContent(""), e.firstChild && w.isBlock(e.firstChild) ? r.selection.setCursorLocation(e.firstChild, 0) : r.selection.setCursorLocation(e, 0)) - }, mceNewDocument: function () { - r.setContent("") - }}), g({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull": function (e) { - var t = "align" + e.substring(7), n = _.isCollapsed() ? [w.getParent(_.getNode(), w.isBlock)] : _.getSelectedBlocks(), r = a(n, function (e) { - return!!k.matchNode(e, t) - }); - return-1 !== s(r, u) - }, "Bold,Italic,Underline,Strikethrough,Superscript,Subscript": function (e) { - return y(e) - }, mceBlockQuote: function () { - return y("blockquote") - }, Outdent: function () { - var e; - if (E.inline_styles) { - if ((e = w.getParent(_.getStart(), w.isBlock)) && parseInt(e.style.paddingLeft, 10) > 0)return u; - if ((e = w.getParent(_.getEnd(), w.isBlock)) && parseInt(e.style.paddingLeft, 10) > 0)return u - } - return m("InsertUnorderedList") || m("InsertOrderedList") || !E.inline_styles && !!w.getParent(_.getNode(), "BLOCKQUOTE") - }, "InsertUnorderedList,InsertOrderedList": function (e) { - var t = w.getParent(_.getNode(), "ul,ol"); - return t && ("insertunorderedlist" === e && "UL" === t.tagName || "insertorderedlist" === e && "OL" === t.tagName) - }}, "state"), g({"FontSize,FontName": function (e) { - var t = 0, n; - return(n = w.getParent(_.getNode(), "span")) && (t = "fontsize" == e ? n.style.fontSize : n.style.fontFamily.replace(/, /g, ",").replace(/[\'\"]/g, "").toLowerCase()), t - }}, "value"), g({Undo: function () { - r.undoManager.undo() - }, Redo: function () { - r.undoManager.redo() - }}) - } - }), r(O, [f], function (e) { - function t(e, i) { - var o = this, a, s; - if (e = r(e), i = o.settings = i || {}, /^([\w\-]+):([^\/]{2})/i.test(e) || /^\s*#/.test(e))return void(o.source = e); - var l = 0 === e.indexOf("//"); - 0 !== e.indexOf("/") || l || (e = (i.base_uri ? i.base_uri.protocol || "http" : "http") + "://mce_host" + e), /^[\w\-]*:?\/\//.test(e) || (s = i.base_uri ? i.base_uri.path : new t(location.href).directory, e = "" === i.base_uri.protocol ? "//mce_host" + o.toAbsPath(s, e) : (i.base_uri && i.base_uri.protocol || "http") + "://mce_host" + o.toAbsPath(s, e)), e = e.replace(/@@/g, "(mce_at)"), e = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e), n(["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"], function (t, n) { - var r = e[n]; - r && (r = r.replace(/\(mce_at\)/g, "@@")), o[t] = r - }), a = i.base_uri, a && (o.protocol || (o.protocol = a.protocol), o.userInfo || (o.userInfo = a.userInfo), o.port || "mce_host" !== o.host || (o.port = a.port), o.host && "mce_host" !== o.host || (o.host = a.host), o.source = ""), l && (o.protocol = "") - } - - var n = e.each, r = e.trim; - return t.prototype = {setPath: function (e) { - var t = this; - e = /^(.*?)\/?(\w+)?$/.exec(e), t.path = e[0], t.directory = e[1], t.file = e[2], t.source = "", t.getURI() - }, toRelative: function (e) { - var n = this, r; - if ("./" === e)return e; - if (e = new t(e, {base_uri: n}), "mce_host" != e.host && n.host != e.host && e.host || n.port != e.port || n.protocol != e.protocol && "" !== e.protocol)return e.getURI(); - var i = n.getURI(), o = e.getURI(); - return i == o || "/" == i.charAt(i.length - 1) && i.substr(0, i.length - 1) == o ? i : (r = n.toRelPath(n.path, e.path), e.query && (r += "?" + e.query), e.anchor && (r += "#" + e.anchor), r) - }, toAbsolute: function (e, n) { - return e = new t(e, {base_uri: this}), e.getURI(this.host == e.host && this.protocol == e.protocol ? n : 0) - }, toRelPath: function (e, t) { - var n, r = 0, i = "", o, a; - if (e = e.substring(0, e.lastIndexOf("/")), e = e.split("/"), n = t.split("/"), e.length >= n.length)for (o = 0, a = e.length; a > o; o++)if (o >= n.length || e[o] != n[o]) { - r = o + 1; - break - } - if (e.length < n.length)for (o = 0, a = n.length; a > o; o++)if (o >= e.length || e[o] != n[o]) { - r = o + 1; - break - } - if (1 === r)return t; - for (o = 0, a = e.length - (r - 1); a > o; o++)i += "../"; - for (o = r - 1, a = n.length; a > o; o++)i += o != r - 1 ? "/" + n[o] : n[o]; - return i - }, toAbsPath: function (e, t) { - var r, i = 0, o = [], a, s; - for (a = /\/$/.test(t) ? "/" : "", e = e.split("/"), t = t.split("/"), n(e, function (e) { - e && o.push(e) - }), e = o, r = t.length - 1, o = []; r >= 0; r--)0 !== t[r].length && "." !== t[r] && (".." !== t[r] ? i > 0 ? i-- : o.push(t[r]) : i++); - return r = e.length - i, s = 0 >= r ? o.reverse().join("/") : e.slice(0, r).join("/") + "/" + o.reverse().join("/"), 0 !== s.indexOf("/") && (s = "/" + s), a && s.lastIndexOf("/") !== s.length - 1 && (s += a), s - }, getURI: function (e) { - var t, n = this; - return(!n.source || e) && (t = "", e || (t += n.protocol ? n.protocol + "://" : "//", n.userInfo && (t += n.userInfo + "@"), n.host && (t += n.host), n.port && (t += ":" + n.port)), n.path && (t += n.path), n.query && (t += "?" + n.query), n.anchor && (t += "#" + n.anchor), n.source = t), n.source - }}, t - }), r(I, [f], function (e) { - function t() { - } - - var n = e.each, r = e.extend, i, o; - return t.extend = i = function (e) { - function t() { - var e, t, n, r; - if (!o && (r = this, r.init && r.init.apply(r, arguments), t = r.Mixins))for (e = t.length; e--;)n = t[e], n.init && n.init.apply(r, arguments) - } - - function a() { - return this - } - - function s(e, t) { - return function () { - var n = this, r = n._super, i; - return n._super = c[e], i = t.apply(n, arguments), n._super = r, i - } - } - - var l = this, c = l.prototype, d, u, f; - o = !0, d = new l, o = !1, e.Mixins && (n(e.Mixins, function (t) { - t = t; - for (var n in t)"init" !== n && (e[n] = t[n]) - }), c.Mixins && (e.Mixins = c.Mixins.concat(e.Mixins))), e.Methods && n(e.Methods.split(","), function (t) { - e[t] = a - }), e.Properties && n(e.Properties.split(","), function (t) { - var n = "_" + t; - e[t] = function (e) { - var t = this, r; - return e !== r ? (t[n] = e, t) : t[n] - } - }), e.Statics && n(e.Statics, function (e, n) { - t[n] = e - }), e.Defaults && c.Defaults && (e.Defaults = r({}, c.Defaults, e.Defaults)); - for (u in e)f = e[u], d[u] = "function" == typeof f && c[u] ? s(u, f) : f; - return t.prototype = d, t.constructor = t, t.extend = i, t - }, t - }), r(z, [I], function (e) { - function t(e) { - for (var t = [], n = e.length, r; n--;)r = e[n], r.__checked || (t.push(r), r.__checked = 1); - for (n = t.length; n--;)delete t[n].__checked; - return t - } - - var n = /^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i, r = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, i = /^\s*|\s*$/g, o, a = e.extend({init: function (e) { - function t(e) { - return e ? (e = e.toLowerCase(), function (t) { - return"*" === e || t.type === e - }) : void 0 - } - - function o(e) { - return e ? function (t) { - return t._name === e - } : void 0 - } - - function a(e) { - return e ? (e = e.split("."), function (t) { - for (var n = e.length; n--;)if (!t.hasClass(e[n]))return!1; - return!0 - }) : void 0 - } - - function s(e, t, n) { - return e ? function (r) { - var i = r[e] ? r[e]() : ""; - return t ? "=" === t ? i === n : "*=" === t ? i.indexOf(n) >= 0 : "~=" === t ? (" " + i + " ").indexOf(" " + n + " ") >= 0 : "!=" === t ? i != n : "^=" === t ? 0 === i.indexOf(n) : "$=" === t ? i.substr(i.length - n.length) === n : !1 : !!n - } : void 0 - } - - function l(e) { - var t; - return e ? (e = /(?:not\((.+)\))|(.+)/i.exec(e), e[1] ? (t = d(e[1], []), function (e) { - return!u(e, t) - }) : (e = e[2], function (t, n, r) { - return"first" === e ? 0 === n : "last" === e ? n === r - 1 : "even" === e ? n % 2 === 0 : "odd" === e ? n % 2 === 1 : t[e] ? t[e]() : !1 - })) : void 0 - } - - function c(e, r, c) { - function d(e) { - e && r.push(e) - } - - var u; - return u = n.exec(e.replace(i, "")), d(t(u[1])), d(o(u[2])), d(a(u[3])), d(s(u[4], u[5], u[6])), d(l(u[7])), r.psuedo = !!u[7], r.direct = c, r - } - - function d(e, t) { - var n = [], i, o, a; - do if (r.exec(""), o = r.exec(e), o && (e = o[3], n.push(o[1]), o[2])) { - i = o[3]; - break - } while (o); - for (i && d(i, t), e = [], a = 0; a < n.length; a++)">" != n[a] && e.push(c(n[a], [], ">" === n[a - 1])); - return t.push(e), t - } - - var u = this.match; - this._selectors = d(e, []) - }, match: function (e, t) { - var n, r, i, o, a, s, l, c, d, u, f, p, m; - for (t = t || this._selectors, n = 0, r = t.length; r > n; n++) { - for (a = t[n], o = a.length, m = e, p = 0, i = o - 1; i >= 0; i--)for (c = a[i]; m;) { - if (c.psuedo)for (f = m.parent().items(), d = u = f.length; d-- && f[d] !== m;); - for (s = 0, l = c.length; l > s; s++)if (!c[s](m, d, u)) { - s = l + 1; - break - } - if (s === l) { - p++; - break - } - if (i === o - 1)break; - m = m.parent() - } - if (p === o)return!0 - } - return!1 - }, find: function (e) { - function n(e, t, i) { - var o, a, s, l, c, d = t[i]; - for (o = 0, a = e.length; a > o; o++) { - for (c = e[o], s = 0, l = d.length; l > s; s++)if (!d[s](c, o, a)) { - s = l + 1; - break - } - if (s === l)i == t.length - 1 ? r.push(c) : c.items && n(c.items(), t, i + 1); else if (d.direct)return; - c.items && n(c.items(), t, i) - } - } - - var r = [], i, s, l = this._selectors; - if (e.items) { - for (i = 0, s = l.length; s > i; i++)n(e.items(), l[i], 0); - s > 1 && (r = t(r)) - } - return o || (o = a.Collection), new o(r) - }}); - return a - }), r(F, [f, z, I], function (e, t, n) { - var r, i, o = Array.prototype.push, a = Array.prototype.slice; - return i = {length: 0, init: function (e) { - e && this.add(e) - }, add: function (t) { - var n = this; - return e.isArray(t) ? o.apply(n, t) : t instanceof r ? n.add(t.toArray()) : o.call(n, t), n - }, set: function (e) { - var t = this, n = t.length, r; - for (t.length = 0, t.add(e), r = t.length; n > r; r++)delete t[r]; - return t - }, filter: function (e) { - var n = this, i, o, a = [], s, l; - for ("string" == typeof e ? (e = new t(e), l = function (t) { - return e.match(t) - }) : l = e, i = 0, o = n.length; o > i; i++)s = n[i], l(s) && a.push(s); - return new r(a) - }, slice: function () { - return new r(a.apply(this, arguments)) - }, eq: function (e) { - return-1 === e ? this.slice(e) : this.slice(e, +e + 1) - }, each: function (t) { - return e.each(this, t), this - }, toArray: function () { - return e.toArray(this) - }, indexOf: function (e) { - for (var t = this, n = t.length; n-- && t[n] !== e;); - return n - }, reverse: function () { - return new r(e.toArray(this).reverse()) - }, hasClass: function (e) { - return this[0] ? this[0].hasClass(e) : !1 - }, prop: function (e, t) { - var n = this, r, i; - return t !== r ? (n.each(function (n) { - n[e] && n[e](t) - }), n) : (i = n[0], i && i[e] ? i[e]() : void 0) - }, exec: function (t) { - var n = this, r = e.toArray(arguments).slice(1); - return n.each(function (e) { - e[t] && e[t].apply(e, r) - }), n - }, remove: function () { - for (var e = this.length; e--;)this[e].remove(); - return this - }}, e.each("fire on off show hide addClass removeClass append prepend before after reflow".split(" "), function (t) { - i[t] = function () { - var n = e.toArray(arguments); - return this.each(function (e) { - t in e && e[t].apply(e, n) - }), this - } - }), e.each("text name disabled active selected checked visible parent value data".split(" "), function (e) { - i[e] = function (t) { - return this.prop(e, t) - } - }), r = n.extend(i), t.Collection = r, r - }), r(W, [f, v], function (e, t) { - return{id: function () { - return t.DOM.uniqueId() - }, createFragment: function (e) { - return t.DOM.createFragment(e) - }, getWindowSize: function () { - return t.DOM.getViewPort() - }, getSize: function (e) { - var t, n; - if (e.getBoundingClientRect) { - var r = e.getBoundingClientRect(); - t = Math.max(r.width || r.right - r.left, e.offsetWidth), n = Math.max(r.height || r.bottom - r.bottom, e.offsetHeight) - } else t = e.offsetWidth, n = e.offsetHeight; - return{width: t, height: n} - }, getPos: function (e, n) { - return t.DOM.getPos(e, n) - }, getViewPort: function (e) { - return t.DOM.getViewPort(e) - }, get: function (e) { - return document.getElementById(e) - }, addClass: function (e, n) { - return t.DOM.addClass(e, n) - }, removeClass: function (e, n) { - return t.DOM.removeClass(e, n) - }, hasClass: function (e, n) { - return t.DOM.hasClass(e, n) - }, toggleClass: function (e, n, r) { - return t.DOM.toggleClass(e, n, r) - }, css: function (e, n, r) { - return t.DOM.setStyle(e, n, r) - }, on: function (e, n, r, i) { - return t.DOM.bind(e, n, r, i) - }, off: function (e, n, r) { - return t.DOM.unbind(e, n, r) - }, fire: function (e, n, r) { - return t.DOM.fire(e, n, r) - }, innerHtml: function (e, n) { - t.DOM.setHTML(e, n) - }} - }), r(V, [I, f, F, W], function (e, t, n, r) { - var i = t.makeMap("focusin focusout scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave wheel keydown keypress keyup contextmenu", " "), o = {}, a = "onmousewheel"in document, s = !1, l = e.extend({Statics: {elementIdCache: o}, isRtl: function () { - return l.rtl - }, classPrefix: "mce-", init: function (e) { - var n = this, i, o; - if (n.settings = e = t.extend({}, n.Defaults, e), n._id = r.id(), n._text = n._name = "", n._width = n._height = 0, n._aria = {role: e.role}, i = e.classes)for (i = i.split(" "), i.map = {}, o = i.length; o--;)i.map[i[o]] = !0; - n._classes = i || [], n.visible(!0), t.each("title text width height name classes visible disabled active value".split(" "), function (t) { - var r = e[t], i; - r !== i ? n[t](r) : n["_" + t] === i && (n["_" + t] = !1) - }), n.on("click", function () { - return n.disabled() ? !1 : void 0 - }), e.classes && t.each(e.classes.split(" "), function (e) { - n.addClass(e) - }), n.settings = e, n._borderBox = n.parseBox(e.border), n._paddingBox = n.parseBox(e.padding), n._marginBox = n.parseBox(e.margin), e.hidden && n.hide() - }, Properties: "parent,title,text,width,height,disabled,active,name,value", Methods: "renderHtml", getContainerElm: function () { - return document.body - }, getParentCtrl: function (e) { - for (var t, n = this.getRoot().controlIdLookup; e && n && !(t = n[e.id]);)e = e.parentNode; - return t - }, parseBox: function (e) { - var t, n = 10; - if (e)return"number" == typeof e ? (e = e || 0, {top: e, left: e, bottom: e, right: e}) : (e = e.split(" "), t = e.length, 1 === t ? e[1] = e[2] = e[3] = e[0] : 2 === t ? (e[2] = e[0], e[3] = e[1]) : 3 === t && (e[3] = e[1]), {top: parseInt(e[0], n) || 0, right: parseInt(e[1], n) || 0, bottom: parseInt(e[2], n) || 0, left: parseInt(e[3], n) || 0}) - }, borderBox: function () { - return this._borderBox - }, paddingBox: function () { - return this._paddingBox - }, marginBox: function () { - return this._marginBox - }, measureBox: function (e, t) { - function n(t) { - var n = document.defaultView; - return n ? (t = t.replace(/[A-Z]/g, function (e) { - return"-" + e - }), n.getComputedStyle(e, null).getPropertyValue(t)) : e.currentStyle[t] - } - - function r(e) { - var t = parseFloat(n(e), 10); - return isNaN(t) ? 0 : t - } - - return{top: r(t + "TopWidth"), right: r(t + "RightWidth"), bottom: r(t + "BottomWidth"), left: r(t + "LeftWidth")} - }, initLayoutRect: function () { - var e = this, t = e.settings, n, i, o = e.getEl(), a, s, l, c, d, u, f, p; - n = e._borderBox = e._borderBox || e.measureBox(o, "border"), e._paddingBox = e._paddingBox || e.measureBox(o, "padding"), e._marginBox = e._marginBox || e.measureBox(o, "margin"), p = r.getSize(o), u = t.minWidth, f = t.minHeight, l = u || p.width, c = f || p.height, a = t.width, s = t.height, d = t.autoResize, d = "undefined" != typeof d ? d : !a && !s, a = a || l, s = s || c; - var m = n.left + n.right, h = n.top + n.bottom, g = t.maxWidth || 65535, v = t.maxHeight || 65535; - return e._layoutRect = i = {x: t.x || 0, y: t.y || 0, w: a, h: s, deltaW: m, deltaH: h, contentW: a - m, contentH: s - h, innerW: a - m, innerH: s - h, startMinWidth: u || 0, startMinHeight: f || 0, minW: Math.min(l, g), minH: Math.min(c, v), maxW: g, maxH: v, autoResize: d, scrollW: 0}, e._lastLayoutRect = {}, i - }, layoutRect: function (e) { - var t = this, n = t._layoutRect, r, i, o, a, s, c; - return n || (n = t.initLayoutRect()), e ? (o = n.deltaW, a = n.deltaH, e.x !== s && (n.x = e.x), e.y !== s && (n.y = e.y), e.minW !== s && (n.minW = e.minW), e.minH !== s && (n.minH = e.minH), i = e.w, i !== s && (i = i < n.minW ? n.minW : i, i = i > n.maxW ? n.maxW : i, n.w = i, n.innerW = i - o), i = e.h, i !== s && (i = i < n.minH ? n.minH : i, i = i > n.maxH ? n.maxH : i, n.h = i, n.innerH = i - a), i = e.innerW, i !== s && (i = i < n.minW - o ? n.minW - o : i, i = i > n.maxW - o ? n.maxW - o : i, n.innerW = i, n.w = i + o), i = e.innerH, i !== s && (i = i < n.minH - a ? n.minH - a : i, i = i > n.maxH - a ? n.maxH - a : i, n.innerH = i, n.h = i + a), e.contentW !== s && (n.contentW = e.contentW), e.contentH !== s && (n.contentH = e.contentH), r = t._lastLayoutRect, (r.x !== n.x || r.y !== n.y || r.w !== n.w || r.h !== n.h) && (c = l.repaintControls, c && c.map && !c.map[t._id] && (c.push(t), c.map[t._id] = !0), r.x = n.x, r.y = n.y, r.w = n.w, r.h = n.h), t) : n - }, repaint: function () { - var e = this, t, n, r, i, o = 0, a = 0, s, l; - l = document.createRange ? function (e) { - return e - } : Math.round, t = e.getEl().style, r = e._layoutRect, s = e._lastRepaintRect || {}, i = e._borderBox, o = i.left + i.right, a = i.top + i.bottom, r.x !== s.x && (t.left = l(r.x) + "px", s.x = r.x), r.y !== s.y && (t.top = l(r.y) + "px", s.y = r.y), r.w !== s.w && (t.width = l(r.w - o) + "px", s.w = r.w), r.h !== s.h && (t.height = l(r.h - a) + "px", s.h = r.h), e._hasBody && r.innerW !== s.innerW && (n = e.getEl("body").style, n.width = l(r.innerW) + "px", s.innerW = r.innerW), e._hasBody && r.innerH !== s.innerH && (n = n || e.getEl("body").style, n.height = l(r.innerH) + "px", s.innerH = r.innerH), e._lastRepaintRect = s, e.fire("repaint", {}, !1) - }, on: function (e, t) { - function n(e) { - var t, n; - return function (i) { - return t || r.parents().each(function (r) { - var i = r.settings.callbacks; - return i && (t = i[e]) ? (n = r, !1) : void 0 - }), t.call(n, i) - } - } - - var r = this, o, a, s, l; - if (t)for ("string" == typeof t && (t = n(t)), s = e.toLowerCase().split(" "), l = s.length; l--;)e = s[l], o = r._bindings, o || (o = r._bindings = {}), a = o[e], a || (a = o[e] = []), a.push(t), i[e] && (r._nativeEvents ? r._nativeEvents[e] = !0 : r._nativeEvents = {name: !0}, r._rendered && r.bindPendingEvents()); - return r - }, off: function (e, t) { - var n = this, r, i = n._bindings, o, a, s, l; - if (i)if (e)for (s = e.toLowerCase().split(" "), r = s.length; r--;) { - if (e = s[r], o = i[e], !e) { - for (a in i)i[a].length = 0; - return n - } - if (o)if (t)for (l = o.length; l--;)o[l] === t && o.splice(l, 1); else o.length = 0 - } else n._bindings = []; - return n - }, fire: function (e, t, n) { - function r() { - return!1 - } - - function i() { - return!0 - } - - var o = this, a, s, l, c; - if (e = e.toLowerCase(), t = t || {}, t.type || (t.type = e), t.control || (t.control = o), t.preventDefault || (t.preventDefault = function () { - t.isDefaultPrevented = i - }, t.stopPropagation = function () { - t.isPropagationStopped = i - }, t.stopImmediatePropagation = function () { - t.isImmediatePropagationStopped = i - }, t.isDefaultPrevented = r, t.isPropagationStopped = r, t.isImmediatePropagationStopped = r), o._bindings && (l = o._bindings[e]))for (a = 0, s = l.length; s > a && (t.isImmediatePropagationStopped() || l[a].call(o, t) !== !1); a++); - if (n !== !1)for (c = o.parent(); c && !t.isPropagationStopped();)c.fire(e, t, !1), c = c.parent(); - return t - }, hasEventListeners: function (e) { - return e in this._bindings - }, parents: function (e) { - var t = this, r = new n; - for (t = t.parent(); t; t = t.parent())r.add(t); - return e && (r = r.filter(e)), r - }, next: function () { - var e = this.parent().items(); - return e[e.indexOf(this) + 1] - }, prev: function () { - var e = this.parent().items(); - return e[e.indexOf(this) - 1] - }, findCommonAncestor: function (e, t) { - for (var n; e;) { - for (n = t; n && e != n;)n = n.parent(); - if (e == n)break; - e = e.parent() - } - return e - }, hasClass: function (e, t) { - var n = this._classes[t || "control"]; - return e = this.classPrefix + e, n && !!n.map[e] - }, addClass: function (e, t) { - var n = this, r, i; - return e = this.classPrefix + e, r = n._classes[t || "control"], r || (r = [], r.map = {}, n._classes[t || "control"] = r), r.map[e] || (r.map[e] = e, r.push(e), n._rendered && (i = n.getEl(t), i && (i.className = r.join(" ")))), n - }, removeClass: function (e, t) { - var n = this, r, i, o; - if (e = this.classPrefix + e, r = n._classes[t || "control"], r && r.map[e])for (delete r.map[e], i = r.length; i--;)r[i] === e && r.splice(i, 1); - return n._rendered && (o = n.getEl(t), o && (o.className = r.join(" "))), n - }, toggleClass: function (e, t, n) { - var r = this; - return t ? r.addClass(e, n) : r.removeClass(e, n), r - }, classes: function (e) { - var t = this._classes[e || "control"]; - return t ? t.join(" ") : "" - }, innerHtml: function (e) { - return r.innerHtml(this.getEl(), e), this - }, getEl: function (e, t) { - var n, i = e ? this._id + "-" + e : this._id; - return n = o[i] = (t === !0 ? null : o[i]) || r.get(i) - }, visible: function (e) { - var t = this, n; - return"undefined" != typeof e ? (t._visible !== e && (t._rendered && (t.getEl().style.display = e ? "" : "none"), t._visible = e, n = t.parent(), n && (n._lastRect = null), t.fire(e ? "show" : "hide")), t) : t._visible - }, show: function () { - return this.visible(!0) - }, hide: function () { - return this.visible(!1) - }, focus: function () { - try { - this.getEl().focus() - } catch (e) { - } - return this - }, blur: function () { - return this.getEl().blur(), this - }, aria: function (e, t) { - var n = this, r = n.getEl(); - return"undefined" == typeof t ? n._aria[e] : (n._aria[e] = t, n._rendered && ("label" == e && r.setAttribute("aria-labelledby", n._id), r.setAttribute("role" == e ? e : "aria-" + e, t)), n) - }, encode: function (e, t) { - return t !== !1 && l.translate && (e = l.translate(e)), (e || "").replace(/[&<>"]/g, function (e) { - return"&#" + e.charCodeAt(0) + ";" - }) - }, before: function (e) { - var t = this, n = t.parent(); - return n && n.insert(e, n.items().indexOf(t), !0), t - }, after: function (e) { - var t = this, n = t.parent(); - return n && n.insert(e, n.items().indexOf(t)), t - }, remove: function () { - var e = this, t = e.getEl(), n = e.parent(), i, a; - if (e.items) { - var s = e.items().toArray(); - for (a = s.length; a--;)s[a].remove() - } - n && n.items && (i = [], n.items().each(function (t) { - t !== e && i.push(t) - }), n.items().set(i), n._lastRect = null), e._eventsRoot && e._eventsRoot == e && r.off(t); - var l = e.getRoot().controlIdLookup; - if (l && delete l[e._id], delete o[e._id], t && t.parentNode) { - var c = t.getElementsByTagName("*"); - for (a = c.length; a--;)delete o[c[a].id]; - t.parentNode.removeChild(t) - } - return e._rendered = !1, e - }, renderBefore: function (e) { - var t = this; - return e.parentNode.insertBefore(r.createFragment(t.renderHtml()), e), t.postRender(), t - }, renderTo: function (e) { - var t = this; - return e = e || t.getContainerElm(), e.appendChild(r.createFragment(t.renderHtml())), t.postRender(), t - }, postRender: function () { - var e = this, t = e.settings, n, i, o, a, s; - for (a in t)0 === a.indexOf("on") && e.on(a.substr(2), t[a]); - if (e._eventsRoot) { - for (o = e.parent(); !s && o; o = o.parent())s = o._eventsRoot; - if (s)for (a in s._nativeEvents)e._nativeEvents[a] = !0 - } - e.bindPendingEvents(), t.style && (n = e.getEl(), n && (n.setAttribute("style", t.style), n.style.cssText = t.style)), e._visible || r.css(e.getEl(), "display", "none"), e.settings.border && (i = e.borderBox(), r.css(e.getEl(), {"border-top-width": i.top, "border-right-width": i.right, "border-bottom-width": i.bottom, "border-left-width": i.left})); - var l = e.getRoot(); - l.controlIdLookup || (l.controlIdLookup = {}), l.controlIdLookup[e._id] = e; - for (var c in e._aria)e.aria(c, e._aria[c]); - e.fire("postrender", {}, !1) - }, scrollIntoView: function (e) { - function t(e, t) { - var n, r, i = e; - for (n = r = 0; i && i != t && i.nodeType;)n += i.offsetLeft || 0, r += i.offsetTop || 0, i = i.offsetParent; - return{x: n, y: r} - } - - var n = this.getEl(), r = n.parentNode, i, o, a, s, l, c, d = t(n, r); - return i = d.x, o = d.y, a = n.offsetWidth, s = n.offsetHeight, l = r.clientWidth, c = r.clientHeight, "end" == e ? (i -= l - a, o -= c - s) : "center" == e && (i -= l / 2 - a / 2, o -= c / 2 - s / 2), r.scrollLeft = i, r.scrollTop = o, this - }, bindPendingEvents: function () { - function e(e) { - var t = o.getParentCtrl(e.target); - t && t.fire(e.type, e) - } - - function t() { - var e = u._lastHoverCtrl; - e && (e.fire("mouseleave", {target: e.getEl()}), e.parents().each(function (e) { - e.fire("mouseleave", {target: e.getEl()}) - }), u._lastHoverCtrl = null) - } - - function n(e) { - var t = o.getParentCtrl(e.target), n = u._lastHoverCtrl, r = 0, i, a, s; - if (t !== n) { - if (u._lastHoverCtrl = t, a = t.parents().toArray().reverse(), a.push(t), n) { - for (s = n.parents().toArray().reverse(), s.push(n), r = 0; r < s.length && a[r] === s[r]; r++); - for (i = s.length - 1; i >= r; i--)n = s[i], n.fire("mouseleave", {target: n.getEl()}) - } - for (i = r; i < a.length; i++)t = a[i], t.fire("mouseenter", {target: t.getEl()}) - } - } - - function i(e) { - e.preventDefault(), "mousewheel" == e.type ? (e.deltaY = -1 / 40 * e.wheelDelta, e.wheelDeltaX && (e.deltaX = -1 / 40 * e.wheelDeltaX)) : (e.deltaX = 0, e.deltaY = e.detail), e = o.fire("wheel", e) - } - - var o = this, l, c, d, u, f, p; - if (o._rendered = !0, f = o._nativeEvents) { - for (d = o.parents().toArray(), d.unshift(o), l = 0, c = d.length; !u && c > l; l++)u = d[l]._eventsRoot; - for (u || (u = d[d.length - 1] || o), o._eventsRoot = u, c = l, l = 0; c > l; l++)d[l]._eventsRoot = u; - for (p in f) { - if (!f)return!1; - "wheel" !== p || s ? ("mouseenter" === p || "mouseleave" === p ? u._hasMouseEnter || (r.on(u.getEl(), "mouseleave", t), r.on(u.getEl(), "mouseover", n), u._hasMouseEnter = 1) : u[p] || (r.on(u.getEl(), p, e), u[p] = !0), f[p] = !1) : a ? r.on(o.getEl(), "mousewheel", i) : r.on(o.getEl(), "DOMMouseScroll", i) - } - } - }, getRoot: function () { - for (var e = this, t, n = []; e;) { - if (e.rootControl) { - t = e.rootControl; - break - } - n.push(e), t = e, e = e.parent() - } - t || (t = this); - for (var r = n.length; r--;)n[r].rootControl = t; - return t - }, reflow: function () { - return this.repaint(), this - }}); - return l - }), r(U, [], function () { - var e = {}, t; - return{add: function (t, n) { - e[t.toLowerCase()] = n - }, has: function (t) { - return!!e[t.toLowerCase()] - }, create: function (n, r) { - var i, o, a; - if (!t) { - a = tinymce.ui; - for (o in a)e[o.toLowerCase()] = a[o]; - t = !0 - } - if ("string" == typeof n ? (r = r || {}, r.type = n) : (r = n, n = r.type), n = n.toLowerCase(), i = e[n], !i)throw new Error("Could not find control by type: " + n); - return i = new i(r), i.type = n, i - }} - }), r(q, [V, F, z, U, f, W], function (e, t, n, r, i, o) { - var a = {}; - return e.extend({layout: "", innerClass: "container-inner", init: function (e) { - var n = this; - n._super(e), e = n.settings, n._fixed = e.fixed, n._items = new t, n.isRtl() && n.addClass("rtl"), n.addClass("container"), n.addClass("container-body", "body"), e.containerCls && n.addClass(e.containerCls), n._layout = r.create((e.layout || n.layout) + "layout"), n.settings.items && n.add(n.settings.items), n._hasBody = !0 - }, items: function () { - return this._items - }, find: function (e) { - return e = a[e] = a[e] || new n(e), e.find(this) - }, add: function (e) { - var t = this; - return t.items().add(t.create(e)).parent(t), t - }, focus: function () { - var e = this; - return e.keyNav ? e.keyNav.focusFirst() : e._super(), e - }, replace: function (e, t) { - for (var n, r = this.items(), i = r.length; i--;)if (r[i] === e) { - r[i] = t; - break - } - i >= 0 && (n = t.getEl(), n && n.parentNode.removeChild(n), n = e.getEl(), n && n.parentNode.removeChild(n)), t.parent(this) - }, create: function (t) { - var n = this, o, a = []; - return i.isArray(t) || (t = [t]), i.each(t, function (t) { - t && (t instanceof e || ("string" == typeof t && (t = {type: t}), o = i.extend({}, n.settings.defaults, t), t.type = o.type = o.type || t.type || n.settings.defaultType || (o.defaults ? o.defaults.type : null), t = r.create(o)), a.push(t)) - }), a - }, renderNew: function () { - var e = this; - return e.items().each(function (t, n) { - var r, i; - t.parent(e), t._rendered || (r = e.getEl("body"), i = o.createFragment(t.renderHtml()), r.hasChildNodes() && n <= r.childNodes.length - 1 ? r.insertBefore(i, r.childNodes[n]) : r.appendChild(i), t.postRender()) - }), e._layout.applyClasses(e), e._lastRect = null, e - }, append: function (e) { - return this.add(e).renderNew() - }, prepend: function (e) { - var t = this; - return t.items().set(t.create(e).concat(t.items().toArray())), t.renderNew() - }, insert: function (e, t, n) { - var r = this, i, o, a; - return e = r.create(e), i = r.items(), !n && t < i.length - 1 && (t += 1), t >= 0 && t < i.length && (o = i.slice(0, t).toArray(), a = i.slice(t).toArray(), i.set(o.concat(e, a))), r.renderNew() - }, fromJSON: function (e) { - var t = this; - for (var n in e)t.find("#" + n).value(e[n]); - return t - }, toJSON: function () { - var e = this, t = {}; - return e.find("*").each(function (e) { - var n = e.name(), r = e.value(); - n && "undefined" != typeof r && (t[n] = r) - }), t - }, preRender: function () { - }, renderHtml: function () { - var e = this, t = e._layout, n = this.settings.role; - return e.preRender(), t.preRender(e), '<div id="' + e._id + '" class="' + e.classes() + '"' + (n ? ' role="' + this.settings.role + '"' : "") + '><div id="' + e._id + '-body" class="' + e.classes("body") + '">' + (e.settings.html || "") + t.renderHtml(e) + "</div></div>" - }, postRender: function () { - var e = this, t; - return e.items().exec("postRender"), e._super(), e._layout.postRender(e), e._rendered = !0, e.settings.style && o.css(e.getEl(), e.settings.style), e.settings.border && (t = e.borderBox(), o.css(e.getEl(), {"border-top-width": t.top, "border-right-width": t.right, "border-bottom-width": t.bottom, "border-left-width": t.left})), e - }, initLayoutRect: function () { - var e = this, t = e._super(); - return e._layout.recalc(e), t - }, recalc: function () { - var e = this, t = e._layoutRect, n = e._lastRect; - return n && n.w == t.w && n.h == t.h ? void 0 : (e._layout.recalc(e), t = e.layoutRect(), e._lastRect = {x: t.x, y: t.y, w: t.w, h: t.h}, !0) - }, reflow: function () { - var t, n; - if (this.visible()) { - for (e.repaintControls = [], e.repaintControls.map = {}, n = this.recalc(), t = e.repaintControls.length; t--;)e.repaintControls[t].repaint(); - "flow" !== this.settings.layout && "stack" !== this.settings.layout && this.repaint(), e.repaintControls = [] - } - return this - }}) - }), r(j, [W], function (e) { - function t() { - var e = document, t, n, r, i, o, a, s, l, c = Math.max; - return t = e.documentElement, n = e.body, r = c(t.scrollWidth, n.scrollWidth), i = c(t.clientWidth, n.clientWidth), o = c(t.offsetWidth, n.offsetWidth), a = c(t.scrollHeight, n.scrollHeight), s = c(t.clientHeight, n.clientHeight), l = c(t.offsetHeight, n.offsetHeight), {width: o > r ? i : r, height: l > a ? s : a} - } - - return function (n, r) { - function i() { - return a.getElementById(r.handle || n) - } - - var o, a = document, s, l, c, d, u, f; - r = r || {}, l = function (n) { - var l = t(), p, m; - n.preventDefault(), s = n.button, p = i(), u = n.screenX, f = n.screenY, m = window.getComputedStyle ? window.getComputedStyle(p, null).getPropertyValue("cursor") : p.runtimeStyle.cursor, o = a.createElement("div"), e.css(o, {position: "absolute", top: 0, left: 0, width: l.width, height: l.height, zIndex: 2147483647, opacity: 1e-4, background: "red", cursor: m}), a.body.appendChild(o), e.on(a, "mousemove", d), e.on(a, "mouseup", c), r.start(n) - }, d = function (e) { - return e.button !== s ? c(e) : (e.deltaX = e.screenX - u, e.deltaY = e.screenY - f, e.preventDefault(), void r.drag(e)) - }, c = function (t) { - e.off(a, "mousemove", d), e.off(a, "mouseup", c), o.parentNode.removeChild(o), r.stop && r.stop(t) - }, this.destroy = function () { - e.off(i()) - }, e.on(i(), "mousedown", l) - } - }), r($, [W, j], function (e, t) { - return{init: function () { - var e = this; - e.on("repaint", e.renderScroll) - }, renderScroll: function () { - function n() { - function t(t, a, s, l, c, d) { - var u, f, p, m, h, g, v, y, b; - if (f = i.getEl("scroll" + t)) { - if (y = a.toLowerCase(), b = s.toLowerCase(), i.getEl("absend") && e.css(i.getEl("absend"), y, i.layoutRect()[l] - 1), !c)return void e.css(f, "display", "none"); - e.css(f, "display", "block"), u = i.getEl("body"), p = i.getEl("scroll" + t + "t"), m = u["client" + s] - 2 * o, m -= n && r ? f["client" + d] : 0, h = u["scroll" + s], g = m / h, v = {}, v[y] = u["offset" + a] + o, v[b] = m, e.css(f, v), v = {}, v[y] = u["scroll" + a] * g, v[b] = m * g, e.css(p, v) - } - } - - var n, r, a; - a = i.getEl("body"), n = a.scrollWidth > a.clientWidth, r = a.scrollHeight > a.clientHeight, t("h", "Left", "Width", "contentW", n, "Height"), t("v", "Top", "Height", "contentH", r, "Width") - } - - function r() { - function n(n, r, a, s, l) { - var c, d = i._id + "-scroll" + n, u = i.classPrefix; - i.getEl().appendChild(e.createFragment('<div id="' + d + '" class="' + u + "scrollbar " + u + "scrollbar-" + n + '"><div id="' + d + 't" class="' + u + 'scrollbar-thumb"></div></div>')), i.draghelper = new t(d + "t", {start: function () { - c = i.getEl("body")["scroll" + r], e.addClass(e.get(d), u + "active") - }, drag: function (e) { - var t, d, u, f, p = i.layoutRect(); - d = p.contentW > p.innerW, u = p.contentH > p.innerH, f = i.getEl("body")["client" + a] - 2 * o, f -= d && u ? i.getEl("scroll" + n)["client" + l] : 0, t = f / i.getEl("body")["scroll" + a], i.getEl("body")["scroll" + r] = c + e["delta" + s] / t - }, stop: function () { - e.removeClass(e.get(d), u + "active") - }}) - } - - i.addClass("scroll"), n("v", "Top", "Height", "Y", "Width"), n("h", "Left", "Width", "X", "Height") - } - - var i = this, o = 2; - i.settings.autoScroll && (i._hasScroll || (i._hasScroll = !0, r(), i.on("wheel", function (e) { - var t = i.getEl("body"); - t.scrollLeft += 10 * (e.deltaX || 0), t.scrollTop += 10 * e.deltaY, n() - }), e.on(i.getEl("body"), "scroll", n)), n()) - }} - }), r(K, [q, $], function (e, t) { - return e.extend({Defaults: {layout: "fit", containerCls: "panel"}, Mixins: [t], renderHtml: function () { - var e = this, t = e._layout, n = e.settings.html; - return e.preRender(), t.preRender(e), "undefined" == typeof n ? n = '<div id="' + e._id + '-body" class="' + e.classes("body") + '">' + t.renderHtml(e) + "</div>" : ("function" == typeof n && (n = n.call(e)), e._hasBody = !1), '<div id="' + e._id + '" class="' + e.classes() + '" hideFocus="1" tabIndex="-1">' + (e._preBodyHtml || "") + n + "</div>" - }}) - }), r(Y, [W], function (e) { - function t(t, n, r) { - var i, o, a, s, l, c, d, u, f, p; - return f = e.getViewPort(), o = e.getPos(n), a = o.x, s = o.y, t._fixed && (a -= f.x, s -= f.y), i = t.getEl(), p = e.getSize(i), l = p.width, c = p.height, p = e.getSize(n), d = p.width, u = p.height, r = (r || "").split(""), "b" === r[0] && (s += u), "r" === r[1] && (a += d), "c" === r[0] && (s += Math.round(u / 2)), "c" === r[1] && (a += Math.round(d / 2)), "b" === r[3] && (s -= c), "r" === r[4] && (a -= l), "c" === r[3] && (s -= Math.round(c / 2)), "c" === r[4] && (a -= Math.round(l / 2)), {x: a, y: s, w: l, h: c} - } - - return{testMoveRel: function (n, r) { - for (var i = e.getViewPort(), o = 0; o < r.length; o++) { - var a = t(this, n, r[o]); - if (this._fixed) { - if (a.x > 0 && a.x + a.w < i.w && a.y > 0 && a.y + a.h < i.h)return r[o] - } else if (a.x > i.x && a.x + a.w < i.w + i.x && a.y > i.y && a.y + a.h < i.h + i.y)return r[o] - } - return r[0] - }, moveRel: function (e, n) { - "string" != typeof n && (n = this.testMoveRel(e, n)); - var r = t(this, e, n); - return this.moveTo(r.x, r.y) - }, moveBy: function (e, t) { - var n = this, r = n.layoutRect(); - return n.moveTo(r.x + e, r.y + t), n - }, moveTo: function (t, n) { - function r(e, t, n) { - return 0 > e ? 0 : e + n > t ? (e = t - n, 0 > e ? 0 : e) : e - } - - var i = this; - if (i.settings.constrainToViewport) { - var o = e.getViewPort(window), a = i.layoutRect(); - t = r(t, o.w + o.x, a.w), n = r(n, o.h + o.y, a.h) - } - return i._rendered ? i.layoutRect({x: t, y: n}).repaint() : (i.settings.x = t, i.settings.y = n), i.fire("move", {x: t, y: n}), i - }} - }), r(G, [W], function (e) { - return{resizeToContent: function () { - this._layoutRect.autoResize = !0, this._lastRect = null, this.reflow() - }, resizeTo: function (t, n) { - if (1 >= t || 1 >= n) { - var r = e.getWindowSize(); - t = 1 >= t ? t * r.w : t, n = 1 >= n ? n * r.h : n - } - return this._layoutRect.autoResize = !1, this.layoutRect({minW: t, minH: n, w: t, h: n}).reflow() - }, resizeBy: function (e, t) { - var n = this, r = n.layoutRect(); - return n.resizeTo(r.w + e, r.h + t) - }} - }), r(X, [K, Y, G, W], function (e, t, n, r) { - function i(e) { - var t; - for (t = s.length; t--;)s[t] === e && s.splice(t, 1); - for (t = l.length; t--;)l[t] === e && l.splice(t, 1) - } - - var o, a, s = [], l = [], c, d = e.extend({Mixins: [t, n], init: function (e) { - function t() { - var e, t = d.zIndex || 65535, n; - if (l.length)for (e = 0; e < l.length; e++)l[e].modal && (t++, n = l[e]), l[e].getEl().style.zIndex = t, l[e].zIndex = t, t++; - var i = document.getElementById(u.classPrefix + "modal-block"); - n ? r.css(i, "z-index", n.zIndex - 1) : i && (i.parentNode.removeChild(i), c = !1), d.currentZIndex = t - } - - function n(e, t) { - for (; e;) { - if (e == t)return!0; - e = e.parent() - } - } - - function i(e) { - function t(t, n) { - for (var r, i = 0; i < s.length; i++)if (s[i] != e)for (r = s[i].parent(); r && (r = r.parent());)r == e && s[i].fixed(t).moveBy(0, n).repaint() - } - - var n = r.getViewPort().y; - e.settings.autofix && (e._fixed ? e._autoFixY > n && (e.fixed(!1).layoutRect({y: e._autoFixY}).repaint(), t(!1, e._autoFixY - n)) : (e._autoFixY = e.layoutRect().y, e._autoFixY < n && (e.fixed(!0).layoutRect({y: 0}).repaint(), t(!0, n - e._autoFixY)))) - } - - var u = this; - u._super(e), u._eventsRoot = u, u.addClass("floatpanel"), e.autohide && (o || (o = function (e) { - for (var t = s.length; t--;) { - var r = s[t], i = r.getParentCtrl(e.target); - if (r.settings.autohide) { - if (i && (n(i, r) || r.parent() === i))continue; - e = r.fire("autohide", {target: e.target}), e.isDefaultPrevented() || r.hide() - } - } - }, r.on(document, "click", o)), s.push(u)), e.autofix && (a || (a = function () { - var e; - for (e = s.length; e--;)i(s[e]) - }, r.on(window, "scroll", a)), u.on("move", function () { - i(this) - })), u.on("postrender show", function (e) { - if (e.control == u) { - var n, i = u.classPrefix; - u.modal && !c && (n = r.createFragment('<div id="' + i + 'modal-block" class="' + i + "reset " + i + 'fade"></div>'), n = n.firstChild, u.getContainerElm().appendChild(n), setTimeout(function () { - r.addClass(n, i + "in"), r.addClass(u.getEl(), i + "in") - }, 0), c = !0), l.push(u), t() - } - }), u.on("close hide", function (e) { - if (e.control == u) { - for (var n = l.length; n--;)l[n] === u && l.splice(n, 1); - t() - } - }), u.on("show", function () { - u.parents().each(function (e) { - return e._fixed ? (u.fixed(!0), !1) : void 0 - }) - }), e.popover && (u._preBodyHtml = '<div class="' + u.classPrefix + 'arrow"></div>', u.addClass("popover").addClass("bottom").addClass(u.isRtl() ? "end" : "start")) - }, fixed: function (e) { - var t = this; - if (t._fixed != e) { - if (t._rendered) { - var n = r.getViewPort(); - e ? t.layoutRect().y -= n.y : t.layoutRect().y += n.y - } - t.toggleClass("fixed", e), t._fixed = e - } - return t - }, show: function () { - var e = this, t, n = e._super(); - for (t = s.length; t-- && s[t] !== e;); - return-1 === t && s.push(e), n - }, hide: function () { - return i(this), this._super() - }, hideAll: function () { - d.hideAll() - }, close: function () { - var e = this; - return e.fire("close"), e.remove() - }, remove: function () { - i(this), this._super() - }}); - return d.hideAll = function () { - for (var e = s.length; e--;) { - var t = s[e]; - t.settings.autohide && (t.fire("cancel", {}, !1), t.hide(), s.splice(e, 1)) - } - }, d - }), r(J, [W], function (e) { - return function (t) { - function n() { - if (!m)if (m = [], u.find)u.find("*").each(function (e) { - e.canFocus && m.push(e.getEl()) - }); else for (var e = u.getEl().getElementsByTagName("*"), t = 0; t < e.length; t++)e[t].id && e[t] && m.push(e[t]) - } - - function r() { - return document.getElementById(h) - } - - function i(e) { - return e = e || r(), e && e.getAttribute("role") - } - - function o(e) { - for (var t, n = e || r(); n = n.parentNode;)if (t = i(n))return t - } - - function a(e) { - var t = document.getElementById(h); - return t ? t.getAttribute("aria-" + e) : void 0 - } - - function s() { - var n = r(); - if (!n || "TEXTAREA" != n.nodeName && "text" != n.type)return t.onAction ? t.onAction(h) : e.fire(r(), "click", {keyboard: !0}), !0 - } - - function l() { - var e; - t.onCancel ? ((e = r()) && e.blur(), t.onCancel()) : t.root.fire("cancel") - } - - function c(e) { - function r(e) { - for (var t = u ? u.getEl() : document.body; e && e != t;) { - if ("none" == e.style.display)return!1; - e = e.parentNode - } - return!0 - } - - var i = -1, o, a, l = []; - for (n(), a = l.length, a = 0; a < m.length; a++)r(m[a]) && l.push(m[a]); - for (a = l.length; a--;)if (l[a].id === h) { - i = a; - break - } - i += e, 0 > i ? i = l.length - 1 : i >= l.length && (i = 0), o = l[i], o.focus(), h = o.id, t.actOnFocus && s() - } - - function d() { - var e, r; - for (r = i(t.root.getEl()), n(), e = m.length; e--;)if ("toolbar" == r && m[e].id === h)return void m[e].focus(); - m[0].focus() - } - - var u = t.root, f = t.enableUpDown !== !1, p = t.enableLeftRight !== !1, m = t.items, h; - return u.on("keydown", function (e) { - var n = 37, r = 39, d = 38, u = 40, m = 27, h = 14, g = 13, v = 32, y = 9, b; - switch (e.keyCode) { - case n: - p && (t.leftAction ? t.leftAction() : c(-1), b = !0); - break; - case r: - p && ("menuitem" == i() && "menu" == o() ? a("haspopup") && s() : c(1), b = !0); - break; - case d: - f && (c(-1), b = !0); - break; - case u: - f && ("menuitem" == i() && "menubar" == o() ? s() : "button" == i() && a("haspopup") ? s() : c(1), b = !0); - break; - case y: - b = !0, c(e.shiftKey ? -1 : 1); - break; - case m: - b = !0, l(); - break; - case h: - case g: - case v: - b = s() - } - b && (e.stopPropagation(), e.preventDefault()) - }), u.on("focusin", function (e) { - n(), h = e.target.id - }), {moveFocus: c, focusFirst: d, cancel: l} - } - }), r(Q, [X, K, W, J, j], function (e, t, n, r, i) { - var o = e.extend({modal: !0, Defaults: {border: 1, layout: "flex", containerCls: "panel", role: "dialog", callbacks: {submit: function () { - this.fire("submit", {data: this.toJSON()}) - }, close: function () { - this.close() - }}}, init: function (e) { - var n = this; - n._super(e), n.isRtl() && n.addClass("rtl"), n.addClass("window"), n._fixed = !0, e.buttons && (n.statusbar = new t({layout: "flex", border: "1 0 0 0", spacing: 3, padding: 10, align: "center", pack: n.isRtl() ? "start" : "end", defaults: {type: "button"}, items: e.buttons}), n.statusbar.addClass("foot"), n.statusbar.parent(n)), n.on("click", function (e) { - -1 != e.target.className.indexOf(n.classPrefix + "close") && n.close() - }), n.aria("label", e.title), n._fullscreen = !1 - }, recalc: function () { - var e = this, t = e.statusbar, r, i, o, a; - e._fullscreen && (e.layoutRect(n.getWindowSize()), e.layoutRect().contentH = e.layoutRect().innerH), e._super(), r = e.layoutRect(), e.settings.title && !e._fullscreen && (i = r.headerW, i > r.w && (o = r.x - Math.max(0, i / 2), e.layoutRect({w: i, x: o}), a = !0)), t && (t.layoutRect({w: e.layoutRect().innerW}).recalc(), i = t.layoutRect().minW + r.deltaW, i > r.w && (o = r.x - Math.max(0, i - r.w), e.layoutRect({w: i, x: o}), a = !0)), a && e.recalc() - }, initLayoutRect: function () { - var e = this, t = e._super(), r = 0, i; - if (e.settings.title && !e._fullscreen) { - i = e.getEl("head"); - var o = n.getSize(i); - t.headerW = o.width, t.headerH = o.height, r += t.headerH - } - e.statusbar && (r += e.statusbar.layoutRect().h), t.deltaH += r, t.minH += r, t.h += r; - var a = n.getWindowSize(); - return t.x = Math.max(0, a.w / 2 - t.w / 2), t.y = Math.max(0, a.h / 2 - t.h / 2), t - }, renderHtml: function () { - var e = this, t = e._layout, n = e._id, r = e.classPrefix, i = e.settings, o = "", a = "", s = i.html; - return e.preRender(), t.preRender(e), i.title && (o = '<div id="' + n + '-head" class="' + r + 'window-head"><div class="' + r + 'title">' + e.encode(i.title) + '</div><button type="button" class="' + r + 'close" aria-hidden="true">×</button><div id="' + n + '-dragh" class="' + r + 'dragh"></div></div>'), i.url && (s = '<iframe src="' + i.url + '" tabindex="-1"></iframe>'), "undefined" == typeof s && (s = t.renderHtml(e)), e.statusbar && (a = e.statusbar.renderHtml()), '<div id="' + n + '" class="' + e.classes() + '" hideFocus="1" tabIndex="-1">' + o + '<div id="' + n + '-body" class="' + e.classes("body") + '">' + s + "</div>" + a + "</div>" - }, fullscreen: function (e) { - var t = this, r = document.documentElement, i, o = t.classPrefix, a; - if (e != t._fullscreen)if (n.on(window, "resize", function () { - var e; - if (t._fullscreen)if (i)t._timer || (t._timer = setTimeout(function () { - var e = n.getWindowSize(); - t.moveTo(0, 0).resizeTo(e.w, e.h), t._timer = 0 - }, 50)); else { - e = (new Date).getTime(); - var r = n.getWindowSize(); - t.moveTo(0, 0).resizeTo(r.w, r.h), (new Date).getTime() - e > 50 && (i = !0) - } - }), a = t.layoutRect(), t._fullscreen = e, e) { - t._initial = {x: a.x, y: a.y, w: a.w, h: a.h}, t._borderBox = t.parseBox("0"), t.getEl("head").style.display = "none", a.deltaH -= a.headerH + 2, n.addClass(r, o + "fullscreen"), n.addClass(document.body, o + "fullscreen"), t.addClass("fullscreen"); - var s = n.getWindowSize(); - t.moveTo(0, 0).resizeTo(s.w, s.h) - } else t._borderBox = t.parseBox(t.settings.border), t.getEl("head").style.display = "", a.deltaH += a.headerH, n.removeClass(r, o + "fullscreen"), n.removeClass(document.body, o + "fullscreen"), t.removeClass("fullscreen"), t.moveTo(t._initial.x, t._initial.y).resizeTo(t._initial.w, t._initial.h); - return t.reflow() - }, postRender: function () { - var e = this, t = [], n, o, a; - setTimeout(function () { - e.addClass("in") - }, 0), e.keyboardNavigation = new r({root: e, enableLeftRight: !1, enableUpDown: !1, items: t, onCancel: function () { - e.close() - }}), e.find("*").each(function (e) { - e.canFocus && (o = o || e.settings.autofocus, n = n || e, e.subinput ? (t.push(e.getEl("inp")), e.getEl("open") && t.push(e.getEl("open"))) : t.push(e.getEl())) - }), e.statusbar && e.statusbar.find("*").each(function (e) { - e.canFocus && (o = o || e.settings.autofocus, n = n || e, t.push(e.getEl())) - }), e._super(), e.statusbar && e.statusbar.postRender(), !o && n && n.focus(), this.dragHelper = new i(e._id + "-dragh", {start: function () { - a = {x: e.layoutRect().x, y: e.layoutRect().y} - }, drag: function (t) { - e.moveTo(a.x + t.deltaX, a.y + t.deltaY) - }}), e.on("submit", function (t) { - t.isDefaultPrevented() || e.close() - }) - }, submit: function () { - return this.fire("submit", {data: this.toJSON()}) - }, remove: function () { - var e = this, t = e.classPrefix; - e.dragHelper.destroy(), e._super(), e.statusbar && this.statusbar.remove(), e._fullscreen && (n.removeClass(document.documentElement, t + "fullscreen"), n.removeClass(document.body, t + "fullscreen")) - }}); - return o - }), r(Z, [Q], function (e) { - var t = e.extend({init: function (e) { - e = {border: 1, padding: 20, layout: "flex", pack: "center", align: "center", containerCls: "panel", autoScroll: !0, buttons: {type: "button", text: "Ok", action: "ok"}, items: {type: "label", multiline: !0, maxWidth: 500, maxHeight: 200}}, this._super(e) - }, Statics: {OK: 1, OK_CANCEL: 2, YES_NO: 3, YES_NO_CANCEL: 4, msgBox: function (n) { - var r, i = n.callback || function () { - }; - switch (n.buttons) { - case t.OK_CANCEL: - r = [ - {type: "button", text: "Ok", subtype: "primary", onClick: function (e) { - e.control.parents()[1].close(), i(!0) - }}, - {type: "button", text: "Cancel", onClick: function (e) { - e.control.parents()[1].close(), i(!1) - }} - ]; - break; - case t.YES_NO: - r = [ - {type: "button", text: "Ok", subtype: "primary", onClick: function (e) { - e.control.parents()[1].close(), i(!0) - }} - ]; - break; - case t.YES_NO_CANCEL: - r = [ - {type: "button", text: "Ok", subtype: "primary", onClick: function (e) { - e.control.parents()[1].close() - }} - ]; - break; - default: - r = [ - {type: "button", text: "Ok", subtype: "primary", onClick: function (e) { - e.control.parents()[1].close(), i(!0) - }} - ] - } - return new e({padding: 20, x: n.x, y: n.y, minWidth: 300, minHeight: 100, layout: "flex", pack: "center", align: "center", buttons: r, title: n.title, items: {type: "label", multiline: !0, maxWidth: 500, maxHeight: 200, text: n.text}, onClose: n.onClose}).renderTo(document.body).reflow() - }, alert: function (e, n) { - return"string" == typeof e && (e = {text: e}), e.callback = n, t.msgBox(e) - }, confirm: function (e, n) { - return"string" == typeof e && (e = {text: e}), e.callback = n, e.buttons = t.OK_CANCEL, t.msgBox(e) - }}}); - return t - }), r(et, [Q, Z], function (e, t) { - return function (n) { - function r() { - return o.length ? o[o.length - 1] : void 0 - } - - var i = this, o = []; - i.windows = o, i.open = function (t, r) { - var i; - return n.editorManager.activeEditor = n, t.title = t.title || " ", t.url = t.url || t.file, t.url && (t.width = parseInt(t.width || 320, 10), t.height = parseInt(t.height || 240, 10)), t.body && (t.items = {defaults: t.defaults, type: t.bodyType || "form", items: t.body}), t.url || t.buttons || (t.buttons = [ - {text: "Ok", subtype: "primary", onclick: function () { - i.find("form")[0].submit(), i.close() - }}, - {text: "Cancel", onclick: function () { - i.close() - }} - ]), i = new e(t), o.push(i), i.on("close", function () { - for (var e = o.length; e--;)o[e] === i && o.splice(e, 1); - n.focus() - }), t.data && i.on("postRender", function () { - this.find("*").each(function (e) { - var n = e.name(); - n in t.data && e.value(t.data[n]) - }) - }), i.features = t || {}, i.params = r || {}, n.nodeChanged(), i.renderTo(document.body).reflow() - }, i.alert = function (e, n, r) { - t.alert(e, function () { - n && n.call(r || this) - }) - }, i.confirm = function (e, n, r) { - t.confirm(e, function (e) { - n.call(r || this, e) - }) - }, i.close = function () { - r() && r().close() - }, i.getParams = function () { - return r() ? r().params : null - }, i.setParams = function (e) { - r() && (r().params = e) - } - } - }), r(tt, [T, B, C, m, h, f], function (e, t, n, r, i, o) { - return function (a) { - function s(e, t) { - try { - a.getDoc().execCommand(e, !1, t) - } catch (n) { - } - } - - function l() { - var e = a.getDoc().documentMode; - return e ? e : 6 - } - - function c(e) { - return e.isDefaultPrevented() - } - - function d() { - function t(e) { - var t = new MutationObserver(function () { - }); - o.each(a.getBody().getElementsByTagName("*"), function (e) { - "SPAN" == e.tagName && e.setAttribute("mce-data-marked", 1), !e.hasAttribute("data-mce-style") && e.hasAttribute("style") && a.dom.setAttrib(e, "style", e.getAttribute("style")) - }), t.observe(a.getDoc(), {childList: !0, attributes: !0, subtree: !0, attributeFilter: ["style"]}), a.getDoc().execCommand(e ? "ForwardDelete" : "Delete", !1, null); - var n = a.selection.getRng(), r = n.startContainer.parentNode; - o.each(t.takeRecords(), function (e) { - if ("style" == e.attributeName) { - var t = e.target.getAttribute("data-mce-style"); - t ? e.target.setAttribute("style", t) : e.target.removeAttribute("style") - } - o.each(e.addedNodes, function (e) { - if ("SPAN" == e.nodeName && !e.getAttribute("mce-data-marked")) { - var t, i; - e == r && (t = n.startOffset, i = e.firstChild), W.remove(e, !0), i && (n.setStart(i, t), n.setEnd(i, t), a.selection.setRng(n)) - } - }) - }), t.disconnect(), o.each(a.dom.select("span[mce-data-marked]"), function (e) { - e.removeAttribute("mce-data-marked") - }) - } - - var n = a.getDoc(); - window.MutationObserver && (a.on("keydown", function (n) { - var r = n.keyCode == F, i = e.metaKeyPressed(n); - if (!c(n) && (r || n.keyCode == z)) { - var o = a.selection.getRng(), s = o.startContainer, l = o.startOffset; - if (!i && o.collapsed && 3 == s.nodeType && (r ? l < s.data.length : l > 0))return; - n.preventDefault(), i && a.selection.getSel().modify("extend", r ? "forward" : "backward", "word"), t(r) - } - }), a.on("keypress", function (n) { - c(n) || V.isCollapsed() || !n.charCode || e.metaKeyPressed(n) || (n.preventDefault(), t(!0), a.selection.setContent(String.fromCharCode(n.charCode))) - }), a.addCommand("Delete", function () { - t() - }), a.addCommand("ForwardDelete", function () { - t(!0) - }), a.on("dragstart", function (e) { - e.dataTransfer.setData("mce-internal", a.selection.getContent()) - }), a.on("drop", function (e) { - if (!c(e)) { - var r = e.dataTransfer.getData("mce-internal"); - r && n.caretRangeFromPoint && (e.preventDefault(), t(), a.selection.setRng(n.caretRangeFromPoint(e.x, e.y)), a.insertContent(r)) - } - }), a.on("cut", function (e) { - !c(e) && e.clipboardData && (e.preventDefault(), e.clipboardData.clearData(), e.clipboardData.setData("text/html", a.selection.getContent()), e.clipboardData.setData("text/plain", a.selection.getContent({format: "text"})), t(!0)) - })) - } - - function u() { - function e(e) { - var t = W.create("body"), n = e.cloneContents(); - return t.appendChild(n), V.serializer.serialize(t, {format: "html"}) - } - - function n(n) { - if (!n.setStart) { - if (n.item)return!1; - var r = n.duplicate(); - return r.moveToElementText(a.getBody()), t.compareRanges(n, r) - } - var i = e(n), o = W.createRng(); - o.selectNode(a.getBody()); - var s = e(o); - return i === s - } - - a.on("keydown", function (e) { - var t = e.keyCode, r, i; - if (!c(e) && (t == F || t == z)) { - if (r = a.selection.isCollapsed(), i = a.getBody(), r && !W.isEmpty(i))return; - if (!r && !n(a.selection.getRng()))return; - e.preventDefault(), a.setContent(""), i.firstChild && W.isBlock(i.firstChild) ? a.selection.setCursorLocation(i.firstChild, 0) : a.selection.setCursorLocation(i, 0), a.nodeChanged() - } - }) - } - - function f() { - a.on("keydown", function (t) { - !c(t) && 65 == t.keyCode && e.metaKeyPressed(t) && (t.preventDefault(), a.execCommand("SelectAll")) - }) - } - - function p() { - a.settings.content_editable || (W.bind(a.getDoc(), "focusin", function () { - V.setRng(V.getRng()) - }), W.bind(a.getDoc(), "mousedown", function (e) { - e.target == a.getDoc().documentElement && (a.getBody().focus(), V.setRng(V.getRng())) - })) - } - - function m() { - a.on("keydown", function (e) { - if (!c(e) && e.keyCode === z && V.isCollapsed() && 0 === V.getRng(!0).startOffset) { - var t = V.getNode(), n = t.previousSibling; - if ("HR" == t.nodeName)return W.remove(t), void e.preventDefault(); - n && n.nodeName && "hr" === n.nodeName.toLowerCase() && (W.remove(n), e.preventDefault()) - } - }) - } - - function h() { - window.Range.prototype.getClientRects || a.on("mousedown", function (e) { - if (!c(e) && "HTML" === e.target.nodeName) { - var t = a.getBody(); - t.blur(), setTimeout(function () { - t.focus() - }, 0) - } - }) - } - - function g() { - a.on("click", function (e) { - e = e.target, /^(IMG|HR)$/.test(e.nodeName) && V.getSel().setBaseAndExtent(e, 0, e, 1), "A" == e.nodeName && W.hasClass(e, "mce-item-anchor") && V.select(e), a.nodeChanged() - }) - } - - function v() { - function e() { - var e = W.getAttribs(V.getStart().cloneNode(!1)); - return function () { - var t = V.getStart(); - t !== a.getBody() && (W.setAttrib(t, "style", null), I(e, function (e) { - t.setAttributeNode(e.cloneNode(!0)) - })) - } - } - - function t() { - return!V.isCollapsed() && W.getParent(V.getStart(), W.isBlock) != W.getParent(V.getEnd(), W.isBlock) - } - - a.on("keypress", function (n) { - var r; - return c(n) || 8 != n.keyCode && 46 != n.keyCode || !t() ? void 0 : (r = e(), a.getDoc().execCommand("delete", !1, null), r(), n.preventDefault(), !1) - }), W.bind(a.getDoc(), "cut", function (n) { - var r; - !c(n) && t() && (r = e(), setTimeout(function () { - r() - }, 0)) - }) - } - - function y() { - var e, n; - a.on("selectionchange", function () { - n && (clearTimeout(n), n = 0), n = window.setTimeout(function () { - var n = V.getRng(); - e && t.compareRanges(n, e) || (a.nodeChanged(), e = n) - }, 50) - }) - } - - function b() { - document.body.setAttribute("role", "application") - } - - function C() { - a.on("keydown", function (e) { - if (!c(e) && e.keyCode === z && V.isCollapsed() && 0 === V.getRng(!0).startOffset) { - var t = V.getNode().previousSibling; - if (t && t.nodeName && "table" === t.nodeName.toLowerCase())return e.preventDefault(), !1 - } - }) - } - - function x() { - l() > 7 || (s("RespectVisibilityInDesign", !0), a.contentStyles.push(".mceHideBrInPre pre br {display: none}"), W.addClass(a.getBody(), "mceHideBrInPre"), q.addNodeFilter("pre", function (e) { - for (var t = e.length, r, i, o, a; t--;)for (r = e[t].getAll("br"), i = r.length; i--;)o = r[i], a = o.prev, a && 3 === a.type && "\n" != a.value.charAt(a.value - 1) ? a.value += "\n" : o.parent.insert(new n("#text", 3), o, !0).value = "\n" - }), j.addNodeFilter("pre", function (e) { - for (var t = e.length, n, r, i, o; t--;)for (n = e[t].getAll("br"), r = n.length; r--;)i = n[r], o = i.prev, o && 3 == o.type && (o.value = o.value.replace(/\r?\n$/, "")) - })) - } - - function w() { - W.bind(a.getBody(), "mouseup", function () { - var e, t = V.getNode(); - "IMG" == t.nodeName && ((e = W.getStyle(t, "width")) && (W.setAttrib(t, "width", e.replace(/[^0-9%]+/g, "")), W.setStyle(t, "width", "")), (e = W.getStyle(t, "height")) && (W.setAttrib(t, "height", e.replace(/[^0-9%]+/g, "")), W.setStyle(t, "height", ""))) - }) - } - - function _() { - a.on("keydown", function (t) { - var n, r, i, o, s; - if (!c(t) && t.keyCode == e.BACKSPACE && (n = V.getRng(), r = n.startContainer, i = n.startOffset, o = W.getRoot(), s = r, n.collapsed && 0 === i)) { - for (; s && s.parentNode && s.parentNode.firstChild == s && s.parentNode != o;)s = s.parentNode; - "BLOCKQUOTE" === s.tagName && (a.formatter.toggle("blockquote", null, s), n = W.createRng(), n.setStart(r, 0), n.setEnd(r, 0), V.setRng(n)) - } - }) - } - - function N() { - function e() { - a._refreshContentEditable(), s("StyleWithCSS", !1), s("enableInlineTableEditing", !1), U.object_resizing || s("enableObjectResizing", !1) - } - - U.readonly || a.on("BeforeExecCommand MouseDown", e) - } - - function E() { - function e() { - I(W.select("a"), function (e) { - var t = e.parentNode, n = W.getRoot(); - if (t.lastChild === e) { - for (; t && !W.isBlock(t);) { - if (t.parentNode.lastChild !== t || t === n)return; - t = t.parentNode - } - W.add(t, "br", {"data-mce-bogus": 1}) - } - }) - } - - a.on("SetContent ExecCommand", function (t) { - ("setcontent" == t.type || "mceInsertLink" === t.command) && e() - }) - } - - function k() { - U.forced_root_block && a.on("init", function () { - s("DefaultParagraphSeparator", U.forced_root_block) - }) - } - - function S() { - a.on("Undo Redo SetContent", function (e) { - e.initial || a.execCommand("mceRepaint") - }) - } - - function T() { - a.on("keydown", function (e) { - var t; - c(e) || e.keyCode != z || (t = a.getDoc().selection.createRange(), t && t.item && (e.preventDefault(), a.undoManager.beforeChange(), W.remove(t.item(0)), a.undoManager.add())) - }) - } - - function R() { - var e; - l() >= 10 && (e = "", I("p div h1 h2 h3 h4 h5 h6".split(" "), function (t, n) { - e += (n > 0 ? "," : "") + t + ":empty" - }), a.contentStyles.push(e + "{padding-right: 1px !important}")) - } - - function A() { - l() < 9 && (q.addNodeFilter("noscript", function (e) { - for (var t = e.length, n, r; t--;)n = e[t], r = n.firstChild, r && n.attr("data-mce-innertext", r.value) - }), j.addNodeFilter("noscript", function (e) { - for (var t = e.length, i, o, a; t--;)i = e[t], o = e[t].firstChild, o ? o.value = r.decode(o.value) : (a = i.attributes.map["data-mce-innertext"], a && (i.attr("data-mce-innertext", null), o = new n("#text", 3), o.value = a, o.raw = !0, i.append(o))) - })) - } - - function B() { - function e(e, t) { - var n = i.createTextRange(); - try { - n.moveToPoint(e, t) - } catch (r) { - n = null - } - return n - } - - function t(t) { - var r; - t.button ? (r = e(t.x, t.y), r && (r.compareEndPoints("StartToStart", a) > 0 ? r.setEndPoint("StartToStart", a) : r.setEndPoint("EndToEnd", a), r.select())) : n() - } - - function n() { - var e = r.selection.createRange(); - a && !e.item && 0 === e.compareEndPoints("StartToEnd", e) && a.select(), W.unbind(r, "mouseup", n), W.unbind(r, "mousemove", t), a = o = 0 - } - - var r = W.doc, i = r.body, o, a, s; - r.documentElement.unselectable = !0, W.bind(r, "mousedown contextmenu", function (i) { - if ("HTML" === i.target.nodeName) { - if (o && n(), s = r.documentElement, s.scrollHeight > s.clientHeight)return; - o = 1, a = e(i.x, i.y), a && (W.bind(r, "mouseup", n), W.bind(r, "mousemove", t), W.win.focus(), a.select()) - } - }) - } - - function L() { - a.on("keyup focusin", function (t) { - 65 == t.keyCode && e.metaKeyPressed(t) || V.normalize() - }) - } - - function H() { - a.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}") - } - - function M() { - a.inline || a.on("keydown", function () { - document.activeElement == document.body && a.getWin().focus() - }) - } - - function D() { - a.inline || (a.contentStyles.push("body {min-height: 150px}"), a.on("click", function (e) { - "HTML" == e.target.nodeName && (a.execCommand("SelectAll"), a.selection.collapse(!0), a.nodeChanged()) - })) - } - - function P() { - i.mac && a.on("keydown", function (t) { - !e.metaKeyPressed(t) || 37 != t.keyCode && 39 != t.keyCode || (t.preventDefault(), a.selection.getSel().modify("move", 37 == t.keyCode ? "backward" : "forward", "word")) - }) - } - - function O() { - s("AutoUrlDetect", !1) - } - - var I = o.each, z = e.BACKSPACE, F = e.DELETE, W = a.dom, V = a.selection, U = a.settings, q = a.parser, j = a.serializer, $ = i.gecko, K = i.ie, Y = i.webkit; - C(), _(), u(), L(), Y && (d(), p(), g(), k(), i.iOS ? (y(), M(), D()) : f()), K && i.ie < 11 && (m(), b(), x(), w(), T(), R(), A(), B()), i.ie >= 11 && D(), i.ie && (f(), O()), $ && (m(), h(), v(), N(), E(), S(), H(), P()) - } - }), r(nt, [f], function (e) { - function t() { - return!1 - } - - function n() { - return!0 - } - - var r = "__bindings", i = e.makeMap("focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave keydown keypress keyup contextmenu dragstart dragend dragover draggesture dragdrop drop drag", " "); - return{fire: function (e, i, o) { - var a = this, s, l, c, d, u; - if (e = e.toLowerCase(), i = i || {}, i.type = e, i.target || (i.target = a), i.preventDefault || (i.preventDefault = function () { - i.isDefaultPrevented = n - }, i.stopPropagation = function () { - i.isPropagationStopped = n - }, i.stopImmediatePropagation = function () { - i.isImmediatePropagationStopped = n - }, i.isDefaultPrevented = t, i.isPropagationStopped = t, i.isImmediatePropagationStopped = t), a[r] && (s = a[r][e]))for (l = 0, c = s.length; c > l && (s[l] = d = s[l], !i.isImmediatePropagationStopped()); l++)if (d.call(a, i) === !1)return i.preventDefault(), i; - if (o !== !1 && a.parent)for (u = a.parent(); u && !i.isPropagationStopped();)u.fire(e, i, !1), u = u.parent(); - return i - }, on: function (e, t) { - var n = this, o, a, s, l; - if (t === !1 && (t = function () { - return!1 - }), t)for (s = e.toLowerCase().split(" "), l = s.length; l--;)e = s[l], o = n[r], o || (o = n[r] = {}), a = o[e], a || (a = o[e] = [], n.bindNative && i[e] && n.bindNative(e)), a.push(t); - return n - }, off: function (e, t) { - var n = this, o, a = n[r], s, l, c, d; - if (a)if (e)for (c = e.toLowerCase().split(" "), o = c.length; o--;) { - if (e = c[o], s = a[e], !e) { - for (l in a)a[e].length = 0; - return n - } - if (s) { - if (t)for (d = s.length; d--;)s[d] === t && s.splice(d, 1); else s.length = 0; - !s.length && n.unbindNative && i[e] && (n.unbindNative(e), delete a[e]) - } - } else { - if (n.unbindNative)for (e in a)n.unbindNative(e); - n[r] = [] - } - return n - }, hasEventListeners: function (e) { - var t = this[r]; - return e = e.toLowerCase(), !(!t || !t[e] || 0 === t[e].length) - }} - }), r(rt, [f, h], function (e, t) { - var n = e.each, r = e.explode, i = {f9: 120, f10: 121, f11: 122}; - return function (o) { - var a = this, s = {}; - o.on("keyup keypress keydown", function (e) { - (e.altKey || e.ctrlKey || e.metaKey) && n(s, function (n) { - var r = t.mac ? e.metaKey : e.ctrlKey; - if (n.ctrl == r && n.alt == e.altKey && n.shift == e.shiftKey)return e.keyCode == n.keyCode || e.charCode && e.charCode == n.charCode ? (e.preventDefault(), "keydown" == e.type && n.func.call(n.scope), !0) : void 0 - }) - }), a.add = function (t, a, l, c) { - var d; - return d = l, "string" == typeof l ? l = function () { - o.execCommand(d, !1, null) - } : e.isArray(d) && (l = function () { - o.execCommand(d[0], d[1], d[2]) - }), n(r(t.toLowerCase()), function (e) { - var t = {func: l, scope: c || o, desc: o.translate(a), alt: !1, ctrl: !1, shift: !1}; - n(r(e, "+"), function (e) { - switch (e) { - case"alt": - case"ctrl": - case"shift": - t[e] = !0; - break; - default: - t.charCode = e.charCodeAt(0), t.keyCode = i[e] || e.toUpperCase().charCodeAt(0) - } - }), s[(t.ctrl ? "ctrl" : "") + "," + (t.alt ? "alt" : "") + "," + (t.shift ? "shift" : "") + "," + t.keyCode] = t - }), !0 - } - } - }), r(it, [v, b, C, k, E, A, L, H, M, D, P, O, y, d, et, x, _, tt, h, f, nt, rt], function (e, n, r, i, o, a, s, l, c, d, u, f, p, m, h, g, v, y, b, C, x, w) { - function _(e, t) { - return"selectionchange" == t ? e.getDoc() : !e.inline && /^mouse|click|contextmenu|drop/.test(t) ? e.getDoc() : e.getBody() - } - - function N(e, t, r) { - var i = this, o, a; - o = i.documentBaseUrl = r.documentBaseURL, a = r.baseURI, i.settings = t = T({id: e, theme: "modern", delta_width: 0, delta_height: 0, popup_css: "", plugins: "", document_base_url: o, add_form_submit_trigger: !0, submit_patch: !0, add_unload_trigger: !0, convert_urls: !0, relative_urls: !0, remove_script_host: !0, object_resizing: !0, doctype: "<!DOCTYPE html>", visual: !0, font_size_style_values: "xx-small,x-small,small,medium,large,x-large,xx-large", font_size_legacy_values: "xx-small,small,medium,large,x-large,xx-large,300%", forced_root_block: "p", hidden_input: !0, padd_empty_editor: !0, render_ui: !0, indentation: "30px", inline_styles: !0, convert_fonts_to_spans: !0, indent: "simple", indent_before: "p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist", indent_after: "p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist", validate: !0, entity_encoding: "named", url_converter: i.convertURL, url_converter_scope: i, ie7_compat: !0}, t), n.language = t.language || "en", n.languageLoad = t.language_load, n.baseURL = r.baseURL, i.id = t.id = e, i.isNotDirty = !0, i.plugins = {}, i.documentBaseURI = new f(t.document_base_url || o, {base_uri: a}), i.baseURI = a, i.contentCSS = [], i.contentStyles = [], i.shortcuts = new w(i), i.execCommands = {}, i.queryStateCommands = {}, i.queryValueCommands = {}, i.loadedCSS = {}, i.suffix = r.suffix, i.editorManager = r, i.inline = t.inline, r.fire("SetupEditor", i), i.execCallback("setup", i) - } - - var E = e.DOM, k = n.ThemeManager, S = n.PluginManager, T = C.extend, R = C.each, A = C.explode, B = C.inArray, L = C.trim, H = C.resolve, M = m.Event, D = b.gecko, P = b.ie; - return N.prototype = {render: function () { - function e() { - E.unbind(window, "ready", e), n.render() - } - - function t() { - var e = p.ScriptLoader; - if (r.language && "en" != r.language && !r.language_url && (r.language_url = n.editorManager.baseURL + "/langs/" + r.language + ".js"), r.language_url && e.add(r.language_url), r.theme && "function" != typeof r.theme && "-" != r.theme.charAt(0) && !k.urls[r.theme]) { - var t = r.theme_url; - t = t ? n.documentBaseURI.toAbsolute(t) : "themes/" + r.theme + "/theme" + o + ".js", k.load(r.theme, t) - } - C.isArray(r.plugins) && (r.plugins = r.plugins.join(" ")), R(r.external_plugins, function (e, t) { - S.load(t, e), r.plugins += " " + t - }), R(r.plugins.split(/[ ,]/), function (e) { - if (e = L(e), e && !S.urls[e])if ("-" == e.charAt(0)) { - e = e.substr(1, e.length); - var t = S.dependencies(e); - R(t, function (e) { - var t = {prefix: "plugins/", resource: e, suffix: "/plugin" + o + ".js"}; - e = S.createUrl(t, e), S.load(e.resource, e) - }) - } else S.load(e, {prefix: "plugins/", resource: e, suffix: "/plugin" + o + ".js"}) - }), e.loadQueue(function () { - n.removed || n.init() - }) - } - - var n = this, r = n.settings, i = n.id, o = n.suffix; - if (!M.domLoaded)return void E.bind(window, "ready", e); - if (n.getElement() && b.contentEditable) { - r.inline ? n.inline = !0 : (n.orgVisibility = n.getElement().style.visibility, n.getElement().style.visibility = "hidden"); - var a = n.getElement().form || E.getParent(i, "form"); - a && (n.formElement = a, r.hidden_input && !/TEXTAREA|INPUT/i.test(n.getElement().nodeName) && (E.insertAfter(E.create("input", {type: "hidden", name: i}), i), n.hasHiddenInput = !0), n.formEventDelegate = function (e) { - n.fire(e.type, e) - }, E.bind(a, "submit reset", n.formEventDelegate), n.on("reset", function () { - n.setContent(n.startContent, {format: "raw"}) - }), !r.submit_patch || a.submit.nodeType || a.submit.length || a._mceOldSubmit || (a._mceOldSubmit = a.submit, a.submit = function () { - return n.editorManager.triggerSave(), n.isNotDirty = !0, a._mceOldSubmit(a) - })), n.windowManager = new h(n), "xml" == r.encoding && n.on("GetContent", function (e) { - e.save && (e.content = E.encode(e.content)) - }), r.add_form_submit_trigger && n.on("submit", function () { - n.initialized && n.save() - }), r.add_unload_trigger && (n._beforeUnload = function () { - !n.initialized || n.destroyed || n.isHidden() || n.save({format: "raw", no_events: !0, set_dirty: !1}) - }, n.editorManager.on("BeforeUnload", n._beforeUnload)), t() - } - }, init: function () { - function e(n) { - var r = S.get(n), i, o; - i = S.urls[n] || t.documentBaseUrl.replace(/\/$/, ""), n = L(n), r && -1 === B(m, n) && (R(S.dependencies(n), function (t) { - e(t) - }), o = new r(t, i), t.plugins[n] = o, o.init && (o.init(t, i), m.push(n))) - } - - var t = this, n = t.settings, r = t.getElement(), i, o, a, s, l, c, d, u, f, p, m = []; - if (t.rtl = this.editorManager.i18n.rtl, t.editorManager.add(t), n.aria_label = n.aria_label || E.getAttrib(r, "aria-label", t.getLang("aria.rich_text_area")), n.theme && ("function" != typeof n.theme ? (n.theme = n.theme.replace(/-/, ""), l = k.get(n.theme), t.theme = new l(t, k.urls[n.theme]), t.theme.init && t.theme.init(t, k.urls[n.theme] || t.documentBaseUrl.replace(/\/$/, ""))) : t.theme = n.theme), R(n.plugins.replace(/\-/g, "").split(/[ ,]/), e), n.render_ui && t.theme && (t.orgDisplay = r.style.display, "function" != typeof n.theme ? (i = n.width || r.style.width || r.offsetWidth, o = n.height || r.style.height || r.offsetHeight, a = n.min_height || 100, f = /^[0-9\.]+(|px)$/i, f.test("" + i) && (i = Math.max(parseInt(i, 10) + (l.deltaWidth || 0), 100)), f.test("" + o) && (o = Math.max(parseInt(o, 10) + (l.deltaHeight || 0), a)), l = t.theme.renderUI({targetNode: r, width: i, height: o, deltaWidth: n.delta_width, deltaHeight: n.delta_height}), n.content_editable || (E.setStyles(l.sizeContainer || l.editorContainer, {wi2dth: i, h2eight: o}), o = (l.iframeHeight || o) + ("number" == typeof o ? l.deltaHeight || 0 : ""), a > o && (o = a))) : (l = n.theme(t, r), l.editorContainer.nodeType && (l.editorContainer = l.editorContainer.id = l.editorContainer.id || t.id + "_parent"), l.iframeContainer.nodeType && (l.iframeContainer = l.iframeContainer.id = l.iframeContainer.id || t.id + "_iframecontainer"), o = l.iframeHeight || r.offsetHeight), t.editorContainer = l.editorContainer), n.content_css && R(A(n.content_css), function (e) { - t.contentCSS.push(t.documentBaseURI.toAbsolute(e)) - }), n.content_style && t.contentStyles.push(n.content_style), n.content_editable)return r = s = l = null, t.initContentBody(); - for (t.iframeHTML = n.doctype + "<html><head>", n.document_base_url != t.documentBaseUrl && (t.iframeHTML += '<base href="' + t.documentBaseURI.getURI() + '" />'), !b.caretAfter && n.ie7_compat && (t.iframeHTML += '<meta http-equiv="X-UA-Compatible" content="IE=7" />'), t.iframeHTML += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />', p = 0; p < t.contentCSS.length; p++) { - var h = t.contentCSS[p]; - t.iframeHTML += '<link type="text/css" rel="stylesheet" href="' + h + '" />', t.loadedCSS[h] = !0 - } - d = n.body_id || "tinymce", -1 != d.indexOf("=") && (d = t.getParam("body_id", "", "hash"), d = d[t.id] || d), u = n.body_class || "", -1 != u.indexOf("=") && (u = t.getParam("body_class", "", "hash"), u = u[t.id] || ""), t.iframeHTML += '</head><body id="' + d + '" class="mce-content-body ' + u + '" onload="window.parent.tinymce.get(\'' + t.id + "').fire('load');\"><br></body></html>"; - var g = 'javascript:(function(){document.open();document.domain="' + document.domain + '";var ed = window.parent.tinymce.get("' + t.id + '");document.write(ed.iframeHTML);document.close();ed.initContentBody(true);})()'; - if (document.domain != location.hostname && (c = g), s = E.add(l.iframeContainer, "iframe", {id: t.id + "_ifr", src: c || 'javascript:""', frameBorder: "0", allowTransparency: "true", title: t.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"), style: {width: "100%", height: o, display: "block"}}), P)try { - t.getDoc() - } catch (v) { - s.src = c = g - } - t.contentAreaContainer = l.iframeContainer, l.editorContainer && (E.get(l.editorContainer).style.display = t.orgDisplay), E.get(t.id).style.display = "none", E.setAttrib(t.id, "aria-hidden", !0), c || t.initContentBody(), r = s = l = null - }, initContentBody: function (t) { - var n = this, o = n.settings, f = E.get(n.id), p = n.getDoc(), m, h; - o.inline || (n.getElement().style.visibility = n.orgVisibility), t || o.content_editable || (p.open(), p.write(n.iframeHTML), p.close()), o.content_editable && (n.on("remove", function () { - var e = this.getBody(); - E.removeClass(e, "mce-content-body"), E.removeClass(e, "mce-edit-focus"), E.setAttrib(e, "tabIndex", null), E.setAttrib(e, "contentEditable", null) - }), E.addClass(f, "mce-content-body"), f.tabIndex = -1, n.contentDocument = p = o.content_document || document, n.contentWindow = o.content_window || window, n.bodyElement = f, o.content_document = o.content_window = null, o.root_name = f.nodeName.toLowerCase()), m = n.getBody(), m.disabled = !0, o.readonly || (n.inline && "static" == E.getStyle(m, "position", !0) && (m.style.position = "relative"), m.contentEditable = n.getParam("content_editable_state", !0)), m.disabled = !1, n.schema = new g(o), n.dom = new e(p, {keep_values: !0, url_converter: n.convertURL, url_converter_scope: n, hex_colors: o.force_hex_style_colors, class_filter: o.class_filter, update_styles: !0, root_element: o.content_editable ? n.id : null, collect: o.content_editable, schema: n.schema, onSetAttrib: function (e) { - n.fire("SetAttrib", e) - }}), n.parser = new v(o, n.schema), n.parser.addAttributeFilter("src,href,style", function (e, t) { - for (var r = e.length, i, o = n.dom, a, s; r--;)i = e[r], a = i.attr(t), s = "data-mce-" + t, i.attributes.map[s] || ("style" === t ? i.attr(s, o.serializeStyle(o.parseStyle(a), i.name)) : i.attr(s, n.convertURL(a, t, i.name))) - }), n.parser.addNodeFilter("script", function (e) { - for (var t = e.length, n; t--;)n = e[t], n.attr("type", "mce-" + (n.attr("type") || "text/javascript")) - }), n.parser.addNodeFilter("#cdata", function (e) { - for (var t = e.length, n; t--;)n = e[t], n.type = 8, n.name = "#comment", n.value = "[CDATA[" + n.value + "]]" - }), n.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div", function (e) { - for (var t = e.length, i, o = n.schema.getNonEmptyElements(); t--;)i = e[t], i.isEmpty(o) && (i.empty().append(new r("br", 1)).shortEnded = !0) - }), n.serializer = new i(o, n), n.selection = new a(n.dom, n.getWin(), n.serializer, n), n.formatter = new s(n), n.undoManager = new l(n), n.forceBlocks = new d(n), n.enterKey = new c(n), n.editorCommands = new u(n), n.fire("PreInit"), o.browser_spellcheck || o.gecko_spellcheck || (p.body.spellcheck = !1, E.setAttrib(m, "spellcheck", "false")), n.fire("PostRender"), n.quirks = y(n), o.directionality && (m.dir = o.directionality), o.nowrap && (m.style.whiteSpace = "nowrap"), o.protect && n.on("BeforeSetContent", function (e) { - R(o.protect, function (t) { - e.content = e.content.replace(t, function (e) { - return"<!--mce:protected " + escape(e) + "-->" - }) - }) - }), n.on("SetContent", function () { - n.addVisual(n.getBody()) - }), o.padd_empty_editor && n.on("PostProcess", function (e) { - e.content = e.content.replace(/^(<p[^>]*>( | |\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/, "") - }), n.load({initial: !0, format: "html"}), n.startContent = n.getContent({format: "raw"}), n.initialized = !0, R(n._pendingNativeEvents, function (e) { - n.dom.bind(_(n, e), e, function (e) { - n.fire(e.type, e) - }) - }), n.fire("init"), n.focus(!0), n.nodeChanged({initial: !0}), n.execCallback("init_instance_callback", n), n.contentStyles.length > 0 && (h = "", R(n.contentStyles, function (e) { - h += e + "\r\n" - }), n.dom.addStyle(h)), R(n.contentCSS, function (e) { - n.loadedCSS[e] || (n.dom.loadCSS(e), n.loadedCSS[e] = !0) - }), o.auto_focus && setTimeout(function () { - var e = n.editorManager.get(o.auto_focus); - e.selection.select(e.getBody(), 1), e.selection.collapse(1), e.getBody().focus(), e.getWin().focus() - }, 100), f = p = m = null - }, focus: function (e) { - var t, n = this, r = n.selection, i = n.settings.content_editable, o, a, s = n.getDoc(), l; - e || (o = r.getRng(), o.item && (a = o.item(0)), n._refreshContentEditable(), i || (b.opera || n.getBody().focus(), n.getWin().focus()), (D || i) && (l = n.getBody(), l.setActive && b.ie < 11 ? l.setActive() : l.focus(), i && r.normalize()), a && a.ownerDocument == s && (o = s.body.createControlRange(), o.addElement(a), o.select())), n.editorManager.activeEditor != n && ((t = n.editorManager.activeEditor) && t.fire("deactivate", {relatedTarget: n}), n.fire("activate", {relatedTarget: t})), n.editorManager.activeEditor = n - }, execCallback: function (e) { - var t = this, n = t.settings[e], r; - if (n)return t.callbackLookup && (r = t.callbackLookup[e]) && (n = r.func, r = r.scope), "string" == typeof n && (r = n.replace(/\.\w+$/, ""), r = r ? H(r) : 0, n = H(n), t.callbackLookup = t.callbackLookup || {}, t.callbackLookup[e] = {func: n, scope: r}), n.apply(r || t, Array.prototype.slice.call(arguments, 1)) - }, translate: function (e) { - var t = this.settings.language || "en", n = this.editorManager.i18n; - return e ? n.data[t + "." + e] || e.replace(/\{\#([^\}]+)\}/g, function (e, r) { - return n.data[t + "." + r] || "{#" + r + "}" - }) : "" - }, getLang: function (e, n) { - return this.editorManager.i18n.data[(this.settings.language || "en") + "." + e] || (n !== t ? n : "{#" + e + "}") - }, getParam: function (e, t, n) { - var r = e in this.settings ? this.settings[e] : t, i; - return"hash" === n ? (i = {}, "string" == typeof r ? R(r.split(r.indexOf("=") > 0 ? /[;,](?![^=;,]*(?:[;,]|$))/ : ","), function (e) { - e = e.split("="), i[L(e[0])] = L(e.length > 1 ? e[1] : e) - }) : i = r, i) : r - }, nodeChanged: function () { - var e = this, t = e.selection, n, r, i; - e.initialized && !e.settings.disable_nodechange && (i = e.getBody(), n = t.getStart() || i, n = P && n.ownerDocument != e.getDoc() ? e.getBody() : n, "IMG" == n.nodeName && t.isCollapsed() && (n = n.parentNode), r = [], e.dom.getParent(n, function (e) { - return e === i ? !0 : void r.push(e) - }), e.fire("NodeChange", {element: n, parents: r})) - }, addButton: function (e, t) { - var n = this; - t.cmd && (t.onclick = function () { - n.execCommand(t.cmd) - }), t.text || t.icon || (t.icon = e), n.buttons = n.buttons || {}, t.tooltip = t.tooltip || t.title, n.buttons[e] = t - }, addMenuItem: function (e, t) { - var n = this; - t.cmd && (t.onclick = function () { - n.execCommand(t.cmd) - }), n.menuItems = n.menuItems || {}, n.menuItems[e] = t - }, addCommand: function (e, t, n) { - this.execCommands[e] = {func: t, scope: n || this} - }, addQueryStateHandler: function (e, t, n) { - this.queryStateCommands[e] = {func: t, scope: n || this} - }, addQueryValueHandler: function (e, t, n) { - this.queryValueCommands[e] = {func: t, scope: n || this} - }, addShortcut: function (e, t, n, r) { - this.shortcuts.add(e, t, n, r) - }, execCommand: function (e, t, n, r) { - var i = this, o = 0, a; - return/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(e) || r && r.skip_focus || i.focus(), r = T({}, r), r = i.fire("BeforeExecCommand", {command: e, ui: t, value: n}), r.isDefaultPrevented() ? !1 : (a = i.execCommands[e]) && a.func.call(a.scope, t, n) !== !0 ? (i.fire("ExecCommand", {command: e, ui: t, value: n}), !0) : (R(i.plugins, function (r) { - return r.execCommand && r.execCommand(e, t, n) ? (i.fire("ExecCommand", {command: e, ui: t, value: n}), o = !0, !1) : void 0 - }), o ? o : i.theme && i.theme.execCommand && i.theme.execCommand(e, t, n) ? (i.fire("ExecCommand", {command: e, ui: t, value: n}), !0) : i.editorCommands.execCommand(e, t, n) ? (i.fire("ExecCommand", {command: e, ui: t, value: n}), !0) : (i.getDoc().execCommand(e, t, n), void i.fire("ExecCommand", {command: e, ui: t, value: n}))) - }, queryCommandState: function (e) { - var t = this, n, r; - if (!t._isHidden()) { - if ((n = t.queryStateCommands[e]) && (r = n.func.call(n.scope), r !== !0))return r; - if (r = t.editorCommands.queryCommandState(e), -1 !== r)return r; - try { - return t.getDoc().queryCommandState(e) - } catch (i) { - } - } - }, queryCommandValue: function (e) { - var n = this, r, i; - if (!n._isHidden()) { - if ((r = n.queryValueCommands[e]) && (i = r.func.call(r.scope), i !== !0))return i; - if (i = n.editorCommands.queryCommandValue(e), i !== t)return i; - try { - return n.getDoc().queryCommandValue(e) - } catch (o) { - } - } - }, show: function () { - var e = this; - E.show(e.getContainer()), E.hide(e.id), e.load(), e.fire("show") - }, hide: function () { - var e = this, t = e.getDoc(); - P && t && !e.inline && t.execCommand("SelectAll"), e.save(), E.hide(e.getContainer()), E.setStyle(e.id, "display", e.orgDisplay), e.fire("hide") - }, isHidden: function () { - return!E.isHidden(this.id) - }, setProgressState: function (e, t) { - this.fire("ProgressState", {state: e, time: t}) - }, load: function (e) { - var n = this, r = n.getElement(), i; - return r ? (e = e || {}, e.load = !0, i = n.setContent(r.value !== t ? r.value : r.innerHTML, e), e.element = r, e.no_events || n.fire("LoadContent", e), e.element = r = null, i) : void 0 - }, save: function (e) { - var t = this, n = t.getElement(), r, i; - if (n && t.initialized)return e = e || {}, e.save = !0, e.element = n, r = e.content = t.getContent(e), e.no_events || t.fire("SaveContent", e), r = e.content, /TEXTAREA|INPUT/i.test(n.nodeName) ? n.value = r : (n.innerHTML = r, (i = E.getParent(t.id, "form")) && R(i.elements, function (e) { - return e.name == t.id ? (e.value = r, !1) : void 0 - })), e.element = n = null, e.set_dirty !== !1 && (t.isNotDirty = !0), r - }, setContent: function (e, t) { - var n = this, r = n.getBody(), i; - return t = t || {}, t.format = t.format || "html", t.set = !0, t.content = e, t.no_events || n.fire("BeforeSetContent", t), e = t.content, 0 === e.length || /^\s+$/.test(e) ? (i = n.settings.forced_root_block, i && n.schema.isValidChild(r.nodeName.toLowerCase(), i.toLowerCase()) ? (e = P && 11 > P ? "" : '<br data-mce-bogus="1">', e = n.dom.createHTML(i, n.settings.forced_root_block_attrs, e)) : (!P || 11 > P) && (e = '<br data-mce-bogus="1">'), r.innerHTML = e, n.fire("SetContent", t)) : ("raw" !== t.format && (e = new o({}, n.schema).serialize(n.parser.parse(e, {isRootContent: !0}))), t.content = L(e), n.dom.setHTML(r, t.content), t.no_events || n.fire("SetContent", t)), t.content - }, getContent: function (e) { - var t = this, n, r = t.getBody(); - return e = e || {}, e.format = e.format || "html", e.get = !0, e.getInner = !0, e.no_events || t.fire("BeforeGetContent", e), n = "raw" == e.format ? r.innerHTML : "text" == e.format ? r.innerText || r.textContent : t.serializer.serialize(r, e), e.content = "text" != e.format ? L(n) : n, e.no_events || t.fire("GetContent", e), e.content - }, insertContent: function (e) { - this.execCommand("mceInsertContent", !1, e) - }, isDirty: function () { - return!this.isNotDirty - }, getContainer: function () { - var e = this; - return e.container || (e.container = E.get(e.editorContainer || e.id + "_parent")), e.container - }, getContentAreaContainer: function () { - return this.contentAreaContainer - }, getElement: function () { - return E.get(this.settings.content_element || this.id) - }, getWin: function () { - var e = this, t; - return e.contentWindow || (t = E.get(e.id + "_ifr"), t && (e.contentWindow = t.contentWindow)), e.contentWindow - }, getDoc: function () { - var e = this, t; - return e.contentDocument || (t = e.getWin(), t && (e.contentDocument = t.document)), e.contentDocument - }, getBody: function () { - return this.bodyElement || this.getDoc().body - }, convertURL: function (e, t, n) { - var r = this, i = r.settings; - return i.urlconverter_callback ? r.execCallback("urlconverter_callback", e, n, !0, t) : !i.convert_urls || n && "LINK" == n.nodeName || 0 === e.indexOf("file:") || 0 === e.length ? e : i.relative_urls ? r.documentBaseURI.toRelative(e) : e = r.documentBaseURI.toAbsolute(e, i.remove_script_host) - }, addVisual: function (e) { - var n = this, r = n.settings, i = n.dom, o; - e = e || n.getBody(), n.hasVisual === t && (n.hasVisual = r.visual), R(i.select("table,a", e), function (e) { - var t; - switch (e.nodeName) { - case"TABLE": - return o = r.visual_table_class || "mce-item-table", t = i.getAttrib(e, "border"), void(t && "0" != t || (n.hasVisual ? i.addClass(e, o) : i.removeClass(e, o))); - case"A": - return void(i.getAttrib(e, "href", !1) || (t = i.getAttrib(e, "name") || e.id, o = "mce-item-anchor", t && (n.hasVisual ? i.addClass(e, o) : i.removeClass(e, o)))) - } - }), n.fire("VisualAid", {element: e, hasVisual: n.hasVisual}) - }, remove: function () { - var e = this; - if (!e.removed) { - e.removed = 1, e.hasHiddenInput && E.remove(e.getElement().nextSibling); - var t = e.getDoc(); - P && t && !e.inline && t.execCommand("SelectAll"), e.save(), E.setStyle(e.id, "display", e.orgDisplay), e.settings.content_editable || (M.unbind(e.getWin()), M.unbind(e.getDoc())); - var n = e.getContainer(); - M.unbind(e.getBody()), M.unbind(n), e.fire("remove"), e.editorManager.remove(e), E.remove(n), e.destroy() - } - }, bindNative: function (e) { - var t = this; - t.settings.readonly || (t.initialized ? t.dom.bind(_(t, e), e, function (n) { - t.fire(e, n) - }) : t._pendingNativeEvents ? t._pendingNativeEvents.push(e) : t._pendingNativeEvents = [e]) - }, unbindNative: function (e) { - var t = this; - t.initialized && t.dom.unbind(e) - }, destroy: function (e) { - var t = this, n; - if (!t.destroyed) { - if (!e && !t.removed)return void t.remove(); - e && D && (M.unbind(t.getDoc()), M.unbind(t.getWin()), M.unbind(t.getBody())), e || (t.editorManager.off("beforeunload", t._beforeUnload), t.theme && t.theme.destroy && t.theme.destroy(), t.selection.destroy(), t.dom.destroy()), n = t.formElement, n && (n._mceOldSubmit && (n.submit = n._mceOldSubmit, n._mceOldSubmit = null), E.unbind(n, "submit reset", t.formEventDelegate)), t.contentAreaContainer = t.formElement = t.container = null, t.settings.content_element = t.bodyElement = t.contentDocument = t.contentWindow = null, t.selection && (t.selection = t.selection.win = t.selection.dom = t.selection.dom.doc = null), t.destroyed = 1 - } - }, _refreshContentEditable: function () { - var e = this, t, n; - e._isHidden() && (t = e.getBody(), n = t.parentNode, n.removeChild(t), n.appendChild(t), t.focus()) - }, _isHidden: function () { - var e; - return D ? (e = this.selection.getSel(), !e || !e.rangeCount || 0 === e.rangeCount) : 0 - }}, T(N.prototype, x), N - }), r(ot, [], function () { - var e = {}; - return{rtl: !1, add: function (t, n) { - for (var r in n)e[r] = n[r]; - this.rtl = this.rtl || "rtl" === e._dir - }, translate: function (t) { - if ("undefined" == typeof t)return t; - if ("string" != typeof t && t.raw)return t.raw; - if (t.push) { - var n = t.slice(1); - t = (e[t[0]] || t[0]).replace(/\{([^\}]+)\}/g, function (e, t) { - return n[t] - }) - } - return e[t] || t - }, data: e} - }), r(at, [v, h], function (e, t) { - function n(r) { - function i() { - try { - return document.activeElement - } catch (e) { - return document.body - } - } - - function o(e) { - return e && e.startContainer ? {startContainer: e.startContainer, startOffset: e.startOffset, endContainer: e.endContainer, endOffset: e.endOffset} : e - } - - function a(e, t) { - var n; - return t.startContainer ? (n = e.getDoc().createRange(), n.setStart(t.startContainer, t.startOffset), n.setEnd(t.endContainer, t.endOffset)) : n = t, n - } - - function s(t) { - return!!e.DOM.getParent(t, n.isEditorUIElement) - } - - function l(e, t) { - for (var n = t.getBody(); e;) { - if (e == n)return!0; - e = e.parentNode - } - } - - function c(n) { - var c = n.editor, d; - c.on("init", function () { - "onbeforedeactivate"in document && t.ie < 11 ? c.dom.bind(c.getBody(), "beforedeactivate", function () { - try { - c.lastRng = c.selection.getRng() - } catch (e) { - } - c.selection.lastFocusBookmark = o(c.lastRng) - }) : (c.inline || t.ie > 10) && (c.on("nodechange keyup", function () { - var e = document.activeElement; - e && e.id == c.id + "_ifr" && (e = c.getBody()), l(e, c) && (c.lastRng = c.selection.getRng()) - }), t.webkit && (d = function () { - var e = c.selection.getRng(); - e.collapsed || (c.lastRng = e) - }, e.DOM.bind(document, "selectionchange", d), c.on("remove", function () { - e.DOM.unbind(document, "selectionchange", d) - }))) - }), c.on("setcontent", function () { - c.lastRng = null - }), c.on("mousedown", function () { - c.selection.lastFocusBookmark = null - }), c.on("focusin", function () { - var e = r.focusedEditor; - c.selection.lastFocusBookmark && (c.selection.setRng(a(c, c.selection.lastFocusBookmark)), c.selection.lastFocusBookmark = null), e != c && (e && e.fire("blur", {focusedEditor: c}), r.activeEditor = c, r.focusedEditor = c, c.fire("focus", {blurredEditor: e}), c.focus(!1)), c.lastRng = null - }), c.on("focusout", function () { - window.setTimeout(function () { - var e = r.focusedEditor; - s(i()) || e != c || (c.fire("blur", {focusedEditor: null}), r.focusedEditor = null, c.selection && (c.selection.lastFocusBookmark = null)) - }, 0) - }) - } - - e.DOM.bind(document, "focusin", function (e) { - var t = r.activeEditor; - t && e.target.ownerDocument == document && (t.selection && (t.selection.lastFocusBookmark = o(t.lastRng)), s(e.target) || r.focusedEditor != t || (t.fire("blur", {focusedEditor: null}), r.focusedEditor = null)) - }), r.on("AddEditor", c) - } - - return n.isEditorUIElement = function (e) { - return-1 !== e.className.indexOf("mce-") - }, n - }), r(st, [it, v, O, h, f, nt, ot, at], function (e, n, r, i, o, a, s, l) { - var c = n.DOM, d = o.explode, u = o.each, f = o.extend, p = 0, m, h = {majorVersion: "4", minorVersion: "0.16", releaseDate: "2014-01-31", editors: [], i18n: s, activeEditor: null, setup: function () { - var e = this, t, n, i = "", o; - if (n = document.location.href.replace(/[\?#].*$/, "").replace(/[\/\\][^\/]+$/, ""), /[\/\\]$/.test(n) || (n += "/"), o = window.tinymce || window.tinyMCEPreInit)t = o.base || o.baseURL, i = o.suffix; else for (var a = document.getElementsByTagName("script"), s = 0; s < a.length; s++) { - var c = a[s].src; - if (/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(c)) { - -1 != c.indexOf(".min") && (i = ".min"), t = c.substring(0, c.lastIndexOf("/")); - break - } - } - e.baseURL = new r(n).toAbsolute(t), e.documentBaseURL = n, e.baseURI = new r(e.baseURL), e.suffix = i, e.focusManager = new l(e) - }, init: function (t) { - function n(e) { - var t = e.id; - return t || (t = e.name, t = t && !c.get(t) ? e.name : c.uniqueId(), e.setAttribute("id", t)), t - } - - function r(e, t, n) { - var r = e[t]; - if (r)return r.apply(n || this, Array.prototype.slice.call(arguments, 2)) - } - - function i(e, t) { - return t.constructor === RegExp ? t.test(e.className) : c.hasClass(e, t) - } - - function o() { - var m, h; - if (c.unbind(window, "ready", o), r(t, "onpageload"), t.types)return void u(t.types, function (r) { - u(c.select(r.selector), function (i) { - var o = new e(n(i), f({}, t, r), a); - s.push(o), o.render(1) - }) - }); - if (t.selector)return void u(c.select(t.selector), function (r) { - var i = new e(n(r), t, a); - s.push(i), i.render(1) - }); - switch (t.mode) { - case"exact": - m = t.elements || "", m.length > 0 && u(d(m), function (n) { - c.get(n) ? (l = new e(n, t, a), s.push(l), l.render(!0)) : u(document.forms, function (r) { - u(r.elements, function (r) { - r.name === n && (n = "mce_editor_" + p++, c.setAttrib(r, "id", n), l = new e(n, t, a), s.push(l), l.render(1)) - }) - }) - }); - break; - case"textareas": - case"specific_textareas": - u(c.select("textarea"), function (r) { - t.editor_deselector && i(r, t.editor_deselector) || (!t.editor_selector || i(r, t.editor_selector)) && (l = new e(n(r), t, a), s.push(l), l.render(!0)) - }) - } - t.oninit && (m = h = 0, u(s, function (e) { - h++, e.initialized ? m++ : e.on("init", function () { - m++, m == h && r(t, "oninit") - }), m == h && r(t, "oninit") - })) - } - - var a = this, s = [], l; - a.settings = t, c.bind(window, "ready", o) - }, get: function (e) { - return e === t ? this.editors : this.editors[e] - }, add: function (e) { - var t = this, n = t.editors; - return n[e.id] = e, n.push(e), t.activeEditor = e, t.fire("AddEditor", {editor: e}), m || (m = function () { - t.fire("BeforeUnload") - }, c.bind(window, "beforeunload", m)), e - }, createEditor: function (t, n) { - return this.add(new e(t, n, this)) - }, remove: function (e) { - var t = this, n, r = t.editors, i, o; - { - if (e) { - if ("string" == typeof e)return e = e.selector || e, void u(c.select(e), function (e) { - t.remove(r[e.id]) - }); - if (i = e, !r[i.id])return null; - for (delete r[i.id], n = 0; n < r.length; n++)if (r[n] == i) { - r.splice(n, 1), o = !0; - break - } - return t.activeEditor == i && (t.activeEditor = r[0]), o && t.fire("RemoveEditor", {editor: i}), r.length || c.unbind(window, "beforeunload", m), i.remove(), i - } - for (n = r.length - 1; n >= 0; n--)t.remove(r[n]) - } - }, execCommand: function (t, n, r) { - var i = this, o = i.get(r); - switch (t) { - case"mceAddEditor": - return i.get(r) || new e(r, i.settings, i).render(), !0; - case"mceRemoveEditor": - return o && o.remove(), !0; - case"mceToggleEditor": - return o ? (o.isHidden() ? o.show() : o.hide(), !0) : (i.execCommand("mceAddEditor", 0, r), !0) - } - return i.activeEditor ? i.activeEditor.execCommand(t, n, r) : !1 - }, triggerSave: function () { - u(this.editors, function (e) { - e.save() - }) - }, addI18n: function (e, t) { - s.add(e, t) - }, translate: function (e) { - return s.translate(e) - }}; - return f(h, a), h.setup(), window.tinymce = window.tinyMCE = h, h - }), r(lt, [st, f], function (e, t) { - var n = t.each, r = t.explode; - e.on("AddEditor", function (e) { - var t = e.editor; - t.on("preInit", function () { - function e(e, t) { - n(t, function (t, n) { - t && s.setStyle(e, n, t) - }), s.rename(e, "span") - } - - function i(e) { - s = t.dom, l.convert_fonts_to_spans && n(s.select("font,u,strike", e.node), function (e) { - o[e.nodeName.toLowerCase()](s, e) - }) - } - - var o, a, s, l = t.settings; - l.inline_styles && (a = r(l.font_size_legacy_values), o = {font: function (t, n) { - e(n, {backgroundColor: n.style.backgroundColor, color: n.color, fontFamily: n.face, fontSize: a[parseInt(n.size, 10) - 1]}) - }, u: function (t, n) { - e(n, {textDecoration: "underline"}) - }, strike: function (t, n) { - e(n, {textDecoration: "line-through"}) - }}, t.on("PreProcess SetContent", i)) - }) - }) - }), r(ct, [], function () { - return{send: function (e) { - function t() { - !e.async || 4 == n.readyState || r++ > 1e4 ? (e.success && 1e4 > r && 200 == n.status ? e.success.call(e.success_scope, "" + n.responseText, n, e) : e.error && e.error.call(e.error_scope, r > 1e4 ? "TIMED_OUT" : "GENERAL", n, e), n = null) : setTimeout(t, 10) - } - - var n, r = 0; - if (e.scope = e.scope || this, e.success_scope = e.success_scope || e.scope, e.error_scope = e.error_scope || e.scope, e.async = e.async === !1 ? !1 : !0, e.data = e.data || "", n = new XMLHttpRequest) { - if (n.overrideMimeType && n.overrideMimeType(e.content_type), n.open(e.type || (e.data ? "POST" : "GET"), e.url, e.async), e.content_type && n.setRequestHeader("Content-Type", e.content_type), n.setRequestHeader("X-Requested-With", "XMLHttpRequest"), n.send(e.data), !e.async)return t(); - setTimeout(t, 10) - } - }} - }), r(dt, [], function () { - function e(t, n) { - var r, i, o, a; - if (n = n || '"', null === t)return"null"; - if (o = typeof t, "string" == o)return i = "\bb t\nn\ff\rr\"\"''\\\\", n + t.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g, function (e, t) { - return'"' === n && "'" === e ? e : (r = i.indexOf(t), r + 1 ? "\\" + i.charAt(r + 1) : (e = t.charCodeAt().toString(16), "\\u" + "0000".substring(e.length) + e)) - }) + n; - if ("object" == o) { - if (t.hasOwnProperty && "[object Array]" === Object.prototype.toString.call(t)) { - for (r = 0, i = "["; r < t.length; r++)i += (r > 0 ? "," : "") + e(t[r], n); - return i + "]" - } - i = "{"; - for (a in t)t.hasOwnProperty(a) && (i += "function" != typeof t[a] ? (i.length > 1 ? "," + n : n) + a + n + ":" + e(t[a], n) : ""); - return i + "}" - } - return"" + t - } - - return{serialize: e, parse: function (e) { - try { - return window[String.fromCharCode(101) + "val"]("(" + e + ")") - } catch (t) { - } - }} - }), r(ut, [dt, ct, f], function (e, t, n) { - function r(e) { - this.settings = i({}, e), this.count = 0 - } - - var i = n.extend; - return r.sendRPC = function (e) { - return(new r).send(e) - }, r.prototype = {send: function (n) { - var r = n.error, o = n.success; - n = i(this.settings, n), n.success = function (t, i) { - t = e.parse(t), "undefined" == typeof t && (t = {error: "JSON Parse error."}), t.error ? r.call(n.error_scope || n.scope, t.error, i) : o.call(n.success_scope || n.scope, t.result) - }, n.error = function (e, t) { - r && r.call(n.error_scope || n.scope, e, t) - }, n.data = e.serialize({id: n.id || "c" + this.count++, method: n.method, params: n.params}), n.content_type = "application/json", t.send(n) - }}, r - }), r(ft, [v], function (e) { - return{callbacks: {}, count: 0, send: function (n) { - var r = this, i = e.DOM, o = n.count !== t ? n.count : r.count, a = "tinymce_jsonp_" + o; - r.callbacks[o] = function (e) { - i.remove(a), delete r.callbacks[o], n.callback(e) - }, i.add(i.doc.body, "script", {id: a, src: n.url, type: "text/javascript"}), r.count++ - }} - }), r(pt, [], function () { - function e() { - s = []; - for (var e in a)s.push(e); - i.length = s.length - } - - function n() { - function n(e) { - var n, r; - return r = e !== t ? d + e : i.indexOf(",", d), -1 === r || r > i.length ? null : (n = i.substring(d, r), d = r + 1, n) - } - - var r, i, s, d = 0; - if (a = {}, c) { - o.load(l), i = o.getAttribute(l) || ""; - do { - var u = n(); - if (null === u)break; - if (r = n(parseInt(u, 32) || 0), null !== r) { - if (u = n(), null === u)break; - s = n(parseInt(u, 32) || 0), r && (a[r] = s) - } - } while (null !== r); - e() - } - } - - function r() { - var t, n = ""; - if (c) { - for (var r in a)t = a[r], n += (n ? "," : "") + r.length.toString(32) + "," + r + "," + t.length.toString(32) + "," + t; - o.setAttribute(l, n); - try { - o.save(l) - } catch (i) { - } - e() - } - } - - var i, o, a, s, l, c; - try { - if (window.localStorage)return localStorage - } catch (d) { - } - return l = "tinymce", o = document.documentElement, c = !!o.addBehavior, c && o.addBehavior("#default#userData"), i = {key: function (e) { - return s[e] - }, getItem: function (e) { - return e in a ? a[e] : null - }, setItem: function (e, t) { - a[e] = "" + t, r() - }, removeItem: function (e) { - delete a[e], r() - }, clear: function () { - a = {}, r() - }}, n(), i - }), r(mt, [v, d, y, b, f, h], function (e, t, n, r, i, o) { - var a = window.tinymce; - return a.DOM = e.DOM, a.ScriptLoader = n.ScriptLoader, a.PluginManager = r.PluginManager, a.ThemeManager = r.ThemeManager, a.dom = a.dom || {}, a.dom.Event = t.Event, i.each(i, function (e, t) { - a[t] = e - }), i.each("isOpera isWebKit isIE isGecko isMac".split(" "), function (e) { - a[e] = o[e.substr(2).toLowerCase()] - }), {} - }), r(ht, [I, f], function (e, t) { - return e.extend({Defaults: {firstControlClass: "first", lastControlClass: "last"}, init: function (e) { - this.settings = t.extend({}, this.Defaults, e) - }, preRender: function (e) { - e.addClass(this.settings.containerClass, "body") - }, applyClasses: function (e) { - var t = this, n = t.settings, r, i, o; - r = e.items().filter(":visible"), i = n.firstControlClass, o = n.lastControlClass, r.each(function (e) { - e.removeClass(i).removeClass(o), n.controlClass && e.addClass(n.controlClass) - }), r.eq(0).addClass(i), r.eq(-1).addClass(o) - }, renderHtml: function (e) { - var t = this, n = t.settings, r, i = ""; - return r = e.items(), r.eq(0).addClass(n.firstControlClass), r.eq(-1).addClass(n.lastControlClass), r.each(function (e) { - n.controlClass && e.addClass(n.controlClass), i += e.renderHtml() - }), i - }, recalc: function () { - }, postRender: function () { - }}) - }), r(gt, [ht], function (e) { - return e.extend({Defaults: {containerClass: "abs-layout", controlClass: "abs-layout-item"}, recalc: function (e) { - e.items().filter(":visible").each(function (e) { - var t = e.settings; - e.layoutRect({x: t.x, y: t.y, w: t.w, h: t.h}), e.recalc && e.recalc() - }) - }, renderHtml: function (e) { - return'<div id="' + e._id + '-absend" class="' + e.classPrefix + 'abs-end"></div>' + this._super(e) - }}) - }), r(vt, [V, Y], function (e, t) { - return e.extend({Mixins: [t], Defaults: {classes: "widget tooltip tooltip-n"}, text: function (e) { - var t = this; - return"undefined" != typeof e ? (t._value = e, t._rendered && (t.getEl().lastChild.innerHTML = t.encode(e)), t) : t._value - }, renderHtml: function () { - var e = this, t = e.classPrefix; - return'<div id="' + e._id + '" class="' + e.classes() + '" role="presentation"><div class="' + t + 'tooltip-arrow"></div><div class="' + t + 'tooltip-inner">' + e.encode(e._text) + "</div></div>" - }, repaint: function () { - var e = this, t, n; - t = e.getEl().style, n = e._layoutRect, t.left = n.x + "px", t.top = n.y + "px", t.zIndex = 131070 - }}) - }), r(yt, [V, vt], function (e, t) { - var n, r = e.extend({init: function (e) { - var t = this; - t._super(e), t.canFocus = !0, e.tooltip && r.tooltips !== !1 && (t.on("mouseenter", function (n) { - var r = t.tooltip().moveTo(-65535); - if (n.control == t) { - var i = r.text(e.tooltip).show().testMoveRel(t.getEl(), ["bc-tc", "bc-tl", "bc-tr"]); - r.toggleClass("tooltip-n", "bc-tc" == i), r.toggleClass("tooltip-nw", "bc-tl" == i), r.toggleClass("tooltip-ne", "bc-tr" == i), r.moveRel(t.getEl(), i) - } else r.hide() - }), t.on("mouseleave mousedown click", function () { - t.tooltip().hide() - })), t.aria("label", e.tooltip) - }, tooltip: function () { - var e = this; - return n || (n = new t({type: "tooltip"}), n.renderTo(e.getContainerElm())), n - }, active: function (e) { - var t = this, n; - return e !== n && (t.aria("pressed", e), t.toggleClass("active", e)), t._super(e) - }, disabled: function (e) { - var t = this, n; - return e !== n && (t.aria("disabled", e), t.toggleClass("disabled", e)), t._super(e) - }, postRender: function () { - var e = this, t = e.settings; - e._rendered = !0, e._super(), e.parent() || !t.width && !t.height || (e.initLayoutRect(), e.repaint()), t.autofocus && setTimeout(function () { - e.focus() - }, 0) - }, remove: function () { - this._super(), n && (n.remove(), n = null) - }}); - return r - }), r(bt, [yt], function (e) { - return e.extend({Defaults: {classes: "widget btn", role: "button"}, init: function (e) { - var t = this, n; - t.on("click mousedown", function (e) { - e.preventDefault() - }), t._super(e), n = e.size, e.subtype && t.addClass(e.subtype), n && t.addClass("btn-" + n) - }, icon: function (e) { - var t = this, n = t.classPrefix; - if ("undefined" == typeof e)return t.settings.icon; - if (t.settings.icon = e, e = e ? n + "ico " + n + "i-" + t.settings.icon : "", t._rendered) { - var r = t.getEl().firstChild, i = r.getElementsByTagName("i")[0]; - e ? (i && i == r.firstChild || (i = document.createElement("i"), r.insertBefore(i, r.firstChild)), i.className = e) : i && r.removeChild(i), t.text(t._text) - } - return t - }, repaint: function () { - var e = this.getEl().firstChild.style; - e.width = e.height = "100%", this._super() - }, renderHtml: function () { - var e = this, t = e._id, n = e.classPrefix, r = e.settings.icon, i = ""; - return e.settings.image && (r = "none", i = " style=\"background-image: url('" + e.settings.image + "')\""), r = e.settings.icon ? n + "ico " + n + "i-" + r : "", '<div id="' + t + '" class="' + e.classes() + '" tabindex="-1"><button role="presentation" type="button" tabindex="-1">' + (r ? '<i class="' + r + '"' + i + "></i>" : "") + (e._text ? (r ? "\xa0" : "") + e.encode(e._text) : "") + "</button></div>" - }}) - }), r(Ct, [q], function (e) { - return e.extend({Defaults: {defaultType: "button", role: "toolbar"}, renderHtml: function () { - var e = this, t = e._layout; - return e.addClass("btn-group"), e.preRender(), t.preRender(e), '<div id="' + e._id + '" class="' + e.classes() + '"><div id="' + e._id + '-body">' + (e.settings.html || "") + t.renderHtml(e) + "</div></div>" - }}) - }), r(xt, [yt], function (e) { - return e.extend({Defaults: {classes: "checkbox", role: "checkbox", checked: !1}, init: function (e) { - var t = this; - t._super(e), t.on("click mousedown", function (e) { - e.preventDefault() - }), t.on("click", function (e) { - e.preventDefault(), t.disabled() || t.checked(!t.checked()) - }), t.checked(t.settings.checked) - }, checked: function (e) { - var t = this; - return"undefined" != typeof e ? (e ? t.addClass("checked") : t.removeClass("checked"), t._checked = e, t.aria("checked", e), t) : t._checked - }, value: function (e) { - return this.checked(e) - }, renderHtml: function () { - var e = this, t = e._id, n = e.classPrefix; - return'<div id="' + t + '" class="' + e.classes() + '" unselectable="on" aria-labelledby="' + t + '-al" tabindex="-1"><i class="' + n + "ico " + n + 'i-checkbox"></i><span id="' + t + '-al" class="' + n + 'label">' + e.encode(e._text) + "</span></div>" - }}) - }), r(wt, [bt, X], function (e, t) { - return e.extend({showPanel: function () { - var e = this, n = e.settings; - if (e.active(!0), e.panel)e.panel.show(); else { - var r = n.panel; - r.type && (r = {layout: "grid", items: r}), r.popover = !0, r.autohide = !0, e.panel = new t(r).on("hide",function () { - e.active(!1) - }).parent(e).renderTo(e.getContainerElm()), e.panel.fire("show"), e.panel.reflow() - } - e.panel.moveRel(e.getEl(), n.popoverAlign || (e.isRtl() ? ["bc-tr", "bc-tc"] : ["bc-tl", "bc-tc"])) - }, hidePanel: function () { - var e = this; - e.panel && e.panel.hide() - }, postRender: function () { - var e = this; - return e.on("click", function (t) { - t.control === e && (e.panel && e.panel.visible() ? e.hidePanel() : e.showPanel()) - }), e._super() - }}) - }), r(_t, [wt, v], function (e, t) { - var n = t.DOM; - return e.extend({init: function (e) { - this._super(e), this.addClass("colorbutton") - }, color: function (e) { - return e ? (this._color = e, this.getEl("preview").style.backgroundColor = e, this) : this._color - }, renderHtml: function () { - var e = this, t = e._id, n = e.classPrefix, r = e.settings.icon ? n + "ico " + n + "i-" + e.settings.icon : "", i = e.settings.image ? " style=\"background-image: url('" + e.settings.image + "')\"" : ""; - return'<div id="' + t + '" class="' + e.classes() + '"><button role="presentation" hidefocus type="button" tabindex="-1">' + (r ? '<i class="' + r + '"' + i + "></i>" : "") + '<span id="' + t + '-preview" class="' + n + 'preview"></span>' + (e._text ? (r ? " " : "") + e._text : "") + '</button><button type="button" class="' + n + 'open" hidefocus tabindex="-1"> <i class="' + n + 'caret"></i></button></div>' - }, postRender: function () { - var e = this, t = e.settings.onclick; - return e.on("click", function (r) { - r.control != e || n.getParent(r.target, "." + e.classPrefix + "open") || (r.stopImmediatePropagation(), t.call(e, r)) - }), delete e.settings.onclick, e._super() - }}) - }), r(Nt, [yt, U, W], function (e, t, n) { - return e.extend({init: function (e) { - var t = this; - t._super(e), t.addClass("combobox"), t.subinput = !0, e = t.settings, e.menu = e.menu || e.values, e.menu && (e.icon = "caret"), t.on("click", function (n) { - for (var r = n.target; r;)r.id && -1 != r.id.indexOf("-open") && (t.fire("action"), e.menu && (t.showMenu(), n.keyboard && t.menu.items()[0].focus())), r = r.parentNode - }), t.on("keydown", function (e) { - "INPUT" == e.target.nodeName && 13 == e.keyCode && t.parents().reverse().each(function (n) { - return e.preventDefault(), t.fire("change"), n.hasEventListeners("submit") && n.toJSON ? (n.fire("submit", {data: n.toJSON()}), !1) : void 0 - }) - }), e.placeholder && (t.addClass("placeholder"), t.on("focusin", function () { - t._hasOnChange || (n.on(t.getEl("inp"), "change", function () { - t.fire("change") - }), t._hasOnChange = !0), t.hasClass("placeholder") && (t.getEl("inp").value = "", t.removeClass("placeholder")) - }), t.on("focusout", function () { - 0 === t.value().length && (t.getEl("inp").value = e.placeholder, t.addClass("placeholder")) - })) - }, showMenu: function () { - var e = this, n = e.settings, r; - e.menu || (r = n.menu || [], r.length ? r = {type: "menu", items: r} : r.type = r.type || "menu", e.menu = t.create(r).parent(e).renderTo(e.getContainerElm()), e.fire("createmenu"), e.menu.reflow(), e.menu.on("cancel", function (t) { - t.control === e.menu && e.focus() - }), e.menu.on("show hide",function (t) { - t.control.items().each(function (t) { - t.active(t.value() == e.value()) - }) - }).fire("show"), e.menu.on("select", function (t) { - e.value(t.control.value()) - }), e.on("focusin", function (t) { - "INPUT" == t.target.tagName && e.menu.hide() - }), e.aria("expanded", !0)), e.menu.show(), e.menu.layoutRect({w: e.layoutRect().w}), e.menu.moveRel(e.getEl(), e.isRtl() ? ["br-tr", "tr-br"] : ["bl-tl", "tl-bl"]) - }, value: function (e) { - var t = this; - return"undefined" != typeof e ? (t._value = e, t.removeClass("placeholder"), t._rendered && (t.getEl("inp").value = e), t) : t._rendered ? (e = t.getEl("inp").value, e != t.settings.placeholder ? e : "") : t._value - }, disabled: function (e) { - var t = this; - return t._rendered && "undefined" != typeof e && (t.getEl("inp").disabled = e), t._super(e) - }, focus: function () { - this.getEl("inp").focus() - }, repaint: function () { - var e = this, t = e.getEl(), r = e.getEl("open"), i = e.layoutRect(), o, a; - o = r ? i.w - n.getSize(r).width - 10 : i.w - 10; - var s = document; - return s.all && (!s.documentMode || s.documentMode <= 8) && (a = e.layoutRect().h - 2 + "px"), n.css(t.firstChild, {width: o, lineHeight: a}), e._super(), e - }, postRender: function () { - var e = this; - return n.on(this.getEl("inp"), "change", function () { - e.fire("change") - }), e._super() - }, remove: function () { - n.off(this.getEl("inp")), this._super() - }, renderHtml: function () { - var e = this, t = e._id, n = e.settings, r = e.classPrefix, i = n.value || n.placeholder || "", o, a, s = "", l = ""; - return"spellcheck"in n && (l += ' spellcheck="' + n.spellcheck + '"'), n.maxLength && (l += ' maxlength="' + n.maxLength + '"'), n.size && (l += ' size="' + n.size + '"'), n.subtype && (l += ' type="' + n.subtype + '"'), e.disabled() && (l += ' disabled="disabled"'), o = n.icon, o && "caret" != o && (o = r + "ico " + r + "i-" + n.icon), a = e._text, (o || a) && (s = '<div id="' + t + '-open" class="' + r + "btn " + r + 'open" tabIndex="-1"><button id="' + t + '-action" type="button" hidefocus tabindex="-1">' + ("caret" != o ? '<i class="' + o + '"></i>' : '<i class="' + r + 'caret"></i>') + (a ? (o ? " " : "") + a : "") + "</button></div>", e.addClass("has-open")), '<div id="' + t + '" class="' + e.classes() + '"><input id="' + t + '-inp" class="' + r + "textbox " + r + 'placeholder" value="' + i + '" hidefocus="true"' + l + ">" + s + "</div>" - }}) - }), r(Et, [yt, J], function (e, t) { - return e.extend({init: function (e) { - var t = this; - e.delimiter || (e.delimiter = "\xbb"), t._super(e), t.addClass("path"), t.canFocus = !0, t.on("click", function (e) { - var n, r = e.target; - (n = r.getAttribute("data-index")) && t.fire("select", {value: t.data()[n], index: n}) - }) - }, focus: function () { - var e = this; - return e.keyNav = new t({root: e, enableLeftRight: !0}), e.keyNav.focusFirst(), e - }, data: function (e) { - var t = this; - return"undefined" != typeof e ? (t._data = e, t.update(), t) : t._data - }, update: function () { - this.innerHtml(this._getPathHtml()) - }, postRender: function () { - var e = this; - e._super(), e.data(e.settings.data) - }, renderHtml: function () { - var e = this; - return'<div id="' + e._id + '" class="' + e.classes() + '">' + e._getPathHtml() + "</div>" - }, _getPathHtml: function () { - var e = this, t = e._data || [], n, r, i = "", o = e.classPrefix; - for (n = 0, r = t.length; r > n; n++)i += (n > 0 ? '<div class="' + o + 'divider" aria-hidden="true"> ' + e.settings.delimiter + " </div>" : "") + '<div role="button" class="' + o + "path-item" + (n == r - 1 ? " " + o + "last" : "") + '" data-index="' + n + '" tabindex="-1" id="' + e._id + "-" + n + '">' + t[n].name + "</div>"; - return i || (i = '<div class="' + o + 'path-item"> </div>'), i - }}) - }), r(kt, [Et, st], function (e, t) { - return e.extend({postRender: function () { - function e(e) { - if (1 === e.nodeType) { - if ("BR" == e.nodeName || e.getAttribute("data-mce-bogus"))return!0; - if ("bookmark" === e.getAttribute("data-mce-type"))return!0 - } - return!1 - } - - var n = this, r = t.activeEditor; - return n.on("select", function (t) { - var n = [], i, o = r.getBody(); - for (r.focus(), i = r.selection.getStart(); i && i != o;)e(i) || n.push(i), i = i.parentNode; - r.selection.select(n[n.length - 1 - t.index]), r.nodeChanged() - }), r.on("nodeChange", function (t) { - for (var i = [], o = t.parents, a = o.length; a--;)if (1 == o[a].nodeType && !e(o[a])) { - var s = r.fire("ResolveName", {name: o[a].nodeName.toLowerCase(), target: o[a]}); - i.push({name: s.name}) - } - n.data(i) - }), n._super() - }}) - }), r(St, [q], function (e) { - return e.extend({Defaults: {layout: "flex", align: "center", defaults: {flex: 1}}, renderHtml: function () { - var e = this, t = e._layout, n = e.classPrefix; - return e.addClass("formitem"), t.preRender(e), '<div id="' + e._id + '" class="' + e.classes() + '" hideFocus="1" tabIndex="-1">' + (e.settings.title ? '<div id="' + e._id + '-title" class="' + n + 'title">' + e.settings.title + "</div>" : "") + '<div id="' + e._id + '-body" class="' + e.classes("body") + '">' + (e.settings.html || "") + t.renderHtml(e) + "</div></div>" - }}) - }), r(Tt, [q, St], function (e, t) { - return e.extend({Defaults: {containerCls: "form", layout: "flex", direction: "column", align: "stretch", flex: 1, padding: 20, labelGap: 30, spacing: 10, callbacks: {submit: function () { - this.submit() - }}}, preRender: function () { - var e = this, n = e.items(); - n.each(function (n) { - var r, i = n.settings.label; - i && (r = new t({layout: "flex", autoResize: "overflow", defaults: {flex: 1}, items: [ - {type: "label", text: i, flex: 0, forId: n._id, disabled: n.disabled()} - ]}), r.type = "formitem", "undefined" == typeof n.settings.flex && (n.settings.flex = 1), e.replace(n, r), r.add(n)) - }) - }, recalcLabels: function () { - var e = this, t = 0, n = [], r, i; - if (e.settings.labelGapCalc !== !1)for (e.items().filter("formitem").each(function (e) { - var r = e.items()[0], i = r.getEl().clientWidth; - t = i > t ? i : t, n.push(r) - }), i = e.settings.labelGap || 0, r = n.length; r--;)n[r].settings.minWidth = t + i - }, visible: function (e) { - var t = this._super(e); - return e === !0 && this._rendered && this.recalcLabels(), t - }, submit: function () { - return this.fire("submit", {data: this.toJSON()}) - }, postRender: function () { - var e = this; - e._super(), e.recalcLabels(), e.fromJSON(e.settings.data) - }}) - }), r(Rt, [Tt], function (e) { - return e.extend({Defaults: {containerCls: "fieldset", layout: "flex", direction: "column", align: "stretch", flex: 1, padding: "25 15 5 15", labelGap: 30, spacing: 10, border: 1}, renderHtml: function () { - var e = this, t = e._layout, n = e.classPrefix; - return e.preRender(), t.preRender(e), '<fieldset id="' + e._id + '" class="' + e.classes() + '" hideFocus="1" tabIndex="-1">' + (e.settings.title ? '<legend id="' + e._id + '-title" class="' + n + 'fieldset-title">' + e.settings.title + "</legend>" : "") + '<div id="' + e._id + '-body" class="' + e.classes("body") + '">' + (e.settings.html || "") + t.renderHtml(e) + "</div></fieldset>" - }}) - }), r(At, [Nt], function (e) { - return e.extend({init: function (e) { - var t = this, n = tinymce.activeEditor, r; - e.spellcheck = !1, r = n.settings.file_browser_callback, r && (e.icon = "browse", e.onaction = function () { - r(t.getEl("inp").id, t.getEl("inp").value, e.filetype, window) - }), t._super(e) - }}) - }), r(Bt, [gt], function (e) { - return e.extend({recalc: function (e) { - var t = e.layoutRect(), n = e.paddingBox(); - e.items().filter(":visible").each(function (e) { - e.layoutRect({x: n.left, y: n.top, w: t.innerW - n.right - n.left, h: t.innerH - n.top - n.bottom}), e.recalc && e.recalc() - }) - }}) - }), r(Lt, [gt], function (e) { - return e.extend({recalc: function (e) { - var t, n, r, i, o, a, s, l, c, d, u, f, p, m, h, g, v = [], y, b, C, x, w, _, N, E, k, S, T, R, A, B, L, H, M, D, P, O, I, z, F, W, V = Math.max, U = Math.min; - for (r = e.items().filter(":visible"), i = e.layoutRect(), o = e._paddingBox, a = e.settings, f = e.isRtl() ? a.direction || "row-reversed" : a.direction, s = a.align, l = e.isRtl() ? a.pack || "end" : a.pack, c = a.spacing || 0, ("row-reversed" == f || "column-reverse" == f) && (r = r.set(r.toArray().reverse()), f = f.split("-")[0]), "column" == f ? (k = "y", N = "h", E = "minH", S = "maxH", R = "innerH", T = "top", A = "bottom", B = "deltaH", L = "contentH", I = "left", D = "w", H = "x", M = "innerW", P = "minW", O = "maxW", z = "right", F = "deltaW", W = "contentW") : (k = "x", N = "w", E = "minW", S = "maxW", R = "innerW", T = "left", A = "right", B = "deltaW", L = "contentW", I = "top", D = "h", H = "y", M = "innerH", P = "minH", O = "maxH", z = "bottom", F = "deltaH", W = "contentH"), u = i[R] - o[T] - o[T], _ = d = 0, t = 0, n = r.length; n > t; t++)p = r[t], m = p.layoutRect(), h = p.settings, g = h.flex, u -= n - 1 > t ? c : 0, g > 0 && (d += g, m[S] && v.push(p), m.flex = g), u -= m[E], y = o[I] + m[P] + o[z], y > _ && (_ = y); - if (x = {}, x[E] = 0 > u ? i[E] - u + i[B] : i[R] - u + i[B], x[P] = _ + i[F], x[L] = i[R] - u, x[W] = _, x.minW = U(x.minW, i.maxW), x.minH = U(x.minH, i.maxH), x.minW = V(x.minW, i.startMinWidth), x.minH = V(x.minH, i.startMinHeight), !i.autoResize || x.minW == i.minW && x.minH == i.minH) { - for (C = u / d, t = 0, n = v.length; n > t; t++)p = v[t], m = p.layoutRect(), b = m[S], y = m[E] + m.flex * C, y > b ? (u -= m[S] - m[E], d -= m.flex, m.flex = 0, m.maxFlexSize = b) : m.maxFlexSize = 0; - for (C = u / d, w = o[T], x = {}, 0 === d && ("end" == l ? w = u + o[T] : "center" == l ? (w = Math.round(i[R] / 2 - (i[R] - u) / 2) + o[T], 0 > w && (w = o[T])) : "justify" == l && (w = o[T], c = Math.floor(u / (r.length - 1)))), x[H] = o[I], t = 0, n = r.length; n > t; t++)p = r[t], m = p.layoutRect(), y = m.maxFlexSize || m[E], "center" === s ? x[H] = Math.round(i[M] / 2 - m[D] / 2) : "stretch" === s ? (x[D] = V(m[P] || 0, i[M] - o[I] - o[z]), x[H] = o[I]) : "end" === s && (x[H] = i[M] - m[D] - o.top), m.flex > 0 && (y += m.flex * C), x[N] = y, x[k] = w, p.layoutRect(x), p.recalc && p.recalc(), w += y + c - } else if (x.w = x.minW, x.h = x.minH, e.layoutRect(x), this.recalc(e), null === e._lastRect) { - var q = e.parent(); - q && (q._lastRect = null, q.recalc()) - } - }}) - }), r(Ht, [ht], function (e) { - return e.extend({Defaults: {containerClass: "flow-layout", controlClass: "flow-layout-item", endClass: "break"}, recalc: function (e) { - e.items().filter(":visible").each(function (e) { - e.recalc && e.recalc() - }) - }}) - }), r(Mt, [V, yt, X, f, st, h], function (e, t, n, r, i, o) { - function a(e) { - function t(t) { - function n(e) { - return e.replace(/%(\w+)/g, "") - } - - var r, i, o = e.dom, a = "", l, c; - return c = e.settings.preview_styles, c === !1 ? "" : (c || (c = "font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow"), (t = e.formatter.get(t)) ? (t = t[0], r = t.block || t.inline || "span", i = o.create(r), s(t.styles, function (e, t) { - e = n(e), e && o.setStyle(i, t, e) - }), s(t.attributes, function (e, t) { - e = n(e), e && o.setAttrib(i, t, e) - }), s(t.classes, function (e) { - e = n(e), o.hasClass(i, e) || o.addClass(i, e) - }), e.fire("PreviewFormats"), o.setStyles(i, {position: "absolute", left: -65535}), e.getBody().appendChild(i), l = o.getStyle(e.getBody(), "fontSize", !0), l = /px$/.test(l) ? parseInt(l, 10) : 0, s(c.split(" "), function (t) { - var n = o.getStyle(i, t, !0); - if (!("background-color" == t && /transparent|rgba\s*\([^)]+,\s*0\)/.test(n) && (n = o.getStyle(e.getBody(), t, !0), "#ffffff" == o.toHex(n).toLowerCase()) || "color" == t && "#000000" == o.toHex(n).toLowerCase())) { - if ("font-size" == t && /em|%$/.test(n)) { - if (0 === l)return; - n = parseFloat(n, 10) / (/%$/.test(n) ? 100 : 1), n = n * l + "px" - } - "border" == t && n && (a += "padding:0 2px;"), a += t + ":" + n + ";" - } - }), e.fire("AfterPreviewFormats"), o.remove(i), a) : void 0) - } - - function r(t, n) { - return function () { - var r = this; - e.on("nodeChange", function (i) { - var o = e.formatter, a = null; - s(i.parents, function (e) { - return s(t, function (t) { - return n ? o.matchNode(e, n, {value: t.value}) && (a = t.value) : o.matchNode(e, t.value) && (a = t.value), a ? !1 : void 0 - }), a ? !1 : void 0 - }), r.value(a) - }) - } - } - - function i(e) { - e = e.split(";"); - for (var t = e.length; t--;)e[t] = e[t].split("="); - return e - } - - function o() { - function n(e) { - var t = []; - if (e)return s(e, function (e) { - var r = {text: e.title, icon: e.icon}; - if (e.items)r.menu = n(e.items); else { - var a = e.format || "custom" + i++; - e.format || (e.name = a, o.push(e)), r.format = a - } - t.push(r) - }), t - } - - function r() { - var t; - return t = n(e.settings.style_formats_merge ? e.settings.style_formats ? a.concat(e.settings.style_formats) : a : e.settings.style_formats || a) - } - - var i = 0, o = [], a = [ - {title: "Headers", items: [ - {title: "Header 1", format: "h1"}, - {title: "Header 2", format: "h2"}, - {title: "Header 3", format: "h3"}, - {title: "Header 4", format: "h4"}, - {title: "Header 5", format: "h5"}, - {title: "Header 6", format: "h6"} - ]}, - {title: "Inline", items: [ - {title: "Bold", icon: "bold", format: "bold"}, - {title: "Italic", icon: "italic", format: "italic"}, - {title: "Underline", icon: "underline", format: "underline"}, - {title: "Strikethrough", icon: "strikethrough", format: "strikethrough"}, - {title: "Superscript", icon: "superscript", format: "superscript"}, - {title: "Subscript", icon: "subscript", format: "subscript"}, - {title: "Code", icon: "code", format: "code"} - ]}, - {title: "Blocks", items: [ - {title: "Paragraph", format: "p"}, - {title: "Blockquote", format: "blockquote"}, - {title: "Div", format: "div"}, - {title: "Pre", format: "pre"} - ]}, - {title: "Alignment", items: [ - {title: "Left", icon: "alignleft", format: "alignleft"}, - {title: "Center", icon: "aligncenter", format: "aligncenter"}, - {title: "Right", icon: "alignright", format: "alignright"}, - {title: "Justify", icon: "alignjustify", format: "alignjustify"} - ]} - ]; - return e.on("init", function () { - s(o, function (t) { - e.formatter.register(t.name, t) - }) - }), {type: "menu", items: r(), onPostRender: function (t) { - e.fire("renderFormatsMenu", {control: t.control}) - }, itemDefaults: {preview: !0, textStyle: function () { - return this.settings.format ? t(this.settings.format) : void 0 - }, onPostRender: function () { - var t = this, n = this.settings.format; - n && t.parent().on("show", function () { - t.disabled(!e.formatter.canApply(n)), t.active(e.formatter.match(n)) - }) - }, onclick: function () { - this.settings.format && f(this.settings.format) - }}} - } - - function a() { - return e.undoManager ? e.undoManager.hasUndo() : !1 - } - - function l() { - return e.undoManager ? e.undoManager.hasRedo() : !1 - } - - function c() { - var t = this; - t.disabled(!a()), e.on("Undo Redo AddUndo TypingUndo", function () { - t.disabled(!a()) - }) - } - - function d() { - var t = this; - t.disabled(!l()), e.on("Undo Redo AddUndo TypingUndo", function () { - t.disabled(!l()) - }) - } - - function u() { - var t = this; - e.on("VisualAid", function (e) { - t.active(e.hasVisual) - }), t.active(e.hasVisual) - } - - function f(t) { - t.control && (t = t.control.value()), t && e.execCommand("mceToggleFormat", !1, t) - } - - var p; - p = o(), s({bold: "Bold", italic: "Italic", underline: "Underline", strikethrough: "Strikethrough", subscript: "Subscript", superscript: "Superscript"}, function (t, n) { - e.addButton(n, {tooltip: t, onPostRender: function () { - var t = this; - e.formatter ? e.formatter.formatChanged(n, function (e) { - t.active(e) - }) : e.on("init", function () { - e.formatter.formatChanged(n, function (e) { - t.active(e) - }) - }) - }, onclick: function () { - f(n) - }}) - }), s({outdent: ["Decrease indent", "Outdent"], indent: ["Increase indent", "Indent"], cut: ["Cut", "Cut"], copy: ["Copy", "Copy"], paste: ["Paste", "Paste"], help: ["Help", "mceHelp"], selectall: ["Select all", "SelectAll"], hr: ["Insert horizontal rule", "InsertHorizontalRule"], removeformat: ["Clear formatting", "RemoveFormat"], visualaid: ["Visual aids", "mceToggleVisualAid"], newdocument: ["New document", "mceNewDocument"]}, function (t, n) { - e.addButton(n, {tooltip: t[0], cmd: t[1]}) - }), s({blockquote: ["Blockquote", "mceBlockQuote"], numlist: ["Numbered list", "InsertOrderedList"], bullist: ["Bullet list", "InsertUnorderedList"], subscript: ["Subscript", "Subscript"], superscript: ["Superscript", "Superscript"], alignleft: ["Align left", "JustifyLeft"], aligncenter: ["Align center", "JustifyCenter"], alignright: ["Align right", "JustifyRight"], alignjustify: ["Justify", "JustifyFull"]}, function (t, n) { - e.addButton(n, {tooltip: t[0], cmd: t[1], onPostRender: function () { - var t = this; - e.formatter ? e.formatter.formatChanged(n, function (e) { - t.active(e) - }) : e.on("init", function () { - e.formatter.formatChanged(n, function (e) { - t.active(e) - }) - }) - }}) - }), e.addButton("undo", {tooltip: "Undo", onPostRender: c, cmd: "undo"}), e.addButton("redo", {tooltip: "Redo", onPostRender: d, cmd: "redo"}), e.addMenuItem("newdocument", {text: "New document", shortcut: "Ctrl+N", icon: "newdocument", cmd: "mceNewDocument"}), e.addMenuItem("undo", {text: "Undo", icon: "undo", shortcut: "Ctrl+Z", onPostRender: c, cmd: "undo"}), e.addMenuItem("redo", {text: "Redo", icon: "redo", shortcut: "Ctrl+Y", onPostRender: d, cmd: "redo"}), e.addMenuItem("visualaid", {text: "Visual aids", selectable: !0, onPostRender: u, cmd: "mceToggleVisualAid"}), s({cut: ["Cut", "Cut", "Ctrl+X"], copy: ["Copy", "Copy", "Ctrl+C"], paste: ["Paste", "Paste", "Ctrl+V"], selectall: ["Select all", "SelectAll", "Ctrl+A"], bold: ["Bold", "Bold", "Ctrl+B"], italic: ["Italic", "Italic", "Ctrl+I"], underline: ["Underline", "Underline"], strikethrough: ["Strikethrough", "Strikethrough"], subscript: ["Subscript", "Subscript"], superscript: ["Superscript", "Superscript"], removeformat: ["Clear formatting", "RemoveFormat"]}, function (t, n) { - e.addMenuItem(n, {text: t[0], icon: n, shortcut: t[2], cmd: t[1]}) - }), e.on("mousedown", function () { - n.hideAll() - }), e.addButton("styleselect", {type: "menubutton", text: "Formats", menu: p}), e.addButton("formatselect", function () { - var n = [], o = i(e.settings.block_formats || "Paragraph=p;Address=address;Pre=pre;Header 1=h1;Header 2=h2;Header 3=h3;Header 4=h4;Header 5=h5;Header 6=h6"); - return s(o, function (e) { - n.push({text: e[0], value: e[1], textStyle: function () { - return t(e[1]) - }}) - }), {type: "listbox", text: o[0][0], values: n, fixedWidth: !0, onselect: f, onPostRender: r(n)} - }), e.addButton("fontselect", function () { - var t = "Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats", n = [], o = i(e.settings.font_formats || t); - return s(o, function (e) { - n.push({text: {raw: e[0]}, value: e[1], textStyle: -1 == e[1].indexOf("dings") ? "font-family:" + e[1] : ""}) - }), {type: "listbox", text: "Font Family", tooltip: "Font Family", values: n, fixedWidth: !0, onPostRender: r(n, "fontname"), onselect: function (t) { - t.control.settings.value && e.execCommand("FontName", !1, t.control.settings.value) - }} - }), e.addButton("fontsizeselect", function () { - var t = [], n = "8pt 10pt 12pt 14pt 18pt 24pt 36pt", i = e.settings.fontsize_formats || n; - return s(i.split(" "), function (e) { - t.push({text: e, value: e}) - }), {type: "listbox", text: "Font Sizes", tooltip: "Font Sizes", values: t, fixedWidth: !0, onPostRender: r(t, "fontsize"), onclick: function (t) { - t.control.settings.value && e.execCommand("FontSize", !1, t.control.settings.value) - }} - }), e.addMenuItem("formats", {text: "Formats", menu: p}) - } - - var s = r.each; - i.on("AddEditor", function (t) { - t.editor.rtl && (e.rtl = !0), a(t.editor) - }), e.translate = function (e) { - return i.translate(e) - }, t.tooltips = !o.iOS - }), r(Dt, [gt], function (e) { - return e.extend({recalc: function (e) { - var t = e.settings, n, r, i, o, a, s, l, c, d, u, f, p, m, h, g, v, y, b, C, x, w, _, N = [], E = [], k, S, T, R, A, B; - for (t = e.settings, i = e.items().filter(":visible"), o = e.layoutRect(), r = t.columns || Math.ceil(Math.sqrt(i.length)), n = Math.ceil(i.length / r), y = t.spacingH || t.spacing || 0, b = t.spacingV || t.spacing || 0, C = t.alignH || t.align, x = t.alignV || t.align, g = e._paddingBox, C && "string" == typeof C && (C = [C]), x && "string" == typeof x && (x = [x]), u = 0; r > u; u++)N.push(0); - for (f = 0; n > f; f++)E.push(0); - for (f = 0; n > f; f++)for (u = 0; r > u && (d = i[f * r + u], d); u++)c = d.layoutRect(), k = c.minW, S = c.minH, N[u] = k > N[u] ? k : N[u], E[f] = S > E[f] ? S : E[f]; - for (A = o.innerW - g.left - g.right, w = 0, u = 0; r > u; u++)w += N[u] + (u > 0 ? y : 0), A -= (u > 0 ? y : 0) + N[u]; - for (B = o.innerH - g.top - g.bottom, _ = 0, f = 0; n > f; f++)_ += E[f] + (f > 0 ? b : 0), B -= (f > 0 ? b : 0) + E[f]; - if (w += g.left + g.right, _ += g.top + g.bottom, l = {}, l.minW = w + (o.w - o.innerW), l.minH = _ + (o.h - o.innerH), l.contentW = l.minW - o.deltaW, l.contentH = l.minH - o.deltaH, l.minW = Math.min(l.minW, o.maxW), l.minH = Math.min(l.minH, o.maxH), l.minW = Math.max(l.minW, o.startMinWidth), l.minH = Math.max(l.minH, o.startMinHeight), !o.autoResize || l.minW == o.minW && l.minH == o.minH) { - o.autoResize && (l = e.layoutRect(l), l.contentW = l.minW - o.deltaW, l.contentH = l.minH - o.deltaH); - var L; - L = "start" == t.packV ? 0 : B > 0 ? Math.floor(B / n) : 0; - var H = 0, M = t.flexWidths; - if (M)for (u = 0; u < M.length; u++)H += M[u]; else H = r; - var D = A / H; - for (u = 0; r > u; u++)N[u] += M ? M[u] * D : D; - for (m = g.top, f = 0; n > f; f++) { - for (p = g.left, s = E[f] + L, u = 0; r > u && (d = i[f * r + u], d); u++)h = d.settings, c = d.layoutRect(), a = Math.max(N[u], c.startMinWidth), T = R = 0, c.x = p, c.y = m, v = h.alignH || (C ? C[u] || C[0] : null), "center" == v ? c.x = p + a / 2 - c.w / 2 : "right" == v ? c.x = p + a - c.w : "stretch" == v && (c.w = a), v = h.alignV || (x ? x[u] || x[0] : null), "center" == v ? c.y = m + s / 2 - c.h / 2 : "bottom" == v ? c.y = m + s - c.h : "stretch" == v && (c.h = s), d.layoutRect(c), p += a + y, d.recalc && d.recalc(); - m += s + b - } - } else if (l.w = l.minW, l.h = l.minH, e.layoutRect(l), this.recalc(e), null === e._lastRect) { - var P = e.parent(); - P && (P._lastRect = null, P.recalc()) - } - }}) - }), r(Pt, [yt], function (e) { - return e.extend({renderHtml: function () { - var e = this; - return e.addClass("iframe"), e.canFocus = !1, '<iframe id="' + e._id + '" class="' + e.classes() + '" tabindex="-1" src="' + (e.settings.url || "javascript:''") + '" frameborder="0"></iframe>' - }, src: function (e) { - this.getEl().src = e - }, html: function (e, t) { - var n = this, r = this.getEl().contentWindow.document.body; - return r ? (r.innerHTML = e, t && t()) : setTimeout(function () { - n.html(e) - }, 0), this - }}) - }), r(Ot, [yt, W], function (e, t) { - return e.extend({init: function (e) { - var t = this; - t._super(e), t.addClass("widget"), t.addClass("label"), t.canFocus = !1, e.multiline && t.addClass("autoscroll"), e.strong && t.addClass("strong") - }, initLayoutRect: function () { - var e = this, n = e._super(); - if (e.settings.multiline) { - var r = t.getSize(e.getEl()); - r.width > n.maxW && (n.minW = n.maxW, e.addClass("multiline")), e.getEl().style.width = n.minW + "px", n.startMinH = n.h = n.minH = Math.min(n.maxH, t.getSize(e.getEl()).height) - } - return n - }, repaint: function () { - var e = this; - return e.settings.multiline || (e.getEl().style.lineHeight = e.layoutRect().h + "px"), e._super() - }, text: function (e) { - var t = this; - return t._rendered && e && this.innerHtml(t.encode(e)), t._super(e) - }, renderHtml: function () { - var e = this, t = e.settings.forId; - return'<label id="' + e._id + '" class="' + e.classes() + '"' + (t ? ' for="' + t + '"' : "") + ">" + e.encode(e._text) + "</label>" - }}) - }), r(It, [q, J], function (e, t) { - return e.extend({Defaults: {role: "toolbar", layout: "flow"}, init: function (e) { - var t = this; - t._super(e), t.addClass("toolbar") - }, postRender: function () { - var e = this; - return e.items().addClass("toolbar-item"), e.keyNav = new t({root: e, enableLeftRight: !0}), e._super() - }}) - }), r(zt, [It], function (e) { - return e.extend({Defaults: {role: "menubar", containerCls: "menubar", defaults: {type: "menubutton"}}}) - }), r(Ft, [bt, U, zt], function (e, t, n) { - function r(e, t) { - for (; e;) { - if (t === e)return!0; - e = e.parentNode - } - return!1 - } - - var i = e.extend({init: function (e) { - var t = this; - t._renderOpen = !0, t._super(e), t.addClass("menubtn"), e.fixedWidth && t.addClass("fixed-width"), t.aria("haspopup", !0), t.hasPopup = !0 - }, showMenu: function () { - var e = this, n = e.settings, r; - return e.menu && e.menu.visible() ? e.hideMenu() : (e.menu || (r = n.menu || [], r.length ? r = {type: "menu", items: r} : r.type = r.type || "menu", e.menu = t.create(r).parent(e).renderTo(e.getContainerElm()), e.fire("createmenu"), e.menu.reflow(), e.menu.on("cancel", function (t) { - t.control === e.menu && e.focus() - }), e.menu.on("show hide",function (t) { - t.control == e.menu && e.activeMenu("show" == t.type) - }).fire("show"), e.aria("expanded", !0)), e.menu.show(), e.menu.layoutRect({w: e.layoutRect().w}), void e.menu.moveRel(e.getEl(), e.isRtl() ? ["br-tr", "tr-br"] : ["bl-tl", "tl-bl"])) - }, hideMenu: function () { - var e = this; - e.menu && (e.menu.items().each(function (e) { - e.hideMenu && e.hideMenu() - }), e.menu.hide(), e.aria("expanded", !1)) - }, activeMenu: function (e) { - this.toggleClass("active", e) - }, renderHtml: function () { - var e = this, t = e._id, r = e.classPrefix, i = e.settings.icon ? r + "ico " + r + "i-" + e.settings.icon : ""; - return e.aria("role", e.parent()instanceof n ? "menuitem" : "button"), '<div id="' + t + '" class="' + e.classes() + '" tabindex="-1"><button id="' + t + '-open" role="presentation" type="button" tabindex="-1">' + (i ? '<i class="' + i + '"></i>' : "") + "<span>" + (e._text ? (i ? "\xa0" : "") + e.encode(e._text) : "") + '</span> <i class="' + r + 'caret"></i></button></div>' - }, postRender: function () { - var e = this; - return e.on("click", function (t) { - t.control === e && r(t.target, e.getEl()) && (e.showMenu(), t.keyboard && e.menu.items()[0].focus()) - }), e.on("mouseenter", function (t) { - var n = t.control, r = e.parent(), o; - n && r && n instanceof i && n.parent() == r && (r.items().filter("MenuButton").each(function (e) { - e.hideMenu && e != n && (e.menu && e.menu.visible() && (o = !0), e.hideMenu()) - }), o && (n.focus(), n.showMenu())) - }), e._super() - }, text: function (e) { - var t = this, n, r; - if (t._rendered)for (r = t.getEl("open").getElementsByTagName("span"), n = 0; n < r.length; n++)r[n].innerHTML = (t.settings.icon && e ? "\xa0" : "") + t.encode(e); - return this._super(e) - }, remove: function () { - this._super(), this.menu && this.menu.remove() - }}); - return i - }), r(Wt, [Ft], function (e) { - return e.extend({init: function (e) { - var t = this, n, r, i, o, a; - if (t._values = n = e.values, n) { - for (r = 0; r < n.length; r++)i = n[r].selected || e.value === n[r].value, i && (o = o || n[r].text, t._value = n[r].value); - e.menu = n - } - e.text = e.text || o || n[0].text, t._super(e), t.addClass("listbox"), t.on("select", function (n) { - var r = n.control; - a && (n.lastControl = a), e.multiple ? r.active(!r.active()) : t.value(n.control.settings.value), a = r - }) - }, value: function (e) { - function t(e, n) { - e.items().each(function (e) { - r = e.value() === n, r && (i = i || e.text()), e.active(r), e.menu && t(e.menu, n) - }) - } - - var n = this, r, i, o, a; - if ("undefined" != typeof e) { - if (n.menu)t(n.menu, e); else for (o = n.settings.menu, a = 0; a < o.length; a++)r = o[a].value == e, r && (i = i || o[a].text), o[a].active = r; - n.text(i || this.settings.text) - } - return n._super(e) - }}) - }), r(Vt, [yt, U, h], function (e, t, n) { - return e.extend({Defaults: {border: 0, role: "menuitem"}, init: function (e) { - var t = this; - t.hasPopup = !0, t._super(e), e = t.settings, t.addClass("menu-item"), e.menu && t.addClass("menu-item-expand"), e.preview && t.addClass("menu-item-preview"), ("-" === t._text || "|" === t._text) && (t.addClass("menu-item-sep"), t.aria("role", "separator"), t.canFocus = !1, t._text = "-"), e.selectable && (t.aria("role", "menuitemcheckbox"), t.aria("checked", !0), t.addClass("menu-item-checkbox"), e.icon = "selected"), e.preview || e.selectable || t.addClass("menu-item-normal"), t.on("mousedown", function (e) { - e.preventDefault() - }), t.on("mouseenter click", function (n) { - n.control === t && (e.menu || "click" !== n.type ? (t.showMenu(), n.keyboard && setTimeout(function () { - t.menu.items()[0].focus() - }, 0)) : (t.parent().hideAll(), t.fire("cancel"), t.fire("select"))) - }), e.menu && t.aria("haspopup", !0) - }, hasMenus: function () { - return!!this.settings.menu - }, showMenu: function () { - var e = this, n = e.settings, r, i = e.parent(); - if (i.items().each(function (t) { - t !== e && t.hideMenu() - }), n.menu) { - r = e.menu, r ? r.show() : (r = n.menu, r.length ? r = {type: "menu", items: r} : r.type = r.type || "menu", i.settings.itemDefaults && (r.itemDefaults = i.settings.itemDefaults), r = e.menu = t.create(r).parent(e).renderTo(e.getContainerElm()), r.reflow(), r.fire("show"), r.on("cancel", function () { - e.focus() - }), r.on("hide", function (t) { - t.control === r && e.removeClass("selected") - })), r._parentMenu = i, r.addClass("menu-sub"); - var o = r.testMoveRel(e.getEl(), e.isRtl() ? ["tl-tr", "bl-br", "tr-tl", "br-bl"] : ["tr-tl", "br-bl", "tl-tr", "bl-br"]); - r.moveRel(e.getEl(), o), r.rel = o, o = "menu-sub-" + o, r.removeClass(r._lastRel), r.addClass(o), r._lastRel = o, e.addClass("selected"), e.aria("expanded", !0) - } - }, hideMenu: function () { - var e = this; - return e.menu && (e.menu.items().each(function (e) { - e.hideMenu && e.hideMenu() - }), e.menu.hide(), e.aria("expanded", !1)), e - }, renderHtml: function () { - var e = this, t = e._id, r = e.settings, i = e.classPrefix, o = e.encode(e._text), a = e.settings.icon, s = "", l = r.shortcut; - return a && e.parent().addClass("menu-has-icons"), r.image && (a = "none", s = " style=\"background-image: url('" + r.image + "')\""), l && n.mac && (l = l.replace(/ctrl\+alt\+/i, "⌥⌘"), l = l.replace(/ctrl\+/i, "⌘"), l = l.replace(/alt\+/i, "⌥"), l = l.replace(/shift\+/i, "⇧")), a = i + "ico " + i + "i-" + (e.settings.icon || "none"), '<div id="' + t + '" class="' + e.classes() + '" tabindex="-1">' + ("-" !== o ? '<i class="' + a + '"' + s + "></i> " : "") + ("-" !== o ? '<span id="' + t + '-text" class="' + i + 'text">' + o + "</span>" : "") + (l ? '<div id="' + t + '-shortcut" class="' + i + 'menu-shortcut">' + l + "</div>" : "") + (r.menu ? '<div class="' + i + 'caret"></div>' : "") + "</div>" - }, postRender: function () { - var e = this, t = e.settings, n = t.textStyle; - if ("function" == typeof n && (n = n.call(this)), n) { - var r = e.getEl("text"); - r && r.setAttribute("style", n) - } - return e._super() - }, remove: function () { - this._super(), this.menu && this.menu.remove() - }}) - }), r(Ut, [X, J, Vt, f], function (e, t, n, r) { - var i = e.extend({Defaults: {defaultType: "menuitem", border: 1, layout: "stack", role: "menu"}, init: function (e) { - var i = this; - if (e.autohide = !0, e.constrainToViewport = !0, e.itemDefaults)for (var o = e.items, a = o.length; a--;)o[a] = r.extend({}, e.itemDefaults, o[a]); - i._super(e), i.addClass("menu"), i.keyNav = new t({root: i, enableUpDown: !0, enableLeftRight: !0, leftAction: function () { - i.parent()instanceof n && i.keyNav.cancel() - }, onCancel: function () { - i.fire("cancel", {}, !1), i.hide() - }}) - }, repaint: function () { - return this.toggleClass("menu-align", !0), this._super(), this.getEl().style.height = "", this.getEl("body").style.height = "", this - }, cancel: function () { - var e = this; - e.hideAll(), e.fire("cancel"), e.fire("select") - }, hideAll: function () { - var e = this; - return this.find("menuitem").exec("hideMenu"), e._super() - }, preRender: function () { - var e = this; - return e.items().each(function (t) { - var n = t.settings; - return n.icon || n.selectable ? (e._hasIcons = !0, !1) : void 0 - }), e._super() - }}); - return i - }), r(qt, [xt], function (e) { - return e.extend({Defaults: {classes: "radio", role: "radio"}}) - }), r(jt, [yt, j], function (e, t) { - return e.extend({renderHtml: function () { - var e = this, t = e.classPrefix; - return e.addClass("resizehandle"), "both" == e.settings.direction && e.addClass("resizehandle-both"), e.canFocus = !1, '<div id="' + e._id + '" class="' + e.classes() + '"><i class="' + t + "ico " + t + 'i-resize"></i></div>' - }, postRender: function () { - var e = this; - e._super(), e.resizeDragHelper = new t(this._id, {start: function () { - e.fire("ResizeStart") - }, drag: function (t) { - "both" != e.settings.direction && (t.deltaX = 0), e.fire("Resize", t) - }, stop: function () { - e.fire("ResizeEnd") - }}) - }, remove: function () { - return this.resizeDragHelper && this.resizeDragHelper.destroy(), this._super() - }}) - }), r($t, [yt], function (e) { - return e.extend({renderHtml: function () { - var e = this; - return e.addClass("spacer"), e.canFocus = !1, '<div id="' + e._id + '" class="' + e.classes() + '"></div>' - }}) - }), r(Kt, [Ft, W], function (e, t) { - return e.extend({Defaults: {classes: "widget btn splitbtn", role: "splitbutton"}, repaint: function () { - var e = this, n = e.getEl(), r = e.layoutRect(), i, o; - return e._super(), i = n.firstChild, o = n.lastChild, t.css(i, {width: r.w - t.getSize(o).width, height: r.h - 2}), t.css(o, {height: r.h - 2}), e - }, activeMenu: function (e) { - var n = this; - t.toggleClass(n.getEl().lastChild, n.classPrefix + "active", e) - }, renderHtml: function () { - var e = this, t = e._id, n = e.classPrefix, r = e.settings.icon ? n + "ico " + n + "i-" + e.settings.icon : ""; - return'<div id="' + t + '" class="' + e.classes() + '"><button type="button" hidefocus tabindex="-1">' + (r ? '<i class="' + r + '"></i>' : "") + (e._text ? (r ? " " : "") + e._text : "") + '</button><button type="button" class="' + n + 'open" hidefocus tabindex="-1">' + (e._menuBtnText ? (r ? "\xa0" : "") + e._menuBtnText : "") + ' <i class="' + n + 'caret"></i></button></div>' - }, postRender: function () { - var e = this, t = e.settings.onclick; - return e.on("click", function (e) { - var n = e.target; - if (e.control == this)for (; n;) { - if ("BUTTON" == n.nodeName && -1 == n.className.indexOf("open"))return e.stopImmediatePropagation(), void t.call(this, e); - n = n.parentNode - } - }), delete e.settings.onclick, e._super() - }}) - }), r(Yt, [Ht], function (e) { - return e.extend({Defaults: {containerClass: "stack-layout", controlClass: "stack-layout-item", endClass: "break"}}) - }), r(Gt, [K, W], function (e, t) { - return e.extend({lastIdx: 0, Defaults: {layout: "absolute", defaults: {type: "panel"}}, activateTab: function (e) { - this.activeTabId && t.removeClass(this.getEl(this.activeTabId), this.classPrefix + "active"), this.activeTabId = "t" + e, t.addClass(this.getEl("t" + e), this.classPrefix + "active"), e != this.lastIdx && (this.items()[this.lastIdx].hide(), this.lastIdx = e), this.items()[e].show().fire("showtab"), this.reflow() - }, renderHtml: function () { - var e = this, t = e._layout, n = "", r = e.classPrefix; - return e.preRender(), t.preRender(e), e.items().each(function (t, i) { - n += '<div id="' + e._id + "-t" + i + '" class="' + r + 'tab" unselectable="on">' + e.encode(t.settings.title) + "</div>" - }), '<div id="' + e._id + '" class="' + e.classes() + '" hideFocus="1" tabIndex="-1"><div id="' + e._id + '-head" class="' + r + 'tabs">' + n + '</div><div id="' + e._id + '-body" class="' + e.classes("body") + '">' + t.renderHtml(e) + "</div></div>" - }, postRender: function () { - var e = this; - e._super(), e.settings.activeTab = e.settings.activeTab || 0, e.activateTab(e.settings.activeTab), this.on("click", function (t) { - var n = t.target.parentNode; - if (t.target.parentNode.id == e._id + "-head")for (var r = n.childNodes.length; r--;)n.childNodes[r] == t.target && e.activateTab(r) - }) - }, initLayoutRect: function () { - var e = this, n, r, i; - r = t.getSize(e.getEl("head")).width, r = 0 > r ? 0 : r, i = 0, e.items().each(function (t, n) { - r = Math.max(r, t.layoutRect().minW), i = Math.max(i, t.layoutRect().minH), e.settings.activeTab != n && t.hide() - }), e.items().each(function (e) { - e.settings.x = 0, e.settings.y = 0, e.settings.w = r, e.settings.h = i, e.layoutRect({x: 0, y: 0, w: r, h: i}) - }); - var o = t.getSize(e.getEl("head")).height; - return e.settings.minWidth = r, e.settings.minHeight = i + o, n = e._super(), n.deltaH += o, n.innerH = n.h - n.deltaH, n - }}) - }), r(Xt, [yt, W], function (e, t) { - return e.extend({init: function (e) { - var t = this; - t._super(e), t._value = e.value || "", t.addClass("textbox"), e.multiline ? t.addClass("multiline") : t.on("keydown", function (e) { - 13 == e.keyCode && t.parents().reverse().each(function (t) { - return e.preventDefault(), t.hasEventListeners("submit") && t.toJSON ? (t.fire("submit", {data: t.toJSON()}), !1) : void 0 - }) - }) - }, disabled: function (e) { - var t = this; - return t._rendered && "undefined" != typeof e && (t.getEl().disabled = e), t._super(e) - }, value: function (e) { - var t = this; - return"undefined" != typeof e ? (t._value = e, t._rendered && (t.getEl().value = e), t) : t._rendered ? t.getEl().value : t._value - }, repaint: function () { - var e = this, t, n, r, i = 0, o = 0, a; - t = e.getEl().style, n = e._layoutRect, a = e._lastRepaintRect || {}; - var s = document; - return!e.settings.multiline && s.all && (!s.documentMode || s.documentMode <= 8) && (t.lineHeight = n.h - o + "px"), r = e._borderBox, i = r.left + r.right + 8, o = r.top + r.bottom + (e.settings.multiline ? 8 : 0), n.x !== a.x && (t.left = n.x + "px", a.x = n.x), n.y !== a.y && (t.top = n.y + "px", a.y = n.y), n.w !== a.w && (t.width = n.w - i + "px", a.w = n.w), n.h !== a.h && (t.height = n.h - o + "px", a.h = n.h), e._lastRepaintRect = a, e.fire("repaint", {}, !1), e - }, renderHtml: function () { - var e = this, t = e._id, n = e.settings, r = e.encode(e._value, !1), i = ""; - return"spellcheck"in n && (i += ' spellcheck="' + n.spellcheck + '"'), n.maxLength && (i += ' maxlength="' + n.maxLength + '"'), n.size && (i += ' size="' + n.size + '"'), n.subtype && (i += ' type="' + n.subtype + '"'), e.disabled() && (i += ' disabled="disabled"'), n.multiline ? '<textarea id="' + t + '" class="' + e.classes() + '" ' + (n.rows ? ' rows="' + n.rows + '"' : "") + ' hidefocus="true"' + i + ">" + r + "</textarea>" : '<input id="' + t + '" class="' + e.classes() + '" value="' + r + '" hidefocus="true"' + i + ">" - }, postRender: function () { - var e = this; - return t.on(e.getEl(), "change", function (t) { - e.fire("change", t) - }), e._super() - }, remove: function () { - t.off(this.getEl()), this._super() - }}) - }), r(Jt, [W], function (e) { - return function (t) { - var n = this, r; - n.show = function (i) { - return n.hide(), r = !0, window.setTimeout(function () { - r && t.appendChild(e.createFragment('<div class="mce-throbber"></div>')) - }, i || 0), n - }, n.hide = function () { - var e = t.lastChild; - return e && -1 != e.className.indexOf("throbber") && e.parentNode.removeChild(e), r = !1, n - } - } - }), a([l, c, d, u, f, p, m, h, g, v, y, b, C, x, w, _, N, E, k, S, T, R, A, B, L, H, M, D, P, O, I, z, F, W, V, U, q, j, $, K, Y, G, X, J, Q, Z, et, tt, nt, rt, it, ot, at, st, lt, ct, dt, ut, ft, pt, mt, ht, gt, vt, yt, bt, Ct, xt, wt, _t, Nt, Et, kt, St, Tt, Rt, At, Bt, Lt, Ht, Mt, Dt, Pt, Ot, It, zt, Ft, Wt, Vt, Ut, qt, jt, $t, Kt, Yt, Gt, Xt, Jt]) -}(this); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/BUILD_README.txt b/common/static/js/vendor/tinymce/BUILD_README.txt new file mode 100644 index 00000000000..8b18fb03451 --- /dev/null +++ b/common/static/js/vendor/tinymce/BUILD_README.txt @@ -0,0 +1,16 @@ +Instructions for creating js/tinymce.full.min.js + +1. Ensure that the dependencies (NodeJS, Jake, and other dependencies) are installed. If necessary, + install them per the directions on https://github.com/tinymce/tinymce/tree/4.0.20. +2. Unzip edx-platform/vendor_extra/tinymce/jake_package.zip into this directory (so that Jakefile.js resides in this directory). +3. Run the following command in the tinymce directory: + jake minify bundle[themes:modern,plugins:image,link,codemirror,paste,table,textcolor] +4. Cleanup by deleting the Unversioned files that were created from unzipping jake_package.zip. + +Instructions for updating tinymce to a newer version: + +1. Download the desired version from https://github.com/tinymce/tinymce/releases +2. Find all the EDX specific changes that were made to the currently used version of tinymce by searching for + the string "EDX" in this directory. +3. Merge the EDX specific changes with the new version. +4. Follow the instructions above for creating the new version of js/tinymce.full.min.js diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/AddOnManager.js b/common/static/js/vendor/tinymce/js/tinymce/classes/AddOnManager.js new file mode 100755 index 00000000000..02ae2d9bdd2 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/AddOnManager.js @@ -0,0 +1,256 @@ +/** + * AddOnManager.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles the loading of themes/plugins or other add-ons and their language packs. + * + * @class tinymce.AddOnManager + */ +define("tinymce/AddOnManager", [ + "tinymce/dom/ScriptLoader", + "tinymce/util/Tools" +], function(ScriptLoader, Tools) { + var each = Tools.each; + + function AddOnManager() { + var self = this; + + self.items = []; + self.urls = {}; + self.lookup = {}; + } + + AddOnManager.prototype = { + /** + * Returns the specified add on by the short name. + * + * @method get + * @param {String} name Add-on to look for. + * @return {tinymce.Theme/tinymce.Plugin} Theme or plugin add-on instance or undefined. + */ + get: function(name) { + if (this.lookup[name]) { + return this.lookup[name].instance; + } else { + return undefined; + } + }, + + dependencies: function(name) { + var result; + + if (this.lookup[name]) { + result = this.lookup[name].dependencies; + } + + return result || []; + }, + + /** + * Loads a language pack for the specified add-on. + * + * @method requireLangPack + * @param {String} name Short name of the add-on. + * @param {String} languages Optional comma or space separated list of languages to check if it matches the name. + */ + requireLangPack: function(name, languages) { + if (AddOnManager.language && AddOnManager.languageLoad !== false) { + if (languages && new RegExp('([, ]|\\b)' + AddOnManager.language + '([, ]|\\b)').test(languages) === false) { + return; + } + + ScriptLoader.ScriptLoader.add(this.urls[name] + '/langs/' + AddOnManager.language + '.js'); + } + }, + + /** + * Adds a instance of the add-on by it's short name. + * + * @method add + * @param {String} id Short name/id for the add-on. + * @param {tinymce.Theme/tinymce.Plugin} addOn Theme or plugin to add. + * @return {tinymce.Theme/tinymce.Plugin} The same theme or plugin instance that got passed in. + * @example + * // Create a simple plugin + * tinymce.create('tinymce.plugins.TestPlugin', { + * TestPlugin: function(ed, url) { + * ed.on('click', function(e) { + * ed.windowManager.alert('Hello World!'); + * }); + * } + * }); + * + * // Register plugin using the add method + * tinymce.PluginManager.add('test', tinymce.plugins.TestPlugin); + * + * // Initialize TinyMCE + * tinymce.init({ + * ... + * plugins: '-test' // Init the plugin but don't try to load it + * }); + */ + add: function(id, addOn, dependencies) { + this.items.push(addOn); + this.lookup[id] = {instance: addOn, dependencies: dependencies}; + + return addOn; + }, + + createUrl: function(baseUrl, dep) { + if (typeof dep === "object") { + return dep; + } else { + return {prefix: baseUrl.prefix, resource: dep, suffix: baseUrl.suffix}; + } + }, + + /** + * Add a set of components that will make up the add-on. Using the url of the add-on name as the base url. + * This should be used in development mode. A new compressor/javascript munger process will ensure that the + * components are put together into the plugin.js file and compressed correctly. + * + * @method addComponents + * @param {String} pluginName name of the plugin to load scripts from (will be used to get the base url for the plugins). + * @param {Array} scripts Array containing the names of the scripts to load. + */ + addComponents: function(pluginName, scripts) { + var pluginUrl = this.urls[pluginName]; + + each(scripts, function(script) { + ScriptLoader.ScriptLoader.add(pluginUrl + "/" + script); + }); + }, + + /** + * Loads an add-on from a specific url. + * + * @method load + * @param {String} name Short name of the add-on that gets loaded. + * @param {String} addOnUrl URL to the add-on that will get loaded. + * @param {function} callback Optional callback to execute ones the add-on is loaded. + * @param {Object} scope Optional scope to execute the callback in. + * @example + * // Loads a plugin from an external URL + * tinymce.PluginManager.load('myplugin', '/some/dir/someplugin/plugin.js'); + * + * // Initialize TinyMCE + * tinymce.init({ + * ... + * plugins: '-myplugin' // Don't try to load it again + * }); + */ + load: function(name, addOnUrl, callback, scope) { + var self = this, url = addOnUrl; + + function loadDependencies() { + var dependencies = self.dependencies(name); + + each(dependencies, function(dep) { + var newUrl = self.createUrl(addOnUrl, dep); + + self.load(newUrl.resource, newUrl, undefined, undefined); + }); + + if (callback) { + if (scope) { + callback.call(scope); + } else { + callback.call(ScriptLoader); + } + } + } + + if (self.urls[name]) { + return; + } + + if (typeof addOnUrl === "object") { + url = addOnUrl.prefix + addOnUrl.resource + addOnUrl.suffix; + } + + if (url.indexOf('/') !== 0 && url.indexOf('://') == -1) { + url = AddOnManager.baseURL + '/' + url; + } + + self.urls[name] = url.substring(0, url.lastIndexOf('/')); + + if (self.lookup[name]) { + loadDependencies(); + } else { + ScriptLoader.ScriptLoader.add(url, loadDependencies, scope); + } + } + }; + + AddOnManager.PluginManager = new AddOnManager(); + AddOnManager.ThemeManager = new AddOnManager(); + + return AddOnManager; +}); + +/** + * TinyMCE theme class. + * + * @class tinymce.Theme + */ + +/** + * This method is responsible for rendering/generating the overall user interface with toolbars, buttons, iframe containers etc. + * + * @method renderUI + * @param {Object} obj Object parameter containing the targetNode DOM node that will be replaced visually with an editor instance. + * @return {Object} an object with items like iframeContainer, editorContainer, sizeContainer, deltaWidth, deltaHeight. + */ + +/** + * Plugin base class, this is a pseudo class that describes how a plugin is to be created for TinyMCE. The methods below are all optional. + * + * @class tinymce.Plugin + * @example + * tinymce.PluginManager.add('example', function(editor, url) { + * // Add a button that opens a window + * editor.addButton('example', { + * text: 'My button', + * icon: false, + * onclick: function() { + * // Open window + * editor.windowManager.open({ + * title: 'Example plugin', + * body: [ + * {type: 'textbox', name: 'title', label: 'Title'} + * ], + * onsubmit: function(e) { + * // Insert content when the window form is submitted + * editor.insertContent('Title: ' + e.data.title); + * } + * }); + * } + * }); + * + * // Adds a menu item to the tools menu + * editor.addMenuItem('example', { + * text: 'Example plugin', + * context: 'tools', + * onclick: function() { + * // Open window with a specific url + * editor.windowManager.open({ + * title: 'TinyMCE site', + * url: 'http://www.tinymce.com', + * width: 800, + * height: 600, + * buttons: [{ + * text: 'Close', + * onclick: 'close' + * }] + * }); + * } + * }); + * }); + */ diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/Compat.js b/common/static/js/vendor/tinymce/js/tinymce/classes/Compat.js new file mode 100755 index 00000000000..eacc64c9cf9 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/Compat.js @@ -0,0 +1,84 @@ +/** + * Compat.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * TinyMCE core class. + * + * @static + * @class tinymce + * @borrow-members tinymce.EditorManager + * @borrow-members tinymce.util.Tools + */ +define("tinymce/Compat", [ + "tinymce/dom/DOMUtils", + "tinymce/dom/EventUtils", + "tinymce/dom/ScriptLoader", + "tinymce/AddOnManager", + "tinymce/util/Tools", + "tinymce/Env" +], function(DOMUtils, EventUtils, ScriptLoader, AddOnManager, Tools, Env) { + var tinymce = window.tinymce; + + /** + * @property {tinymce.dom.DOMUtils} DOM Global DOM instance. + * @property {tinymce.dom.ScriptLoader} ScriptLoader Global ScriptLoader instance. + * @property {tinymce.AddOnManager} PluginManager Global PluginManager instance. + * @property {tinymce.AddOnManager} ThemeManager Global ThemeManager instance. + */ + tinymce.DOM = DOMUtils.DOM; + tinymce.ScriptLoader = ScriptLoader.ScriptLoader; + tinymce.PluginManager = AddOnManager.PluginManager; + tinymce.ThemeManager = AddOnManager.ThemeManager; + + tinymce.dom = tinymce.dom || {}; + tinymce.dom.Event = EventUtils.Event; + + Tools.each(Tools, function(func, key) { + tinymce[key] = func; + }); + + Tools.each('isOpera isWebKit isIE isGecko isMac'.split(' '), function(name) { + tinymce[name] = Env[name.substr(2).toLowerCase()]; + }); + + return {}; +}); + +// Describe the different namespaces + +/** + * Root level namespace this contains classes directly releated to the TinyMCE editor. + * + * @namespace tinymce + */ + +/** + * Contains classes for handling the browsers DOM. + * + * @namespace tinymce.dom + */ + +/** + * Contains html parser and serializer logic. + * + * @namespace tinymce.html + */ + +/** + * Contains the different UI types such as buttons, listboxes etc. + * + * @namespace tinymce.ui + */ + +/** + * Contains various utility classes such as json parser, cookies etc. + * + * @namespace tinymce.util + */ diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/Editor.js b/common/static/js/vendor/tinymce/js/tinymce/classes/Editor.js new file mode 100755 index 00000000000..571c4fa32d2 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/Editor.js @@ -0,0 +1,2168 @@ +/** + * Editor.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*jshint scripturl:true */ + +/** + * Include the base event class documentation. + * + * @include ../../../tools/docs/tinymce.Event.js + */ + +/** + * This class contains the core logic for a TinyMCE editor. + * + * @class tinymce.Editor + * @mixes tinymce.util.Observable + * @example + * // Add a class to all paragraphs in the editor. + * tinymce.activeEditor.dom.addClass(tinymce.activeEditor.dom.select('p'), 'someclass'); + * + * // Gets the current editors selection as text + * tinymce.activeEditor.selection.getContent({format: 'text'}); + * + * // Creates a new editor instance + * var ed = new tinymce.Editor('textareaid', { + * some_setting: 1 + * }, tinymce.EditorManager); + * + * // Select each item the user clicks on + * ed.on('click', function(e) { + * ed.selection.select(e.target); + * }); + * + * ed.render(); + */ +define("tinymce/Editor", [ + "tinymce/dom/DOMUtils", + "tinymce/AddOnManager", + "tinymce/html/Node", + "tinymce/dom/Serializer", + "tinymce/html/Serializer", + "tinymce/dom/Selection", + "tinymce/Formatter", + "tinymce/UndoManager", + "tinymce/EnterKey", + "tinymce/ForceBlocks", + "tinymce/EditorCommands", + "tinymce/util/URI", + "tinymce/dom/ScriptLoader", + "tinymce/dom/EventUtils", + "tinymce/WindowManager", + "tinymce/html/Schema", + "tinymce/html/DomParser", + "tinymce/util/Quirks", + "tinymce/Env", + "tinymce/util/Tools", + "tinymce/util/Observable", + "tinymce/Shortcuts" +], function( + DOMUtils, AddOnManager, Node, DomSerializer, Serializer, + Selection, Formatter, UndoManager, EnterKey, ForceBlocks, EditorCommands, + URI, ScriptLoader, EventUtils, WindowManager, + Schema, DomParser, Quirks, Env, Tools, Observable, Shortcuts +) { + // Shorten these names + var DOM = DOMUtils.DOM, ThemeManager = AddOnManager.ThemeManager, PluginManager = AddOnManager.PluginManager; + var extend = Tools.extend, each = Tools.each, explode = Tools.explode; + var inArray = Tools.inArray, trim = Tools.trim, resolve = Tools.resolve; + var Event = EventUtils.Event; + var isGecko = Env.gecko, ie = Env.ie; + + function getEventTarget(editor, eventName) { + if (eventName == 'selectionchange') { + return editor.getDoc(); + } + + // Need to bind mousedown/mouseup etc to document not body in iframe mode + // Since the user might click on the HTML element not the BODY + if (!editor.inline && /^mouse|click|contextmenu|drop/.test(eventName)) { + return editor.getDoc(); + } + + return editor.getBody(); + } + + /** + * Include documentation for all the events. + * + * @include ../../../tools/docs/tinymce.Editor.js + */ + + /** + * Constructs a editor instance by id. + * + * @constructor + * @method Editor + * @param {String} id Unique id for the editor. + * @param {Object} settings Settings for the editor. + * @param {tinymce.EditorManager} editorManager EditorManager instance. + * @author Moxiecode + */ + function Editor(id, settings, editorManager) { + var self = this, documentBaseUrl, baseUri; + + documentBaseUrl = self.documentBaseUrl = editorManager.documentBaseURL; + baseUri = editorManager.baseURI; + + /** + * Name/value collection with editor settings. + * + * @property settings + * @type Object + * @example + * // Get the value of the theme setting + * tinymce.activeEditor.windowManager.alert("You are using the " + tinymce.activeEditor.settings.theme + " theme"); + */ + self.settings = settings = extend({ + id: id, + theme: 'modern', + delta_width: 0, + delta_height: 0, + popup_css: '', + plugins: '', + document_base_url: documentBaseUrl, + add_form_submit_trigger: true, + submit_patch: true, + add_unload_trigger: true, + convert_urls: true, + relative_urls: true, + remove_script_host: true, + object_resizing: true, + doctype: '<!DOCTYPE html>', + visual: true, + font_size_style_values: 'xx-small,x-small,small,medium,large,x-large,xx-large', + + // See: http://www.w3.org/TR/CSS2/fonts.html#propdef-font-size + font_size_legacy_values: 'xx-small,small,medium,large,x-large,xx-large,300%', + forced_root_block: 'p', + hidden_input: true, + padd_empty_editor: true, + render_ui: true, + indentation: '30px', + inline_styles: true, + convert_fonts_to_spans: true, + indent: 'simple', + indent_before: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,' + + 'tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist', + indent_after: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,' + + 'tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist', + validate: true, + entity_encoding: 'named', + url_converter: self.convertURL, + url_converter_scope: self, + ie7_compat: true + }, settings); + + AddOnManager.language = settings.language || 'en'; + AddOnManager.languageLoad = settings.language_load; + + AddOnManager.baseURL = editorManager.baseURL; + + /** + * Editor instance id, normally the same as the div/textarea that was replaced. + * + * @property id + * @type String + */ + self.id = settings.id = id; + + /** + * State to force the editor to return false on a isDirty call. + * + * @property isNotDirty + * @type Boolean + * @example + * function ajaxSave() { + * var ed = tinymce.get('elm1'); + * + * // Save contents using some XHR call + * alert(ed.getContent()); + * + * ed.isNotDirty = true; // Force not dirty state + * } + */ + self.isNotDirty = true; + + /** + * Name/Value object containting plugin instances. + * + * @property plugins + * @type Object + * @example + * // Execute a method inside a plugin directly + * tinymce.activeEditor.plugins.someplugin.someMethod(); + */ + self.plugins = {}; + + /** + * URI object to document configured for the TinyMCE instance. + * + * @property documentBaseURI + * @type tinymce.util.URI + * @example + * // Get relative URL from the location of document_base_url + * tinymce.activeEditor.documentBaseURI.toRelative('/somedir/somefile.htm'); + * + * // Get absolute URL from the location of document_base_url + * tinymce.activeEditor.documentBaseURI.toAbsolute('somefile.htm'); + */ + self.documentBaseURI = new URI(settings.document_base_url || documentBaseUrl, { + base_uri: baseUri + }); + + /** + * URI object to current document that holds the TinyMCE editor instance. + * + * @property baseURI + * @type tinymce.util.URI + * @example + * // Get relative URL from the location of the API + * tinymce.activeEditor.baseURI.toRelative('/somedir/somefile.htm'); + * + * // Get absolute URL from the location of the API + * tinymce.activeEditor.baseURI.toAbsolute('somefile.htm'); + */ + self.baseURI = baseUri; + + /** + * Array with CSS files to load into the iframe. + * + * @property contentCSS + * @type Array + */ + self.contentCSS = []; + + /** + * Array of CSS styles to add to head of document when the editor loads. + * + * @property contentStyles + * @type Array + */ + self.contentStyles = []; + + // Creates all events like onClick, onSetContent etc see Editor.Events.js for the actual logic + self.shortcuts = new Shortcuts(self); + + // Internal command handler objects + self.execCommands = {}; + self.queryStateCommands = {}; + self.queryValueCommands = {}; + self.loadedCSS = {}; + + self.suffix = editorManager.suffix; + self.editorManager = editorManager; + self.inline = settings.inline; + + // Call setup + editorManager.fire('SetupEditor', self); + self.execCallback('setup', self); + } + + Editor.prototype = { + /** + * Renderes the editor/adds it to the page. + * + * @method render + */ + render: function() { + var self = this, settings = self.settings, id = self.id, suffix = self.suffix; + + function readyHandler() { + DOM.unbind(window, 'ready', readyHandler); + self.render(); + } + + // Page is not loaded yet, wait for it + if (!Event.domLoaded) { + DOM.bind(window, 'ready', readyHandler); + return; + } + + // Element not found, then skip initialization + if (!self.getElement()) { + return; + } + + // No editable support old iOS versions etc + if (!Env.contentEditable) { + return; + } + + // Hide target element early to prevent content flashing + if (!settings.inline) { + self.orgVisibility = self.getElement().style.visibility; + self.getElement().style.visibility = 'hidden'; + } else { + self.inline = true; + } + + var form = self.getElement().form || DOM.getParent(id, 'form'); + if (form) { + self.formElement = form; + + // Add hidden input for non input elements inside form elements + if (settings.hidden_input && !/TEXTAREA|INPUT/i.test(self.getElement().nodeName)) { + DOM.insertAfter(DOM.create('input', {type: 'hidden', name: id}), id); + self.hasHiddenInput = true; + } + + // Pass submit/reset from form to editor instance + self.formEventDelegate = function(e) { + self.fire(e.type, e); + }; + + DOM.bind(form, 'submit reset', self.formEventDelegate); + + // Reset contents in editor when the form is reset + self.on('reset', function() { + self.setContent(self.startContent, {format: 'raw'}); + }); + + // Check page uses id="submit" or name="submit" for it's submit button + if (settings.submit_patch && !form.submit.nodeType && !form.submit.length && !form._mceOldSubmit) { + form._mceOldSubmit = form.submit; + form.submit = function() { + self.editorManager.triggerSave(); + self.isNotDirty = true; + + return form._mceOldSubmit(form); + }; + } + } + + /** + * Window manager reference, use this to open new windows and dialogs. + * + * @property windowManager + * @type tinymce.WindowManager + * @example + * // Shows an alert message + * tinymce.activeEditor.windowManager.alert('Hello world!'); + * + * // Opens a new dialog with the file.htm file and the size 320x240 + * // It also adds a custom parameter this can be retrieved by using tinyMCEPopup.getWindowArg inside the dialog. + * tinymce.activeEditor.windowManager.open({ + * url: 'file.htm', + * width: 320, + * height: 240 + * }, { + * custom_param: 1 + * }); + */ + self.windowManager = new WindowManager(self); + + if (settings.encoding == 'xml') { + self.on('GetContent', function(e) { + if (e.save) { + e.content = DOM.encode(e.content); + } + }); + } + + if (settings.add_form_submit_trigger) { + self.on('submit', function() { + if (self.initialized) { + self.save(); + } + }); + } + + if (settings.add_unload_trigger) { + self._beforeUnload = function() { + if (self.initialized && !self.destroyed && !self.isHidden()) { + self.save({format: 'raw', no_events: true, set_dirty: false}); + } + }; + + self.editorManager.on('BeforeUnload', self._beforeUnload); + } + + // Load scripts + function loadScripts() { + var scriptLoader = ScriptLoader.ScriptLoader; + + if (settings.language && settings.language != 'en' && !settings.language_url) { + settings.language_url = self.editorManager.baseURL + '/langs/' + settings.language + '.js'; + } + + if (settings.language_url) { + scriptLoader.add(settings.language_url); + } + + if (settings.theme && typeof settings.theme != "function" && + settings.theme.charAt(0) != '-' && !ThemeManager.urls[settings.theme]) { + var themeUrl = settings.theme_url; + + if (themeUrl) { + themeUrl = self.documentBaseURI.toAbsolute(themeUrl); + } else { + themeUrl = 'themes/' + settings.theme + '/theme' + suffix + '.js'; + } + + ThemeManager.load(settings.theme, themeUrl); + } + + if (Tools.isArray(settings.plugins)) { + settings.plugins = settings.plugins.join(' '); + } + + each(settings.external_plugins, function(url, name) { + PluginManager.load(name, url); + settings.plugins += ' ' + name; + }); + + each(settings.plugins.split(/[ ,]/), function(plugin) { + plugin = trim(plugin); + + if (plugin && !PluginManager.urls[plugin]) { + if (plugin.charAt(0) == '-') { + plugin = plugin.substr(1, plugin.length); + + var dependencies = PluginManager.dependencies(plugin); + + each(dependencies, function(dep) { + var defaultSettings = { + prefix:'plugins/', + resource: dep, + suffix:'/plugin' + suffix + '.js' + }; + + dep = PluginManager.createUrl(defaultSettings, dep); + PluginManager.load(dep.resource, dep); + }); + } else { + PluginManager.load(plugin, { + prefix: 'plugins/', + resource: plugin, + suffix: '/plugin' + suffix + '.js' + }); + } + } + }); + + scriptLoader.loadQueue(function() { + if (!self.removed) { + self.init(); + } + }); + } + + loadScripts(); + }, + + /** + * Initializes the editor this will be called automatically when + * all plugins/themes and language packs are loaded by the rendered method. + * This method will setup the iframe and create the theme and plugin instances. + * + * @method init + */ + init: function() { + var self = this, settings = self.settings, elm = self.getElement(); + var w, h, minHeight, n, o, Theme, url, bodyId, bodyClass, re, i, initializedPlugins = []; + + self.rtl = this.editorManager.i18n.rtl; + self.editorManager.add(self); + + settings.aria_label = settings.aria_label || DOM.getAttrib(elm, 'aria-label', self.getLang('aria.rich_text_area')); + + /** + * Reference to the theme instance that was used to generate the UI. + * + * @property theme + * @type tinymce.Theme + * @example + * // Executes a method on the theme directly + * tinymce.activeEditor.theme.someMethod(); + */ + if (settings.theme) { + if (typeof settings.theme != "function") { + settings.theme = settings.theme.replace(/-/, ''); + Theme = ThemeManager.get(settings.theme); + self.theme = new Theme(self, ThemeManager.urls[settings.theme]); + + if (self.theme.init) { + self.theme.init(self, ThemeManager.urls[settings.theme] || self.documentBaseUrl.replace(/\/$/, '')); + } + } else { + self.theme = settings.theme; + } + } + + function initPlugin(plugin) { + var Plugin = PluginManager.get(plugin), pluginUrl, pluginInstance; + + pluginUrl = PluginManager.urls[plugin] || self.documentBaseUrl.replace(/\/$/, ''); + plugin = trim(plugin); + if (Plugin && inArray(initializedPlugins, plugin) === -1) { + each(PluginManager.dependencies(plugin), function(dep){ + initPlugin(dep); + }); + + pluginInstance = new Plugin(self, pluginUrl); + + self.plugins[plugin] = pluginInstance; + + if (pluginInstance.init) { + pluginInstance.init(self, pluginUrl); + initializedPlugins.push(plugin); + } + } + } + + // Create all plugins + each(settings.plugins.replace(/\-/g, '').split(/[ ,]/), initPlugin); + + // Measure box + if (settings.render_ui && self.theme) { + self.orgDisplay = elm.style.display; + + if (typeof settings.theme != "function") { + w = settings.width || elm.style.width || elm.offsetWidth; + h = settings.height || elm.style.height || elm.offsetHeight; + minHeight = settings.min_height || 100; + re = /^[0-9\.]+(|px)$/i; + + if (re.test('' + w)) { + w = Math.max(parseInt(w, 10), 100); + } + + if (re.test('' + h)) { + h = Math.max(parseInt(h, 10), minHeight); + } + + // Render UI + o = self.theme.renderUI({ + targetNode: elm, + width: w, + height: h, + deltaWidth: settings.delta_width, + deltaHeight: settings.delta_height + }); + + // Resize editor + if (!settings.content_editable) { + DOM.setStyles(o.sizeContainer || o.editorContainer, { + wi2dth: w, + // TODO: Fix this + h2eight: h + }); + + h = (o.iframeHeight || h) + (typeof(h) == 'number' ? (o.deltaHeight || 0) : ''); + if (h < minHeight) { + h = minHeight; + } + } + } else { + o = settings.theme(self, elm); + + // Convert element type to id:s + if (o.editorContainer.nodeType) { + o.editorContainer = o.editorContainer.id = o.editorContainer.id || self.id + "_parent"; + } + + // Convert element type to id:s + if (o.iframeContainer.nodeType) { + o.iframeContainer = o.iframeContainer.id = o.iframeContainer.id || self.id + "_iframecontainer"; + } + + // Use specified iframe height or the targets offsetHeight + h = o.iframeHeight || elm.offsetHeight; + } + + self.editorContainer = o.editorContainer; + } + + // Load specified content CSS last + if (settings.content_css) { + each(explode(settings.content_css), function(u) { + self.contentCSS.push(self.documentBaseURI.toAbsolute(u)); + }); + } + + // Load specified content CSS last + if (settings.content_style) { + self.contentStyles.push(settings.content_style); + } + + // Content editable mode ends here + if (settings.content_editable) { + elm = n = o = null; // Fix IE leak + return self.initContentBody(); + } + + self.iframeHTML = settings.doctype + '<html><head>'; + + // We only need to override paths if we have to + // IE has a bug where it remove site absolute urls to relative ones if this is specified + if (settings.document_base_url != self.documentBaseUrl) { + self.iframeHTML += '<base href="' + self.documentBaseURI.getURI() + '" />'; + } + + // IE8 doesn't support carets behind images setting ie7_compat would force IE8+ to run in IE7 compat mode. + if (!Env.caretAfter && settings.ie7_compat) { + self.iframeHTML += '<meta http-equiv="X-UA-Compatible" content="IE=7" />'; + } + + self.iframeHTML += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'; + + // Load the CSS by injecting them into the HTML this will reduce "flicker" + for (i = 0; i < self.contentCSS.length; i++) { + var cssUrl = self.contentCSS[i]; + self.iframeHTML += '<link type="text/css" rel="stylesheet" href="' + cssUrl + '" />'; + self.loadedCSS[cssUrl] = true; + } + + bodyId = settings.body_id || 'tinymce'; + if (bodyId.indexOf('=') != -1) { + bodyId = self.getParam('body_id', '', 'hash'); + bodyId = bodyId[self.id] || bodyId; + } + + bodyClass = settings.body_class || ''; + if (bodyClass.indexOf('=') != -1) { + bodyClass = self.getParam('body_class', '', 'hash'); + bodyClass = bodyClass[self.id] || ''; + } + + self.iframeHTML += '</head><body id="' + bodyId + '" class="mce-content-body ' + bodyClass + '" ' + + 'onload="window.parent.tinymce.get(\'' + self.id + '\').fire(\'load\');"><br></body></html>'; + + /*eslint no-script-url:0 */ + var domainRelaxUrl = 'javascript:(function(){' + + 'document.open();document.domain="' + document.domain + '";' + + 'var ed = window.parent.tinymce.get("' + self.id + '");document.write(ed.iframeHTML);' + + 'document.close();ed.initContentBody(true);})()'; + + // Domain relaxing is required since the user has messed around with document.domain + if (document.domain != location.hostname) { + url = domainRelaxUrl; + } + + // Create iframe + // TODO: ACC add the appropriate description on this. + n = DOM.add(o.iframeContainer, 'iframe', { + id: self.id + "_ifr", + src: url || 'javascript:""', // Workaround for HTTPS warning in IE6/7 + frameBorder: '0', + allowTransparency: "true", + title: self.editorManager.translate( + "Rich Text Area. Press ALT-F9 for menu. " + + "Press ALT-F10 for toolbar. Press ALT-0 for help" + ), + style: { + width: '100%', + height: h, + display: 'block' // Important for Gecko to render the iframe correctly + } + }); + + // Try accessing the document this will fail on IE when document.domain is set to the same as location.hostname + // Then we have to force domain relaxing using the domainRelaxUrl approach very ugly!! + if (ie) { + try { + self.getDoc(); + } catch (e) { + n.src = url = domainRelaxUrl; + } + } + + self.contentAreaContainer = o.iframeContainer; + + if (o.editorContainer) { + DOM.get(o.editorContainer).style.display = self.orgDisplay; + } + + DOM.get(self.id).style.display = 'none'; + DOM.setAttrib(self.id, 'aria-hidden', true); + + if (!url) { + self.initContentBody(); + } + + elm = n = o = null; // Cleanup + }, + + /** + * This method get called by the init method ones the iframe is loaded. + * It will fill the iframe with contents, setups DOM and selection objects for the iframe. + * + * @method initContentBody + * @private + */ + initContentBody: function(skipWrite) { + var self = this, settings = self.settings, targetElm = DOM.get(self.id), doc = self.getDoc(), body, contentCssText; + + // Restore visibility on target element + if (!settings.inline) { + self.getElement().style.visibility = self.orgVisibility; + } + + // Setup iframe body + if (!skipWrite && !settings.content_editable) { + doc.open(); + doc.write(self.iframeHTML); + doc.close(); + } + + if (settings.content_editable) { + self.on('remove', function() { + var bodyEl = this.getBody(); + + DOM.removeClass(bodyEl, 'mce-content-body'); + DOM.removeClass(bodyEl, 'mce-edit-focus'); + DOM.setAttrib(bodyEl, 'tabIndex', null); + DOM.setAttrib(bodyEl, 'contentEditable', null); + }); + + DOM.addClass(targetElm, 'mce-content-body'); + targetElm.tabIndex = -1; + self.contentDocument = doc = settings.content_document || document; + self.contentWindow = settings.content_window || window; + self.bodyElement = targetElm; + + // Prevent leak in IE + settings.content_document = settings.content_window = null; + + // TODO: Fix this + settings.root_name = targetElm.nodeName.toLowerCase(); + } + + // It will not steal focus while setting contentEditable + body = self.getBody(); + body.disabled = true; + + if (!settings.readonly) { + if (self.inline && DOM.getStyle(body, 'position', true) == 'static') { + body.style.position = 'relative'; + } + + body.contentEditable = self.getParam('content_editable_state', true); + } + + body.disabled = false; + + /** + * Schema instance, enables you to validate elements and it's children. + * + * @property schema + * @type tinymce.html.Schema + */ + self.schema = new Schema(settings); + + /** + * DOM instance for the editor. + * + * @property dom + * @type tinymce.dom.DOMUtils + * @example + * // Adds a class to all paragraphs within the editor + * tinymce.activeEditor.dom.addClass(tinymce.activeEditor.dom.select('p'), 'someclass'); + */ + self.dom = new DOMUtils(doc, { + keep_values: true, + url_converter: self.convertURL, + url_converter_scope: self, + hex_colors: settings.force_hex_style_colors, + class_filter: settings.class_filter, + update_styles: true, + root_element: settings.content_editable ? self.id : null, + collect: settings.content_editable, + schema: self.schema, + onSetAttrib: function(e) { + self.fire('SetAttrib', e); + } + }); + + /** + * HTML parser will be used when contents is inserted into the editor. + * + * @property parser + * @type tinymce.html.DomParser + */ + self.parser = new DomParser(settings, self.schema); + + // Convert src and href into data-mce-src, data-mce-href and data-mce-style + self.parser.addAttributeFilter('src,href,style', function(nodes, name) { + var i = nodes.length, node, dom = self.dom, value, internalName; + + while (i--) { + node = nodes[i]; + value = node.attr(name); + internalName = 'data-mce-' + name; + + // Add internal attribute if we need to we don't on a refresh of the document + if (!node.attributes.map[internalName]) { + if (name === "style") { + node.attr(internalName, dom.serializeStyle(dom.parseStyle(value), node.name)); + } else { + node.attr(internalName, self.convertURL(value, name, node.name)); + } + } + } + }); + + // Keep scripts from executing + self.parser.addNodeFilter('script', function(nodes) { + var i = nodes.length, node; + + while (i--) { + node = nodes[i]; + node.attr('type', 'mce-' + (node.attr('type') || 'text/javascript')); + } + }); + + self.parser.addNodeFilter('#cdata', function(nodes) { + var i = nodes.length, node; + + while (i--) { + node = nodes[i]; + node.type = 8; + node.name = '#comment'; + node.value = '[CDATA[' + node.value + ']]'; + } + }); + + self.parser.addNodeFilter('p,h1,h2,h3,h4,h5,h6,div', function(nodes) { + var i = nodes.length, node, nonEmptyElements = self.schema.getNonEmptyElements(); + + while (i--) { + node = nodes[i]; + + if (node.isEmpty(nonEmptyElements)) { + node.empty().append(new Node('br', 1)).shortEnded = true; + } + } + }); + + /** + * DOM serializer for the editor. Will be used when contents is extracted from the editor. + * + * @property serializer + * @type tinymce.dom.Serializer + * @example + * // Serializes the first paragraph in the editor into a string + * tinymce.activeEditor.serializer.serialize(tinymce.activeEditor.dom.select('p')[0]); + */ + self.serializer = new DomSerializer(settings, self); + + /** + * Selection instance for the editor. + * + * @property selection + * @type tinymce.dom.Selection + * @example + * // Sets some contents to the current selection in the editor + * tinymce.activeEditor.selection.setContent('Some contents'); + * + * // Gets the current selection + * alert(tinymce.activeEditor.selection.getContent()); + * + * // Selects the first paragraph found + * tinymce.activeEditor.selection.select(tinymce.activeEditor.dom.select('p')[0]); + */ + self.selection = new Selection(self.dom, self.getWin(), self.serializer, self); + + /** + * Formatter instance. + * + * @property formatter + * @type tinymce.Formatter + */ + self.formatter = new Formatter(self); + + /** + * Undo manager instance, responsible for handling undo levels. + * + * @property undoManager + * @type tinymce.UndoManager + * @example + * // Undoes the last modification to the editor + * tinymce.activeEditor.undoManager.undo(); + */ + self.undoManager = new UndoManager(self); + + self.forceBlocks = new ForceBlocks(self); + self.enterKey = new EnterKey(self); + self.editorCommands = new EditorCommands(self); + + self.fire('PreInit'); + + if (!settings.browser_spellcheck && !settings.gecko_spellcheck) { + doc.body.spellcheck = false; // Gecko + DOM.setAttrib(body, "spellcheck", "false"); + } + + self.fire('PostRender'); + + self.quirks = Quirks(self); + + if (settings.directionality) { + body.dir = settings.directionality; + } + + if (settings.nowrap) { + body.style.whiteSpace = "nowrap"; + } + + if (settings.protect) { + self.on('BeforeSetContent', function(e) { + each(settings.protect, function(pattern) { + e.content = e.content.replace(pattern, function(str) { + return '<!--mce:protected ' + escape(str) + '-->'; + }); + }); + }); + } + + self.on('SetContent', function() { + self.addVisual(self.getBody()); + }); + + // Remove empty contents + if (settings.padd_empty_editor) { + self.on('PostProcess', function(e) { + e.content = e.content.replace(/^(<p[^>]*>( | |\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/, ''); + }); + } + + self.load({initial: true, format: 'html'}); + self.startContent = self.getContent({format: 'raw'}); + + /** + * Is set to true after the editor instance has been initialized + * + * @property initialized + * @type Boolean + * @example + * function isEditorInitialized(editor) { + * return editor && editor.initialized; + * } + */ + self.initialized = true; + + each(self._pendingNativeEvents, function(name) { + self.dom.bind(getEventTarget(self, name), name, function(e) { + self.fire(e.type, e); + }); + }); + + self.fire('init'); + self.focus(true); + self.nodeChanged({initial: true}); + self.execCallback('init_instance_callback', self); + + // Add editor specific CSS styles + if (self.contentStyles.length > 0) { + contentCssText = ''; + + each(self.contentStyles, function(style) { + contentCssText += style + "\r\n"; + }); + + self.dom.addStyle(contentCssText); + } + + // Load specified content CSS last + each(self.contentCSS, function(cssUrl) { + if (!self.loadedCSS[cssUrl]) { + self.dom.loadCSS(cssUrl); + self.loadedCSS[cssUrl] = true; + } + }); + + // Handle auto focus + if (settings.auto_focus) { + setTimeout(function () { + var ed = self.editorManager.get(settings.auto_focus); + + ed.selection.select(ed.getBody(), 1); + ed.selection.collapse(1); + ed.getBody().focus(); + ed.getWin().focus(); + }, 100); + } + + // Clean up references for IE + targetElm = doc = body = null; + }, + + /** + * Focuses/activates the editor. This will set this editor as the activeEditor in the tinymce collection + * it will also place DOM focus inside the editor. + * + * @method focus + * @param {Boolean} skip_focus Skip DOM focus. Just set is as the active editor. + */ + focus: function(skip_focus) { + var oed, self = this, selection = self.selection, contentEditable = self.settings.content_editable, rng; + var controlElm, doc = self.getDoc(), body; + + if (!skip_focus) { + // Get selected control element + rng = selection.getRng(); + if (rng.item) { + controlElm = rng.item(0); + } + + self._refreshContentEditable(); + + // Focus the window iframe + if (!contentEditable) { + // WebKit needs this call to fire focusin event properly see #5948 + // But Opera pre Blink engine will produce an empty selection so skip Opera + if (!Env.opera) { + self.getBody().focus(); + } + + self.getWin().focus(); + } + + // Focus the body as well since it's contentEditable + if (isGecko || contentEditable) { + body = self.getBody(); + + // Check for setActive since it doesn't scroll to the element + if (body.setActive && Env.ie < 11) { + body.setActive(); + } else { + body.focus(); + } + + if (contentEditable) { + selection.normalize(); + } + } + + // Restore selected control element + // This is needed when for example an image is selected within a + // layer a call to focus will then remove the control selection + if (controlElm && controlElm.ownerDocument == doc) { + rng = doc.body.createControlRange(); + rng.addElement(controlElm); + rng.select(); + } + } + + if (self.editorManager.activeEditor != self) { + if ((oed = self.editorManager.activeEditor)) { + oed.fire('deactivate', {relatedTarget: self}); + } + + self.fire('activate', {relatedTarget: oed}); + } + + self.editorManager.activeEditor = self; + }, + + /** + * Executes a legacy callback. This method is useful to call old 2.x option callbacks. + * There new event model is a better way to add callback so this method might be removed in the future. + * + * @method execCallback + * @param {String} name Name of the callback to execute. + * @return {Object} Return value passed from callback function. + */ + execCallback: function(name) { + var self = this, callback = self.settings[name], scope; + + if (!callback) { + return; + } + + // Look through lookup + if (self.callbackLookup && (scope = self.callbackLookup[name])) { + callback = scope.func; + scope = scope.scope; + } + + if (typeof(callback) === 'string') { + scope = callback.replace(/\.\w+$/, ''); + scope = scope ? resolve(scope) : 0; + callback = resolve(callback); + self.callbackLookup = self.callbackLookup || {}; + self.callbackLookup[name] = {func: callback, scope: scope}; + } + + return callback.apply(scope || self, Array.prototype.slice.call(arguments, 1)); + }, + + /** + * Translates the specified string by replacing variables with language pack items it will also check if there is + * a key mathcin the input. + * + * @method translate + * @param {String} text String to translate by the language pack data. + * @return {String} Translated string. + */ + translate: function(text) { + var lang = this.settings.language || 'en', i18n = this.editorManager.i18n; + + if (!text) { + return ''; + } + + return i18n.data[lang + '.' + text] || text.replace(/\{\#([^\}]+)\}/g, function(a, b) { + return i18n.data[lang + '.' + b] || '{#' + b + '}'; + }); + }, + + /** + * Returns a language pack item by name/key. + * + * @method getLang + * @param {String} name Name/key to get from the language pack. + * @param {String} defaultVal Optional default value to retrive. + */ + getLang: function(name, defaultVal) { + return ( + this.editorManager.i18n.data[(this.settings.language || 'en') + '.' + name] || + (defaultVal !== undefined ? defaultVal : '{#' + name + '}') + ); + }, + + /** + * Returns a configuration parameter by name. + * + * @method getParam + * @param {String} name Configruation parameter to retrive. + * @param {String} defaultVal Optional default value to return. + * @param {String} type Optional type parameter. + * @return {String} Configuration parameter value or default value. + * @example + * // Returns a specific config value from the currently active editor + * var someval = tinymce.activeEditor.getParam('myvalue'); + * + * // Returns a specific config value from a specific editor instance by id + * var someval2 = tinymce.get('my_editor').getParam('myvalue'); + */ + getParam: function(name, defaultVal, type) { + var value = name in this.settings ? this.settings[name] : defaultVal, output; + + if (type === 'hash') { + output = {}; + + if (typeof(value) === 'string') { + each(value.indexOf('=') > 0 ? value.split(/[;,](?![^=;,]*(?:[;,]|$))/) : value.split(','), function(value) { + value = value.split('='); + + if (value.length > 1) { + output[trim(value[0])] = trim(value[1]); + } else { + output[trim(value[0])] = trim(value); + } + }); + } else { + output = value; + } + + return output; + } + + return value; + }, + + /** + * Distpaches out a onNodeChange event to all observers. This method should be called when you + * need to update the UI states or element path etc. + * + * @method nodeChanged + */ + nodeChanged: function() { + var self = this, selection = self.selection, node, parents, root; + + // Fix for bug #1896577 it seems that this can not be fired while the editor is loading + if (self.initialized && !self.settings.disable_nodechange && !self.settings.readonly) { + // Get start node + root = self.getBody(); + node = selection.getStart() || root; + node = ie && node.ownerDocument != self.getDoc() ? self.getBody() : node; // Fix for IE initial state + + // Edge case for <p>|<img></p> + if (node.nodeName == 'IMG' && selection.isCollapsed()) { + node = node.parentNode; + } + + // Get parents and add them to object + parents = []; + self.dom.getParent(node, function(node) { + if (node === root) { + return true; + } + + parents.push(node); + }); + + self.fire('NodeChange', {element: node, parents: parents}); + } + }, + + /** + * Adds a button that later gets created by the theme in the editors toolbars. + * + * @method addButton + * @param {String} name Button name to add. + * @param {Object} settings Settings object with title, cmd etc. + * @example + * // Adds a custom button to the editor that inserts contents when clicked + * tinymce.init({ + * ... + * + * toolbar: 'example' + * + * setup: function(ed) { + * ed.addButton('example', { + * title: 'My title', + * image: '../js/tinymce/plugins/example/img/example.gif', + * onclick: function() { + * ed.insertContent('Hello world!!'); + * } + * }); + * } + * }); + */ + addButton: function(name, settings) { + var self = this; + + if (settings.cmd) { + settings.onclick = function() { + self.execCommand(settings.cmd); + }; + } + + if (!settings.text && !settings.icon) { + settings.icon = name; + } + + self.buttons = self.buttons || {}; + settings.tooltip = settings.tooltip || settings.title; + self.buttons[name] = settings; + }, + + /** + * Adds a menu item to be used in the menus of the theme. There might be multiple instances + * of this menu item for example it might be used in the main menus of the theme but also in + * the context menu so make sure that it's self contained and supports multiple instances. + * + * @method addMenuItem + * @param {String} name Menu item name to add. + * @param {Object} settings Settings object with title, cmd etc. + * @example + * // Adds a custom menu item to the editor that inserts contents when clicked + * // The context option allows you to add the menu item to an existing default menu + * tinymce.init({ + * ... + * + * setup: function(ed) { + * ed.addMenuItem('example', { + * text: 'My menu item', + * context: 'tools', + * onclick: function() { + * ed.insertContent('Hello world!!'); + * } + * }); + * } + * }); + */ + addMenuItem: function(name, settings) { + var self = this; + + if (settings.cmd) { + settings.onclick = function() { + self.execCommand(settings.cmd); + }; + } + + self.menuItems = self.menuItems || {}; + self.menuItems[name] = settings; + }, + + /** + * Adds a custom command to the editor, you can also override existing commands with this method. + * The command that you add can be executed with execCommand. + * + * @method addCommand + * @param {String} name Command name to add/override. + * @param {addCommandCallback} callback Function to execute when the command occurs. + * @param {Object} scope Optional scope to execute the function in. + * @example + * // Adds a custom command that later can be executed using execCommand + * tinymce.init({ + * ... + * + * setup: function(ed) { + * // Register example command + * ed.addCommand('mycommand', function(ui, v) { + * ed.windowManager.alert('Hello world!! Selection: ' + ed.selection.getContent({format: 'text'})); + * }); + * } + * }); + */ + addCommand: function(name, callback, scope) { + /** + * Callback function that gets called when a command is executed. + * + * @callback addCommandCallback + * @param {Boolean} ui Display UI state true/false. + * @param {Object} value Optional value for command. + * @return {Boolean} True/false state if the command was handled or not. + */ + this.execCommands[name] = {func: callback, scope: scope || this}; + }, + + /** + * Adds a custom query state command to the editor, you can also override existing commands with this method. + * The command that you add can be executed with queryCommandState function. + * + * @method addQueryStateHandler + * @param {String} name Command name to add/override. + * @param {addQueryStateHandlerCallback} callback Function to execute when the command state retrival occurs. + * @param {Object} scope Optional scope to execute the function in. + */ + addQueryStateHandler: function(name, callback, scope) { + /** + * Callback function that gets called when a queryCommandState is executed. + * + * @callback addQueryStateHandlerCallback + * @return {Boolean} True/false state if the command is enabled or not like is it bold. + */ + this.queryStateCommands[name] = {func: callback, scope: scope || this}; + }, + + /** + * Adds a custom query value command to the editor, you can also override existing commands with this method. + * The command that you add can be executed with queryCommandValue function. + * + * @method addQueryValueHandler + * @param {String} name Command name to add/override. + * @param {addQueryValueHandlerCallback} callback Function to execute when the command value retrival occurs. + * @param {Object} scope Optional scope to execute the function in. + */ + addQueryValueHandler: function(name, callback, scope) { + /** + * Callback function that gets called when a queryCommandValue is executed. + * + * @callback addQueryValueHandlerCallback + * @return {Object} Value of the command or undefined. + */ + this.queryValueCommands[name] = {func: callback, scope: scope || this}; + }, + + /** + * Adds a keyboard shortcut for some command or function. + * + * @method addShortcut + * @param {String} pattern Shortcut pattern. Like for example: ctrl+alt+o. + * @param {String} desc Text description for the command. + * @param {String/Function} cmdFunc Command name string or function to execute when the key is pressed. + * @param {Object} sc Optional scope to execute the function in. + * @return {Boolean} true/false state if the shortcut was added or not. + */ + addShortcut: function(pattern, desc, cmdFunc, scope) { + this.shortcuts.add(pattern, desc, cmdFunc, scope); + }, + + /** + * Executes a command on the current instance. These commands can be TinyMCE internal commands prefixed with "mce" or + * they can be build in browser commands such as "Bold". A compleate list of browser commands is available on MSDN or Mozilla.org. + * This function will dispatch the execCommand function on each plugin, theme or the execcommand_callback option if none of these + * return true it will handle the command as a internal browser command. + * + * @method execCommand + * @param {String} cmd Command name to execute, for example mceLink or Bold. + * @param {Boolean} ui True/false state if a UI (dialog) should be presented or not. + * @param {mixed} value Optional command value, this can be anything. + * @param {Object} a Optional arguments object. + */ + execCommand: function(cmd, ui, value, args) { + var self = this, state = 0, cmdItem; + + if (!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(cmd) && (!args || !args.skip_focus)) { + self.focus(); + } + + args = extend({}, args); + args = self.fire('BeforeExecCommand', {command: cmd, ui: ui, value: value}); + if (args.isDefaultPrevented()) { + return false; + } + + // Registred commands + if ((cmdItem = self.execCommands[cmd])) { + // Fall through on true + if (cmdItem.func.call(cmdItem.scope, ui, value) !== true) { + self.fire('ExecCommand', {command: cmd, ui: ui, value: value}); + return true; + } + } + + // Plugin commands + each(self.plugins, function(p) { + if (p.execCommand && p.execCommand(cmd, ui, value)) { + self.fire('ExecCommand', {command: cmd, ui: ui, value: value}); + state = true; + return false; + } + }); + + if (state) { + return state; + } + + // Theme commands + if (self.theme && self.theme.execCommand && self.theme.execCommand(cmd, ui, value)) { + self.fire('ExecCommand', {command: cmd, ui: ui, value: value}); + return true; + } + + // Editor commands + if (self.editorCommands.execCommand(cmd, ui, value)) { + self.fire('ExecCommand', {command: cmd, ui: ui, value: value}); + return true; + } + + // Browser commands + self.getDoc().execCommand(cmd, ui, value); + self.fire('ExecCommand', {command: cmd, ui: ui, value: value}); + }, + + /** + * Returns a command specific state, for example if bold is enabled or not. + * + * @method queryCommandState + * @param {string} cmd Command to query state from. + * @return {Boolean} Command specific state, for example if bold is enabled or not. + */ + queryCommandState: function(cmd) { + var self = this, queryItem, returnVal; + + // Is hidden then return undefined + if (self._isHidden()) { + return; + } + + // Registred commands + if ((queryItem = self.queryStateCommands[cmd])) { + returnVal = queryItem.func.call(queryItem.scope); + + // Fall though on true + if (returnVal !== true) { + return returnVal; + } + } + + // Editor commands + returnVal = self.editorCommands.queryCommandState(cmd); + if (returnVal !== -1) { + return returnVal; + } + + // Browser commands + try { + return self.getDoc().queryCommandState(cmd); + } catch (ex) { + // Fails sometimes see bug: 1896577 + } + }, + + /** + * Returns a command specific value, for example the current font size. + * + * @method queryCommandValue + * @param {string} cmd Command to query value from. + * @return {Object} Command specific value, for example the current font size. + */ + queryCommandValue: function(cmd) { + var self = this, queryItem, returnVal; + + // Is hidden then return undefined + if (self._isHidden()) { + return; + } + + // Registred commands + if ((queryItem = self.queryValueCommands[cmd])) { + returnVal = queryItem.func.call(queryItem.scope); + + // Fall though on true + if (returnVal !== true) { + return returnVal; + } + } + + // Editor commands + returnVal = self.editorCommands.queryCommandValue(cmd); + if (returnVal !== undefined) { + return returnVal; + } + + // Browser commands + try { + return self.getDoc().queryCommandValue(cmd); + } catch (ex) { + // Fails sometimes see bug: 1896577 + } + }, + + /** + * Shows the editor and hides any textarea/div that the editor is supposed to replace. + * + * @method show + */ + show: function() { + var self = this; + + DOM.show(self.getContainer()); + DOM.hide(self.id); + self.load(); + self.fire('show'); + }, + + /** + * Hides the editor and shows any textarea/div that the editor is supposed to replace. + * + * @method hide + */ + hide: function() { + var self = this, doc = self.getDoc(); + + // Fixed bug where IE has a blinking cursor left from the editor + if (ie && doc && !self.inline) { + doc.execCommand('SelectAll'); + } + + // We must save before we hide so Safari doesn't crash + self.save(); + + // defer the call to hide to prevent an IE9 crash #4921 + DOM.hide(self.getContainer()); + DOM.setStyle(self.id, 'display', self.orgDisplay); + self.fire('hide'); + }, + + /** + * Returns true/false if the editor is hidden or not. + * + * @method isHidden + * @return {Boolean} True/false if the editor is hidden or not. + */ + isHidden: function() { + return !DOM.isHidden(this.id); + }, + + /** + * Sets the progress state, this will display a throbber/progess for the editor. + * This is ideal for asycronous operations like an AJAX save call. + * + * @method setProgressState + * @param {Boolean} state Boolean state if the progress should be shown or hidden. + * @param {Number} time Optional time to wait before the progress gets shown. + * @return {Boolean} Same as the input state. + * @example + * // Show progress for the active editor + * tinymce.activeEditor.setProgressState(true); + * + * // Hide progress for the active editor + * tinymce.activeEditor.setProgressState(false); + * + * // Show progress after 3 seconds + * tinymce.activeEditor.setProgressState(true, 3000); + */ + setProgressState: function(state, time) { + this.fire('ProgressState', {state: state, time: time}); + }, + + /** + * Loads contents from the textarea or div element that got converted into an editor instance. + * This method will move the contents from that textarea or div into the editor by using setContent + * so all events etc that method has will get dispatched as well. + * + * @method load + * @param {Object} args Optional content object, this gets passed around through the whole load process. + * @return {String} HTML string that got set into the editor. + */ + load: function(args) { + var self = this, elm = self.getElement(), html; + + if (elm) { + args = args || {}; + args.load = true; + + html = self.setContent(elm.value !== undefined ? elm.value : elm.innerHTML, args); + args.element = elm; + + if (!args.no_events) { + self.fire('LoadContent', args); + } + + args.element = elm = null; + + return html; + } + }, + + /** + * Saves the contents from a editor out to the textarea or div element that got converted into an editor instance. + * This method will move the HTML contents from the editor into that textarea or div by getContent + * so all events etc that method has will get dispatched as well. + * + * @method save + * @param {Object} args Optional content object, this gets passed around through the whole save process. + * @return {String} HTML string that got set into the textarea/div. + */ + save: function(args) { + var self = this, elm = self.getElement(), html, form; + + if (!elm || !self.initialized) { + return; + } + + args = args || {}; + args.save = true; + + args.element = elm; + html = args.content = self.getContent(args); + + if (!args.no_events) { + self.fire('SaveContent', args); + } + + html = args.content; + + if (!/TEXTAREA|INPUT/i.test(elm.nodeName)) { + // Update DIV element when not in inline mode + if (!self.inline) { + elm.innerHTML = html; + } + + // Update hidden form element + if ((form = DOM.getParent(self.id, 'form'))) { + each(form.elements, function(elm) { + if (elm.name == self.id) { + elm.value = html; + return false; + } + }); + } + } else { + elm.value = html; + } + + args.element = elm = null; + + if (args.set_dirty !== false) { + self.isNotDirty = true; + } + + return html; + }, + + /** + * Sets the specified content to the editor instance, this will cleanup the content before it gets set using + * the different cleanup rules options. + * + * @method setContent + * @param {String} content Content to set to editor, normally HTML contents but can be other formats as well. + * @param {Object} args Optional content object, this gets passed around through the whole set process. + * @return {String} HTML string that got set into the editor. + * @example + * // Sets the HTML contents of the activeEditor editor + * tinymce.activeEditor.setContent('<span>some</span> html'); + * + * // Sets the raw contents of the activeEditor editor + * tinymce.activeEditor.setContent('<span>some</span> html', {format: 'raw'}); + * + * // Sets the content of a specific editor (my_editor in this example) + * tinymce.get('my_editor').setContent(data); + * + * // Sets the bbcode contents of the activeEditor editor if the bbcode plugin was added + * tinymce.activeEditor.setContent('[b]some[/b] html', {format: 'bbcode'}); + */ + setContent: function(content, args) { + var self = this, body = self.getBody(), forcedRootBlockName; + + // Setup args object + args = args || {}; + args.format = args.format || 'html'; + args.set = true; + args.content = content; + + // Do preprocessing + if (!args.no_events) { + self.fire('BeforeSetContent', args); + } + + content = args.content; + + // Padd empty content in Gecko and Safari. Commands will otherwise fail on the content + // It will also be impossible to place the caret in the editor unless there is a BR element present + if (content.length === 0 || /^\s+$/.test(content)) { + forcedRootBlockName = self.settings.forced_root_block; + + // Check if forcedRootBlock is configured and that the block is a valid child of the body + if (forcedRootBlockName && self.schema.isValidChild(body.nodeName.toLowerCase(), forcedRootBlockName.toLowerCase())) { + // Padd with bogus BR elements on modern browsers and IE 7 and 8 since they don't render empty P tags properly + content = ie && ie < 11 ? '' : '<br data-mce-bogus="1">'; + content = self.dom.createHTML(forcedRootBlockName, self.settings.forced_root_block_attrs, content); + } else if (!ie) { + // We need to add a BR when forced_root_block is disabled on non IE browsers to place the caret + content = '<br data-mce-bogus="1">'; + } + + body.innerHTML = content; + + self.fire('SetContent', args); + } else { + // Parse and serialize the html + if (args.format !== 'raw') { + content = new Serializer({}, self.schema).serialize( + self.parser.parse(content, {isRootContent: true}) + ); + } + + // Set the new cleaned contents to the editor + args.content = trim(content); + self.dom.setHTML(body, args.content); + + // Do post processing + if (!args.no_events) { + self.fire('SetContent', args); + } + + // Don't normalize selection if the focused element isn't the body in + // content editable mode since it will steal focus otherwise + /*if (!self.settings.content_editable || document.activeElement === self.getBody()) { + self.selection.normalize(); + }*/ + } + + return args.content; + }, + + /** + * Gets the content from the editor instance, this will cleanup the content before it gets returned using + * the different cleanup rules options. + * + * @method getContent + * @param {Object} args Optional content object, this gets passed around through the whole get process. + * @return {String} Cleaned content string, normally HTML contents. + * @example + * // Get the HTML contents of the currently active editor + * console.debug(tinymce.activeEditor.getContent()); + * + * // Get the raw contents of the currently active editor + * tinymce.activeEditor.getContent({format: 'raw'}); + * + * // Get content of a specific editor: + * tinymce.get('content id').getContent() + */ + getContent: function(args) { + var self = this, content, body = self.getBody(); + + // Setup args object + args = args || {}; + args.format = args.format || 'html'; + args.get = true; + args.getInner = true; + + // Do preprocessing + if (!args.no_events) { + self.fire('BeforeGetContent', args); + } + + // Get raw contents or by default the cleaned contents + if (args.format == 'raw') { + content = body.innerHTML; + } else if (args.format == 'text') { + content = body.innerText || body.textContent; + } else { + content = self.serializer.serialize(body, args); + } + + // Trim whitespace in beginning/end of HTML + if (args.format != 'text') { + args.content = trim(content); + } else { + args.content = content; + } + + // Do post processing + if (!args.no_events) { + self.fire('GetContent', args); + } + + return args.content; + }, + + /** + * Inserts content at caret position. + * + * @method insertContent + * @param {String} content Content to insert. + */ + insertContent: function(content) { + this.execCommand('mceInsertContent', false, content); + }, + + /** + * Returns true/false if the editor is dirty or not. It will get dirty if the user has made modifications to the contents. + * + * @method isDirty + * @return {Boolean} True/false if the editor is dirty or not. It will get dirty if the user has made modifications to the contents. + * @example + * if (tinymce.activeEditor.isDirty()) + * alert("You must save your contents."); + */ + isDirty: function() { + return !this.isNotDirty; + }, + + /** + * Returns the editors container element. The container element wrappes in + * all the elements added to the page for the editor. Such as UI, iframe etc. + * + * @method getContainer + * @return {Element} HTML DOM element for the editor container. + */ + getContainer: function() { + var self = this; + + if (!self.container) { + self.container = DOM.get(self.editorContainer || self.id + '_parent'); + } + + return self.container; + }, + + /** + * Returns the editors content area container element. The this element is the one who + * holds the iframe or the editable element. + * + * @method getContentAreaContainer + * @return {Element} HTML DOM element for the editor area container. + */ + getContentAreaContainer: function() { + return this.contentAreaContainer; + }, + + /** + * Returns the target element/textarea that got replaced with a TinyMCE editor instance. + * + * @method getElement + * @return {Element} HTML DOM element for the replaced element. + */ + getElement: function() { + return DOM.get(this.settings.content_element || this.id); + }, + + /** + * Returns the iframes window object. + * + * @method getWin + * @return {Window} Iframe DOM window object. + */ + getWin: function() { + var self = this, elm; + + if (!self.contentWindow) { + elm = DOM.get(self.id + "_ifr"); + + if (elm) { + self.contentWindow = elm.contentWindow; + } + } + + return self.contentWindow; + }, + + /** + * Returns the iframes document object. + * + * @method getDoc + * @return {Document} Iframe DOM document object. + */ + getDoc: function() { + var self = this, win; + + if (!self.contentDocument) { + win = self.getWin(); + + if (win) { + self.contentDocument = win.document; + } + } + + return self.contentDocument; + }, + + /** + * Returns the iframes body element. + * + * @method getBody + * @return {Element} Iframe body element. + */ + getBody: function() { + return this.bodyElement || this.getDoc().body; + }, + + /** + * URL converter function this gets executed each time a user adds an img, a or + * any other element that has a URL in it. This will be called both by the DOM and HTML + * manipulation functions. + * + * @method convertURL + * @param {string} url URL to convert. + * @param {string} name Attribute name src, href etc. + * @param {string/HTMLElement} elm Tag name or HTML DOM element depending on HTML or DOM insert. + * @return {string} Converted URL string. + */ + convertURL: function(url, name, elm) { + var self = this, settings = self.settings; + + // Use callback instead + if (settings.urlconverter_callback) { + return self.execCallback('urlconverter_callback', url, elm, true, name); + } + + // Don't convert link href since thats the CSS files that gets loaded into the editor also skip local file URLs + if (!settings.convert_urls || (elm && elm.nodeName == 'LINK') || url.indexOf('file:') === 0 || url.length === 0) { + return url; + } + + // Convert to relative + if (settings.relative_urls) { + return self.documentBaseURI.toRelative(url); + } + + // Convert to absolute + url = self.documentBaseURI.toAbsolute(url, settings.remove_script_host); + + return url; + }, + + /** + * Adds visual aid for tables, anchors etc so they can be more easily edited inside the editor. + * + * @method addVisual + * @param {Element} elm Optional root element to loop though to find tables etc that needs the visual aid. + */ + addVisual: function(elm) { + var self = this, settings = self.settings, dom = self.dom, cls; + + elm = elm || self.getBody(); + + if (self.hasVisual === undefined) { + self.hasVisual = settings.visual; + } + + each(dom.select('table,a', elm), function(elm) { + var value; + + switch (elm.nodeName) { + case 'TABLE': + cls = settings.visual_table_class || 'mce-item-table'; + value = dom.getAttrib(elm, 'border'); + + if (!value || value == '0') { + if (self.hasVisual) { + dom.addClass(elm, cls); + } else { + dom.removeClass(elm, cls); + } + } + + return; + + case 'A': + if (!dom.getAttrib(elm, 'href', false)) { + value = dom.getAttrib(elm, 'name') || elm.id; + cls = settings.visual_anchor_class || 'mce-item-anchor'; + + if (value) { + if (self.hasVisual) { + dom.addClass(elm, cls); + } else { + dom.removeClass(elm, cls); + } + } + } + + return; + } + }); + + self.fire('VisualAid', {element: elm, hasVisual: self.hasVisual}); + }, + + /** + * Removes the editor from the dom and tinymce collection. + * + * @method remove + */ + remove: function() { + var self = this; + + if (!self.removed) { + self.save(); + self.fire('remove'); + self.off(); + self.removed = 1; // Cancels post remove event execution + + // Remove any hidden input + if (self.hasHiddenInput) { + DOM.remove(self.getElement().nextSibling); + } + + DOM.setStyle(self.id, 'display', self.orgDisplay); + + // Don't clear the window or document if content editable + // is enabled since other instances might still be present + if (!self.settings.content_editable) { + Event.unbind(self.getWin()); + Event.unbind(self.getDoc()); + } + + var elm = self.getContainer(); + Event.unbind(self.getBody()); + Event.unbind(elm); + + self.editorManager.remove(self); + DOM.remove(elm); + self.destroy(); + } + }, + + bindNative: function(name) { + var self = this; + + if (self.settings.readonly) { + return; + } + + if (self.initialized) { + self.dom.bind(getEventTarget(self, name), name, function(e) { + self.fire(name, e); + }); + } else { + if (!self._pendingNativeEvents) { + self._pendingNativeEvents = [name]; + } else { + self._pendingNativeEvents.push(name); + } + } + }, + + unbindNative: function(name) { + var self = this; + + if (self.initialized) { + self.dom.unbind(name); + } + }, + + /** + * Destroys the editor instance by removing all events, element references or other resources + * that could leak memory. This method will be called automatically when the page is unloaded + * but you can also call it directly if you know what you are doing. + * + * @method destroy + * @param {Boolean} automatic Optional state if the destroy is an automatic destroy or user called one. + */ + destroy: function(automatic) { + var self = this, form; + + // One time is enough + if (self.destroyed) { + return; + } + + // If user manually calls destroy and not remove + // Users seems to have logic that calls destroy instead of remove + if (!automatic && !self.removed) { + self.remove(); + return; + } + + // We must unbind on Gecko since it would otherwise produce the pesky "attempt + // to run compile-and-go script on a cleared scope" message + if (automatic && isGecko) { + Event.unbind(self.getDoc()); + Event.unbind(self.getWin()); + Event.unbind(self.getBody()); + } + + if (!automatic) { + self.editorManager.off('beforeunload', self._beforeUnload); + + // Manual destroy + if (self.theme && self.theme.destroy) { + self.theme.destroy(); + } + + // Destroy controls, selection and dom + self.selection.destroy(); + self.dom.destroy(); + } + + form = self.formElement; + if (form) { + if (form._mceOldSubmit) { + form.submit = form._mceOldSubmit; + form._mceOldSubmit = null; + } + + DOM.unbind(form, 'submit reset', self.formEventDelegate); + } + + self.contentAreaContainer = self.formElement = self.container = self.editorContainer = null; + self.settings.content_element = self.bodyElement = self.contentDocument = self.contentWindow = null; + + if (self.selection) { + self.selection = self.selection.win = self.selection.dom = self.selection.dom.doc = null; + } + + self.destroyed = 1; + }, + + // Internal functions + + _refreshContentEditable: function() { + var self = this, body, parent; + + // Check if the editor was hidden and the re-initalize contentEditable mode by removing and adding the body again + if (self._isHidden()) { + body = self.getBody(); + parent = body.parentNode; + + parent.removeChild(body); + parent.appendChild(body); + + body.focus(); + } + }, + + _isHidden: function() { + var sel; + + if (!isGecko) { + return 0; + } + + // Weird, wheres that cursor selection? + sel = this.selection.getSel(); + return (!sel || !sel.rangeCount || sel.rangeCount === 0); + } + }; + + extend(Editor.prototype, Observable); + + return Editor; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/EditorCommands.js b/common/static/js/vendor/tinymce/js/tinymce/classes/EditorCommands.js new file mode 100755 index 00000000000..0192017d460 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/EditorCommands.js @@ -0,0 +1,721 @@ +/** + * EditorCommands.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class enables you to add custom editor commands and it contains + * overrides for native browser commands to address various bugs and issues. + * + * @class tinymce.EditorCommands + */ +define("tinymce/EditorCommands", [ + "tinymce/html/Serializer", + "tinymce/Env", + "tinymce/util/Tools" +], function(Serializer, Env, Tools) { + // Added for compression purposes + var each = Tools.each, extend = Tools.extend; + var map = Tools.map, inArray = Tools.inArray, explode = Tools.explode; + var isGecko = Env.gecko, isIE = Env.ie; + var TRUE = true, FALSE = false; + + return function(editor) { + var dom = editor.dom, + selection = editor.selection, + commands = {state: {}, exec: {}, value: {}}, + settings = editor.settings, + formatter = editor.formatter, + bookmark; + + /** + * Executes the specified command. + * + * @method execCommand + * @param {String} command Command to execute. + * @param {Boolean} ui Optional user interface state. + * @param {Object} value Optional value for command. + * @return {Boolean} true/false if the command was found or not. + */ + function execCommand(command, ui, value) { + var func; + + command = command.toLowerCase(); + if ((func = commands.exec[command])) { + func(command, ui, value); + return TRUE; + } + + return FALSE; + } + + /** + * Queries the current state for a command for example if the current selection is "bold". + * + * @method queryCommandState + * @param {String} command Command to check the state of. + * @return {Boolean/Number} true/false if the selected contents is bold or not, -1 if it's not found. + */ + function queryCommandState(command) { + var func; + + command = command.toLowerCase(); + if ((func = commands.state[command])) { + return func(command); + } + + return -1; + } + + /** + * Queries the command value for example the current fontsize. + * + * @method queryCommandValue + * @param {String} command Command to check the value of. + * @return {Object} Command value of false if it's not found. + */ + function queryCommandValue(command) { + var func; + + command = command.toLowerCase(); + if ((func = commands.value[command])) { + return func(command); + } + + return FALSE; + } + + /** + * Adds commands to the command collection. + * + * @method addCommands + * @param {Object} command_list Name/value collection with commands to add, the names can also be comma separated. + * @param {String} type Optional type to add, defaults to exec. Can be value or state as well. + */ + function addCommands(command_list, type) { + type = type || 'exec'; + + each(command_list, function(callback, command) { + each(command.toLowerCase().split(','), function(command) { + commands[type][command] = callback; + }); + }); + } + + // Expose public methods + extend(this, { + execCommand: execCommand, + queryCommandState: queryCommandState, + queryCommandValue: queryCommandValue, + addCommands: addCommands + }); + + // Private methods + + function execNativeCommand(command, ui, value) { + if (ui === undefined) { + ui = FALSE; + } + + if (value === undefined) { + value = null; + } + + return editor.getDoc().execCommand(command, ui, value); + } + + function isFormatMatch(name) { + return formatter.match(name); + } + + function toggleFormat(name, value) { + formatter.toggle(name, value ? {value: value} : undefined); + editor.nodeChanged(); + } + + function storeSelection(type) { + bookmark = selection.getBookmark(type); + } + + function restoreSelection() { + selection.moveToBookmark(bookmark); + } + + // Add execCommand overrides + addCommands({ + // Ignore these, added for compatibility + 'mceResetDesignMode,mceBeginUndoLevel': function() {}, + + // Add undo manager logic + 'mceEndUndoLevel,mceAddUndoLevel': function() { + editor.undoManager.add(); + }, + + 'Cut,Copy,Paste': function(command) { + var doc = editor.getDoc(), failed; + + // Try executing the native command + try { + execNativeCommand(command); + } catch (ex) { + // Command failed + failed = TRUE; + } + + // Present alert message about clipboard access not being available + if (failed || !doc.queryCommandSupported(command)) { + var msg = editor.translate( + "Your browser doesn't support direct access to the clipboard. " + + "Please use the Ctrl+X/C/V keyboard shortcuts instead." + ); + + if (Env.mac) { + msg = msg.replace(/Ctrl\+/g, '\u2318+'); + } + + editor.windowManager.alert(msg); + } + }, + + // Override unlink command + unlink: function() { + if (selection.isCollapsed()) { + var elm = selection.getNode(); + if (elm.tagName == 'A') { + editor.dom.remove(elm, true); + } + + return; + } + + formatter.remove("link"); + }, + + // Override justify commands to use the text formatter engine + 'JustifyLeft,JustifyCenter,JustifyRight,JustifyFull': function(command) { + var align = command.substring(7); + + if (align == 'full') { + align = 'justify'; + } + + // Remove all other alignments first + each('left,center,right,justify'.split(','), function(name) { + if (align != name) { + formatter.remove('align' + name); + } + }); + + toggleFormat('align' + align); + execCommand('mceRepaint'); + }, + + // Override list commands to fix WebKit bug + 'InsertUnorderedList,InsertOrderedList': function(command) { + var listElm, listParent; + + execNativeCommand(command); + + // WebKit produces lists within block elements so we need to split them + // we will replace the native list creation logic to custom logic later on + // TODO: Remove this when the list creation logic is removed + listElm = dom.getParent(selection.getNode(), 'ol,ul'); + if (listElm) { + listParent = listElm.parentNode; + + // If list is within a text block then split that block + if (/^(H[1-6]|P|ADDRESS|PRE)$/.test(listParent.nodeName)) { + storeSelection(); + dom.split(listParent, listElm); + restoreSelection(); + } + } + }, + + // Override commands to use the text formatter engine + 'Bold,Italic,Underline,Strikethrough,Superscript,Subscript': function(command) { + toggleFormat(command); + }, + + // Override commands to use the text formatter engine + 'ForeColor,HiliteColor,FontName': function(command, ui, value) { + toggleFormat(command, value); + }, + + FontSize: function(command, ui, value) { + var fontClasses, fontSizes; + + // Convert font size 1-7 to styles + if (value >= 1 && value <= 7) { + fontSizes = explode(settings.font_size_style_values); + fontClasses = explode(settings.font_size_classes); + + if (fontClasses) { + value = fontClasses[value - 1] || value; + } else { + value = fontSizes[value - 1] || value; + } + } + + toggleFormat(command, value); + }, + + RemoveFormat: function(command) { + formatter.remove(command); + }, + + mceBlockQuote: function() { + toggleFormat('blockquote'); + }, + + FormatBlock: function(command, ui, value) { + return toggleFormat(value || 'p'); + }, + + mceCleanup: function() { + var bookmark = selection.getBookmark(); + + editor.setContent(editor.getContent({cleanup: TRUE}), {cleanup: TRUE}); + + selection.moveToBookmark(bookmark); + }, + + mceRemoveNode: function(command, ui, value) { + var node = value || selection.getNode(); + + // Make sure that the body node isn't removed + if (node != editor.getBody()) { + storeSelection(); + editor.dom.remove(node, TRUE); + restoreSelection(); + } + }, + + mceSelectNodeDepth: function(command, ui, value) { + var counter = 0; + + dom.getParent(selection.getNode(), function(node) { + if (node.nodeType == 1 && counter++ == value) { + selection.select(node); + return FALSE; + } + }, editor.getBody()); + }, + + mceSelectNode: function(command, ui, value) { + selection.select(value); + }, + + mceInsertContent: function(command, ui, value) { + var parser, serializer, parentNode, rootNode, fragment, args; + var marker, rng, node, node2, bookmarkHtml; + + function trimOrPaddLeftRight(html) { + var rng, container, offset; + + rng = selection.getRng(true); + container = rng.startContainer; + offset = rng.startOffset; + + function hasSiblingText(siblingName) { + return container[siblingName] && container[siblingName].nodeType == 3; + } + + if (container.nodeType == 3) { + if (offset > 0) { + html = html.replace(/^ /, ' '); + } else if (!hasSiblingText('previousSibling')) { + html = html.replace(/^ /, ' '); + } + + if (offset < container.length) { + html = html.replace(/ (<br>|)$/, ' '); + } else if (!hasSiblingText('nextSibling')) { + html = html.replace(/( | )(<br>|)$/, ' '); + } + } + + return html; + } + + // Check for whitespace before/after value + if (/^ | $/.test(value)) { + value = trimOrPaddLeftRight(value); + } + + // Setup parser and serializer + parser = editor.parser; + serializer = new Serializer({}, editor.schema); + bookmarkHtml = '<span id="mce_marker" data-mce-type="bookmark">ÈB;</span>'; + + // Run beforeSetContent handlers on the HTML to be inserted + args = {content: value, format: 'html', selection: true}; + editor.fire('BeforeSetContent', args); + value = args.content; + + // Add caret at end of contents if it's missing + if (value.indexOf('{$caret}') == -1) { + value += '{$caret}'; + } + + // Replace the caret marker with a span bookmark element + value = value.replace(/\{\$caret\}/, bookmarkHtml); + + // If selection is at <body>|<p></p> then move it into <body><p>|</p> + rng = selection.getRng(); + var caretElement = rng.startContainer || (rng.parentElement ? rng.parentElement() : null); + var body = editor.getBody(); + if (caretElement === body && selection.isCollapsed()) { + if (dom.isBlock(body.firstChild) && dom.isEmpty(body.firstChild)) { + rng = dom.createRng(); + rng.setStart(body.firstChild, 0); + rng.setEnd(body.firstChild, 0); + selection.setRng(rng); + } + } + + // Insert node maker where we will insert the new HTML and get it's parent + if (!selection.isCollapsed()) { + editor.getDoc().execCommand('Delete', false, null); + } + + parentNode = selection.getNode(); + + // Parse the fragment within the context of the parent node + var parserArgs = {context: parentNode.nodeName.toLowerCase()}; + fragment = parser.parse(value, parserArgs); + + // Move the caret to a more suitable location + node = fragment.lastChild; + if (node.attr('id') == 'mce_marker') { + marker = node; + + for (node = node.prev; node; node = node.walk(true)) { + if (node.type == 3 || !dom.isBlock(node.name)) { + node.parent.insert(marker, node, node.name === 'br'); + break; + } + } + } + + // If parser says valid we can insert the contents into that parent + if (!parserArgs.invalid) { + value = serializer.serialize(fragment); + + // Check if parent is empty or only has one BR element then set the innerHTML of that parent + node = parentNode.firstChild; + node2 = parentNode.lastChild; + if (!node || (node === node2 && node.nodeName === 'BR')) { + dom.setHTML(parentNode, value); + } else { + selection.setContent(value); + } + } else { + // If the fragment was invalid within that context then we need + // to parse and process the parent it's inserted into + + // Insert bookmark node and get the parent + selection.setContent(bookmarkHtml); + parentNode = selection.getNode(); + rootNode = editor.getBody(); + + // Opera will return the document node when selection is in root + if (parentNode.nodeType == 9) { + parentNode = node = rootNode; + } else { + node = parentNode; + } + + // Find the ancestor just before the root element + while (node !== rootNode) { + parentNode = node; + node = node.parentNode; + } + + // Get the outer/inner HTML depending on if we are in the root and parser and serialize that + value = parentNode == rootNode ? rootNode.innerHTML : dom.getOuterHTML(parentNode); + value = serializer.serialize( + parser.parse( + // Need to replace by using a function since $ in the contents would otherwise be a problem + value.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i, function() { + return serializer.serialize(fragment); + }) + ) + ); + + // Set the inner/outer HTML depending on if we are in the root or not + if (parentNode == rootNode) { + dom.setHTML(rootNode, value); + } else { + dom.setOuterHTML(parentNode, value); + } + } + + marker = dom.get('mce_marker'); + selection.scrollIntoView(marker); + + // Move selection before marker and remove it + rng = dom.createRng(); + + // If previous sibling is a text node set the selection to the end of that node + node = marker.previousSibling; + if (node && node.nodeType == 3) { + rng.setStart(node, node.nodeValue.length); + + // TODO: Why can't we normalize on IE + if (!isIE) { + node2 = marker.nextSibling; + if (node2 && node2.nodeType == 3) { + node.appendData(node2.data); + node2.parentNode.removeChild(node2); + } + } + } else { + // If the previous sibling isn't a text node or doesn't exist set the selection before the marker node + rng.setStartBefore(marker); + rng.setEndBefore(marker); + } + + // Remove the marker node and set the new range + dom.remove(marker); + selection.setRng(rng); + + // Dispatch after event and add any visual elements needed + editor.fire('SetContent', args); + editor.addVisual(); + }, + + mceInsertRawHTML: function(command, ui, value) { + selection.setContent('tiny_mce_marker'); + editor.setContent( + editor.getContent().replace(/tiny_mce_marker/g, function() { + return value; + }) + ); + }, + + mceToggleFormat: function(command, ui, value) { + toggleFormat(value); + }, + + mceSetContent: function(command, ui, value) { + editor.setContent(value); + }, + + 'Indent,Outdent': function(command) { + var intentValue, indentUnit, value; + + // Setup indent level + intentValue = settings.indentation; + indentUnit = /[a-z%]+$/i.exec(intentValue); + intentValue = parseInt(intentValue, 10); + + if (!queryCommandState('InsertUnorderedList') && !queryCommandState('InsertOrderedList')) { + // If forced_root_blocks is set to false we don't have a block to indent so lets create a div + if (!settings.forced_root_block && !dom.getParent(selection.getNode(), dom.isBlock)) { + formatter.apply('div'); + } + + each(selection.getSelectedBlocks(), function(element) { + if (element.nodeName != "LI") { + var indentStyleName = editor.getParam('indent_use_margin', false) ? 'margin' : 'padding'; + + indentStyleName += dom.getStyle(element, 'direction', true) == 'rtl' ? 'Right' : 'Left'; + + if (command == 'outdent') { + value = Math.max(0, parseInt(element.style[indentStyleName] || 0, 10) - intentValue); + dom.setStyle(element, indentStyleName, value ? value + indentUnit : ''); + } else { + value = (parseInt(element.style[indentStyleName] || 0, 10) + intentValue) + indentUnit; + dom.setStyle(element, indentStyleName, value); + } + } + }); + } else { + execNativeCommand(command); + } + }, + + mceRepaint: function() { + if (isGecko) { + try { + storeSelection(TRUE); + + if (selection.getSel()) { + selection.getSel().selectAllChildren(editor.getBody()); + } + + selection.collapse(TRUE); + restoreSelection(); + } catch (ex) { + // Ignore + } + } + }, + + InsertHorizontalRule: function() { + editor.execCommand('mceInsertContent', false, '<hr />'); + }, + + mceToggleVisualAid: function() { + editor.hasVisual = !editor.hasVisual; + editor.addVisual(); + }, + + mceReplaceContent: function(command, ui, value) { + editor.execCommand('mceInsertContent', false, value.replace(/\{\$selection\}/g, selection.getContent({format: 'text'}))); + }, + + mceInsertLink: function(command, ui, value) { + var anchor; + + if (typeof(value) == 'string') { + value = {href: value}; + } + + anchor = dom.getParent(selection.getNode(), 'a'); + + // Spaces are never valid in URLs and it's a very common mistake for people to make so we fix it here. + value.href = value.href.replace(' ', '%20'); + + // Remove existing links if there could be child links or that the href isn't specified + if (!anchor || !value.href) { + formatter.remove('link'); + } + + // Apply new link to selection + if (value.href) { + formatter.apply('link', value, anchor); + } + }, + + selectAll: function() { + var root = dom.getRoot(), rng; + + if (selection.getRng().setStart) { + rng = dom.createRng(); + rng.setStart(root, 0); + rng.setEnd(root, root.childNodes.length); + selection.setRng(rng); + } else { + // IE will render it's own root level block elements and sometimes + // even put font elements in them when the user starts typing. So we need to + // move the selection to a more suitable element from this: + // <body>|<p></p></body> to this: <body><p>|</p></body> + rng = selection.getRng(); + if (!rng.item) { + rng.moveToElementText(root); + rng.select(); + } + } + }, + + "delete": function() { + execNativeCommand("Delete"); + + // Check if body is empty after the delete call if so then set the contents + // to an empty string and move the caret to any block produced by that operation + // this fixes the issue with root blocks not being properly produced after a delete call on IE + var body = editor.getBody(); + + if (dom.isEmpty(body)) { + editor.setContent(''); + + if (body.firstChild && dom.isBlock(body.firstChild)) { + editor.selection.setCursorLocation(body.firstChild, 0); + } else { + editor.selection.setCursorLocation(body, 0); + } + } + }, + + mceNewDocument: function() { + editor.setContent(''); + } + }); + + // Add queryCommandState overrides + addCommands({ + // Override justify commands + 'JustifyLeft,JustifyCenter,JustifyRight,JustifyFull': function(command) { + var name = 'align' + command.substring(7); + var nodes = selection.isCollapsed() ? [dom.getParent(selection.getNode(), dom.isBlock)] : selection.getSelectedBlocks(); + var matches = map(nodes, function(node) { + return !!formatter.matchNode(node, name); + }); + return inArray(matches, TRUE) !== -1; + }, + + 'Bold,Italic,Underline,Strikethrough,Superscript,Subscript': function(command) { + return isFormatMatch(command); + }, + + mceBlockQuote: function() { + return isFormatMatch('blockquote'); + }, + + Outdent: function() { + var node; + + if (settings.inline_styles) { + if ((node = dom.getParent(selection.getStart(), dom.isBlock)) && parseInt(node.style.paddingLeft, 10) > 0) { + return TRUE; + } + + if ((node = dom.getParent(selection.getEnd(), dom.isBlock)) && parseInt(node.style.paddingLeft, 10) > 0) { + return TRUE; + } + } + + return ( + queryCommandState('InsertUnorderedList') || + queryCommandState('InsertOrderedList') || + (!settings.inline_styles && !!dom.getParent(selection.getNode(), 'BLOCKQUOTE')) + ); + }, + + 'InsertUnorderedList,InsertOrderedList': function(command) { + var list = dom.getParent(selection.getNode(), 'ul,ol'); + + return list && + ( + command === 'insertunorderedlist' && list.tagName === 'UL' || + command === 'insertorderedlist' && list.tagName === 'OL' + ); + } + }, 'state'); + + // Add queryCommandValue overrides + addCommands({ + 'FontSize,FontName': function(command) { + var value = 0, parent; + + if ((parent = dom.getParent(selection.getNode(), 'span'))) { + if (command == 'fontsize') { + value = parent.style.fontSize; + } else { + value = parent.style.fontFamily.replace(/, /g, ',').replace(/[\'\"]/g, '').toLowerCase(); + } + } + + return value; + } + }, 'value'); + + // Add undo manager logic + addCommands({ + Undo: function() { + editor.undoManager.undo(); + }, + + Redo: function() { + editor.undoManager.redo(); + } + }); + }; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/EditorManager.js b/common/static/js/vendor/tinymce/js/tinymce/classes/EditorManager.js new file mode 100755 index 00000000000..bc3294c9764 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/EditorManager.js @@ -0,0 +1,574 @@ +/** + * EditorManager.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class used as a factory for manager for tinymce.Editor instances. + * + * @example + * tinymce.EditorManager.init({}); + * + * @class tinymce.EditorManager + * @mixes tinymce.util.Observable + * @static + */ +define("tinymce/EditorManager", [ + "tinymce/Editor", + "tinymce/dom/DOMUtils", + "tinymce/util/URI", + "tinymce/Env", + "tinymce/util/Tools", + "tinymce/util/Observable", + "tinymce/util/I18n", + "tinymce/FocusManager" +], function(Editor, DOMUtils, URI, Env, Tools, Observable, I18n, FocusManager) { + var DOM = DOMUtils.DOM; + var explode = Tools.explode, each = Tools.each, extend = Tools.extend; + var instanceCounter = 0, beforeUnloadDelegate; + + var EditorManager = { + /** + * Major version of TinyMCE build. + * + * @property majorVersion + * @type String + */ + majorVersion : '@@majorVersion@@', + + /** + * Minor version of TinyMCE build. + * + * @property minorVersion + * @type String + */ + minorVersion : '@@minorVersion@@', + + /** + * Release date of TinyMCE build. + * + * @property releaseDate + * @type String + */ + releaseDate: '@@releaseDate@@', + + /** + * Collection of editor instances. + * + * @property editors + * @type Object + * @example + * for (edId in tinymce.editors) + * tinymce.editors[edId].save(); + */ + editors: [], + + /** + * Collection of language pack data. + * + * @property i18n + * @type Object + */ + i18n: I18n, + + /** + * Currently active editor instance. + * + * @property activeEditor + * @type tinymce.Editor + * @example + * tinyMCE.activeEditor.selection.getContent(); + * tinymce.EditorManager.activeEditor.selection.getContent(); + */ + activeEditor: null, + + setup: function() { + var self = this, baseURL, documentBaseURL, suffix = "", preInit; + + // Get base URL for the current document + documentBaseURL = document.location.href.replace(/[\?#].*$/, '').replace(/[\/\\][^\/]+$/, ''); + if (!/[\/\\]$/.test(documentBaseURL)) { + documentBaseURL += '/'; + } + + // If tinymce is defined and has a base use that or use the old tinyMCEPreInit + preInit = window.tinymce || window.tinyMCEPreInit; + if (preInit) { + baseURL = preInit.base || preInit.baseURL; + suffix = preInit.suffix; + } else { + // Get base where the tinymce script is located + var scripts = document.getElementsByTagName('script'); + for (var i = 0; i < scripts.length; i++) { + var src = scripts[i].src; + + // Script types supported: + // tinymce.js tinymce.min.js tinymce.dev.js + // tinymce.jquery.js tinymce.jquery.min.js tinymce.jquery.dev.js + // tinymce.full.js tinymce.full.min.js tinymce.full.dev.js + if (/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(src)) { + if (src.indexOf('.min') != -1) { + suffix = '.min'; + } + + baseURL = src.substring(0, src.lastIndexOf('/')); + break; + } + } + } + + /** + * Base URL where the root directory if TinyMCE is located. + * + * @property baseURL + * @type String + */ + self.baseURL = new URI(documentBaseURL).toAbsolute(baseURL); + + /** + * Document base URL where the current document is located. + * + * @property documentBaseURL + * @type String + */ + self.documentBaseURL = documentBaseURL; + + /** + * Absolute baseURI for the installation path of TinyMCE. + * + * @property baseURI + * @type tinymce.util.URI + */ + self.baseURI = new URI(self.baseURL); + + /** + * Current suffix to add to each plugin/theme that gets loaded for example ".min". + * + * @property suffix + * @type String + */ + self.suffix = suffix; + + self.focusManager = new FocusManager(self); + }, + + /** + * Initializes a set of editors. This method will create editors based on various settings. + * + * @method init + * @param {Object} settings Settings object to be passed to each editor instance. + * @example + * // Initializes a editor using the longer method + * tinymce.EditorManager.init({ + * some_settings : 'some value' + * }); + * + * // Initializes a editor instance using the shorter version + * tinyMCE.init({ + * some_settings : 'some value' + * }); + */ + init: function(settings) { + var self = this, editors = [], editor; + + function createId(elm) { + var id = elm.id; + + // Use element id, or unique name or generate a unique id + if (!id) { + id = elm.name; + + if (id && !DOM.get(id)) { + id = elm.name; + } else { + // Generate unique name + id = DOM.uniqueId(); + } + + elm.setAttribute('id', id); + } + + return id; + } + + function execCallback(se, n, s) { + var f = se[n]; + + if (!f) { + return; + } + + return f.apply(s || this, Array.prototype.slice.call(arguments, 2)); + } + + function hasClass(n, c) { + return c.constructor === RegExp ? c.test(n.className) : DOM.hasClass(n, c); + } + + function readyHandler() { + var l, co; + + DOM.unbind(window, 'ready', readyHandler); + + execCallback(settings, 'onpageload'); + + if (settings.types) { + // Process type specific selector + each(settings.types, function(type) { + each(DOM.select(type.selector), function(elm) { + var editor = new Editor(createId(elm), extend({}, settings, type), self); + editors.push(editor); + editor.render(1); + }); + }); + + return; + } else if (settings.selector) { + // Process global selector + each(DOM.select(settings.selector), function(elm) { + var editor = new Editor(createId(elm), settings, self); + editors.push(editor); + editor.render(1); + }); + + return; + } + + // Fallback to old setting + switch (settings.mode) { + case "exact": + l = settings.elements || ''; + + if(l.length > 0) { + each(explode(l), function(v) { + if (DOM.get(v)) { + editor = new Editor(v, settings, self); + editors.push(editor); + editor.render(true); + } else { + each(document.forms, function(f) { + each(f.elements, function(e) { + if (e.name === v) { + v = 'mce_editor_' + instanceCounter++; + DOM.setAttrib(e, 'id', v); + + editor = new Editor(v, settings, self); + editors.push(editor); + editor.render(1); + } + }); + }); + } + }); + } + break; + + case "textareas": + case "specific_textareas": + each(DOM.select('textarea'), function(elm) { + if (settings.editor_deselector && hasClass(elm, settings.editor_deselector)) { + return; + } + + if (!settings.editor_selector || hasClass(elm, settings.editor_selector)) { + editor = new Editor(createId(elm), settings, self); + editors.push(editor); + editor.render(true); + } + }); + break; + } + + // Call onInit when all editors are initialized + if (settings.oninit) { + l = co = 0; + + each(editors, function(ed) { + co++; + + if (!ed.initialized) { + // Wait for it + ed.on('init', function() { + l++; + + // All done + if (l == co) { + execCallback(settings, 'oninit'); + } + }); + } else { + l++; + } + + // All done + if (l == co) { + execCallback(settings, 'oninit'); + } + }); + } + } + + self.settings = settings; + + DOM.bind(window, 'ready', readyHandler); + }, + + /** + * Returns a editor instance by id. + * + * @method get + * @param {String/Number} id Editor instance id or index to return. + * @return {tinymce.Editor} Editor instance to return. + * @example + * // Adds an onclick event to an editor by id (shorter version) + * tinymce.get('mytextbox').on('click', function(e) { + * ed.windowManager.alert('Hello world!'); + * }); + * + * // Adds an onclick event to an editor by id (longer version) + * tinymce.EditorManager.get('mytextbox').on('click', function(e) { + * ed.windowManager.alert('Hello world!'); + * }); + */ + get: function(id) { + if (id === undefined) { + return this.editors; + } + + return this.editors[id]; + }, + + /** + * Adds an editor instance to the editor collection. This will also set it as the active editor. + * + * @method add + * @param {tinymce.Editor} editor Editor instance to add to the collection. + * @return {tinymce.Editor} The same instance that got passed in. + */ + add: function(editor) { + var self = this, editors = self.editors; + + // Add named and index editor instance + editors[editor.id] = editor; + editors.push(editor); + + self.activeEditor = editor; + + /** + * Fires when an editor is added to the EditorManager collection. + * + * @event AddEditor + * @param {Object} e Event arguments. + */ + self.fire('AddEditor', {editor: editor}); + + if (!beforeUnloadDelegate) { + beforeUnloadDelegate = function() { + self.fire('BeforeUnload'); + }; + + DOM.bind(window, 'beforeunload', beforeUnloadDelegate); + } + + return editor; + }, + + /** + * Creates an editor instance and adds it to the EditorManager collection. + * + * @method createEditor + * @param {String} id Instance id to use for editor. + * @param {Object} settings Editor instance settings. + * @return {tinymce.Editor} Editor instance that got created. + */ + createEditor: function(id, settings) { + return this.add(new Editor(id, settings, this)); + }, + + /** + * Removes a editor or editors form page. + * + * @example + * // Remove all editors bound to divs + * tinymce.remove('div'); + * + * // Remove all editors bound to textareas + * tinymce.remove('textarea'); + * + * // Remove all editors + * tinymce.remove(); + * + * // Remove specific instance by id + * tinymce.remove('#id'); + * + * @method remove + * @param {tinymce.Editor/String/Object} [selector] CSS selector or editor instance to remove. + * @return {tinymce.Editor} The editor that got passed in will be return if it was found otherwise null. + */ + remove: function(selector) { + var self = this, i, editors = self.editors, editor, removedFromList; + + // Remove all editors + if (!selector) { + for (i = editors.length - 1; i >= 0; i--) { + self.remove(editors[i]); + } + + return; + } + + // Remove editors by selector + if (typeof(selector) == "string") { + selector = selector.selector || selector; + + each(DOM.select(selector), function(elm) { + self.remove(editors[elm.id]); + }); + + return; + } + + // Remove specific editor + editor = selector; + + // Not in the collection + if (!editors[editor.id]) { + return null; + } + + delete editors[editor.id]; + + for (i = 0; i < editors.length; i++) { + if (editors[i] == editor) { + editors.splice(i, 1); + removedFromList = true; + break; + } + } + + // Select another editor since the active one was removed + if (self.activeEditor == editor) { + self.activeEditor = editors[0]; + } + + /** + * Fires when an editor is removed from EditorManager collection. + * + * @event RemoveEditor + * @param {Object} e Event arguments. + */ + if (removedFromList) { + self.fire('RemoveEditor', {editor: editor}); + } + + if (!editors.length) { + DOM.unbind(window, 'beforeunload', beforeUnloadDelegate); + } + + editor.remove(); + + return editor; + }, + + /** + * Executes a specific command on the currently active editor. + * + * @method execCommand + * @param {String} c Command to perform for example Bold. + * @param {Boolean} u Optional boolean state if a UI should be presented for the command or not. + * @param {String} v Optional value parameter like for example an URL to a link. + * @return {Boolean} true/false if the command was executed or not. + */ + execCommand: function(cmd, ui, value) { + var self = this, editor = self.get(value); + + // Manager commands + switch (cmd) { + case "mceAddEditor": + if (!self.get(value)) { + new Editor(value, self.settings, self).render(); + } + + return true; + + case "mceRemoveEditor": + if (editor) { + editor.remove(); + } + + return true; + + case 'mceToggleEditor': + if (!editor) { + self.execCommand('mceAddEditor', 0, value); + return true; + } + + if (editor.isHidden()) { + editor.show(); + } else { + editor.hide(); + } + + return true; + } + + // Run command on active editor + if (self.activeEditor) { + return self.activeEditor.execCommand(cmd, ui, value); + } + + return false; + }, + + /** + * Calls the save method on all editor instances in the collection. This can be useful when a form is to be submitted. + * + * @method triggerSave + * @example + * // Saves all contents + * tinyMCE.triggerSave(); + */ + triggerSave: function() { + each(this.editors, function(editor) { + editor.save(); + }); + }, + + /** + * Adds a language pack, this gets called by the loaded language files like en.js. + * + * @method addI18n + * @param {String} code Optional language code. + * @param {Object} items Name/value object with translations. + */ + addI18n: function(code, items) { + I18n.add(code, items); + }, + + /** + * Translates the specified string using the language pack items. + * + * @method translate + * @param {String/Array/Object} text String to translate + * @return {String} Translated string. + */ + translate: function(text) { + return I18n.translate(text); + } + }; + + extend(EditorManager, Observable); + + EditorManager.setup(); + + // Export EditorManager as tinymce/tinymce in global namespace + window.tinymce = window.tinyMCE = EditorManager; + + return EditorManager; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/EnterKey.js b/common/static/js/vendor/tinymce/js/tinymce/classes/EnterKey.js new file mode 100755 index 00000000000..325ab28c00d --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/EnterKey.js @@ -0,0 +1,670 @@ +/** + * EnterKey.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Contains logic for handling the enter key to split/generate block elements. + */ +define("tinymce/EnterKey", [ + "tinymce/dom/TreeWalker", + "tinymce/dom/RangeUtils", + "tinymce/Env" +], function(TreeWalker, RangeUtils, Env) { + var isIE = Env.ie && Env.ie < 11; + + return function(editor) { + var dom = editor.dom, selection = editor.selection, settings = editor.settings; + var undoManager = editor.undoManager, schema = editor.schema, nonEmptyElementsMap = schema.getNonEmptyElements(); + + function handleEnterKey(evt) { + var rng, tmpRng, editableRoot, container, offset, parentBlock, documentMode, shiftKey, + newBlock, fragment, containerBlock, parentBlockName, containerBlockName, newBlockName, isAfterLastNodeInContainer; + + // Returns true if the block can be split into two blocks or not + function canSplitBlock(node) { + return node && + dom.isBlock(node) && + !/^(TD|TH|CAPTION|FORM)$/.test(node.nodeName) && + !/^(fixed|absolute)/i.test(node.style.position) && + dom.getContentEditable(node) !== "true"; + } + + // Renders empty block on IE + function renderBlockOnIE(block) { + var oldRng; + + if (dom.isBlock(block)) { + oldRng = selection.getRng(); + block.appendChild(dom.create('span', null, '\u00a0')); + selection.select(block); + block.lastChild.outerHTML = ''; + selection.setRng(oldRng); + } + } + + // Remove the first empty inline element of the block so this: <p><b><em></em></b>x</p> becomes this: <p>x</p> + function trimInlineElementsOnLeftSideOfBlock(block) { + var node = block, firstChilds = [], i; + + // Find inner most first child ex: <p><i><b>*</b></i></p> + while ((node = node.firstChild)) { + if (dom.isBlock(node)) { + return; + } + + if (node.nodeType == 1 && !nonEmptyElementsMap[node.nodeName.toLowerCase()]) { + firstChilds.push(node); + } + } + + i = firstChilds.length; + while (i--) { + node = firstChilds[i]; + if (!node.hasChildNodes() || (node.firstChild == node.lastChild && node.firstChild.nodeValue === '')) { + dom.remove(node); + } else { + // Remove <a> </a> see #5381 + if (node.nodeName == "A" && (node.innerText || node.textContent) === ' ') { + dom.remove(node); + } + } + } + } + + // Moves the caret to a suitable position within the root for example in the first non + // pure whitespace text node or before an image + function moveToCaretPosition(root) { + var walker, node, rng, lastNode = root, tempElm; + + function firstNonWhiteSpaceNodeSibling(node) { + while (node) { + if (node.nodeType == 1 || (node.nodeType == 3 && node.data && /[\r\n\s]/.test(node.data))) { + return node; + } + + node = node.nextSibling; + } + } + + // Old IE versions doesn't properly render blocks with br elements in them + // For example <p><br></p> wont be rendered correctly in a contentEditable area + // until you remove the br producing <p></p> + if (Env.ie && Env.ie < 9 && parentBlock && parentBlock.firstChild) { + if (parentBlock.firstChild == parentBlock.lastChild && parentBlock.firstChild.tagName == 'BR') { + dom.remove(parentBlock.firstChild); + } + } + + if (root.nodeName == 'LI') { + var firstChild = firstNonWhiteSpaceNodeSibling(root.firstChild); + + if (firstChild && /^(UL|OL)$/.test(firstChild.nodeName)) { + root.insertBefore(dom.doc.createTextNode('\u00a0'), root.firstChild); + } + } + + rng = dom.createRng(); + + if (root.hasChildNodes()) { + walker = new TreeWalker(root, root); + + while ((node = walker.current())) { + if (node.nodeType == 3) { + rng.setStart(node, 0); + rng.setEnd(node, 0); + break; + } + + if (nonEmptyElementsMap[node.nodeName.toLowerCase()]) { + rng.setStartBefore(node); + rng.setEndBefore(node); + break; + } + + lastNode = node; + node = walker.next(); + } + + if (!node) { + rng.setStart(lastNode, 0); + rng.setEnd(lastNode, 0); + } + } else { + if (root.nodeName == 'BR') { + if (root.nextSibling && dom.isBlock(root.nextSibling)) { + // Trick on older IE versions to render the caret before the BR between two lists + if (!documentMode || documentMode < 9) { + tempElm = dom.create('br'); + root.parentNode.insertBefore(tempElm, root); + } + + rng.setStartBefore(root); + rng.setEndBefore(root); + } else { + rng.setStartAfter(root); + rng.setEndAfter(root); + } + } else { + rng.setStart(root, 0); + rng.setEnd(root, 0); + } + } + + selection.setRng(rng); + + // Remove tempElm created for old IE:s + dom.remove(tempElm); + selection.scrollIntoView(root); + } + + function setForcedBlockAttrs(node) { + var forcedRootBlockName = settings.forced_root_block; + + if (forcedRootBlockName && forcedRootBlockName.toLowerCase() === node.tagName.toLowerCase()) { + dom.setAttribs(node, settings.forced_root_block_attrs); + } + } + + // Creates a new block element by cloning the current one or creating a new one if the name is specified + // This function will also copy any text formatting from the parent block and add it to the new one + function createNewBlock(name) { + var node = container, block, clonedNode, caretNode; + + if (name || parentBlockName == "TABLE") { + block = dom.create(name || newBlockName); + setForcedBlockAttrs(block); + } else { + block = parentBlock.cloneNode(false); + } + + caretNode = block; + + // Clone any parent styles + if (settings.keep_styles !== false) { + do { + if (/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U|VAR|CITE|DFN|CODE|MARK|Q|SUP|SUB|SAMP)$/.test(node.nodeName)) { + // Never clone a caret containers + if (node.id == '_mce_caret') { + continue; + } + + clonedNode = node.cloneNode(false); + dom.setAttrib(clonedNode, 'id', ''); // Remove ID since it needs to be document unique + + if (block.hasChildNodes()) { + clonedNode.appendChild(block.firstChild); + block.appendChild(clonedNode); + } else { + caretNode = clonedNode; + block.appendChild(clonedNode); + } + } + } while ((node = node.parentNode)); + } + + // BR is needed in empty blocks on non IE browsers + if (!isIE) { + caretNode.innerHTML = '<br data-mce-bogus="1">'; + } + + return block; + } + + // Returns true/false if the caret is at the start/end of the parent block element + function isCaretAtStartOrEndOfBlock(start) { + var walker, node, name; + + // Caret is in the middle of a text node like "a|b" + if (container.nodeType == 3 && (start ? offset > 0 : offset < container.nodeValue.length)) { + return false; + } + + // If after the last element in block node edge case for #5091 + if (container.parentNode == parentBlock && isAfterLastNodeInContainer && !start) { + return true; + } + + // If the caret if before the first element in parentBlock + if (start && container.nodeType == 1 && container == parentBlock.firstChild) { + return true; + } + + // Caret can be before/after a table + if (container.nodeName === "TABLE" || (container.previousSibling && container.previousSibling.nodeName == "TABLE")) { + return (isAfterLastNodeInContainer && !start) || (!isAfterLastNodeInContainer && start); + } + + // Walk the DOM and look for text nodes or non empty elements + walker = new TreeWalker(container, parentBlock); + + // If caret is in beginning or end of a text block then jump to the next/previous node + if (container.nodeType == 3) { + if (start && offset === 0) { + walker.prev(); + } else if (!start && offset == container.nodeValue.length) { + walker.next(); + } + } + + while ((node = walker.current())) { + if (node.nodeType === 1) { + // Ignore bogus elements + if (!node.getAttribute('data-mce-bogus')) { + // Keep empty elements like <img /> <input /> but not trailing br:s like <p>text|<br></p> + name = node.nodeName.toLowerCase(); + if (nonEmptyElementsMap[name] && name !== 'br') { + return false; + } + } + } else if (node.nodeType === 3 && !/^[ \t\r\n]*$/.test(node.nodeValue)) { + return false; + } + + if (start) { + walker.prev(); + } else { + walker.next(); + } + } + + return true; + } + + // Wraps any text nodes or inline elements in the specified forced root block name + function wrapSelfAndSiblingsInDefaultBlock(container, offset) { + var newBlock, parentBlock, startNode, node, next, rootBlockName, blockName = newBlockName || 'P'; + + // Not in a block element or in a table cell or caption + parentBlock = dom.getParent(container, dom.isBlock); + rootBlockName = editor.getBody().nodeName.toLowerCase(); + if (!parentBlock || !canSplitBlock(parentBlock)) { + parentBlock = parentBlock || editableRoot; + + if (!parentBlock.hasChildNodes()) { + newBlock = dom.create(blockName); + setForcedBlockAttrs(newBlock); + parentBlock.appendChild(newBlock); + rng.setStart(newBlock, 0); + rng.setEnd(newBlock, 0); + return newBlock; + } + + // Find parent that is the first child of parentBlock + node = container; + while (node.parentNode != parentBlock) { + node = node.parentNode; + } + + // Loop left to find start node start wrapping at + while (node && !dom.isBlock(node)) { + startNode = node; + node = node.previousSibling; + } + + if (startNode && schema.isValidChild(rootBlockName, blockName.toLowerCase())) { + newBlock = dom.create(blockName); + setForcedBlockAttrs(newBlock); + startNode.parentNode.insertBefore(newBlock, startNode); + + // Start wrapping until we hit a block + node = startNode; + while (node && !dom.isBlock(node)) { + next = node.nextSibling; + newBlock.appendChild(node); + node = next; + } + + // Restore range to it's past location + rng.setStart(container, offset); + rng.setEnd(container, offset); + } + } + + return container; + } + + // Inserts a block or br before/after or in the middle of a split list of the LI is empty + function handleEmptyListItem() { + function isFirstOrLastLi(first) { + var node = containerBlock[first ? 'firstChild' : 'lastChild']; + + // Find first/last element since there might be whitespace there + while (node) { + if (node.nodeType == 1) { + break; + } + + node = node[first ? 'nextSibling' : 'previousSibling']; + } + + return node === parentBlock; + } + + function getContainerBlock() { + var containerBlockParent = containerBlock.parentNode; + + if (containerBlockParent.nodeName == 'LI') { + return containerBlockParent; + } + + return containerBlock; + } + + // Check if we are in an nested list + var containerBlockParentName = containerBlock.parentNode.nodeName; + if (/^(OL|UL|LI)$/.test(containerBlockParentName)) { + newBlockName = 'LI'; + } + + newBlock = newBlockName ? createNewBlock(newBlockName) : dom.create('BR'); + + if (isFirstOrLastLi(true) && isFirstOrLastLi()) { + if (containerBlockParentName == 'LI') { + // Nested list is inside a LI + dom.insertAfter(newBlock, getContainerBlock()); + } else { + // Is first and last list item then replace the OL/UL with a text block + dom.replace(newBlock, containerBlock); + } + } else if (isFirstOrLastLi(true)) { + if (containerBlockParentName == 'LI') { + // List nested in an LI then move the list to a new sibling LI + dom.insertAfter(newBlock, getContainerBlock()); + newBlock.appendChild(dom.doc.createTextNode(' ')); // Needed for IE so the caret can be placed + newBlock.appendChild(containerBlock); + } else { + // First LI in list then remove LI and add text block before list + containerBlock.parentNode.insertBefore(newBlock, containerBlock); + } + } else if (isFirstOrLastLi()) { + // Last LI in list then remove LI and add text block after list + dom.insertAfter(newBlock, getContainerBlock()); + renderBlockOnIE(newBlock); + } else { + // Middle LI in list the split the list and insert a text block in the middle + // Extract after fragment and insert it after the current block + containerBlock = getContainerBlock(); + tmpRng = rng.cloneRange(); + tmpRng.setStartAfter(parentBlock); + tmpRng.setEndAfter(containerBlock); + fragment = tmpRng.extractContents(); + + if (newBlockName == 'LI' && fragment.firstChild.nodeName == 'LI') { + newBlock = fragment.firstChild; + dom.insertAfter(fragment, containerBlock); + } else { + dom.insertAfter(fragment, containerBlock); + dom.insertAfter(newBlock, containerBlock); + } + } + + dom.remove(parentBlock); + moveToCaretPosition(newBlock); + undoManager.add(); + } + + // Walks the parent block to the right and look for BR elements + function hasRightSideContent() { + var walker = new TreeWalker(container, parentBlock), node; + + while ((node = walker.next())) { + if (nonEmptyElementsMap[node.nodeName.toLowerCase()] || node.length > 0) { + return true; + } + } + } + + // Inserts a BR element if the forced_root_block option is set to false or empty string + function insertBr() { + var brElm, extraBr, marker; + + if (container && container.nodeType == 3 && offset >= container.nodeValue.length) { + // Insert extra BR element at the end block elements + if (!isIE && !hasRightSideContent()) { + brElm = dom.create('br'); + rng.insertNode(brElm); + rng.setStartAfter(brElm); + rng.setEndAfter(brElm); + extraBr = true; + } + } + + brElm = dom.create('br'); + rng.insertNode(brElm); + + // Rendering modes below IE8 doesn't display BR elements in PRE unless we have a \n before it + if (isIE && parentBlockName == 'PRE' && (!documentMode || documentMode < 8)) { + brElm.parentNode.insertBefore(dom.doc.createTextNode('\r'), brElm); + } + + // Insert temp marker and scroll to that + marker = dom.create('span', {}, ' '); + brElm.parentNode.insertBefore(marker, brElm); + selection.scrollIntoView(marker); + dom.remove(marker); + + if (!extraBr) { + rng.setStartAfter(brElm); + rng.setEndAfter(brElm); + } else { + rng.setStartBefore(brElm); + rng.setEndBefore(brElm); + } + + selection.setRng(rng); + undoManager.add(); + } + + // Trims any linebreaks at the beginning of node user for example when pressing enter in a PRE element + function trimLeadingLineBreaks(node) { + do { + if (node.nodeType === 3) { + node.nodeValue = node.nodeValue.replace(/^[\r\n]+/, ''); + } + + node = node.firstChild; + } while (node); + } + + function getEditableRoot(node) { + var root = dom.getRoot(), parent, editableRoot; + + // Get all parents until we hit a non editable parent or the root + parent = node; + while (parent !== root && dom.getContentEditable(parent) !== "false") { + if (dom.getContentEditable(parent) === "true") { + editableRoot = parent; + } + + parent = parent.parentNode; + } + + return parent !== root ? editableRoot : root; + } + + // Adds a BR at the end of blocks that only contains an IMG or INPUT since + // these might be floated and then they won't expand the block + function addBrToBlockIfNeeded(block) { + var lastChild; + + // IE will render the blocks correctly other browsers needs a BR + if (!isIE) { + block.normalize(); // Remove empty text nodes that got left behind by the extract + + // Check if the block is empty or contains a floated last child + lastChild = block.lastChild; + if (!lastChild || (/^(left|right)$/gi.test(dom.getStyle(lastChild, 'float', true)))) { + dom.add(block, 'br'); + } + } + } + + rng = selection.getRng(true); + + // Event is blocked by some other handler for example the lists plugin + if (evt.isDefaultPrevented()) { + return; + } + + // Delete any selected contents + if (!rng.collapsed) { + editor.execCommand('Delete'); + return; + } + + // Setup range items and newBlockName + new RangeUtils(dom).normalize(rng); + container = rng.startContainer; + offset = rng.startOffset; + newBlockName = (settings.force_p_newlines ? 'p' : '') || settings.forced_root_block; + newBlockName = newBlockName ? newBlockName.toUpperCase() : ''; + documentMode = dom.doc.documentMode; + shiftKey = evt.shiftKey; + + // Resolve node index + if (container.nodeType == 1 && container.hasChildNodes()) { + isAfterLastNodeInContainer = offset > container.childNodes.length - 1; + + container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container; + if (isAfterLastNodeInContainer && container.nodeType == 3) { + offset = container.nodeValue.length; + } else { + offset = 0; + } + } + + // Get editable root node normaly the body element but sometimes a div or span + editableRoot = getEditableRoot(container); + + // If there is no editable root then enter is done inside a contentEditable false element + if (!editableRoot) { + return; + } + + undoManager.beforeChange(); + + // If editable root isn't block nor the root of the editor + if (!dom.isBlock(editableRoot) && editableRoot != dom.getRoot()) { + if (!newBlockName || shiftKey) { + insertBr(); + } + + return; + } + + // Wrap the current node and it's sibling in a default block if it's needed. + // for example this <td>text|<b>text2</b></td> will become this <td><p>text|<b>text2</p></b></td> + // This won't happen if root blocks are disabled or the shiftKey is pressed + if ((newBlockName && !shiftKey) || (!newBlockName && shiftKey)) { + container = wrapSelfAndSiblingsInDefaultBlock(container, offset); + } + + // Find parent block and setup empty block paddings + parentBlock = dom.getParent(container, dom.isBlock); + containerBlock = parentBlock ? dom.getParent(parentBlock.parentNode, dom.isBlock) : null; + + // Setup block names + parentBlockName = parentBlock ? parentBlock.nodeName.toUpperCase() : ''; // IE < 9 & HTML5 + containerBlockName = containerBlock ? containerBlock.nodeName.toUpperCase() : ''; // IE < 9 & HTML5 + + // Enter inside block contained within a LI then split or insert before/after LI + if (containerBlockName == 'LI' && !evt.ctrlKey) { + parentBlock = containerBlock; + parentBlockName = containerBlockName; + } + + // Handle enter in LI + if (parentBlockName == 'LI') { + if (!newBlockName && shiftKey) { + insertBr(); + return; + } + + // Handle enter inside an empty list item + if (dom.isEmpty(parentBlock)) { + handleEmptyListItem(); + return; + } + } + + // Don't split PRE tags but insert a BR instead easier when writing code samples etc + if (parentBlockName == 'PRE' && settings.br_in_pre !== false) { + if (!shiftKey) { + insertBr(); + return; + } + } else { + // If no root block is configured then insert a BR by default or if the shiftKey is pressed + if ((!newBlockName && !shiftKey && parentBlockName != 'LI') || (newBlockName && shiftKey)) { + insertBr(); + return; + } + } + + // If parent block is root then never insert new blocks + if (newBlockName && parentBlock === editor.getBody()) { + return; + } + + // Default block name if it's not configured + newBlockName = newBlockName || 'P'; + + // Insert new block before/after the parent block depending on caret location + if (isCaretAtStartOrEndOfBlock()) { + // If the caret is at the end of a header we produce a P tag after it similar to Word unless we are in a hgroup + if (/^(H[1-6]|PRE|FIGURE)$/.test(parentBlockName) && containerBlockName != 'HGROUP') { + newBlock = createNewBlock(newBlockName); + } else { + newBlock = createNewBlock(); + } + + // Split the current container block element if enter is pressed inside an empty inner block element + if (settings.end_container_on_empty_block && canSplitBlock(containerBlock) && dom.isEmpty(parentBlock)) { + // Split container block for example a BLOCKQUOTE at the current blockParent location for example a P + newBlock = dom.split(containerBlock, parentBlock); + } else { + dom.insertAfter(newBlock, parentBlock); + } + + moveToCaretPosition(newBlock); + } else if (isCaretAtStartOrEndOfBlock(true)) { + // Insert new block before + newBlock = parentBlock.parentNode.insertBefore(createNewBlock(), parentBlock); + renderBlockOnIE(newBlock); + moveToCaretPosition(parentBlock); + } else { + // Extract after fragment and insert it after the current block + tmpRng = rng.cloneRange(); + tmpRng.setEndAfter(parentBlock); + fragment = tmpRng.extractContents(); + trimLeadingLineBreaks(fragment); + newBlock = fragment.firstChild; + dom.insertAfter(fragment, parentBlock); + trimInlineElementsOnLeftSideOfBlock(newBlock); + addBrToBlockIfNeeded(parentBlock); + moveToCaretPosition(newBlock); + } + + dom.setAttrib(newBlock, 'id', ''); // Remove ID since it needs to be document unique + + // Allow custom handling of new blocks + editor.fire('NewBlock', { newBlock: newBlock }); + + undoManager.add(); + } + + editor.on('keydown', function(evt) { + if (evt.keyCode == 13) { + if (handleEnterKey(evt) !== false) { + evt.preventDefault(); + } + } + }); + }; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/Env.js b/common/static/js/vendor/tinymce/js/tinymce/classes/Env.js new file mode 100755 index 00000000000..8bf2c6ef845 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/Env.js @@ -0,0 +1,135 @@ +/** + * Env.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class contains various environment constants like browser versions etc. + * Normally you don't want to sniff specific browser versions but sometimes you have + * to when it's impossible to feature detect. So use this with care. + * + * @class tinymce.Env + * @static + */ +define("tinymce/Env", [], function() { + var nav = navigator, userAgent = nav.userAgent; + var opera, webkit, ie, ie11, gecko, mac, iDevice; + + opera = window.opera && window.opera.buildNumber; + webkit = /WebKit/.test(userAgent); + ie = !webkit && !opera && (/MSIE/gi).test(userAgent) && (/Explorer/gi).test(nav.appName); + ie = ie && /MSIE (\w+)\./.exec(userAgent)[1]; + ie11 = userAgent.indexOf('Trident/') != -1 && (userAgent.indexOf('rv:') != -1 || nav.appName.indexOf('Netscape') != -1) ? 11 : false; + ie = ie || ie11; + gecko = !webkit && !ie11 && /Gecko/.test(userAgent); + mac = userAgent.indexOf('Mac') != -1; + iDevice = /(iPad|iPhone)/.test(userAgent); + + // Is a iPad/iPhone and not on iOS5 sniff the WebKit version since older iOS WebKit versions + // says it has contentEditable support but there is no visible caret. + var contentEditable = !iDevice || userAgent.match(/AppleWebKit\/(\d*)/)[1] >= 534; + + return { + /** + * Constant that is true if the browser is Opera. + * + * @property opera + * @type Boolean + * @final + */ + opera: opera, + + /** + * Constant that is true if the browser is WebKit (Safari/Chrome). + * + * @property webKit + * @type Boolean + * @final + */ + webkit: webkit, + + /** + * Constant that is more than zero if the browser is IE. + * + * @property ie + * @type Boolean + * @final + */ + ie: ie, + + /** + * Constant that is true if the browser is Gecko. + * + * @property gecko + * @type Boolean + * @final + */ + gecko: gecko, + + /** + * Constant that is true if the os is Mac OS. + * + * @property mac + * @type Boolean + * @final + */ + mac: mac, + + /** + * Constant that is true if the os is iOS. + * + * @property iOS + * @type Boolean + * @final + */ + iOS: iDevice, + + /** + * Constant that is true if the browser supports editing. + * + * @property contentEditable + * @type Boolean + * @final + */ + contentEditable: contentEditable, + + /** + * Transparent image data url. + * + * @property transparentSrc + * @type Boolean + * @final + */ + transparentSrc: "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", + + /** + * Returns true/false if the browser can or can't place the caret after a inline block like an image. + * + * @property noCaretAfter + * @type Boolean + * @final + */ + caretAfter: ie != 8, + + /** + * Constant that is true if the browser supports native DOM Ranges. IE 9+. + * + * @property range + * @type Boolean + */ + range: window.getSelection && "Range" in window, + + /** + * Returns the IE document mode for non IE browsers this will fake IE 10. + * + * @property documentMode + * @type Number + */ + documentMode: ie ? (document.documentMode || 7) : 10 + }; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/FocusManager.js b/common/static/js/vendor/tinymce/js/tinymce/classes/FocusManager.js new file mode 100755 index 00000000000..dca96befc62 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/FocusManager.js @@ -0,0 +1,230 @@ +/** + * FocusManager.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class manages the focus/blur state of the editor. This class is needed since some + * browsers fire false focus/blur states when the selection is moved to a UI dialog or similar. + * + * This class will fire two events focus and blur on the editor instances that got affected. + * It will also handle the restore of selection when the focus is lost and returned. + * + * @class tinymce.FocusManager + */ +define("tinymce/FocusManager", [ + "tinymce/dom/DOMUtils", + "tinymce/Env" +], function(DOMUtils, Env) { + var selectionChangeHandler, documentFocusInHandler, DOM = DOMUtils.DOM; + + /** + * Constructs a new focus manager instance. + * + * @constructor FocusManager + * @param {tinymce.EditorManager} editorManager Editor manager instance to handle focus for. + */ + function FocusManager(editorManager) { + function getActiveElement() { + try { + return document.activeElement; + } catch (ex) { + // IE sometimes fails to get the activeElement when resizing table + // TODO: Investigate this + return document.body; + } + } + + // We can't store a real range on IE 11 since it gets mutated so we need to use a bookmark object + // TODO: Move this to a separate range utils class since it's it's logic is present in Selection as well. + function createBookmark(rng) { + if (rng && rng.startContainer) { + return { + startContainer: rng.startContainer, + startOffset: rng.startOffset, + endContainer: rng.endContainer, + endOffset: rng.endOffset + }; + } + + return rng; + } + + function bookmarkToRng(editor, bookmark) { + var rng; + + if (bookmark.startContainer) { + rng = editor.getDoc().createRange(); + rng.setStart(bookmark.startContainer, bookmark.startOffset); + rng.setEnd(bookmark.endContainer, bookmark.endOffset); + } else { + rng = bookmark; + } + + return rng; + } + + function isUIElement(elm) { + return !!DOM.getParent(elm, FocusManager.isEditorUIElement); + } + + function isNodeInBodyOfEditor(node, editor) { + var body = editor.getBody(); + + while (node) { + if (node == body) { + return true; + } + + node = node.parentNode; + } + } + + function registerEvents(e) { + var editor = e.editor; + + editor.on('init', function() { + // Gecko/WebKit has ghost selections in iframes and IE only has one selection per browser tab + if (editor.inline || Env.ie) { + // On other browsers take snapshot on nodechange in inline mode since they have Ghost selections for iframes + editor.on('nodechange keyup', function() { + var node = document.activeElement; + + // IE 11 reports active element as iframe not body of iframe + if (node && node.id == editor.id + '_ifr') { + node = editor.getBody(); + } + + if (isNodeInBodyOfEditor(node, editor)) { + editor.lastRng = editor.selection.getRng(); + } + }); + + // Handles the issue with WebKit not retaining selection within inline document + // If the user releases the mouse out side the body since a mouse up event wont occur on the body + if (Env.webkit && !selectionChangeHandler) { + selectionChangeHandler = function() { + var activeEditor = editorManager.activeEditor; + + if (activeEditor && activeEditor.selection) { + var rng = activeEditor.selection.getRng(); + + // Store when it's non collapsed + if (rng && !rng.collapsed) { + editor.lastRng = rng; + } + } + }; + + DOM.bind(document, 'selectionchange', selectionChangeHandler); + } + } + }); + + editor.on('setcontent', function() { + editor.lastRng = null; + }); + + // Remove last selection bookmark on mousedown see #6305 + editor.on('mousedown', function() { + editor.selection.lastFocusBookmark = null; + }); + + editor.on('focusin', function() { + var focusedEditor = editorManager.focusedEditor; + + if (editor.selection.lastFocusBookmark) { + editor.selection.setRng(bookmarkToRng(editor, editor.selection.lastFocusBookmark)); + editor.selection.lastFocusBookmark = null; + } + + if (focusedEditor != editor) { + if (focusedEditor) { + focusedEditor.fire('blur', {focusedEditor: editor}); + } + + editorManager.activeEditor = editor; + editorManager.focusedEditor = editor; + editor.fire('focus', {blurredEditor: focusedEditor}); + editor.focus(true); + } + + editor.lastRng = null; + }); + + editor.on('focusout', function() { + window.setTimeout(function() { + var focusedEditor = editorManager.focusedEditor; + + // Still the same editor the the blur was outside any editor UI + if (!isUIElement(getActiveElement()) && focusedEditor == editor) { + editor.fire('blur', {focusedEditor: null}); + editorManager.focusedEditor = null; + + // Make sure selection is valid could be invalid if the editor is blured and removed before the timeout occurs + if (editor.selection) { + editor.selection.lastFocusBookmark = null; + } + } + }, 0); + }); + + if (!documentFocusInHandler) { + documentFocusInHandler = function(e) { + var activeEditor = editorManager.activeEditor; + + if (activeEditor && e.target.ownerDocument == document) { + // Check to make sure we have a valid selection + if (activeEditor.selection) { + activeEditor.selection.lastFocusBookmark = createBookmark(activeEditor.lastRng); + } + + // Fire a blur event if the element isn't a UI element + if (!isUIElement(e.target) && editorManager.focusedEditor == activeEditor) { + activeEditor.fire('blur', {focusedEditor: null}); + editorManager.focusedEditor = null; + } + } + }; + + // Check if focus is moved to an element outside the active editor by checking if the target node + // isn't within the body of the activeEditor nor a UI element such as a dialog child control + DOM.bind(document, 'focusin', documentFocusInHandler); + } + } + + function unregisterDocumentEvents(e) { + if (editorManager.focusedEditor == e.editor) { + editorManager.focusedEditor = null; + } + + if (!editorManager.activeEditor) { + DOM.unbind(document, 'selectionchange', selectionChangeHandler); + DOM.unbind(document, 'focusin', documentFocusInHandler); + selectionChangeHandler = documentFocusInHandler = null; + } + } + + editorManager.on('AddEditor', registerEvents); + editorManager.on('RemoveEditor', unregisterDocumentEvents); + } + + /** + * Returns true if the specified element is part of the UI for example an button or text input. + * + * @method isEditorUIElement + * @param {Element} elm Element to check if it's part of the UI or not. + * @return {Boolean} True/false state if the element is part of the UI or not. + */ + FocusManager.isEditorUIElement = function(elm) { + // Needs to be converted to string since svg can have focus: #6776 + return elm.className.toString().indexOf('mce-') !== -1; + }; + + return FocusManager; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ForceBlocks.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ForceBlocks.js new file mode 100755 index 00000000000..3a56b441117 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ForceBlocks.js @@ -0,0 +1,132 @@ +/** + * ForceBlocks.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +define("tinymce/ForceBlocks", [], function() { + return function(editor) { + var settings = editor.settings, dom = editor.dom, selection = editor.selection; + var schema = editor.schema, blockElements = schema.getBlockElements(); + + function addRootBlocks() { + var node = selection.getStart(), rootNode = editor.getBody(), rng; + var startContainer, startOffset, endContainer, endOffset, rootBlockNode; + var tempNode, offset = -0xFFFFFF, wrapped, restoreSelection; + var tmpRng, rootNodeName, forcedRootBlock; + + forcedRootBlock = settings.forced_root_block; + + if (!node || node.nodeType !== 1 || !forcedRootBlock) { + return; + } + + // Check if node is wrapped in block + while (node && node != rootNode) { + if (blockElements[node.nodeName]) { + return; + } + + node = node.parentNode; + } + + // Get current selection + rng = selection.getRng(); + if (rng.setStart) { + startContainer = rng.startContainer; + startOffset = rng.startOffset; + endContainer = rng.endContainer; + endOffset = rng.endOffset; + + try { + restoreSelection = editor.getDoc().activeElement === rootNode; + } catch (ex) { + // IE throws unspecified error here sometimes + } + } else { + // Force control range into text range + if (rng.item) { + node = rng.item(0); + rng = editor.getDoc().body.createTextRange(); + rng.moveToElementText(node); + } + + restoreSelection = rng.parentElement().ownerDocument === editor.getDoc(); + tmpRng = rng.duplicate(); + tmpRng.collapse(true); + startOffset = tmpRng.move('character', offset) * -1; + + if (!tmpRng.collapsed) { + tmpRng = rng.duplicate(); + tmpRng.collapse(false); + endOffset = (tmpRng.move('character', offset) * -1) - startOffset; + } + } + + // Wrap non block elements and text nodes + node = rootNode.firstChild; + rootNodeName = rootNode.nodeName.toLowerCase(); + while (node) { + // TODO: Break this up, too complex + if (((node.nodeType === 3 || (node.nodeType == 1 && !blockElements[node.nodeName]))) && + schema.isValidChild(rootNodeName, forcedRootBlock.toLowerCase())) { + // Remove empty text nodes + if (node.nodeType === 3 && node.nodeValue.length === 0) { + tempNode = node; + node = node.nextSibling; + dom.remove(tempNode); + continue; + } + + if (!rootBlockNode) { + rootBlockNode = dom.create(forcedRootBlock, editor.settings.forced_root_block_attrs); + node.parentNode.insertBefore(rootBlockNode, node); + wrapped = true; + } + + tempNode = node; + node = node.nextSibling; + rootBlockNode.appendChild(tempNode); + } else { + rootBlockNode = null; + node = node.nextSibling; + } + } + + if (wrapped && restoreSelection) { + if (rng.setStart) { + rng.setStart(startContainer, startOffset); + rng.setEnd(endContainer, endOffset); + selection.setRng(rng); + } else { + // Only select if the previous selection was inside the document to prevent auto focus in quirks mode + try { + rng = editor.getDoc().body.createTextRange(); + rng.moveToElementText(rootNode); + rng.collapse(true); + rng.moveStart('character', startOffset); + + if (endOffset > 0) { + rng.moveEnd('character', endOffset); + } + + rng.select(); + } catch (ex) { + // Ignore + } + } + + editor.nodeChanged(); + } + } + + // Force root blocks + if (settings.forced_root_block) { + editor.on('NodeChange', addRootBlocks); + } + }; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/Formatter.js b/common/static/js/vendor/tinymce/js/tinymce/classes/Formatter.js new file mode 100755 index 00000000000..baa0b8a4175 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/Formatter.js @@ -0,0 +1,2426 @@ +/** + * Formatter.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Text formatter engine class. This class is used to apply formats like bold, italic, font size + * etc to the current selection or specific nodes. This engine was build to replace the browsers + * default formatting logic for execCommand due to it's inconsistent and buggy behavior. + * + * @class tinymce.Formatter + * @example + * tinymce.activeEditor.formatter.register('mycustomformat', { + * inline: 'span', + * styles: {color: '#ff0000'} + * }); + * + * tinymce.activeEditor.formatter.apply('mycustomformat'); + */ +define("tinymce/Formatter", [ + "tinymce/dom/TreeWalker", + "tinymce/dom/RangeUtils", + "tinymce/util/Tools" +], function(TreeWalker, RangeUtils, Tools) { + /** + * Constructs a new formatter instance. + * + * @constructor Formatter + * @param {tinymce.Editor} ed Editor instance to construct the formatter engine to. + */ + return function(ed) { + var formats = {}, + dom = ed.dom, + selection = ed.selection, + rangeUtils = new RangeUtils(dom), + isValid = ed.schema.isValidChild, + isBlock = dom.isBlock, + forcedRootBlock = ed.settings.forced_root_block, + nodeIndex = dom.nodeIndex, + INVISIBLE_CHAR = '\uFEFF', + MCE_ATTR_RE = /^(src|href|style)$/, + FALSE = false, + TRUE = true, + formatChangeData, + undef, + getContentEditable = dom.getContentEditable, + disableCaretContainer, + markCaretContainersBogus; + + var each = Tools.each, + grep = Tools.grep, + walk = Tools.walk, + extend = Tools.extend; + + function isTextBlock(name) { + if (name.nodeType) { + name = name.nodeName; + } + + return !!ed.schema.getTextBlockElements()[name.toLowerCase()]; + } + + function getParents(node, selector) { + return dom.getParents(node, selector, dom.getRoot()); + } + + function isCaretNode(node) { + return node.nodeType === 1 && node.id === '_mce_caret'; + } + + function defaultFormats() { + register({ + alignleft: [ + {selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li', styles: {textAlign: 'left'}, defaultBlock: 'div'}, + {selector: 'img,table', collapsed: false, styles: {'float': 'left'}} + ], + + aligncenter: [ + {selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li', styles: {textAlign: 'center'}, defaultBlock: 'div'}, + {selector: 'img', collapsed: false, styles: {display: 'block', marginLeft: 'auto', marginRight: 'auto'}}, + {selector: 'table', collapsed: false, styles: {marginLeft: 'auto', marginRight: 'auto'}} + ], + + alignright: [ + {selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li', styles: {textAlign: 'right'}, defaultBlock: 'div'}, + {selector: 'img,table', collapsed: false, styles: {'float': 'right'}} + ], + + alignjustify: [ + {selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li', styles: {textAlign: 'justify'}, defaultBlock: 'div'} + ], + + bold: [ + {inline: 'strong', remove: 'all'}, + {inline: 'span', styles: {fontWeight: 'bold'}}, + {inline: 'b', remove: 'all'} + ], + + italic: [ + {inline: 'em', remove: 'all'}, + {inline: 'span', styles: {fontStyle: 'italic'}}, + {inline: 'i', remove: 'all'} + ], + + underline: [ + {inline: 'span', styles: {textDecoration: 'underline'}, exact: true}, + {inline: 'u', remove: 'all'} + ], + + strikethrough: [ + {inline: 'span', styles: {textDecoration: 'line-through'}, exact: true}, + {inline: 'strike', remove: 'all'} + ], + + forecolor: {inline: 'span', styles: {color: '%value'}, wrap_links: false}, + hilitecolor: {inline: 'span', styles: {backgroundColor: '%value'}, wrap_links: false}, + fontname: {inline: 'span', styles: {fontFamily: '%value'}}, + fontsize: {inline: 'span', styles: {fontSize: '%value'}}, + fontsize_class: {inline: 'span', attributes: {'class': '%value'}}, + blockquote: {block: 'blockquote', wrapper: 1, remove: 'all'}, + subscript: {inline: 'sub'}, + superscript: {inline: 'sup'}, + code: {inline: 'code'}, + + link: {inline: 'a', selector: 'a', remove: 'all', split: true, deep: true, + onmatch: function() { + return true; + }, + + onformat: function(elm, fmt, vars) { + each(vars, function(value, key) { + dom.setAttrib(elm, key, value); + }); + } + }, + + removeformat: [ + { + selector: 'b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q', + remove: 'all', + split: true, + expand: false, + block_expand: true, + deep: true + }, + {selector: 'span', attributes: ['style', 'class'], remove: 'empty', split: true, expand: false, deep: true}, + {selector: '*', attributes: ['style', 'class'], split: false, expand: false, deep: true} + ] + }); + + // Register default block formats + each('p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp'.split(/\s/), function(name) { + register(name, {block: name, remove: 'all'}); + }); + + // Register user defined formats + register(ed.settings.formats); + } + + function addKeyboardShortcuts() { + // Add some inline shortcuts + ed.addShortcut('ctrl+b', 'bold_desc', 'Bold'); + ed.addShortcut('ctrl+i', 'italic_desc', 'Italic'); + ed.addShortcut('ctrl+u', 'underline_desc', 'Underline'); + + // BlockFormat shortcuts keys + for (var i = 1; i <= 6; i++) { + ed.addShortcut('ctrl+' + i, '', ['FormatBlock', false, 'h' + i]); + } + + ed.addShortcut('ctrl+7', '', ['FormatBlock', false, 'p']); + ed.addShortcut('ctrl+8', '', ['FormatBlock', false, 'div']); + ed.addShortcut('ctrl+9', '', ['FormatBlock', false, 'address']); + } + + // Public functions + + /** + * Returns the format by name or all formats if no name is specified. + * + * @method get + * @param {String} name Optional name to retrive by. + * @return {Array/Object} Array/Object with all registred formats or a specific format. + */ + function get(name) { + return name ? formats[name] : formats; + } + + /** + * Registers a specific format by name. + * + * @method register + * @param {Object/String} name Name of the format for example "bold". + * @param {Object/Array} format Optional format object or array of format variants + * can only be omitted if the first arg is an object. + */ + function register(name, format) { + if (name) { + if (typeof(name) !== 'string') { + each(name, function(format, name) { + register(name, format); + }); + } else { + // Force format into array and add it to internal collection + format = format.length ? format : [format]; + + each(format, function(format) { + // Set deep to false by default on selector formats this to avoid removing + // alignment on images inside paragraphs when alignment is changed on paragraphs + if (format.deep === undef) { + format.deep = !format.selector; + } + + // Default to true + if (format.split === undef) { + format.split = !format.selector || format.inline; + } + + // Default to true + if (format.remove === undef && format.selector && !format.inline) { + format.remove = 'none'; + } + + // Mark format as a mixed format inline + block level + if (format.selector && format.inline) { + format.mixed = true; + format.block_expand = true; + } + + // Split classes if needed + if (typeof(format.classes) === 'string') { + format.classes = format.classes.split(/\s+/); + } + }); + + formats[name] = format; + } + } + } + + function getTextDecoration(node) { + var decoration; + + ed.dom.getParent(node, function(n) { + decoration = ed.dom.getStyle(n, 'text-decoration'); + return decoration && decoration !== 'none'; + }); + + return decoration; + } + + function processUnderlineAndColor(node) { + var textDecoration; + if (node.nodeType === 1 && node.parentNode && node.parentNode.nodeType === 1) { + textDecoration = getTextDecoration(node.parentNode); + if (ed.dom.getStyle(node, 'color') && textDecoration) { + ed.dom.setStyle(node, 'text-decoration', textDecoration); + } else if (ed.dom.getStyle(node, 'textdecoration') === textDecoration) { + ed.dom.setStyle(node, 'text-decoration', null); + } + } + } + + /** + * Applies the specified format to the current selection or specified node. + * + * @method apply + * @param {String} name Name of format to apply. + * @param {Object} vars Optional list of variables to replace within format before applying it. + * @param {Node} node Optional node to apply the format to defaults to current selection. + */ + function apply(name, vars, node) { + var formatList = get(name), format = formatList[0], bookmark, rng, isCollapsed = !node && selection.isCollapsed(); + + function setElementFormat(elm, fmt) { + fmt = fmt || format; + + if (elm) { + if (fmt.onformat) { + fmt.onformat(elm, fmt, vars, node); + } + + each(fmt.styles, function(value, name) { + dom.setStyle(elm, name, replaceVars(value, vars)); + }); + + each(fmt.attributes, function(value, name) { + dom.setAttrib(elm, name, replaceVars(value, vars)); + }); + + each(fmt.classes, function(value) { + value = replaceVars(value, vars); + + if (!dom.hasClass(elm, value)) { + dom.addClass(elm, value); + } + }); + } + } + + function adjustSelectionToVisibleSelection() { + function findSelectionEnd(start, end) { + var walker = new TreeWalker(end); + for (node = walker.current(); node; node = walker.prev()) { + if (node.childNodes.length > 1 || node == start || node.tagName == 'BR') { + return node; + } + } + } + + // Adjust selection so that a end container with a end offset of zero is not included in the selection + // as this isn't visible to the user. + var rng = ed.selection.getRng(); + var start = rng.startContainer; + var end = rng.endContainer; + + if (start != end && rng.endOffset === 0) { + var newEnd = findSelectionEnd(start, end); + var endOffset = newEnd.nodeType == 3 ? newEnd.length : newEnd.childNodes.length; + + rng.setEnd(newEnd, endOffset); + } + + return rng; + } + + function applyStyleToList(node, bookmark, wrapElm, newWrappers, process){ + var nodes = [], listIndex = -1, list, startIndex = -1, endIndex = -1, currentWrapElm; + + // find the index of the first child list. + each(node.childNodes, function(n, index) { + if (n.nodeName === "UL" || n.nodeName === "OL") { + listIndex = index; + list = n; + return false; + } + }); + + // get the index of the bookmarks + each(node.childNodes, function(n, index) { + if (n.nodeName === "SPAN" && dom.getAttrib(n, "data-mce-type") == "bookmark") { + if (n.id == bookmark.id + "_start") { + startIndex = index; + } else if (n.id == bookmark.id + "_end") { + endIndex = index; + } + } + }); + + // if the selection spans across an embedded list, or there isn't an embedded list - handle processing normally + if (listIndex <= 0 || (startIndex < listIndex && endIndex > listIndex)) { + each(grep(node.childNodes), process); + return 0; + } else { + currentWrapElm = dom.clone(wrapElm, FALSE); + + // create a list of the nodes on the same side of the list as the selection + each(grep(node.childNodes), function(n, index) { + if ((startIndex < listIndex && index < listIndex) || (startIndex > listIndex && index > listIndex)) { + nodes.push(n); + n.parentNode.removeChild(n); + } + }); + + // insert the wrapping element either before or after the list. + if (startIndex < listIndex) { + node.insertBefore(currentWrapElm, list); + } else if (startIndex > listIndex) { + node.insertBefore(currentWrapElm, list.nextSibling); + } + + // add the new nodes to the list. + newWrappers.push(currentWrapElm); + + each(nodes, function(node) { + currentWrapElm.appendChild(node); + }); + + return currentWrapElm; + } + } + + function applyRngStyle(rng, bookmark, node_specific) { + var newWrappers = [], wrapName, wrapElm, contentEditable = true; + + // Setup wrapper element + wrapName = format.inline || format.block; + wrapElm = dom.create(wrapName); + setElementFormat(wrapElm); + + rangeUtils.walk(rng, function(nodes) { + var currentWrapElm; + + /** + * Process a list of nodes wrap them. + */ + function process(node) { + var nodeName, parentName, found, hasContentEditableState, lastContentEditable; + + lastContentEditable = contentEditable; + nodeName = node.nodeName.toLowerCase(); + parentName = node.parentNode.nodeName.toLowerCase(); + + // Node has a contentEditable value + if (node.nodeType === 1 && getContentEditable(node)) { + lastContentEditable = contentEditable; + contentEditable = getContentEditable(node) === "true"; + hasContentEditableState = true; // We don't want to wrap the container only it's children + } + + // Stop wrapping on br elements + if (isEq(nodeName, 'br')) { + currentWrapElm = 0; + + // Remove any br elements when we wrap things + if (format.block) { + dom.remove(node); + } + + return; + } + + // If node is wrapper type + if (format.wrapper && matchNode(node, name, vars)) { + currentWrapElm = 0; + return; + } + + // Can we rename the block + // TODO: Break this if up, too complex + if (contentEditable && !hasContentEditableState && format.block && + !format.wrapper && isTextBlock(nodeName) && isValid(parentName, wrapName)) { + node = dom.rename(node, wrapName); + setElementFormat(node); + newWrappers.push(node); + currentWrapElm = 0; + return; + } + + // Handle selector patterns + if (format.selector) { + // Look for matching formats + each(formatList, function(format) { + // Check collapsed state if it exists + if ('collapsed' in format && format.collapsed !== isCollapsed) { + return; + } + + if (dom.is(node, format.selector) && !isCaretNode(node)) { + setElementFormat(node, format); + found = true; + } + }); + + // Continue processing if a selector match wasn't found and a inline element is defined + if (!format.inline || found) { + currentWrapElm = 0; + return; + } + } + + // Is it valid to wrap this item + // TODO: Break this if up, too complex + if (contentEditable && !hasContentEditableState && isValid(wrapName, nodeName) && isValid(parentName, wrapName) && + !(!node_specific && node.nodeType === 3 && + node.nodeValue.length === 1 && + node.nodeValue.charCodeAt(0) === 65279) && + !isCaretNode(node) && + (!format.inline || !isBlock(node))) { + // Start wrapping + if (!currentWrapElm) { + // Wrap the node + currentWrapElm = dom.clone(wrapElm, FALSE); + node.parentNode.insertBefore(currentWrapElm, node); + newWrappers.push(currentWrapElm); + } + + currentWrapElm.appendChild(node); + } else if (nodeName == 'li' && bookmark) { + // Start wrapping - if we are in a list node and have a bookmark, then + // we will always begin by wrapping in a new element. + currentWrapElm = applyStyleToList(node, bookmark, wrapElm, newWrappers, process); + } else { + // Start a new wrapper for possible children + currentWrapElm = 0; + + each(grep(node.childNodes), process); + + if (hasContentEditableState) { + contentEditable = lastContentEditable; // Restore last contentEditable state from stack + } + + // End the last wrapper + currentWrapElm = 0; + } + } + + // Process siblings from range + each(nodes, process); + }); + + // Wrap links inside as well, for example color inside a link when the wrapper is around the link + if (format.wrap_links === false) { + each(newWrappers, function(node) { + function process(node) { + var i, currentWrapElm, children; + + if (node.nodeName === 'A') { + currentWrapElm = dom.clone(wrapElm, FALSE); + newWrappers.push(currentWrapElm); + + children = grep(node.childNodes); + for (i = 0; i < children.length; i++) { + currentWrapElm.appendChild(children[i]); + } + + node.appendChild(currentWrapElm); + } + + each(grep(node.childNodes), process); + } + + process(node); + }); + } + + // Cleanup + each(newWrappers, function(node) { + var childCount; + + function getChildCount(node) { + var count = 0; + + each(node.childNodes, function(node) { + if (!isWhiteSpaceNode(node) && !isBookmarkNode(node)) { + count++; + } + }); + + return count; + } + + function mergeStyles(node) { + var child, clone; + + each(node.childNodes, function(node) { + if (node.nodeType == 1 && !isBookmarkNode(node) && !isCaretNode(node)) { + child = node; + return FALSE; // break loop + } + }); + + // If child was found and of the same type as the current node + if (child && !isBookmarkNode(child) && matchName(child, format)) { + clone = dom.clone(child, FALSE); + setElementFormat(clone); + + dom.replace(clone, node, TRUE); + dom.remove(child, 1); + } + + return clone || node; + } + + childCount = getChildCount(node); + + // Remove empty nodes but only if there is multiple wrappers and they are not block + // elements so never remove single <h1></h1> since that would remove the + // currrent empty block element where the caret is at + if ((newWrappers.length > 1 || !isBlock(node)) && childCount === 0) { + dom.remove(node, 1); + return; + } + + if (format.inline || format.wrapper) { + // Merges the current node with it's children of similar type to reduce the number of elements + if (!format.exact && childCount === 1) { + node = mergeStyles(node); + } + + // Remove/merge children + each(formatList, function(format) { + // Merge all children of similar type will move styles from child to parent + // this: <span style="color:red"><b><span style="color:red; font-size:10px">text</span></b></span> + // will become: <span style="color:red"><b><span style="font-size:10px">text</span></b></span> + each(dom.select(format.inline, node), function(child) { + var parent; + + if (isBookmarkNode(child)) { + return; + } + + // When wrap_links is set to false we don't want + // to remove the format on children within links + if (format.wrap_links === false) { + parent = child.parentNode; + + do { + if (parent.nodeName === 'A') { + return; + } + } while ((parent = parent.parentNode)); + } + + removeFormat(format, vars, child, format.exact ? child : null); + }); + }); + + // Remove child if direct parent is of same type + if (matchNode(node.parentNode, name, vars)) { + dom.remove(node, 1); + node = 0; + return TRUE; + } + + // Look for parent with similar style format + if (format.merge_with_parents) { + dom.getParent(node.parentNode, function(parent) { + if (matchNode(parent, name, vars)) { + dom.remove(node, 1); + node = 0; + return TRUE; + } + }); + } + + // Merge next and previous siblings if they are similar <b>text</b><b>text</b> becomes <b>texttext</b> + if (node && format.merge_siblings !== false) { + node = mergeSiblings(getNonWhiteSpaceSibling(node), node); + node = mergeSiblings(node, getNonWhiteSpaceSibling(node, TRUE)); + } + } + }); + } + + if (format) { + if (node) { + if (node.nodeType) { + rng = dom.createRng(); + rng.setStartBefore(node); + rng.setEndAfter(node); + applyRngStyle(expandRng(rng, formatList), null, true); + } else { + applyRngStyle(node, null, true); + } + } else { + if (!isCollapsed || !format.inline || dom.select('td.mce-item-selected,th.mce-item-selected').length) { + // Obtain selection node before selection is unselected by applyRngStyle() + var curSelNode = ed.selection.getNode(); + + // If the formats have a default block and we can't find a parent block then + // start wrapping it with a DIV this is for forced_root_blocks: false + // It's kind of a hack but people should be using the default block type P since all desktop editors work that way + if (!forcedRootBlock && formatList[0].defaultBlock && !dom.getParent(curSelNode, dom.isBlock)) { + apply(formatList[0].defaultBlock); + } + + // Apply formatting to selection + ed.selection.setRng(adjustSelectionToVisibleSelection()); + bookmark = selection.getBookmark(); + applyRngStyle(expandRng(selection.getRng(TRUE), formatList), bookmark); + + // Colored nodes should be underlined so that the color of the underline matches the text color. + if (format.styles && (format.styles.color || format.styles.textDecoration)) { + walk(curSelNode, processUnderlineAndColor, 'childNodes'); + processUnderlineAndColor(curSelNode); + } + + selection.moveToBookmark(bookmark); + moveStart(selection.getRng(TRUE)); + ed.nodeChanged(); + } else { + performCaretAction('apply', name, vars); + } + } + } + } + + /** + * Removes the specified format from the current selection or specified node. + * + * @method remove + * @param {String} name Name of format to remove. + * @param {Object} vars Optional list of variables to replace within format before removing it. + * @param {Node/Range} node Optional node or DOM range to remove the format from defaults to current selection. + */ + function remove(name, vars, node) { + var formatList = get(name), format = formatList[0], bookmark, rng, contentEditable = true; + + // Merges the styles for each node + function process(node) { + var children, i, l, lastContentEditable, hasContentEditableState; + + // Node has a contentEditable value + if (node.nodeType === 1 && getContentEditable(node)) { + lastContentEditable = contentEditable; + contentEditable = getContentEditable(node) === "true"; + hasContentEditableState = true; // We don't want to wrap the container only it's children + } + + // Grab the children first since the nodelist might be changed + children = grep(node.childNodes); + + // Process current node + if (contentEditable && !hasContentEditableState) { + for (i = 0, l = formatList.length; i < l; i++) { + if (removeFormat(formatList[i], vars, node, node)) { + break; + } + } + } + + // Process the children + if (format.deep) { + if (children.length) { + for (i = 0, l = children.length; i < l; i++) { + process(children[i]); + } + + if (hasContentEditableState) { + contentEditable = lastContentEditable; // Restore last contentEditable state from stack + } + } + } + } + + function findFormatRoot(container) { + var formatRoot; + + // Find format root + each(getParents(container.parentNode).reverse(), function(parent) { + var format; + + // Find format root element + if (!formatRoot && parent.id != '_start' && parent.id != '_end') { + // Is the node matching the format we are looking for + format = matchNode(parent, name, vars); + if (format && format.split !== false) { + formatRoot = parent; + } + } + }); + + return formatRoot; + } + + function wrapAndSplit(format_root, container, target, split) { + var parent, clone, lastClone, firstClone, i, formatRootParent; + + // Format root found then clone formats and split it + if (format_root) { + formatRootParent = format_root.parentNode; + + for (parent = container.parentNode; parent && parent != formatRootParent; parent = parent.parentNode) { + clone = dom.clone(parent, FALSE); + + for (i = 0; i < formatList.length; i++) { + if (removeFormat(formatList[i], vars, clone, clone)) { + clone = 0; + break; + } + } + + // Build wrapper node + if (clone) { + if (lastClone) { + clone.appendChild(lastClone); + } + + if (!firstClone) { + firstClone = clone; + } + + lastClone = clone; + } + } + + // Never split block elements if the format is mixed + if (split && (!format.mixed || !isBlock(format_root))) { + container = dom.split(format_root, container); + } + + // Wrap container in cloned formats + if (lastClone) { + target.parentNode.insertBefore(lastClone, target); + firstClone.appendChild(target); + } + } + + return container; + } + + function splitToFormatRoot(container) { + return wrapAndSplit(findFormatRoot(container), container, container, true); + } + + function unwrap(start) { + var node = dom.get(start ? '_start' : '_end'), + out = node[start ? 'firstChild' : 'lastChild']; + + // If the end is placed within the start the result will be removed + // So this checks if the out node is a bookmark node if it is it + // checks for another more suitable node + if (isBookmarkNode(out)) { + out = out[start ? 'firstChild' : 'lastChild']; + } + + dom.remove(node, true); + + return out; + } + + function removeRngStyle(rng) { + var startContainer, endContainer; + var commonAncestorContainer = rng.commonAncestorContainer; + + rng = expandRng(rng, formatList, TRUE); + + if (format.split) { + startContainer = getContainer(rng, TRUE); + endContainer = getContainer(rng); + + if (startContainer != endContainer) { + // WebKit will render the table incorrectly if we wrap a TH or TD in a SPAN + // so let's see if we can use the first child instead + // This will happen if you triple click a table cell and use remove formatting + if (/^(TR|TH|TD)$/.test(startContainer.nodeName) && startContainer.firstChild) { + if (startContainer.nodeName == "TR") { + startContainer = startContainer.firstChild.firstChild || startContainer; + } else { + startContainer = startContainer.firstChild || startContainer; + } + } + + // Try to adjust endContainer as well if cells on the same row were selected - bug #6410 + if (commonAncestorContainer && + /^T(HEAD|BODY|FOOT|R)$/.test(commonAncestorContainer.nodeName) && + /^(TH|TD)$/.test(endContainer.nodeName) && endContainer.firstChild) { + endContainer = endContainer.firstChild || endContainer; + } + + // Wrap start/end nodes in span element since these might be cloned/moved + startContainer = wrap(startContainer, 'span', {id: '_start', 'data-mce-type': 'bookmark'}); + endContainer = wrap(endContainer, 'span', {id: '_end', 'data-mce-type': 'bookmark'}); + + // Split start/end + splitToFormatRoot(startContainer); + splitToFormatRoot(endContainer); + + // Unwrap start/end to get real elements again + startContainer = unwrap(TRUE); + endContainer = unwrap(); + } else { + startContainer = endContainer = splitToFormatRoot(startContainer); + } + + // Update range positions since they might have changed after the split operations + rng.startContainer = startContainer.parentNode; + rng.startOffset = nodeIndex(startContainer); + rng.endContainer = endContainer.parentNode; + rng.endOffset = nodeIndex(endContainer) + 1; + } + + // Remove items between start/end + rangeUtils.walk(rng, function(nodes) { + each(nodes, function(node) { + process(node); + + // Remove parent span if it only contains text-decoration: underline, yet a parent node is also underlined. + if (node.nodeType === 1 && ed.dom.getStyle(node, 'text-decoration') === 'underline' && + node.parentNode && getTextDecoration(node.parentNode) === 'underline') { + removeFormat({ + 'deep': false, + 'exact': true, + 'inline': 'span', + 'styles': { + 'textDecoration': 'underline' + } + }, null, node); + } + }); + }); + } + + // Handle node + if (node) { + if (node.nodeType) { + rng = dom.createRng(); + rng.setStartBefore(node); + rng.setEndAfter(node); + removeRngStyle(rng); + } else { + removeRngStyle(node); + } + + return; + } + + if (!selection.isCollapsed() || !format.inline || dom.select('td.mce-item-selected,th.mce-item-selected').length) { + bookmark = selection.getBookmark(); + removeRngStyle(selection.getRng(TRUE)); + selection.moveToBookmark(bookmark); + + // Check if start element still has formatting then we are at: "<b>text|</b>text" + // and need to move the start into the next text node + if (format.inline && match(name, vars, selection.getStart())) { + moveStart(selection.getRng(true)); + } + + ed.nodeChanged(); + } else { + performCaretAction('remove', name, vars); + } + } + + /** + * Toggles the specified format on/off. + * + * @method toggle + * @param {String} name Name of format to apply/remove. + * @param {Object} vars Optional list of variables to replace within format before applying/removing it. + * @param {Node} node Optional node to apply the format to or remove from. Defaults to current selection. + */ + function toggle(name, vars, node) { + var fmt = get(name); + + if (match(name, vars, node) && (!('toggle' in fmt[0]) || fmt[0].toggle)) { + remove(name, vars, node); + } else { + apply(name, vars, node); + } + } + + /** + * Return true/false if the specified node has the specified format. + * + * @method matchNode + * @param {Node} node Node to check the format on. + * @param {String} name Format name to check. + * @param {Object} vars Optional list of variables to replace before checking it. + * @param {Boolean} similar Match format that has similar properties. + * @return {Object} Returns the format object it matches or undefined if it doesn't match. + */ + function matchNode(node, name, vars, similar) { + var formatList = get(name), format, i, classes; + + function matchItems(node, format, item_name) { + var key, value, items = format[item_name], i; + + // Custom match + if (format.onmatch) { + return format.onmatch(node, format, item_name); + } + + // Check all items + if (items) { + // Non indexed object + if (items.length === undef) { + for (key in items) { + if (items.hasOwnProperty(key)) { + if (item_name === 'attributes') { + value = dom.getAttrib(node, key); + } else { + value = getStyle(node, key); + } + + if (similar && !value && !format.exact) { + return; + } + + if ((!similar || format.exact) && !isEq(value, normalizeStyleValue(replaceVars(items[key], vars), key))) { + return; + } + } + } + } else { + // Only one match needed for indexed arrays + for (i = 0; i < items.length; i++) { + if (item_name === 'attributes' ? dom.getAttrib(node, items[i]) : getStyle(node, items[i])) { + return format; + } + } + } + } + + return format; + } + + if (formatList && node) { + // Check each format in list + for (i = 0; i < formatList.length; i++) { + format = formatList[i]; + + // Name name, attributes, styles and classes + if (matchName(node, format) && matchItems(node, format, 'attributes') && matchItems(node, format, 'styles')) { + // Match classes + if ((classes = format.classes)) { + for (i = 0; i < classes.length; i++) { + if (!dom.hasClass(node, classes[i])) { + return; + } + } + } + + return format; + } + } + } + } + + /** + * Matches the current selection or specified node against the specified format name. + * + * @method match + * @param {String} name Name of format to match. + * @param {Object} vars Optional list of variables to replace before checking it. + * @param {Node} node Optional node to check. + * @return {boolean} true/false if the specified selection/node matches the format. + */ + function match(name, vars, node) { + var startNode; + + function matchParents(node) { + var root = dom.getRoot(); + + if (node === root) { + return false; + } + + // Find first node with similar format settings + node = dom.getParent(node, function(node) { + return node.parentNode === root || !!matchNode(node, name, vars, true); + }); + + // Do an exact check on the similar format element + return matchNode(node, name, vars); + } + + // Check specified node + if (node) { + return matchParents(node); + } + + // Check selected node + node = selection.getNode(); + if (matchParents(node)) { + return TRUE; + } + + // Check start node if it's different + startNode = selection.getStart(); + if (startNode != node) { + if (matchParents(startNode)) { + return TRUE; + } + } + + return FALSE; + } + + /** + * Matches the current selection against the array of formats and returns a new array with matching formats. + * + * @method matchAll + * @param {Array} names Name of format to match. + * @param {Object} vars Optional list of variables to replace before checking it. + * @return {Array} Array with matched formats. + */ + function matchAll(names, vars) { + var startElement, matchedFormatNames = [], checkedMap = {}; + + // Check start of selection for formats + startElement = selection.getStart(); + dom.getParent(startElement, function(node) { + var i, name; + + for (i = 0; i < names.length; i++) { + name = names[i]; + + if (!checkedMap[name] && matchNode(node, name, vars)) { + checkedMap[name] = true; + matchedFormatNames.push(name); + } + } + }, dom.getRoot()); + + return matchedFormatNames; + } + + /** + * Returns true/false if the specified format can be applied to the current selection or not. It + * will currently only check the state for selector formats, it returns true on all other format types. + * + * @method canApply + * @param {String} name Name of format to check. + * @return {boolean} true/false if the specified format can be applied to the current selection/node. + */ + function canApply(name) { + var formatList = get(name), startNode, parents, i, x, selector; + + if (formatList) { + startNode = selection.getStart(); + parents = getParents(startNode); + + for (x = formatList.length - 1; x >= 0; x--) { + selector = formatList[x].selector; + + // Format is not selector based then always return TRUE + // Is it has a defaultBlock then it's likely it can be applied for example align on a non block element line + if (!selector || formatList[x].defaultBlock) { + return TRUE; + } + + for (i = parents.length - 1; i >= 0; i--) { + if (dom.is(parents[i], selector)) { + return TRUE; + } + } + } + } + + return FALSE; + } + + /** + * Executes the specified callback when the current selection matches the formats or not. + * + * @method formatChanged + * @param {String} formats Comma separated list of formats to check for. + * @param {function} callback Callback with state and args when the format is changed/toggled on/off. + * @param {Boolean} similar True/false state if the match should handle similar or exact formats. + */ + function formatChanged(formats, callback, similar) { + var currentFormats; + + // Setup format node change logic + if (!formatChangeData) { + formatChangeData = {}; + currentFormats = {}; + + ed.on('NodeChange', function(e) { + var parents = getParents(e.element), matchedFormats = {}; + + // Check for new formats + each(formatChangeData, function(callbacks, format) { + each(parents, function(node) { + if (matchNode(node, format, {}, callbacks.similar)) { + if (!currentFormats[format]) { + // Execute callbacks + each(callbacks, function(callback) { + callback(true, {node: node, format: format, parents: parents}); + }); + + currentFormats[format] = callbacks; + } + + matchedFormats[format] = callbacks; + return false; + } + }); + }); + + // Check if current formats still match + each(currentFormats, function(callbacks, format) { + if (!matchedFormats[format]) { + delete currentFormats[format]; + + each(callbacks, function(callback) { + callback(false, {node: e.element, format: format, parents: parents}); + }); + } + }); + }); + } + + // Add format listeners + each(formats.split(','), function(format) { + if (!formatChangeData[format]) { + formatChangeData[format] = []; + formatChangeData[format].similar = similar; + } + + formatChangeData[format].push(callback); + }); + + return this; + } + + // Expose to public + extend(this, { + get: get, + register: register, + apply: apply, + remove: remove, + toggle: toggle, + match: match, + matchAll: matchAll, + matchNode: matchNode, + canApply: canApply, + formatChanged: formatChanged + }); + + // Initialize + defaultFormats(); + addKeyboardShortcuts(); + ed.on('BeforeGetContent', function() { + if (markCaretContainersBogus) { + markCaretContainersBogus(); + } + }); + ed.on('mouseup keydown', function(e) { + if (disableCaretContainer) { + disableCaretContainer(e); + } + }); + + // Private functions + + /** + * Checks if the specified nodes name matches the format inline/block or selector. + * + * @private + * @param {Node} node Node to match against the specified format. + * @param {Object} format Format object o match with. + * @return {boolean} true/false if the format matches. + */ + function matchName(node, format) { + // Check for inline match + if (isEq(node, format.inline)) { + return TRUE; + } + + // Check for block match + if (isEq(node, format.block)) { + return TRUE; + } + + // Check for selector match + if (format.selector) { + return node.nodeType == 1 && dom.is(node, format.selector); + } + } + + /** + * Compares two string/nodes regardless of their case. + * + * @private + * @param {String/Node} Node or string to compare. + * @param {String/Node} Node or string to compare. + * @return {boolean} True/false if they match. + */ + function isEq(str1, str2) { + str1 = str1 || ''; + str2 = str2 || ''; + + str1 = '' + (str1.nodeName || str1); + str2 = '' + (str2.nodeName || str2); + + return str1.toLowerCase() == str2.toLowerCase(); + } + + /** + * Returns the style by name on the specified node. This method modifies the style + * contents to make it more easy to match. This will resolve a few browser issues. + * + * @private + * @param {Node} node to get style from. + * @param {String} name Style name to get. + * @return {String} Style item value. + */ + function getStyle(node, name) { + return normalizeStyleValue(dom.getStyle(node, name), name); + } + + /** + * Normalize style value by name. This method modifies the style contents + * to make it more easy to match. This will resolve a few browser issues. + * + * @private + * @param {Node} node to get style from. + * @param {String} name Style name to get. + * @return {String} Style item value. + */ + function normalizeStyleValue(value, name) { + // Force the format to hex + if (name == 'color' || name == 'backgroundColor') { + value = dom.toHex(value); + } + + // Opera will return bold as 700 + if (name == 'fontWeight' && value == 700) { + value = 'bold'; + } + + // Normalize fontFamily so "'Font name', Font" becomes: "Font name,Font" + if (name == 'fontFamily') { + value = value.replace(/[\'\"]/g, '').replace(/,\s+/g, ','); + } + + return '' + value; + } + + /** + * Replaces variables in the value. The variable format is %var. + * + * @private + * @param {String} value Value to replace variables in. + * @param {Object} vars Name/value array with variables to replace. + * @return {String} New value with replaced variables. + */ + function replaceVars(value, vars) { + if (typeof(value) != "string") { + value = value(vars); + } else if (vars) { + value = value.replace(/%(\w+)/g, function(str, name) { + return vars[name] || str; + }); + } + + return value; + } + + function isWhiteSpaceNode(node) { + return node && node.nodeType === 3 && /^([\t \r\n]+|)$/.test(node.nodeValue); + } + + function wrap(node, name, attrs) { + var wrapper = dom.create(name, attrs); + + node.parentNode.insertBefore(wrapper, node); + wrapper.appendChild(node); + + return wrapper; + } + + /** + * Expands the specified range like object to depending on format. + * + * For example on block formats it will move the start/end position + * to the beginning of the current block. + * + * @private + * @param {Object} rng Range like object. + * @param {Array} formats Array with formats to expand by. + * @return {Object} Expanded range like object. + */ + function expandRng(rng, format, remove) { + var lastIdx, leaf, endPoint, + startContainer = rng.startContainer, + startOffset = rng.startOffset, + endContainer = rng.endContainer, + endOffset = rng.endOffset; + + // This function walks up the tree if there is no siblings before/after the node + function findParentContainer(start) { + var container, parent, sibling, siblingName, root; + + container = parent = start ? startContainer : endContainer; + siblingName = start ? 'previousSibling' : 'nextSibling'; + root = dom.getRoot(); + + function isBogusBr(node) { + return node.nodeName == "BR" && node.getAttribute('data-mce-bogus') && !node.nextSibling; + } + + // If it's a text node and the offset is inside the text + if (container.nodeType == 3 && !isWhiteSpaceNode(container)) { + if (start ? startOffset > 0 : endOffset < container.nodeValue.length) { + return container; + } + } + + /*eslint no-constant-condition:0 */ + while (true) { + // Stop expanding on block elements + if (!format[0].block_expand && isBlock(parent)) { + return parent; + } + + // Walk left/right + for (sibling = parent[siblingName]; sibling; sibling = sibling[siblingName]) { + if (!isBookmarkNode(sibling) && !isWhiteSpaceNode(sibling) && !isBogusBr(sibling)) { + return parent; + } + } + + // Check if we can move up are we at root level or body level + if (parent.parentNode == root) { + container = parent; + break; + } + + parent = parent.parentNode; + } + + return container; + } + + // This function walks down the tree to find the leaf at the selection. + // The offset is also returned as if node initially a leaf, the offset may be in the middle of the text node. + function findLeaf(node, offset) { + if (offset === undef) { + offset = node.nodeType === 3 ? node.length : node.childNodes.length; + } + + while (node && node.hasChildNodes()) { + node = node.childNodes[offset]; + if (node) { + offset = node.nodeType === 3 ? node.length : node.childNodes.length; + } + } + return { node: node, offset: offset }; + } + + // If index based start position then resolve it + if (startContainer.nodeType == 1 && startContainer.hasChildNodes()) { + lastIdx = startContainer.childNodes.length - 1; + startContainer = startContainer.childNodes[startOffset > lastIdx ? lastIdx : startOffset]; + + if (startContainer.nodeType == 3) { + startOffset = 0; + } + } + + // If index based end position then resolve it + if (endContainer.nodeType == 1 && endContainer.hasChildNodes()) { + lastIdx = endContainer.childNodes.length - 1; + endContainer = endContainer.childNodes[endOffset > lastIdx ? lastIdx : endOffset - 1]; + + if (endContainer.nodeType == 3) { + endOffset = endContainer.nodeValue.length; + } + } + + // Expands the node to the closes contentEditable false element if it exists + function findParentContentEditable(node) { + var parent = node; + + while (parent) { + if (parent.nodeType === 1 && getContentEditable(parent)) { + return getContentEditable(parent) === "false" ? parent : node; + } + + parent = parent.parentNode; + } + + return node; + } + + function findWordEndPoint(container, offset, start) { + var walker, node, pos, lastTextNode; + + function findSpace(node, offset) { + var pos, pos2, str = node.nodeValue; + + if (typeof(offset) == "undefined") { + offset = start ? str.length : 0; + } + + if (start) { + pos = str.lastIndexOf(' ', offset); + pos2 = str.lastIndexOf('\u00a0', offset); + pos = pos > pos2 ? pos : pos2; + + // Include the space on remove to avoid tag soup + if (pos !== -1 && !remove) { + pos++; + } + } else { + pos = str.indexOf(' ', offset); + pos2 = str.indexOf('\u00a0', offset); + pos = pos !== -1 && (pos2 === -1 || pos < pos2) ? pos : pos2; + } + + return pos; + } + + if (container.nodeType === 3) { + pos = findSpace(container, offset); + + if (pos !== -1) { + return {container: container, offset: pos}; + } + + lastTextNode = container; + } + + // Walk the nodes inside the block + walker = new TreeWalker(container, dom.getParent(container, isBlock) || ed.getBody()); + while ((node = walker[start ? 'prev' : 'next']())) { + if (node.nodeType === 3) { + lastTextNode = node; + pos = findSpace(node); + + if (pos !== -1) { + return {container: node, offset: pos}; + } + } else if (isBlock(node)) { + break; + } + } + + if (lastTextNode) { + if (start) { + offset = 0; + } else { + offset = lastTextNode.length; + } + + return {container: lastTextNode, offset: offset}; + } + } + + function findSelectorEndPoint(container, sibling_name) { + var parents, i, y, curFormat; + + if (container.nodeType == 3 && container.nodeValue.length === 0 && container[sibling_name]) { + container = container[sibling_name]; + } + + parents = getParents(container); + for (i = 0; i < parents.length; i++) { + for (y = 0; y < format.length; y++) { + curFormat = format[y]; + + // If collapsed state is set then skip formats that doesn't match that + if ("collapsed" in curFormat && curFormat.collapsed !== rng.collapsed) { + continue; + } + + if (dom.is(parents[i], curFormat.selector)) { + return parents[i]; + } + } + } + + return container; + } + + function findBlockEndPoint(container, sibling_name) { + var node, root = dom.getRoot(); + + // Expand to block of similar type + if (!format[0].wrapper) { + node = dom.getParent(container, format[0].block, root); + } + + // Expand to first wrappable block element or any block element + if (!node) { + node = dom.getParent(container.nodeType == 3 ? container.parentNode : container, function(node) { + // Fixes #6183 where it would expand to editable parent element in inline mode + return node != root && isTextBlock(node); + }); + } + + // Exclude inner lists from wrapping + if (node && format[0].wrapper) { + node = getParents(node, 'ul,ol').reverse()[0] || node; + } + + // Didn't find a block element look for first/last wrappable element + if (!node) { + node = container; + + while (node[sibling_name] && !isBlock(node[sibling_name])) { + node = node[sibling_name]; + + // Break on BR but include it will be removed later on + // we can't remove it now since we need to check if it can be wrapped + if (isEq(node, 'br')) { + break; + } + } + } + + return node || container; + } + + // Expand to closest contentEditable element + startContainer = findParentContentEditable(startContainer); + endContainer = findParentContentEditable(endContainer); + + // Exclude bookmark nodes if possible + if (isBookmarkNode(startContainer.parentNode) || isBookmarkNode(startContainer)) { + startContainer = isBookmarkNode(startContainer) ? startContainer : startContainer.parentNode; + startContainer = startContainer.nextSibling || startContainer; + + if (startContainer.nodeType == 3) { + startOffset = 0; + } + } + + if (isBookmarkNode(endContainer.parentNode) || isBookmarkNode(endContainer)) { + endContainer = isBookmarkNode(endContainer) ? endContainer : endContainer.parentNode; + endContainer = endContainer.previousSibling || endContainer; + + if (endContainer.nodeType == 3) { + endOffset = endContainer.length; + } + } + + if (format[0].inline) { + if (rng.collapsed) { + // Expand left to closest word boundary + endPoint = findWordEndPoint(startContainer, startOffset, true); + if (endPoint) { + startContainer = endPoint.container; + startOffset = endPoint.offset; + } + + // Expand right to closest word boundary + endPoint = findWordEndPoint(endContainer, endOffset); + if (endPoint) { + endContainer = endPoint.container; + endOffset = endPoint.offset; + } + } + + // Avoid applying formatting to a trailing space. + leaf = findLeaf(endContainer, endOffset); + if (leaf.node) { + while (leaf.node && leaf.offset === 0 && leaf.node.previousSibling) { + leaf = findLeaf(leaf.node.previousSibling); + } + + if (leaf.node && leaf.offset > 0 && leaf.node.nodeType === 3 && + leaf.node.nodeValue.charAt(leaf.offset - 1) === ' ') { + + if (leaf.offset > 1) { + endContainer = leaf.node; + endContainer.splitText(leaf.offset - 1); + } + } + } + } + + // Move start/end point up the tree if the leaves are sharp and if we are in different containers + // Example * becomes !: !<p><b><i>*text</i><i>text*</i></b></p>! + // This will reduce the number of wrapper elements that needs to be created + // Move start point up the tree + if (format[0].inline || format[0].block_expand) { + if (!format[0].inline || (startContainer.nodeType != 3 || startOffset === 0)) { + startContainer = findParentContainer(true); + } + + if (!format[0].inline || (endContainer.nodeType != 3 || endOffset === endContainer.nodeValue.length)) { + endContainer = findParentContainer(); + } + } + + // Expand start/end container to matching selector + if (format[0].selector && format[0].expand !== FALSE && !format[0].inline) { + // Find new startContainer/endContainer if there is better one + startContainer = findSelectorEndPoint(startContainer, 'previousSibling'); + endContainer = findSelectorEndPoint(endContainer, 'nextSibling'); + } + + // Expand start/end container to matching block element or text node + if (format[0].block || format[0].selector) { + // Find new startContainer/endContainer if there is better one + startContainer = findBlockEndPoint(startContainer, 'previousSibling'); + endContainer = findBlockEndPoint(endContainer, 'nextSibling'); + + // Non block element then try to expand up the leaf + if (format[0].block) { + if (!isBlock(startContainer)) { + startContainer = findParentContainer(true); + } + + if (!isBlock(endContainer)) { + endContainer = findParentContainer(); + } + } + } + + // Setup index for startContainer + if (startContainer.nodeType == 1) { + startOffset = nodeIndex(startContainer); + startContainer = startContainer.parentNode; + } + + // Setup index for endContainer + if (endContainer.nodeType == 1) { + endOffset = nodeIndex(endContainer) + 1; + endContainer = endContainer.parentNode; + } + + // Return new range like object + return { + startContainer: startContainer, + startOffset: startOffset, + endContainer: endContainer, + endOffset: endOffset + }; + } + + /** + * Removes the specified format for the specified node. It will also remove the node if it doesn't have + * any attributes if the format specifies it to do so. + * + * @private + * @param {Object} format Format object with items to remove from node. + * @param {Object} vars Name/value object with variables to apply to format. + * @param {Node} node Node to remove the format styles on. + * @param {Node} compare_node Optional compare node, if specified the styles will be compared to that node. + * @return {Boolean} True/false if the node was removed or not. + */ + function removeFormat(format, vars, node, compare_node) { + var i, attrs, stylesModified; + + // Check if node matches format + if (!matchName(node, format)) { + return FALSE; + } + + // Should we compare with format attribs and styles + if (format.remove != 'all') { + // Remove styles + each(format.styles, function(value, name) { + value = normalizeStyleValue(replaceVars(value, vars), name); + + // Indexed array + if (typeof(name) === 'number') { + name = value; + compare_node = 0; + } + + if (!compare_node || isEq(getStyle(compare_node, name), value)) { + dom.setStyle(node, name, ''); + } + + stylesModified = 1; + }); + + // Remove style attribute if it's empty + if (stylesModified && dom.getAttrib(node, 'style') === '') { + node.removeAttribute('style'); + node.removeAttribute('data-mce-style'); + } + + // Remove attributes + each(format.attributes, function(value, name) { + var valueOut; + + value = replaceVars(value, vars); + + // Indexed array + if (typeof(name) === 'number') { + name = value; + compare_node = 0; + } + + if (!compare_node || isEq(dom.getAttrib(compare_node, name), value)) { + // Keep internal classes + if (name == 'class') { + value = dom.getAttrib(node, name); + if (value) { + // Build new class value where everything is removed except the internal prefixed classes + valueOut = ''; + each(value.split(/\s+/), function(cls) { + if (/mce\w+/.test(cls)) { + valueOut += (valueOut ? ' ' : '') + cls; + } + }); + + // We got some internal classes left + if (valueOut) { + dom.setAttrib(node, name, valueOut); + return; + } + } + } + + // IE6 has a bug where the attribute doesn't get removed correctly + if (name == "class") { + node.removeAttribute('className'); + } + + // Remove mce prefixed attributes + if (MCE_ATTR_RE.test(name)) { + node.removeAttribute('data-mce-' + name); + } + + node.removeAttribute(name); + } + }); + + // Remove classes + each(format.classes, function(value) { + value = replaceVars(value, vars); + + if (!compare_node || dom.hasClass(compare_node, value)) { + dom.removeClass(node, value); + } + }); + + // Check for non internal attributes + attrs = dom.getAttribs(node); + for (i = 0; i < attrs.length; i++) { + if (attrs[i].nodeName.indexOf('_') !== 0) { + return FALSE; + } + } + } + + // Remove the inline child if it's empty for example <b> or <span> + if (format.remove != 'none') { + removeNode(node, format); + return TRUE; + } + } + + /** + * Removes the node and wrap it's children in paragraphs before doing so or + * appends BR elements to the beginning/end of the block element if forcedRootBlocks is disabled. + * + * If the div in the node below gets removed: + * text<div>text</div>text + * + * Output becomes: + * text<div><br />text<br /></div>text + * + * So when the div is removed the result is: + * text<br />text<br />text + * + * @private + * @param {Node} node Node to remove + apply BR/P elements to. + * @param {Object} format Format rule. + * @return {Node} Input node. + */ + function removeNode(node, format) { + var parentNode = node.parentNode, rootBlockElm; + + function find(node, next, inc) { + node = getNonWhiteSpaceSibling(node, next, inc); + + return !node || (node.nodeName == 'BR' || isBlock(node)); + } + + if (format.block) { + if (!forcedRootBlock) { + // Append BR elements if needed before we remove the block + if (isBlock(node) && !isBlock(parentNode)) { + if (!find(node, FALSE) && !find(node.firstChild, TRUE, 1)) { + node.insertBefore(dom.create('br'), node.firstChild); + } + + if (!find(node, TRUE) && !find(node.lastChild, FALSE, 1)) { + node.appendChild(dom.create('br')); + } + } + } else { + // Wrap the block in a forcedRootBlock if we are at the root of document + if (parentNode == dom.getRoot()) { + if (!format.list_block || !isEq(node, format.list_block)) { + each(grep(node.childNodes), function(node) { + if (isValid(forcedRootBlock, node.nodeName.toLowerCase())) { + if (!rootBlockElm) { + rootBlockElm = wrap(node, forcedRootBlock); + dom.setAttribs(rootBlockElm, ed.settings.forced_root_block_attrs); + } else { + rootBlockElm.appendChild(node); + } + } else { + rootBlockElm = 0; + } + }); + } + } + } + } + + // Never remove nodes that isn't the specified inline element if a selector is specified too + if (format.selector && format.inline && !isEq(format.inline, node)) { + return; + } + + dom.remove(node, 1); + } + + /** + * Returns the next/previous non whitespace node. + * + * @private + * @param {Node} node Node to start at. + * @param {boolean} next (Optional) Include next or previous node defaults to previous. + * @param {boolean} inc (Optional) Include the current node in checking. Defaults to false. + * @return {Node} Next or previous node or undefined if it wasn't found. + */ + function getNonWhiteSpaceSibling(node, next, inc) { + if (node) { + next = next ? 'nextSibling' : 'previousSibling'; + + for (node = inc ? node : node[next]; node; node = node[next]) { + if (node.nodeType == 1 || !isWhiteSpaceNode(node)) { + return node; + } + } + } + } + + /** + * Checks if the specified node is a bookmark node or not. + * + * @private + * @param {Node} node Node to check if it's a bookmark node or not. + * @return {Boolean} true/false if the node is a bookmark node. + */ + function isBookmarkNode(node) { + return node && node.nodeType == 1 && node.getAttribute('data-mce-type') == 'bookmark'; + } + + /** + * Merges the next/previous sibling element if they match. + * + * @private + * @param {Node} prev Previous node to compare/merge. + * @param {Node} next Next node to compare/merge. + * @return {Node} Next node if we didn't merge and prev node if we did. + */ + function mergeSiblings(prev, next) { + var sibling, tmpSibling; + + /** + * Compares two nodes and checks if it's attributes and styles matches. + * This doesn't compare classes as items since their order is significant. + * + * @private + * @param {Node} node1 First node to compare with. + * @param {Node} node2 Second node to compare with. + * @return {boolean} True/false if the nodes are the same or not. + */ + function compareElements(node1, node2) { + // Not the same name + if (node1.nodeName != node2.nodeName) { + return FALSE; + } + + /** + * Returns all the nodes attributes excluding internal ones, styles and classes. + * + * @private + * @param {Node} node Node to get attributes from. + * @return {Object} Name/value object with attributes and attribute values. + */ + function getAttribs(node) { + var attribs = {}; + + each(dom.getAttribs(node), function(attr) { + var name = attr.nodeName.toLowerCase(); + + // Don't compare internal attributes or style + if (name.indexOf('_') !== 0 && name !== 'style' && name !== 'data-mce-style') { + attribs[name] = dom.getAttrib(node, name); + } + }); + + return attribs; + } + + /** + * Compares two objects checks if it's key + value exists in the other one. + * + * @private + * @param {Object} obj1 First object to compare. + * @param {Object} obj2 Second object to compare. + * @return {boolean} True/false if the objects matches or not. + */ + function compareObjects(obj1, obj2) { + var value, name; + + for (name in obj1) { + // Obj1 has item obj2 doesn't have + if (obj1.hasOwnProperty(name)) { + value = obj2[name]; + + // Obj2 doesn't have obj1 item + if (value === undef) { + return FALSE; + } + + // Obj2 item has a different value + if (obj1[name] != value) { + return FALSE; + } + + // Delete similar value + delete obj2[name]; + } + } + + // Check if obj 2 has something obj 1 doesn't have + for (name in obj2) { + // Obj2 has item obj1 doesn't have + if (obj2.hasOwnProperty(name)) { + return FALSE; + } + } + + return TRUE; + } + + // Attribs are not the same + if (!compareObjects(getAttribs(node1), getAttribs(node2))) { + return FALSE; + } + + // Styles are not the same + if (!compareObjects(dom.parseStyle(dom.getAttrib(node1, 'style')), dom.parseStyle(dom.getAttrib(node2, 'style')))) { + return FALSE; + } + + return !isBookmarkNode(node1) && !isBookmarkNode(node2); + } + + function findElementSibling(node, sibling_name) { + for (sibling = node; sibling; sibling = sibling[sibling_name]) { + if (sibling.nodeType == 3 && sibling.nodeValue.length !== 0) { + return node; + } + + if (sibling.nodeType == 1 && !isBookmarkNode(sibling)) { + return sibling; + } + } + + return node; + } + + // Check if next/prev exists and that they are elements + if (prev && next) { + // If previous sibling is empty then jump over it + prev = findElementSibling(prev, 'previousSibling'); + next = findElementSibling(next, 'nextSibling'); + + // Compare next and previous nodes + if (compareElements(prev, next)) { + // Append nodes between + for (sibling = prev.nextSibling; sibling && sibling != next;) { + tmpSibling = sibling; + sibling = sibling.nextSibling; + prev.appendChild(tmpSibling); + } + + // Remove next node + dom.remove(next); + + // Move children into prev node + each(grep(next.childNodes), function(node) { + prev.appendChild(node); + }); + + return prev; + } + } + + return next; + } + + function getContainer(rng, start) { + var container, offset, lastIdx; + + container = rng[start ? 'startContainer' : 'endContainer']; + offset = rng[start ? 'startOffset' : 'endOffset']; + + if (container.nodeType == 1) { + lastIdx = container.childNodes.length - 1; + + if (!start && offset) { + offset--; + } + + container = container.childNodes[offset > lastIdx ? lastIdx : offset]; + } + + // If start text node is excluded then walk to the next node + if (container.nodeType === 3 && start && offset >= container.nodeValue.length) { + container = new TreeWalker(container, ed.getBody()).next() || container; + } + + // If end text node is excluded then walk to the previous node + if (container.nodeType === 3 && !start && offset === 0) { + container = new TreeWalker(container, ed.getBody()).prev() || container; + } + + return container; + } + + function performCaretAction(type, name, vars) { + var caretContainerId = '_mce_caret', debug = ed.settings.caret_debug; + + // Creates a caret container bogus element + function createCaretContainer(fill) { + var caretContainer = dom.create('span', {id: caretContainerId, 'data-mce-bogus': true, style: debug ? 'color:red' : ''}); + + if (fill) { + caretContainer.appendChild(ed.getDoc().createTextNode(INVISIBLE_CHAR)); + } + + return caretContainer; + } + + function isCaretContainerEmpty(node, nodes) { + while (node) { + if ((node.nodeType === 3 && node.nodeValue !== INVISIBLE_CHAR) || node.childNodes.length > 1) { + return false; + } + + // Collect nodes + if (nodes && node.nodeType === 1) { + nodes.push(node); + } + + node = node.firstChild; + } + + return true; + } + + // Returns any parent caret container element + function getParentCaretContainer(node) { + while (node) { + if (node.id === caretContainerId) { + return node; + } + + node = node.parentNode; + } + } + + // Finds the first text node in the specified node + function findFirstTextNode(node) { + var walker; + + if (node) { + walker = new TreeWalker(node, node); + + for (node = walker.current(); node; node = walker.next()) { + if (node.nodeType === 3) { + return node; + } + } + } + } + + // Removes the caret container for the specified node or all on the current document + function removeCaretContainer(node, move_caret) { + var child, rng; + + if (!node) { + node = getParentCaretContainer(selection.getStart()); + + if (!node) { + while ((node = dom.get(caretContainerId))) { + removeCaretContainer(node, false); + } + } + } else { + rng = selection.getRng(true); + + if (isCaretContainerEmpty(node)) { + if (move_caret !== false) { + rng.setStartBefore(node); + rng.setEndBefore(node); + } + + dom.remove(node); + } else { + child = findFirstTextNode(node); + + if (child.nodeValue.charAt(0) === INVISIBLE_CHAR) { + child = child.deleteData(0, 1); + } + + dom.remove(node, 1); + } + + selection.setRng(rng); + } + } + + // Applies formatting to the caret postion + function applyCaretFormat() { + var rng, caretContainer, textNode, offset, bookmark, container, text; + + rng = selection.getRng(true); + offset = rng.startOffset; + container = rng.startContainer; + text = container.nodeValue; + + caretContainer = getParentCaretContainer(selection.getStart()); + if (caretContainer) { + textNode = findFirstTextNode(caretContainer); + } + + // Expand to word is caret is in the middle of a text node and the char before/after is a alpha numeric character + if (text && offset > 0 && offset < text.length && /\w/.test(text.charAt(offset)) && /\w/.test(text.charAt(offset - 1))) { + // Get bookmark of caret position + bookmark = selection.getBookmark(); + + // Collapse bookmark range (WebKit) + rng.collapse(true); + + // Expand the range to the closest word and split it at those points + rng = expandRng(rng, get(name)); + rng = rangeUtils.split(rng); + + // Apply the format to the range + apply(name, vars, rng); + + // Move selection back to caret position + selection.moveToBookmark(bookmark); + } else { + if (!caretContainer || textNode.nodeValue !== INVISIBLE_CHAR) { + caretContainer = createCaretContainer(true); + textNode = caretContainer.firstChild; + + rng.insertNode(caretContainer); + offset = 1; + + apply(name, vars, caretContainer); + } else { + apply(name, vars, caretContainer); + } + + // Move selection to text node + selection.setCursorLocation(textNode, offset); + } + } + + function removeCaretFormat() { + var rng = selection.getRng(true), container, offset, bookmark, + hasContentAfter, node, formatNode, parents = [], i, caretContainer; + + container = rng.startContainer; + offset = rng.startOffset; + node = container; + + if (container.nodeType == 3) { + if (offset != container.nodeValue.length || container.nodeValue === INVISIBLE_CHAR) { + hasContentAfter = true; + } + + node = node.parentNode; + } + + while (node) { + if (matchNode(node, name, vars)) { + formatNode = node; + break; + } + + if (node.nextSibling) { + hasContentAfter = true; + } + + parents.push(node); + node = node.parentNode; + } + + // Node doesn't have the specified format + if (!formatNode) { + return; + } + + // Is there contents after the caret then remove the format on the element + if (hasContentAfter) { + // Get bookmark of caret position + bookmark = selection.getBookmark(); + + // Collapse bookmark range (WebKit) + rng.collapse(true); + + // Expand the range to the closest word and split it at those points + rng = expandRng(rng, get(name), true); + rng = rangeUtils.split(rng); + + // Remove the format from the range + remove(name, vars, rng); + + // Move selection back to caret position + selection.moveToBookmark(bookmark); + } else { + caretContainer = createCaretContainer(); + + node = caretContainer; + for (i = parents.length - 1; i >= 0; i--) { + node.appendChild(dom.clone(parents[i], false)); + node = node.firstChild; + } + + // Insert invisible character into inner most format element + node.appendChild(dom.doc.createTextNode(INVISIBLE_CHAR)); + node = node.firstChild; + + var block = dom.getParent(formatNode, isTextBlock); + + if (block && dom.isEmpty(block)) { + // Replace formatNode with caretContainer when removing format from empty block like <p><b>|</b></p> + formatNode.parentNode.replaceChild(caretContainer, formatNode); + } else { + // Insert caret container after the formated node + dom.insertAfter(caretContainer, formatNode); + } + + // Move selection to text node + selection.setCursorLocation(node, 1); + + // If the formatNode is empty, we can remove it safely. + if (dom.isEmpty(formatNode)) { + dom.remove(formatNode); + } + } + } + + // Checks if the parent caret container node isn't empty if that is the case it + // will remove the bogus state on all children that isn't empty + function unmarkBogusCaretParents() { + var caretContainer; + + caretContainer = getParentCaretContainer(selection.getStart()); + if (caretContainer && !dom.isEmpty(caretContainer)) { + walk(caretContainer, function(node) { + if (node.nodeType == 1 && node.id !== caretContainerId && !dom.isEmpty(node)) { + dom.setAttrib(node, 'data-mce-bogus', null); + } + }, 'childNodes'); + } + } + + // Only bind the caret events once + if (!ed._hasCaretEvents) { + // Mark current caret container elements as bogus when getting the contents so we don't end up with empty elements + markCaretContainersBogus = function() { + var nodes = [], i; + + if (isCaretContainerEmpty(getParentCaretContainer(selection.getStart()), nodes)) { + // Mark children + i = nodes.length; + while (i--) { + dom.setAttrib(nodes[i], 'data-mce-bogus', '1'); + } + } + }; + + disableCaretContainer = function(e) { + var keyCode = e.keyCode; + + removeCaretContainer(); + + // Remove caret container on keydown and it's a backspace, enter or left/right arrow keys + if (keyCode == 8 || keyCode == 37 || keyCode == 39) { + removeCaretContainer(getParentCaretContainer(selection.getStart())); + } + + unmarkBogusCaretParents(); + }; + + // Remove bogus state if they got filled by contents using editor.selection.setContent + ed.on('SetContent', function(e) { + if (e.selection) { + unmarkBogusCaretParents(); + } + }); + ed._hasCaretEvents = true; + } + + // Do apply or remove caret format + if (type == "apply") { + applyCaretFormat(); + } else { + removeCaretFormat(); + } + } + + /** + * Moves the start to the first suitable text node. + */ + function moveStart(rng) { + var container = rng.startContainer, + offset = rng.startOffset, isAtEndOfText, + walker, node, nodes, tmpNode; + + // Convert text node into index if possible + if (container.nodeType == 3 && offset >= container.nodeValue.length) { + // Get the parent container location and walk from there + offset = nodeIndex(container); + container = container.parentNode; + isAtEndOfText = true; + } + + // Move startContainer/startOffset in to a suitable node + if (container.nodeType == 1) { + nodes = container.childNodes; + container = nodes[Math.min(offset, nodes.length - 1)]; + walker = new TreeWalker(container, dom.getParent(container, dom.isBlock)); + + // If offset is at end of the parent node walk to the next one + if (offset > nodes.length - 1 || isAtEndOfText) { + walker.next(); + } + + for (node = walker.current(); node; node = walker.next()) { + if (node.nodeType == 3 && !isWhiteSpaceNode(node)) { + // IE has a "neat" feature where it moves the start node into the closest element + // we can avoid this by inserting an element before it and then remove it after we set the selection + tmpNode = dom.create('a', null, INVISIBLE_CHAR); + node.parentNode.insertBefore(tmpNode, node); + + // Set selection and remove tmpNode + rng.setStart(node, 0); + selection.setRng(rng); + dom.remove(tmpNode); + + return; + } + } + } + } + }; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/LegacyInput.js b/common/static/js/vendor/tinymce/js/tinymce/classes/LegacyInput.js new file mode 100755 index 00000000000..2f3f55985c6 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/LegacyInput.js @@ -0,0 +1,73 @@ +/** + * LegacyInput.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +define("tinymce/LegacyInput", [ + "tinymce/EditorManager", + "tinymce/util/Tools" +], function(EditorManager, Tools) { + var each = Tools.each, explode = Tools.explode; + + EditorManager.on('AddEditor', function(e) { + var editor = e.editor; + + editor.on('preInit', function() { + var filters, fontSizes, dom, settings = editor.settings; + + function replaceWithSpan(node, styles) { + each(styles, function(value, name) { + if (value) { + dom.setStyle(node, name, value); + } + }); + + dom.rename(node, 'span'); + } + + function convert(e) { + dom = editor.dom; + + if (settings.convert_fonts_to_spans) { + each(dom.select('font,u,strike', e.node), function(node) { + filters[node.nodeName.toLowerCase()](dom, node); + }); + } + } + + if (settings.inline_styles) { + fontSizes = explode(settings.font_size_legacy_values); + + filters = { + font: function(dom, node) { + replaceWithSpan(node, { + backgroundColor: node.style.backgroundColor, + color: node.color, + fontFamily: node.face, + fontSize: fontSizes[parseInt(node.size, 10) - 1] + }); + }, + + u: function(dom, node) { + replaceWithSpan(node, { + textDecoration: 'underline' + }); + }, + + strike: function(dom, node) { + replaceWithSpan(node, { + textDecoration: 'line-through' + }); + } + }; + + editor.on('PreProcess SetContent', convert); + } + }); + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/Shortcuts.js b/common/static/js/vendor/tinymce/js/tinymce/classes/Shortcuts.js new file mode 100755 index 00000000000..03051d8e5ef --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/Shortcuts.js @@ -0,0 +1,111 @@ +/** + * Shortcuts.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Contains all logic for handling of keyboard shortcuts. + */ +define("tinymce/Shortcuts", [ + "tinymce/util/Tools", + "tinymce/Env" +], function(Tools, Env) { + var each = Tools.each, explode = Tools.explode; + + var keyCodeLookup = { + "f9": 120, + "f10": 121, + "f11": 122 + }; + + return function(editor) { + var self = this, shortcuts = {}; + + editor.on('keyup keypress keydown', function(e) { + if (e.altKey || e.ctrlKey || e.metaKey) { + each(shortcuts, function(shortcut) { + var ctrlKey = Env.mac ? e.metaKey : e.ctrlKey; + + if (shortcut.ctrl != ctrlKey || shortcut.alt != e.altKey || shortcut.shift != e.shiftKey) { + return; + } + + if (e.keyCode == shortcut.keyCode || (e.charCode && e.charCode == shortcut.charCode)) { + e.preventDefault(); + + if (e.type == "keydown") { + shortcut.func.call(shortcut.scope); + } + + return true; + } + }); + } + }); + + /** + * Adds a keyboard shortcut for some command or function. + * + * @method addShortcut + * @param {String} pattern Shortcut pattern. Like for example: ctrl+alt+o. + * @param {String} desc Text description for the command. + * @param {String/Function} cmdFunc Command name string or function to execute when the key is pressed. + * @param {Object} sc Optional scope to execute the function in. + * @return {Boolean} true/false state if the shortcut was added or not. + */ + self.add = function(pattern, desc, cmdFunc, scope) { + var cmd; + + cmd = cmdFunc; + + if (typeof(cmdFunc) === 'string') { + cmdFunc = function() { + editor.execCommand(cmd, false, null); + }; + } else if (Tools.isArray(cmd)) { + cmdFunc = function() { + editor.execCommand(cmd[0], cmd[1], cmd[2]); + }; + } + + each(explode(pattern.toLowerCase()), function(pattern) { + var shortcut = { + func: cmdFunc, + scope: scope || editor, + desc: editor.translate(desc), + alt: false, + ctrl: false, + shift: false + }; + + each(explode(pattern, '+'), function(value) { + switch (value) { + case 'alt': + case 'ctrl': + case 'shift': + shortcut[value] = true; + break; + + default: + shortcut.charCode = value.charCodeAt(0); + shortcut.keyCode = keyCodeLookup[value] || value.toUpperCase().charCodeAt(0); + } + }); + + shortcuts[ + (shortcut.ctrl ? 'ctrl' : '') + ',' + + (shortcut.alt ? 'alt' : '') + ',' + + (shortcut.shift ? 'shift' : '') + ',' + + shortcut.keyCode + ] = shortcut; + }); + + return true; + }; + }; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/UndoManager.js b/common/static/js/vendor/tinymce/js/tinymce/classes/UndoManager.js new file mode 100755 index 00000000000..ebe43b4b83c --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/UndoManager.js @@ -0,0 +1,337 @@ +/** + * UndoManager.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles the undo/redo history levels for the editor. Since the build in undo/redo has major drawbacks a custom one was needed. + * + * @class tinymce.UndoManager + */ +define("tinymce/UndoManager", [ + "tinymce/Env", + "tinymce/util/Tools" +], function(Env, Tools) { + var trim = Tools.trim, trimContentRegExp; + + trimContentRegExp = new RegExp([ + '<span[^>]+data-mce-bogus[^>]+>[\u200B\uFEFF]+<\\/span>', // Trim bogus spans like caret containers + '<div[^>]+data-mce-bogus[^>]+><\\/div>', // Trim bogus divs like resize handles + '\\s?data-mce-selected="[^"]+"' // Trim temporaty data-mce prefixed attributes like data-mce-selected + ].join('|'), 'gi'); + + return function(editor) { + var self = this, index = 0, data = [], beforeBookmark, isFirstTypedCharacter, lock; + + // Returns a trimmed version of the current editor contents + function getContent() { + return trim(editor.getContent({format: 'raw', no_events: 1}).replace(trimContentRegExp, '')); + } + + function addNonTypingUndoLevel(e) { + self.typing = false; + self.add({}, e); + } + + // Add initial undo level when the editor is initialized + editor.on('init', function() { + self.add(); + }); + + // Get position before an execCommand is processed + editor.on('BeforeExecCommand', function(e) { + var cmd = e.command; + + if (cmd != 'Undo' && cmd != 'Redo' && cmd != 'mceRepaint') { + self.beforeChange(); + } + }); + + // Add undo level after an execCommand call was made + editor.on('ExecCommand', function(e) { + var cmd = e.command; + + if (cmd != 'Undo' && cmd != 'Redo' && cmd != 'mceRepaint') { + addNonTypingUndoLevel(e); + } + }); + + editor.on('ObjectResizeStart', function() { + self.beforeChange(); + }); + + editor.on('SaveContent ObjectResized blur', addNonTypingUndoLevel); + editor.dom.bind(editor.dom.getRoot(), 'dragend', addNonTypingUndoLevel); + + editor.on('KeyUp', function(e) { + var keyCode = e.keyCode; + + if ((keyCode >= 33 && keyCode <= 36) || (keyCode >= 37 && keyCode <= 40) || keyCode == 45 || keyCode == 13 || e.ctrlKey) { + addNonTypingUndoLevel(); + editor.nodeChanged(); + } + + if (keyCode == 46 || keyCode == 8 || (Env.mac && (keyCode == 91 || keyCode == 93))) { + editor.nodeChanged(); + } + + // Fire a TypingUndo event on the first character entered + if (isFirstTypedCharacter && self.typing) { + // Make the it dirty if the content was changed after typing the first character + if (!editor.isDirty()) { + editor.isNotDirty = !data[0] || getContent() == data[0].content; + + // Fire initial change event + if (!editor.isNotDirty) { + editor.fire('change', {level: data[0], lastLevel: null}); + } + } + + editor.fire('TypingUndo'); + isFirstTypedCharacter = false; + editor.nodeChanged(); + } + }); + + editor.on('KeyDown', function(e) { + var keyCode = e.keyCode; + + // Is caracter positon keys left,right,up,down,home,end,pgdown,pgup,enter + if ((keyCode >= 33 && keyCode <= 36) || (keyCode >= 37 && keyCode <= 40) || keyCode == 45) { + if (self.typing) { + addNonTypingUndoLevel(e); + } + + return; + } + + // If key isn't shift,ctrl,alt,capslock,metakey + if ((keyCode < 16 || keyCode > 20) && keyCode != 224 && keyCode != 91 && !self.typing) { + self.beforeChange(); + self.typing = true; + self.add({}, e); + isFirstTypedCharacter = true; + } + }); + + editor.on('MouseDown', function(e) { + if (self.typing) { + addNonTypingUndoLevel(e); + } + }); + + // Add keyboard shortcuts for undo/redo keys + editor.addShortcut('ctrl+z', '', 'Undo'); + editor.addShortcut('ctrl+y,ctrl+shift+z', '', 'Redo'); + + editor.on('AddUndo Undo Redo ClearUndos MouseUp', function(e) { + if (!e.isDefaultPrevented()) { + editor.nodeChanged(); + } + }); + + self = { + // Explose for debugging reasons + data: data, + + /** + * State if the user is currently typing or not. This will add a typing operation into one undo + * level instead of one new level for each keystroke. + * + * @field {Boolean} typing + */ + typing: false, + + /** + * Stores away a bookmark to be used when performing an undo action so that the selection is before + * the change has been made. + * + * @method beforeChange + */ + beforeChange: function() { + if (!lock) { + beforeBookmark = editor.selection.getBookmark(2, true); + } + }, + + /** + * Adds a new undo level/snapshot to the undo list. + * + * @method add + * @param {Object} level Optional undo level object to add. + * @param {DOMEvent} Event Optional event responsible for the creation of the undo level. + * @return {Object} Undo level that got added or null it a level wasn't needed. + */ + add: function(level, event) { + var i, settings = editor.settings, lastLevel; + + level = level || {}; + level.content = getContent(); + + if (lock || editor.removed) { + return null; + } + + if (editor.fire('BeforeAddUndo', {level: level, originalEvent: event}).isDefaultPrevented()) { + return null; + } + + // Add undo level if needed + lastLevel = data[index]; + if (lastLevel && lastLevel.content == level.content) { + return null; + } + + // Set before bookmark on previous level + if (data[index]) { + data[index].beforeBookmark = beforeBookmark; + } + + // Time to compress + if (settings.custom_undo_redo_levels) { + if (data.length > settings.custom_undo_redo_levels) { + for (i = 0; i < data.length - 1; i++) { + data[i] = data[i + 1]; + } + + data.length--; + index = data.length; + } + } + + // Get a non intrusive normalized bookmark + level.bookmark = editor.selection.getBookmark(2, true); + + // Crop array if needed + if (index < data.length - 1) { + data.length = index + 1; + } + + data.push(level); + index = data.length - 1; + + var args = {level: level, lastLevel: lastLevel, originalEvent: event}; + + editor.fire('AddUndo', args); + + if (index > 0) { + editor.isNotDirty = false; + editor.fire('change', args); + } + + return level; + }, + + /** + * Undoes the last action. + * + * @method undo + * @return {Object} Undo level or null if no undo was performed. + */ + undo: function() { + var level; + + if (self.typing) { + self.add(); + self.typing = false; + } + + if (index > 0) { + level = data[--index]; + + // Undo to first index then set dirty state to false + if (index === 0) { + editor.isNotDirty = true; + } + + editor.setContent(level.content, {format: 'raw'}); + editor.selection.moveToBookmark(level.beforeBookmark); + + editor.fire('undo', {level: level}); + } + + return level; + }, + + /** + * Redoes the last action. + * + * @method redo + * @return {Object} Redo level or null if no redo was performed. + */ + redo: function() { + var level; + + if (index < data.length - 1) { + level = data[++index]; + + editor.setContent(level.content, {format: 'raw'}); + editor.selection.moveToBookmark(level.bookmark); + + editor.fire('redo', {level: level}); + } + + return level; + }, + + /** + * Removes all undo levels. + * + * @method clear + */ + clear: function() { + data = []; + index = 0; + self.typing = false; + editor.fire('ClearUndos'); + }, + + /** + * Returns true/false if the undo manager has any undo levels. + * + * @method hasUndo + * @return {Boolean} true/false if the undo manager has any undo levels. + */ + hasUndo: function() { + // Has undo levels or typing and content isn't the same as the initial level + return index > 0 || (self.typing && data[0] && getContent() != data[0].content); + }, + + /** + * Returns true/false if the undo manager has any redo levels. + * + * @method hasRedo + * @return {Boolean} true/false if the undo manager has any redo levels. + */ + hasRedo: function() { + return index < data.length - 1 && !this.typing; + }, + + /** + * Executes the specified function in an undo transation. The selection + * before the modification will be stored to the undo stack and if the DOM changes + * it will add a new undo level. Any methods within the transation that adds undo levels will + * be ignored. So a transation can include calls to execCommand or editor.insertContent. + * + * @method transact + * @param {function} callback Function to execute dom manipulation logic in. + */ + transact: function(callback) { + self.beforeChange(); + + lock = true; + callback(); + lock = false; + + self.add(); + } + }; + + return self; + }; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/WindowManager.js b/common/static/js/vendor/tinymce/js/tinymce/classes/WindowManager.js new file mode 100755 index 00000000000..d864f15cd2b --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/WindowManager.js @@ -0,0 +1,221 @@ +/** + * WindowManager.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles the creation of native windows and dialogs. This class can be extended to provide for example inline dialogs. + * + * @class tinymce.WindowManager + * @example + * // Opens a new dialog with the file.htm file and the size 320x240 + * // It also adds a custom parameter this can be retrieved by using tinyMCEPopup.getWindowArg inside the dialog. + * tinymce.activeEditor.windowManager.open({ + * url: 'file.htm', + * width: 320, + * height: 240 + * }, { + * custom_param: 1 + * }); + * + * // Displays an alert box using the active editors window manager instance + * tinymce.activeEditor.windowManager.alert('Hello world!'); + * + * // Displays an confirm box and an alert message will be displayed depending on what you choose in the confirm + * tinymce.activeEditor.windowManager.confirm("Do you want to do something", function(s) { + * if (s) + * tinymce.activeEditor.windowManager.alert("Ok"); + * else + * tinymce.activeEditor.windowManager.alert("Cancel"); + * }); + */ +define("tinymce/WindowManager", [ + "tinymce/ui/Window", + "tinymce/ui/MessageBox" +], function(Window, MessageBox) { + return function(editor) { + var self = this, windows = []; + + function getTopMostWindow() { + if (windows.length) { + return windows[windows.length - 1]; + } + } + + self.windows = windows; + + /** + * Opens a new window. + * + * @method open + * @param {Object} args Optional name/value settings collection contains things like width/height/url etc. + * @option {String} title Window title. + * @option {String} file URL of the file to open in the window. + * @option {Number} width Width in pixels. + * @option {Number} height Height in pixels. + * @option {Boolean} resizable Specifies whether the popup window is resizable or not. + * @option {Boolean} maximizable Specifies whether the popup window has a "maximize" button and can get maximized or not. + * @option {String/Boolean} scrollbars Specifies whether the popup window can have scrollbars if required (i.e. content + * larger than the popup size specified). + */ + self.open = function(args, params) { + var win; + + editor.editorManager.activeEditor = editor; + + args.title = args.title || ' '; + + // Handle URL + args.url = args.url || args.file; // Legacy + if (args.url) { + args.width = parseInt(args.width || 320, 10); + args.height = parseInt(args.height || 240, 10); + } + + // Handle body + if (args.body) { + args.items = { + defaults: args.defaults, + type: args.bodyType || 'form', + items: args.body + }; + } + + if (!args.url && !args.buttons) { + args.buttons = [ + {text: 'Ok', subtype: 'primary', onclick: function() { + win.find('form')[0].submit(); + }}, + + {text: 'Cancel', onclick: function() { + win.close(); + }} + ]; + } + + win = new Window(args); + windows.push(win); + + win.on('close', function() { + var i = windows.length; + + while (i--) { + if (windows[i] === win) { + windows.splice(i, 1); + } + } + + editor.focus(); + }); + + // Handle data + if (args.data) { + win.on('postRender', function() { + this.find('*').each(function(ctrl) { + var name = ctrl.name(); + + if (name in args.data) { + ctrl.value(args.data[name]); + } + }); + }); + } + + // store args and parameters + win.features = args || {}; + win.params = params || {}; + + // Takes a snapshot in the FocusManager of the selection before focus is lost to dialog + editor.nodeChanged(); + + return win.renderTo(document.body).reflow(); + }; + + /** + * Creates a alert dialog. Please don't use the blocking behavior of this + * native version use the callback method instead then it can be extended. + * + * @method alert + * @param {String} message Text to display in the new alert dialog. + * @param {function} callback Callback function to be executed after the user has selected ok. + * @param {Object} scope Optional scope to execute the callback in. + * @example + * // Displays an alert box using the active editors window manager instance + * tinymce.activeEditor.windowManager.alert('Hello world!'); + */ + self.alert = function(message, callback, scope) { + MessageBox.alert(message, function() { + if (callback) { + callback.call(scope || this); + } else { + editor.focus(); + } + }); + }; + + /** + * Creates a confirm dialog. Please don't use the blocking behavior of this + * native version use the callback method instead then it can be extended. + * + * @method confirm + * @param {String} messageText to display in the new confirm dialog. + * @param {function} callback Callback function to be executed after the user has selected ok or cancel. + * @param {Object} scope Optional scope to execute the callback in. + * @example + * // Displays an confirm box and an alert message will be displayed depending on what you choose in the confirm + * tinymce.activeEditor.windowManager.confirm("Do you want to do something", function(s) { + * if (s) + * tinymce.activeEditor.windowManager.alert("Ok"); + * else + * tinymce.activeEditor.windowManager.alert("Cancel"); + * }); + */ + self.confirm = function(message, callback, scope) { + MessageBox.confirm(message, function(state) { + callback.call(scope || this, state); + }); + }; + + /** + * Closes the top most window. + * + * @method close + */ + self.close = function() { + if (getTopMostWindow()) { + getTopMostWindow().close(); + } + }; + + /** + * Returns the params of the last window open call. This can be used in iframe based + * dialog to get params passed from the tinymce plugin. + * + * @example + * var dialogArguments = top.tinymce.activeEditor.windowManager.getParams(); + * + * @method getParams + * @return {Object} Name/value object with parameters passed from windowManager.open call. + */ + self.getParams = function() { + return getTopMostWindow() ? getTopMostWindow().params : null; + }; + + /** + * Sets the params of the last opened window. + * + * @method setParams + * @param {Object} params Params object to set for the last opened window. + */ + self.setParams = function(params) { + if (getTopMostWindow()) { + getTopMostWindow().params = params; + } + }; + }; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/dom/ControlSelection.js b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/ControlSelection.js new file mode 100755 index 00000000000..3e1d6e306b7 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/ControlSelection.js @@ -0,0 +1,519 @@ +/** + * ControlSelection.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles control selection of elements. Controls are elements + * that can be resized and needs to be selected as a whole. It adds custom resize handles + * to all browser engines that support properly disabling the built in resize logic. + * + * @class tinymce.dom.ControlSelection + */ +define("tinymce/dom/ControlSelection", [ + "tinymce/util/VK", + "tinymce/util/Tools", + "tinymce/Env" +], function(VK, Tools, Env) { + return function(selection, editor) { + var dom = editor.dom, each = Tools.each; + var selectedElm, selectedElmGhost, resizeHandles, selectedHandle, lastMouseDownEvent; + var startX, startY, selectedElmX, selectedElmY, startW, startH, ratio, resizeStarted; + var width, height, editableDoc = editor.getDoc(), rootDocument = document, isIE = Env.ie && Env.ie < 11; + + // Details about each resize handle how to scale etc + resizeHandles = { + // Name: x multiplier, y multiplier, delta size x, delta size y + n: [0.5, 0, 0, -1], + e: [1, 0.5, 1, 0], + s: [0.5, 1, 0, 1], + w: [0, 0.5, -1, 0], + nw: [0, 0, -1, -1], + ne: [1, 0, 1, -1], + se: [1, 1, 1, 1], + sw: [0, 1, -1, 1] + }; + + // Add CSS for resize handles, cloned element and selected + var rootClass = '.mce-content-body'; + editor.contentStyles.push( + rootClass + ' div.mce-resizehandle {' + + 'position: absolute;' + + 'border: 1px solid black;' + + 'background: #FFF;' + + 'width: 5px;' + + 'height: 5px;' + + 'z-index: 10000' + + '}' + + rootClass + ' .mce-resizehandle:hover {' + + 'background: #000' + + '}' + + rootClass + ' img[data-mce-selected], hr[data-mce-selected] {' + + 'outline: 1px solid black;' + + 'resize: none' + // Have been talks about implementing this in browsers + '}' + + rootClass + ' .mce-clonedresizable {' + + 'position: absolute;' + + (Env.gecko ? '' : 'outline: 1px dashed black;') + // Gecko produces trails while resizing + 'opacity: .5;' + + 'filter: alpha(opacity=50);' + + 'z-index: 10000' + + '}' + ); + + function isResizable(elm) { + var selector = editor.settings.object_resizing; + + if (selector === false || Env.iOS) { + return false; + } + + if (typeof selector != 'string') { + selector = 'table,img,div'; + } + + if (elm.getAttribute('data-mce-resize') === 'false') { + return false; + } + + return editor.dom.is(elm, selector); + } + + function resizeGhostElement(e) { + var deltaX, deltaY; + + // Calc new width/height + deltaX = e.screenX - startX; + deltaY = e.screenY - startY; + + // Calc new size + width = deltaX * selectedHandle[2] + startW; + height = deltaY * selectedHandle[3] + startH; + + // Never scale down lower than 5 pixels + width = width < 5 ? 5 : width; + height = height < 5 ? 5 : height; + + // Constrain proportions when modifier key is pressed or if the nw, ne, sw, se corners are moved on an image + if (VK.modifierPressed(e) || (selectedElm.nodeName == "IMG" && selectedHandle[2] * selectedHandle[3] !== 0)) { + width = Math.round(height / ratio); + height = Math.round(width * ratio); + } + + // Update ghost size + dom.setStyles(selectedElmGhost, { + width: width, + height: height + }); + + // Update ghost X position if needed + if (selectedHandle[2] < 0 && selectedElmGhost.clientWidth <= width) { + dom.setStyle(selectedElmGhost, 'left', selectedElmX + (startW - width)); + } + + // Update ghost Y position if needed + if (selectedHandle[3] < 0 && selectedElmGhost.clientHeight <= height) { + dom.setStyle(selectedElmGhost, 'top', selectedElmY + (startH - height)); + } + + if (!resizeStarted) { + editor.fire('ObjectResizeStart', {target: selectedElm, width: startW, height: startH}); + resizeStarted = true; + } + } + + function endGhostResize() { + resizeStarted = false; + + function setSizeProp(name, value) { + if (value) { + // Resize by using style or attribute + if (selectedElm.style[name] || !editor.schema.isValid(selectedElm.nodeName.toLowerCase(), name)) { + dom.setStyle(selectedElm, name, value); + } else { + dom.setAttrib(selectedElm, name, value); + } + } + } + + // Set width/height properties + setSizeProp('width', width); + setSizeProp('height', height); + + dom.unbind(editableDoc, 'mousemove', resizeGhostElement); + dom.unbind(editableDoc, 'mouseup', endGhostResize); + + if (rootDocument != editableDoc) { + dom.unbind(rootDocument, 'mousemove', resizeGhostElement); + dom.unbind(rootDocument, 'mouseup', endGhostResize); + } + + // Remove ghost and update resize handle positions + dom.remove(selectedElmGhost); + + if (!isIE || selectedElm.nodeName == "TABLE") { + showResizeRect(selectedElm); + } + + editor.fire('ObjectResized', {target: selectedElm, width: width, height: height}); + editor.nodeChanged(); + } + + function showResizeRect(targetElm, mouseDownHandleName, mouseDownEvent) { + var position, targetWidth, targetHeight, e, rect, offsetParent = editor.getBody(); + + unbindResizeHandleEvents(); + + // Get position and size of target + position = dom.getPos(targetElm, offsetParent); + selectedElmX = position.x; + selectedElmY = position.y; + rect = targetElm.getBoundingClientRect(); // Fix for Gecko offsetHeight for table with caption + targetWidth = rect.width || (rect.right - rect.left); + targetHeight = rect.height || (rect.bottom - rect.top); + + // Reset width/height if user selects a new image/table + if (selectedElm != targetElm) { + detachResizeStartListener(); + selectedElm = targetElm; + width = height = 0; + } + + // Makes it possible to disable resizing + e = editor.fire('ObjectSelected', {target: targetElm}); + + if (isResizable(targetElm) && !e.isDefaultPrevented()) { + each(resizeHandles, function(handle, name) { + var handleElm, handlerContainerElm; + + function startDrag(e) { + startX = e.screenX; + startY = e.screenY; + startW = selectedElm.clientWidth; + startH = selectedElm.clientHeight; + ratio = startH / startW; + selectedHandle = handle; + + selectedElmGhost = selectedElm.cloneNode(true); + dom.addClass(selectedElmGhost, 'mce-clonedresizable'); + selectedElmGhost.contentEditable = false; // Hides IE move layer cursor + selectedElmGhost.unSelectabe = true; + dom.setStyles(selectedElmGhost, { + left: selectedElmX, + top: selectedElmY, + margin: 0 + }); + + selectedElmGhost.removeAttribute('data-mce-selected'); + editor.getBody().appendChild(selectedElmGhost); + + dom.bind(editableDoc, 'mousemove', resizeGhostElement); + dom.bind(editableDoc, 'mouseup', endGhostResize); + + if (rootDocument != editableDoc) { + dom.bind(rootDocument, 'mousemove', resizeGhostElement); + dom.bind(rootDocument, 'mouseup', endGhostResize); + } + } + + if (mouseDownHandleName) { + // Drag started by IE native resizestart + if (name == mouseDownHandleName) { + startDrag(mouseDownEvent); + } + + return; + } + + // Get existing or render resize handle + handleElm = dom.get('mceResizeHandle' + name); + if (!handleElm) { + handlerContainerElm = editor.getBody(); + + handleElm = dom.add(handlerContainerElm, 'div', { + id: 'mceResizeHandle' + name, + 'data-mce-bogus': true, + 'class': 'mce-resizehandle', + unselectable: true, + style: 'cursor:' + name + '-resize; margin:0; padding:0' + }); + + // Hides IE move layer cursor + // If we set it on Chrome we get this wounderful bug: #6725 + if (Env.ie) { + handleElm.contentEditable = false; + } + } else { + dom.show(handleElm); + } + + if (!handle.elm) { + dom.bind(handleElm, 'mousedown', function(e) { + e.stopImmediatePropagation(); + e.preventDefault(); + startDrag(e); + }); + + handle.elm = handleElm; + } + + /* + var halfHandleW = handleElm.offsetWidth / 2; + var halfHandleH = handleElm.offsetHeight / 2; + + // Position element + dom.setStyles(handleElm, { + left: Math.floor((targetWidth * handle[0] + selectedElmX) - halfHandleW + (handle[2] * halfHandleW)), + top: Math.floor((targetHeight * handle[1] + selectedElmY) - halfHandleH + (handle[3] * halfHandleH)) + }); + */ + + // Position element + dom.setStyles(handleElm, { + left: (targetWidth * handle[0] + selectedElmX) - (handleElm.offsetWidth / 2), + top: (targetHeight * handle[1] + selectedElmY) - (handleElm.offsetHeight / 2) + }); + }); + } else { + hideResizeRect(); + } + + selectedElm.setAttribute('data-mce-selected', '1'); + } + + function hideResizeRect() { + var name, handleElm; + + unbindResizeHandleEvents(); + + if (selectedElm) { + selectedElm.removeAttribute('data-mce-selected'); + } + + for (name in resizeHandles) { + handleElm = dom.get('mceResizeHandle' + name); + if (handleElm) { + dom.unbind(handleElm); + dom.remove(handleElm); + } + } + } + + function updateResizeRect(e) { + var controlElm; + + function isChildOrEqual(node, parent) { + if (node) { + do { + if (node === parent) { + return true; + } + } while ((node = node.parentNode)); + } + } + + // Remove data-mce-selected from all elements since they might have been copied using Ctrl+c/v + each(dom.select('img[data-mce-selected],hr[data-mce-selected]'), function(img) { + img.removeAttribute('data-mce-selected'); + }); + + controlElm = e.type == 'mousedown' ? e.target : selection.getNode(); + controlElm = dom.getParent(controlElm, isIE ? 'table' : 'table,img,hr'); + + if (isChildOrEqual(controlElm, editor.getBody())) { + disableGeckoResize(); + + if (isChildOrEqual(selection.getStart(), controlElm) && isChildOrEqual(selection.getEnd(), controlElm)) { + if (!isIE || (controlElm != selection.getStart() && selection.getStart().nodeName !== 'IMG')) { + showResizeRect(controlElm); + return; + } + } + } + + hideResizeRect(); + } + + function attachEvent(elm, name, func) { + if (elm && elm.attachEvent) { + elm.attachEvent('on' + name, func); + } + } + + function detachEvent(elm, name, func) { + if (elm && elm.detachEvent) { + elm.detachEvent('on' + name, func); + } + } + + function resizeNativeStart(e) { + var target = e.srcElement, pos, name, corner, cornerX, cornerY, relativeX, relativeY; + + pos = target.getBoundingClientRect(); + relativeX = lastMouseDownEvent.clientX - pos.left; + relativeY = lastMouseDownEvent.clientY - pos.top; + + // Figure out what corner we are draging on + for (name in resizeHandles) { + corner = resizeHandles[name]; + + cornerX = target.offsetWidth * corner[0]; + cornerY = target.offsetHeight * corner[1]; + + if (Math.abs(cornerX - relativeX) < 8 && Math.abs(cornerY - relativeY) < 8) { + selectedHandle = corner; + break; + } + } + + // Remove native selection and let the magic begin + resizeStarted = true; + editor.getDoc().selection.empty(); + showResizeRect(target, name, lastMouseDownEvent); + } + + function nativeControlSelect(e) { + var target = e.srcElement; + + if (target != selectedElm) { + detachResizeStartListener(); + + if (target.id.indexOf('mceResizeHandle') === 0) { + e.returnValue = false; + return; + } + + if (target.nodeName == 'IMG' || target.nodeName == 'TABLE') { + hideResizeRect(); + selectedElm = target; + attachEvent(target, 'resizestart', resizeNativeStart); + } + } + } + + function detachResizeStartListener() { + detachEvent(selectedElm, 'resizestart', resizeNativeStart); + } + + function unbindResizeHandleEvents() { + for (var name in resizeHandles) { + var handle = resizeHandles[name]; + + if (handle.elm) { + dom.unbind(handle.elm); + delete handle.elm; + } + } + } + + function disableGeckoResize() { + try { + // Disable object resizing on Gecko + editor.getDoc().execCommand('enableObjectResizing', false, false); + } catch (ex) { + // Ignore + } + } + + function controlSelect(elm) { + var ctrlRng; + + if (!isIE) { + return; + } + + ctrlRng = editableDoc.body.createControlRange(); + + try { + ctrlRng.addElement(elm); + ctrlRng.select(); + return true; + } catch (ex) { + // Ignore since the element can't be control selected for example a P tag + } + } + + editor.on('init', function() { + if (isIE) { + // Hide the resize rect on resize and reselect the image + editor.on('ObjectResized', function(e) { + if (e.target.nodeName != 'TABLE') { + hideResizeRect(); + controlSelect(e.target); + } + }); + + attachEvent(editor.getBody(), 'controlselect', nativeControlSelect); + + editor.on('mousedown', function(e) { + lastMouseDownEvent = e; + }); + } else { + disableGeckoResize(); + + if (Env.ie >= 11) { + // TODO: Drag/drop doesn't work + editor.on('mouseup', function(e) { + var nodeName = e.target.nodeName; + + if (/^(TABLE|IMG|HR)$/.test(nodeName)) { + editor.selection.select(e.target, nodeName == 'TABLE'); + editor.nodeChanged(); + } + }); + + editor.dom.bind(editor.getBody(), 'mscontrolselect', function(e) { + if (/^(TABLE|IMG|HR)$/.test(e.target.nodeName)) { + e.preventDefault(); + + // This moves the selection from being a control selection to a text like selection like in WebKit #6753 + // TODO: Fix this the day IE works like other browsers without this nasty native ugly control selections. + if (e.target.tagName == 'IMG') { + window.setTimeout(function() { + editor.selection.select(e.target); + }, 0); + } + } + }); + } + } + + editor.on('nodechange mousedown mouseup ResizeEditor', updateResizeRect); + + // Update resize rect while typing in a table + editor.on('keydown keyup', function(e) { + if (selectedElm && selectedElm.nodeName == "TABLE") { + updateResizeRect(e); + } + }); + + // Hide rect on focusout since it would float on top of windows otherwise + //editor.on('focusout', hideResizeRect); + }); + + editor.on('remove', unbindResizeHandleEvents); + + function destroy() { + selectedElm = selectedElmGhost = null; + + if (isIE) { + detachResizeStartListener(); + detachEvent(editor.getBody(), 'controlselect', nativeControlSelect); + } + } + + return { + isResizable: isResizable, + showResizeRect: showResizeRect, + hideResizeRect: hideResizeRect, + updateResizeRect: updateResizeRect, + controlSelect: controlSelect, + destroy: destroy + }; + }; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/dom/DOMUtils.js b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/DOMUtils.js new file mode 100755 index 00000000000..904d3720fec --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/DOMUtils.js @@ -0,0 +1,2078 @@ +/** + * DOMUtils.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Utility class for various DOM manipulation and retrieval functions. + * + * @class tinymce.dom.DOMUtils + * @example + * // Add a class to an element by id in the page + * tinymce.DOM.addClass('someid', 'someclass'); + * + * // Add a class to an element by id inside the editor + * tinymce.activeEditor.dom.addClass('someid', 'someclass'); + */ +define("tinymce/dom/DOMUtils", [ + "tinymce/dom/Sizzle", + "tinymce/html/Styles", + "tinymce/dom/EventUtils", + "tinymce/dom/TreeWalker", + "tinymce/dom/Range", + "tinymce/html/Entities", + "tinymce/Env", + "tinymce/util/Tools", + "tinymce/dom/StyleSheetLoader" +], function(Sizzle, Styles, EventUtils, TreeWalker, Range, Entities, Env, Tools, StyleSheetLoader) { + // Shorten names + var each = Tools.each, is = Tools.is, grep = Tools.grep, trim = Tools.trim, extend = Tools.extend; + var isWebKit = Env.webkit, isIE = Env.ie; + var simpleSelectorRe = /^([a-z0-9],?)+$/i; + var whiteSpaceRegExp = /^[ \t\r\n]*$/; + var numericCssMap = Tools.makeMap('fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom', ' '); + + /** + * Constructs a new DOMUtils instance. Consult the Wiki for more details on settings etc for this class. + * + * @constructor + * @method DOMUtils + * @param {Document} d Document reference to bind the utility class to. + * @param {settings} s Optional settings collection. + */ + function DOMUtils(doc, settings) { + var self = this, blockElementsMap; + + self.doc = doc; + self.win = window; + self.files = {}; + self.counter = 0; + self.stdMode = !isIE || doc.documentMode >= 8; + self.boxModel = !isIE || doc.compatMode == "CSS1Compat" || self.stdMode; + self.hasOuterHTML = "outerHTML" in doc.createElement("a"); + self.styleSheetLoader = new StyleSheetLoader(doc); + this.boundEvents = []; + + self.settings = settings = extend({ + keep_values: false, + hex_colors: 1 + }, settings); + + self.schema = settings.schema; + self.styles = new Styles({ + url_converter: settings.url_converter, + url_converter_scope: settings.url_converter_scope + }, settings.schema); + + self.fixDoc(doc); + self.events = settings.ownEvents ? new EventUtils(settings.proxy) : EventUtils.Event; + blockElementsMap = settings.schema ? settings.schema.getBlockElements() : {}; + + /** + * Returns true/false if the specified element is a block element or not. + * + * @method isBlock + * @param {Node/String} node Element/Node to check. + * @return {Boolean} True/False state if the node is a block element or not. + */ + self.isBlock = function(node) { + // Fix for #5446 + if (!node) { + return false; + } + + // This function is called in module pattern style since it might be executed with the wrong this scope + var type = node.nodeType; + + // If it's a node then check the type and use the nodeName + if (type) { + return !!(type === 1 && blockElementsMap[node.nodeName]); + } + + return !!blockElementsMap[node]; + }; + } + + DOMUtils.prototype = { + root: null, + props: { + "for": "htmlFor", + "class": "className", + className: "className", + checked: "checked", + disabled: "disabled", + maxlength: "maxLength", + readonly: "readOnly", + selected: "selected", + value: "value", + id: "id", + name: "name", + type: "type" + }, + + fixDoc: function(doc) { + var settings = this.settings, name; + + if (isIE && settings.schema) { + // Add missing HTML 4/5 elements to IE + ('abbr article aside audio canvas ' + + 'details figcaption figure footer ' + + 'header hgroup mark menu meter nav ' + + 'output progress section summary ' + + 'time video').replace(/\w+/g, function(name) { + doc.createElement(name); + }); + + // Create all custom elements + for (name in settings.schema.getCustomElements()) { + doc.createElement(name); + } + } + }, + + clone: function(node, deep) { + var self = this, clone, doc; + + // TODO: Add feature detection here in the future + if (!isIE || node.nodeType !== 1 || deep) { + return node.cloneNode(deep); + } + + doc = self.doc; + + // Make a HTML5 safe shallow copy + if (!deep) { + clone = doc.createElement(node.nodeName); + + // Copy attribs + each(self.getAttribs(node), function(attr) { + self.setAttrib(clone, attr.nodeName, self.getAttrib(node, attr.nodeName)); + }); + + return clone; + } +/* + // Setup HTML5 patched document fragment + if (!self.frag) { + self.frag = doc.createDocumentFragment(); + self.fixDoc(self.frag); + } + + // Make a deep copy by adding it to the document fragment then removing it this removed the :section + clone = doc.createElement('div'); + self.frag.appendChild(clone); + clone.innerHTML = node.outerHTML; + self.frag.removeChild(clone); +*/ + return clone.firstChild; + }, + + /** + * Returns the root node of the document. This is normally the body but might be a DIV. Parents like getParent will not + * go above the point of this root node. + * + * @method getRoot + * @return {Element} Root element for the utility class. + */ + getRoot: function() { + var self = this; + + return self.get(self.settings.root_element) || self.doc.body; + }, + + /** + * Returns the viewport of the window. + * + * @method getViewPort + * @param {Window} win Optional window to get viewport of. + * @return {Object} Viewport object with fields x, y, w and h. + */ + getViewPort: function(win) { + var doc, rootElm; + + win = !win ? this.win : win; + doc = win.document; + rootElm = this.boxModel ? doc.documentElement : doc.body; + + // Returns viewport size excluding scrollbars + return { + x: win.pageXOffset || rootElm.scrollLeft, + y: win.pageYOffset || rootElm.scrollTop, + w: win.innerWidth || rootElm.clientWidth, + h: win.innerHeight || rootElm.clientHeight + }; + }, + + /** + * Returns the rectangle for a specific element. + * + * @method getRect + * @param {Element/String} elm Element object or element ID to get rectangle from. + * @return {object} Rectangle for specified element object with x, y, w, h fields. + */ + getRect: function(elm) { + var self = this, pos, size; + + elm = self.get(elm); + pos = self.getPos(elm); + size = self.getSize(elm); + + return { + x: pos.x, y: pos.y, + w: size.w, h: size.h + }; + }, + + /** + * Returns the size dimensions of the specified element. + * + * @method getSize + * @param {Element/String} elm Element object or element ID to get rectangle from. + * @return {object} Rectangle for specified element object with w, h fields. + */ + getSize: function(elm) { + var self = this, w, h; + + elm = self.get(elm); + w = self.getStyle(elm, 'width'); + h = self.getStyle(elm, 'height'); + + // Non pixel value, then force offset/clientWidth + if (w.indexOf('px') === -1) { + w = 0; + } + + // Non pixel value, then force offset/clientWidth + if (h.indexOf('px') === -1) { + h = 0; + } + + return { + w: parseInt(w, 10) || elm.offsetWidth || elm.clientWidth, + h: parseInt(h, 10) || elm.offsetHeight || elm.clientHeight + }; + }, + + /** + * Returns a node by the specified selector function. This function will + * loop through all parent nodes and call the specified function for each node. + * If the function then returns true indicating that it has found what it was looking for, the loop execution will then end + * and the node it found will be returned. + * + * @method getParent + * @param {Node/String} node DOM node to search parents on or ID string. + * @param {function} selector Selection function or CSS selector to execute on each node. + * @param {Node} root Optional root element, never go below this point. + * @return {Node} DOM Node or null if it wasn't found. + */ + getParent: function(node, selector, root) { + return this.getParents(node, selector, root, false); + }, + + /** + * Returns a node list of all parents matching the specified selector function or pattern. + * If the function then returns true indicating that it has found what it was looking for and that node will be collected. + * + * @method getParents + * @param {Node/String} node DOM node to search parents on or ID string. + * @param {function} selector Selection function to execute on each node or CSS pattern. + * @param {Node} root Optional root element, never go below this point. + * @return {Array} Array of nodes or null if it wasn't found. + */ + getParents: function(node, selector, root, collect) { + var self = this, selectorVal, result = []; + + node = self.get(node); + collect = collect === undefined; + + // Default root on inline mode + root = root || (self.getRoot().nodeName != 'BODY' ? self.getRoot().parentNode : null); + + // Wrap node name as func + if (is(selector, 'string')) { + selectorVal = selector; + + if (selector === '*') { + selector = function(node) {return node.nodeType == 1;}; + } else { + selector = function(node) { + return self.is(node, selectorVal); + }; + } + } + + while (node) { + if (node == root || !node.nodeType || node.nodeType === 9) { + break; + } + + if (!selector || selector(node)) { + if (collect) { + result.push(node); + } else { + return node; + } + } + + node = node.parentNode; + } + + return collect ? result : null; + }, + + /** + * Returns the specified element by ID or the input element if it isn't a string. + * + * @method get + * @param {String/Element} n Element id to look for or element to just pass though. + * @return {Element} Element matching the specified id or null if it wasn't found. + */ + get: function(elm) { + var name; + + if (elm && this.doc && typeof(elm) == 'string') { + name = elm; + elm = this.doc.getElementById(elm); + + // IE and Opera returns meta elements when they match the specified input ID, but getElementsByName seems to do the trick + if (elm && elm.id !== name) { + return this.doc.getElementsByName(name)[1]; + } + } + + return elm; + }, + + /** + * Returns the next node that matches selector or function + * + * @method getNext + * @param {Node} node Node to find siblings from. + * @param {String/function} selector Selector CSS expression or function. + * @return {Node} Next node item matching the selector or null if it wasn't found. + */ + getNext: function(node, selector) { + return this._findSib(node, selector, 'nextSibling'); + }, + + /** + * Returns the previous node that matches selector or function + * + * @method getPrev + * @param {Node} node Node to find siblings from. + * @param {String/function} selector Selector CSS expression or function. + * @return {Node} Previous node item matching the selector or null if it wasn't found. + */ + getPrev: function(node, selector) { + return this._findSib(node, selector, 'previousSibling'); + }, + + // #ifndef jquery + + /** + * Selects specific elements by a CSS level 3 pattern. For example "div#a1 p.test". + * This function is optimized for the most common patterns needed in TinyMCE but it also performs well enough + * on more complex patterns. + * + * @method select + * @param {String} selector CSS level 3 pattern to select/find elements by. + * @param {Object} scope Optional root element/scope element to search in. + * @return {Array} Array with all matched elements. + * @example + * // Adds a class to all paragraphs in the currently active editor + * tinymce.activeEditor.dom.addClass(tinymce.activeEditor.dom.select('p'), 'someclass'); + * + * // Adds a class to all spans that have the test class in the currently active editor + * tinymce.activeEditor.dom.addClass(tinymce.activeEditor.dom.select('span.test'), 'someclass') + */ + select: function(selector, scope) { + var self = this; + + //Sizzle.selectors.cacheLength = 0; + return Sizzle(selector, self.get(scope) || self.get(self.settings.root_element) || self.doc, []); + }, + + /** + * Returns true/false if the specified element matches the specified css pattern. + * + * @method is + * @param {Node/NodeList} elm DOM node to match or an array of nodes to match. + * @param {String} selector CSS pattern to match the element against. + */ + is: function(elm, selector) { + var i; + + // If it isn't an array then try to do some simple selectors instead of Sizzle for to boost performance + if (elm.length === undefined) { + // Simple all selector + if (selector === '*') { + return elm.nodeType == 1; + } + + // Simple selector just elements + if (simpleSelectorRe.test(selector)) { + selector = selector.toLowerCase().split(/,/); + elm = elm.nodeName.toLowerCase(); + + for (i = selector.length - 1; i >= 0; i--) { + if (selector[i] == elm) { + return true; + } + } + + return false; + } + } + + // Is non element + if (elm.nodeType && elm.nodeType != 1) { + return false; + } + + var elms = elm.nodeType ? [elm] : elm; + return Sizzle(selector, elms[0].ownerDocument || elms[0], null, elms).length > 0; + }, + + // #endif + + /** + * Adds the specified element to another element or elements. + * + * @method add + * @param {String/Element/Array} parentElm Element id string, DOM node element or array of ids or elements to add to. + * @param {String/Element} name Name of new element to add or existing element to add. + * @param {Object} attrs Optional object collection with arguments to add to the new element(s). + * @param {String} html Optional inner HTML contents to add for each element. + * @return {Element/Array} Element that got created, or an array of created elements if multiple input elements + * were passed in. + * @example + * // Adds a new paragraph to the end of the active editor + * tinymce.activeEditor.dom.add(tinymce.activeEditor.getBody(), 'p', {title: 'my title'}, 'Some content'); + */ + add: function(parentElm, name, attrs, html, create) { + var self = this; + + return this.run(parentElm, function(parentElm) { + var newElm; + + newElm = is(name, 'string') ? self.doc.createElement(name) : name; + self.setAttribs(newElm, attrs); + + if (html) { + if (html.nodeType) { + newElm.appendChild(html); + } else { + self.setHTML(newElm, html); + } + } + + return !create ? parentElm.appendChild(newElm) : newElm; + }); + }, + + /** + * Creates a new element. + * + * @method create + * @param {String} name Name of new element. + * @param {Object} attrs Optional object name/value collection with element attributes. + * @param {String} html Optional HTML string to set as inner HTML of the element. + * @return {Element} HTML DOM node element that got created. + * @example + * // Adds an element where the caret/selection is in the active editor + * var el = tinymce.activeEditor.dom.create('div', {id: 'test', 'class': 'myclass'}, 'some content'); + * tinymce.activeEditor.selection.setNode(el); + */ + create: function(name, attrs, html) { + return this.add(this.doc.createElement(name), name, attrs, html, 1); + }, + + /** + * Creates HTML string for element. The element will be closed unless an empty inner HTML string is passed in. + * + * @method createHTML + * @param {String} name Name of new element. + * @param {Object} attrs Optional object name/value collection with element attributes. + * @param {String} html Optional HTML string to set as inner HTML of the element. + * @return {String} String with new HTML element, for example: <a href="#">test</a>. + * @example + * // Creates a html chunk and inserts it at the current selection/caret location + * tinymce.activeEditor.selection.setContent(tinymce.activeEditor.dom.createHTML('a', {href: 'test.html'}, 'some line')); + */ + createHTML: function(name, attrs, html) { + var outHtml = '', key; + + outHtml += '<' + name; + + for (key in attrs) { + if (attrs.hasOwnProperty(key) && attrs[key] !== null) { + outHtml += ' ' + key + '="' + this.encode(attrs[key]) + '"'; + } + } + + // A call to tinymce.is doesn't work for some odd reason on IE9 possible bug inside their JS runtime + if (typeof(html) != "undefined") { + return outHtml + '>' + html + '</' + name + '>'; + } + + return outHtml + ' />'; + }, + + /** + * Creates a document fragment out of the specified HTML string. + * + * @method createFragment + * @param {String} html Html string to create fragment from. + * @return {DocumentFragment} Document fragment node. + */ + createFragment: function(html) { + var frag, node, doc = this.doc, container; + + container = doc.createElement("div"); + frag = doc.createDocumentFragment(); + + if (html) { + container.innerHTML = html; + } + + while ((node = container.firstChild)) { + frag.appendChild(node); + } + + return frag; + }, + + /** + * Removes/deletes the specified element(s) from the DOM. + * + * @method remove + * @param {String/Element/Array} node ID of element or DOM element object or array containing multiple elements/ids. + * @param {Boolean} keep_children Optional state to keep children or not. If set to true all children will be + * placed at the location of the removed element. + * @return {Element/Array} HTML DOM element that got removed, or an array of removed elements if multiple input elements + * were passed in. + * @example + * // Removes all paragraphs in the active editor + * tinymce.activeEditor.dom.remove(tinymce.activeEditor.dom.select('p')); + * + * // Removes an element by id in the document + * tinymce.DOM.remove('mydiv'); + */ + remove: function(node, keep_children) { + return this.run(node, function(node) { + var child, parent = node.parentNode; + + if (!parent) { + return null; + } + + if (keep_children) { + while ((child = node.firstChild)) { + // IE 8 will crash if you don't remove completely empty text nodes + if (!isIE || child.nodeType !== 3 || child.nodeValue) { + parent.insertBefore(child, node); + } else { + node.removeChild(child); + } + } + } + + return parent.removeChild(node); + }); + }, + + /** + * Sets the CSS style value on a HTML element. The name can be a camelcase string + * or the CSS style name like background-color. + * + * @method setStyle + * @param {String/Element/Array} n HTML element/Element ID or Array of elements/ids to set CSS style value on. + * @param {String} na Name of the style value to set. + * @param {String} v Value to set on the style. + * @example + * // Sets a style value on all paragraphs in the currently active editor + * tinymce.activeEditor.dom.setStyle(tinymce.activeEditor.dom.select('p'), 'background-color', 'red'); + * + * // Sets a style value to an element by id in the current document + * tinymce.DOM.setStyle('mydiv', 'background-color', 'red'); + */ + setStyle: function(elm, name, value) { + return this.run(elm, function(elm) { + var self = this, style, key; + + if (name) { + if (typeof(name) === 'string') { + style = elm.style; + + // Camelcase it, if needed + name = name.replace(/-(\D)/g, function(a, b) { + return b.toUpperCase(); + }); + + // Default px suffix on these + if (typeof(value) === 'number' && !numericCssMap[name]) { + value += 'px'; + } + + // IE specific opacity + if (name === "opacity" && elm.runtimeStyle && typeof(elm.runtimeStyle.opacity) === "undefined") { + style.filter = value === '' ? '' : "alpha(opacity=" + (value * 100) + ")"; + } + + if (name == "float") { + // Old IE vs modern browsers + name = "cssFloat" in elm.style ? "cssFloat" : "styleFloat"; + } + + try { + style[name] = value; + } catch (ex) { + // Ignore IE errors + } + + // Force update of the style data + if (self.settings.update_styles) { + elm.removeAttribute('data-mce-style'); + } + } else { + for (key in name) { + self.setStyle(elm, key, name[key]); + } + } + } + }); + }, + + /** + * Returns the current style or runtime/computed value of an element. + * + * @method getStyle + * @param {String/Element} elm HTML element or element id string to get style from. + * @param {String} name Style name to return. + * @param {Boolean} computed Computed style. + * @return {String} Current style or computed style value of an element. + */ + getStyle: function(elm, name, computed) { + elm = this.get(elm); + + if (!elm) { + return; + } + + // W3C + if (this.doc.defaultView && computed) { + // Remove camelcase + name = name.replace(/[A-Z]/g, function(a){ + return '-' + a; + }); + + try { + return this.doc.defaultView.getComputedStyle(elm, null).getPropertyValue(name); + } catch (ex) { + // Old safari might fail + return null; + } + } + + // Camelcase it, if needed + name = name.replace(/-(\D)/g, function(a, b) { + return b.toUpperCase(); + }); + + if (name == 'float') { + name = isIE ? 'styleFloat' : 'cssFloat'; + } + + // IE & Opera + if (elm.currentStyle && computed) { + return elm.currentStyle[name]; + } + + return elm.style ? elm.style[name] : undefined; + }, + + /** + * Sets multiple styles on the specified element(s). + * + * @method setStyles + * @param {Element/String/Array} e DOM element, element id string or array of elements/ids to set styles on. + * @param {Object} o Name/Value collection of style items to add to the element(s). + * @example + * // Sets styles on all paragraphs in the currently active editor + * tinymce.activeEditor.dom.setStyles(tinymce.activeEditor.dom.select('p'), {'background-color': 'red', 'color': 'green'}); + * + * // Sets styles to an element by id in the current document + * tinymce.DOM.setStyles('mydiv', {'background-color': 'red', 'color': 'green'}); + */ + setStyles: function(elm, styles) { + this.setStyle(elm, styles); + }, + + css: function(elm, name, value) { + this.setStyle(elm, name, value); + }, + + /** + * Removes all attributes from an element or elements. + * + * @method removeAllAttribs + * @param {Element/String/Array} e DOM element, element id string or array of elements/ids to remove attributes from. + */ + removeAllAttribs: function(e) { + return this.run(e, function(e) { + var i, attrs = e.attributes; + for (i = attrs.length - 1; i >= 0; i--) { + e.removeAttributeNode(attrs.item(i)); + } + }); + }, + + /** + * Sets the specified attribute of an element or elements. + * + * @method setAttrib + * @param {Element/String/Array} e DOM element, element id string or array of elements/ids to set attribute on. + * @param {String} n Name of attribute to set. + * @param {String} v Value to set on the attribute - if this value is falsy like null, 0 or '' it will remove the attribute instead. + * @example + * // Sets class attribute on all paragraphs in the active editor + * tinymce.activeEditor.dom.setAttrib(tinymce.activeEditor.dom.select('p'), 'class', 'myclass'); + * + * // Sets class attribute on a specific element in the current page + * tinymce.dom.setAttrib('mydiv', 'class', 'myclass'); + */ + setAttrib: function(e, n, v) { + var self = this; + + // What's the point + if (!e || !n) { + return; + } + + return this.run(e, function(e) { + var s = self.settings; + var originalValue = e.getAttribute(n); + if (v !== null) { + switch (n) { + case "style": + if (!is(v, 'string')) { + each(v, function(v, n) { + self.setStyle(e, n, v); + }); + + return; + } + + // No mce_style for elements with these since they might get resized by the user + if (s.keep_values) { + if (v) { + e.setAttribute('data-mce-style', v, 2); + } else { + e.removeAttribute('data-mce-style', 2); + } + } + + e.style.cssText = v; + break; + + case "class": + e.className = v || ''; // Fix IE null bug + break; + + case "src": + case "href": + if (s.keep_values) { + if (s.url_converter) { + v = s.url_converter.call(s.url_converter_scope || self, v, n, e); + } + + self.setAttrib(e, 'data-mce-' + n, v, 2); + } + + break; + + case "shape": + e.setAttribute('data-mce-style', v); + break; + } + } + if (is(v) && v !== null && v.length !== 0) { + e.setAttribute(n, '' + v, 2); + } else { + e.removeAttribute(n, 2); + } + + // fire onChangeAttrib event for attributes that have changed + if (originalValue != v && s.onSetAttrib) { + s.onSetAttrib({attrElm: e, attrName: n, attrValue: v}); + } + }); + }, + + /** + * Sets two or more specified attributes of an element or elements. + * + * @method setAttribs + * @param {Element/String/Array} elm DOM element, element id string or array of elements/ids to set attributes on. + * @param {Object} attrs Name/Value collection of attribute items to add to the element(s). + * @example + * // Sets class and title attributes on all paragraphs in the active editor + * tinymce.activeEditor.dom.setAttribs(tinymce.activeEditor.dom.select('p'), {'class': 'myclass', title: 'some title'}); + * + * // Sets class and title attributes on a specific element in the current page + * tinymce.DOM.setAttribs('mydiv', {'class': 'myclass', title: 'some title'}); + */ + setAttribs: function(elm, attrs) { + var self = this; + + return this.run(elm, function(elm) { + each(attrs, function(value, name) { + self.setAttrib(elm, name, value); + }); + }); + }, + + /** + * Returns the specified attribute by name. + * + * @method getAttrib + * @param {String/Element} elm Element string id or DOM element to get attribute from. + * @param {String} name Name of attribute to get. + * @param {String} defaultVal Optional default value to return if the attribute didn't exist. + * @return {String} Attribute value string, default value or null if the attribute wasn't found. + */ + getAttrib: function(elm, name, defaultVal) { + var value, self = this, undef; + + elm = self.get(elm); + + if (!elm || elm.nodeType !== 1) { + return defaultVal === undef ? false : defaultVal; + } + + if (!is(defaultVal)) { + defaultVal = ''; + } + + // Try the mce variant for these + if (/^(src|href|style|coords|shape)$/.test(name)) { + value = elm.getAttribute("data-mce-" + name); + + if (value) { + return value; + } + } + + if (isIE && self.props[name]) { + value = elm[self.props[name]]; + value = value && value.nodeValue ? value.nodeValue : value; + } + + if (!value) { + value = elm.getAttribute(name, 2); + } + + // Check boolean attribs + if (/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(name)) { + if (elm[self.props[name]] === true && value === '') { + return name; + } + + return value ? name : ''; + } + + // Inner input elements will override attributes on form elements + if (elm.nodeName === "FORM" && elm.getAttributeNode(name)) { + return elm.getAttributeNode(name).nodeValue; + } + + if (name === 'style') { + value = value || elm.style.cssText; + + if (value) { + value = self.serializeStyle(self.parseStyle(value), elm.nodeName); + + if (self.settings.keep_values) { + elm.setAttribute('data-mce-style', value); + } + } + } + + // Remove Apple and WebKit stuff + if (isWebKit && name === "class" && value) { + value = value.replace(/(apple|webkit)\-[a-z\-]+/gi, ''); + } + + // Handle IE issues + if (isIE) { + switch (name) { + case 'rowspan': + case 'colspan': + // IE returns 1 as default value + if (value === 1) { + value = ''; + } + + break; + + case 'size': + // IE returns +0 as default value for size + if (value === '+0' || value === 20 || value === 0) { + value = ''; + } + + break; + + case 'width': + case 'height': + case 'vspace': + case 'checked': + case 'disabled': + case 'readonly': + if (value === 0) { + value = ''; + } + + break; + + case 'hspace': + // IE returns -1 as default value + if (value === -1) { + value = ''; + } + + break; + + case 'maxlength': + case 'tabindex': + // IE returns default value + if (value === 32768 || value === 2147483647 || value === '32768') { + value = ''; + } + + break; + + case 'multiple': + case 'compact': + case 'noshade': + case 'nowrap': + if (value === 65535) { + return name; + } + + return defaultVal; + + case 'shape': + value = value.toLowerCase(); + break; + + default: + // IE has odd anonymous function for event attributes + if (name.indexOf('on') === 0 && value) { + value = ('' + value).replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/, '$1'); + } + } + } + + return (value !== undef && value !== null && value !== '') ? '' + value : defaultVal; + }, + + /** + * Returns the absolute x, y position of a node. The position will be returned in an object with x, y fields. + * + * @method getPos + * @param {Element/String} elm HTML element or element id to get x, y position from. + * @param {Element} rootElm Optional root element to stop calculations at. + * @return {object} Absolute position of the specified element object with x, y fields. + */ + getPos: function(elm, rootElm) { + var self = this, x = 0, y = 0, offsetParent, doc = self.doc, pos; + + elm = self.get(elm); + rootElm = rootElm || doc.body; + + if (elm) { + // Use getBoundingClientRect if it exists since it's faster than looping offset nodes + if (rootElm === doc.body && elm.getBoundingClientRect) { + pos = elm.getBoundingClientRect(); + rootElm = self.boxModel ? doc.documentElement : doc.body; + + // Add scroll offsets from documentElement or body since IE with the wrong box model will use d.body and so do WebKit + // Also remove the body/documentelement clientTop/clientLeft on IE 6, 7 since they offset the position + x = pos.left + (doc.documentElement.scrollLeft || doc.body.scrollLeft) - rootElm.clientLeft; + y = pos.top + (doc.documentElement.scrollTop || doc.body.scrollTop) - rootElm.clientTop; + + return {x: x, y: y}; + } + + offsetParent = elm; + while (offsetParent && offsetParent != rootElm && offsetParent.nodeType) { + x += offsetParent.offsetLeft || 0; + y += offsetParent.offsetTop || 0; + offsetParent = offsetParent.offsetParent; + } + + offsetParent = elm.parentNode; + while (offsetParent && offsetParent != rootElm && offsetParent.nodeType) { + x -= offsetParent.scrollLeft || 0; + y -= offsetParent.scrollTop || 0; + offsetParent = offsetParent.parentNode; + } + } + + return {x: x, y: y}; + }, + + /** + * Parses the specified style value into an object collection. This parser will also + * merge and remove any redundant items that browsers might have added. It will also convert non-hex + * colors to hex values. Urls inside the styles will also be converted to absolute/relative based on settings. + * + * @method parseStyle + * @param {String} cssText Style value to parse, for example: border:1px solid red;. + * @return {Object} Object representation of that style, for example: {border: '1px solid red'} + */ + parseStyle: function(cssText) { + return this.styles.parse(cssText); + }, + + /** + * Serializes the specified style object into a string. + * + * @method serializeStyle + * @param {Object} styles Object to serialize as string, for example: {border: '1px solid red'} + * @param {String} name Optional element name. + * @return {String} String representation of the style object, for example: border: 1px solid red. + */ + serializeStyle: function(styles, name) { + return this.styles.serialize(styles, name); + }, + + /** + * Adds a style element at the top of the document with the specified cssText content. + * + * @method addStyle + * @param {String} cssText CSS Text style to add to top of head of document. + */ + addStyle: function(cssText) { + var self = this, doc = self.doc, head, styleElm; + + // Prevent inline from loading the same styles twice + if (self !== DOMUtils.DOM && doc === document) { + var addedStyles = DOMUtils.DOM.addedStyles; + + addedStyles = addedStyles || []; + if (addedStyles[cssText]) { + return; + } + + addedStyles[cssText] = true; + DOMUtils.DOM.addedStyles = addedStyles; + } + + // Create style element if needed + styleElm = doc.getElementById('mceDefaultStyles'); + if (!styleElm) { + styleElm = doc.createElement('style'); + styleElm.id = 'mceDefaultStyles'; + styleElm.type = 'text/css'; + + head = doc.getElementsByTagName('head')[0]; + if (head.firstChild) { + head.insertBefore(styleElm, head.firstChild); + } else { + head.appendChild(styleElm); + } + } + + // Append style data to old or new style element + if (styleElm.styleSheet) { + styleElm.styleSheet.cssText += cssText; + } else { + styleElm.appendChild(doc.createTextNode(cssText)); + } + }, + + /** + * Imports/loads the specified CSS file into the document bound to the class. + * + * @method loadCSS + * @param {String} u URL to CSS file to load. + * @example + * // Loads a CSS file dynamically into the current document + * tinymce.DOM.loadCSS('somepath/some.css'); + * + * // Loads a CSS file into the currently active editor instance + * tinymce.activeEditor.dom.loadCSS('somepath/some.css'); + * + * // Loads a CSS file into an editor instance by id + * tinymce.get('someid').dom.loadCSS('somepath/some.css'); + * + * // Loads multiple CSS files into the current document + * tinymce.DOM.loadCSS('somepath/some.css,somepath/someother.css'); + */ + loadCSS: function(url) { + var self = this, doc = self.doc, head; + + // Prevent inline from loading the same CSS file twice + if (self !== DOMUtils.DOM && doc === document) { + DOMUtils.DOM.loadCSS(url); + return; + } + + if (!url) { + url = ''; + } + + head = doc.getElementsByTagName('head')[0]; + + each(url.split(','), function(url) { + var link; + + if (self.files[url]) { + return; + } + + self.files[url] = true; + link = self.create('link', {rel: 'stylesheet', href: url}); + + // IE 8 has a bug where dynamically loading stylesheets would produce a 1 item remaining bug + // This fix seems to resolve that issue by recalcing the document once a stylesheet finishes loading + // It's ugly but it seems to work fine. + if (isIE && doc.documentMode && doc.recalc) { + link.onload = function() { + if (doc.recalc) { + doc.recalc(); + } + + link.onload = null; + }; + } + + head.appendChild(link); + }); + }, + + /** + * Adds a class to the specified element or elements. + * + * @method addClass + * @param {String/Element/Array} elm Element ID string or DOM element or array with elements or IDs. + * @param {String} cls Class name to add to each element. + * @return {String/Array} String with new class value or array with new class values for all elements. + * @example + * // Adds a class to all paragraphs in the active editor + * tinymce.activeEditor.dom.addClass(tinymce.activeEditor.dom.select('p'), 'myclass'); + * + * // Adds a class to a specific element in the current page + * tinymce.DOM.addClass('mydiv', 'myclass'); + */ + addClass: function(elm, cls) { + return this.run(elm, function(elm) { + var clsVal; + + if (!cls) { + return 0; + } + + if (this.hasClass(elm, cls)) { + return elm.className; + } + + clsVal = this.removeClass(elm, cls); + elm.className = clsVal = (clsVal !== '' ? (clsVal + ' ') : '') + cls; + + return clsVal; + }); + }, + + /** + * Removes a class from the specified element or elements. + * + * @method removeClass + * @param {String/Element/Array} elm Element ID string or DOM element or array with elements or IDs. + * @param {String} cls Class name to remove from each element. + * @return {String/Array} String of remaining class name(s), or an array of strings if multiple input elements + * were passed in. + * @example + * // Removes a class from all paragraphs in the active editor + * tinymce.activeEditor.dom.removeClass(tinymce.activeEditor.dom.select('p'), 'myclass'); + * + * // Removes a class from a specific element in the current page + * tinymce.DOM.removeClass('mydiv', 'myclass'); + */ + removeClass: function(elm, cls) { + var self = this, re; + + return self.run(elm, function(elm) { + var val; + + if (self.hasClass(elm, cls)) { + if (!re) { + re = new RegExp("(^|\\s+)" + cls + "(\\s+|$)", "g"); + } + + val = elm.className.replace(re, ' '); + val = trim(val != ' ' ? val : ''); + + elm.className = val; + + // Empty class attr + if (!val) { + elm.removeAttribute('class'); + elm.removeAttribute('className'); + } + + return val; + } + + return elm.className; + }); + }, + + /** + * Returns true if the specified element has the specified class. + * + * @method hasClass + * @param {String/Element} n HTML element or element id string to check CSS class on. + * @param {String} c CSS class to check for. + * @return {Boolean} true/false if the specified element has the specified class. + */ + hasClass: function(elm, cls) { + elm = this.get(elm); + + if (!elm || !cls) { + return false; + } + + return (' ' + elm.className + ' ').indexOf(' ' + cls + ' ') !== -1; + }, + + /** + * Toggles the specified class on/off. + * + * @method toggleClass + * @param {Element} elm Element to toggle class on. + * @param {[type]} cls Class to toggle on/off. + * @param {[type]} state Optional state to set. + */ + toggleClass: function(elm, cls, state) { + state = state === undefined ? !this.hasClass(elm, cls) : state; + + if (this.hasClass(elm, cls) !== state) { + if (state) { + this.addClass(elm, cls); + } else { + this.removeClass(elm, cls); + } + } + }, + + /** + * Shows the specified element(s) by ID by setting the "display" style. + * + * @method show + * @param {String/Element/Array} elm ID of DOM element or DOM element or array with elements or IDs to show. + */ + show: function(elm) { + return this.setStyle(elm, 'display', 'block'); + }, + + /** + * Hides the specified element(s) by ID by setting the "display" style. + * + * @method hide + * @param {String/Element/Array} e ID of DOM element or DOM element or array with elements or IDs to hide. + * @example + * // Hides an element by id in the document + * tinymce.DOM.hide('myid'); + */ + hide: function(elm) { + return this.setStyle(elm, 'display', 'none'); + }, + + /** + * Returns true/false if the element is hidden or not by checking the "display" style. + * + * @method isHidden + * @param {String/Element} e Id or element to check display state on. + * @return {Boolean} true/false if the element is hidden or not. + */ + isHidden: function(elm) { + elm = this.get(elm); + + return !elm || elm.style.display == 'none' || this.getStyle(elm, 'display') == 'none'; + }, + + /** + * Returns a unique id. This can be useful when generating elements on the fly. + * This method will not check if the element already exists. + * + * @method uniqueId + * @param {String} prefix Optional prefix to add in front of all ids - defaults to "mce_". + * @return {String} Unique id. + */ + uniqueId: function(prefix) { + return (!prefix ? 'mce_' : prefix) + (this.counter++); + }, + + /** + * Sets the specified HTML content inside the element or elements. The HTML will first be processed. This means + * URLs will get converted, hex color values fixed etc. Check processHTML for details. + * + * @method setHTML + * @param {Element/String/Array} e DOM element, element id string or array of elements/ids to set HTML inside of. + * @param {String} h HTML content to set as inner HTML of the element. + * @example + * // Sets the inner HTML of all paragraphs in the active editor + * tinymce.activeEditor.dom.setHTML(tinymce.activeEditor.dom.select('p'), 'some inner html'); + * + * // Sets the inner HTML of an element by id in the document + * tinymce.DOM.setHTML('mydiv', 'some inner html'); + */ + setHTML: function(element, html) { + var self = this; + + return self.run(element, function(element) { + if (isIE) { + // Remove all child nodes, IE keeps empty text nodes in DOM + while (element.firstChild) { + element.removeChild(element.firstChild); + } + + try { + // IE will remove comments from the beginning + // unless you padd the contents with something + element.innerHTML = '<br />' + html; + element.removeChild(element.firstChild); + } catch (ex) { + // IE sometimes produces an unknown runtime error on innerHTML if it's a block element + // within a block element for example a div inside a p + // This seems to fix this problem + + // Create new div with HTML contents and a BR in front to keep comments + var newElement = self.create('div'); + newElement.innerHTML = '<br />' + html; + + // Add all children from div to target + each(grep(newElement.childNodes), function(node, i) { + // Skip br element + if (i && element.canHaveHTML) { + element.appendChild(node); + } + }); + } + } else { + element.innerHTML = html; + } + + return html; + }); + }, + + /** + * Returns the outer HTML of an element. + * + * @method getOuterHTML + * @param {String/Element} elm Element ID or element object to get outer HTML from. + * @return {String} Outer HTML string. + * @example + * tinymce.DOM.getOuterHTML(editorElement); + * tinymce.activeEditor.getOuterHTML(tinymce.activeEditor.getBody()); + */ + getOuterHTML: function(elm) { + var doc, self = this; + + elm = self.get(elm); + + if (!elm) { + return null; + } + + if (elm.nodeType === 1 && self.hasOuterHTML) { + return elm.outerHTML; + } + + doc = (elm.ownerDocument || self.doc).createElement("body"); + doc.appendChild(elm.cloneNode(true)); + + return doc.innerHTML; + }, + + /** + * Sets the specified outer HTML on an element or elements. + * + * @method setOuterHTML + * @param {Element/String/Array} elm DOM element, element id string or array of elements/ids to set outer HTML on. + * @param {Object} html HTML code to set as outer value for the element. + * @param {Document} doc Optional document scope to use in this process - defaults to the document of the DOM class. + * @example + * // Sets the outer HTML of all paragraphs in the active editor + * tinymce.activeEditor.dom.setOuterHTML(tinymce.activeEditor.dom.select('p'), '<div>some html</div>'); + * + * // Sets the outer HTML of an element by id in the document + * tinymce.DOM.setOuterHTML('mydiv', '<div>some html</div>'); + */ + setOuterHTML: function(elm, html, doc) { + var self = this; + + return self.run(elm, function(elm) { + function set() { + var node, tempElm; + + tempElm = doc.createElement("body"); + tempElm.innerHTML = html; + + node = tempElm.lastChild; + while (node) { + self.insertAfter(node.cloneNode(true), elm); + node = node.previousSibling; + } + + self.remove(elm); + } + + // Only set HTML on elements + if (elm.nodeType == 1) { + doc = doc || elm.ownerDocument || self.doc; + + if (isIE) { + try { + // Try outerHTML for IE it sometimes produces an unknown runtime error + if (elm.nodeType == 1 && self.hasOuterHTML) { + elm.outerHTML = html; + } else { + set(); + } + } catch (ex) { + // Fix for unknown runtime error + set(); + } + } else { + set(); + } + } + }); + }, + + /** + * Entity decodes a string. This method decodes any HTML entities, such as å. + * + * @method decode + * @param {String} s String to decode entities on. + * @return {String} Entity decoded string. + */ + decode: Entities.decode, + + /** + * Entity encodes a string. This method encodes the most common entities, such as <>"&. + * + * @method encode + * @param {String} text String to encode with entities. + * @return {String} Entity encoded string. + */ + encode: Entities.encodeAllRaw, + + /** + * Inserts an element after the reference element. + * + * @method insertAfter + * @param {Element} node Element to insert after the reference. + * @param {Element/String/Array} reference_node Reference element, element id or array of elements to insert after. + * @return {Element/Array} Element that got added or an array with elements. + */ + insertAfter: function(node, reference_node) { + reference_node = this.get(reference_node); + + return this.run(node, function(node) { + var parent, nextSibling; + + parent = reference_node.parentNode; + nextSibling = reference_node.nextSibling; + + if (nextSibling) { + parent.insertBefore(node, nextSibling); + } else { + parent.appendChild(node); + } + + return node; + }); + }, + + /** + * Replaces the specified element or elements with the new element specified. The new element will + * be cloned if multiple input elements are passed in. + * + * @method replace + * @param {Element} newElm New element to replace old ones with. + * @param {Element/String/Array} oldELm Element DOM node, element id or array of elements or ids to replace. + * @param {Boolean} k Optional keep children state, if set to true child nodes from the old object will be added to new ones. + */ + replace: function(newElm, oldElm, keepChildren) { + var self = this; + + return self.run(oldElm, function(oldElm) { + if (is(oldElm, 'array')) { + newElm = newElm.cloneNode(true); + } + + if (keepChildren) { + each(grep(oldElm.childNodes), function(node) { + newElm.appendChild(node); + }); + } + + return oldElm.parentNode.replaceChild(newElm, oldElm); + }); + }, + + /** + * Renames the specified element and keeps its attributes and children. + * + * @method rename + * @param {Element} elm Element to rename. + * @param {String} name Name of the new element. + * @return {Element} New element or the old element if it needed renaming. + */ + rename: function(elm, name) { + var self = this, newElm; + + if (elm.nodeName != name.toUpperCase()) { + // Rename block element + newElm = self.create(name); + + // Copy attribs to new block + each(self.getAttribs(elm), function(attr_node) { + self.setAttrib(newElm, attr_node.nodeName, self.getAttrib(elm, attr_node.nodeName)); + }); + + // Replace block + self.replace(newElm, elm, 1); + } + + return newElm || elm; + }, + + /** + * Find the common ancestor of two elements. This is a shorter method than using the DOM Range logic. + * + * @method findCommonAncestor + * @param {Element} a Element to find common ancestor of. + * @param {Element} b Element to find common ancestor of. + * @return {Element} Common ancestor element of the two input elements. + */ + findCommonAncestor: function(a, b) { + var ps = a, pe; + + while (ps) { + pe = b; + + while (pe && ps != pe) { + pe = pe.parentNode; + } + + if (ps == pe) { + break; + } + + ps = ps.parentNode; + } + + if (!ps && a.ownerDocument) { + return a.ownerDocument.documentElement; + } + + return ps; + }, + + /** + * Parses the specified RGB color value and returns a hex version of that color. + * + * @method toHex + * @param {String} rgbVal RGB string value like rgb(1,2,3) + * @return {String} Hex version of that RGB value like #FF00FF. + */ + toHex: function(rgbVal) { + return this.styles.toHex(Tools.trim(rgbVal)); + }, + + /** + * Executes the specified function on the element by id or dom element node or array of elements/id. + * + * @method run + * @param {String/Element/Array} Element ID or DOM element object or array with ids or elements. + * @param {function} f Function to execute for each item. + * @param {Object} s Optional scope to execute the function in. + * @return {Object/Array} Single object, or an array of objects if multiple input elements were passed in. + */ + run: function(elm, func, scope) { + var self = this, result; + + if (typeof(elm) === 'string') { + elm = self.get(elm); + } + + if (!elm) { + return false; + } + + scope = scope || this; + if (!elm.nodeType && (elm.length || elm.length === 0)) { + result = []; + + each(elm, function(elm, i) { + if (elm) { + if (typeof(elm) == 'string') { + elm = self.get(elm); + } + + result.push(func.call(scope, elm, i)); + } + }); + + return result; + } + + return func.call(scope, elm); + }, + + /** + * Returns a NodeList with attributes for the element. + * + * @method getAttribs + * @param {HTMLElement/string} elm Element node or string id to get attributes from. + * @return {NodeList} NodeList with attributes. + */ + getAttribs: function(elm) { + var attrs; + + elm = this.get(elm); + + if (!elm) { + return []; + } + + if (isIE) { + attrs = []; + + // Object will throw exception in IE + if (elm.nodeName == 'OBJECT') { + return elm.attributes; + } + + // IE doesn't keep the selected attribute if you clone option elements + if (elm.nodeName === 'OPTION' && this.getAttrib(elm, 'selected')) { + attrs.push({specified: 1, nodeName: 'selected'}); + } + + // It's crazy that this is faster in IE but it's because it returns all attributes all the time + var attrRegExp = /<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi; + elm.cloneNode(false).outerHTML.replace(attrRegExp, '').replace(/[\w:\-]+/gi, function(a) { + attrs.push({specified: 1, nodeName: a}); + }); + + return attrs; + } + + return elm.attributes; + }, + + /** + * Returns true/false if the specified node is to be considered empty or not. + * + * @example + * tinymce.DOM.isEmpty(node, {img: true}); + * @method isEmpty + * @param {Object} elements Optional name/value object with elements that are automatically treated as non-empty elements. + * @return {Boolean} true/false if the node is empty or not. + */ + isEmpty: function(node, elements) { + var self = this, i, attributes, type, walker, name, brCount = 0; + + node = node.firstChild; + if (node) { + walker = new TreeWalker(node, node.parentNode); + elements = elements || self.schema ? self.schema.getNonEmptyElements() : null; + + do { + type = node.nodeType; + + if (type === 1) { + // Ignore bogus elements + if (node.getAttribute('data-mce-bogus')) { + continue; + } + + // Keep empty elements like <img /> + name = node.nodeName.toLowerCase(); + if (elements && elements[name]) { + // Ignore single BR elements in blocks like <p><br /></p> or <p><span><br /></span></p> + if (name === 'br') { + brCount++; + continue; + } + + return false; + } + + // Keep elements with data-bookmark attributes or name attribute like <a name="1"></a> + attributes = self.getAttribs(node); + i = node.attributes.length; + while (i--) { + name = node.attributes[i].nodeName; + if (name === "name" || name === 'data-mce-bookmark') { + return false; + } + } + } + + // Keep comment nodes + if (type == 8) { + return false; + } + + // Keep non whitespace text nodes + if ((type === 3 && !whiteSpaceRegExp.test(node.nodeValue))) { + return false; + } + } while ((node = walker.next())); + } + + return brCount <= 1; + }, + + /** + * Creates a new DOM Range object. This will use the native DOM Range API if it's + * available. If it's not, it will fall back to the custom TinyMCE implementation. + * + * @method createRng + * @return {DOMRange} DOM Range object. + * @example + * var rng = tinymce.DOM.createRng(); + * alert(rng.startContainer + "," + rng.startOffset); + */ + createRng: function() { + var doc = this.doc; + + return doc.createRange ? doc.createRange() : new Range(this); + }, + + /** + * Returns the index of the specified node within its parent. + * + * @method nodeIndex + * @param {Node} node Node to look for. + * @param {boolean} normalized Optional true/false state if the index is what it would be after a normalization. + * @return {Number} Index of the specified node. + */ + nodeIndex: function(node, normalized) { + var idx = 0, lastNodeType, nodeType; + + if (node) { + for (lastNodeType = node.nodeType, node = node.previousSibling; node; node = node.previousSibling) { + nodeType = node.nodeType; + + // Normalize text nodes + if (normalized && nodeType == 3) { + if (nodeType == lastNodeType || !node.nodeValue.length) { + continue; + } + } + idx++; + lastNodeType = nodeType; + } + } + + return idx; + }, + + /** + * Splits an element into two new elements and places the specified split + * element or elements between the new ones. For example splitting the paragraph at the bold element in + * this example <p>abc<b>abc</b>123</p> would produce <p>abc</p><b>abc</b><p>123</p>. + * + * @method split + * @param {Element} parentElm Parent element to split. + * @param {Element} splitElm Element to split at. + * @param {Element} replacementElm Optional replacement element to replace the split element with. + * @return {Element} Returns the split element or the replacement element if that is specified. + */ + split: function(parentElm, splitElm, replacementElm) { + var self = this, r = self.createRng(), bef, aft, pa; + + // W3C valid browsers tend to leave empty nodes to the left/right side of the contents - this makes sense + // but we don't want that in our code since it serves no purpose for the end user + // For example splitting this html at the bold element: + // <p>text 1<span><b>CHOP</b></span>text 2</p> + // would produce: + // <p>text 1<span></span></p><b>CHOP</b><p><span></span>text 2</p> + // this function will then trim off empty edges and produce: + // <p>text 1</p><b>CHOP</b><p>text 2</p> + function trimNode(node) { + var i, children = node.childNodes, type = node.nodeType; + + function surroundedBySpans(node) { + var previousIsSpan = node.previousSibling && node.previousSibling.nodeName == 'SPAN'; + var nextIsSpan = node.nextSibling && node.nextSibling.nodeName == 'SPAN'; + return previousIsSpan && nextIsSpan; + } + + if (type == 1 && node.getAttribute('data-mce-type') == 'bookmark') { + return; + } + + for (i = children.length - 1; i >= 0; i--) { + trimNode(children[i]); + } + + if (type != 9) { + // Keep non whitespace text nodes + if (type == 3 && node.nodeValue.length > 0) { + // If parent element isn't a block or there isn't any useful contents for example "<p> </p>" + // Also keep text nodes with only spaces if surrounded by spans. + // eg. "<p><span>a</span> <span>b</span></p>" should keep space between a and b + var trimmedLength = trim(node.nodeValue).length; + if (!self.isBlock(node.parentNode) || trimmedLength > 0 || trimmedLength === 0 && surroundedBySpans(node)) { + return; + } + } else if (type == 1) { + // If the only child is a bookmark then move it up + children = node.childNodes; + + // TODO fix this complex if + if (children.length == 1 && children[0] && children[0].nodeType == 1 && + children[0].getAttribute('data-mce-type') == 'bookmark') { + node.parentNode.insertBefore(children[0], node); + } + + // Keep non empty elements or img, hr etc + if (children.length || /^(br|hr|input|img)$/i.test(node.nodeName)) { + return; + } + } + + self.remove(node); + } + + return node; + } + + if (parentElm && splitElm) { + // Get before chunk + r.setStart(parentElm.parentNode, self.nodeIndex(parentElm)); + r.setEnd(splitElm.parentNode, self.nodeIndex(splitElm)); + bef = r.extractContents(); + + // Get after chunk + r = self.createRng(); + r.setStart(splitElm.parentNode, self.nodeIndex(splitElm) + 1); + r.setEnd(parentElm.parentNode, self.nodeIndex(parentElm) + 1); + aft = r.extractContents(); + + // Insert before chunk + pa = parentElm.parentNode; + pa.insertBefore(trimNode(bef), parentElm); + + // Insert middle chunk + if (replacementElm) { + pa.replaceChild(replacementElm, splitElm); + } else { + pa.insertBefore(splitElm, parentElm); + } + + // Insert after chunk + pa.insertBefore(trimNode(aft), parentElm); + self.remove(parentElm); + + return replacementElm || splitElm; + } + }, + + /** + * Adds an event handler to the specified object. + * + * @method bind + * @param {Element/Document/Window/Array} target Target element to bind events to. + * handler to or an array of elements/ids/documents. + * @param {String} name Name of event handler to add, for example: click. + * @param {function} func Function to execute when the event occurs. + * @param {Object} scope Optional scope to execute the function in. + * @return {function} Function callback handler the same as the one passed in. + */ + bind: function(target, name, func, scope) { + var self = this; + + if (Tools.isArray(target)) { + var i = target.length; + + while (i--) { + target[i] = self.bind(target[i], name, func, scope); + } + + return target; + } + + // Collect all window/document events bound by editor instance + if (self.settings.collect && (target === self.doc || target === self.win)) { + self.boundEvents.push([target, name, func, scope]); + } + + return self.events.bind(target, name, func, scope || self); + }, + + /** + * Removes the specified event handler by name and function from an element or collection of elements. + * + * @method unbind + * @param {Element/Document/Window/Array} target Target element to unbind events on. + * @param {String} name Event handler name, for example: "click" + * @param {function} func Function to remove. + * @return {bool/Array} Bool state of true if the handler was removed, or an array of states if multiple input elements + * were passed in. + */ + unbind: function(target, name, func) { + var self = this, i; + + if (Tools.isArray(target)) { + i = target.length; + + while (i--) { + target[i] = self.unbind(target[i], name, func); + } + + return target; + } + + // Remove any bound events matching the input + if (self.boundEvents && (target === self.doc || target === self.win)) { + i = self.boundEvents.length; + + while (i--) { + var item = self.boundEvents[i]; + + if (target == item[0] && (!name || name == item[1]) && (!func || func == item[2])) { + this.events.unbind(item[0], item[1], item[2]); + } + } + } + + return this.events.unbind(target, name, func); + }, + + /** + * Fires the specified event name with object on target. + * + * @method fire + * @param {Node/Document/Window} target Target element or object to fire event on. + * @param {String} name Name of the event to fire. + * @param {Object} evt Event object to send. + * @return {Event} Event object. + */ + fire: function(target, name, evt) { + return this.events.fire(target, name, evt); + }, + + // Returns the content editable state of a node + getContentEditable: function(node) { + var contentEditable; + + // Check type + if (node.nodeType != 1) { + return null; + } + + // Check for fake content editable + contentEditable = node.getAttribute("data-mce-contenteditable"); + if (contentEditable && contentEditable !== "inherit") { + return contentEditable; + } + + // Check for real content editable + return node.contentEditable !== "inherit" ? node.contentEditable : null; + }, + + /** + * Destroys all internal references to the DOM to solve IE leak issues. + * + * @method destroy + */ + destroy: function() { + var self = this; + + // Unbind all events bound to window/document by editor instance + if (self.boundEvents) { + var i = self.boundEvents.length; + + while (i--) { + var item = self.boundEvents[i]; + this.events.unbind(item[0], item[1], item[2]); + } + + self.boundEvents = null; + } + + // Restore sizzle document to window.document + // Since the current document might be removed producing "Permission denied" on IE see #6325 + if (Sizzle.setDocument) { + Sizzle.setDocument(); + } + + self.win = self.doc = self.root = self.events = self.frag = null; + }, + + // #ifdef debug + + dumpRng: function(r) { + return ( + 'startContainer: ' + r.startContainer.nodeName + + ', startOffset: ' + r.startOffset + + ', endContainer: ' + r.endContainer.nodeName + + ', endOffset: ' + r.endOffset + ); + }, + + // #endif + + _findSib: function(node, selector, name) { + var self = this, func = selector; + + if (node) { + // If expression make a function of it using is + if (typeof(func) == 'string') { + func = function(node) { + return self.is(node, selector); + }; + } + + // Loop all siblings + for (node = node[name]; node; node = node[name]) { + if (func(node)) { + return node; + } + } + } + + return null; + } + }; + + /** + * Instance of DOMUtils for the current document. + * + * @static + * @property DOM + * @type tinymce.dom.DOMUtils + * @example + * // Example of how to add a class to some element by id + * tinymce.DOM.addClass('someid', 'someclass'); + */ + DOMUtils.DOM = new DOMUtils(document); + + return DOMUtils; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/dom/DomQuery.js b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/DomQuery.js new file mode 100755 index 00000000000..838c98256fa --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/DomQuery.js @@ -0,0 +1,730 @@ +/** + * DomQuery.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + * + * Some of this logic is based on jQuery code that is released under + * MIT license that grants us to sublicense it under LGPL. + * + * @ignore-file + */ + +/** + * @class tinymce.dom.DomQuery + */ +define("tinymce/dom/DomQuery", [ + "tinymce/dom/EventUtils", + "tinymce/dom/Sizzle" +], function(EventUtils, Sizzle) { + var doc = document, push = Array.prototype.push, slice = Array.prototype.slice; + var rquickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/; + var Event = EventUtils.Event; + + function isDefined(obj) { + return typeof obj !== "undefined"; + } + + function isString(obj) { + return typeof obj === "string"; + } + + function createFragment(html) { + var frag, node, container; + + container = doc.createElement("div"); + frag = doc.createDocumentFragment(); + container.innerHTML = html; + + while ((node = container.firstChild)) { + frag.appendChild(node); + } + + return frag; + } + + function domManipulate(targetNodes, sourceItem, callback) { + var i; + + if (typeof sourceItem === "string") { + sourceItem = createFragment(sourceItem); + } else if (sourceItem.length) { + for (i = 0; i < sourceItem.length; i++) { + domManipulate(targetNodes, sourceItem[i], callback); + } + + return targetNodes; + } + + i = targetNodes.length; + while (i--) { + callback.call(targetNodes[i], sourceItem.parentNode ? sourceItem : sourceItem); + } + + return targetNodes; + } + + function hasClass(node, className) { + return node && className && (' ' + node.className + ' ').indexOf(' ' + className + ' ') !== -1; + } + + /** + * Makes a map object out of a string that gets separated by a delimiter. + * + * @method makeMap + * @param {String} items Item string to split. + * @param {Object} map Optional object to add items to. + * @return {Object} name/value object with items as keys. + */ + function makeMap(items, map) { + var i; + + items = items || []; + + if (typeof(items) == "string") { + items = items.split(' '); + } + + map = map || {}; + + i = items.length; + while (i--) { + map[items[i]] = {}; + } + + return map; + } + + var numericCssMap = makeMap('fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom'); + + function DomQuery(selector, context) { + /*eslint new-cap:0 */ + return new DomQuery.fn.init(selector, context); + } + + /** + * Extends the specified object with another object. + * + * @method extend + * @param {Object} target Object to extend. + * @param {Object..} obj Multiple objects to extend with. + * @return {Object} Same as target, the extended object. + */ + function extend(target) { + var args = arguments, arg, i, key; + + for (i = 1; i < args.length; i++) { + arg = args[i]; + + for (key in arg) { + target[key] = arg[key]; + } + } + + return target; + } + + /** + * Converts the specified object into a real JavaScript array. + * + * @method toArray + * @param {Object} obj Object to convert into array. + * @return {Array} Array object based in input. + */ + function toArray(obj) { + var array = [], i, l; + + for (i = 0, l = obj.length; i < l; i++) { + array[i] = obj[i]; + } + + return array; + } + + /** + * Returns the index of the specified item inside the array. + * + * @method inArray + * @param {Object} item Item to look for. + * @param {Array} array Array to look for item in. + * @return {Number} Index of the item or -1. + */ + function inArray(item, array) { + var i; + + if (array.indexOf) { + return array.indexOf(item); + } + + i = array.length; + while (i--) { + if (array[i] === item) { + return i; + } + } + + return -1; + } + + /** + * Returns true/false if the specified object is an array. + * + * @method isArray + * @param {Object} obj Object to check if it's an array. + * @return {Boolean} true/false if the input object is array or not. + */ + var isArray = Array.isArray || function(obj) { + return Object.prototype.toString.call(obj) === "[object Array]"; + }; + + var whiteSpaceRegExp = /^\s*|\s*$/g; + + function trim(str) { + return (str === null || str === undefined) ? '' : ("" + str).replace(whiteSpaceRegExp, ''); + } + + /** + * Executes the callback function for each item in array/object. If you return false in the + * callback it will break the loop. + * + * @method each + * @param {Object} obj Object to iterate. + * @param {function} callback Callback function to execute for each item. + */ + function each(obj, callback) { + var length, key, i, undef, value; + + if (obj) { + length = obj.length; + + if (length === undef) { + // Loop object items + for (key in obj) { + if (obj.hasOwnProperty(key)) { + value = obj[key]; + if (callback.call(value, value, key) === false) { + break; + } + } + } + } else { + // Loop array items + for (i = 0; i < length; i++) { + value = obj[i]; + if (callback.call(value, value, key) === false) { + break; + } + } + } + } + + return obj; + } + + DomQuery.fn = DomQuery.prototype = { + constructor: DomQuery, + selector: "", + length: 0, + + init: function(selector, context) { + var self = this, match, node; + + if (!selector) { + return self; + } + + if (selector.nodeType) { + self.context = self[0] = selector; + self.length = 1; + + return self; + } + + if (isString(selector)) { + if (selector.charAt(0) === "<" && selector.charAt(selector.length - 1) === ">" && selector.length >= 3) { + match = [null, selector, null]; + } else { + match = rquickExpr.exec(selector); + } + + if (match) { + if (match[1]) { + node = createFragment(selector).firstChild; + while (node) { + this.add(node); + node = node.nextSibling; + } + } else { + node = doc.getElementById(match[2]); + + if (node.id !== match[2]) { + return self.find(selector); + } + + self.length = 1; + self[0] = node; + } + } else { + return DomQuery(context || document).find(selector); + } + } else { + this.add(selector); + } + + return self; + }, + + toArray: function() { + return toArray(this); + }, + + add: function(items) { + var self = this; + + // Force single item into array + if (!isArray(items)) { + if (items instanceof DomQuery) { + self.add(items.toArray()); + } else { + push.call(self, items); + } + } else { + push.apply(self, items); + } + + return self; + }, + + attr: function(name, value) { + var self = this; + + if (typeof name === "object") { + each(name, function(value, name) { + self.attr(name, value); + }); + } else if (isDefined(value)) { + this.each(function() { + if (this.nodeType === 1) { + this.setAttribute(name, value); + } + }); + } else { + return self[0] && self[0].nodeType === 1 ? self[0].getAttribute(name) : undefined; + } + + return self; + }, + + css: function(name, value) { + var self = this; + + if (typeof name === "object") { + each(name, function(value, name) { + self.css(name, value); + }); + } else { + // Camelcase it, if needed + name = name.replace(/-(\D)/g, function(a, b) { + return b.toUpperCase(); + }); + + if (isDefined(value)) { + // Default px suffix on these + if (typeof(value) === 'number' && !numericCssMap[name]) { + value += 'px'; + } + + self.each(function() { + var style = this.style; + + // IE specific opacity + if (name === "opacity" && this.runtimeStyle && typeof(this.runtimeStyle.opacity) === "undefined") { + style.filter = value === '' ? '' : "alpha(opacity=" + (value * 100) + ")"; + } + + try { + style[name] = value; + } catch (ex) { + // Ignore + } + }); + } else { + return self[0] ? self[0].style[name] : undefined; + } + } + + return self; + }, + + remove: function() { + var self = this, node, i = this.length; + + while (i--) { + node = self[i]; + Event.clean(node); + + if (node.parentNode) { + node.parentNode.removeChild(node); + } + } + + return this; + }, + + empty: function() { + var self = this, node, i = this.length; + + while (i--) { + node = self[i]; + while (node.firstChild) { + node.removeChild(node.firstChild); + } + } + + return this; + }, + + html: function(value) { + var self = this, i; + + if (isDefined(value)) { + i = self.length; + while (i--) { + self[i].innerHTML = value; + } + + return self; + } + + return self[0] ? self[0].innerHTML : ''; + }, + + text: function(value) { + var self = this, i; + + if (isDefined(value)) { + i = self.length; + while (i--) { + self[i].innerText = self[0].textContent = value; + } + + return self; + } + + return self[0] ? self[0].innerText || self[0].textContent : ''; + }, + + append: function() { + return domManipulate(this, arguments, function(node) { + if (this.nodeType === 1) { + this.appendChild(node); + } + }); + }, + + prepend: function() { + return domManipulate(this, arguments, function(node) { + if (this.nodeType === 1) { + this.insertBefore(node, this.firstChild); + } + }); + }, + + before: function() { + var self = this; + + if (self[0] && self[0].parentNode) { + return domManipulate(self, arguments, function(node) { + this.parentNode.insertBefore(node, this.nextSibling); + }); + } + + return self; + }, + + after: function() { + var self = this; + + if (self[0] && self[0].parentNode) { + return domManipulate(self, arguments, function(node) { + this.parentNode.insertBefore(node, this); + }); + } + + return self; + }, + + appendTo: function(val) { + DomQuery(val).append(this); + + return this; + }, + + addClass: function(className) { + return this.toggleClass(className, true); + }, + + removeClass: function(className) { + return this.toggleClass(className, false); + }, + + toggleClass: function(className, state) { + var self = this; + + if (className.indexOf(' ') !== -1) { + each(className.split(' '), function() { + self.toggleClass(this, state); + }); + } else { + self.each(function(node) { + var existingClassName; + + if (hasClass(node, className) !== state) { + existingClassName = node.className; + + if (state) { + node.className += existingClassName ? ' ' + className : className; + } else { + node.className = trim((" " + existingClassName + " ").replace(' ' + className + ' ', ' ')); + } + } + }); + } + + return self; + }, + + hasClass: function(className) { + return hasClass(this[0], className); + }, + + each: function(callback) { + return each(this, callback); + }, + + on: function(name, callback) { + return this.each(function() { + Event.bind(this, name, callback); + }); + }, + + off: function(name, callback) { + return this.each(function() { + Event.unbind(this, name, callback); + }); + }, + + show: function() { + return this.css('display', ''); + }, + + hide: function() { + return this.css('display', 'none'); + }, + + slice: function() { + return new DomQuery(slice.apply(this, arguments)); + }, + + eq: function(index) { + return index === -1 ? this.slice(index) : this.slice(index, +index + 1); + }, + + first: function() { + return this.eq(0); + }, + + last: function() { + return this.eq(-1); + }, + + replaceWith: function(content) { + var self = this; + + if (self[0]) { + self[0].parentNode.replaceChild(DomQuery(content)[0], self[0]); + } + + return self; + }, + + wrap: function(wrapper) { + wrapper = DomQuery(wrapper)[0]; + + return this.each(function() { + var self = this, newWrapper = wrapper.cloneNode(false); + self.parentNode.insertBefore(newWrapper, self); + newWrapper.appendChild(self); + }); + }, + + unwrap: function() { + return this.each(function() { + var self = this, node = self.firstChild, currentNode; + + while (node) { + currentNode = node; + node = node.nextSibling; + self.parentNode.insertBefore(currentNode, self); + } + }); + }, + + clone: function() { + var result = []; + + this.each(function() { + result.push(this.cloneNode(true)); + }); + + return DomQuery(result); + }, + + find: function(selector) { + var i, l, ret = []; + + for (i = 0, l = this.length; i < l; i++) { + DomQuery.find(selector, this[i], ret); + } + + return DomQuery(ret); + }, + + push: push, + sort: [].sort, + splice: [].splice + }; + + // Static members + extend(DomQuery, { + extend: extend, + toArray: toArray, + inArray: inArray, + isArray: isArray, + each: each, + trim: trim, + makeMap: makeMap, + + // Sizzle + find: Sizzle, + expr: Sizzle.selectors, + unique: Sizzle.uniqueSort, + text: Sizzle.getText, + isXMLDoc: Sizzle.isXML, + contains: Sizzle.contains, + filter: function(expr, elems, not) { + if (not) { + expr = ":not(" + expr + ")"; + } + + if (elems.length === 1) { + elems = DomQuery.find.matchesSelector(elems[0], expr) ? [elems[0]] : []; + } else { + elems = DomQuery.find.matches(expr, elems); + } + + return elems; + } + }); + + function dir(el, prop, until) { + var matched = [], cur = el[prop]; + + while (cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !DomQuery(cur).is(until))) { + if (cur.nodeType === 1) { + matched.push(cur); + } + + cur = cur[prop]; + } + + return matched; + } + + function sibling(n, el, siblingName, nodeType) { + var r = []; + + for(; n; n = n[siblingName]) { + if ((!nodeType || n.nodeType === nodeType) && n !== el) { + r.push(n); + } + } + + return r; + } + + each({ + parent: function(node) { + var parent = node.parentNode; + + return parent && parent.nodeType !== 11 ? parent : null; + }, + + parents: function(node) { + return dir(node, "parentNode"); + }, + + parentsUntil: function(node, until) { + return dir(node, "parentNode", until); + }, + + next: function(node) { + return sibling(node, 'nextSibling', 1); + }, + + prev: function(node) { + return sibling(node, 'previousSibling', 1); + }, + + nextNodes: function(node) { + return sibling(node, 'nextSibling'); + }, + + prevNodes: function(node) { + return sibling(node, 'previousSibling'); + }, + + children: function(node) { + return sibling(node.firstChild, 'nextSibling', 1); + }, + + contents: function(node) { + return toArray((node.nodeName === "iframe" ? node.contentDocument || node.contentWindow.document : node).childNodes); + } + }, function(name, fn){ + DomQuery.fn[name] = function(selector) { + var self = this, result; + + if (self.length > 1) { + throw new Error("DomQuery only supports traverse functions on a single node."); + } + + if (self[0]) { + result = fn(self[0], selector); + } + + result = DomQuery(result); + + if (selector && name !== "parentsUntil") { + return result.filter(selector); + } + + return result; + }; + }); + + DomQuery.fn.filter = function(selector) { + return DomQuery.filter(selector); + }; + + DomQuery.fn.is = function(selector) { + return !!selector && this.filter(selector).length > 0; + }; + + DomQuery.fn.init.prototype = DomQuery.fn; + + return DomQuery; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/dom/EventUtils.js b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/EventUtils.js new file mode 100755 index 00000000000..e3a21cdd88e --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/EventUtils.js @@ -0,0 +1,557 @@ +/** + * EventUtils.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*jshint loopfunc:true*/ +/*eslint no-loop-func:0 */ + +define("tinymce/dom/EventUtils", [], function() { + "use strict"; + + var eventExpandoPrefix = "mce-data-"; + var mouseEventRe = /^(?:mouse|contextmenu)|click/; + var deprecated = {keyLocation: 1, layerX: 1, layerY: 1, returnValue: 1}; + + /** + * Binds a native event to a callback on the speified target. + */ + function addEvent(target, name, callback, capture) { + if (target.addEventListener) { + target.addEventListener(name, callback, capture || false); + } else if (target.attachEvent) { + target.attachEvent('on' + name, callback); + } + } + + /** + * Unbinds a native event callback on the specified target. + */ + function removeEvent(target, name, callback, capture) { + if (target.removeEventListener) { + target.removeEventListener(name, callback, capture || false); + } else if (target.detachEvent) { + target.detachEvent('on' + name, callback); + } + } + + /** + * Normalizes a native event object or just adds the event specific methods on a custom event. + */ + function fix(originalEvent, data) { + var name, event = data || {}, undef; + + // Dummy function that gets replaced on the delegation state functions + function returnFalse() { + return false; + } + + // Dummy function that gets replaced on the delegation state functions + function returnTrue() { + return true; + } + + // Copy all properties from the original event + for (name in originalEvent) { + // layerX/layerY is deprecated in Chrome and produces a warning + if (!deprecated[name]) { + event[name] = originalEvent[name]; + } + } + + // Normalize target IE uses srcElement + if (!event.target) { + event.target = event.srcElement || document; + } + + // Calculate pageX/Y if missing and clientX/Y available + if (originalEvent && mouseEventRe.test(originalEvent.type) && originalEvent.pageX === undef && originalEvent.clientX !== undef) { + var eventDoc = event.target.ownerDocument || document; + var doc = eventDoc.documentElement; + var body = eventDoc.body; + + event.pageX = originalEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - + ( doc && doc.clientLeft || body && body.clientLeft || 0); + + event.pageY = originalEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0 ) - + ( doc && doc.clientTop || body && body.clientTop || 0); + } + + // Add preventDefault method + event.preventDefault = function() { + event.isDefaultPrevented = returnTrue; + + // Execute preventDefault on the original event object + if (originalEvent) { + if (originalEvent.preventDefault) { + originalEvent.preventDefault(); + } else { + originalEvent.returnValue = false; // IE + } + } + }; + + // Add stopPropagation + event.stopPropagation = function() { + event.isPropagationStopped = returnTrue; + + // Execute stopPropagation on the original event object + if (originalEvent) { + if (originalEvent.stopPropagation) { + originalEvent.stopPropagation(); + } else { + originalEvent.cancelBubble = true; // IE + } + } + }; + + // Add stopImmediatePropagation + event.stopImmediatePropagation = function() { + event.isImmediatePropagationStopped = returnTrue; + event.stopPropagation(); + }; + + // Add event delegation states + if (!event.isDefaultPrevented) { + event.isDefaultPrevented = returnFalse; + event.isPropagationStopped = returnFalse; + event.isImmediatePropagationStopped = returnFalse; + } + + return event; + } + + /** + * Bind a DOMContentLoaded event across browsers and executes the callback once the page DOM is initialized. + * It will also set/check the domLoaded state of the event_utils instance so ready isn't called multiple times. + */ + function bindOnReady(win, callback, eventUtils) { + var doc = win.document, event = {type: 'ready'}; + + if (eventUtils.domLoaded) { + callback(event); + return; + } + + // Gets called when the DOM is ready + function readyHandler() { + if (!eventUtils.domLoaded) { + eventUtils.domLoaded = true; + callback(event); + } + } + + function waitForDomLoaded() { + // Check complete or interactive state if there is a body + // element on some iframes IE 8 will produce a null body + if (doc.readyState === "complete" || (doc.readyState === "interactive" && doc.body)) { + removeEvent(doc, "readystatechange", waitForDomLoaded); + readyHandler(); + } + } + + function tryScroll() { + try { + // If IE is used, use the trick by Diego Perini licensed under MIT by request to the author. + // http://javascript.nwbox.com/IEContentLoaded/ + doc.documentElement.doScroll("left"); + } catch (ex) { + setTimeout(tryScroll, 0); + return; + } + + readyHandler(); + } + + // Use W3C method + if (doc.addEventListener) { + if (doc.readyState === "complete") { + readyHandler(); + } else { + addEvent(win, 'DOMContentLoaded', readyHandler); + } + } else { + // Use IE method + addEvent(doc, "readystatechange", waitForDomLoaded); + + // Wait until we can scroll, when we can the DOM is initialized + if (doc.documentElement.doScroll && win.self === win.top) { + tryScroll(); + } + } + + // Fallback if any of the above methods should fail for some odd reason + addEvent(win, 'load', readyHandler); + } + + /** + * This class enables you to bind/unbind native events to elements and normalize it's behavior across browsers. + */ + function EventUtils() { + var self = this, events = {}, count, expando, hasFocusIn, hasMouseEnterLeave, mouseEnterLeave; + + expando = eventExpandoPrefix + (+new Date()).toString(32); + hasMouseEnterLeave = "onmouseenter" in document.documentElement; + hasFocusIn = "onfocusin" in document.documentElement; + mouseEnterLeave = {mouseenter: 'mouseover', mouseleave: 'mouseout'}; + count = 1; + + // State if the DOMContentLoaded was executed or not + self.domLoaded = false; + self.events = events; + + /** + * Executes all event handler callbacks for a specific event. + * + * @private + * @param {Event} evt Event object. + * @param {String} id Expando id value to look for. + */ + function executeHandlers(evt, id) { + var callbackList, i, l, callback, container = events[id]; + + callbackList = container && container[evt.type]; + if (callbackList) { + for (i = 0, l = callbackList.length; i < l; i++) { + callback = callbackList[i]; + + // Check if callback exists might be removed if a unbind is called inside the callback + if (callback && callback.func.call(callback.scope, evt) === false) { + evt.preventDefault(); + } + + // Should we stop propagation to immediate listeners + if (evt.isImmediatePropagationStopped()) { + return; + } + } + } + } + + /** + * Binds a callback to an event on the specified target. + * + * @method bind + * @param {Object} target Target node/window or custom object. + * @param {String} names Name of the event to bind. + * @param {function} callback Callback function to execute when the event occurs. + * @param {Object} scope Scope to call the callback function on, defaults to target. + * @return {function} Callback function that got bound. + */ + self.bind = function(target, names, callback, scope) { + var id, callbackList, i, name, fakeName, nativeHandler, capture, win = window; + + // Native event handler function patches the event and executes the callbacks for the expando + function defaultNativeHandler(evt) { + executeHandlers(fix(evt || win.event), id); + } + + // Don't bind to text nodes or comments + if (!target || target.nodeType === 3 || target.nodeType === 8) { + return; + } + + // Create or get events id for the target + if (!target[expando]) { + id = count++; + target[expando] = id; + events[id] = {}; + } else { + id = target[expando]; + } + + // Setup the specified scope or use the target as a default + scope = scope || target; + + // Split names and bind each event, enables you to bind multiple events with one call + names = names.split(' '); + i = names.length; + while (i--) { + name = names[i]; + nativeHandler = defaultNativeHandler; + fakeName = capture = false; + + // Use ready instead of DOMContentLoaded + if (name === "DOMContentLoaded") { + name = "ready"; + } + + // DOM is already ready + if (self.domLoaded && name === "ready" && target.readyState == 'complete') { + callback.call(scope, fix({type: name})); + continue; + } + + // Handle mouseenter/mouseleaver + if (!hasMouseEnterLeave) { + fakeName = mouseEnterLeave[name]; + + if (fakeName) { + nativeHandler = function(evt) { + var current, related; + + current = evt.currentTarget; + related = evt.relatedTarget; + + // Check if related is inside the current target if it's not then the event should + // be ignored since it's a mouseover/mouseout inside the element + if (related && current.contains) { + // Use contains for performance + related = current.contains(related); + } else { + while (related && related !== current) { + related = related.parentNode; + } + } + + // Fire fake event + if (!related) { + evt = fix(evt || win.event); + evt.type = evt.type === 'mouseout' ? 'mouseleave' : 'mouseenter'; + evt.target = current; + executeHandlers(evt, id); + } + }; + } + } + + // Fake bubbeling of focusin/focusout + if (!hasFocusIn && (name === "focusin" || name === "focusout")) { + capture = true; + fakeName = name === "focusin" ? "focus" : "blur"; + nativeHandler = function(evt) { + evt = fix(evt || win.event); + evt.type = evt.type === 'focus' ? 'focusin' : 'focusout'; + executeHandlers(evt, id); + }; + } + + // Setup callback list and bind native event + callbackList = events[id][name]; + if (!callbackList) { + events[id][name] = callbackList = [{func: callback, scope: scope}]; + callbackList.fakeName = fakeName; + callbackList.capture = capture; + + // Add the nativeHandler to the callback list so that we can later unbind it + callbackList.nativeHandler = nativeHandler; + + // Check if the target has native events support + + if (name === "ready") { + bindOnReady(target, nativeHandler, self); + } else { + addEvent(target, fakeName || name, nativeHandler, capture); + } + } else { + if (name === "ready" && self.domLoaded) { + callback({type: name}); + } else { + // If it already has an native handler then just push the callback + callbackList.push({func: callback, scope: scope}); + } + } + } + + target = callbackList = 0; // Clean memory for IE + + return callback; + }; + + /** + * Unbinds the specified event by name, name and callback or all events on the target. + * + * @method unbind + * @param {Object} target Target node/window or custom object. + * @param {String} names Optional event name to unbind. + * @param {function} callback Optional callback function to unbind. + * @return {EventUtils} Event utils instance. + */ + self.unbind = function(target, names, callback) { + var id, callbackList, i, ci, name, eventMap; + + // Don't bind to text nodes or comments + if (!target || target.nodeType === 3 || target.nodeType === 8) { + return self; + } + + // Unbind event or events if the target has the expando + id = target[expando]; + if (id) { + eventMap = events[id]; + + // Specific callback + if (names) { + names = names.split(' '); + i = names.length; + while (i--) { + name = names[i]; + callbackList = eventMap[name]; + + // Unbind the event if it exists in the map + if (callbackList) { + // Remove specified callback + if (callback) { + ci = callbackList.length; + while (ci--) { + if (callbackList[ci].func === callback) { + var nativeHandler = callbackList.nativeHandler; + var fakeName = callbackList.fakeName, capture = callbackList.capture; + + // Clone callbackList since unbind inside a callback would otherwise break the handlers loop + callbackList = callbackList.slice(0, ci).concat(callbackList.slice(ci + 1)); + callbackList.nativeHandler = nativeHandler; + callbackList.fakeName = fakeName; + callbackList.capture = capture; + + eventMap[name] = callbackList; + } + } + } + + // Remove all callbacks if there isn't a specified callback or there is no callbacks left + if (!callback || callbackList.length === 0) { + delete eventMap[name]; + removeEvent(target, callbackList.fakeName || name, callbackList.nativeHandler, callbackList.capture); + } + } + } + } else { + // All events for a specific element + for (name in eventMap) { + callbackList = eventMap[name]; + removeEvent(target, callbackList.fakeName || name, callbackList.nativeHandler, callbackList.capture); + } + + eventMap = {}; + } + + // Check if object is empty, if it isn't then we won't remove the expando map + for (name in eventMap) { + return self; + } + + // Delete event object + delete events[id]; + + // Remove expando from target + try { + // IE will fail here since it can't delete properties from window + delete target[expando]; + } catch (ex) { + // IE will set it to null + target[expando] = null; + } + } + + return self; + }; + + /** + * Fires the specified event on the specified target. + * + * @method fire + * @param {Object} target Target node/window or custom object. + * @param {String} name Event name to fire. + * @param {Object} args Optional arguments to send to the observers. + * @return {EventUtils} Event utils instance. + */ + self.fire = function(target, name, args) { + var id; + + // Don't bind to text nodes or comments + if (!target || target.nodeType === 3 || target.nodeType === 8) { + return self; + } + + // Build event object by patching the args + args = fix(null, args); + args.type = name; + args.target = target; + + do { + // Found an expando that means there is listeners to execute + id = target[expando]; + if (id) { + executeHandlers(args, id); + } + + // Walk up the DOM + target = target.parentNode || target.ownerDocument || target.defaultView || target.parentWindow; + } while (target && !args.isPropagationStopped()); + + return self; + }; + + /** + * Removes all bound event listeners for the specified target. This will also remove any bound + * listeners to child nodes within that target. + * + * @method clean + * @param {Object} target Target node/window object. + * @return {EventUtils} Event utils instance. + */ + self.clean = function(target) { + var i, children, unbind = self.unbind; + + // Don't bind to text nodes or comments + if (!target || target.nodeType === 3 || target.nodeType === 8) { + return self; + } + + // Unbind any element on the specificed target + if (target[expando]) { + unbind(target); + } + + // Target doesn't have getElementsByTagName it's probably a window object then use it's document to find the children + if (!target.getElementsByTagName) { + target = target.document; + } + + // Remove events from each child element + if (target && target.getElementsByTagName) { + unbind(target); + + children = target.getElementsByTagName('*'); + i = children.length; + while (i--) { + target = children[i]; + + if (target[expando]) { + unbind(target); + } + } + } + + return self; + }; + + /** + * Destroys the event object. Call this on IE to remove memory leaks. + */ + self.destroy = function() { + events = {}; + }; + + // Legacy function for canceling events + self.cancel = function(e) { + if (e) { + e.preventDefault(); + e.stopImmediatePropagation(); + } + + return false; + }; + } + + EventUtils.Event = new EventUtils(); + EventUtils.Event.bind(window, 'ready', function() {}); + + return EventUtils; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/dom/Range.js b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/Range.js new file mode 100755 index 00000000000..d9aab1674f1 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/Range.js @@ -0,0 +1,777 @@ +/** + * Range.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +define("tinymce/dom/Range", [ + "tinymce/util/Tools" +], function(Tools) { + // Range constructor + function Range(dom) { + var self = this, + doc = dom.doc, + EXTRACT = 0, + CLONE = 1, + DELETE = 2, + TRUE = true, + FALSE = false, + START_OFFSET = 'startOffset', + START_CONTAINER = 'startContainer', + END_CONTAINER = 'endContainer', + END_OFFSET = 'endOffset', + extend = Tools.extend, + nodeIndex = dom.nodeIndex; + + function createDocumentFragment() { + return doc.createDocumentFragment(); + } + + function setStart(n, o) { + _setEndPoint(TRUE, n, o); + } + + function setEnd(n, o) { + _setEndPoint(FALSE, n, o); + } + + function setStartBefore(n) { + setStart(n.parentNode, nodeIndex(n)); + } + + function setStartAfter(n) { + setStart(n.parentNode, nodeIndex(n) + 1); + } + + function setEndBefore(n) { + setEnd(n.parentNode, nodeIndex(n)); + } + + function setEndAfter(n) { + setEnd(n.parentNode, nodeIndex(n) + 1); + } + + function collapse(ts) { + if (ts) { + self[END_CONTAINER] = self[START_CONTAINER]; + self[END_OFFSET] = self[START_OFFSET]; + } else { + self[START_CONTAINER] = self[END_CONTAINER]; + self[START_OFFSET] = self[END_OFFSET]; + } + + self.collapsed = TRUE; + } + + function selectNode(n) { + setStartBefore(n); + setEndAfter(n); + } + + function selectNodeContents(n) { + setStart(n, 0); + setEnd(n, n.nodeType === 1 ? n.childNodes.length : n.nodeValue.length); + } + + function compareBoundaryPoints(h, r) { + var sc = self[START_CONTAINER], so = self[START_OFFSET], ec = self[END_CONTAINER], eo = self[END_OFFSET], + rsc = r.startContainer, rso = r.startOffset, rec = r.endContainer, reo = r.endOffset; + + // Check START_TO_START + if (h === 0) { + return _compareBoundaryPoints(sc, so, rsc, rso); + } + + // Check START_TO_END + if (h === 1) { + return _compareBoundaryPoints(ec, eo, rsc, rso); + } + + // Check END_TO_END + if (h === 2) { + return _compareBoundaryPoints(ec, eo, rec, reo); + } + + // Check END_TO_START + if (h === 3) { + return _compareBoundaryPoints(sc, so, rec, reo); + } + } + + function deleteContents() { + _traverse(DELETE); + } + + function extractContents() { + return _traverse(EXTRACT); + } + + function cloneContents() { + return _traverse(CLONE); + } + + function insertNode(n) { + var startContainer = this[START_CONTAINER], + startOffset = this[START_OFFSET], nn, o; + + // Node is TEXT_NODE or CDATA + if ((startContainer.nodeType === 3 || startContainer.nodeType === 4) && startContainer.nodeValue) { + if (!startOffset) { + // At the start of text + startContainer.parentNode.insertBefore(n, startContainer); + } else if (startOffset >= startContainer.nodeValue.length) { + // At the end of text + dom.insertAfter(n, startContainer); + } else { + // Middle, need to split + nn = startContainer.splitText(startOffset); + startContainer.parentNode.insertBefore(n, nn); + } + } else { + // Insert element node + if (startContainer.childNodes.length > 0) { + o = startContainer.childNodes[startOffset]; + } + + if (o) { + startContainer.insertBefore(n, o); + } else { + if (startContainer.nodeType == 3) { + dom.insertAfter(n, startContainer); + } else { + startContainer.appendChild(n); + } + } + } + } + + function surroundContents(n) { + var f = self.extractContents(); + + self.insertNode(n); + n.appendChild(f); + self.selectNode(n); + } + + function cloneRange() { + return extend(new Range(dom), { + startContainer: self[START_CONTAINER], + startOffset: self[START_OFFSET], + endContainer: self[END_CONTAINER], + endOffset: self[END_OFFSET], + collapsed: self.collapsed, + commonAncestorContainer: self.commonAncestorContainer + }); + } + + // Private methods + + function _getSelectedNode(container, offset) { + var child; + + if (container.nodeType == 3 /* TEXT_NODE */) { + return container; + } + + if (offset < 0) { + return container; + } + + child = container.firstChild; + while (child && offset > 0) { + --offset; + child = child.nextSibling; + } + + if (child) { + return child; + } + + return container; + } + + function _isCollapsed() { + return (self[START_CONTAINER] == self[END_CONTAINER] && self[START_OFFSET] == self[END_OFFSET]); + } + + function _compareBoundaryPoints(containerA, offsetA, containerB, offsetB) { + var c, offsetC, n, cmnRoot, childA, childB; + + // In the first case the boundary-points have the same container. A is before B + // if its offset is less than the offset of B, A is equal to B if its offset is + // equal to the offset of B, and A is after B if its offset is greater than the + // offset of B. + if (containerA == containerB) { + if (offsetA == offsetB) { + return 0; // equal + } + + if (offsetA < offsetB) { + return -1; // before + } + + return 1; // after + } + + // In the second case a child node C of the container of A is an ancestor + // container of B. In this case, A is before B if the offset of A is less than or + // equal to the index of the child node C and A is after B otherwise. + c = containerB; + while (c && c.parentNode != containerA) { + c = c.parentNode; + } + + if (c) { + offsetC = 0; + n = containerA.firstChild; + + while (n != c && offsetC < offsetA) { + offsetC++; + n = n.nextSibling; + } + + if (offsetA <= offsetC) { + return -1; // before + } + + return 1; // after + } + + // In the third case a child node C of the container of B is an ancestor container + // of A. In this case, A is before B if the index of the child node C is less than + // the offset of B and A is after B otherwise. + c = containerA; + while (c && c.parentNode != containerB) { + c = c.parentNode; + } + + if (c) { + offsetC = 0; + n = containerB.firstChild; + + while (n != c && offsetC < offsetB) { + offsetC++; + n = n.nextSibling; + } + + if (offsetC < offsetB) { + return -1; // before + } + + return 1; // after + } + + // In the fourth case, none of three other cases hold: the containers of A and B + // are siblings or descendants of sibling nodes. In this case, A is before B if + // the container of A is before the container of B in a pre-order traversal of the + // Ranges' context tree and A is after B otherwise. + cmnRoot = dom.findCommonAncestor(containerA, containerB); + childA = containerA; + + while (childA && childA.parentNode != cmnRoot) { + childA = childA.parentNode; + } + + if (!childA) { + childA = cmnRoot; + } + + childB = containerB; + while (childB && childB.parentNode != cmnRoot) { + childB = childB.parentNode; + } + + if (!childB) { + childB = cmnRoot; + } + + if (childA == childB) { + return 0; // equal + } + + n = cmnRoot.firstChild; + while (n) { + if (n == childA) { + return -1; // before + } + + if (n == childB) { + return 1; // after + } + + n = n.nextSibling; + } + } + + function _setEndPoint(st, n, o) { + var ec, sc; + + if (st) { + self[START_CONTAINER] = n; + self[START_OFFSET] = o; + } else { + self[END_CONTAINER] = n; + self[END_OFFSET] = o; + } + + // If one boundary-point of a Range is set to have a root container + // other than the current one for the Range, the Range is collapsed to + // the new position. This enforces the restriction that both boundary- + // points of a Range must have the same root container. + ec = self[END_CONTAINER]; + while (ec.parentNode) { + ec = ec.parentNode; + } + + sc = self[START_CONTAINER]; + while (sc.parentNode) { + sc = sc.parentNode; + } + + if (sc == ec) { + // The start position of a Range is guaranteed to never be after the + // end position. To enforce this restriction, if the start is set to + // be at a position after the end, the Range is collapsed to that + // position. + if (_compareBoundaryPoints(self[START_CONTAINER], self[START_OFFSET], self[END_CONTAINER], self[END_OFFSET]) > 0) { + self.collapse(st); + } + } else { + self.collapse(st); + } + + self.collapsed = _isCollapsed(); + self.commonAncestorContainer = dom.findCommonAncestor(self[START_CONTAINER], self[END_CONTAINER]); + } + + function _traverse(how) { + var c, endContainerDepth = 0, startContainerDepth = 0, p, depthDiff, startNode, endNode, sp, ep; + + if (self[START_CONTAINER] == self[END_CONTAINER]) { + return _traverseSameContainer(how); + } + + for (c = self[END_CONTAINER], p = c.parentNode; p; c = p, p = p.parentNode) { + if (p == self[START_CONTAINER]) { + return _traverseCommonStartContainer(c, how); + } + + ++endContainerDepth; + } + + for (c = self[START_CONTAINER], p = c.parentNode; p; c = p, p = p.parentNode) { + if (p == self[END_CONTAINER]) { + return _traverseCommonEndContainer(c, how); + } + + ++startContainerDepth; + } + + depthDiff = startContainerDepth - endContainerDepth; + + startNode = self[START_CONTAINER]; + while (depthDiff > 0) { + startNode = startNode.parentNode; + depthDiff--; + } + + endNode = self[END_CONTAINER]; + while (depthDiff < 0) { + endNode = endNode.parentNode; + depthDiff++; + } + + // ascend the ancestor hierarchy until we have a common parent. + for (sp = startNode.parentNode, ep = endNode.parentNode; sp != ep; sp = sp.parentNode, ep = ep.parentNode) { + startNode = sp; + endNode = ep; + } + + return _traverseCommonAncestors(startNode, endNode, how); + } + + function _traverseSameContainer(how) { + var frag, s, sub, n, cnt, sibling, xferNode, start, len; + + if (how != DELETE) { + frag = createDocumentFragment(); + } + + // If selection is empty, just return the fragment + if (self[START_OFFSET] == self[END_OFFSET]) { + return frag; + } + + // Text node needs special case handling + if (self[START_CONTAINER].nodeType == 3 /* TEXT_NODE */) { + // get the substring + s = self[START_CONTAINER].nodeValue; + sub = s.substring(self[START_OFFSET], self[END_OFFSET]); + + // set the original text node to its new value + if (how != CLONE) { + n = self[START_CONTAINER]; + start = self[START_OFFSET]; + len = self[END_OFFSET] - self[START_OFFSET]; + + if (start === 0 && len >= n.nodeValue.length - 1) { + n.parentNode.removeChild(n); + } else { + n.deleteData(start, len); + } + + // Nothing is partially selected, so collapse to start point + self.collapse(TRUE); + } + + if (how == DELETE) { + return; + } + + if (sub.length > 0) { + frag.appendChild(doc.createTextNode(sub)); + } + + return frag; + } + + // Copy nodes between the start/end offsets. + n = _getSelectedNode(self[START_CONTAINER], self[START_OFFSET]); + cnt = self[END_OFFSET] - self[START_OFFSET]; + + while (n && cnt > 0) { + sibling = n.nextSibling; + xferNode = _traverseFullySelected(n, how); + + if (frag) { + frag.appendChild(xferNode); + } + + --cnt; + n = sibling; + } + + // Nothing is partially selected, so collapse to start point + if (how != CLONE) { + self.collapse(TRUE); + } + + return frag; + } + + function _traverseCommonStartContainer(endAncestor, how) { + var frag, n, endIdx, cnt, sibling, xferNode; + + if (how != DELETE) { + frag = createDocumentFragment(); + } + + n = _traverseRightBoundary(endAncestor, how); + + if (frag) { + frag.appendChild(n); + } + + endIdx = nodeIndex(endAncestor); + cnt = endIdx - self[START_OFFSET]; + + if (cnt <= 0) { + // Collapse to just before the endAncestor, which + // is partially selected. + if (how != CLONE) { + self.setEndBefore(endAncestor); + self.collapse(FALSE); + } + + return frag; + } + + n = endAncestor.previousSibling; + while (cnt > 0) { + sibling = n.previousSibling; + xferNode = _traverseFullySelected(n, how); + + if (frag) { + frag.insertBefore(xferNode, frag.firstChild); + } + + --cnt; + n = sibling; + } + + // Collapse to just before the endAncestor, which + // is partially selected. + if (how != CLONE) { + self.setEndBefore(endAncestor); + self.collapse(FALSE); + } + + return frag; + } + + function _traverseCommonEndContainer(startAncestor, how) { + var frag, startIdx, n, cnt, sibling, xferNode; + + if (how != DELETE) { + frag = createDocumentFragment(); + } + + n = _traverseLeftBoundary(startAncestor, how); + if (frag) { + frag.appendChild(n); + } + + startIdx = nodeIndex(startAncestor); + ++startIdx; // Because we already traversed it + + cnt = self[END_OFFSET] - startIdx; + n = startAncestor.nextSibling; + while (n && cnt > 0) { + sibling = n.nextSibling; + xferNode = _traverseFullySelected(n, how); + + if (frag) { + frag.appendChild(xferNode); + } + + --cnt; + n = sibling; + } + + if (how != CLONE) { + self.setStartAfter(startAncestor); + self.collapse(TRUE); + } + + return frag; + } + + function _traverseCommonAncestors(startAncestor, endAncestor, how) { + var n, frag, startOffset, endOffset, cnt, sibling, nextSibling; + + if (how != DELETE) { + frag = createDocumentFragment(); + } + + n = _traverseLeftBoundary(startAncestor, how); + if (frag) { + frag.appendChild(n); + } + + startOffset = nodeIndex(startAncestor); + endOffset = nodeIndex(endAncestor); + ++startOffset; + + cnt = endOffset - startOffset; + sibling = startAncestor.nextSibling; + + while (cnt > 0) { + nextSibling = sibling.nextSibling; + n = _traverseFullySelected(sibling, how); + + if (frag) { + frag.appendChild(n); + } + + sibling = nextSibling; + --cnt; + } + + n = _traverseRightBoundary(endAncestor, how); + + if (frag) { + frag.appendChild(n); + } + + if (how != CLONE) { + self.setStartAfter(startAncestor); + self.collapse(TRUE); + } + + return frag; + } + + function _traverseRightBoundary(root, how) { + var next = _getSelectedNode(self[END_CONTAINER], self[END_OFFSET] - 1), parent, clonedParent; + var prevSibling, clonedChild, clonedGrandParent, isFullySelected = next != self[END_CONTAINER]; + + if (next == root) { + return _traverseNode(next, isFullySelected, FALSE, how); + } + + parent = next.parentNode; + clonedParent = _traverseNode(parent, FALSE, FALSE, how); + + while (parent) { + while (next) { + prevSibling = next.previousSibling; + clonedChild = _traverseNode(next, isFullySelected, FALSE, how); + + if (how != DELETE) { + clonedParent.insertBefore(clonedChild, clonedParent.firstChild); + } + + isFullySelected = TRUE; + next = prevSibling; + } + + if (parent == root) { + return clonedParent; + } + + next = parent.previousSibling; + parent = parent.parentNode; + + clonedGrandParent = _traverseNode(parent, FALSE, FALSE, how); + + if (how != DELETE) { + clonedGrandParent.appendChild(clonedParent); + } + + clonedParent = clonedGrandParent; + } + } + + function _traverseLeftBoundary(root, how) { + var next = _getSelectedNode(self[START_CONTAINER], self[START_OFFSET]), isFullySelected = next != self[START_CONTAINER]; + var parent, clonedParent, nextSibling, clonedChild, clonedGrandParent; + + if (next == root) { + return _traverseNode(next, isFullySelected, TRUE, how); + } + + parent = next.parentNode; + clonedParent = _traverseNode(parent, FALSE, TRUE, how); + + while (parent) { + while (next) { + nextSibling = next.nextSibling; + clonedChild = _traverseNode(next, isFullySelected, TRUE, how); + + if (how != DELETE) { + clonedParent.appendChild(clonedChild); + } + + isFullySelected = TRUE; + next = nextSibling; + } + + if (parent == root) { + return clonedParent; + } + + next = parent.nextSibling; + parent = parent.parentNode; + + clonedGrandParent = _traverseNode(parent, FALSE, TRUE, how); + + if (how != DELETE) { + clonedGrandParent.appendChild(clonedParent); + } + + clonedParent = clonedGrandParent; + } + } + + function _traverseNode(n, isFullySelected, isLeft, how) { + var txtValue, newNodeValue, oldNodeValue, offset, newNode; + + if (isFullySelected) { + return _traverseFullySelected(n, how); + } + + if (n.nodeType == 3 /* TEXT_NODE */) { + txtValue = n.nodeValue; + + if (isLeft) { + offset = self[START_OFFSET]; + newNodeValue = txtValue.substring(offset); + oldNodeValue = txtValue.substring(0, offset); + } else { + offset = self[END_OFFSET]; + newNodeValue = txtValue.substring(0, offset); + oldNodeValue = txtValue.substring(offset); + } + + if (how != CLONE) { + n.nodeValue = oldNodeValue; + } + + if (how == DELETE) { + return; + } + + newNode = dom.clone(n, FALSE); + newNode.nodeValue = newNodeValue; + + return newNode; + } + + if (how == DELETE) { + return; + } + + return dom.clone(n, FALSE); + } + + function _traverseFullySelected(n, how) { + if (how != DELETE) { + return how == CLONE ? dom.clone(n, TRUE) : n; + } + + n.parentNode.removeChild(n); + } + + function toStringIE() { + return dom.create('body', null, cloneContents()).outerText; + } + + extend(self, { + // Inital states + startContainer: doc, + startOffset: 0, + endContainer: doc, + endOffset: 0, + collapsed: TRUE, + commonAncestorContainer: doc, + + // Range constants + START_TO_START: 0, + START_TO_END: 1, + END_TO_END: 2, + END_TO_START: 3, + + // Public methods + setStart: setStart, + setEnd: setEnd, + setStartBefore: setStartBefore, + setStartAfter: setStartAfter, + setEndBefore: setEndBefore, + setEndAfter: setEndAfter, + collapse: collapse, + selectNode: selectNode, + selectNodeContents: selectNodeContents, + compareBoundaryPoints: compareBoundaryPoints, + deleteContents: deleteContents, + extractContents: extractContents, + cloneContents: cloneContents, + insertNode: insertNode, + surroundContents: surroundContents, + cloneRange: cloneRange, + toStringIE: toStringIE + }); + + return self; + } + + // Older IE versions doesn't let you override toString by it's constructor so we have to stick it in the prototype + Range.prototype.toString = function() { + return this.toStringIE(); + }; + + return Range; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/dom/RangeUtils.js b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/RangeUtils.js new file mode 100755 index 00000000000..42d39f91f8b --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/RangeUtils.js @@ -0,0 +1,476 @@ +/** + * Range.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * RangeUtils + * + * @class tinymce.dom.RangeUtils + * @private + */ +define("tinymce/dom/RangeUtils", [ + "tinymce/util/Tools", + "tinymce/dom/TreeWalker" +], function(Tools, TreeWalker) { + var each = Tools.each; + + function RangeUtils(dom) { + /** + * Walks the specified range like object and executes the callback for each sibling collection it finds. + * + * @method walk + * @param {Object} rng Range like object. + * @param {function} callback Callback function to execute for each sibling collection. + */ + this.walk = function(rng, callback) { + var startContainer = rng.startContainer, + startOffset = rng.startOffset, + endContainer = rng.endContainer, + endOffset = rng.endOffset, + ancestor, startPoint, + endPoint, node, parent, siblings, nodes; + + // Handle table cell selection the table plugin enables + // you to fake select table cells and perform formatting actions on them + nodes = dom.select('td.mce-item-selected,th.mce-item-selected'); + if (nodes.length > 0) { + each(nodes, function(node) { + callback([node]); + }); + + return; + } + + /** + * Excludes start/end text node if they are out side the range + * + * @private + * @param {Array} nodes Nodes to exclude items from. + * @return {Array} Array with nodes excluding the start/end container if needed. + */ + function exclude(nodes) { + var node; + + // First node is excluded + node = nodes[0]; + if (node.nodeType === 3 && node === startContainer && startOffset >= node.nodeValue.length) { + nodes.splice(0, 1); + } + + // Last node is excluded + node = nodes[nodes.length - 1]; + if (endOffset === 0 && nodes.length > 0 && node === endContainer && node.nodeType === 3) { + nodes.splice(nodes.length - 1, 1); + } + + return nodes; + } + + /** + * Collects siblings + * + * @private + * @param {Node} node Node to collect siblings from. + * @param {String} name Name of the sibling to check for. + * @return {Array} Array of collected siblings. + */ + function collectSiblings(node, name, end_node) { + var siblings = []; + + for (; node && node != end_node; node = node[name]) { + siblings.push(node); + } + + return siblings; + } + + /** + * Find an end point this is the node just before the common ancestor root. + * + * @private + * @param {Node} node Node to start at. + * @param {Node} root Root/ancestor element to stop just before. + * @return {Node} Node just before the root element. + */ + function findEndPoint(node, root) { + do { + if (node.parentNode == root) { + return node; + } + + node = node.parentNode; + } while(node); + } + + function walkBoundary(start_node, end_node, next) { + var siblingName = next ? 'nextSibling' : 'previousSibling'; + + for (node = start_node, parent = node.parentNode; node && node != end_node; node = parent) { + parent = node.parentNode; + siblings = collectSiblings(node == start_node ? node : node[siblingName], siblingName); + + if (siblings.length) { + if (!next) { + siblings.reverse(); + } + + callback(exclude(siblings)); + } + } + } + + // If index based start position then resolve it + if (startContainer.nodeType == 1 && startContainer.hasChildNodes()) { + startContainer = startContainer.childNodes[startOffset]; + } + + // If index based end position then resolve it + if (endContainer.nodeType == 1 && endContainer.hasChildNodes()) { + endContainer = endContainer.childNodes[Math.min(endOffset - 1, endContainer.childNodes.length - 1)]; + } + + // Same container + if (startContainer == endContainer) { + return callback(exclude([startContainer])); + } + + // Find common ancestor and end points + ancestor = dom.findCommonAncestor(startContainer, endContainer); + + // Process left side + for (node = startContainer; node; node = node.parentNode) { + if (node === endContainer) { + return walkBoundary(startContainer, ancestor, true); + } + + if (node === ancestor) { + break; + } + } + + // Process right side + for (node = endContainer; node; node = node.parentNode) { + if (node === startContainer) { + return walkBoundary(endContainer, ancestor); + } + + if (node === ancestor) { + break; + } + } + + // Find start/end point + startPoint = findEndPoint(startContainer, ancestor) || startContainer; + endPoint = findEndPoint(endContainer, ancestor) || endContainer; + + // Walk left leaf + walkBoundary(startContainer, startPoint, true); + + // Walk the middle from start to end point + siblings = collectSiblings( + startPoint == startContainer ? startPoint : startPoint.nextSibling, + 'nextSibling', + endPoint == endContainer ? endPoint.nextSibling : endPoint + ); + + if (siblings.length) { + callback(exclude(siblings)); + } + + // Walk right leaf + walkBoundary(endContainer, endPoint); + }; + + /** + * Splits the specified range at it's start/end points. + * + * @private + * @param {Range/RangeObject} rng Range to split. + * @return {Object} Range position object. + */ + this.split = function(rng) { + var startContainer = rng.startContainer, + startOffset = rng.startOffset, + endContainer = rng.endContainer, + endOffset = rng.endOffset; + + function splitText(node, offset) { + return node.splitText(offset); + } + + // Handle single text node + if (startContainer == endContainer && startContainer.nodeType == 3) { + if (startOffset > 0 && startOffset < startContainer.nodeValue.length) { + endContainer = splitText(startContainer, startOffset); + startContainer = endContainer.previousSibling; + + if (endOffset > startOffset) { + endOffset = endOffset - startOffset; + startContainer = endContainer = splitText(endContainer, endOffset).previousSibling; + endOffset = endContainer.nodeValue.length; + startOffset = 0; + } else { + endOffset = 0; + } + } + } else { + // Split startContainer text node if needed + if (startContainer.nodeType == 3 && startOffset > 0 && startOffset < startContainer.nodeValue.length) { + startContainer = splitText(startContainer, startOffset); + startOffset = 0; + } + + // Split endContainer text node if needed + if (endContainer.nodeType == 3 && endOffset > 0 && endOffset < endContainer.nodeValue.length) { + endContainer = splitText(endContainer, endOffset).previousSibling; + endOffset = endContainer.nodeValue.length; + } + } + + return { + startContainer: startContainer, + startOffset: startOffset, + endContainer: endContainer, + endOffset: endOffset + }; + }; + + /** + * Normalizes the specified range by finding the closest best suitable caret location. + * + * @private + * @param {Range} rng Range to normalize. + * @return {Boolean} True/false if the specified range was normalized or not. + */ + this.normalize = function(rng) { + var normalized, collapsed; + + function normalizeEndPoint(start) { + var container, offset, walker, body = dom.getRoot(), node, nonEmptyElementsMap, nodeName; + var directionLeft, isAfterNode; + + function hasBrBeforeAfter(node, left) { + var walker = new TreeWalker(node, dom.getParent(node.parentNode, dom.isBlock) || body); + + while ((node = walker[left ? 'prev' : 'next']())) { + if (node.nodeName === "BR") { + return true; + } + } + } + + function isPrevNode(node, name) { + return node.previousSibling && node.previousSibling.nodeName == name; + } + + // Walks the dom left/right to find a suitable text node to move the endpoint into + // It will only walk within the current parent block or body and will stop if it hits a block or a BR/IMG + function findTextNodeRelative(left, startNode) { + var walker, lastInlineElement, parentBlockContainer; + + startNode = startNode || container; + parentBlockContainer = dom.getParent(startNode.parentNode, dom.isBlock) || body; + + // Lean left before the BR element if it's the only BR within a block element. Gecko bug: #6680 + // This: <p><br>|</p> becomes <p>|<br></p> + if (left && startNode.nodeName == 'BR' && isAfterNode && dom.isEmpty(parentBlockContainer)) { + container = startNode.parentNode; + offset = dom.nodeIndex(startNode); + normalized = true; + return; + } + + // Walk left until we hit a text node we can move to or a block/br/img + walker = new TreeWalker(startNode, parentBlockContainer); + while ((node = walker[left ? 'prev' : 'next']())) { + // Found text node that has a length + if (node.nodeType === 3 && node.nodeValue.length > 0) { + container = node; + offset = left ? node.nodeValue.length : 0; + normalized = true; + return; + } + + // Break if we find a block or a BR/IMG/INPUT etc + if (dom.isBlock(node) || nonEmptyElementsMap[node.nodeName.toLowerCase()]) { + return; + } + + lastInlineElement = node; + } + + // Only fetch the last inline element when in caret mode for now + if (collapsed && lastInlineElement) { + container = lastInlineElement; + normalized = true; + offset = 0; + } + } + + container = rng[(start ? 'start' : 'end') + 'Container']; + offset = rng[(start ? 'start' : 'end') + 'Offset']; + isAfterNode = container.nodeType == 1 && offset === container.childNodes.length; + nonEmptyElementsMap = dom.schema.getNonEmptyElements(); + directionLeft = start; + + if (container.nodeType == 1 && offset > container.childNodes.length - 1) { + directionLeft = false; + } + + // If the container is a document move it to the body element + if (container.nodeType === 9) { + container = dom.getRoot(); + offset = 0; + } + + // If the container is body try move it into the closest text node or position + if (container === body) { + // If start is before/after a image, table etc + if (directionLeft) { + node = container.childNodes[offset > 0 ? offset - 1 : 0]; + if (node) { + nodeName = node.nodeName.toLowerCase(); + if (nonEmptyElementsMap[node.nodeName] || node.nodeName == "TABLE") { + return; + } + } + } + + // Resolve the index + if (container.hasChildNodes()) { + offset = Math.min(!directionLeft && offset > 0 ? offset - 1 : offset, container.childNodes.length - 1); + container = container.childNodes[offset]; + offset = 0; + + // Don't walk into elements that doesn't have any child nodes like a IMG + if (container.hasChildNodes() && !/TABLE/.test(container.nodeName)) { + // Walk the DOM to find a text node to place the caret at or a BR + node = container; + walker = new TreeWalker(container, body); + + do { + // Found a text node use that position + if (node.nodeType === 3 && node.nodeValue.length > 0) { + offset = directionLeft ? 0 : node.nodeValue.length; + container = node; + normalized = true; + break; + } + + // Found a BR/IMG element that we can place the caret before + if (nonEmptyElementsMap[node.nodeName.toLowerCase()]) { + offset = dom.nodeIndex(node); + container = node.parentNode; + + // Put caret after image when moving the end point + if (node.nodeName == "IMG" && !directionLeft) { + offset++; + } + + normalized = true; + break; + } + } while ((node = (directionLeft ? walker.next() : walker.prev()))); + } + } + } + + // Lean the caret to the left if possible + if (collapsed) { + // So this: <b>x</b><i>|x</i> + // Becomes: <b>x|</b><i>x</i> + // Seems that only gecko has issues with this + if (container.nodeType === 3 && offset === 0) { + findTextNodeRelative(true); + } + + // Lean left into empty inline elements when the caret is before a BR + // So this: <i><b></b><i>|<br></i> + // Becomes: <i><b>|</b><i><br></i> + // Seems that only gecko has issues with this. + // Special edge case for <p><a>x</a>|<br></p> since we don't want <p><a>x|</a><br></p> + if (container.nodeType === 1) { + node = container.childNodes[offset]; + + // Offset is after the containers last child + // then use the previous child for normalization + if (!node) { + node = container.childNodes[offset - 1]; + } + + if (node && node.nodeName === 'BR' && !isPrevNode(node, 'A') && + !hasBrBeforeAfter(node) && !hasBrBeforeAfter(node, true)) { + findTextNodeRelative(true, node); + } + } + } + + // Lean the start of the selection right if possible + // So this: x[<b>x]</b> + // Becomes: x<b>[x]</b> + if (directionLeft && !collapsed && container.nodeType === 3 && offset === container.nodeValue.length) { + findTextNodeRelative(false); + } + + // Set endpoint if it was normalized + if (normalized) { + rng['set' + (start ? 'Start' : 'End')](container, offset); + } + } + + collapsed = rng.collapsed; + + normalizeEndPoint(true); + + if (!collapsed) { + normalizeEndPoint(); + } + + // If it was collapsed then make sure it still is + if (normalized && collapsed) { + rng.collapse(true); + } + + return normalized; + }; + } + + /** + * Compares two ranges and checks if they are equal. + * + * @static + * @method compareRanges + * @param {DOMRange} rng1 First range to compare. + * @param {DOMRange} rng2 First range to compare. + * @return {Boolean} true/false if the ranges are equal. + */ + RangeUtils.compareRanges = function(rng1, rng2) { + if (rng1 && rng2) { + // Compare native IE ranges + if (rng1.item || rng1.duplicate) { + // Both are control ranges and the selected element matches + if (rng1.item && rng2.item && rng1.item(0) === rng2.item(0)) { + return true; + } + + // Both are text ranges and the range matches + if (rng1.isEqual && rng2.isEqual && rng2.isEqual(rng1)) { + return true; + } + } else { + // Compare w3c ranges + return rng1.startContainer == rng2.startContainer && rng1.startOffset == rng2.startOffset; + } + } + + return false; + }; + + return RangeUtils; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/dom/ScriptLoader.js b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/ScriptLoader.js new file mode 100755 index 00000000000..89c04669719 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/ScriptLoader.js @@ -0,0 +1,255 @@ +/** + * ScriptLoader.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*globals console*/ + +/** + * This class handles asynchronous/synchronous loading of JavaScript files it will execute callbacks + * when various items gets loaded. This class is useful to load external JavaScript files. + * + * @class tinymce.dom.ScriptLoader + * @example + * // Load a script from a specific URL using the global script loader + * tinymce.ScriptLoader.load('somescript.js'); + * + * // Load a script using a unique instance of the script loader + * var scriptLoader = new tinymce.dom.ScriptLoader(); + * + * scriptLoader.load('somescript.js'); + * + * // Load multiple scripts + * var scriptLoader = new tinymce.dom.ScriptLoader(); + * + * scriptLoader.add('somescript1.js'); + * scriptLoader.add('somescript2.js'); + * scriptLoader.add('somescript3.js'); + * + * scriptLoader.loadQueue(function() { + * alert('All scripts are now loaded.'); + * }); + */ +define("tinymce/dom/ScriptLoader", [ + "tinymce/dom/DOMUtils", + "tinymce/util/Tools" +], function(DOMUtils, Tools) { + var DOM = DOMUtils.DOM; + var each = Tools.each, grep = Tools.grep; + + function ScriptLoader() { + var QUEUED = 0, + LOADING = 1, + LOADED = 2, + states = {}, + queue = [], + scriptLoadedCallbacks = {}, + queueLoadedCallbacks = [], + loading = 0, + undef; + + /** + * Loads a specific script directly without adding it to the load queue. + * + * @method load + * @param {String} url Absolute URL to script to add. + * @param {function} callback Optional callback function to execute ones this script gets loaded. + * @param {Object} scope Optional scope to execute callback in. + */ + function loadScript(url, callback) { + var dom = DOM, elm, id; + + // Execute callback when script is loaded + function done() { + dom.remove(id); + + if (elm) { + elm.onreadystatechange = elm.onload = elm = null; + } + + callback(); + } + + function error() { + /*eslint no-console:0 */ + + // Report the error so it's easier for people to spot loading errors + if (typeof(console) !== "undefined" && console.log) { + console.log("Failed to load: " + url); + } + + // We can't mark it as done if there is a load error since + // A) We don't want to produce 404 errors on the server and + // B) the onerror event won't fire on all browsers. + // done(); + } + + id = dom.uniqueId(); + + // Create new script element + elm = document.createElement('script'); + elm.id = id; + elm.type = 'text/javascript'; + elm.src = url; + + // Seems that onreadystatechange works better on IE 10 onload seems to fire incorrectly + if ("onreadystatechange" in elm) { + elm.onreadystatechange = function() { + if (/loaded|complete/.test(elm.readyState)) { + done(); + } + }; + } else { + elm.onload = done; + } + + // Add onerror event will get fired on some browsers but not all of them + elm.onerror = error; + + // Add script to document + (document.getElementsByTagName('head')[0] || document.body).appendChild(elm); + } + + /** + * Returns true/false if a script has been loaded or not. + * + * @method isDone + * @param {String} url URL to check for. + * @return {Boolean} true/false if the URL is loaded. + */ + this.isDone = function(url) { + return states[url] == LOADED; + }; + + /** + * Marks a specific script to be loaded. This can be useful if a script got loaded outside + * the script loader or to skip it from loading some script. + * + * @method markDone + * @param {string} u Absolute URL to the script to mark as loaded. + */ + this.markDone = function(url) { + states[url] = LOADED; + }; + + /** + * Adds a specific script to the load queue of the script loader. + * + * @method add + * @param {String} url Absolute URL to script to add. + * @param {function} callback Optional callback function to execute ones this script gets loaded. + * @param {Object} scope Optional scope to execute callback in. + */ + this.add = this.load = function(url, callback, scope) { + var state = states[url]; + + // Add url to load queue + if (state == undef) { + queue.push(url); + states[url] = QUEUED; + } + + if (callback) { + // Store away callback for later execution + if (!scriptLoadedCallbacks[url]) { + scriptLoadedCallbacks[url] = []; + } + + scriptLoadedCallbacks[url].push({ + func: callback, + scope: scope || this + }); + } + }; + + /** + * Starts the loading of the queue. + * + * @method loadQueue + * @param {function} callback Optional callback to execute when all queued items are loaded. + * @param {Object} scope Optional scope to execute the callback in. + */ + this.loadQueue = function(callback, scope) { + this.loadScripts(queue, callback, scope); + }; + + /** + * Loads the specified queue of files and executes the callback ones they are loaded. + * This method is generally not used outside this class but it might be useful in some scenarios. + * + * @method loadScripts + * @param {Array} scripts Array of queue items to load. + * @param {function} callback Optional callback to execute ones all items are loaded. + * @param {Object} scope Optional scope to execute callback in. + */ + this.loadScripts = function(scripts, callback, scope) { + var loadScripts; + + function execScriptLoadedCallbacks(url) { + // Execute URL callback functions + each(scriptLoadedCallbacks[url], function(callback) { + callback.func.call(callback.scope); + }); + + scriptLoadedCallbacks[url] = undef; + } + + queueLoadedCallbacks.push({ + func: callback, + scope: scope || this + }); + + loadScripts = function() { + var loadingScripts = grep(scripts); + + // Current scripts has been handled + scripts.length = 0; + + // Load scripts that needs to be loaded + each(loadingScripts, function(url) { + // Script is already loaded then execute script callbacks directly + if (states[url] == LOADED) { + execScriptLoadedCallbacks(url); + return; + } + + // Is script not loading then start loading it + if (states[url] != LOADING) { + states[url] = LOADING; + loading++; + + loadScript(url, function() { + states[url] = LOADED; + loading--; + + execScriptLoadedCallbacks(url); + + // Load more scripts if they where added by the recently loaded script + loadScripts(); + }); + } + }); + + // No scripts are currently loading then execute all pending queue loaded callbacks + if (!loading) { + each(queueLoadedCallbacks, function(callback) { + callback.func.call(callback.scope); + }); + + queueLoadedCallbacks.length = 0; + } + }; + + loadScripts(); + }; + } + + ScriptLoader.ScriptLoader = new ScriptLoader(); + + return ScriptLoader; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/dom/Selection.js b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/Selection.js new file mode 100755 index 00000000000..aa132875d54 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/Selection.js @@ -0,0 +1,1259 @@ +/** + * Selection.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles text and control selection it's an crossbrowser utility class. + * Consult the TinyMCE Wiki API for more details and examples on how to use this class. + * + * @class tinymce.dom.Selection + * @example + * // Getting the currently selected node for the active editor + * alert(tinymce.activeEditor.selection.getNode().nodeName); + */ +define("tinymce/dom/Selection", [ + "tinymce/dom/TreeWalker", + "tinymce/dom/TridentSelection", + "tinymce/dom/ControlSelection", + "tinymce/dom/RangeUtils", + "tinymce/Env", + "tinymce/util/Tools" +], function(TreeWalker, TridentSelection, ControlSelection, RangeUtils, Env, Tools) { + var each = Tools.each, grep = Tools.grep, trim = Tools.trim; + var isIE = Env.ie, isOpera = Env.opera; + + /** + * Constructs a new selection instance. + * + * @constructor + * @method Selection + * @param {tinymce.dom.DOMUtils} dom DOMUtils object reference. + * @param {Window} win Window to bind the selection object to. + * @param {tinymce.dom.Serializer} serializer DOM serialization class to use for getContent. + */ + function Selection(dom, win, serializer, editor) { + var self = this; + + self.dom = dom; + self.win = win; + self.serializer = serializer; + self.editor = editor; + + self.controlSelection = new ControlSelection(self, editor); + + // No W3C Range support + if (!self.win.getSelection) { + self.tridentSel = new TridentSelection(self); + } + } + + Selection.prototype = { + /** + * Move the selection cursor range to the specified node and offset. + * If there is no node specified it will move it to the first suitable location within the body. + * + * @method setCursorLocation + * @param {Node} node Optional node to put the cursor in. + * @param {Number} offset Optional offset from the start of the node to put the cursor at. + */ + setCursorLocation: function(node, offset) { + var self = this, rng = self.dom.createRng(); + + if (!node) { + self._moveEndPoint(rng, self.editor.getBody(), true); + self.setRng(rng); + } else { + rng.setStart(node, offset); + rng.setEnd(node, offset); + self.setRng(rng); + self.collapse(false); + } + }, + + /** + * Returns the selected contents using the DOM serializer passed in to this class. + * + * @method getContent + * @param {Object} s Optional settings class with for example output format text or html. + * @return {String} Selected contents in for example HTML format. + * @example + * // Alerts the currently selected contents + * alert(tinymce.activeEditor.selection.getContent()); + * + * // Alerts the currently selected contents as plain text + * alert(tinymce.activeEditor.selection.getContent({format: 'text'})); + */ + getContent: function(args) { + var self = this, rng = self.getRng(), tmpElm = self.dom.create("body"); + var se = self.getSel(), whiteSpaceBefore, whiteSpaceAfter, fragment; + + args = args || {}; + whiteSpaceBefore = whiteSpaceAfter = ''; + args.get = true; + args.format = args.format || 'html'; + args.selection = true; + self.editor.fire('BeforeGetContent', args); + + if (args.format == 'text') { + return self.isCollapsed() ? '' : (rng.text || (se.toString ? se.toString() : '')); + } + + if (rng.cloneContents) { + fragment = rng.cloneContents(); + + if (fragment) { + tmpElm.appendChild(fragment); + } + } else if (rng.item !== undefined || rng.htmlText !== undefined) { + // IE will produce invalid markup if elements are present that + // it doesn't understand like custom elements or HTML5 elements. + // Adding a BR in front of the contents and then remoiving it seems to fix it though. + tmpElm.innerHTML = '<br>' + (rng.item ? rng.item(0).outerHTML : rng.htmlText); + tmpElm.removeChild(tmpElm.firstChild); + } else { + tmpElm.innerHTML = rng.toString(); + } + + // Keep whitespace before and after + if (/^\s/.test(tmpElm.innerHTML)) { + whiteSpaceBefore = ' '; + } + + if (/\s+$/.test(tmpElm.innerHTML)) { + whiteSpaceAfter = ' '; + } + + args.getInner = true; + + args.content = self.isCollapsed() ? '' : whiteSpaceBefore + self.serializer.serialize(tmpElm, args) + whiteSpaceAfter; + self.editor.fire('GetContent', args); + + return args.content; + }, + + /** + * Sets the current selection to the specified content. If any contents is selected it will be replaced + * with the contents passed in to this function. If there is no selection the contents will be inserted + * where the caret is placed in the editor/page. + * + * @method setContent + * @param {String} content HTML contents to set could also be other formats depending on settings. + * @param {Object} args Optional settings object with for example data format. + * @example + * // Inserts some HTML contents at the current selection + * tinymce.activeEditor.selection.setContent('<strong>Some contents</strong>'); + */ + setContent: function(content, args) { + var self = this, rng = self.getRng(), caretNode, doc = self.win.document, frag, temp; + + args = args || {format: 'html'}; + args.set = true; + args.selection = true; + content = args.content = content; + + // Dispatch before set content event + if (!args.no_events) { + self.editor.fire('BeforeSetContent', args); + } + + content = args.content; + + if (rng.insertNode) { + // Make caret marker since insertNode places the caret in the beginning of text after insert + content += '<span id="__caret">_</span>'; + + // Delete and insert new node + if (rng.startContainer == doc && rng.endContainer == doc) { + // WebKit will fail if the body is empty since the range is then invalid and it can't insert contents + doc.body.innerHTML = content; + } else { + rng.deleteContents(); + + if (doc.body.childNodes.length === 0) { + doc.body.innerHTML = content; + } else { + // createContextualFragment doesn't exists in IE 9 DOMRanges + if (rng.createContextualFragment) { + rng.insertNode(rng.createContextualFragment(content)); + } else { + // Fake createContextualFragment call in IE 9 + frag = doc.createDocumentFragment(); + temp = doc.createElement('div'); + + frag.appendChild(temp); + temp.outerHTML = content; + + rng.insertNode(frag); + } + } + } + + // Move to caret marker + caretNode = self.dom.get('__caret'); + + // Make sure we wrap it compleatly, Opera fails with a simple select call + rng = doc.createRange(); + rng.setStartBefore(caretNode); + rng.setEndBefore(caretNode); + self.setRng(rng); + + // Remove the caret position + self.dom.remove('__caret'); + + try { + self.setRng(rng); + } catch (ex) { + // Might fail on Opera for some odd reason + } + } else { + if (rng.item) { + // Delete content and get caret text selection + doc.execCommand('Delete', false, null); + rng = self.getRng(); + } + + // Explorer removes spaces from the beginning of pasted contents + if (/^\s+/.test(content)) { + rng.pasteHTML('<span id="__mce_tmp">_</span>' + content); + self.dom.remove('__mce_tmp'); + } else { + rng.pasteHTML(content); + } + } + + // Dispatch set content event + if (!args.no_events) { + self.editor.fire('SetContent', args); + } + }, + + /** + * Returns the start element of a selection range. If the start is in a text + * node the parent element will be returned. + * + * @method getStart + * @return {Element} Start element of selection range. + */ + getStart: function() { + var self = this, rng = self.getRng(), startElement, parentElement, checkRng, node; + + if (rng.duplicate || rng.item) { + // Control selection, return first item + if (rng.item) { + return rng.item(0); + } + + // Get start element + checkRng = rng.duplicate(); + checkRng.collapse(1); + startElement = checkRng.parentElement(); + if (startElement.ownerDocument !== self.dom.doc) { + startElement = self.dom.getRoot(); + } + + // Check if range parent is inside the start element, then return the inner parent element + // This will fix issues when a single element is selected, IE would otherwise return the wrong start element + parentElement = node = rng.parentElement(); + while ((node = node.parentNode)) { + if (node == startElement) { + startElement = parentElement; + break; + } + } + + return startElement; + } else { + startElement = rng.startContainer; + + if (startElement.nodeType == 1 && startElement.hasChildNodes()) { + startElement = startElement.childNodes[Math.min(startElement.childNodes.length - 1, rng.startOffset)]; + } + + if (startElement && startElement.nodeType == 3) { + return startElement.parentNode; + } + + return startElement; + } + }, + + /** + * Returns the end element of a selection range. If the end is in a text + * node the parent element will be returned. + * + * @method getEnd + * @return {Element} End element of selection range. + */ + getEnd: function() { + var self = this, rng = self.getRng(), endElement, endOffset; + + if (rng.duplicate || rng.item) { + if (rng.item) { + return rng.item(0); + } + + rng = rng.duplicate(); + rng.collapse(0); + endElement = rng.parentElement(); + if (endElement.ownerDocument !== self.dom.doc) { + endElement = self.dom.getRoot(); + } + + if (endElement && endElement.nodeName == 'BODY') { + return endElement.lastChild || endElement; + } + + return endElement; + } else { + endElement = rng.endContainer; + endOffset = rng.endOffset; + + if (endElement.nodeType == 1 && endElement.hasChildNodes()) { + endElement = endElement.childNodes[endOffset > 0 ? endOffset - 1 : endOffset]; + } + + if (endElement && endElement.nodeType == 3) { + return endElement.parentNode; + } + + return endElement; + } + }, + + /** + * Returns a bookmark location for the current selection. This bookmark object + * can then be used to restore the selection after some content modification to the document. + * + * @method getBookmark + * @param {Number} type Optional state if the bookmark should be simple or not. Default is complex. + * @param {Boolean} normalized Optional state that enables you to get a position that it would be after normalization. + * @return {Object} Bookmark object, use moveToBookmark with this object to restore the selection. + * @example + * // Stores a bookmark of the current selection + * var bm = tinymce.activeEditor.selection.getBookmark(); + * + * tinymce.activeEditor.setContent(tinymce.activeEditor.getContent() + 'Some new content'); + * + * // Restore the selection bookmark + * tinymce.activeEditor.selection.moveToBookmark(bm); + */ + getBookmark: function(type, normalized) { + var self = this, dom = self.dom, rng, rng2, id, collapsed, name, element, chr = '', styles; + + function findIndex(name, element) { + var index = 0; + + each(dom.select(name), function(node, i) { + if (node == element) { + index = i; + } + }); + + return index; + } + + function normalizeTableCellSelection(rng) { + function moveEndPoint(start) { + var container, offset, childNodes, prefix = start ? 'start' : 'end'; + + container = rng[prefix + 'Container']; + offset = rng[prefix + 'Offset']; + + if (container.nodeType == 1 && container.nodeName == "TR") { + childNodes = container.childNodes; + container = childNodes[Math.min(start ? offset : offset - 1, childNodes.length - 1)]; + if (container) { + offset = start ? 0 : container.childNodes.length; + rng['set' + (start ? 'Start' : 'End')](container, offset); + } + } + } + + moveEndPoint(true); + moveEndPoint(); + + return rng; + } + + function getLocation() { + var rng = self.getRng(true), root = dom.getRoot(), bookmark = {}; + + function getPoint(rng, start) { + var container = rng[start ? 'startContainer' : 'endContainer'], + offset = rng[start ? 'startOffset' : 'endOffset'], point = [], node, childNodes, after = 0; + + if (container.nodeType == 3) { + if (normalized) { + for (node = container.previousSibling; node && node.nodeType == 3; node = node.previousSibling) { + offset += node.nodeValue.length; + } + } + + point.push(offset); + } else { + childNodes = container.childNodes; + + if (offset >= childNodes.length && childNodes.length) { + after = 1; + offset = Math.max(0, childNodes.length - 1); + } + + point.push(self.dom.nodeIndex(childNodes[offset], normalized) + after); + } + + for (; container && container != root; container = container.parentNode) { + point.push(self.dom.nodeIndex(container, normalized)); + } + + return point; + } + + bookmark.start = getPoint(rng, true); + + if (!self.isCollapsed()) { + bookmark.end = getPoint(rng); + } + + return bookmark; + } + + if (type == 2) { + element = self.getNode(); + name = element ? element.nodeName : null; + + if (name == 'IMG') { + return {name: name, index: findIndex(name, element)}; + } + + if (self.tridentSel) { + return self.tridentSel.getBookmark(type); + } + + return getLocation(); + } + + // Handle simple range + if (type) { + return {rng: self.getRng()}; + } + + rng = self.getRng(); + id = dom.uniqueId(); + collapsed = self.isCollapsed(); + styles = 'overflow:hidden;line-height:0px'; + + // Explorer method + if (rng.duplicate || rng.item) { + // Text selection + if (!rng.item) { + rng2 = rng.duplicate(); + + try { + // Insert start marker + rng.collapse(); + rng.pasteHTML('<span data-mce-type="bookmark" id="' + id + '_start" style="' + styles + '">' + chr + '</span>'); + + // Insert end marker + if (!collapsed) { + rng2.collapse(false); + + // Detect the empty space after block elements in IE and move the + // end back one character <p></p>] becomes <p>]</p> + rng.moveToElementText(rng2.parentElement()); + if (rng.compareEndPoints('StartToEnd', rng2) === 0) { + rng2.move('character', -1); + } + + rng2.pasteHTML('<span data-mce-type="bookmark" id="' + id + '_end" style="' + styles + '">' + chr + '</span>'); + } + } catch (ex) { + // IE might throw unspecified error so lets ignore it + return null; + } + } else { + // Control selection + element = rng.item(0); + name = element.nodeName; + + return {name: name, index: findIndex(name, element)}; + } + } else { + element = self.getNode(); + name = element.nodeName; + if (name == 'IMG') { + return {name: name, index: findIndex(name, element)}; + } + + // W3C method + rng2 = normalizeTableCellSelection(rng.cloneRange()); + + // Insert end marker + if (!collapsed) { + rng2.collapse(false); + rng2.insertNode(dom.create('span', {'data-mce-type': "bookmark", id: id + '_end', style: styles}, chr)); + } + + rng = normalizeTableCellSelection(rng); + rng.collapse(true); + rng.insertNode(dom.create('span', {'data-mce-type': "bookmark", id: id + '_start', style: styles}, chr)); + } + + self.moveToBookmark({id: id, keep: 1}); + + return {id: id}; + }, + + /** + * Restores the selection to the specified bookmark. + * + * @method moveToBookmark + * @param {Object} bookmark Bookmark to restore selection from. + * @return {Boolean} true/false if it was successful or not. + * @example + * // Stores a bookmark of the current selection + * var bm = tinymce.activeEditor.selection.getBookmark(); + * + * tinymce.activeEditor.setContent(tinymce.activeEditor.getContent() + 'Some new content'); + * + * // Restore the selection bookmark + * tinymce.activeEditor.selection.moveToBookmark(bm); + */ + moveToBookmark: function(bookmark) { + var self = this, dom = self.dom, rng, root, startContainer, endContainer, startOffset, endOffset; + + function setEndPoint(start) { + var point = bookmark[start ? 'start' : 'end'], i, node, offset, children; + + if (point) { + offset = point[0]; + + // Find container node + for (node = root, i = point.length - 1; i >= 1; i--) { + children = node.childNodes; + + if (point[i] > children.length - 1) { + return; + } + + node = children[point[i]]; + } + + // Move text offset to best suitable location + if (node.nodeType === 3) { + offset = Math.min(point[0], node.nodeValue.length); + } + + // Move element offset to best suitable location + if (node.nodeType === 1) { + offset = Math.min(point[0], node.childNodes.length); + } + + // Set offset within container node + if (start) { + rng.setStart(node, offset); + } else { + rng.setEnd(node, offset); + } + } + + return true; + } + + function restoreEndPoint(suffix) { + var marker = dom.get(bookmark.id + '_' + suffix), node, idx, next, prev, keep = bookmark.keep; + + if (marker) { + node = marker.parentNode; + + if (suffix == 'start') { + if (!keep) { + idx = dom.nodeIndex(marker); + } else { + node = marker.firstChild; + idx = 1; + } + + startContainer = endContainer = node; + startOffset = endOffset = idx; + } else { + if (!keep) { + idx = dom.nodeIndex(marker); + } else { + node = marker.firstChild; + idx = 1; + } + + endContainer = node; + endOffset = idx; + } + + if (!keep) { + prev = marker.previousSibling; + next = marker.nextSibling; + + // Remove all marker text nodes + each(grep(marker.childNodes), function(node) { + if (node.nodeType == 3) { + node.nodeValue = node.nodeValue.replace(/\uFEFF/g, ''); + } + }); + + // Remove marker but keep children if for example contents where inserted into the marker + // Also remove duplicated instances of the marker for example by a + // split operation or by WebKit auto split on paste feature + while ((marker = dom.get(bookmark.id + '_' + suffix))) { + dom.remove(marker, 1); + } + + // If siblings are text nodes then merge them unless it's Opera since it some how removes the node + // and we are sniffing since adding a lot of detection code for a browser with 3% of the market + // isn't worth the effort. Sorry, Opera but it's just a fact + if (prev && next && prev.nodeType == next.nodeType && prev.nodeType == 3 && !isOpera) { + idx = prev.nodeValue.length; + prev.appendData(next.nodeValue); + dom.remove(next); + + if (suffix == 'start') { + startContainer = endContainer = prev; + startOffset = endOffset = idx; + } else { + endContainer = prev; + endOffset = idx; + } + } + } + } + } + + function addBogus(node) { + // Adds a bogus BR element for empty block elements + if (dom.isBlock(node) && !node.innerHTML && !isIE) { + node.innerHTML = '<br data-mce-bogus="1" />'; + } + + return node; + } + + if (bookmark) { + if (bookmark.start) { + rng = dom.createRng(); + root = dom.getRoot(); + + if (self.tridentSel) { + return self.tridentSel.moveToBookmark(bookmark); + } + + if (setEndPoint(true) && setEndPoint()) { + self.setRng(rng); + } + } else if (bookmark.id) { + // Restore start/end points + restoreEndPoint('start'); + restoreEndPoint('end'); + + if (startContainer) { + rng = dom.createRng(); + rng.setStart(addBogus(startContainer), startOffset); + rng.setEnd(addBogus(endContainer), endOffset); + self.setRng(rng); + } + } else if (bookmark.name) { + self.select(dom.select(bookmark.name)[bookmark.index]); + } else if (bookmark.rng) { + self.setRng(bookmark.rng); + } + } + }, + + /** + * Selects the specified element. This will place the start and end of the selection range around the element. + * + * @method select + * @param {Element} node HMTL DOM element to select. + * @param {Boolean} content Optional bool state if the contents should be selected or not on non IE browser. + * @return {Element} Selected element the same element as the one that got passed in. + * @example + * // Select the first paragraph in the active editor + * tinymce.activeEditor.selection.select(tinymce.activeEditor.dom.select('p')[0]); + */ + select: function(node, content) { + var self = this, dom = self.dom, rng = dom.createRng(), idx; + + // Clear stored range set by FocusManager + self.lastFocusBookmark = null; + + if (node) { + if (!content && self.controlSelection.controlSelect(node)) { + return; + } + + idx = dom.nodeIndex(node); + rng.setStart(node.parentNode, idx); + rng.setEnd(node.parentNode, idx + 1); + + // Find first/last text node or BR element + if (content) { + self._moveEndPoint(rng, node, true); + self._moveEndPoint(rng, node); + } + + self.setRng(rng); + } + + return node; + }, + + /** + * Returns true/false if the selection range is collapsed or not. Collapsed means if it's a caret or a larger selection. + * + * @method isCollapsed + * @return {Boolean} true/false state if the selection range is collapsed or not. + * Collapsed means if it's a caret or a larger selection. + */ + isCollapsed: function() { + var self = this, rng = self.getRng(), sel = self.getSel(); + + if (!rng || rng.item) { + return false; + } + + if (rng.compareEndPoints) { + return rng.compareEndPoints('StartToEnd', rng) === 0; + } + + return !sel || rng.collapsed; + }, + + /** + * Collapse the selection to start or end of range. + * + * @method collapse + * @param {Boolean} to_start Optional boolean state if to collapse to end or not. Defaults to start. + */ + collapse: function(to_start) { + var self = this, rng = self.getRng(), node; + + // Control range on IE + if (rng.item) { + node = rng.item(0); + rng = self.win.document.body.createTextRange(); + rng.moveToElementText(node); + } + + rng.collapse(!!to_start); + self.setRng(rng); + }, + + /** + * Returns the browsers internal selection object. + * + * @method getSel + * @return {Selection} Internal browser selection object. + */ + getSel: function() { + var win = this.win; + + return win.getSelection ? win.getSelection() : win.document.selection; + }, + + /** + * Returns the browsers internal range object. + * + * @method getRng + * @param {Boolean} w3c Forces a compatible W3C range on IE. + * @return {Range} Internal browser range object. + * @see http://www.quirksmode.org/dom/range_intro.html + * @see http://www.dotvoid.com/2001/03/using-the-range-object-in-mozilla/ + */ + getRng: function(w3c) { + var self = this, selection, rng, elm, doc = self.win.document, ieRng; + + function tryCompareBounderyPoints(how, sourceRange, destinationRange) { + try { + return sourceRange.compareBoundaryPoints(how, destinationRange); + } catch (ex) { + // Gecko throws wrong document exception if the range points + // to nodes that where removed from the dom #6690 + // Browsers should mutate existing DOMRange instances so that they always point + // to something in the document this is not the case in Gecko works fine in IE/WebKit/Blink + // For performance reasons just return -1 + return -1; + } + } + + // Use last rng passed from FocusManager if it's available this enables + // calls to editor.selection.getStart() to work when caret focus is lost on IE + if (!w3c && self.lastFocusBookmark) { + var bookmark = self.lastFocusBookmark; + + // Convert bookmark to range IE 11 fix + if (bookmark.startContainer) { + rng = doc.createRange(); + rng.setStart(bookmark.startContainer, bookmark.startOffset); + rng.setEnd(bookmark.endContainer, bookmark.endOffset); + } else { + rng = bookmark; + } + + return rng; + } + + // Found tridentSel object then we need to use that one + if (w3c && self.tridentSel) { + return self.tridentSel.getRangeAt(0); + } + + try { + if ((selection = self.getSel())) { + if (selection.rangeCount > 0) { + rng = selection.getRangeAt(0); + } else { + rng = selection.createRange ? selection.createRange() : doc.createRange(); + } + } + } catch (ex) { + // IE throws unspecified error here if TinyMCE is placed in a frame/iframe + } + + // We have W3C ranges and it's IE then fake control selection since IE9 doesn't handle that correctly yet + // IE 11 doesn't support the selection object so we check for that as well + if (isIE && rng && rng.setStart && doc.selection) { + try { + // IE will sometimes throw an exception here + ieRng = doc.selection.createRange(); + } catch (ex) { + + } + + if (ieRng && ieRng.item) { + elm = ieRng.item(0); + rng = doc.createRange(); + rng.setStartBefore(elm); + rng.setEndAfter(elm); + } + } + + // No range found then create an empty one + // This can occur when the editor is placed in a hidden container element on Gecko + // Or on IE when there was an exception + if (!rng) { + rng = doc.createRange ? doc.createRange() : doc.body.createTextRange(); + } + + // If range is at start of document then move it to start of body + if (rng.setStart && rng.startContainer.nodeType === 9 && rng.collapsed) { + elm = self.dom.getRoot(); + rng.setStart(elm, 0); + rng.setEnd(elm, 0); + } + + if (self.selectedRange && self.explicitRange) { + if (tryCompareBounderyPoints(rng.START_TO_START, rng, self.selectedRange) === 0 && + tryCompareBounderyPoints(rng.END_TO_END, rng, self.selectedRange) === 0) { + // Safari, Opera and Chrome only ever select text which causes the range to change. + // This lets us use the originally set range if the selection hasn't been changed by the user. + rng = self.explicitRange; + } else { + self.selectedRange = null; + self.explicitRange = null; + } + } + + return rng; + }, + + /** + * Changes the selection to the specified DOM range. + * + * @method setRng + * @param {Range} rng Range to select. + */ + setRng: function(rng, forward) { + var self = this, sel; + + // Is IE specific range + if (rng.select) { + try { + rng.select(); + } catch (ex) { + // Needed for some odd IE bug #1843306 + } + + return; + } + + if (!self.tridentSel) { + sel = self.getSel(); + + if (sel) { + self.explicitRange = rng; + + try { + sel.removeAllRanges(); + sel.addRange(rng); + } catch (ex) { + // IE might throw errors here if the editor is within a hidden container and selection is changed + } + + // Forward is set to false and we have an extend function + if (forward === false && sel.extend) { + sel.collapse(rng.endContainer, rng.endOffset); + sel.extend(rng.startContainer, rng.startOffset); + } + + // adding range isn't always successful so we need to check range count otherwise an exception can occur + self.selectedRange = sel.rangeCount > 0 ? sel.getRangeAt(0) : null; + } + } else { + // Is W3C Range fake range on IE + if (rng.cloneRange) { + try { + self.tridentSel.addRange(rng); + return; + } catch (ex) { + //IE9 throws an error here if called before selection is placed in the editor + } + } + } + }, + + /** + * Sets the current selection to the specified DOM element. + * + * @method setNode + * @param {Element} elm Element to set as the contents of the selection. + * @return {Element} Returns the element that got passed in. + * @example + * // Inserts a DOM node at current selection/caret location + * tinymce.activeEditor.selection.setNode(tinymce.activeEditor.dom.create('img', {src: 'some.gif', title: 'some title'})); + */ + setNode: function(elm) { + var self = this; + + self.setContent(self.dom.getOuterHTML(elm)); + + return elm; + }, + + /** + * Returns the currently selected element or the common ancestor element for both start and end of the selection. + * + * @method getNode + * @return {Element} Currently selected element or common ancestor element. + * @example + * // Alerts the currently selected elements node name + * alert(tinymce.activeEditor.selection.getNode().nodeName); + */ + getNode: function() { + var self = this, rng = self.getRng(), elm; + var startContainer = rng.startContainer, endContainer = rng.endContainer; + var startOffset = rng.startOffset, endOffset = rng.endOffset, root = self.dom.getRoot(); + + function skipEmptyTextNodes(node, forwards) { + var orig = node; + + while (node && node.nodeType === 3 && node.length === 0) { + node = forwards ? node.nextSibling : node.previousSibling; + } + + return node || orig; + } + + // Range maybe lost after the editor is made visible again + if (!rng) { + return root; + } + + if (rng.setStart) { + elm = rng.commonAncestorContainer; + + // Handle selection a image or other control like element such as anchors + if (!rng.collapsed) { + if (startContainer == endContainer) { + if (endOffset - startOffset < 2) { + if (startContainer.hasChildNodes()) { + elm = startContainer.childNodes[startOffset]; + } + } + } + + // If the anchor node is a element instead of a text node then return this element + //if (tinymce.isWebKit && sel.anchorNode && sel.anchorNode.nodeType == 1) + // return sel.anchorNode.childNodes[sel.anchorOffset]; + + // Handle cases where the selection is immediately wrapped around a node and return that node instead of it's parent. + // This happens when you double click an underlined word in FireFox. + if (startContainer.nodeType === 3 && endContainer.nodeType === 3) { + if (startContainer.length === startOffset) { + startContainer = skipEmptyTextNodes(startContainer.nextSibling, true); + } else { + startContainer = startContainer.parentNode; + } + + if (endOffset === 0) { + endContainer = skipEmptyTextNodes(endContainer.previousSibling, false); + } else { + endContainer = endContainer.parentNode; + } + + if (startContainer && startContainer === endContainer) { + return startContainer; + } + } + } + + if (elm && elm.nodeType == 3) { + return elm.parentNode; + } + + return elm; + } + + elm = rng.item ? rng.item(0) : rng.parentElement(); + + // IE 7 might return elements outside the iframe + if (elm.ownerDocument !== self.win.document) { + elm = root; + } + + return elm; + }, + + getSelectedBlocks: function(startElm, endElm) { + var self = this, dom = self.dom, node, root, selectedBlocks = []; + + root = dom.getRoot(); + startElm = dom.getParent(startElm || self.getStart(), dom.isBlock); + endElm = dom.getParent(endElm || self.getEnd(), dom.isBlock); + + if (startElm && startElm != root) { + selectedBlocks.push(startElm); + } + + if (startElm && endElm && startElm != endElm) { + node = startElm; + + var walker = new TreeWalker(startElm, root); + while ((node = walker.next()) && node != endElm) { + if (dom.isBlock(node)) { + selectedBlocks.push(node); + } + } + } + + if (endElm && startElm != endElm && endElm != root) { + selectedBlocks.push(endElm); + } + + return selectedBlocks; + }, + + isForward: function() { + var dom = this.dom, sel = this.getSel(), anchorRange, focusRange; + + // No support for selection direction then always return true + if (!sel || !sel.anchorNode || !sel.focusNode) { + return true; + } + + anchorRange = dom.createRng(); + anchorRange.setStart(sel.anchorNode, sel.anchorOffset); + anchorRange.collapse(true); + + focusRange = dom.createRng(); + focusRange.setStart(sel.focusNode, sel.focusOffset); + focusRange.collapse(true); + + return anchorRange.compareBoundaryPoints(anchorRange.START_TO_START, focusRange) <= 0; + }, + + normalize: function() { + var self = this, rng = self.getRng(); + + if (!isIE && new RangeUtils(self.dom).normalize(rng)) { + self.setRng(rng, self.isForward()); + } + + return rng; + }, + + /** + * Executes callback of the current selection matches the specified selector or not and passes the state and args to the callback. + * + * @method selectorChanged + * @param {String} selector CSS selector to check for. + * @param {function} callback Callback with state and args when the selector is matches or not. + */ + selectorChanged: function(selector, callback) { + var self = this, currentSelectors; + + if (!self.selectorChangedData) { + self.selectorChangedData = {}; + currentSelectors = {}; + + self.editor.on('NodeChange', function(e) { + var node = e.element, dom = self.dom, parents = dom.getParents(node, null, dom.getRoot()), matchedSelectors = {}; + + // Check for new matching selectors + each(self.selectorChangedData, function(callbacks, selector) { + each(parents, function(node) { + if (dom.is(node, selector)) { + if (!currentSelectors[selector]) { + // Execute callbacks + each(callbacks, function(callback) { + callback(true, {node: node, selector: selector, parents: parents}); + }); + + currentSelectors[selector] = callbacks; + } + + matchedSelectors[selector] = callbacks; + return false; + } + }); + }); + + // Check if current selectors still match + each(currentSelectors, function(callbacks, selector) { + if (!matchedSelectors[selector]) { + delete currentSelectors[selector]; + + each(callbacks, function(callback) { + callback(false, {node: node, selector: selector, parents: parents}); + }); + } + }); + }); + } + + // Add selector listeners + if (!self.selectorChangedData[selector]) { + self.selectorChangedData[selector] = []; + } + + self.selectorChangedData[selector].push(callback); + + return self; + }, + + getScrollContainer: function() { + var scrollContainer, node = this.dom.getRoot(); + + while (node && node.nodeName != 'BODY') { + if (node.scrollHeight > node.clientHeight) { + scrollContainer = node; + break; + } + + node = node.parentNode; + } + + return scrollContainer; + }, + + scrollIntoView: function(elm) { + var y, viewPort, self = this, dom = self.dom, root = dom.getRoot(), viewPortY, viewPortH; + + function getPos(elm) { + var x = 0, y = 0; + + var offsetParent = elm; + while (offsetParent && offsetParent.nodeType) { + x += offsetParent.offsetLeft || 0; + y += offsetParent.offsetTop || 0; + offsetParent = offsetParent.offsetParent; + } + + return {x: x, y: y}; + } + + if (root.nodeName != 'BODY') { + var scrollContainer = self.getScrollContainer(); + if (scrollContainer) { + y = getPos(elm).y - getPos(scrollContainer).y; + viewPortH = scrollContainer.clientHeight; + viewPortY = scrollContainer.scrollTop; + if (y < viewPortY || y + 25 > viewPortY + viewPortH) { + scrollContainer.scrollTop = y < viewPortY ? y : y - viewPortH + 25; + } + + return; + } + } + + viewPort = dom.getViewPort(self.editor.getWin()); + y = dom.getPos(elm).y; + viewPortY = viewPort.y; + viewPortH = viewPort.h; + if (y < viewPort.y || y + 25 > viewPortY + viewPortH) { + self.editor.getWin().scrollTo(0, y < viewPortY ? y : y - viewPortH + 25); + } + }, + + _moveEndPoint: function(rng, node, start) { + var root = node, walker = new TreeWalker(node, root); + var nonEmptyElementsMap = this.dom.schema.getNonEmptyElements(); + + do { + // Text node + if (node.nodeType == 3 && trim(node.nodeValue).length !== 0) { + if (start) { + rng.setStart(node, 0); + } else { + rng.setEnd(node, node.nodeValue.length); + } + + return; + } + + // BR/IMG/INPUT elements + if (nonEmptyElementsMap[node.nodeName]) { + if (start) { + rng.setStartBefore(node); + } else { + if (node.nodeName == 'BR') { + rng.setEndBefore(node); + } else { + rng.setEndAfter(node); + } + } + + return; + } + + // Found empty text block old IE can place the selection inside those + if (Env.ie && Env.ie < 11 && this.dom.isBlock(node) && this.dom.isEmpty(node)) { + if (start) { + rng.setStart(node, 0); + } else { + rng.setEnd(node, 0); + } + + return; + } + } while ((node = (start ? walker.next() : walker.prev()))); + + // Failed to find any text node or other suitable location then move to the root of body + if (root.nodeName == 'BODY') { + if (start) { + rng.setStart(root, 0); + } else { + rng.setEnd(root, root.childNodes.length); + } + } + }, + + destroy: function() { + this.win = null; + this.controlSelection.destroy(); + } + }; + + return Selection; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/dom/Serializer.js b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/Serializer.js new file mode 100755 index 00000000000..6607497bd36 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/Serializer.js @@ -0,0 +1,387 @@ +/** + * Serializer.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class is used to serialize DOM trees into a string. Consult the TinyMCE Wiki API for + * more details and examples on how to use this class. + * + * @class tinymce.dom.Serializer + */ +define("tinymce/dom/Serializer", [ + "tinymce/dom/DOMUtils", + "tinymce/html/DomParser", + "tinymce/html/Entities", + "tinymce/html/Serializer", + "tinymce/html/Node", + "tinymce/html/Schema", + "tinymce/Env", + "tinymce/util/Tools" +], function(DOMUtils, DomParser, Entities, Serializer, Node, Schema, Env, Tools) { + var each = Tools.each, trim = Tools.trim; + var DOM = DOMUtils.DOM; + + /** + * Constructs a new DOM serializer class. + * + * @constructor + * @method Serializer + * @param {Object} settings Serializer settings object. + * @param {tinymce.Editor} editor Optional editor to bind events to and get schema/dom from. + */ + return function(settings, editor) { + var dom, schema, htmlParser; + + if (editor) { + dom = editor.dom; + schema = editor.schema; + } + + // Default DOM and Schema if they are undefined + dom = dom || DOM; + schema = schema || new Schema(settings); + settings.entity_encoding = settings.entity_encoding || 'named'; + settings.remove_trailing_brs = "remove_trailing_brs" in settings ? settings.remove_trailing_brs : true; + + htmlParser = new DomParser(settings, schema); + + // Convert move data-mce-src, data-mce-href and data-mce-style into nodes or process them if needed + htmlParser.addAttributeFilter('src,href,style', function(nodes, name) { + var i = nodes.length, node, value, internalName = 'data-mce-' + name; + var urlConverter = settings.url_converter, urlConverterScope = settings.url_converter_scope, undef; + + while (i--) { + node = nodes[i]; + + value = node.attributes.map[internalName]; + if (value !== undef) { + // Set external name to internal value and remove internal + node.attr(name, value.length > 0 ? value : null); + node.attr(internalName, null); + } else { + // No internal attribute found then convert the value we have in the DOM + value = node.attributes.map[name]; + + if (name === "style") { + value = dom.serializeStyle(dom.parseStyle(value), node.name); + } else if (urlConverter) { + value = urlConverter.call(urlConverterScope, value, name, node.name); + } + + node.attr(name, value.length > 0 ? value : null); + } + } + }); + + // Remove internal classes mceItem<..> or mceSelected + htmlParser.addAttributeFilter('class', function(nodes) { + var i = nodes.length, node, value; + + while (i--) { + node = nodes[i]; + value = node.attr('class').replace(/(?:^|\s)mce-item-\w+(?!\S)/g, ''); + node.attr('class', value.length > 0 ? value : null); + } + }); + + // Remove bookmark elements + htmlParser.addAttributeFilter('data-mce-type', function(nodes, name, args) { + var i = nodes.length, node; + + while (i--) { + node = nodes[i]; + + if (node.attributes.map['data-mce-type'] === 'bookmark' && !args.cleanup) { + node.remove(); + } + } + }); + + // Remove expando attributes + htmlParser.addAttributeFilter('data-mce-expando', function(nodes, name) { + var i = nodes.length; + + while (i--) { + nodes[i].attr(name, null); + } + }); + + htmlParser.addNodeFilter('noscript', function(nodes) { + var i = nodes.length, node; + + while (i--) { + node = nodes[i].firstChild; + + if (node) { + node.value = Entities.decode(node.value); + } + } + }); + + // Force script into CDATA sections and remove the mce- prefix also add comments around styles + htmlParser.addNodeFilter('script,style', function(nodes, name) { + var i = nodes.length, node, value; + + function trim(value) { + /*jshint maxlen:255 */ + /*eslint max-len:0 */ + return value.replace(/(<!--\[CDATA\[|\]\]-->)/g, '\n') + .replace(/^[\r\n]*|[\r\n]*$/g, '') + .replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi, '') + .replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g, ''); + } + + while (i--) { + node = nodes[i]; + value = node.firstChild ? node.firstChild.value : ''; + + if (name === "script") { + // Remove mce- prefix from script elements and remove default text/javascript mime type (HTML5) + var type = (node.attr('type') || 'text/javascript').replace(/^mce\-/, ''); + node.attr('type', type === 'text/javascript' ? null : type); + + if (value.length > 0) { + node.firstChild.value = '// <![CDATA[\n' + trim(value) + '\n// ]]>'; + } + } else { + if (value.length > 0) { + node.firstChild.value = '<!--\n' + trim(value) + '\n-->'; + } + } + } + }); + + // Convert comments to cdata and handle protected comments + htmlParser.addNodeFilter('#comment', function(nodes) { + var i = nodes.length, node; + + while (i--) { + node = nodes[i]; + + if (node.value.indexOf('[CDATA[') === 0) { + node.name = '#cdata'; + node.type = 4; + node.value = node.value.replace(/^\[CDATA\[|\]\]$/g, ''); + } else if (node.value.indexOf('mce:protected ') === 0) { + node.name = "#text"; + node.type = 3; + node.raw = true; + node.value = unescape(node.value).substr(14); + } + } + }); + + htmlParser.addNodeFilter('xml:namespace,input', function(nodes, name) { + var i = nodes.length, node; + + while (i--) { + node = nodes[i]; + if (node.type === 7) { + node.remove(); + } else if (node.type === 1) { + if (name === "input" && !("type" in node.attributes.map)) { + node.attr('type', 'text'); + } + } + } + }); + + // Fix list elements, TODO: Replace this later + if (settings.fix_list_elements) { + htmlParser.addNodeFilter('ul,ol', function(nodes) { + var i = nodes.length, node, parentNode; + + while (i--) { + node = nodes[i]; + parentNode = node.parent; + + if (parentNode.name === 'ul' || parentNode.name === 'ol') { + if (node.prev && node.prev.name === 'li') { + node.prev.append(node); + } + } + } + }); + } + + // Remove internal data attributes + htmlParser.addAttributeFilter('data-mce-src,data-mce-href,data-mce-style,data-mce-selected', function(nodes, name) { + var i = nodes.length; + + while (i--) { + nodes[i].attr(name, null); + } + }); + + // Return public methods + return { + /** + * Schema instance that was used to when the Serializer was constructed. + * + * @field {tinymce.html.Schema} schema + */ + schema: schema, + + /** + * Adds a node filter function to the parser used by the serializer, the parser will collect the specified nodes by name + * and then execute the callback ones it has finished parsing the document. + * + * @example + * parser.addNodeFilter('p,h1', function(nodes, name) { + * for (var i = 0; i < nodes.length; i++) { + * console.log(nodes[i].name); + * } + * }); + * @method addNodeFilter + * @method {String} name Comma separated list of nodes to collect. + * @param {function} callback Callback function to execute once it has collected nodes. + */ + addNodeFilter: htmlParser.addNodeFilter, + + /** + * Adds a attribute filter function to the parser used by the serializer, the parser will + * collect nodes that has the specified attributes + * and then execute the callback ones it has finished parsing the document. + * + * @example + * parser.addAttributeFilter('src,href', function(nodes, name) { + * for (var i = 0; i < nodes.length; i++) { + * console.log(nodes[i].name); + * } + * }); + * @method addAttributeFilter + * @method {String} name Comma separated list of nodes to collect. + * @param {function} callback Callback function to execute once it has collected nodes. + */ + addAttributeFilter: htmlParser.addAttributeFilter, + + /** + * Serializes the specified browser DOM node into a HTML string. + * + * @method serialize + * @param {DOMNode} node DOM node to serialize. + * @param {Object} args Arguments option that gets passed to event handlers. + */ + serialize: function(node, args) { + var self = this, impl, doc, oldDoc, htmlSerializer, content; + + // Explorer won't clone contents of script and style and the + // selected index of select elements are cleared on a clone operation. + if (Env.ie && dom.select('script,style,select,map').length > 0) { + content = node.innerHTML; + node = node.cloneNode(false); + dom.setHTML(node, content); + } else { + node = node.cloneNode(true); + } + + // Nodes needs to be attached to something in WebKit/Opera + // This fix will make DOM ranges and make Sizzle happy! + impl = node.ownerDocument.implementation; + if (impl.createHTMLDocument) { + // Create an empty HTML document + doc = impl.createHTMLDocument(""); + + // Add the element or it's children if it's a body element to the new document + each(node.nodeName == 'BODY' ? node.childNodes : [node], function(node) { + doc.body.appendChild(doc.importNode(node, true)); + }); + + // Grab first child or body element for serialization + if (node.nodeName != 'BODY') { + node = doc.body.firstChild; + } else { + node = doc.body; + } + + // set the new document in DOMUtils so createElement etc works + oldDoc = dom.doc; + dom.doc = doc; + } + + args = args || {}; + args.format = args.format || 'html'; + + // Don't wrap content if we want selected html + if (args.selection) { + args.forced_root_block = ''; + } + + // Pre process + if (!args.no_events) { + args.node = node; + self.onPreProcess(args); + } + + // Setup serializer + htmlSerializer = new Serializer(settings, schema); + + // Parse and serialize HTML + args.content = htmlSerializer.serialize( + htmlParser.parse(trim(args.getInner ? node.innerHTML : dom.getOuterHTML(node)), args) + ); + + // Replace all BOM characters for now until we can find a better solution + if (!args.cleanup) { + args.content = args.content.replace(/\uFEFF/g, ''); + } + + // Post process + if (!args.no_events) { + self.onPostProcess(args); + } + + // Restore the old document if it was changed + if (oldDoc) { + dom.doc = oldDoc; + } + + args.node = null; + + return args.content; + }, + + /** + * Adds valid elements rules to the serializers schema instance this enables you to specify things + * like what elements should be outputted and what attributes specific elements might have. + * Consult the Wiki for more details on this format. + * + * @method addRules + * @param {String} rules Valid elements rules string to add to schema. + */ + addRules: function(rules) { + schema.addValidElements(rules); + }, + + /** + * Sets the valid elements rules to the serializers schema instance this enables you to specify things + * like what elements should be outputted and what attributes specific elements might have. + * Consult the Wiki for more details on this format. + * + * @method setRules + * @param {String} rules Valid elements rules string. + */ + setRules: function(rules) { + schema.setValidElements(rules); + }, + + onPreProcess: function(args) { + if (editor) { + editor.fire('PreProcess', args); + } + }, + + onPostProcess: function(args) { + if (editor) { + editor.fire('PostProcess', args); + } + } + }; + }; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/dom/Sizzle.jQuery.js b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/Sizzle.jQuery.js new file mode 100755 index 00000000000..8b9e2a16a65 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/Sizzle.jQuery.js @@ -0,0 +1,23 @@ +/** + * Sizzle.jQuery.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*global jQuery:true */ + +/* + * Fake Sizzle using jQuery. + */ +define("tinymce/dom/Sizzle", [], function() { + // Detect if jQuery is loaded + if (!window.jQuery) { + throw new Error("Load jQuery first"); + } + + return jQuery.find; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/dom/Sizzle.js b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/Sizzle.js new file mode 100755 index 00000000000..4eaa7bae525 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/Sizzle.js @@ -0,0 +1,1928 @@ +/** + * Sizzle.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + * + * @ignore-file + */ + +/*jshint bitwise:false, expr:true, noempty:false, sub:true, eqnull:true, latedef:false, maxlen:255 */ +/*eslint dot-notation:0, no-empty:0, no-cond-assign:0, no-unused-expressions:0, new-cap:0, no-nested-ternary:0, func-style:0, no-bitwise: 0 */ + +/* + * Sizzle CSS Selector Engine + * Copyright, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +define("tinymce/dom/Sizzle", [], function() { +var i, + cachedruns, + Expr, + getText, + isXML, + compile, + outermostContext, + recompare, + sortInput, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + -(new Date()), + preferredDoc = window.document, + support = {}, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + hasDuplicate = false, + sortOrder = function() { return 0; }, + + // General-purpose constants + strundefined = typeof undefined, + MAX_NEGATIVE = 1 << 31, + + // Array methods + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf if we can't use a native one + indexOf = arr.indexOf || function( elem ) { + var i = 0, + len = this.length; + for ( ; i < len; i++ ) { + if ( this[i] === elem ) { + return i; + } + } + return -1; + }, + + + // Regular expressions + + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", + + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), + + // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors + operators = "([*^$|!~]?=)", + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + + "*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", + + // Prefer arguments quoted, + // then not containing pseudos/brackets, + // then attribute selectors/non-parenthetical expressions, + // then anything else + // These preferences are here to reduce the number of selectors + // needing tokenize in the PSEUDO preFilter + pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*" ), + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "NAME": new RegExp( "^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rsibling = /[\x20\t\r\n\f]*[+~]/, + + rnative = /^[^{]+\{\s*\[native code/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rescape = /'|\\/g, + rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g, + + // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = /\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g, + funescape = function( _, escaped ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + return high !== high ? + escaped : + // BMP codepoint + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }; + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +/** + * For feature detection + * @param {Function} fn The function to test for native support + */ +function isNative( fn ) { + return rnative.test( fn + "" ); +} + +/** + * Create key-value caches of limited size + * @returns {Function(string, Object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var cache, + keys = []; + + cache = function( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key += " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + cache[ key ] = value; + return value; + }; + + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created div and expects a boolean result + */ +function assert( fn ) { + var div = document.createElement("div"); + + try { + return !!fn( div ); + } catch (e) { + return false; + } finally { + // release memory in IE + div = null; + } +} + +function Sizzle( selector, context, results, seed ) { + var match, elem, m, nodeType, + // QSA vars + i, groups, old, nid, newContext, newSelector; + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + + context = context || document; + results = results || []; + + if ( !selector || typeof selector !== "string" ) { + return results; + } + + if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { + return []; + } + + if ( documentIsHTML && !seed ) { + + // Shortcuts + if ( (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; + } + } + + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // QSA path + if ( support.qsa && !rbuggyQSA.test(selector) ) { + old = true; + nid = expando; + newContext = context; + newSelector = nodeType === 9 && selector; + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + groups = tokenize( selector ); + + if ( (old = context.getAttribute("id")) ) { + nid = old.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); + } + nid = "[id='" + nid + "'] "; + + i = groups.length; + while ( i-- ) { + groups[i] = nid + toSelector( groups[i] ); + } + newContext = rsibling.test( selector ) && context.parentNode || context; + newSelector = groups.join(","); + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch(qsaError) { + } finally { + if ( !old ) { + context.removeAttribute("id"); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Detect xml + * @param {Element|Object} elem An element or a document + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var doc = node ? node.ownerDocument || node : preferredDoc; + + // If no document and documentElement is available, return + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Set our document + document = doc; + docElem = doc.documentElement; + + // Support tests + documentIsHTML = !isXML( doc ); + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( div ) { + div.appendChild( doc.createComment("") ); + return !div.getElementsByTagName("*").length; + }); + + // Check if attributes should be retrieved by attribute nodes + support.attributes = assert(function( div ) { + div.innerHTML = "<select></select>"; + var type = typeof div.lastChild.getAttribute("multiple"); + // IE8 returns a string for some attributes even when not present + return type !== "boolean" && type !== "string"; + }); + + // Check if getElementsByClassName can be trusted + support.getElementsByClassName = assert(function( div ) { + // Opera can't find a second classname (in 9.6) + div.innerHTML = "<div class='hidden e'></div><div class='hidden'></div>"; + if ( !div.getElementsByClassName || !div.getElementsByClassName("e").length ) { + return false; + } + + // Safari 3.2 caches class attributes and doesn't catch changes + div.lastChild.className = "e"; + return div.getElementsByClassName("e").length === 2; + }); + + // Check if getElementsByName privileges form controls or returns elements by ID + // If so, assume (for broader support) that getElementById returns elements by name + support.getByName = assert(function( div ) { + // Inject content + div.id = expando + 0; + // Support: Windows 8 Native Apps + // Assigning innerHTML with "name" attributes throws uncatchable exceptions + // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx + div.appendChild( document.createElement("a") ).setAttribute( "name", expando ); + div.appendChild( document.createElement("i") ).setAttribute( "name", expando ); + docElem.appendChild( div ); + + // Test + var pass = doc.getElementsByName && + // buggy browsers will return fewer than the correct 2 + doc.getElementsByName( expando ).length === 2 + + // buggy browsers will return more than the correct 0 + doc.getElementsByName( expando + 0 ).length; + + // Cleanup + docElem.removeChild( div ); + + return pass; + }); + + // Support: Webkit<537.32 + // Detached nodes confoundingly follow *each other* + support.sortDetached = assert(function( div1 ) { + return div1.compareDocumentPosition && + // Should return 1, but Webkit returns 4 (following) + (div1.compareDocumentPosition( document.createElement("div") ) & 1); + }); + + // IE6/7 return modified attributes + Expr.attrHandle = assert(function( div ) { + div.innerHTML = "<a href='#'></a>"; + return div.firstChild && typeof div.firstChild.getAttribute !== strundefined && + div.firstChild.getAttribute("href") === "#"; + }) ? + {} : + { + "href": function( elem ) { + return elem.getAttribute( "href", 2 ); + }, + "type": function( elem ) { + return elem.getAttribute("type"); + } + }; + + // ID find and filter + if ( support.getByName ) { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== strundefined && documentIsHTML ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [m] : []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + } else { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== strundefined && documentIsHTML ) { + var m = context.getElementById( id ); + + return m ? + m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ? + [m] : + undefined : + []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== strundefined ) { + return context.getElementsByTagName( tag ); + } + } : + function( tag, context ) { + var elem, + tmp = [], + i = 0, + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Name + Expr.find["NAME"] = support.getByName && function( tag, context ) { + if ( typeof context.getElementsByName !== strundefined ) { + return context.getElementsByName( name ); + } + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21), + // no need to also add to buggyMatches since matches checks buggyQSA + // A support test would require too much code (would include document ready) + rbuggyQSA = [ ":focus" ]; + + if ( (support.qsa = isNative(doc.querySelectorAll)) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + div.innerHTML = "<select><option selected=''></option></select>"; + + // IE8 - Some boolean attributes are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + }); + + assert(function( div ) { + + // Opera 10-12/IE8 - ^= $= *= and empty values + // Should not select anything + div.innerHTML = "<input type='hidden' i=''/>"; + if ( div.querySelectorAll("[i^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\"\"|'')" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + div.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = isNative( (matches = docElem.matchesSelector || + docElem.mozMatchesSelector || + docElem.webkitMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( div, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + // Element contains another + // Purposefully does not implement inclusive descendant + // As in, an element does not contain itself + contains = isNative(docElem.contains) || docElem.compareDocumentPosition ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + // Document order sorting + sortOrder = docElem.compareDocumentPosition ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b ); + + if ( compare ) { + // Disconnected nodes + if ( compare & 1 || + (recompare && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === doc || contains(preferredDoc, a) ) { + return -1; + } + if ( b === doc || contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } + + // Not directly comparable, sort on existence of method + return a.compareDocumentPosition ? -1 : 1; + } : + function( a, b ) { + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + + // Parentless nodes are either documents or disconnected + } else if ( !aup || !bup ) { + return a === doc ? -1 : + b === doc ? 1 : + aup ? -1 : + bup ? 1 : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + // rbuggyQSA always contains :focus, so no need for an existence check + if ( support.matchesSelector && documentIsHTML && (!rbuggyMatches || !rbuggyMatches.test(expr)) && !rbuggyQSA.test(expr) ) { + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch(e) {} + } + + return Sizzle( expr, document, null, [elem] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + var val; + + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + if ( documentIsHTML ) { + name = name.toLowerCase(); + } + if ( (val = Expr.attrHandle[ name ]) ) { + return val( elem ); + } + if ( !documentIsHTML || support.attributes ) { + return elem.getAttribute( name ); + } + return ( (val = elem.getAttributeNode( name )) || elem.getAttribute( name ) ) && elem[ name ] === true ? + name : + val && val.specified ? val.value : null; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +// Document sorting and removing duplicates +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + // Compensate for sort limitations + recompare = !support.sortDetached; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + return results; +}; + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns Returns -1 if a precedes b, 1 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && ( ~b.sourceIndex || MAX_NEGATIVE ) - ( ~a.sourceIndex || MAX_NEGATIVE ); + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +// Returns a function to use in pseudos for input types +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +// Returns a function to use in pseudos for buttons +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +// Returns a function to use in pseudos for positionals +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + for ( ; (node = elem[i]); i++ ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (see #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[5] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[4] ) { + match[2] = match[4]; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeName ) { + if ( nodeName === "*" ) { + return function() { return true; }; + } + + nodeName = nodeName.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, outerCache, node, diff, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + // Seek `elem` from a previously-cached index + outerCache = parent[ expando ] || (parent[ expando ] = {}); + cache = outerCache[ type ] || []; + nodeIndex = cache[0] === dirruns && cache[1]; + diff = cache[0] === dirruns && cache[2]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + // Use previously-cached element index if available + } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { + diff = cache[1]; + + // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) + } else { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { + // Cache the index of each encountered element + if ( useCache ) { + (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf.call( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), + // not comment, processing instructions, or others + // Thanks to Diego Perini for the nodeName shortcut + // Greater than "@" means alpha characters (specifically not starting with "#" or "?") + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeName > "@" || elem.nodeType === 3 || elem.nodeType === 4 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) + // use getAttribute instead to test this case + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === elem.type ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +function tokenize( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( tokens = [] ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push( { + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + } ); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push( { + value: matched, + type: type, + matches: match + } ); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +} + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && dir === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var data, cache, outerCache, + dirkey = dirruns + " " + doneName; + + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + if ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) { + if ( (data = cache[1]) === true || data === cachedruns ) { + return data === true; + } + } else { + cache = outerCache[ dir ] = [ dirkey ]; + cache[1] = matcher( elem, context, xml ) || cachedruns; + if ( cache[1] === true ) { + return true; + } + } + } + } + } + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf.call( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( tokens.slice( 0, i - 1 ) ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + // A counter to specify which element is currently being matched + var matcherCachedRuns = 0, + bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, expandContext ) { + var elem, j, matcher, + setMatched = [], + matchedCount = 0, + i = "0", + unmatched = seed && [], + outermost = expandContext != null, + contextBackup = outermostContext, + // We must always have either seed elements or context + elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1); + + if ( outermost ) { + outermostContext = context !== document && context; + cachedruns = matcherCachedRuns; + } + + // Add elements passing elementMatchers directly to results + // Keep `i` a string if there are no elements so `matchedCount` will be "00" below + for ( ; (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + cachedruns = ++matcherCachedRuns; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // Apply set filters to unmatched elements + matchedCount += i; + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !group ) { + group = tokenize( selector ); + } + i = group.length; + while ( i-- ) { + cached = matcherFromTokens( group[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + } + return cached; +}; + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function select( selector, context, results, seed ) { + var i, tokens, token, type, find, + match = tokenize( selector ); + + if ( !seed ) { + // Try to minimize operations if there is only one group + if ( match.length === 1 ) { + + // Take a shortcut and set the context if the root selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + context.nodeType === 9 && documentIsHTML && + Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && context.parentNode || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + } + + // Compile and execute a filtering function + // Provide `match` to avoid retokenization if we modified the selector above + compile( selector, match )( + seed, + context, + !documentIsHTML, + results, + rsibling.test( selector ) + ); + return results; +} + +// Deprecated +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +// Check sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Initialize with the default document +setDocument(); + +// Always assume the presence of duplicates if sort doesn't +// pass them to our comparison function (as in Google Chrome). +[0, 0].sort( sortOrder ); +support.detectDuplicates = hasDuplicate; + +/* +// EXPOSE +if ( typeof define === "function" && define.amd ) { + define(function() { return Sizzle; }); +} else { + window.Sizzle = Sizzle; +} +*/ + +// EXPOSE +return Sizzle; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/dom/StyleSheetLoader.js b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/StyleSheetLoader.js new file mode 100755 index 00000000000..cf385acb342 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/StyleSheetLoader.js @@ -0,0 +1,185 @@ +/** + * StyleSheetLoader.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles loading of external stylesheets and fires events when these are loaded. + * + * @class tinymce.dom.StyleSheetLoader + * @private + */ +define("tinymce/dom/StyleSheetLoader", [], function() { + "use strict"; + + return function(document, settings) { + var idCount = 0, loadedStates = {}, maxLoadTime; + + settings = settings || {}; + maxLoadTime = settings.maxLoadTime || 5000; + + function appendToHead(node) { + document.getElementsByTagName('head')[0].appendChild(node); + } + + /** + * Loads the specified css style sheet file and call the loadedCallback once it's finished loading. + * + * @method load + * @param {String} url Url to be loaded. + * @param {Function} loadedCallback Callback to be executed when loaded. + * @param {Function} errorCallback Callback to be executed when failed loading. + */ + function load(url, loadedCallback, errorCallback) { + var link, style, startTime, state; + + function passed() { + var callbacks = state.passed, i = callbacks.length; + + while (i--) { + callbacks[i](); + } + + state.status = 2; + state.passed = []; + state.failed = []; + } + + function failed() { + var callbacks = state.failed, i = callbacks.length; + + while (i--) { + callbacks[i](); + } + + state.status = 3; + state.passed = []; + state.failed = []; + } + + // Sniffs for older WebKit versions that have the link.onload but a broken one + function isOldWebKit() { + var webKitChunks = navigator.userAgent.match(/WebKit\/(\d*)/); + return !!(webKitChunks && webKitChunks[1] < 536); + } + + // Calls the waitCallback until the test returns true or the timeout occurs + function wait(testCallback, waitCallback) { + if (!testCallback()) { + // Wait for timeout + if ((new Date().getTime()) - startTime < maxLoadTime) { + window.setTimeout(waitCallback, 0); + } else { + failed(); + } + } + } + + // Workaround for WebKit that doesn't properly support the onload event for link elements + // Or WebKit that fires the onload event before the StyleSheet is added to the document + function waitForWebKitLinkLoaded() { + wait(function() { + var styleSheets = document.styleSheets, styleSheet, i = styleSheets.length, owner; + + while (i--) { + styleSheet = styleSheets[i]; + owner = styleSheet.ownerNode ? styleSheet.ownerNode : styleSheet.owningElement; + if (owner && owner.id === link.id) { + passed(); + return true; + } + } + }, waitForWebKitLinkLoaded); + } + + // Workaround for older Geckos that doesn't have any onload event for StyleSheets + function waitForGeckoLinkLoaded() { + wait(function() { + try { + // Accessing the cssRules will throw an exception until the CSS file is loaded + var cssRules = style.sheet.cssRules; + passed(); + return !!cssRules; + } catch (ex) { + // Ignore + } + }, waitForGeckoLinkLoaded); + } + + if (!loadedStates[url]) { + state = { + passed: [], + failed: [] + }; + + loadedStates[url] = state; + } else { + state = loadedStates[url]; + } + + if (loadedCallback) { + state.passed.push(loadedCallback); + } + + if (errorCallback) { + state.failed.push(errorCallback); + } + + // Is loading wait for it to pass + if (state.status == 1) { + return; + } + + // Has finished loading and was success + if (state.status == 2) { + passed(); + return; + } + + // Has finished loading and was a failure + if (state.status == 3) { + failed(); + return; + } + + // Start loading + state.status = 1; + link = document.createElement('link'); + link.rel = 'stylesheet'; + link.type = 'text/css'; + link.id = 'u' + (idCount++); + link.async = false; + link.defer = false; + startTime = new Date().getTime(); + + // Feature detect onload on link element and sniff older webkits since it has an broken onload event + if ("onload" in link && !isOldWebKit()) { + link.onload = waitForWebKitLinkLoaded; + link.onerror = failed; + } else { + // Sniff for old Firefox that doesn't support the onload event on link elements + // TODO: Remove this in the future when everyone uses modern browsers + if (navigator.userAgent.indexOf("Firefox") > 0) { + style = document.createElement('style'); + style.textContent = '@import "' + url + '"'; + waitForGeckoLinkLoaded(); + appendToHead(style); + return; + } else { + // Use the id owner on older webkits + waitForWebKitLinkLoaded(); + } + } + + appendToHead(link); + link.href = url; + } + + this.load = load; + }; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/dom/TreeWalker.js b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/TreeWalker.js new file mode 100755 index 00000000000..ffe8f0439d4 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/TreeWalker.js @@ -0,0 +1,79 @@ +/** + * TreeWalker.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * TreeWalker class enables you to walk the DOM in a linear manner. + * + * @class tinymce.dom.TreeWalker + */ +define("tinymce/dom/TreeWalker", [], function() { + return function(start_node, root_node) { + var node = start_node; + + function findSibling(node, start_name, sibling_name, shallow) { + var sibling, parent; + + if (node) { + // Walk into nodes if it has a start + if (!shallow && node[start_name]) { + return node[start_name]; + } + + // Return the sibling if it has one + if (node != root_node) { + sibling = node[sibling_name]; + if (sibling) { + return sibling; + } + + // Walk up the parents to look for siblings + for (parent = node.parentNode; parent && parent != root_node; parent = parent.parentNode) { + sibling = parent[sibling_name]; + if (sibling) { + return sibling; + } + } + } + } + } + + /** + * Returns the current node. + * + * @method current + * @return {Node} Current node where the walker is. + */ + this.current = function() { + return node; + }; + + /** + * Walks to the next node in tree. + * + * @method next + * @return {Node} Current node where the walker is after moving to the next node. + */ + this.next = function(shallow) { + node = findSibling(node, 'firstChild', 'nextSibling', shallow); + return node; + }; + + /** + * Walks to the previous node in tree. + * + * @method prev + * @return {Node} Current node where the walker is after moving to the previous node. + */ + this.prev = function(shallow) { + node = findSibling(node, 'lastChild', 'previousSibling', shallow); + return node; + }; + }; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/dom/TridentSelection.js b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/TridentSelection.js new file mode 100755 index 00000000000..1edb9208c23 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/dom/TridentSelection.js @@ -0,0 +1,502 @@ +/** + * TridentSelection.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Selection class for old explorer versions. This one fakes the + * native selection object available on modern browsers. + * + * @class tinymce.dom.TridentSelection + */ +define("tinymce/dom/TridentSelection", [], function() { + function Selection(selection) { + var self = this, dom = selection.dom, FALSE = false; + + function getPosition(rng, start) { + var checkRng, startIndex = 0, endIndex, inside, + children, child, offset, index, position = -1, parent; + + // Setup test range, collapse it and get the parent + checkRng = rng.duplicate(); + checkRng.collapse(start); + parent = checkRng.parentElement(); + + // Check if the selection is within the right document + if (parent.ownerDocument !== selection.dom.doc) { + return; + } + + // IE will report non editable elements as it's parent so look for an editable one + while (parent.contentEditable === "false") { + parent = parent.parentNode; + } + + // If parent doesn't have any children then return that we are inside the element + if (!parent.hasChildNodes()) { + return {node: parent, inside: 1}; + } + + // Setup node list and endIndex + children = parent.children; + endIndex = children.length - 1; + + // Perform a binary search for the position + while (startIndex <= endIndex) { + index = Math.floor((startIndex + endIndex) / 2); + + // Move selection to node and compare the ranges + child = children[index]; + checkRng.moveToElementText(child); + position = checkRng.compareEndPoints(start ? 'StartToStart' : 'EndToEnd', rng); + + // Before/after or an exact match + if (position > 0) { + endIndex = index - 1; + } else if (position < 0) { + startIndex = index + 1; + } else { + return {node: child}; + } + } + + // Check if child position is before or we didn't find a position + if (position < 0) { + // No element child was found use the parent element and the offset inside that + if (!child) { + checkRng.moveToElementText(parent); + checkRng.collapse(true); + child = parent; + inside = true; + } else { + checkRng.collapse(false); + } + + // Walk character by character in text node until we hit the selected range endpoint, + // hit the end of document or parent isn't the right one + // We need to walk char by char since rng.text or rng.htmlText will trim line endings + offset = 0; + while (checkRng.compareEndPoints(start ? 'StartToStart' : 'StartToEnd', rng) !== 0) { + if (checkRng.move('character', 1) === 0 || parent != checkRng.parentElement()) { + break; + } + + offset++; + } + } else { + // Child position is after the selection endpoint + checkRng.collapse(true); + + // Walk character by character in text node until we hit the selected range endpoint, hit + // the end of document or parent isn't the right one + offset = 0; + while (checkRng.compareEndPoints(start ? 'StartToStart' : 'StartToEnd', rng) !== 0) { + if (checkRng.move('character', -1) === 0 || parent != checkRng.parentElement()) { + break; + } + + offset++; + } + } + + return {node: child, position: position, offset: offset, inside: inside}; + } + + // Returns a W3C DOM compatible range object by using the IE Range API + function getRange() { + var ieRange = selection.getRng(), domRange = dom.createRng(), element, collapsed, tmpRange, element2, bookmark; + + // If selection is outside the current document just return an empty range + element = ieRange.item ? ieRange.item(0) : ieRange.parentElement(); + if (element.ownerDocument != dom.doc) { + return domRange; + } + + collapsed = selection.isCollapsed(); + + // Handle control selection + if (ieRange.item) { + domRange.setStart(element.parentNode, dom.nodeIndex(element)); + domRange.setEnd(domRange.startContainer, domRange.startOffset + 1); + + return domRange; + } + + function findEndPoint(start) { + var endPoint = getPosition(ieRange, start), container, offset, textNodeOffset = 0, sibling, undef, nodeValue; + + container = endPoint.node; + offset = endPoint.offset; + + if (endPoint.inside && !container.hasChildNodes()) { + domRange[start ? 'setStart' : 'setEnd'](container, 0); + return; + } + + if (offset === undef) { + domRange[start ? 'setStartBefore' : 'setEndAfter'](container); + return; + } + + if (endPoint.position < 0) { + sibling = endPoint.inside ? container.firstChild : container.nextSibling; + + if (!sibling) { + domRange[start ? 'setStartAfter' : 'setEndAfter'](container); + return; + } + + if (!offset) { + if (sibling.nodeType == 3) { + domRange[start ? 'setStart' : 'setEnd'](sibling, 0); + } else { + domRange[start ? 'setStartBefore' : 'setEndBefore'](sibling); + } + + return; + } + + // Find the text node and offset + while (sibling) { + nodeValue = sibling.nodeValue; + textNodeOffset += nodeValue.length; + + // We are at or passed the position we where looking for + if (textNodeOffset >= offset) { + container = sibling; + textNodeOffset -= offset; + textNodeOffset = nodeValue.length - textNodeOffset; + break; + } + + sibling = sibling.nextSibling; + } + } else { + // Find the text node and offset + sibling = container.previousSibling; + + if (!sibling) { + return domRange[start ? 'setStartBefore' : 'setEndBefore'](container); + } + + // If there isn't any text to loop then use the first position + if (!offset) { + if (container.nodeType == 3) { + domRange[start ? 'setStart' : 'setEnd'](sibling, container.nodeValue.length); + } else { + domRange[start ? 'setStartAfter' : 'setEndAfter'](sibling); + } + + return; + } + + while (sibling) { + textNodeOffset += sibling.nodeValue.length; + + // We are at or passed the position we where looking for + if (textNodeOffset >= offset) { + container = sibling; + textNodeOffset -= offset; + break; + } + + sibling = sibling.previousSibling; + } + } + + domRange[start ? 'setStart' : 'setEnd'](container, textNodeOffset); + } + + try { + // Find start point + findEndPoint(true); + + // Find end point if needed + if (!collapsed) { + findEndPoint(); + } + } catch (ex) { + // IE has a nasty bug where text nodes might throw "invalid argument" when you + // access the nodeValue or other properties of text nodes. This seems to happend when + // text nodes are split into two nodes by a delete/backspace call. So lets detect it and try to fix it. + if (ex.number == -2147024809) { + // Get the current selection + bookmark = self.getBookmark(2); + + // Get start element + tmpRange = ieRange.duplicate(); + tmpRange.collapse(true); + element = tmpRange.parentElement(); + + // Get end element + if (!collapsed) { + tmpRange = ieRange.duplicate(); + tmpRange.collapse(false); + element2 = tmpRange.parentElement(); + element2.innerHTML = element2.innerHTML; + } + + // Remove the broken elements + element.innerHTML = element.innerHTML; + + // Restore the selection + self.moveToBookmark(bookmark); + + // Since the range has moved we need to re-get it + ieRange = selection.getRng(); + + // Find start point + findEndPoint(true); + + // Find end point if needed + if (!collapsed) { + findEndPoint(); + } + } else { + throw ex; // Throw other errors + } + } + + return domRange; + } + + this.getBookmark = function(type) { + var rng = selection.getRng(), bookmark = {}; + + function getIndexes(node) { + var parent, root, children, i, indexes = []; + + parent = node.parentNode; + root = dom.getRoot().parentNode; + + while (parent != root && parent.nodeType !== 9) { + children = parent.children; + + i = children.length; + while (i--) { + if (node === children[i]) { + indexes.push(i); + break; + } + } + + node = parent; + parent = parent.parentNode; + } + + return indexes; + } + + function getBookmarkEndPoint(start) { + var position; + + position = getPosition(rng, start); + if (position) { + return { + position: position.position, + offset: position.offset, + indexes: getIndexes(position.node), + inside: position.inside + }; + } + } + + // Non ubstructive bookmark + if (type === 2) { + // Handle text selection + if (!rng.item) { + bookmark.start = getBookmarkEndPoint(true); + + if (!selection.isCollapsed()) { + bookmark.end = getBookmarkEndPoint(); + } + } else { + bookmark.start = {ctrl: true, indexes: getIndexes(rng.item(0))}; + } + } + + return bookmark; + }; + + this.moveToBookmark = function(bookmark) { + var rng, body = dom.doc.body; + + function resolveIndexes(indexes) { + var node, i, idx, children; + + node = dom.getRoot(); + for (i = indexes.length - 1; i >= 0; i--) { + children = node.children; + idx = indexes[i]; + + if (idx <= children.length - 1) { + node = children[idx]; + } + } + + return node; + } + + function setBookmarkEndPoint(start) { + var endPoint = bookmark[start ? 'start' : 'end'], moveLeft, moveRng, undef, offset; + + if (endPoint) { + moveLeft = endPoint.position > 0; + + moveRng = body.createTextRange(); + moveRng.moveToElementText(resolveIndexes(endPoint.indexes)); + + offset = endPoint.offset; + if (offset !== undef) { + moveRng.collapse(endPoint.inside || moveLeft); + moveRng.moveStart('character', moveLeft ? -offset : offset); + } else { + moveRng.collapse(start); + } + + rng.setEndPoint(start ? 'StartToStart' : 'EndToStart', moveRng); + + if (start) { + rng.collapse(true); + } + } + } + + if (bookmark.start) { + if (bookmark.start.ctrl) { + rng = body.createControlRange(); + rng.addElement(resolveIndexes(bookmark.start.indexes)); + rng.select(); + } else { + rng = body.createTextRange(); + setBookmarkEndPoint(true); + setBookmarkEndPoint(); + rng.select(); + } + } + }; + + this.addRange = function(rng) { + var ieRng, ctrlRng, startContainer, startOffset, endContainer, endOffset, sibling, + doc = selection.dom.doc, body = doc.body, nativeRng, ctrlElm; + + function setEndPoint(start) { + var container, offset, marker, tmpRng, nodes; + + marker = dom.create('a'); + container = start ? startContainer : endContainer; + offset = start ? startOffset : endOffset; + tmpRng = ieRng.duplicate(); + + if (container == doc || container == doc.documentElement) { + container = body; + offset = 0; + } + + if (container.nodeType == 3) { + container.parentNode.insertBefore(marker, container); + tmpRng.moveToElementText(marker); + tmpRng.moveStart('character', offset); + dom.remove(marker); + ieRng.setEndPoint(start ? 'StartToStart' : 'EndToEnd', tmpRng); + } else { + nodes = container.childNodes; + + if (nodes.length) { + if (offset >= nodes.length) { + dom.insertAfter(marker, nodes[nodes.length - 1]); + } else { + container.insertBefore(marker, nodes[offset]); + } + + tmpRng.moveToElementText(marker); + } else if (container.canHaveHTML) { + // Empty node selection for example <div>|</div> + // Setting innerHTML with a span marker then remove that marker seems to keep empty block elements open + container.innerHTML = '<span></span>'; + marker = container.firstChild; + tmpRng.moveToElementText(marker); + tmpRng.collapse(FALSE); // Collapse false works better than true for some odd reason + } + + ieRng.setEndPoint(start ? 'StartToStart' : 'EndToEnd', tmpRng); + dom.remove(marker); + } + } + + // Setup some shorter versions + startContainer = rng.startContainer; + startOffset = rng.startOffset; + endContainer = rng.endContainer; + endOffset = rng.endOffset; + ieRng = body.createTextRange(); + + // If single element selection then try making a control selection out of it + if (startContainer == endContainer && startContainer.nodeType == 1) { + // Trick to place the caret inside an empty block element like <p></p> + if (startOffset == endOffset && !startContainer.hasChildNodes()) { + if (startContainer.canHaveHTML) { + // Check if previous sibling is an empty block if it is then we need to render it + // IE would otherwise move the caret into the sibling instead of the empty startContainer see: #5236 + // Example this: <p></p><p>|</p> would become this: <p>|</p><p></p> + sibling = startContainer.previousSibling; + if (sibling && !sibling.hasChildNodes() && dom.isBlock(sibling)) { + sibling.innerHTML = ''; + } else { + sibling = null; + } + + startContainer.innerHTML = '<span></span><span></span>'; + ieRng.moveToElementText(startContainer.lastChild); + ieRng.select(); + dom.doc.selection.clear(); + startContainer.innerHTML = ''; + + if (sibling) { + sibling.innerHTML = ''; + } + return; + } else { + startOffset = dom.nodeIndex(startContainer); + startContainer = startContainer.parentNode; + } + } + + if (startOffset == endOffset - 1) { + try { + ctrlElm = startContainer.childNodes[startOffset]; + ctrlRng = body.createControlRange(); + ctrlRng.addElement(ctrlElm); + ctrlRng.select(); + + // Check if the range produced is on the correct element and is a control range + // On IE 8 it will select the parent contentEditable container if you select an inner element see: #5398 + nativeRng = selection.getRng(); + if (nativeRng.item && ctrlElm === nativeRng.item(0)) { + return; + } + } catch (ex) { + // Ignore + } + } + } + + // Set start/end point of selection + setEndPoint(true); + setEndPoint(); + + // Select the new range and scroll it into view + ieRng.select(); + }; + + // Expose range method + this.getRangeAt = getRange; + } + + return Selection; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/html/DomParser.js b/common/static/js/vendor/tinymce/js/tinymce/classes/html/DomParser.js new file mode 100755 index 00000000000..bc494adde32 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/html/DomParser.js @@ -0,0 +1,756 @@ +/** + * DomParser.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class parses HTML code into a DOM like structure of nodes it will remove redundant whitespace and make + * sure that the node tree is valid according to the specified schema. + * So for example: <p>a<p>b</p>c</p> will become <p>a</p><p>b</p><p>c</p> + * + * @example + * var parser = new tinymce.html.DomParser({validate: true}, schema); + * var rootNode = parser.parse('<h1>content</h1>'); + * + * @class tinymce.html.DomParser + * @version 3.4 + */ +define("tinymce/html/DomParser", [ + "tinymce/html/Node", + "tinymce/html/Schema", + "tinymce/html/SaxParser", + "tinymce/util/Tools" +], function(Node, Schema, SaxParser, Tools) { + var makeMap = Tools.makeMap, each = Tools.each, explode = Tools.explode, extend = Tools.extend; + + /** + * Constructs a new DomParser instance. + * + * @constructor + * @method DomParser + * @param {Object} settings Name/value collection of settings. comment, cdata, text, start and end are callbacks. + * @param {tinymce.html.Schema} schema HTML Schema class to use when parsing. + */ + return function(settings, schema) { + var self = this, nodeFilters = {}, attributeFilters = [], matchedNodes = {}, matchedAttributes = {}; + + settings = settings || {}; + settings.validate = "validate" in settings ? settings.validate : true; + settings.root_name = settings.root_name || 'body'; + self.schema = schema = schema || new Schema(); + + function fixInvalidChildren(nodes) { + var ni, node, parent, parents, newParent, currentNode, tempNode, childNode, i; + var nonEmptyElements, nonSplitableElements, textBlockElements, sibling, nextNode; + + nonSplitableElements = makeMap('tr,td,th,tbody,thead,tfoot,table'); + nonEmptyElements = schema.getNonEmptyElements(); + textBlockElements = schema.getTextBlockElements(); + + for (ni = 0; ni < nodes.length; ni++) { + node = nodes[ni]; + + // Already removed or fixed + if (!node.parent || node.fixed) { + continue; + } + + // If the invalid element is a text block and the text block is within a parent LI element + // Then unwrap the first text block and convert other sibling text blocks to LI elements similar to Word/Open Office + if (textBlockElements[node.name] && node.parent.name == 'li') { + // Move sibling text blocks after LI element + sibling = node.next; + while (sibling) { + if (textBlockElements[sibling.name]) { + sibling.name = 'li'; + sibling.fixed = true; + node.parent.insert(sibling, node.parent); + } else { + break; + } + + sibling = sibling.next; + } + + // Unwrap current text block + node.unwrap(node); + continue; + } + + // Get list of all parent nodes until we find a valid parent to stick the child into + parents = [node]; + for (parent = node.parent; parent && !schema.isValidChild(parent.name, node.name) && + !nonSplitableElements[parent.name]; parent = parent.parent) { + parents.push(parent); + } + + // Found a suitable parent + if (parent && parents.length > 1) { + // Reverse the array since it makes looping easier + parents.reverse(); + + // Clone the related parent and insert that after the moved node + newParent = currentNode = self.filterNode(parents[0].clone()); + + // Start cloning and moving children on the left side of the target node + for (i = 0; i < parents.length - 1; i++) { + if (schema.isValidChild(currentNode.name, parents[i].name)) { + tempNode = self.filterNode(parents[i].clone()); + currentNode.append(tempNode); + } else { + tempNode = currentNode; + } + + for (childNode = parents[i].firstChild; childNode && childNode != parents[i + 1]; ) { + nextNode = childNode.next; + tempNode.append(childNode); + childNode = nextNode; + } + + currentNode = tempNode; + } + + if (!newParent.isEmpty(nonEmptyElements)) { + parent.insert(newParent, parents[0], true); + parent.insert(node, newParent); + } else { + parent.insert(node, parents[0], true); + } + + // Check if the element is empty by looking through it's contents and special treatment for <p><br /></p> + parent = parents[0]; + if (parent.isEmpty(nonEmptyElements) || parent.firstChild === parent.lastChild && parent.firstChild.name === 'br') { + parent.empty().remove(); + } + } else if (node.parent) { + // If it's an LI try to find a UL/OL for it or wrap it + if (node.name === 'li') { + sibling = node.prev; + if (sibling && (sibling.name === 'ul' || sibling.name === 'ul')) { + sibling.append(node); + continue; + } + + sibling = node.next; + if (sibling && (sibling.name === 'ul' || sibling.name === 'ul')) { + sibling.insert(node, sibling.firstChild, true); + continue; + } + + node.wrap(self.filterNode(new Node('ul', 1))); + continue; + } + + // Try wrapping the element in a DIV + if (schema.isValidChild(node.parent.name, 'div') && schema.isValidChild('div', node.name)) { + node.wrap(self.filterNode(new Node('div', 1))); + } else { + // We failed wrapping it, then remove or unwrap it + if (node.name === 'style' || node.name === 'script') { + node.empty().remove(); + } else { + node.unwrap(); + } + } + } + } + } + + /** + * Runs the specified node though the element and attributes filters. + * + * @method filterNode + * @param {tinymce.html.Node} Node the node to run filters on. + * @return {tinymce.html.Node} The passed in node. + */ + self.filterNode = function(node) { + var i, name, list; + + // Run element filters + if (name in nodeFilters) { + list = matchedNodes[name]; + + if (list) { + list.push(node); + } else { + matchedNodes[name] = [node]; + } + } + + // Run attribute filters + i = attributeFilters.length; + while (i--) { + name = attributeFilters[i].name; + + if (name in node.attributes.map) { + list = matchedAttributes[name]; + + if (list) { + list.push(node); + } else { + matchedAttributes[name] = [node]; + } + } + } + + return node; + }; + + /** + * Adds a node filter function to the parser, the parser will collect the specified nodes by name + * and then execute the callback ones it has finished parsing the document. + * + * @example + * parser.addNodeFilter('p,h1', function(nodes, name) { + * for (var i = 0; i < nodes.length; i++) { + * console.log(nodes[i].name); + * } + * }); + * @method addNodeFilter + * @method {String} name Comma separated list of nodes to collect. + * @param {function} callback Callback function to execute once it has collected nodes. + */ + self.addNodeFilter = function(name, callback) { + each(explode(name), function(name) { + var list = nodeFilters[name]; + + if (!list) { + nodeFilters[name] = list = []; + } + + list.push(callback); + }); + }; + + /** + * Adds a attribute filter function to the parser, the parser will collect nodes that has the specified attributes + * and then execute the callback ones it has finished parsing the document. + * + * @example + * parser.addAttributeFilter('src,href', function(nodes, name) { + * for (var i = 0; i < nodes.length; i++) { + * console.log(nodes[i].name); + * } + * }); + * @method addAttributeFilter + * @method {String} name Comma separated list of nodes to collect. + * @param {function} callback Callback function to execute once it has collected nodes. + */ + self.addAttributeFilter = function(name, callback) { + each(explode(name), function(name) { + var i; + + for (i = 0; i < attributeFilters.length; i++) { + if (attributeFilters[i].name === name) { + attributeFilters[i].callbacks.push(callback); + return; + } + } + + attributeFilters.push({name: name, callbacks: [callback]}); + }); + }; + + /** + * Parses the specified HTML string into a DOM like node tree and returns the result. + * + * @example + * var rootNode = new DomParser({...}).parse('<b>text</b>'); + * @method parse + * @param {String} html Html string to sax parse. + * @param {Object} args Optional args object that gets passed to all filter functions. + * @return {tinymce.html.Node} Root node containing the tree. + */ + self.parse = function(html, args) { + var parser, rootNode, node, nodes, i, l, fi, fl, list, name, validate; + var blockElements, startWhiteSpaceRegExp, invalidChildren = [], isInWhiteSpacePreservedElement; + var endWhiteSpaceRegExp, allWhiteSpaceRegExp, isAllWhiteSpaceRegExp, whiteSpaceElements; + var children, nonEmptyElements, rootBlockName; + + args = args || {}; + matchedNodes = {}; + matchedAttributes = {}; + blockElements = extend(makeMap('script,style,head,html,body,title,meta,param'), schema.getBlockElements()); + nonEmptyElements = schema.getNonEmptyElements(); + children = schema.children; + validate = settings.validate; + rootBlockName = "forced_root_block" in args ? args.forced_root_block : settings.forced_root_block; + + whiteSpaceElements = schema.getWhiteSpaceElements(); + startWhiteSpaceRegExp = /^[ \t\r\n]+/; + endWhiteSpaceRegExp = /[ \t\r\n]+$/; + allWhiteSpaceRegExp = /[ \t\r\n]+/g; + isAllWhiteSpaceRegExp = /^[ \t\r\n]+$/; + + function addRootBlocks() { + var node = rootNode.firstChild, next, rootBlockNode; + + // Removes whitespace at beginning and end of block so: + // <p> x </p> -> <p>x</p> + function trim(rootBlockNode) { + if (rootBlockNode) { + node = rootBlockNode.firstChild; + if (node && node.type == 3) { + node.value = node.value.replace(startWhiteSpaceRegExp, ''); + } + + node = rootBlockNode.lastChild; + if (node && node.type == 3) { + node.value = node.value.replace(endWhiteSpaceRegExp, ''); + } + } + } + + // Check if rootBlock is valid within rootNode for example if P is valid in H1 if H1 is the contentEditabe root + if (!schema.isValidChild(rootNode.name, rootBlockName.toLowerCase())) { + return; + } + + while (node) { + next = node.next; + + if (node.type == 3 || (node.type == 1 && node.name !== 'p' && + !blockElements[node.name] && !node.attr('data-mce-type'))) { + if (!rootBlockNode) { + // Create a new root block element + rootBlockNode = createNode(rootBlockName, 1); + rootBlockNode.attr(settings.forced_root_block_attrs); + rootNode.insert(rootBlockNode, node); + rootBlockNode.append(node); + } else { + rootBlockNode.append(node); + } + } else { + trim(rootBlockNode); + rootBlockNode = null; + } + + node = next; + } + + trim(rootBlockNode); + } + + function createNode(name, type) { + var node = new Node(name, type), list; + + if (name in nodeFilters) { + list = matchedNodes[name]; + + if (list) { + list.push(node); + } else { + matchedNodes[name] = [node]; + } + } + + return node; + } + + function removeWhitespaceBefore(node) { + var textNode, textVal, sibling; + + for (textNode = node.prev; textNode && textNode.type === 3; ) { + textVal = textNode.value.replace(endWhiteSpaceRegExp, ''); + + if (textVal.length > 0) { + textNode.value = textVal; + textNode = textNode.prev; + } else { + sibling = textNode.prev; + textNode.remove(); + textNode = sibling; + } + } + } + + function cloneAndExcludeBlocks(input) { + var name, output = {}; + + for (name in input) { + if (name !== 'li' && name != 'p') { + output[name] = input[name]; + } + } + + return output; + } + + parser = new SaxParser({ + validate: validate, + allow_script_urls: settings.allow_script_urls, + allow_conditional_comments: settings.allow_conditional_comments, + + // Exclude P and LI from DOM parsing since it's treated better by the DOM parser + self_closing_elements: cloneAndExcludeBlocks(schema.getSelfClosingElements()), + + cdata: function(text) { + node.append(createNode('#cdata', 4)).value = text; + }, + + text: function(text, raw) { + var textNode; + + // Trim all redundant whitespace on non white space elements + if (!isInWhiteSpacePreservedElement) { + text = text.replace(allWhiteSpaceRegExp, ' '); + + if (node.lastChild && blockElements[node.lastChild.name]) { + text = text.replace(startWhiteSpaceRegExp, ''); + } + } + + // Do we need to create the node + if (text.length !== 0) { + textNode = createNode('#text', 3); + textNode.raw = !!raw; + node.append(textNode).value = text; + } + }, + + comment: function(text) { + node.append(createNode('#comment', 8)).value = text; + }, + + pi: function(name, text) { + node.append(createNode(name, 7)).value = text; + removeWhitespaceBefore(node); + }, + + doctype: function(text) { + var newNode; + + newNode = node.append(createNode('#doctype', 10)); + newNode.value = text; + removeWhitespaceBefore(node); + }, + + start: function(name, attrs, empty) { + var newNode, attrFiltersLen, elementRule, attrName, parent; + + elementRule = validate ? schema.getElementRule(name) : {}; + if (elementRule) { + newNode = createNode(elementRule.outputName || name, 1); + newNode.attributes = attrs; + newNode.shortEnded = empty; + + node.append(newNode); + + // Check if node is valid child of the parent node is the child is + // unknown we don't collect it since it's probably a custom element + parent = children[node.name]; + if (parent && children[newNode.name] && !parent[newNode.name]) { + invalidChildren.push(newNode); + } + + attrFiltersLen = attributeFilters.length; + while (attrFiltersLen--) { + attrName = attributeFilters[attrFiltersLen].name; + + if (attrName in attrs.map) { + list = matchedAttributes[attrName]; + + if (list) { + list.push(newNode); + } else { + matchedAttributes[attrName] = [newNode]; + } + } + } + + // Trim whitespace before block + if (blockElements[name]) { + removeWhitespaceBefore(newNode); + } + + // Change current node if the element wasn't empty i.e not <br /> or <img /> + if (!empty) { + node = newNode; + } + + // Check if we are inside a whitespace preserved element + if (!isInWhiteSpacePreservedElement && whiteSpaceElements[name]) { + isInWhiteSpacePreservedElement = true; + } + } + }, + + end: function(name) { + var textNode, elementRule, text, sibling, tempNode; + + elementRule = validate ? schema.getElementRule(name) : {}; + if (elementRule) { + if (blockElements[name]) { + if (!isInWhiteSpacePreservedElement) { + // Trim whitespace of the first node in a block + textNode = node.firstChild; + if (textNode && textNode.type === 3) { + text = textNode.value.replace(startWhiteSpaceRegExp, ''); + + // Any characters left after trim or should we remove it + if (text.length > 0) { + textNode.value = text; + textNode = textNode.next; + } else { + sibling = textNode.next; + textNode.remove(); + textNode = sibling; + + // Remove any pure whitespace siblings + while (textNode && textNode.type === 3) { + text = textNode.value; + sibling = textNode.next; + + if (text.length === 0 || isAllWhiteSpaceRegExp.test(text)) { + textNode.remove(); + textNode = sibling; + } + + textNode = sibling; + } + } + } + + // Trim whitespace of the last node in a block + textNode = node.lastChild; + if (textNode && textNode.type === 3) { + text = textNode.value.replace(endWhiteSpaceRegExp, ''); + + // Any characters left after trim or should we remove it + if (text.length > 0) { + textNode.value = text; + textNode = textNode.prev; + } else { + sibling = textNode.prev; + textNode.remove(); + textNode = sibling; + + // Remove any pure whitespace siblings + while (textNode && textNode.type === 3) { + text = textNode.value; + sibling = textNode.prev; + + if (text.length === 0 || isAllWhiteSpaceRegExp.test(text)) { + textNode.remove(); + textNode = sibling; + } + + textNode = sibling; + } + } + } + } + + // Trim start white space + // Removed due to: #5424 + /*textNode = node.prev; + if (textNode && textNode.type === 3) { + text = textNode.value.replace(startWhiteSpaceRegExp, ''); + + if (text.length > 0) + textNode.value = text; + else + textNode.remove(); + }*/ + } + + // Check if we exited a whitespace preserved element + if (isInWhiteSpacePreservedElement && whiteSpaceElements[name]) { + isInWhiteSpacePreservedElement = false; + } + + // Handle empty nodes + if (elementRule.removeEmpty || elementRule.paddEmpty) { + if (node.isEmpty(nonEmptyElements)) { + if (elementRule.paddEmpty) { + node.empty().append(new Node('#text', '3')).value = '\u00a0'; + } else { + // Leave nodes that have a name like <a name="name"> + if (!node.attributes.map.name && !node.attributes.map.id) { + tempNode = node.parent; + node.empty().remove(); + node = tempNode; + return; + } + } + } + } + + node = node.parent; + } + } + }, schema); + + rootNode = node = new Node(args.context || settings.root_name, 11); + + parser.parse(html); + + // Fix invalid children or report invalid children in a contextual parsing + if (validate && invalidChildren.length) { + if (!args.context) { + fixInvalidChildren(invalidChildren); + } else { + args.invalid = true; + } + } + + // Wrap nodes in the root into block elements if the root is body + if (rootBlockName && (rootNode.name == 'body' || args.isRootContent)) { + addRootBlocks(); + } + + // Run filters only when the contents is valid + if (!args.invalid) { + // Run node filters + for (name in matchedNodes) { + list = nodeFilters[name]; + nodes = matchedNodes[name]; + + // Remove already removed children + fi = nodes.length; + while (fi--) { + if (!nodes[fi].parent) { + nodes.splice(fi, 1); + } + } + + for (i = 0, l = list.length; i < l; i++) { + list[i](nodes, name, args); + } + } + + // Run attribute filters + for (i = 0, l = attributeFilters.length; i < l; i++) { + list = attributeFilters[i]; + + if (list.name in matchedAttributes) { + nodes = matchedAttributes[list.name]; + + // Remove already removed children + fi = nodes.length; + while (fi--) { + if (!nodes[fi].parent) { + nodes.splice(fi, 1); + } + } + + for (fi = 0, fl = list.callbacks.length; fi < fl; fi++) { + list.callbacks[fi](nodes, list.name, args); + } + } + } + } + + return rootNode; + }; + + // Remove <br> at end of block elements Gecko and WebKit injects BR elements to + // make it possible to place the caret inside empty blocks. This logic tries to remove + // these elements and keep br elements that where intended to be there intact + if (settings.remove_trailing_brs) { + self.addNodeFilter('br', function(nodes) { + var i, l = nodes.length, node, blockElements = extend({}, schema.getBlockElements()); + var nonEmptyElements = schema.getNonEmptyElements(), parent, lastParent, prev, prevName; + var elementRule, textNode; + + // Remove brs from body element as well + blockElements.body = 1; + + // Must loop forwards since it will otherwise remove all brs in <p>a<br><br><br></p> + for (i = 0; i < l; i++) { + node = nodes[i]; + parent = node.parent; + + if (blockElements[node.parent.name] && node === parent.lastChild) { + // Loop all nodes to the left of the current node and check for other BR elements + // excluding bookmarks since they are invisible + prev = node.prev; + while (prev) { + prevName = prev.name; + + // Ignore bookmarks + if (prevName !== "span" || prev.attr('data-mce-type') !== 'bookmark') { + // Found a non BR element + if (prevName !== "br") { + break; + } + + // Found another br it's a <br><br> structure then don't remove anything + if (prevName === 'br') { + node = null; + break; + } + } + + prev = prev.prev; + } + + if (node) { + node.remove(); + + // Is the parent to be considered empty after we removed the BR + if (parent.isEmpty(nonEmptyElements)) { + elementRule = schema.getElementRule(parent.name); + + // Remove or padd the element depending on schema rule + if (elementRule) { + if (elementRule.removeEmpty) { + parent.remove(); + } else if (elementRule.paddEmpty) { + parent.empty().append(new Node('#text', 3)).value = '\u00a0'; + } + } + } + } + } else { + // Replaces BR elements inside inline elements like <p><b><i><br></i></b></p> + // so they become <p><b><i> </i></b></p> + lastParent = node; + while (parent && parent.firstChild === lastParent && parent.lastChild === lastParent) { + lastParent = parent; + + if (blockElements[parent.name]) { + break; + } + + parent = parent.parent; + } + + if (lastParent === parent) { + textNode = new Node('#text', 3); + textNode.value = '\u00a0'; + node.replace(textNode); + } + } + } + }); + } + + // Force anchor names closed, unless the setting "allow_html_in_named_anchor" is explicitly included. + if (!settings.allow_html_in_named_anchor) { + self.addAttributeFilter('id,name', function(nodes) { + var i = nodes.length, sibling, prevSibling, parent, node; + + while (i--) { + node = nodes[i]; + if (node.name === 'a' && node.firstChild && !node.attr('href')) { + parent = node.parent; + + // Move children after current node + sibling = node.lastChild; + do { + prevSibling = sibling.prev; + parent.insert(sibling, node); + sibling = prevSibling; + } while (sibling); + } + } + }); + } + }; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/html/Entities.js b/common/static/js/vendor/tinymce/js/tinymce/classes/html/Entities.js new file mode 100755 index 00000000000..71430a9dfcb --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/html/Entities.js @@ -0,0 +1,263 @@ +/** + * Entities.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*jshint bitwise:false */ +/*eslint no-bitwise:0 */ + +/** + * Entity encoder class. + * + * @class tinymce.html.Entities + * @static + * @version 3.4 + */ +define("tinymce/html/Entities", [ + "tinymce/util/Tools" +], function(Tools) { + var makeMap = Tools.makeMap; + + var namedEntities, baseEntities, reverseEntities, + attrsCharsRegExp = /[&<>\"\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, + textCharsRegExp = /[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, + rawCharsRegExp = /[<>&\"\']/g, + entityRegExp = /&(#x|#)?([\w]+);/g, + asciiMap = { + 128: "\u20AC", 130: "\u201A", 131: "\u0192", 132: "\u201E", 133: "\u2026", 134: "\u2020", + 135: "\u2021", 136: "\u02C6", 137: "\u2030", 138: "\u0160", 139: "\u2039", 140: "\u0152", + 142: "\u017D", 145: "\u2018", 146: "\u2019", 147: "\u201C", 148: "\u201D", 149: "\u2022", + 150: "\u2013", 151: "\u2014", 152: "\u02DC", 153: "\u2122", 154: "\u0161", 155: "\u203A", + 156: "\u0153", 158: "\u017E", 159: "\u0178" + }; + + // Raw entities + baseEntities = { + '\"': '"', // Needs to be escaped since the YUI compressor would otherwise break the code + "'": ''', + '<': '<', + '>': '>', + '&': '&' + }; + + // Reverse lookup table for raw entities + reverseEntities = { + '<': '<', + '>': '>', + '&': '&', + '"': '"', + ''': "'" + }; + + // Decodes text by using the browser + function nativeDecode(text) { + var elm; + + elm = document.createElement("div"); + elm.innerHTML = text; + + return elm.textContent || elm.innerText || text; + } + + // Build a two way lookup table for the entities + function buildEntitiesLookup(items, radix) { + var i, chr, entity, lookup = {}; + + if (items) { + items = items.split(','); + radix = radix || 10; + + // Build entities lookup table + for (i = 0; i < items.length; i += 2) { + chr = String.fromCharCode(parseInt(items[i], radix)); + + // Only add non base entities + if (!baseEntities[chr]) { + entity = '&' + items[i + 1] + ';'; + lookup[chr] = entity; + lookup[entity] = chr; + } + } + + return lookup; + } + } + + // Unpack entities lookup where the numbers are in radix 32 to reduce the size + namedEntities = buildEntitiesLookup( + '50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,' + + '5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,' + + '5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,' + + '5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,' + + '68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,' + + '6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,' + + '6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,' + + '75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,' + + '7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,' + + '7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,' + + 'sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,' + + 'st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,' + + 't9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,' + + 'tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,' + + 'u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,' + + '81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,' + + '8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,' + + '8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,' + + '8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,' + + '8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,' + + 'nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,' + + 'rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,' + + 'Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,' + + '80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,' + + '811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro', 32); + + var Entities = { + /** + * Encodes the specified string using raw entities. This means only the required XML base entities will be endoded. + * + * @method encodeRaw + * @param {String} text Text to encode. + * @param {Boolean} attr Optional flag to specify if the text is attribute contents. + * @return {String} Entity encoded text. + */ + encodeRaw: function(text, attr) { + return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function(chr) { + return baseEntities[chr] || chr; + }); + }, + + /** + * Encoded the specified text with both the attributes and text entities. This function will produce larger text contents + * since it doesn't know if the context is within a attribute or text node. This was added for compatibility + * and is exposed as the DOMUtils.encode function. + * + * @method encodeAllRaw + * @param {String} text Text to encode. + * @return {String} Entity encoded text. + */ + encodeAllRaw: function(text) { + return ('' + text).replace(rawCharsRegExp, function(chr) { + return baseEntities[chr] || chr; + }); + }, + + /** + * Encodes the specified string using numeric entities. The core entities will be + * encoded as named ones but all non lower ascii characters will be encoded into numeric entities. + * + * @method encodeNumeric + * @param {String} text Text to encode. + * @param {Boolean} attr Optional flag to specify if the text is attribute contents. + * @return {String} Entity encoded text. + */ + encodeNumeric: function(text, attr) { + return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function(chr) { + // Multi byte sequence convert it to a single entity + if (chr.length > 1) { + return '&#' + (((chr.charCodeAt(0) - 0xD800) * 0x400) + (chr.charCodeAt(1) - 0xDC00) + 0x10000) + ';'; + } + + return baseEntities[chr] || '&#' + chr.charCodeAt(0) + ';'; + }); + }, + + /** + * Encodes the specified string using named entities. The core entities will be encoded + * as named ones but all non lower ascii characters will be encoded into named entities. + * + * @method encodeNamed + * @param {String} text Text to encode. + * @param {Boolean} attr Optional flag to specify if the text is attribute contents. + * @param {Object} entities Optional parameter with entities to use. + * @return {String} Entity encoded text. + */ + encodeNamed: function(text, attr, entities) { + entities = entities || namedEntities; + + return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function(chr) { + return baseEntities[chr] || entities[chr] || chr; + }); + }, + + /** + * Returns an encode function based on the name(s) and it's optional entities. + * + * @method getEncodeFunc + * @param {String} name Comma separated list of encoders for example named,numeric. + * @param {String} entities Optional parameter with entities to use instead of the built in set. + * @return {function} Encode function to be used. + */ + getEncodeFunc: function(name, entities) { + entities = buildEntitiesLookup(entities) || namedEntities; + + function encodeNamedAndNumeric(text, attr) { + return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function(chr) { + return baseEntities[chr] || entities[chr] || '&#' + chr.charCodeAt(0) + ';' || chr; + }); + } + + function encodeCustomNamed(text, attr) { + return Entities.encodeNamed(text, attr, entities); + } + + // Replace + with , to be compatible with previous TinyMCE versions + name = makeMap(name.replace(/\+/g, ',')); + + // Named and numeric encoder + if (name.named && name.numeric) { + return encodeNamedAndNumeric; + } + + // Named encoder + if (name.named) { + // Custom names + if (entities) { + return encodeCustomNamed; + } + + return Entities.encodeNamed; + } + + // Numeric + if (name.numeric) { + return Entities.encodeNumeric; + } + + // Raw encoder + return Entities.encodeRaw; + }, + + /** + * Decodes the specified string, this will replace entities with raw UTF characters. + * + * @method decode + * @param {String} text Text to entity decode. + * @return {String} Entity decoded string. + */ + decode: function(text) { + return text.replace(entityRegExp, function(all, numeric, value) { + if (numeric) { + value = parseInt(value, numeric.length === 2 ? 16 : 10); + + // Support upper UTF + if (value > 0xFFFF) { + value -= 0x10000; + + return String.fromCharCode(0xD800 + (value >> 10), 0xDC00 + (value & 0x3FF)); + } else { + return asciiMap[value] || String.fromCharCode(value); + } + } + + return reverseEntities[all] || namedEntities[all] || nativeDecode(all); + }); + } + }; + + return Entities; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/html/Node.js b/common/static/js/vendor/tinymce/js/tinymce/classes/html/Node.js new file mode 100755 index 00000000000..acfc57a9fb3 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/html/Node.js @@ -0,0 +1,496 @@ +/** + * Node.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class is a minimalistic implementation of a DOM like node used by the DomParser class. + * + * @example + * var node = new tinymce.html.Node('strong', 1); + * someRoot.append(node); + * + * @class tinymce.html.Node + * @version 3.4 + */ +define("tinymce/html/Node", [], function() { + var whiteSpaceRegExp = /^[ \t\r\n]*$/, typeLookup = { + '#text': 3, + '#comment': 8, + '#cdata': 4, + '#pi': 7, + '#doctype': 10, + '#document-fragment': 11 + }; + + // Walks the tree left/right + function walk(node, root_node, prev) { + var sibling, parent, startName = prev ? 'lastChild' : 'firstChild', siblingName = prev ? 'prev' : 'next'; + + // Walk into nodes if it has a start + if (node[startName]) { + return node[startName]; + } + + // Return the sibling if it has one + if (node !== root_node) { + sibling = node[siblingName]; + + if (sibling) { + return sibling; + } + + // Walk up the parents to look for siblings + for (parent = node.parent; parent && parent !== root_node; parent = parent.parent) { + sibling = parent[siblingName]; + + if (sibling) { + return sibling; + } + } + } + } + + /** + * Constructs a new Node instance. + * + * @constructor + * @method Node + * @param {String} name Name of the node type. + * @param {Number} type Numeric type representing the node. + */ + function Node(name, type) { + this.name = name; + this.type = type; + + if (type === 1) { + this.attributes = []; + this.attributes.map = {}; + } + } + + Node.prototype = { + /** + * Replaces the current node with the specified one. + * + * @example + * someNode.replace(someNewNode); + * + * @method replace + * @param {tinymce.html.Node} node Node to replace the current node with. + * @return {tinymce.html.Node} The old node that got replaced. + */ + replace: function(node) { + var self = this; + + if (node.parent) { + node.remove(); + } + + self.insert(node, self); + self.remove(); + + return self; + }, + + /** + * Gets/sets or removes an attribute by name. + * + * @example + * someNode.attr("name", "value"); // Sets an attribute + * console.log(someNode.attr("name")); // Gets an attribute + * someNode.attr("name", null); // Removes an attribute + * + * @method attr + * @param {String} name Attribute name to set or get. + * @param {String} value Optional value to set. + * @return {String/tinymce.html.Node} String or undefined on a get operation or the current node on a set operation. + */ + attr: function(name, value) { + var self = this, attrs, i, undef; + + if (typeof name !== "string") { + for (i in name) { + self.attr(i, name[i]); + } + + return self; + } + + if ((attrs = self.attributes)) { + if (value !== undef) { + // Remove attribute + if (value === null) { + if (name in attrs.map) { + delete attrs.map[name]; + + i = attrs.length; + while (i--) { + if (attrs[i].name === name) { + attrs = attrs.splice(i, 1); + return self; + } + } + } + + return self; + } + + // Set attribute + if (name in attrs.map) { + // Set attribute + i = attrs.length; + while (i--) { + if (attrs[i].name === name) { + attrs[i].value = value; + break; + } + } + } else { + attrs.push({name: name, value: value}); + } + + attrs.map[name] = value; + + return self; + } else { + return attrs.map[name]; + } + } + }, + + /** + * Does a shallow clones the node into a new node. It will also exclude id attributes since + * there should only be one id per document. + * + * @example + * var clonedNode = node.clone(); + * + * @method clone + * @return {tinymce.html.Node} New copy of the original node. + */ + clone: function() { + var self = this, clone = new Node(self.name, self.type), i, l, selfAttrs, selfAttr, cloneAttrs; + + // Clone element attributes + if ((selfAttrs = self.attributes)) { + cloneAttrs = []; + cloneAttrs.map = {}; + + for (i = 0, l = selfAttrs.length; i < l; i++) { + selfAttr = selfAttrs[i]; + + // Clone everything except id + if (selfAttr.name !== 'id') { + cloneAttrs[cloneAttrs.length] = {name: selfAttr.name, value: selfAttr.value}; + cloneAttrs.map[selfAttr.name] = selfAttr.value; + } + } + + clone.attributes = cloneAttrs; + } + + clone.value = self.value; + clone.shortEnded = self.shortEnded; + + return clone; + }, + + /** + * Wraps the node in in another node. + * + * @example + * node.wrap(wrapperNode); + * + * @method wrap + */ + wrap: function(wrapper) { + var self = this; + + self.parent.insert(wrapper, self); + wrapper.append(self); + + return self; + }, + + /** + * Unwraps the node in other words it removes the node but keeps the children. + * + * @example + * node.unwrap(); + * + * @method unwrap + */ + unwrap: function() { + var self = this, node, next; + + for (node = self.firstChild; node; ) { + next = node.next; + self.insert(node, self, true); + node = next; + } + + self.remove(); + }, + + /** + * Removes the node from it's parent. + * + * @example + * node.remove(); + * + * @method remove + * @return {tinymce.html.Node} Current node that got removed. + */ + remove: function() { + var self = this, parent = self.parent, next = self.next, prev = self.prev; + + if (parent) { + if (parent.firstChild === self) { + parent.firstChild = next; + + if (next) { + next.prev = null; + } + } else { + prev.next = next; + } + + if (parent.lastChild === self) { + parent.lastChild = prev; + + if (prev) { + prev.next = null; + } + } else { + next.prev = prev; + } + + self.parent = self.next = self.prev = null; + } + + return self; + }, + + /** + * Appends a new node as a child of the current node. + * + * @example + * node.append(someNode); + * + * @method append + * @param {tinymce.html.Node} node Node to append as a child of the current one. + * @return {tinymce.html.Node} The node that got appended. + */ + append: function(node) { + var self = this, last; + + if (node.parent) { + node.remove(); + } + + last = self.lastChild; + if (last) { + last.next = node; + node.prev = last; + self.lastChild = node; + } else { + self.lastChild = self.firstChild = node; + } + + node.parent = self; + + return node; + }, + + /** + * Inserts a node at a specific position as a child of the current node. + * + * @example + * parentNode.insert(newChildNode, oldChildNode); + * + * @method insert + * @param {tinymce.html.Node} node Node to insert as a child of the current node. + * @param {tinymce.html.Node} ref_node Reference node to set node before/after. + * @param {Boolean} before Optional state to insert the node before the reference node. + * @return {tinymce.html.Node} The node that got inserted. + */ + insert: function(node, ref_node, before) { + var parent; + + if (node.parent) { + node.remove(); + } + + parent = ref_node.parent || this; + + if (before) { + if (ref_node === parent.firstChild) { + parent.firstChild = node; + } else { + ref_node.prev.next = node; + } + + node.prev = ref_node.prev; + node.next = ref_node; + ref_node.prev = node; + } else { + if (ref_node === parent.lastChild) { + parent.lastChild = node; + } else { + ref_node.next.prev = node; + } + + node.next = ref_node.next; + node.prev = ref_node; + ref_node.next = node; + } + + node.parent = parent; + + return node; + }, + + /** + * Get all children by name. + * + * @method getAll + * @param {String} name Name of the child nodes to collect. + * @return {Array} Array with child nodes matchin the specified name. + */ + getAll: function(name) { + var self = this, node, collection = []; + + for (node = self.firstChild; node; node = walk(node, self)) { + if (node.name === name) { + collection.push(node); + } + } + + return collection; + }, + + /** + * Removes all children of the current node. + * + * @method empty + * @return {tinymce.html.Node} The current node that got cleared. + */ + empty: function() { + var self = this, nodes, i, node; + + // Remove all children + if (self.firstChild) { + nodes = []; + + // Collect the children + for (node = self.firstChild; node; node = walk(node, self)) { + nodes.push(node); + } + + // Remove the children + i = nodes.length; + while (i--) { + node = nodes[i]; + node.parent = node.firstChild = node.lastChild = node.next = node.prev = null; + } + } + + self.firstChild = self.lastChild = null; + + return self; + }, + + /** + * Returns true/false if the node is to be considered empty or not. + * + * @example + * node.isEmpty({img: true}); + * @method isEmpty + * @param {Object} elements Name/value object with elements that are automatically treated as non empty elements. + * @return {Boolean} true/false if the node is empty or not. + */ + isEmpty: function(elements) { + var self = this, node = self.firstChild, i, name; + + if (node) { + do { + if (node.type === 1) { + // Ignore bogus elements + if (node.attributes.map['data-mce-bogus']) { + continue; + } + + // Keep empty elements like <img /> + if (elements[node.name]) { + return false; + } + + // Keep elements with data attributes or name attribute like <a name="1"></a> + i = node.attributes.length; + while (i--) { + name = node.attributes[i].name; + if (name === "name" || name.indexOf('data-mce-') === 0) { + return false; + } + } + } + + // Keep comments + if (node.type === 8) { + return false; + } + + // Keep non whitespace text nodes + if ((node.type === 3 && !whiteSpaceRegExp.test(node.value))) { + return false; + } + } while ((node = walk(node, self))); + } + + return true; + }, + + /** + * Walks to the next or previous node and returns that node or null if it wasn't found. + * + * @method walk + * @param {Boolean} prev Optional previous node state defaults to false. + * @return {tinymce.html.Node} Node that is next to or previous of the current node. + */ + walk: function(prev) { + return walk(this, null, prev); + } + }; + + /** + * Creates a node of a specific type. + * + * @static + * @method create + * @param {String} name Name of the node type to create for example "b" or "#text". + * @param {Object} attrs Name/value collection of attributes that will be applied to elements. + */ + Node.create = function(name, attrs) { + var node, attrName; + + // Create node + node = new Node(name, typeLookup[name] || 1); + + // Add attributes if needed + if (attrs) { + for (attrName in attrs) { + node.attr(attrName, attrs[attrName]); + } + } + + return node; + }; + + return Node; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/html/SaxParser.js b/common/static/js/vendor/tinymce/js/tinymce/classes/html/SaxParser.js new file mode 100755 index 00000000000..80258fde185 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/html/SaxParser.js @@ -0,0 +1,423 @@ +/** + * SaxParser.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*eslint max-depth:[2, 9] */ + +/** + * This class parses HTML code using pure JavaScript and executes various events for each item it finds. It will + * always execute the events in the right order for tag soup code like <b><p></b></p>. It will also remove elements + * and attributes that doesn't fit the schema if the validate setting is enabled. + * + * @example + * var parser = new tinymce.html.SaxParser({ + * validate: true, + * + * comment: function(text) { + * console.log('Comment:', text); + * }, + * + * cdata: function(text) { + * console.log('CDATA:', text); + * }, + * + * text: function(text, raw) { + * console.log('Text:', text, 'Raw:', raw); + * }, + * + * start: function(name, attrs, empty) { + * console.log('Start:', name, attrs, empty); + * }, + * + * end: function(name) { + * console.log('End:', name); + * }, + * + * pi: function(name, text) { + * console.log('PI:', name, text); + * }, + * + * doctype: function(text) { + * console.log('DocType:', text); + * } + * }, schema); + * @class tinymce.html.SaxParser + * @version 3.4 + */ +define("tinymce/html/SaxParser", [ + "tinymce/html/Schema", + "tinymce/html/Entities", + "tinymce/util/Tools" +], function(Schema, Entities, Tools) { + var each = Tools.each; + + /** + * Constructs a new SaxParser instance. + * + * @constructor + * @method SaxParser + * @param {Object} settings Name/value collection of settings. comment, cdata, text, start and end are callbacks. + * @param {tinymce.html.Schema} schema HTML Schema class to use when parsing. + */ + return function(settings, schema) { + var self = this; + + function noop() {} + + settings = settings || {}; + self.schema = schema = schema || new Schema(); + + if (settings.fix_self_closing !== false) { + settings.fix_self_closing = true; + } + + // Add handler functions from settings and setup default handlers + each('comment cdata text start end pi doctype'.split(' '), function(name) { + if (name) { + self[name] = settings[name] || noop; + } + }); + + /** + * Parses the specified HTML string and executes the callbacks for each item it finds. + * + * @example + * new SaxParser({...}).parse('<b>text</b>'); + * @method parse + * @param {String} html Html string to sax parse. + */ + self.parse = function(html) { + var self = this, matches, index = 0, value, endRegExp, stack = [], attrList, i, text, name; + var isInternalElement, removeInternalElements, shortEndedElements, fillAttrsMap, isShortEnded; + var validate, elementRule, isValidElement, attr, attribsValue, validAttributesMap, validAttributePatterns; + var attributesRequired, attributesDefault, attributesForced; + var anyAttributesRequired, selfClosing, tokenRegExp, attrRegExp, specialElements, attrValue, idCount = 0; + var decode = Entities.decode, fixSelfClosing, filteredUrlAttrs = Tools.makeMap('src,href'); + var scriptUriRegExp = /(java|vb)script:/i; + + function processEndTag(name) { + var pos, i; + + // Find position of parent of the same type + pos = stack.length; + while (pos--) { + if (stack[pos].name === name) { + break; + } + } + + // Found parent + if (pos >= 0) { + // Close all the open elements + for (i = stack.length - 1; i >= pos; i--) { + name = stack[i]; + + if (name.valid) { + self.end(name.name); + } + } + + // Remove the open elements from the stack + stack.length = pos; + } + } + + function parseAttribute(match, name, value, val2, val3) { + var attrRule, i, trimRegExp = /[\s\u0000-\u001F]+/g; + + name = name.toLowerCase(); + value = name in fillAttrsMap ? name : decode(value || val2 || val3 || ''); // Handle boolean attribute than value attribute + + // Validate name and value pass through all data- attributes + if (validate && !isInternalElement && name.indexOf('data-') !== 0) { + attrRule = validAttributesMap[name]; + + // Find rule by pattern matching + if (!attrRule && validAttributePatterns) { + i = validAttributePatterns.length; + while (i--) { + attrRule = validAttributePatterns[i]; + if (attrRule.pattern.test(name)) { + break; + } + } + + // No rule matched + if (i === -1) { + attrRule = null; + } + } + + // No attribute rule found + if (!attrRule) { + return; + } + + // Validate value + if (attrRule.validValues && !(value in attrRule.validValues)) { + return; + } + } + + // Block any javascript: urls + if (filteredUrlAttrs[name] && !settings.allow_script_urls) { + var uri = value.replace(trimRegExp, ''); + + try { + // Might throw malformed URI sequence + uri = decodeURIComponent(uri); + if (scriptUriRegExp.test(uri)) { + return; + } + } catch (ex) { + // Fallback to non UTF-8 decoder + uri = unescape(uri); + if (scriptUriRegExp.test(uri)) { + return; + } + } + } + + // Add attribute to list and map + attrList.map[name] = value; + attrList.push({ + name: name, + value: value + }); + } + + // Precompile RegExps and map objects + tokenRegExp = new RegExp('<(?:' + + '(?:!--([\\w\\W]*?)-->)|' + // Comment + '(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|' + // CDATA + '(?:!DOCTYPE([\\w\\W]*?)>)|' + // DOCTYPE + '(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|' + // PI + '(?:\\/([^>]+)>)|' + // End element + '(?:([A-Za-z0-9\\-\\:\\.]+)((?:\\s+[^"\'>]+(?:(?:"[^"]*")|(?:\'[^\']*\')|[^>]*))*|\\/|\\s+)>)' + // Start element + ')', 'g'); + + attrRegExp = /([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g; + + // Setup lookup tables for empty elements and boolean attributes + shortEndedElements = schema.getShortEndedElements(); + selfClosing = settings.self_closing_elements || schema.getSelfClosingElements(); + fillAttrsMap = schema.getBoolAttrs(); + validate = settings.validate; + removeInternalElements = settings.remove_internals; + fixSelfClosing = settings.fix_self_closing; + specialElements = schema.getSpecialElements(); + + while ((matches = tokenRegExp.exec(html))) { + // Text + if (index < matches.index) { + self.text(decode(html.substr(index, matches.index - index))); + } + + if ((value = matches[6])) { // End element + value = value.toLowerCase(); + + // IE will add a ":" in front of elements it doesn't understand like custom elements or HTML5 elements + if (value.charAt(0) === ':') { + value = value.substr(1); + } + + processEndTag(value); + } else if ((value = matches[7])) { // Start element + value = value.toLowerCase(); + + // IE will add a ":" in front of elements it doesn't understand like custom elements or HTML5 elements + if (value.charAt(0) === ':') { + value = value.substr(1); + } + + isShortEnded = value in shortEndedElements; + + // Is self closing tag for example an <li> after an open <li> + if (fixSelfClosing && selfClosing[value] && stack.length > 0 && stack[stack.length - 1].name === value) { + processEndTag(value); + } + + // Validate element + if (!validate || (elementRule = schema.getElementRule(value))) { + isValidElement = true; + + // Grab attributes map and patters when validation is enabled + if (validate) { + validAttributesMap = elementRule.attributes; + validAttributePatterns = elementRule.attributePatterns; + } + + // Parse attributes + if ((attribsValue = matches[8])) { + isInternalElement = attribsValue.indexOf('data-mce-type') !== -1; // Check if the element is an internal element + + // If the element has internal attributes then remove it if we are told to do so + if (isInternalElement && removeInternalElements) { + isValidElement = false; + } + + attrList = []; + attrList.map = {}; + + attribsValue.replace(attrRegExp, parseAttribute); + } else { + attrList = []; + attrList.map = {}; + } + + // Process attributes if validation is enabled + if (validate && !isInternalElement) { + attributesRequired = elementRule.attributesRequired; + attributesDefault = elementRule.attributesDefault; + attributesForced = elementRule.attributesForced; + anyAttributesRequired = elementRule.removeEmptyAttrs; + + // Check if any attribute exists + if (anyAttributesRequired && !attrList.length) { + isValidElement = false; + } + + // Handle forced attributes + if (attributesForced) { + i = attributesForced.length; + while (i--) { + attr = attributesForced[i]; + name = attr.name; + attrValue = attr.value; + + if (attrValue === '{$uid}') { + attrValue = 'mce_' + idCount++; + } + + attrList.map[name] = attrValue; + attrList.push({name: name, value: attrValue}); + } + } + + // Handle default attributes + if (attributesDefault) { + i = attributesDefault.length; + while (i--) { + attr = attributesDefault[i]; + name = attr.name; + + if (!(name in attrList.map)) { + attrValue = attr.value; + + if (attrValue === '{$uid}') { + attrValue = 'mce_' + idCount++; + } + + attrList.map[name] = attrValue; + attrList.push({name: name, value: attrValue}); + } + } + } + + // Handle required attributes + if (attributesRequired) { + i = attributesRequired.length; + while (i--) { + if (attributesRequired[i] in attrList.map) { + break; + } + } + + // None of the required attributes where found + if (i === -1) { + isValidElement = false; + } + } + + // Invalidate element if it's marked as bogus + if (attrList.map['data-mce-bogus']) { + isValidElement = false; + } + } + + if (isValidElement) { + self.start(value, attrList, isShortEnded); + } + } else { + isValidElement = false; + } + + // Treat script, noscript and style a bit different since they may include code that looks like elements + if ((endRegExp = specialElements[value])) { + endRegExp.lastIndex = index = matches.index + matches[0].length; + + if ((matches = endRegExp.exec(html))) { + if (isValidElement) { + text = html.substr(index, matches.index - index); + } + + index = matches.index + matches[0].length; + } else { + text = html.substr(index); + index = html.length; + } + + if (isValidElement) { + if (text.length > 0) { + self.text(text, true); + } + + self.end(value); + } + + tokenRegExp.lastIndex = index; + continue; + } + + // Push value on to stack + if (!isShortEnded) { + if (!attribsValue || attribsValue.indexOf('/') != attribsValue.length - 1) { + stack.push({name: value, valid: isValidElement}); + } else if (isValidElement) { + self.end(value); + } + } + } else if ((value = matches[1])) { // Comment + // Padd comment value to avoid browsers from parsing invalid comments as HTML + if (value.charAt(0) === '>') { + value = ' ' + value; + } + + if (!settings.allow_conditional_comments && value.substr(0, 3) === '[if') { + value = ' ' + value; + } + + self.comment(value); + } else if ((value = matches[2])) { // CDATA + self.cdata(value); + } else if ((value = matches[3])) { // DOCTYPE + self.doctype(value); + } else if ((value = matches[4])) { // PI + self.pi(value, matches[5]); + } + + index = matches.index + matches[0].length; + } + + // Text + if (index < html.length) { + self.text(decode(html.substr(index))); + } + + // Close any open elements + for (i = stack.length - 1; i >= 0; i--) { + value = stack[i]; + + if (value.valid) { + self.end(value.name); + } + } + }; + }; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/html/Schema.js b/common/static/js/vendor/tinymce/js/tinymce/classes/html/Schema.js new file mode 100755 index 00000000000..40b44e56d27 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/html/Schema.js @@ -0,0 +1,938 @@ +/** + * Schema.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Schema validator class. + * + * @class tinymce.html.Schema + * @example + * if (tinymce.activeEditor.schema.isValidChild('p', 'span')) + * alert('span is valid child of p.'); + * + * if (tinymce.activeEditor.schema.getElementRule('p')) + * alert('P is a valid element.'); + * + * @class tinymce.html.Schema + * @version 3.4 + */ +define("tinymce/html/Schema", [ + "tinymce/util/Tools" +], function(Tools) { + var mapCache = {}; + var makeMap = Tools.makeMap, each = Tools.each, extend = Tools.extend, explode = Tools.explode, inArray = Tools.inArray; + + function split(items, delim) { + return items ? items.split(delim || ' ') : []; + } + + /** + * Builds a schema lookup table + * + * @private + * @param {String} type html4, html5 or html5-strict schema type. + * @return {Object} Schema lookup table. + */ + function compileSchema(type) { + var schema = {}, globalAttributes, blockContent; + var phrasingContent, flowContent, html4BlockContent, html4PhrasingContent; + + function add(name, attributes, children) { + var ni, i, attributesOrder, args = arguments; + + function arrayToMap(array) { + var map = {}, i, l; + + for (i = 0, l = array.length; i < l; i++) { + map[array[i]] = {}; + } + + return map; + } + + children = children || []; + attributes = attributes || ""; + + if (typeof(children) === "string") { + children = split(children); + } + + // Split string children + for (i = 3; i < args.length; i++) { + if (typeof(args[i]) === "string") { + args[i] = split(args[i]); + } + + children.push.apply(children, args[i]); + } + + name = split(name); + ni = name.length; + while (ni--) { + attributesOrder = [].concat(globalAttributes, split(attributes)); + schema[name[ni]] = { + attributes: arrayToMap(attributesOrder), + attributesOrder: attributesOrder, + children: arrayToMap(children) + }; + } + } + + function addAttrs(name, attributes) { + var ni, schemaItem, i, l; + + name = split(name); + ni = name.length; + attributes = split(attributes); + while (ni--) { + schemaItem = schema[name[ni]]; + for (i = 0, l = attributes.length; i < l; i++) { + schemaItem.attributes[attributes[i]] = {}; + schemaItem.attributesOrder.push(attributes[i]); + } + } + } + + // Use cached schema + if (mapCache[type]) { + return mapCache[type]; + } + + // Attributes present on all elements + globalAttributes = split("id accesskey class dir lang style tabindex title"); + + // Event attributes can be opt-in/opt-out + /*eventAttributes = split("onabort onblur oncancel oncanplay oncanplaythrough onchange onclick onclose oncontextmenu oncuechange " + + "ondblclick ondrag ondragend ondragenter ondragleave ondragover ondragstart ondrop ondurationchange onemptied onended " + + "onerror onfocus oninput oninvalid onkeydown onkeypress onkeyup onload onloadeddata onloadedmetadata onloadstart " + + "onmousedown onmousemove onmouseout onmouseover onmouseup onmousewheel onpause onplay onplaying onprogress onratechange " + + "onreset onscroll onseeked onseeking onseeking onselect onshow onstalled onsubmit onsuspend ontimeupdate onvolumechange " + + "onwaiting" + );*/ + + // Block content elements + blockContent = split( + "address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul" + ); + + // Phrasing content elements from the HTML5 spec (inline) + phrasingContent = split( + "a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd " + + "label map noscript object q s samp script select small span strong sub sup " + + "textarea u var #text #comment" + ); + + // Add HTML5 items to globalAttributes, blockContent, phrasingContent + if (type != "html4") { + globalAttributes.push.apply(globalAttributes, split("contenteditable contextmenu draggable dropzone " + + "hidden spellcheck translate")); + blockContent.push.apply(blockContent, split("article aside details dialog figure header footer hgroup section nav")); + phrasingContent.push.apply(phrasingContent, split("audio canvas command datalist mark meter output progress time wbr " + + "video ruby bdi keygen")); + } + + // Add HTML4 elements unless it's html5-strict + if (type != "html5-strict") { + globalAttributes.push("xml:lang"); + + html4PhrasingContent = split("acronym applet basefont big font strike tt"); + phrasingContent.push.apply(phrasingContent, html4PhrasingContent); + + each(html4PhrasingContent, function(name) { + add(name, "", phrasingContent); + }); + + html4BlockContent = split("center dir isindex noframes"); + blockContent.push.apply(blockContent, html4BlockContent); + + // Flow content elements from the HTML5 spec (block+inline) + flowContent = [].concat(blockContent, phrasingContent); + + each(html4BlockContent, function(name) { + add(name, "", flowContent); + }); + } + + // Flow content elements from the HTML5 spec (block+inline) + flowContent = flowContent || [].concat(blockContent, phrasingContent); + + // HTML4 base schema TODO: Move HTML5 specific attributes to HTML5 specific if statement + // Schema items <element name>, <specific attributes>, <children ..> + add("html", "manifest", "head body"); + add("head", "", "base command link meta noscript script style title"); + add("title hr noscript br"); + add("base", "href target"); + add("link", "href rel media hreflang type sizes hreflang"); + add("meta", "name http-equiv content charset"); + add("style", "media type scoped"); + add("script", "src async defer type charset"); + add("body", "onafterprint onbeforeprint onbeforeunload onblur onerror onfocus " + + "onhashchange onload onmessage onoffline ononline onpagehide onpageshow " + + "onpopstate onresize onscroll onstorage onunload", flowContent); + add("address dt dd div caption", "", flowContent); + add("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn", "", phrasingContent); + add("blockquote", "cite", flowContent); + add("ol", "reversed start type", "li"); + add("ul", "", "li"); + add("li", "value", flowContent); + add("dl", "", "dt dd"); + add("a", "href target rel media hreflang type", phrasingContent); + add("q", "cite", phrasingContent); + add("ins del", "cite datetime", flowContent); + add("img", "src alt usemap ismap width height"); + add("iframe", "src name width height", flowContent); + add("embed", "src type width height"); + add("object", "data type typemustmatch name usemap form width height", flowContent, "param"); + add("param", "name value"); + add("map", "name", flowContent, "area"); + add("area", "alt coords shape href target rel media hreflang type"); + add("table", "border", "caption colgroup thead tfoot tbody tr" + (type == "html4" ? " col" : "")); + add("colgroup", "span", "col"); + add("col", "span"); + add("tbody thead tfoot", "", "tr"); + add("tr", "", "td th"); + add("td", "colspan rowspan headers", flowContent); + add("th", "colspan rowspan headers scope abbr", flowContent); + add("form", "accept-charset action autocomplete enctype method name novalidate target", flowContent); + add("fieldset", "disabled form name", flowContent, "legend"); + add("label", "form for", phrasingContent); + add("input", "accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate " + + "formtarget height list max maxlength min multiple name pattern readonly required size src step type value width" + ); + add("button", "disabled form formaction formenctype formmethod formnovalidate formtarget name type value", + type == "html4" ? flowContent : phrasingContent); + add("select", "disabled form multiple name required size", "option optgroup"); + add("optgroup", "disabled label", "option"); + add("option", "disabled label selected value"); + add("textarea", "cols dirname disabled form maxlength name readonly required rows wrap"); + add("menu", "type label", flowContent, "li"); + add("noscript", "", flowContent); + + // Extend with HTML5 elements + if (type != "html4") { + add("wbr"); + add("ruby", "", phrasingContent, "rt rp"); + add("figcaption", "", flowContent); + add("mark rt rp summary bdi", "", phrasingContent); + add("canvas", "width height", flowContent); + add("video", "src crossorigin poster preload autoplay mediagroup loop " + + "muted controls width height", flowContent, "track source"); + add("audio", "src crossorigin preload autoplay mediagroup loop muted controls", flowContent, "track source"); + add("source", "src type media"); + add("track", "kind src srclang label default"); + add("datalist", "", phrasingContent, "option"); + add("article section nav aside header footer", "", flowContent); + add("hgroup", "", "h1 h2 h3 h4 h5 h6"); + add("figure", "", flowContent, "figcaption"); + add("time", "datetime", phrasingContent); + add("dialog", "open", flowContent); + add("command", "type label icon disabled checked radiogroup command"); + add("output", "for form name", phrasingContent); + add("progress", "value max", phrasingContent); + add("meter", "value min max low high optimum", phrasingContent); + add("details", "open", flowContent, "summary"); + add("keygen", "autofocus challenge disabled form keytype name"); + } + + // Extend with HTML4 attributes unless it's html5-strict + if (type != "html5-strict") { + addAttrs("script", "language xml:space"); + addAttrs("style", "xml:space"); + addAttrs("object", "declare classid codebase codetype archive standby align border hspace vspace"); + addAttrs("param", "valuetype type"); + addAttrs("a", "charset name rev shape coords"); + addAttrs("br", "clear"); + addAttrs("applet", "codebase archive code object alt name width height align hspace vspace"); + addAttrs("img", "name longdesc align border hspace vspace"); + addAttrs("iframe", "longdesc frameborder marginwidth marginheight scrolling align"); + addAttrs("font basefont", "size color face"); + addAttrs("input", "usemap align"); + addAttrs("select", "onchange"); + addAttrs("textarea"); + addAttrs("h1 h2 h3 h4 h5 h6 div p legend caption", "align"); + addAttrs("ul", "type compact"); + addAttrs("li", "type"); + addAttrs("ol dl menu dir", "compact"); + addAttrs("pre", "width xml:space"); + addAttrs("hr", "align noshade size width"); + addAttrs("isindex", "prompt"); + addAttrs("table", "summary width frame rules cellspacing cellpadding align bgcolor"); + addAttrs("col", "width align char charoff valign"); + addAttrs("colgroup", "width align char charoff valign"); + addAttrs("thead", "align char charoff valign"); + addAttrs("tr", "align char charoff valign bgcolor"); + addAttrs("th", "axis align char charoff valign nowrap bgcolor width height"); + addAttrs("form", "accept"); + addAttrs("td", "abbr axis scope align char charoff valign nowrap bgcolor width height"); + addAttrs("tfoot", "align char charoff valign"); + addAttrs("tbody", "align char charoff valign"); + addAttrs("area", "nohref"); + addAttrs("body", "background bgcolor text link vlink alink"); + } + + // Extend with HTML5 attributes unless it's html4 + if (type != "html4") { + addAttrs("input button select textarea", "autofocus"); + addAttrs("input textarea", "placeholder"); + addAttrs("a", "download"); + addAttrs("link script img", "crossorigin"); + addAttrs("iframe", "srcdoc sandbox seamless allowfullscreen"); + } + + // Special: iframe, ruby, video, audio, label + + // Delete children of the same name from it's parent + // For example: form can't have a child of the name form + each(split('a form meter progress dfn'), function(name) { + if (schema[name]) { + delete schema[name].children[name]; + } + }); + + // Delete header, footer, sectioning and heading content descendants + /*each('dt th address', function(name) { + delete schema[name].children[name]; + });*/ + + // Caption can't have tables + delete schema.caption.children.table; + + // TODO: LI:s can only have value if parent is OL + + // TODO: Handle transparent elements + // a ins del canvas map + + mapCache[type] = schema; + + return schema; + } + + /** + * Constructs a new Schema instance. + * + * @constructor + * @method Schema + * @param {Object} settings Name/value settings object. + */ + return function(settings) { + var self = this, elements = {}, children = {}, patternElements = [], validStyles, schemaItems; + var whiteSpaceElementsMap, selfClosingElementsMap, shortEndedElementsMap, boolAttrMap; + var blockElementsMap, nonEmptyElementsMap, textBlockElementsMap, customElementsMap = {}, specialElements = {}; + + // Creates an lookup table map object for the specified option or the default value + function createLookupTable(option, default_value, extendWith) { + var value = settings[option]; + + if (!value) { + // Get cached default map or make it if needed + value = mapCache[option]; + + if (!value) { + value = makeMap(default_value, ' ', makeMap(default_value.toUpperCase(), ' ')); + value = extend(value, extendWith); + + mapCache[option] = value; + } + } else { + // Create custom map + value = makeMap(value, ',', makeMap(value.toUpperCase(), ' ')); + } + + return value; + } + + settings = settings || {}; + schemaItems = compileSchema(settings.schema); + + // Allow all elements and attributes if verify_html is set to false + if (settings.verify_html === false) { + settings.valid_elements = '*[*]'; + } + + // Build styles list + if (settings.valid_styles) { + validStyles = {}; + + // Convert styles into a rule list + each(settings.valid_styles, function(value, key) { + validStyles[key] = explode(value); + }); + } + + // Setup map objects + whiteSpaceElementsMap = createLookupTable('whitespace_elements', 'pre script noscript style textarea video audio iframe object'); + selfClosingElementsMap = createLookupTable('self_closing_elements', 'colgroup dd dt li option p td tfoot th thead tr'); + shortEndedElementsMap = createLookupTable('short_ended_elements', 'area base basefont br col frame hr img input isindex link ' + + 'meta param embed source wbr track'); + boolAttrMap = createLookupTable('boolean_attributes', 'checked compact declare defer disabled ismap multiple nohref noresize ' + + 'noshade nowrap readonly selected autoplay loop controls'); + nonEmptyElementsMap = createLookupTable('non_empty_elements', 'td th iframe video audio object script', shortEndedElementsMap); + textBlockElementsMap = createLookupTable('text_block_elements', 'h1 h2 h3 h4 h5 h6 p div address pre form ' + + 'blockquote center dir fieldset header footer article section hgroup aside nav figure'); + blockElementsMap = createLookupTable('block_elements', 'hr table tbody thead tfoot ' + + 'th tr td li ol ul caption dl dt dd noscript menu isindex option ' + + 'datalist select optgroup', textBlockElementsMap); + + each((settings.special || 'script noscript style textarea').split(' '), function(name) { + specialElements[name] = new RegExp('<\/' + name + '[^>]*>','gi'); + }); + + // Converts a wildcard expression string to a regexp for example *a will become /.*a/. + function patternToRegExp(str) { + return new RegExp('^' + str.replace(/([?+*])/g, '.$1') + '$'); + } + + // Parses the specified valid_elements string and adds to the current rules + // This function is a bit hard to read since it's heavily optimized for speed + function addValidElements(valid_elements) { + var ei, el, ai, al, matches, element, attr, attrData, elementName, attrName, attrType, attributes, attributesOrder, + prefix, outputName, globalAttributes, globalAttributesOrder, key, value, + elementRuleRegExp = /^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/, + attrRuleRegExp = /^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/, + hasPatternsRegExp = /[*?+]/; + + if (valid_elements) { + // Split valid elements into an array with rules + valid_elements = split(valid_elements, ','); + + if (elements['@']) { + globalAttributes = elements['@'].attributes; + globalAttributesOrder = elements['@'].attributesOrder; + } + + // Loop all rules + for (ei = 0, el = valid_elements.length; ei < el; ei++) { + // Parse element rule + matches = elementRuleRegExp.exec(valid_elements[ei]); + if (matches) { + // Setup local names for matches + prefix = matches[1]; + elementName = matches[2]; + outputName = matches[3]; + attrData = matches[5]; + + // Create new attributes and attributesOrder + attributes = {}; + attributesOrder = []; + + // Create the new element + element = { + attributes: attributes, + attributesOrder: attributesOrder + }; + + // Padd empty elements prefix + if (prefix === '#') { + element.paddEmpty = true; + } + + // Remove empty elements prefix + if (prefix === '-') { + element.removeEmpty = true; + } + + if (matches[4] === '!') { + element.removeEmptyAttrs = true; + } + + // Copy attributes from global rule into current rule + if (globalAttributes) { + for (key in globalAttributes) { + attributes[key] = globalAttributes[key]; + } + + attributesOrder.push.apply(attributesOrder, globalAttributesOrder); + } + + // Attributes defined + if (attrData) { + attrData = split(attrData, '|'); + for (ai = 0, al = attrData.length; ai < al; ai++) { + matches = attrRuleRegExp.exec(attrData[ai]); + if (matches) { + attr = {}; + attrType = matches[1]; + attrName = matches[2].replace(/::/g, ':'); + prefix = matches[3]; + value = matches[4]; + + // Required + if (attrType === '!') { + element.attributesRequired = element.attributesRequired || []; + element.attributesRequired.push(attrName); + attr.required = true; + } + + // Denied from global + if (attrType === '-') { + delete attributes[attrName]; + attributesOrder.splice(inArray(attributesOrder, attrName), 1); + continue; + } + + // Default value + if (prefix) { + // Default value + if (prefix === '=') { + element.attributesDefault = element.attributesDefault || []; + element.attributesDefault.push({name: attrName, value: value}); + attr.defaultValue = value; + } + + // Forced value + if (prefix === ':') { + element.attributesForced = element.attributesForced || []; + element.attributesForced.push({name: attrName, value: value}); + attr.forcedValue = value; + } + + // Required values + if (prefix === '<') { + attr.validValues = makeMap(value, '?'); + } + } + + // Check for attribute patterns + if (hasPatternsRegExp.test(attrName)) { + element.attributePatterns = element.attributePatterns || []; + attr.pattern = patternToRegExp(attrName); + element.attributePatterns.push(attr); + } else { + // Add attribute to order list if it doesn't already exist + if (!attributes[attrName]) { + attributesOrder.push(attrName); + } + + attributes[attrName] = attr; + } + } + } + } + + // Global rule, store away these for later usage + if (!globalAttributes && elementName == '@') { + globalAttributes = attributes; + globalAttributesOrder = attributesOrder; + } + + // Handle substitute elements such as b/strong + if (outputName) { + element.outputName = elementName; + elements[outputName] = element; + } + + // Add pattern or exact element + if (hasPatternsRegExp.test(elementName)) { + element.pattern = patternToRegExp(elementName); + patternElements.push(element); + } else { + elements[elementName] = element; + } + } + } + } + } + + function setValidElements(valid_elements) { + elements = {}; + patternElements = []; + + addValidElements(valid_elements); + + each(schemaItems, function(element, name) { + children[name] = element.children; + }); + } + + // Adds custom non HTML elements to the schema + function addCustomElements(custom_elements) { + var customElementRegExp = /^(~)?(.+)$/; + + if (custom_elements) { + // Flush cached items since we are altering the default maps + mapCache.text_block_elements = mapCache.block_elements = null; + + each(split(custom_elements, ','), function(rule) { + var matches = customElementRegExp.exec(rule), + inline = matches[1] === '~', + cloneName = inline ? 'span' : 'div', + name = matches[2]; + + children[name] = children[cloneName]; + customElementsMap[name] = cloneName; + + // If it's not marked as inline then add it to valid block elements + if (!inline) { + blockElementsMap[name.toUpperCase()] = {}; + blockElementsMap[name] = {}; + } + + // Add elements clone if needed + if (!elements[name]) { + var customRule = elements[cloneName]; + + customRule = extend({}, customRule); + delete customRule.removeEmptyAttrs; + delete customRule.removeEmpty; + + elements[name] = customRule; + } + + // Add custom elements at span/div positions + each(children, function(element, elmName) { + if (element[cloneName]) { + children[elmName] = element = extend({}, children[elmName]); + element[name] = element[cloneName]; + } + }); + }); + } + } + + // Adds valid children to the schema object + function addValidChildren(valid_children) { + var childRuleRegExp = /^([+\-]?)(\w+)\[([^\]]+)\]$/; + + if (valid_children) { + each(split(valid_children, ','), function(rule) { + var matches = childRuleRegExp.exec(rule), parent, prefix; + + if (matches) { + prefix = matches[1]; + + // Add/remove items from default + if (prefix) { + parent = children[matches[2]]; + } else { + parent = children[matches[2]] = {'#comment': {}}; + } + + parent = children[matches[2]]; + + each(split(matches[3], '|'), function(child) { + if (prefix === '-') { + // Clone the element before we delete + // things in it to not mess up default schemas + children[matches[2]] = parent = extend({}, children[matches[2]]); + + delete parent[child]; + } else { + parent[child] = {}; + } + }); + } + }); + } + } + + function getElementRule(name) { + var element = elements[name], i; + + // Exact match found + if (element) { + return element; + } + + // No exact match then try the patterns + i = patternElements.length; + while (i--) { + element = patternElements[i]; + + if (element.pattern.test(name)) { + return element; + } + } + } + + if (!settings.valid_elements) { + // No valid elements defined then clone the elements from the schema spec + each(schemaItems, function(element, name) { + elements[name] = { + attributes: element.attributes, + attributesOrder: element.attributesOrder + }; + + children[name] = element.children; + }); + + // Switch these on HTML4 + if (settings.schema != "html5") { + each(split('strong/b em/i'), function(item) { + item = split(item, '/'); + elements[item[1]].outputName = item[0]; + }); + } + + // Add default alt attribute for images + elements.img.attributesDefault = [{name: 'alt', value: ''}]; + + // Remove these if they are empty by default + each(split('ol ul sub sup blockquote span font a table tbody tr strong em b i'), function(name) { + if (elements[name]) { + elements[name].removeEmpty = true; + } + }); + + // Padd these by default + each(split('p h1 h2 h3 h4 h5 h6 th td pre div address caption'), function(name) { + elements[name].paddEmpty = true; + }); + + // Remove these if they have no attributes + each(split('span'), function(name) { + elements[name].removeEmptyAttrs = true; + }); + + // Remove these by default + // TODO: Reenable in 4.1 + /*each(split('script style'), function(name) { + delete elements[name]; + });*/ + } else { + setValidElements(settings.valid_elements); + } + + addCustomElements(settings.custom_elements); + addValidChildren(settings.valid_children); + addValidElements(settings.extended_valid_elements); + + // Todo: Remove this when we fix list handling to be valid + addValidChildren('+ol[ul|ol],+ul[ul|ol]'); + + // Delete invalid elements + if (settings.invalid_elements) { + each(explode(settings.invalid_elements), function(item) { + if (elements[item]) { + delete elements[item]; + } + }); + } + + // If the user didn't allow span only allow internal spans + if (!getElementRule('span')) { + addValidElements('span[!data-mce-type|*]'); + } + + /** + * Name/value map object with valid parents and children to those parents. + * + * @example + * children = { + * div:{p:{}, h1:{}} + * }; + * @field children + * @type Object + */ + self.children = children; + + /** + * Name/value map object with valid styles for each element. + * + * @field styles + * @type Object + */ + self.styles = validStyles; + + /** + * Returns a map with boolean attributes. + * + * @method getBoolAttrs + * @return {Object} Name/value lookup map for boolean attributes. + */ + self.getBoolAttrs = function() { + return boolAttrMap; + }; + + /** + * Returns a map with block elements. + * + * @method getBlockElements + * @return {Object} Name/value lookup map for block elements. + */ + self.getBlockElements = function() { + return blockElementsMap; + }; + + /** + * Returns a map with text block elements. Such as: p,h1-h6,div,address + * + * @method getTextBlockElements + * @return {Object} Name/value lookup map for block elements. + */ + self.getTextBlockElements = function() { + return textBlockElementsMap; + }; + + /** + * Returns a map with short ended elements such as BR or IMG. + * + * @method getShortEndedElements + * @return {Object} Name/value lookup map for short ended elements. + */ + self.getShortEndedElements = function() { + return shortEndedElementsMap; + }; + + /** + * Returns a map with self closing tags such as <li>. + * + * @method getSelfClosingElements + * @return {Object} Name/value lookup map for self closing tags elements. + */ + self.getSelfClosingElements = function() { + return selfClosingElementsMap; + }; + + /** + * Returns a map with elements that should be treated as contents regardless if it has text + * content in them or not such as TD, VIDEO or IMG. + * + * @method getNonEmptyElements + * @return {Object} Name/value lookup map for non empty elements. + */ + self.getNonEmptyElements = function() { + return nonEmptyElementsMap; + }; + + /** + * Returns a map with elements where white space is to be preserved like PRE or SCRIPT. + * + * @method getWhiteSpaceElements + * @return {Object} Name/value lookup map for white space elements. + */ + self.getWhiteSpaceElements = function() { + return whiteSpaceElementsMap; + }; + + /** + * Returns a map with special elements. These are elements that needs to be parsed + * in a special way such as script, style, textarea etc. The map object values + * are regexps used to find the end of the element. + * + * @method getSpecialElements + * @return {Object} Name/value lookup map for special elements. + */ + self.getSpecialElements = function() { + return specialElements; + }; + + /** + * Returns true/false if the specified element and it's child is valid or not + * according to the schema. + * + * @method isValidChild + * @param {String} name Element name to check for. + * @param {String} child Element child to verify. + * @return {Boolean} True/false if the element is a valid child of the specified parent. + */ + self.isValidChild = function(name, child) { + var parent = children[name]; + + return !!(parent && parent[child]); + }; + + /** + * Returns true/false if the specified element name and optional attribute is + * valid according to the schema. + * + * @method isValid + * @param {String} name Name of element to check. + * @param {String} attr Optional attribute name to check for. + * @return {Boolean} True/false if the element and attribute is valid. + */ + self.isValid = function(name, attr) { + var attrPatterns, i, rule = getElementRule(name); + + // Check if it's a valid element + if (rule) { + if (attr) { + // Check if attribute name exists + if (rule.attributes[attr]) { + return true; + } + + // Check if attribute matches a regexp pattern + attrPatterns = rule.attributePatterns; + if (attrPatterns) { + i = attrPatterns.length; + while (i--) { + if (attrPatterns[i].pattern.test(name)) { + return true; + } + } + } + } else { + return true; + } + } + + // No match + return false; + }; + + /** + * Returns true/false if the specified element is valid or not + * according to the schema. + * + * @method getElementRule + * @param {String} name Element name to check for. + * @return {Object} Element object or undefined if the element isn't valid. + */ + self.getElementRule = getElementRule; + + /** + * Returns an map object of all custom elements. + * + * @method getCustomElements + * @return {Object} Name/value map object of all custom elements. + */ + self.getCustomElements = function() { + return customElementsMap; + }; + + /** + * Parses a valid elements string and adds it to the schema. The valid elements + * format is for example "element[attr=default|otherattr]". + * Existing rules will be replaced with the ones specified, so this extends the schema. + * + * @method addValidElements + * @param {String} valid_elements String in the valid elements format to be parsed. + */ + self.addValidElements = addValidElements; + + /** + * Parses a valid elements string and sets it to the schema. The valid elements + * format is for example "element[attr=default|otherattr]". + * Existing rules will be replaced with the ones specified, so this extends the schema. + * + * @method setValidElements + * @param {String} valid_elements String in the valid elements format to be parsed. + */ + self.setValidElements = setValidElements; + + /** + * Adds custom non HTML elements to the schema. + * + * @method addCustomElements + * @param {String} custom_elements Comma separated list of custom elements to add. + */ + self.addCustomElements = addCustomElements; + + /** + * Parses a valid children string and adds them to the schema structure. The valid children + * format is for example: "element[child1|child2]". + * + * @method addValidChildren + * @param {String} valid_children Valid children elements string to parse + */ + self.addValidChildren = addValidChildren; + + self.elements = elements; + }; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/html/Serializer.js b/common/static/js/vendor/tinymce/js/tinymce/classes/html/Serializer.js new file mode 100755 index 00000000000..041272af760 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/html/Serializer.js @@ -0,0 +1,156 @@ +/** + * Serializer.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class is used to serialize down the DOM tree into a string using a Writer instance. + * + * + * @example + * new tinymce.html.Serializer().serialize(new tinymce.html.DomParser().parse('<p>text</p>')); + * @class tinymce.html.Serializer + * @version 3.4 + */ +define("tinymce/html/Serializer", [ + "tinymce/html/Writer", + "tinymce/html/Schema" +], function(Writer, Schema) { + /** + * Constructs a new Serializer instance. + * + * @constructor + * @method Serializer + * @param {Object} settings Name/value settings object. + * @param {tinymce.html.Schema} schema Schema instance to use. + */ + return function(settings, schema) { + var self = this, writer = new Writer(settings); + + settings = settings || {}; + settings.validate = "validate" in settings ? settings.validate : true; + + self.schema = schema = schema || new Schema(); + self.writer = writer; + + /** + * Serializes the specified node into a string. + * + * @example + * new tinymce.html.Serializer().serialize(new tinymce.html.DomParser().parse('<p>text</p>')); + * @method serialize + * @param {tinymce.html.Node} node Node instance to serialize. + * @return {String} String with HTML based on DOM tree. + */ + self.serialize = function(node) { + var handlers, validate; + + validate = settings.validate; + + handlers = { + // #text + 3: function(node) { + writer.text(node.value, node.raw); + }, + + // #comment + 8: function(node) { + writer.comment(node.value); + }, + + // Processing instruction + 7: function(node) { + writer.pi(node.name, node.value); + }, + + // Doctype + 10: function(node) { + writer.doctype(node.value); + }, + + // CDATA + 4: function(node) { + writer.cdata(node.value); + }, + + // Document fragment + 11: function(node) { + if ((node = node.firstChild)) { + do { + walk(node); + } while ((node = node.next)); + } + } + }; + + writer.reset(); + + function walk(node) { + var handler = handlers[node.type], name, isEmpty, attrs, attrName, attrValue, sortedAttrs, i, l, elementRule; + + if (!handler) { + name = node.name; + isEmpty = node.shortEnded; + attrs = node.attributes; + + // Sort attributes + if (validate && attrs && attrs.length > 1) { + sortedAttrs = []; + sortedAttrs.map = {}; + + elementRule = schema.getElementRule(node.name); + for (i = 0, l = elementRule.attributesOrder.length; i < l; i++) { + attrName = elementRule.attributesOrder[i]; + + if (attrName in attrs.map) { + attrValue = attrs.map[attrName]; + sortedAttrs.map[attrName] = attrValue; + sortedAttrs.push({name: attrName, value: attrValue}); + } + } + + for (i = 0, l = attrs.length; i < l; i++) { + attrName = attrs[i].name; + + if (!(attrName in sortedAttrs.map)) { + attrValue = attrs.map[attrName]; + sortedAttrs.map[attrName] = attrValue; + sortedAttrs.push({name: attrName, value: attrValue}); + } + } + + attrs = sortedAttrs; + } + + writer.start(node.name, attrs, isEmpty); + + if (!isEmpty) { + if ((node = node.firstChild)) { + do { + walk(node); + } while ((node = node.next)); + } + + writer.end(name); + } + } else { + handler(node); + } + } + + // Serialize element and treat all non elements as fragments + if (node.type == 1 && !settings.inner) { + walk(node); + } else { + handlers[11](node); + } + + return writer.getContent(); + }; + }; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/html/Styles.js b/common/static/js/vendor/tinymce/js/tinymce/classes/html/Styles.js new file mode 100755 index 00000000000..51b6f4621c3 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/html/Styles.js @@ -0,0 +1,324 @@ +/** + * Styles.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class is used to parse CSS styles it also compresses styles to reduce the output size. + * + * @example + * var Styles = new tinymce.html.Styles({ + * url_converter: function(url) { + * return url; + * } + * }); + * + * styles = Styles.parse('border: 1px solid red'); + * styles.color = 'red'; + * + * console.log(new tinymce.html.StyleSerializer().serialize(styles)); + * + * @class tinymce.html.Styles + * @version 3.4 + */ +define("tinymce/html/Styles", [], function() { + return function(settings, schema) { + /*jshint maxlen:255 */ + /*eslint max-len:0 */ + var rgbRegExp = /rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi, + urlOrStrRegExp = /(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi, + styleRegExp = /\s*([^:]+):\s*([^;]+);?/g, + trimRightRegExp = /\s+$/, + undef, i, encodingLookup = {}, encodingItems, invisibleChar = '\uFEFF'; + + settings = settings || {}; + + encodingItems = ('\\" \\\' \\; \\: ; : ' + invisibleChar).split(' '); + for (i = 0; i < encodingItems.length; i++) { + encodingLookup[encodingItems[i]] = invisibleChar + i; + encodingLookup[invisibleChar + i] = encodingItems[i]; + } + + function toHex(match, r, g, b) { + function hex(val) { + val = parseInt(val, 10).toString(16); + + return val.length > 1 ? val : '0' + val; // 0 -> 00 + } + + return '#' + hex(r) + hex(g) + hex(b); + } + + return { + /** + * Parses the specified RGB color value and returns a hex version of that color. + * + * @method toHex + * @param {String} color RGB string value like rgb(1,2,3) + * @return {String} Hex version of that RGB value like #FF00FF. + */ + toHex: function(color) { + return color.replace(rgbRegExp, toHex); + }, + + /** + * Parses the specified style value into an object collection. This parser will also + * merge and remove any redundant items that browsers might have added. It will also convert non hex + * colors to hex values. Urls inside the styles will also be converted to absolute/relative based on settings. + * + * @method parse + * @param {String} css Style value to parse for example: border:1px solid red;. + * @return {Object} Object representation of that style like {border: '1px solid red'} + */ + parse: function(css) { + var styles = {}, matches, name, value, isEncoded, urlConverter = settings.url_converter; + var urlConverterScope = settings.url_converter_scope || this; + + function compress(prefix, suffix, noJoin) { + var top, right, bottom, left; + + top = styles[prefix + '-top' + suffix]; + if (!top) { + return; + } + + right = styles[prefix + '-right' + suffix]; + if (!right) { + return; + } + + bottom = styles[prefix + '-bottom' + suffix]; + if (!bottom) { + return; + } + + left = styles[prefix + '-left' + suffix]; + if (!left) { + return; + } + + var box = [top, right, bottom, left]; + i = box.length - 1; + while (i--) { + if (box[i] !== box[i + 1]) { + break; + } + } + + if (i > -1 && noJoin) { + return; + } + + styles[prefix + suffix] = i == -1 ? box[0] : box.join(' '); + delete styles[prefix + '-top' + suffix]; + delete styles[prefix + '-right' + suffix]; + delete styles[prefix + '-bottom' + suffix]; + delete styles[prefix + '-left' + suffix]; + } + + /** + * Checks if the specific style can be compressed in other words if all border-width are equal. + */ + function canCompress(key) { + var value = styles[key], i; + + if (!value) { + return; + } + + value = value.split(' '); + i = value.length; + while (i--) { + if (value[i] !== value[0]) { + return false; + } + } + + styles[key] = value[0]; + + return true; + } + + /** + * Compresses multiple styles into one style. + */ + function compress2(target, a, b, c) { + if (!canCompress(a)) { + return; + } + + if (!canCompress(b)) { + return; + } + + if (!canCompress(c)) { + return; + } + + // Compress + styles[target] = styles[a] + ' ' + styles[b] + ' ' + styles[c]; + delete styles[a]; + delete styles[b]; + delete styles[c]; + } + + // Encodes the specified string by replacing all \" \' ; : with _<num> + function encode(str) { + isEncoded = true; + + return encodingLookup[str]; + } + + // Decodes the specified string by replacing all _<num> with it's original value \" \' etc + // It will also decode the \" \' if keep_slashes is set to fale or omitted + function decode(str, keep_slashes) { + if (isEncoded) { + str = str.replace(/\uFEFF[0-9]/g, function(str) { + return encodingLookup[str]; + }); + } + + if (!keep_slashes) { + str = str.replace(/\\([\'\";:])/g, "$1"); + } + + return str; + } + + function processUrl(match, url, url2, url3, str, str2) { + str = str || str2; + + if (str) { + str = decode(str); + + // Force strings into single quote format + return "'" + str.replace(/\'/g, "\\'") + "'"; + } + + url = decode(url || url2 || url3); + + if (!settings.allow_script_urls && /(java|vb)script:/i.test(url.replace(/[\s\r\n]+/, ''))) { + return ""; + } + + // Convert the URL to relative/absolute depending on config + if (urlConverter) { + url = urlConverter.call(urlConverterScope, url, 'style'); + } + + // Output new URL format + return "url('" + url.replace(/\'/g, "\\'") + "')"; + } + + if (css) { + css = css.replace(/[\u0000-\u001F]/g, ''); + + // Encode \" \' % and ; and : inside strings so they don't interfere with the style parsing + css = css.replace(/\\[\"\';:\uFEFF]/g, encode).replace(/\"[^\"]+\"|\'[^\']+\'/g, function(str) { + return str.replace(/[;:]/g, encode); + }); + + // Parse styles + while ((matches = styleRegExp.exec(css))) { + name = matches[1].replace(trimRightRegExp, '').toLowerCase(); + value = matches[2].replace(trimRightRegExp, ''); + + if (name && value.length > 0) { + if (!settings.allow_script_urls && (name == "behavior" || /expression\s*\(/.test(value))) { + continue; + } + + // Opera will produce 700 instead of bold in their style values + if (name === 'font-weight' && value === '700') { + value = 'bold'; + } else if (name === 'color' || name === 'background-color') { // Lowercase colors like RED + value = value.toLowerCase(); + } + + // Convert RGB colors to HEX + value = value.replace(rgbRegExp, toHex); + + // Convert URLs and force them into url('value') format + value = value.replace(urlOrStrRegExp, processUrl); + styles[name] = isEncoded ? decode(value, true) : value; + } + + styleRegExp.lastIndex = matches.index + matches[0].length; + } + // Compress the styles to reduce it's size for example IE will expand styles + compress("border", "", true); + compress("border", "-width"); + compress("border", "-color"); + compress("border", "-style"); + compress("padding", ""); + compress("margin", ""); + compress2('border', 'border-width', 'border-style', 'border-color'); + + // Remove pointless border, IE produces these + if (styles.border === 'medium none') { + delete styles.border; + } + + // IE 11 will produce a border-image: none when getting the style attribute from <p style="border: 1px solid red"></p> + // So lets asume it shouldn't be there + if (styles['border-image'] === 'none') { + delete styles['border-image']; + } + } + + return styles; + }, + + /** + * Serializes the specified style object into a string. + * + * @method serialize + * @param {Object} styles Object to serialize as string for example: {border: '1px solid red'} + * @param {String} element_name Optional element name, if specified only the styles that matches the schema will be serialized. + * @return {String} String representation of the style object for example: border: 1px solid red. + */ + serialize: function(styles, element_name) { + var css = '', name, value; + + function serializeStyles(name) { + var styleList, i, l, value; + + styleList = schema.styles[name]; + if (styleList) { + for (i = 0, l = styleList.length; i < l; i++) { + name = styleList[i]; + value = styles[name]; + + if (value !== undef && value.length > 0) { + css += (css.length > 0 ? ' ' : '') + name + ': ' + value + ';'; + } + } + } + } + + // Serialize styles according to schema + if (element_name && schema && schema.styles) { + // Serialize global styles and element specific styles + serializeStyles('*'); + serializeStyles(element_name); + } else { + // Output the styles in the order they are inside the object + for (name in styles) { + value = styles[name]; + + if (value !== undef && value.length > 0) { + css += (css.length > 0 ? ' ' : '') + name + ': ' + value + ';'; + } + } + } + + return css; + } + }; + }; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/html/Writer.js b/common/static/js/vendor/tinymce/js/tinymce/classes/html/Writer.js new file mode 100755 index 00000000000..0f9eaaef4bd --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/html/Writer.js @@ -0,0 +1,199 @@ +/** + * Writer.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class is used to write HTML tags out it can be used with the Serializer or the SaxParser. + * + * @class tinymce.html.Writer + * @example + * var writer = new tinymce.html.Writer({indent: true}); + * var parser = new tinymce.html.SaxParser(writer).parse('<p><br></p>'); + * console.log(writer.getContent()); + * + * @class tinymce.html.Writer + * @version 3.4 + */ +define("tinymce/html/Writer", [ + "tinymce/html/Entities", + "tinymce/util/Tools" +], function(Entities, Tools) { + var makeMap = Tools.makeMap; + + /** + * Constructs a new Writer instance. + * + * @constructor + * @method Writer + * @param {Object} settings Name/value settings object. + */ + return function(settings) { + var html = [], indent, indentBefore, indentAfter, encode, htmlOutput; + + settings = settings || {}; + indent = settings.indent; + indentBefore = makeMap(settings.indent_before || ''); + indentAfter = makeMap(settings.indent_after || ''); + encode = Entities.getEncodeFunc(settings.entity_encoding || 'raw', settings.entities); + htmlOutput = settings.element_format == "html"; + + return { + /** + * Writes the a start element such as <p id="a">. + * + * @method start + * @param {String} name Name of the element. + * @param {Array} attrs Optional attribute array or undefined if it hasn't any. + * @param {Boolean} empty Optional empty state if the tag should end like <br />. + */ + start: function(name, attrs, empty) { + var i, l, attr, value; + + if (indent && indentBefore[name] && html.length > 0) { + value = html[html.length - 1]; + + if (value.length > 0 && value !== '\n') { + html.push('\n'); + } + } + + html.push('<', name); + + if (attrs) { + for (i = 0, l = attrs.length; i < l; i++) { + attr = attrs[i]; + html.push(' ', attr.name, '="', encode(attr.value, true), '"'); + } + } + + if (!empty || htmlOutput) { + html[html.length] = '>'; + } else { + html[html.length] = ' />'; + } + + if (empty && indent && indentAfter[name] && html.length > 0) { + value = html[html.length - 1]; + + if (value.length > 0 && value !== '\n') { + html.push('\n'); + } + } + }, + + /** + * Writes the a end element such as </p>. + * + * @method end + * @param {String} name Name of the element. + */ + end: function(name) { + var value; + + /*if (indent && indentBefore[name] && html.length > 0) { + value = html[html.length - 1]; + + if (value.length > 0 && value !== '\n') + html.push('\n'); + }*/ + + html.push('</', name, '>'); + + if (indent && indentAfter[name] && html.length > 0) { + value = html[html.length - 1]; + + if (value.length > 0 && value !== '\n') { + html.push('\n'); + } + } + }, + + /** + * Writes a text node. + * + * @method text + * @param {String} text String to write out. + * @param {Boolean} raw Optional raw state if true the contents wont get encoded. + */ + text: function(text, raw) { + if (text.length > 0) { + html[html.length] = raw ? text : encode(text); + } + }, + + /** + * Writes a cdata node such as <![CDATA[data]]>. + * + * @method cdata + * @param {String} text String to write out inside the cdata. + */ + cdata: function(text) { + html.push('<![CDATA[', text, ']]>'); + }, + + /** + * Writes a comment node such as <!-- Comment -->. + * + * @method cdata + * @param {String} text String to write out inside the comment. + */ + comment: function(text) { + html.push('<!--', text, '-->'); + }, + + /** + * Writes a PI node such as <?xml attr="value" ?>. + * + * @method pi + * @param {String} name Name of the pi. + * @param {String} text String to write out inside the pi. + */ + pi: function(name, text) { + if (text) { + html.push('<?', name, ' ', text, '?>'); + } else { + html.push('<?', name, '?>'); + } + + if (indent) { + html.push('\n'); + } + }, + + /** + * Writes a doctype node such as <!DOCTYPE data>. + * + * @method doctype + * @param {String} text String to write out inside the doctype. + */ + doctype: function(text) { + html.push('<!DOCTYPE', text, '>', indent ? '\n' : ''); + }, + + /** + * Resets the internal buffer if one wants to reuse the writer. + * + * @method reset + */ + reset: function() { + html.length = 0; + }, + + /** + * Returns the contents that got serialized. + * + * @method getContent + * @return {String} HTML contents that got written down. + */ + getContent: function() { + return html.join('').replace(/\n$/, ''); + } + }; + }; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/jquery.tinymce.js b/common/static/js/vendor/tinymce/js/tinymce/classes/jquery.tinymce.js new file mode 100755 index 00000000000..495e88a8265 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/jquery.tinymce.js @@ -0,0 +1,364 @@ +/** + * jquery.tinymce.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*global tinymce:true, jQuery */ + +(function($) { + var undef, + lazyLoading, + delayedInits = [], + win = window; + + $.fn.tinymce = function(settings) { + var self = this, url, base, lang, suffix = "", patchApplied; + + // No match then just ignore the call + if (!self.length) { + return self; + } + + // Get editor instance + if (!settings) { + return window.tinymce ? tinymce.get(self[0].id) : null; + } + + self.css('visibility', 'hidden'); // Hide textarea to avoid flicker + + function init() { + var editors = [], initCount = 0; + + // Apply patches to the jQuery object, only once + if (!patchApplied) { + applyPatch(); + patchApplied = true; + } + + // Create an editor instance for each matched node + self.each(function(i, node) { + var ed, id = node.id, oninit = settings.oninit; + + // Generate unique id for target element if needed + if (!id) { + node.id = id = tinymce.DOM.uniqueId(); + } + + // Only init the editor once + if (tinymce.get(id)) { + return; + } + + // Create editor instance and render it + ed = new tinymce.Editor(id, settings, tinymce.EditorManager); + editors.push(ed); + + ed.on('init', function() { + var scope, func = oninit; + + self.css('visibility', ''); + + // Run this if the oninit setting is defined + // this logic will fire the oninit callback ones each + // matched editor instance is initialized + if (oninit) { + // Fire the oninit event ones each editor instance is initialized + if (++initCount == editors.length) { + if (typeof(func) === "string") { + scope = (func.indexOf(".") === -1) ? null : tinymce.resolve(func.replace(/\.\w+$/, "")); + func = tinymce.resolve(func); + } + + // Call the oninit function with the object + func.apply(scope || tinymce, editors); + } + } + }); + }); + + // Render the editor instances in a separate loop since we + // need to have the full editors array used in the onInit calls + $.each(editors, function(i, ed) { + ed.render(); + }); + } + + // Load TinyMCE on demand, if we need to + if (!win.tinymce && !lazyLoading && (url = settings.script_url)) { + lazyLoading = 1; + base = url.substring(0, url.lastIndexOf("/")); + + // Check if it's a dev/src version they want to load then + // make sure that all plugins, themes etc are loaded in source mode as well + if (url.indexOf('.min') != -1) { + suffix = ".min"; + } + + // Setup tinyMCEPreInit object this will later be used by the TinyMCE + // core script to locate other resources like CSS files, dialogs etc + // You can also predefined a tinyMCEPreInit object and then it will use that instead + win.tinymce = win.tinyMCEPreInit || { + base: base, + suffix: suffix + }; + + // url contains gzip then we assume it's a compressor + if (url.indexOf('gzip') != -1) { + lang = settings.language || "en"; + url = url + (/\?/.test(url) ? '&' : '?') + "js=true&core=true&suffix=" + escape(suffix) + + "&themes=" + escape(settings.theme || 'modern') + "&plugins=" + + escape(settings.plugins || '') + "&languages=" + (lang || ''); + + // Check if compressor script is already loaded otherwise setup a basic one + if (!win.tinyMCE_GZ) { + win.tinyMCE_GZ = { + start: function() { + function load(url) { + tinymce.ScriptLoader.markDone(tinymce.baseURI.toAbsolute(url)); + } + + // Add core languages + load("langs/" + lang + ".js"); + + // Add themes with languages + load("themes/" + settings.theme + "/theme" + suffix + ".js"); + load("themes/" + settings.theme + "/langs/" + lang + ".js"); + + // Add plugins with languages + $.each(settings.plugins.split(","), function(i, name) { + if (name) { + load("plugins/" + name + "/plugin" + suffix + ".js"); + load("plugins/" + name + "/langs/" + lang + ".js"); + } + }); + }, + + end: function() { + } + }; + } + } + + var script = document.createElement('script'); + script.type = 'text/javascript'; + script.onload = script.onreadystatechange = function(e) { + e = e || window.event; + + if (lazyLoading !== 2 && (e.type == 'load' || /complete|loaded/.test(script.readyState))) { + tinymce.dom.Event.domLoaded = 1; + lazyLoading = 2; + + // Execute callback after mainscript has been loaded and before the initialization occurs + if (settings.script_loaded) { + settings.script_loaded(); + } + + init(); + + $.each(delayedInits, function(i, init) { + init(); + }); + } + }; + script.src = url; + document.body.appendChild(script); + } else { + // Delay the init call until tinymce is loaded + if (lazyLoading === 1) { + delayedInits.push(init); + } else { + init(); + } + } + + return self; + }; + + // Add :tinymce psuedo selector this will select elements that has been converted into editor instances + // it's now possible to use things like $('*:tinymce') to get all TinyMCE bound elements. + $.extend($.expr[":"], { + tinymce: function(e) { + return !!(e.id && "tinymce" in window && tinymce.get(e.id)); + } + }); + + // This function patches internal jQuery functions so that if + // you for example remove an div element containing an editor it's + // automatically destroyed by the TinyMCE API + function applyPatch() { + // Removes any child editor instances by looking for editor wrapper elements + function removeEditors(name) { + // If the function is remove + if (name === "remove") { + this.each(function(i, node) { + var ed = tinyMCEInstance(node); + + if (ed) { + ed.remove(); + } + }); + } + + this.find("span.mceEditor,div.mceEditor").each(function(i, node) { + var ed = tinymce.get(node.id.replace(/_parent$/, "")); + + if (ed) { + ed.remove(); + } + }); + } + + // Loads or saves contents from/to textarea if the value + // argument is defined it will set the TinyMCE internal contents + function loadOrSave(value) { + var self = this, ed; + + // Handle set value + /*jshint eqnull:true */ + if (value != null) { + removeEditors.call(self); + + // Saves the contents before get/set value of textarea/div + self.each(function(i, node) { + var ed; + + if ((ed = tinymce.get(node.id))) { + ed.setContent(value); + } + }); + } else if (self.length > 0) { + // Handle get value + if ((ed = tinymce.get(self[0].id))) { + return ed.getContent(); + } + } + } + + // Returns tinymce instance for the specified element or null if it wasn't found + function tinyMCEInstance(element) { + var ed = null; + + if (element && element.id && win.tinymce) { + ed = tinymce.get(element.id); + } + + return ed; + } + + // Checks if the specified set contains tinymce instances + function containsTinyMCE(matchedSet) { + return !!((matchedSet) && (matchedSet.length) && (win.tinymce) && (matchedSet.is(":tinymce"))); + } + + // Patch various jQuery functions + var jQueryFn = {}; + + // Patch some setter/getter functions these will + // now be able to set/get the contents of editor instances for + // example $('#editorid').html('Content'); will update the TinyMCE iframe instance + $.each(["text", "html", "val"], function(i, name) { + var origFn = jQueryFn[name] = $.fn[name], + textProc = (name === "text"); + + $.fn[name] = function(value) { + var self = this; + + if (!containsTinyMCE(self)) { + return origFn.apply(self, arguments); + } + + if (value !== undef) { + loadOrSave.call(self.filter(":tinymce"), value); + origFn.apply(self.not(":tinymce"), arguments); + + return self; // return original set for chaining + } else { + var ret = ""; + var args = arguments; + + (textProc ? self : self.eq(0)).each(function(i, node) { + var ed = tinyMCEInstance(node); + + if (ed) { + ret += textProc ? ed.getContent().replace(/<(?:"[^"]*"|'[^']*'|[^'">])*>/g, "") : ed.getContent({save: true}); + } else { + ret += origFn.apply($(node), args); + } + }); + + return ret; + } + }; + }); + + // Makes it possible to use $('#id').append("content"); to append contents to the TinyMCE editor iframe + $.each(["append", "prepend"], function(i, name) { + var origFn = jQueryFn[name] = $.fn[name], + prepend = (name === "prepend"); + + $.fn[name] = function(value) { + var self = this; + + if (!containsTinyMCE(self)) { + return origFn.apply(self, arguments); + } + + if (value !== undef) { + self.filter(":tinymce").each(function(i, node) { + var ed = tinyMCEInstance(node); + + if (ed) { + ed.setContent(prepend ? value + ed.getContent() : ed.getContent() + value); + } + }); + + origFn.apply(self.not(":tinymce"), arguments); + + return self; // return original set for chaining + } + }; + }); + + // Makes sure that the editor instance gets properly destroyed when the parent element is removed + $.each(["remove", "replaceWith", "replaceAll", "empty"], function(i, name) { + var origFn = jQueryFn[name] = $.fn[name]; + + $.fn[name] = function() { + removeEditors.call(this, name); + + return origFn.apply(this, arguments); + }; + }); + + jQueryFn.attr = $.fn.attr; + + // Makes sure that $('#tinymce_id').attr('value') gets the editors current HTML contents + $.fn.attr = function(name, value) { + var self = this, args = arguments; + + if ((!name) || (name !== "value") || (!containsTinyMCE(self))) { + if (value !== undef) { + return jQueryFn.attr.apply(self, args); + } else { + return jQueryFn.attr.apply(self, args); + } + } + + if (value !== undef) { + loadOrSave.call(self.filter(":tinymce"), value); + jQueryFn.attr.apply(self.not(":tinymce"), args); + + return self; // return original set for chaining + } else { + var node = self[0], ed = tinyMCEInstance(node); + + return ed ? ed.getContent({save: true}) : jQueryFn.attr.apply($(node), args); + } + }; + } +})(jQuery); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/AbsoluteLayout.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/AbsoluteLayout.js new file mode 100755 index 00000000000..8d286a13e39 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/AbsoluteLayout.js @@ -0,0 +1,63 @@ +/** + * AbsoluteLayout.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * LayoutManager for absolute positioning. This layout manager is more of + * a base class for other layouts but can be created and used directly. + * + * @-x-less AbsoluteLayout.less + * @class tinymce.ui.AbsoluteLayout + * @extends tinymce.ui.Layout + */ +define("tinymce/ui/AbsoluteLayout", [ + "tinymce/ui/Layout" +], function(Layout) { + "use strict"; + + return Layout.extend({ + Defaults: { + containerClass: 'abs-layout', + controlClass: 'abs-layout-item' + }, + + /** + * Recalculates the positions of the controls in the specified container. + * + * @method recalc + * @param {tinymce.ui.Container} container Container instance to recalc. + */ + recalc: function(container) { + container.items().filter(':visible').each(function(ctrl) { + var settings = ctrl.settings; + + ctrl.layoutRect({ + x: settings.x, + y: settings.y, + w: settings.w, + h: settings.h + }); + + if (ctrl.recalc) { + ctrl.recalc(); + } + }); + }, + + /** + * Renders the specified container and any layout specific HTML. + * + * @method renderHtml + * @param {tinymce.ui.Container} container Container to render HTML for. + */ + renderHtml: function(container) { + return '<div id="' + container._id + '-absend" class="' + container.classPrefix + 'abs-end"></div>' + this._super(container); + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Button.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Button.js new file mode 100755 index 00000000000..c2ecf347b81 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Button.js @@ -0,0 +1,141 @@ +/** + * Button.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class is used to create buttons. You can create them directly or through the Factory. + * + * @example + * // Create and render a button to the body element + * tinymce.ui.Factory.create({ + * type: 'button', + * text: 'My button' + * }).renderTo(document.body); + * + * @-x-less Button.less + * @class tinymce.ui.Button + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/Button", [ + "tinymce/ui/Widget" +], function(Widget) { + "use strict"; + + return Widget.extend({ + Defaults: { + classes: "widget btn", + role: "button" + }, + + /** + * Constructs a new button instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {String} size Size of the button small|medium|large. + * @setting {String} image Image to use for icon. + * @setting {String} icon Icon to use for button. + */ + init: function(settings) { + var self = this, size; + + self.on('click mousedown', function(e) { + e.preventDefault(); + }); + + self._super(settings); + size = settings.size; + + if (settings.subtype) { + self.addClass(settings.subtype); + } + + if (size) { + self.addClass('btn-' + size); + } + }, + + /** + * Sets/gets the current button icon. + * + * @method icon + * @param {String} [icon] New icon identifier. + * @return {String|tinymce.ui.MenuButton} Current icon or current MenuButton instance. + */ + icon: function(icon) { + var self = this, prefix = self.classPrefix; + + if (typeof(icon) == 'undefined') { + return self.settings.icon; + } + + self.settings.icon = icon; + icon = icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : ''; + + if (self._rendered) { + var btnElm = self.getEl().firstChild, iconElm = btnElm.getElementsByTagName('i')[0]; + + if (icon) { + if (!iconElm || iconElm != btnElm.firstChild) { + iconElm = document.createElement('i'); + btnElm.insertBefore(iconElm, btnElm.firstChild); + } + + iconElm.className = icon; + } else if (iconElm) { + btnElm.removeChild(iconElm); + } + + self.text(self._text); // Set text again to fix whitespace between icon + text + } + + return self; + }, + + /** + * Repaints the button for example after it's been resizes by a layout engine. + * + * @method repaint + */ + repaint: function() { + var btnStyle = this.getEl().firstChild.style; + + btnStyle.width = btnStyle.height = "100%"; + + this._super(); + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, id = self._id, prefix = self.classPrefix; + var icon = self.settings.icon, image = ''; + + if (self.settings.image) { + icon = 'none'; + image = ' style="background-image: url(\'' + self.settings.image + '\')"'; + } + + icon = self.settings.icon ? prefix + 'ico ' + prefix + 'i-' + icon : ''; + + return ( + '<div id="' + id + '" class="' + self.classes() + '" tabindex="-1" aria-labelledby="' + id + '">' + + '<button role="presentation" type="button" tabindex="-1">' + + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + + (self._text ? (icon ? '\u00a0' : '') + self.encode(self._text) : '') + + '</button>' + + '</div>' + ); + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/ButtonGroup.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/ButtonGroup.js new file mode 100755 index 00000000000..f58fe6ce56e --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/ButtonGroup.js @@ -0,0 +1,62 @@ +/** + * ButtonGroup.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This control enables you to put multiple buttons into a group. This is + * useful when you want to combine similar toolbar buttons into a group. + * + * @example + * // Create and render a buttongroup with two buttons to the body element + * tinymce.ui.Factory.create({ + * type: 'buttongroup', + * items: [ + * {text: 'Button A'}, + * {text: 'Button B'} + * ] + * }).renderTo(document.body); + * + * @-x-less ButtonGroup.less + * @class tinymce.ui.ButtonGroup + * @extends tinymce.ui.Container + */ +define("tinymce/ui/ButtonGroup", [ + "tinymce/ui/Container" +], function(Container) { + "use strict"; + + return Container.extend({ + Defaults: { + defaultType: 'button', + role: 'group' + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, layout = self._layout; + + self.addClass('btn-group'); + self.preRender(); + layout.preRender(self); + + return ( + '<div id="' + self._id + '" class="' + self.classes() + '">' + + '<div id="' + self._id + '-body">' + + (self.settings.html || '') + layout.renderHtml(self) + + '</div>' + + '</div>' + ); + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Checkbox.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Checkbox.js new file mode 100755 index 00000000000..1bbdf1f1b64 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Checkbox.js @@ -0,0 +1,119 @@ +/** + * Checkbox.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This control creates a custom checkbox. + * + * @example + * // Create and render a checkbox to the body element + * tinymce.ui.Factory.create({ + * type: 'checkbox', + * checked: true, + * text: 'My checkbox' + * }).renderTo(document.body); + * + * @-x-less Checkbox.less + * @class tinymce.ui.Checkbox + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/Checkbox", [ + "tinymce/ui/Widget" +], function(Widget) { + "use strict"; + + return Widget.extend({ + Defaults: { + classes: "checkbox", + role: "checkbox", + checked: false + }, + + /** + * Constructs a new Checkbox instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {Boolean} checked True if the checkbox should be checked by default. + */ + init: function(settings) { + var self = this; + + self._super(settings); + + self.on('click mousedown', function(e) { + e.preventDefault(); + }); + + self.on('click', function(e) { + e.preventDefault(); + + if (!self.disabled()) { + self.checked(!self.checked()); + } + }); + + self.checked(self.settings.checked); + }, + + /** + * Getter/setter function for the checked state. + * + * @method checked + * @param {Boolean} [state] State to be set. + * @return {Boolean|tinymce.ui.Checkbox} True/false or checkbox if it's a set operation. + */ + checked: function(state) { + var self = this; + + if (typeof state != "undefined") { + if (state) { + self.addClass('checked'); + } else { + self.removeClass('checked'); + } + + self._checked = state; + self.aria('checked', state); + + return self; + } + + return self._checked; + }, + + /** + * Getter/setter function for the value state. + * + * @method value + * @param {Boolean} [state] State to be set. + * @return {Boolean|tinymce.ui.Checkbox} True/false or checkbox if it's a set operation. + */ + value: function(state) { + return this.checked(state); + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, id = self._id, prefix = self.classPrefix; + + return ( + '<div id="' + id + '" class="' + self.classes() + '" unselectable="on" aria-labelledby="' + id + '-al" tabindex="-1">' + + '<i class="' + prefix + 'ico ' + prefix + 'i-checkbox"></i>' + + '<span id="' + id + '-al" class="' + prefix + 'label">' + self.encode(self._text) + '</span>' + + '</div>' + ); + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Collection.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Collection.js new file mode 100755 index 00000000000..285d0c83689 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Collection.js @@ -0,0 +1,430 @@ +/** + * Collection.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Control collection, this class contains control instances and it enables you to + * perform actions on all the contained items. This is very similar to how jQuery works. + * + * @example + * someCollection.show().disabled(true); + * + * @class tinymce.ui.Collection + */ +define("tinymce/ui/Collection", [ + "tinymce/util/Tools", + "tinymce/ui/Selector", + "tinymce/util/Class" +], function(Tools, Selector, Class) { + "use strict"; + + var Collection, proto, push = Array.prototype.push, slice = Array.prototype.slice; + + proto = { + /** + * Current number of contained control instances. + * + * @field length + * @type Number + */ + length: 0, + + /** + * Constructor for the collection. + * + * @constructor + * @method init + * @param {Array} items Optional array with items to add. + */ + init: function(items) { + if (items) { + this.add(items); + } + }, + + /** + * Adds new items to the control collection. + * + * @method add + * @param {Array} items Array if items to add to collection. + * @return {tinymce.ui.Collection} Current collection instance. + */ + add: function(items) { + var self = this; + + // Force single item into array + if (!Tools.isArray(items)) { + if (items instanceof Collection) { + self.add(items.toArray()); + } else { + push.call(self, items); + } + } else { + push.apply(self, items); + } + + return self; + }, + + /** + * Sets the contents of the collection. This will remove any existing items + * and replace them with the ones specified in the input array. + * + * @method set + * @param {Array} items Array with items to set into the Collection. + * @return {tinymce.ui.Collection} Collection instance. + */ + set: function(items) { + var self = this, len = self.length, i; + + self.length = 0; + self.add(items); + + // Remove old entries + for (i = self.length; i < len; i++) { + delete self[i]; + } + + return self; + }, + + /** + * Filters the collection item based on the specified selector expression or selector function. + * + * @method filter + * @param {String} selector Selector expression to filter items by. + * @return {tinymce.ui.Collection} Collection containing the filtered items. + */ + filter: function(selector) { + var self = this, i, l, matches = [], item, match; + + // Compile string into selector expression + if (typeof(selector) === "string") { + selector = new Selector(selector); + + match = function(item) { + return selector.match(item); + }; + } else { + // Use selector as matching function + match = selector; + } + + for (i = 0, l = self.length; i < l; i++) { + item = self[i]; + + if (match(item)) { + matches.push(item); + } + } + + return new Collection(matches); + }, + + /** + * Slices the items within the collection. + * + * @method slice + * @param {Number} index Index to slice at. + * @param {Number} len Optional length to slice. + * @return {tinymce.ui.Collection} Current collection. + */ + slice: function() { + return new Collection(slice.apply(this, arguments)); + }, + + /** + * Makes the current collection equal to the specified index. + * + * @method eq + * @param {Number} index Index of the item to set the collection to. + * @return {tinymce.ui.Collection} Current collection. + */ + eq: function(index) { + return index === -1 ? this.slice(index) : this.slice(index, +index + 1); + }, + + /** + * Executes the specified callback on each item in collection. + * + * @method each + * @param {function} callback Callback to execute for each item in collection. + * @return {tinymce.ui.Collection} Current collection instance. + */ + each: function(callback) { + Tools.each(this, callback); + + return this; + }, + + /** + * Returns an JavaScript array object of the contents inside the collection. + * + * @method toArray + * @return {Array} Array with all items from collection. + */ + toArray: function() { + return Tools.toArray(this); + }, + + /** + * Finds the index of the specified control or return -1 if it isn't in the collection. + * + * @method indexOf + * @param {Control} ctrl Control instance to look for. + * @return {Number} Index of the specified control or -1. + */ + indexOf: function(ctrl) { + var self = this, i = self.length; + + while (i--) { + if (self[i] === ctrl) { + break; + } + } + + return i; + }, + + /** + * Returns a new collection of the contents in reverse order. + * + * @method reverse + * @return {tinymce.ui.Collection} Collection instance with reversed items. + */ + reverse: function() { + return new Collection(Tools.toArray(this).reverse()); + }, + + /** + * Returns true/false if the class exists or not. + * + * @method hasClass + * @param {String} cls Class to check for. + * @return {Boolean} true/false state if the class exists or not. + */ + hasClass: function(cls) { + return this[0] ? this[0].hasClass(cls) : false; + }, + + /** + * Sets/gets the specific property on the items in the collection. The same as executing control.<property>(<value>); + * + * @method prop + * @param {String} name Property name to get/set. + * @param {Object} value Optional object value to set. + * @return {tinymce.ui.Collection} Current collection instance or value of the first item on a get operation. + */ + prop: function(name, value) { + var self = this, undef, item; + + if (value !== undef) { + self.each(function(item) { + if (item[name]) { + item[name](value); + } + }); + + return self; + } + + item = self[0]; + + if (item && item[name]) { + return item[name](); + } + }, + + /** + * Executes the specific function name with optional arguments an all items in collection if it exists. + * + * @example collection.exec("myMethod", arg1, arg2, arg3); + * @method exec + * @param {String} name Name of the function to execute. + * @param {Object} ... Multiple arguments to pass to each function. + * @return {tinymce.ui.Collection} Current collection. + */ + exec: function(name) { + var self = this, args = Tools.toArray(arguments).slice(1); + + self.each(function(item) { + if (item[name]) { + item[name].apply(item, args); + } + }); + + return self; + }, + + /** + * Remove all items from collection and DOM. + * + * @method remove + * @return {tinymce.ui.Collection} Current collection. + */ + remove: function() { + var i = this.length; + + while (i--) { + this[i].remove(); + } + + return this; + } + + /** + * Fires the specified event by name and arguments on the control. This will execute all + * bound event handlers. + * + * @method fire + * @param {String} name Name of the event to fire. + * @param {Object} args Optional arguments to pass to the event. + * @return {tinymce.ui.Collection} Current collection instance. + */ + // fire: function(event, args) {}, -- Generated by code below + + /** + * Binds a callback to the specified event. This event can both be + * native browser events like "click" or custom ones like PostRender. + * + * The callback function will have two parameters the first one being the control that received the event + * the second one will be the event object either the browsers native event object or a custom JS object. + * + * @method on + * @param {String} name Name of the event to bind. For example "click". + * @param {String/function} callback Callback function to execute ones the event occurs. + * @return {tinymce.ui.Collection} Current collection instance. + */ + // on: function(name, callback) {}, -- Generated by code below + + /** + * Unbinds the specified event and optionally a specific callback. If you omit the name + * parameter all event handlers will be removed. If you omit the callback all event handles + * by the specified name will be removed. + * + * @method off + * @param {String} name Optional name for the event to unbind. + * @param {function} callback Optional callback function to unbind. + * @return {tinymce.ui.Collection} Current collection instance. + */ + // off: function(name, callback) {}, -- Generated by code below + + /** + * Shows the items in the current collection. + * + * @method show + * @return {tinymce.ui.Collection} Current collection instance. + */ + // show: function() {}, -- Generated by code below + + /** + * Hides the items in the current collection. + * + * @method hide + * @return {tinymce.ui.Collection} Current collection instance. + */ + // hide: function() {}, -- Generated by code below + + /** + * Sets/gets the text contents of the items in the current collection. + * + * @method text + * @return {tinymce.ui.Collection} Current collection instance or text value of the first item on a get operation. + */ + // text: function(value) {}, -- Generated by code below + + /** + * Sets/gets the name contents of the items in the current collection. + * + * @method name + * @return {tinymce.ui.Collection} Current collection instance or name value of the first item on a get operation. + */ + // name: function(value) {}, -- Generated by code below + + /** + * Sets/gets the disabled state on the items in the current collection. + * + * @method disabled + * @return {tinymce.ui.Collection} Current collection instance or disabled state of the first item on a get operation. + */ + // disabled: function(state) {}, -- Generated by code below + + /** + * Sets/gets the active state on the items in the current collection. + * + * @method active + * @return {tinymce.ui.Collection} Current collection instance or active state of the first item on a get operation. + */ + // active: function(state) {}, -- Generated by code below + + /** + * Sets/gets the selected state on the items in the current collection. + * + * @method selected + * @return {tinymce.ui.Collection} Current collection instance or selected state of the first item on a get operation. + */ + // selected: function(state) {}, -- Generated by code below + + /** + * Sets/gets the selected state on the items in the current collection. + * + * @method visible + * @return {tinymce.ui.Collection} Current collection instance or visible state of the first item on a get operation. + */ + // visible: function(state) {}, -- Generated by code below + + /** + * Adds a class to all items in the collection. + * + * @method addClass + * @param {String} cls Class to add to each item. + * @return {tinymce.ui.Collection} Current collection instance. + */ + // addClass: function(cls) {}, -- Generated by code below + + /** + * Removes the specified class from all items in collection. + * + * @method removeClass + * @param {String} cls Class to remove from each item. + * @return {tinymce.ui.Collection} Current collection instance. + */ + // removeClass: function(cls) {}, -- Generated by code below + }; + + // Extend tinymce.ui.Collection prototype with some generated control specific methods + Tools.each('fire on off show hide addClass removeClass append prepend before after reflow'.split(' '), function(name) { + proto[name] = function() { + var args = Tools.toArray(arguments); + + this.each(function(ctrl) { + if (name in ctrl) { + ctrl[name].apply(ctrl, args); + } + }); + + return this; + }; + }); + + // Extend tinymce.ui.Collection prototype with some property methods + Tools.each('text name disabled active selected checked visible parent value data'.split(' '), function(name) { + proto[name] = function(value) { + return this.prop(name, value); + }; + }); + + // Create class based on the new prototype + Collection = Class.extend(proto); + + // Stick Collection into Selector to prevent circual references + Selector.Collection = Collection; + + return Collection; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/ColorButton.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/ColorButton.js new file mode 100755 index 00000000000..f4b36c3f2d2 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/ColorButton.js @@ -0,0 +1,107 @@ +/** + * ColorButton.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class creates a color button control. This is a split button in which the main + * button has a visual representation of the currently selected color. When clicked + * the caret button displays a color picker, allowing the user to select a new color. + * + * @-x-less ColorButton.less + * @class tinymce.ui.ColorButton + * @extends tinymce.ui.PanelButton + */ +define("tinymce/ui/ColorButton", [ + "tinymce/ui/PanelButton", + "tinymce/dom/DOMUtils" +], function(PanelButton, DomUtils) { + "use strict"; + + var DOM = DomUtils.DOM; + + return PanelButton.extend({ + /** + * Constructs a new ColorButton instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + */ + init: function(settings) { + this._super(settings); + this.addClass('colorbutton'); + }, + + /** + * Getter/setter for the current color. + * + * @method color + * @param {String} [color] Color to set. + * @return {String|tinymce.ui.ColorButton} Current color or current instance. + */ + color: function(color) { + if (color) { + this._color = color; + this.getEl('preview').style.backgroundColor = color; + return this; + } + + return this._color; + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, id = self._id, prefix = self.classPrefix; + var icon = self.settings.icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : ''; + var image = self.settings.image ? ' style="background-image: url(\'' + self.settings.image + '\')"' : ''; + + return ( + '<div id="' + id + '" class="' + self.classes() + '" role="button" tabindex="-1" aria-haspopup="true">' + + '<button role="presentation" hidefocus type="button" tabindex="-1">' + + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + + '<span id="' + id + '-preview" class="' + prefix + 'preview"></span>' + + (self._text ? (icon ? ' ' : '') + (self._text) : '') + + '</button>' + + '<button type="button" class="' + prefix + 'open" hidefocus tabindex="-1">' + + ' <i class="' + prefix + 'caret"></i>' + + '</button>' + + '</div>' + ); + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this, onClickHandler = self.settings.onclick; + + self.on('click', function(e) { + if (e.aria && e.aria.key == 'down') { + return; + } + + if (e.control == self && !DOM.getParent(e.target, '.' + self.classPrefix + 'open')) { + e.stopImmediatePropagation(); + onClickHandler.call(self, e); + } + }); + + delete self.settings.onclick; + + return self._super(); + } + + }); +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/ComboBox.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/ComboBox.js new file mode 100755 index 00000000000..c174bf67c6d --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/ComboBox.js @@ -0,0 +1,332 @@ +/** + * ComboBox.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class creates a combobox control. Select box that you select a value from or + * type a value into. + * + * @-x-less ComboBox.less + * @class tinymce.ui.ComboBox + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/ComboBox", [ + "tinymce/ui/Widget", + "tinymce/ui/Factory", + "tinymce/ui/DomUtils" +], function(Widget, Factory, DomUtils) { + "use strict"; + + return Widget.extend({ + /** + * Constructs a new control instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {String} placeholder Placeholder text to display. + */ + init: function(settings) { + var self = this; + + self._super(settings); + self.addClass('combobox'); + self.subinput = true; + self.ariaTarget = 'inp'; // TODO: Figure out a better way + + settings = self.settings; + settings.menu = settings.menu || settings.values; + + if (settings.menu) { + settings.icon = 'caret'; + } + + self.on('click', function(e) { + var elm = e.target, root = self.getEl(); + + while (elm && elm != root) { + if (elm.id && elm.id.indexOf('-open') != -1) { + self.fire('action'); + + if (settings.menu) { + self.showMenu(); + + if (e.aria) { + self.menu.items()[0].focus(); + } + } + } + + elm = elm.parentNode; + } + }); + + // TODO: Rework this + self.on('keydown', function(e) { + if (e.target.nodeName == "INPUT" && e.keyCode == 13) { + self.parents().reverse().each(function(ctrl) { + e.preventDefault(); + self.fire('change'); + + if (ctrl.hasEventListeners('submit') && ctrl.toJSON) { + ctrl.fire('submit', {data: ctrl.toJSON()}); + return false; + } + }); + } + }); + + if (settings.placeholder) { + self.addClass('placeholder'); + + self.on('focusin', function() { + if (!self._hasOnChange) { + DomUtils.on(self.getEl('inp'), 'change', function() { + self.fire('change'); + }); + + self._hasOnChange = true; + } + + if (self.hasClass('placeholder')) { + self.getEl('inp').value = ''; + self.removeClass('placeholder'); + } + }); + + self.on('focusout', function() { + if (self.value().length === 0) { + self.getEl('inp').value = settings.placeholder; + self.addClass('placeholder'); + } + }); + } + }, + + showMenu: function() { + var self = this, settings = self.settings, menu; + + if (!self.menu) { + menu = settings.menu || []; + + // Is menu array then auto constuct menu control + if (menu.length) { + menu = { + type: 'menu', + items: menu + }; + } else { + menu.type = menu.type || 'menu'; + } + + self.menu = Factory.create(menu).parent(self).renderTo(self.getContainerElm()); + self.fire('createmenu'); + self.menu.reflow(); + self.menu.on('cancel', function(e) { + if (e.control === self.menu) { + self.focus(); + } + }); + + self.menu.on('show hide', function(e) { + e.control.items().each(function(ctrl) { + ctrl.active(ctrl.value() == self.value()); + }); + }).fire('show'); + + self.menu.on('select', function(e) { + self.value(e.control.value()); + }); + + self.on('focusin', function(e) { + if (e.target.tagName == 'INPUT') { + self.menu.hide(); + } + }); + + self.aria('expanded', true); + } + + self.menu.show(); + self.menu.layoutRect({w: self.layoutRect().w}); + self.menu.moveRel(self.getEl(), self.isRtl() ? ['br-tr', 'tr-br'] : ['bl-tl', 'tl-bl']); + }, + + /** + * Getter/setter function for the control value. + * + * @method value + * @param {String} [value] Value to be set. + * @return {String|tinymce.ui.ComboBox} Value or self if it's a set operation. + */ + value: function(value) { + var self = this; + + if (typeof(value) != "undefined") { + self._value = value; + self.removeClass('placeholder'); + + if (self._rendered) { + self.getEl('inp').value = value; + } + + return self; + } + + if (self._rendered) { + value = self.getEl('inp').value; + + if (value != self.settings.placeholder) { + return value; + } + + return ''; + } + + return self._value; + }, + + /** + * Getter/setter function for the disabled state. + * + * @method value + * @param {Boolean} [state] State to be set. + * @return {Boolean|tinymce.ui.ComboBox} True/false or self if it's a set operation. + */ + disabled: function(state) { + var self = this; + + if (self._rendered && typeof(state) != 'undefined') { + self.getEl('inp').disabled = state; + } + + return self._super(state); + }, + + /** + * Focuses the input area of the control. + * + * @method focus + */ + focus: function() { + this.getEl('inp').focus(); + }, + + /** + * Repaints the control after a layout operation. + * + * @method repaint + */ + repaint: function() { + var self = this, elm = self.getEl(), openElm = self.getEl('open'), rect = self.layoutRect(); + var width, lineHeight; + + if (openElm) { + width = rect.w - DomUtils.getSize(openElm).width - 10; + } else { + width = rect.w - 10; + } + + // Detect old IE 7+8 add lineHeight to align caret vertically in the middle + var doc = document; + if (doc.all && (!doc.documentMode || doc.documentMode <= 8)) { + lineHeight = (self.layoutRect().h - 2) + 'px'; + } + + DomUtils.css(elm.firstChild, { + width: width, + lineHeight: lineHeight + }); + + self._super(); + + return self; + }, + + /** + * Post render method. Called after the control has been rendered to the target. + * + * @method postRender + * @return {tinymce.ui.ComboBox} Current combobox instance. + */ + postRender: function() { + var self = this; + + DomUtils.on(this.getEl('inp'), 'change', function() { + self.fire('change'); + }); + + return self._super(); + }, + + remove: function() { + DomUtils.off(this.getEl('inp')); + this._super(); + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, id = self._id, settings = self.settings, prefix = self.classPrefix; + var value = settings.value || settings.placeholder || ''; + var icon, text, openBtnHtml = '', extraAttrs = ''; + + if ("spellcheck" in settings) { + extraAttrs += ' spellcheck="' + settings.spellcheck + '"'; + } + + if (settings.maxLength) { + extraAttrs += ' maxlength="' + settings.maxLength + '"'; + } + + if (settings.size) { + extraAttrs += ' size="' + settings.size + '"'; + } + + if (settings.subtype) { + extraAttrs += ' type="' + settings.subtype + '"'; + } + + if (self.disabled()) { + extraAttrs += ' disabled="disabled"'; + } + + icon = settings.icon; + if (icon && icon != 'caret') { + icon = prefix + 'ico ' + prefix + 'i-' + settings.icon; + } + + text = self._text; + + if (icon || text) { + openBtnHtml = ( + '<div id="' + id + '-open" class="' + prefix + 'btn ' + prefix + 'open" tabIndex="-1" role="button">' + + '<button id="' + id + '-action" type="button" hidefocus tabindex="-1">' + + (icon != 'caret' ? '<i class="' + icon + '"></i>' : '<i class="' + prefix + 'caret"></i>') + + (text ? (icon ? ' ' : '') + text : '') + + '</button>' + + '</div>' + ); + + self.addClass('has-open'); + } + + return ( + '<div id="' + id + '" class="' + self.classes() + '">' + + '<input id="' + id + '-inp" class="' + prefix + 'textbox ' + prefix + 'placeholder" value="' + + value + '" hidefocus="true"' + extraAttrs + '>' + + openBtnHtml + + '</div>' + ); + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Container.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Container.js new file mode 100755 index 00000000000..f47ae9fc66e --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Container.js @@ -0,0 +1,495 @@ +/** + * Container.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Container control. This is extended by all controls that can have + * children such as panels etc. You can also use this class directly as an + * generic container instance. The container doesn't have any specific role or style. + * + * @-x-less Container.less + * @class tinymce.ui.Container + * @extends tinymce.ui.Control + */ +define("tinymce/ui/Container", [ + "tinymce/ui/Control", + "tinymce/ui/Collection", + "tinymce/ui/Selector", + "tinymce/ui/Factory", + "tinymce/ui/KeyboardNavigation", + "tinymce/util/Tools", + "tinymce/ui/DomUtils" +], function(Control, Collection, Selector, Factory, KeyboardNavigation, Tools, DomUtils) { + "use strict"; + + var selectorCache = {}; + + return Control.extend({ + layout: '', + innerClass: 'container-inner', + + /** + * Constructs a new control instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {Array} items Items to add to container in JSON format or control instances. + * @setting {String} layout Layout manager by name to use. + * @setting {Object} defaults Default settings to apply to all items. + */ + init: function(settings) { + var self = this; + + self._super(settings); + settings = self.settings; + self._fixed = settings.fixed; + self._items = new Collection(); + + if (self.isRtl()) { + self.addClass('rtl'); + } + + self.addClass('container'); + self.addClass('container-body', 'body'); + + if (settings.containerCls) { + self.addClass(settings.containerCls); + } + + self._layout = Factory.create((settings.layout || self.layout) + 'layout'); + + if (self.settings.items) { + self.add(self.settings.items); + } + + // TODO: Fix this! + self._hasBody = true; + }, + + /** + * Returns a collection of child items that the container currently have. + * + * @method items + * @return {tinymce.ui.Collection} Control collection direct child controls. + */ + items: function() { + return this._items; + }, + + /** + * Find child controls by selector. + * + * @method find + * @param {String} selector Selector CSS pattern to find children by. + * @return {tinymce.ui.Collection} Control collection with child controls. + */ + find: function(selector) { + selector = selectorCache[selector] = selectorCache[selector] || new Selector(selector); + + return selector.find(this); + }, + + /** + * Adds one or many items to the current container. This will create instances of + * the object representations if needed. + * + * @method add + * @param {Array/Object/tinymce.ui.Control} items Array or item that will be added to the container. + * @return {tinymce.ui.Collection} Current collection control. + */ + add: function(items) { + var self = this; + + self.items().add(self.create(items)).parent(self); + + return self; + }, + + /** + * Focuses the current container instance. This will look + * for the first control in the container and focus that. + * + * @method focus + * @param {Boolean} keyboard Optional true/false if the focus was a keyboard focus or not. + * @return {tinymce.ui.Collection} Current instance. + */ + focus: function(keyboard) { + var self = this, focusCtrl, keyboardNav, items; + + if (keyboard) { + keyboardNav = self.keyboardNav || self.parents().eq(-1)[0].keyboardNav; + + if (keyboardNav) { + keyboardNav.focusFirst(self); + return; + } + } + + items = self.find('*'); + + // TODO: Figure out a better way to auto focus alert dialog buttons + if (self.statusbar) { + items.add(self.statusbar.items()); + } + + items.each(function(ctrl) { + if (ctrl.settings.autofocus) { + focusCtrl = null; + return false; + } + + if (ctrl.canFocus) { + focusCtrl = focusCtrl || ctrl; + } + }); + + if (focusCtrl) { + focusCtrl.focus(); + } + + return self; + }, + + /** + * Replaces the specified child control with a new control. + * + * @method replace + * @param {tinymce.ui.Control} oldItem Old item to be replaced. + * @param {tinymce.ui.Control} newItem New item to be inserted. + */ + replace: function(oldItem, newItem) { + var ctrlElm, items = this.items(), i = items.length; + + // Replace the item in collection + while (i--) { + if (items[i] === oldItem) { + items[i] = newItem; + break; + } + } + + if (i >= 0) { + // Remove new item from DOM + ctrlElm = newItem.getEl(); + if (ctrlElm) { + ctrlElm.parentNode.removeChild(ctrlElm); + } + + // Remove old item from DOM + ctrlElm = oldItem.getEl(); + if (ctrlElm) { + ctrlElm.parentNode.removeChild(ctrlElm); + } + } + + // Adopt the item + newItem.parent(this); + }, + + /** + * Creates the specified items. If any of the items is plain JSON style objects + * it will convert these into real tinymce.ui.Control instances. + * + * @method create + * @param {Array} items Array of items to convert into control instances. + * @return {Array} Array with control instances. + */ + create: function(items) { + var self = this, settings, ctrlItems = []; + + // Non array structure, then force it into an array + if (!Tools.isArray(items)) { + items = [items]; + } + + // Add default type to each child control + Tools.each(items, function(item) { + if (item) { + // Construct item if needed + if (!(item instanceof Control)) { + // Name only then convert it to an object + if (typeof(item) == "string") { + item = {type: item}; + } + + // Create control instance based on input settings and default settings + settings = Tools.extend({}, self.settings.defaults, item); + item.type = settings.type = settings.type || item.type || self.settings.defaultType || + (settings.defaults ? settings.defaults.type : null); + item = Factory.create(settings); + } + + ctrlItems.push(item); + } + }); + + return ctrlItems; + }, + + /** + * Renders new control instances. + * + * @private + */ + renderNew: function() { + var self = this; + + // Render any new items + self.items().each(function(ctrl, index) { + var containerElm, fragment; + + ctrl.parent(self); + + if (!ctrl._rendered) { + containerElm = self.getEl('body'); + fragment = DomUtils.createFragment(ctrl.renderHtml()); + + // Insert or append the item + if (containerElm.hasChildNodes() && index <= containerElm.childNodes.length - 1) { + containerElm.insertBefore(fragment, containerElm.childNodes[index]); + } else { + containerElm.appendChild(fragment); + } + + ctrl.postRender(); + } + }); + + self._layout.applyClasses(self); + self._lastRect = null; + + return self; + }, + + /** + * Appends new instances to the current container. + * + * @method append + * @param {Array/tinymce.ui.Collection} items Array if controls to append. + * @return {tinymce.ui.Container} Current container instance. + */ + append: function(items) { + return this.add(items).renderNew(); + }, + + /** + * Prepends new instances to the current container. + * + * @method prepend + * @param {Array/tinymce.ui.Collection} items Array if controls to prepend. + * @return {tinymce.ui.Container} Current container instance. + */ + prepend: function(items) { + var self = this; + + self.items().set(self.create(items).concat(self.items().toArray())); + + return self.renderNew(); + }, + + /** + * Inserts an control at a specific index. + * + * @method insert + * @param {Array/tinymce.ui.Collection} items Array if controls to insert. + * @param {Number} index Index to insert controls at. + * @param {Boolean} [before=false] Inserts controls before the index. + */ + insert: function(items, index, before) { + var self = this, curItems, beforeItems, afterItems; + + items = self.create(items); + curItems = self.items(); + + if (!before && index < curItems.length - 1) { + index += 1; + } + + if (index >= 0 && index < curItems.length) { + beforeItems = curItems.slice(0, index).toArray(); + afterItems = curItems.slice(index).toArray(); + curItems.set(beforeItems.concat(items, afterItems)); + } + + return self.renderNew(); + }, + + /** + * Populates the form fields from the specified JSON data object. + * + * Control items in the form that matches the data will have it's value set. + * + * @method fromJSON + * @param {Object} data JSON data object to set control values by. + * @return {tinymce.ui.Container} Current form instance. + */ + fromJSON: function(data) { + var self = this; + + for (var name in data) { + self.find('#' + name).value(data[name]); + } + + return self; + }, + + /** + * Serializes the form into a JSON object by getting all items + * that has a name and a value. + * + * @method toJSON + * @return {Object} JSON object with form data. + */ + toJSON: function() { + var self = this, data = {}; + + self.find('*').each(function(ctrl) { + var name = ctrl.name(), value = ctrl.value(); + + if (name && typeof(value) != "undefined") { + data[name] = value; + } + }); + + return data; + }, + + preRender: function() { + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, layout = self._layout, role = this.settings.role; + + self.preRender(); + layout.preRender(self); + + return ( + '<div id="' + self._id + '" class="' + self.classes() + '"' + (role ? ' role="' + this.settings.role + '"' : '') + '>' + + '<div id="' + self._id + '-body" class="' + self.classes('body') + '">' + + (self.settings.html || '') + layout.renderHtml(self) + + '</div>' + + '</div>' + ); + }, + + /** + * Post render method. Called after the control has been rendered to the target. + * + * @method postRender + * @return {tinymce.ui.Container} Current combobox instance. + */ + postRender: function() { + var self = this, box; + + self.items().exec('postRender'); + self._super(); + + self._layout.postRender(self); + self._rendered = true; + + if (self.settings.style) { + DomUtils.css(self.getEl(), self.settings.style); + } + + if (self.settings.border) { + box = self.borderBox(); + DomUtils.css(self.getEl(), { + 'border-top-width': box.top, + 'border-right-width': box.right, + 'border-bottom-width': box.bottom, + 'border-left-width': box.left + }); + } + + if (!self.parent()) { + self.keyboardNav = new KeyboardNavigation({ + root: self + }); + } + + return self; + }, + + /** + * Initializes the current controls layout rect. + * This will be executed by the layout managers to determine the + * default minWidth/minHeight etc. + * + * @method initLayoutRect + * @return {Object} Layout rect instance. + */ + initLayoutRect: function() { + var self = this, layoutRect = self._super(); + + // Recalc container size by asking layout manager + self._layout.recalc(self); + + return layoutRect; + }, + + /** + * Recalculates the positions of the controls in the current container. + * This is invoked by the reflow method and shouldn't be called directly. + * + * @method recalc + */ + recalc: function() { + var self = this, rect = self._layoutRect, lastRect = self._lastRect; + + if (!lastRect || lastRect.w != rect.w || lastRect.h != rect.h) { + self._layout.recalc(self); + rect = self.layoutRect(); + self._lastRect = {x: rect.x, y: rect.y, w: rect.w, h: rect.h}; + return true; + } + }, + + /** + * Reflows the current container and it's children and possible parents. + * This should be used after you for example append children to the current control so + * that the layout managers know that they need to reposition everything. + * + * @example + * container.append({type: 'button', text: 'My button'}).reflow(); + * + * @method reflow + * @return {tinymce.ui.Container} Current container instance. + */ + reflow: function() { + var i; + + if (this.visible()) { + Control.repaintControls = []; + Control.repaintControls.map = {}; + + this.recalc(); + i = Control.repaintControls.length; + + while (i--) { + Control.repaintControls[i].repaint(); + } + + // TODO: Fix me! + if (this.settings.layout !== "flow" && this.settings.layout !== "stack") { + this.repaint(); + } + + Control.repaintControls = []; + } + + return this; + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Control.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Control.js new file mode 100755 index 00000000000..599916f2297 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Control.js @@ -0,0 +1,1559 @@ +/** + * Control.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*eslint consistent-this:0 */ + +/** + * This is the base class for all controls and containers. All UI control instances inherit + * from this one as it has the base logic needed by all of them. + * + * @class tinymce.ui.Control + */ +define("tinymce/ui/Control", [ + "tinymce/util/Class", + "tinymce/util/Tools", + "tinymce/ui/Collection", + "tinymce/ui/DomUtils" +], function(Class, Tools, Collection, DomUtils) { + "use strict"; + + var nativeEvents = Tools.makeMap("focusin focusout scroll click dblclick mousedown mouseup mousemove mouseover" + + " mouseout mouseenter mouseleave wheel keydown keypress keyup contextmenu", " "); + + var elementIdCache = {}; + var hasMouseWheelEventSupport = "onmousewheel" in document; + var hasWheelEventSupport = false; + + var Control = Class.extend({ + Statics: { + elementIdCache: elementIdCache + }, + + isRtl: function() { + return Control.rtl; + }, + + /** + * Class/id prefix to use for all controls. + * + * @final + * @field {String} classPrefix + */ + classPrefix: "mce-", + + /** + * Constructs a new control instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {String} style Style CSS properties to add. + * @setting {String} border Border box values example: 1 1 1 1 + * @setting {String} padding Padding box values example: 1 1 1 1 + * @setting {String} margin Margin box values example: 1 1 1 1 + * @setting {Number} minWidth Minimal width for the control. + * @setting {Number} minHeight Minimal height for the control. + * @setting {String} classes Space separated list of classes to add. + * @setting {String} role WAI-ARIA role to use for control. + * @setting {Boolean} hidden Is the control hidden by default. + * @setting {Boolean} disabled Is the control disabled by default. + * @setting {String} name Name of the control instance. + */ + init: function(settings) { + var self = this, classes, i; + + self.settings = settings = Tools.extend({}, self.Defaults, settings); + + // Initial states + self._id = settings.id || DomUtils.id(); + self._text = self._name = ''; + self._width = self._height = 0; + self._aria = {role: settings.role}; + + // Setup classes + classes = settings.classes; + if (classes) { + classes = classes.split(' '); + classes.map = {}; + i = classes.length; + while (i--) { + classes.map[classes[i]] = true; + } + } + + self._classes = classes || []; + self.visible(true); + + // Set some properties + Tools.each('title text width height name classes visible disabled active value'.split(' '), function(name) { + var value = settings[name], undef; + + if (value !== undef) { + self[name](value); + } else if (self['_' + name] === undef) { + self['_' + name] = false; + } + }); + + self.on('click', function() { + if (self.disabled()) { + return false; + } + }); + + // TODO: Is this needed duplicate code see above? + if (settings.classes) { + Tools.each(settings.classes.split(' '), function(cls) { + self.addClass(cls); + }); + } + + /** + * Name/value object with settings for the current control. + * + * @field {Object} settings + */ + self.settings = settings; + + self._borderBox = self.parseBox(settings.border); + self._paddingBox = self.parseBox(settings.padding); + self._marginBox = self.parseBox(settings.margin); + + if (settings.hidden) { + self.hide(); + } + }, + + // Will generate getter/setter methods for these properties + Properties: 'parent,title,text,width,height,disabled,active,name,value', + + // Will generate empty dummy functions for these + Methods: 'renderHtml', + + /** + * Returns the root element to render controls into. + * + * @method getContainerElm + * @return {Element} HTML DOM element to render into. + */ + getContainerElm: function() { + return document.body; + }, + + /** + * Returns a control instance for the current DOM element. + * + * @method getParentCtrl + * @param {Element} elm HTML dom element to get parent control from. + * @return {tinymce.ui.Control} Control instance or undefined. + */ + getParentCtrl: function(elm) { + var ctrl, lookup = this.getRoot().controlIdLookup; + + while (elm && lookup) { + ctrl = lookup[elm.id]; + if (ctrl) { + break; + } + + elm = elm.parentNode; + } + + return ctrl; + }, + + /** + * Parses the specified box value. A box value contains 1-4 properties in clockwise order. + * + * @method parseBox + * @param {String/Number} value Box value "0 1 2 3" or "0" etc. + * @return {Object} Object with top/right/bottom/left properties. + * @private + */ + parseBox: function(value) { + var len, radix = 10; + + if (!value) { + return; + } + + if (typeof(value) === "number") { + value = value || 0; + + return { + top: value, + left: value, + bottom: value, + right: value + }; + } + + value = value.split(' '); + len = value.length; + + if (len === 1) { + value[1] = value[2] = value[3] = value[0]; + } else if (len === 2) { + value[2] = value[0]; + value[3] = value[1]; + } else if (len === 3) { + value[3] = value[1]; + } + + return { + top: parseInt(value[0], radix) || 0, + right: parseInt(value[1], radix) || 0, + bottom: parseInt(value[2], radix) || 0, + left: parseInt(value[3], radix) || 0 + }; + }, + + borderBox: function() { + return this._borderBox; + }, + + paddingBox: function() { + return this._paddingBox; + }, + + marginBox: function() { + return this._marginBox; + }, + + measureBox: function(elm, prefix) { + function getStyle(name) { + var defaultView = document.defaultView; + + if (defaultView) { + // Remove camelcase + name = name.replace(/[A-Z]/g, function(a) { + return '-' + a; + }); + + return defaultView.getComputedStyle(elm, null).getPropertyValue(name); + } + + return elm.currentStyle[name]; + } + + function getSide(name) { + var val = parseFloat(getStyle(name), 10); + + return isNaN(val) ? 0 : val; + } + + return { + top: getSide(prefix + "TopWidth"), + right: getSide(prefix + "RightWidth"), + bottom: getSide(prefix + "BottomWidth"), + left: getSide(prefix + "LeftWidth") + }; + }, + + /** + * Initializes the current controls layout rect. + * This will be executed by the layout managers to determine the + * default minWidth/minHeight etc. + * + * @method initLayoutRect + * @return {Object} Layout rect instance. + */ + initLayoutRect: function() { + var self = this, settings = self.settings, borderBox, layoutRect; + var elm = self.getEl(), width, height, minWidth, minHeight, autoResize; + var startMinWidth, startMinHeight, initialSize; + + // Measure the current element + borderBox = self._borderBox = self._borderBox || self.measureBox(elm, 'border'); + self._paddingBox = self._paddingBox || self.measureBox(elm, 'padding'); + self._marginBox = self._marginBox || self.measureBox(elm, 'margin'); + initialSize = DomUtils.getSize(elm); + + // Setup minWidth/minHeight and width/height + startMinWidth = settings.minWidth; + startMinHeight = settings.minHeight; + minWidth = startMinWidth || initialSize.width; + minHeight = startMinHeight || initialSize.height; + width = settings.width; + height = settings.height; + autoResize = settings.autoResize; + autoResize = typeof(autoResize) != "undefined" ? autoResize : !width && !height; + + width = width || minWidth; + height = height || minHeight; + + var deltaW = borderBox.left + borderBox.right; + var deltaH = borderBox.top + borderBox.bottom; + + var maxW = settings.maxWidth || 0xFFFF; + var maxH = settings.maxHeight || 0xFFFF; + + // Setup initial layout rect + self._layoutRect = layoutRect = { + x: settings.x || 0, + y: settings.y || 0, + w: width, + h: height, + deltaW: deltaW, + deltaH: deltaH, + contentW: width - deltaW, + contentH: height - deltaH, + innerW: width - deltaW, + innerH: height - deltaH, + startMinWidth: startMinWidth || 0, + startMinHeight: startMinHeight || 0, + minW: Math.min(minWidth, maxW), + minH: Math.min(minHeight, maxH), + maxW: maxW, + maxH: maxH, + autoResize: autoResize, + scrollW: 0 + }; + + self._lastLayoutRect = {}; + + return layoutRect; + }, + + /** + * Getter/setter for the current layout rect. + * + * @method layoutRect + * @param {Object} [newRect] Optional new layout rect. + * @return {tinymce.ui.Control/Object} Current control or rect object. + */ + layoutRect: function(newRect) { + var self = this, curRect = self._layoutRect, lastLayoutRect, size, deltaWidth, deltaHeight, undef, repaintControls; + + // Initialize default layout rect + if (!curRect) { + curRect = self.initLayoutRect(); + } + + // Set new rect values + if (newRect) { + // Calc deltas between inner and outer sizes + deltaWidth = curRect.deltaW; + deltaHeight = curRect.deltaH; + + // Set x position + if (newRect.x !== undef) { + curRect.x = newRect.x; + } + + // Set y position + if (newRect.y !== undef) { + curRect.y = newRect.y; + } + + // Set minW + if (newRect.minW !== undef) { + curRect.minW = newRect.minW; + } + + // Set minH + if (newRect.minH !== undef) { + curRect.minH = newRect.minH; + } + + // Set new width and calculate inner width + size = newRect.w; + if (size !== undef) { + size = size < curRect.minW ? curRect.minW : size; + size = size > curRect.maxW ? curRect.maxW : size; + curRect.w = size; + curRect.innerW = size - deltaWidth; + } + + // Set new height and calculate inner height + size = newRect.h; + if (size !== undef) { + size = size < curRect.minH ? curRect.minH : size; + size = size > curRect.maxH ? curRect.maxH : size; + curRect.h = size; + curRect.innerH = size - deltaHeight; + } + + // Set new inner width and calculate width + size = newRect.innerW; + if (size !== undef) { + size = size < curRect.minW - deltaWidth ? curRect.minW - deltaWidth : size; + size = size > curRect.maxW - deltaWidth ? curRect.maxW - deltaWidth : size; + curRect.innerW = size; + curRect.w = size + deltaWidth; + } + + // Set new height and calculate inner height + size = newRect.innerH; + if (size !== undef) { + size = size < curRect.minH - deltaHeight ? curRect.minH - deltaHeight : size; + size = size > curRect.maxH - deltaHeight ? curRect.maxH - deltaHeight : size; + curRect.innerH = size; + curRect.h = size + deltaHeight; + } + + // Set new contentW + if (newRect.contentW !== undef) { + curRect.contentW = newRect.contentW; + } + + // Set new contentH + if (newRect.contentH !== undef) { + curRect.contentH = newRect.contentH; + } + + // Compare last layout rect with the current one to see if we need to repaint or not + lastLayoutRect = self._lastLayoutRect; + if (lastLayoutRect.x !== curRect.x || lastLayoutRect.y !== curRect.y || + lastLayoutRect.w !== curRect.w || lastLayoutRect.h !== curRect.h) { + repaintControls = Control.repaintControls; + + if (repaintControls) { + if (repaintControls.map && !repaintControls.map[self._id]) { + repaintControls.push(self); + repaintControls.map[self._id] = true; + } + } + + lastLayoutRect.x = curRect.x; + lastLayoutRect.y = curRect.y; + lastLayoutRect.w = curRect.w; + lastLayoutRect.h = curRect.h; + } + + return self; + } + + return curRect; + }, + + /** + * Repaints the control after a layout operation. + * + * @method repaint + */ + repaint: function() { + var self = this, style, bodyStyle, rect, borderBox, borderW = 0, borderH = 0, lastRepaintRect, round; + + // Use Math.round on all values on IE < 9 + round = !document.createRange ? Math.round : function(value) { + return value; + }; + + style = self.getEl().style; + rect = self._layoutRect; + lastRepaintRect = self._lastRepaintRect || {}; + + borderBox = self._borderBox; + borderW = borderBox.left + borderBox.right; + borderH = borderBox.top + borderBox.bottom; + + if (rect.x !== lastRepaintRect.x) { + style.left = round(rect.x) + 'px'; + lastRepaintRect.x = rect.x; + } + + if (rect.y !== lastRepaintRect.y) { + style.top = round(rect.y) + 'px'; + lastRepaintRect.y = rect.y; + } + + if (rect.w !== lastRepaintRect.w) { + style.width = round(rect.w - borderW) + 'px'; + lastRepaintRect.w = rect.w; + } + + if (rect.h !== lastRepaintRect.h) { + style.height = round(rect.h - borderH) + 'px'; + lastRepaintRect.h = rect.h; + } + + // Update body if needed + if (self._hasBody && rect.innerW !== lastRepaintRect.innerW) { + bodyStyle = self.getEl('body').style; + bodyStyle.width = round(rect.innerW) + 'px'; + lastRepaintRect.innerW = rect.innerW; + } + + if (self._hasBody && rect.innerH !== lastRepaintRect.innerH) { + bodyStyle = bodyStyle || self.getEl('body').style; + bodyStyle.height = round(rect.innerH) + 'px'; + lastRepaintRect.innerH = rect.innerH; + } + + self._lastRepaintRect = lastRepaintRect; + self.fire('repaint', {}, false); + }, + + /** + * Binds a callback to the specified event. This event can both be + * native browser events like "click" or custom ones like PostRender. + * + * The callback function will be passed a DOM event like object that enables yout do stop propagation. + * + * @method on + * @param {String} name Name of the event to bind. For example "click". + * @param {String/function} callback Callback function to execute ones the event occurs. + * @return {tinymce.ui.Control} Current control object. + */ + on: function(name, callback) { + var self = this, bindings, handlers, names, i; + + function resolveCallbackName(name) { + var callback, scope; + + return function(e) { + if (!callback) { + self.parents().each(function(ctrl) { + var callbacks = ctrl.settings.callbacks; + + if (callbacks && (callback = callbacks[name])) { + scope = ctrl; + return false; + } + }); + } + + return callback.call(scope, e); + }; + } + + if (callback) { + if (typeof(callback) == 'string') { + callback = resolveCallbackName(callback); + } + + names = name.toLowerCase().split(' '); + i = names.length; + while (i--) { + name = names[i]; + + bindings = self._bindings; + if (!bindings) { + bindings = self._bindings = {}; + } + + handlers = bindings[name]; + if (!handlers) { + handlers = bindings[name] = []; + } + + handlers.push(callback); + + if (nativeEvents[name]) { + if (!self._nativeEvents) { + self._nativeEvents = {name: true}; + } else { + self._nativeEvents[name] = true; + } + + if (self._rendered) { + self.bindPendingEvents(); + } + } + } + } + + return self; + }, + + /** + * Unbinds the specified event and optionally a specific callback. If you omit the name + * parameter all event handlers will be removed. If you omit the callback all event handles + * by the specified name will be removed. + * + * @method off + * @param {String} [name] Name for the event to unbind. + * @param {function} [callback] Callback function to unbind. + * @return {mxex.ui.Control} Current control object. + */ + off: function(name, callback) { + var self = this, i, bindings = self._bindings, handlers, bindingName, names, hi; + + if (bindings) { + if (name) { + names = name.toLowerCase().split(' '); + i = names.length; + while (i--) { + name = names[i]; + handlers = bindings[name]; + + // Unbind all handlers + if (!name) { + for (bindingName in bindings) { + bindings[bindingName].length = 0; + } + + return self; + } + + if (handlers) { + // Unbind all by name + if (!callback) { + handlers.length = 0; + } else { + // Unbind specific ones + hi = handlers.length; + while (hi--) { + if (handlers[hi] === callback) { + handlers.splice(hi, 1); + } + } + } + } + } + } else { + self._bindings = []; + } + } + + return self; + }, + + /** + * Fires the specified event by name and arguments on the control. This will execute all + * bound event handlers. + * + * @method fire + * @param {String} name Name of the event to fire. + * @param {Object} [args] Arguments to pass to the event. + * @param {Boolean} [bubble] Value to control bubbeling. Defaults to true. + * @return {Object} Current arguments object. + */ + fire: function(name, args, bubble) { + var self = this, i, l, handlers, parentCtrl; + + name = name.toLowerCase(); + + // Dummy function that gets replaced on the delegation state functions + function returnFalse() { + return false; + } + + // Dummy function that gets replaced on the delegation state functions + function returnTrue() { + return true; + } + + // Setup empty object if args is omited + args = args || {}; + + // Stick type into event object + if (!args.type) { + args.type = name; + } + + // Stick control into event + if (!args.control) { + args.control = self; + } + + // Add event delegation methods if they are missing + if (!args.preventDefault) { + // Add preventDefault method + args.preventDefault = function() { + args.isDefaultPrevented = returnTrue; + }; + + // Add stopPropagation + args.stopPropagation = function() { + args.isPropagationStopped = returnTrue; + }; + + // Add stopImmediatePropagation + args.stopImmediatePropagation = function() { + args.isImmediatePropagationStopped = returnTrue; + }; + + // Add event delegation states + args.isDefaultPrevented = returnFalse; + args.isPropagationStopped = returnFalse; + args.isImmediatePropagationStopped = returnFalse; + } + + if (self._bindings) { + handlers = self._bindings[name]; + + if (handlers) { + for (i = 0, l = handlers.length; i < l; i++) { + // Execute callback and break if the callback returns a false + if (!args.isImmediatePropagationStopped() && handlers[i].call(self, args) === false) { + break; + } + } + } + } + + // Bubble event up to parent controls + if (bubble !== false) { + parentCtrl = self.parent(); + while (parentCtrl && !args.isPropagationStopped()) { + parentCtrl.fire(name, args, false); + parentCtrl = parentCtrl.parent(); + } + } + + return args; + }, + + /** + * Returns true/false if the specified event has any listeners. + * + * @method hasEventListeners + * @param {String} name Name of the event to check for. + * @return {Boolean} True/false state if the event has listeners. + */ + hasEventListeners: function(name) { + return name in this._bindings; + }, + + /** + * Returns a control collection with all parent controls. + * + * @method parents + * @param {String} selector Optional selector expression to find parents. + * @return {tinymce.ui.Collection} Collection with all parent controls. + */ + parents: function(selector) { + var self = this, ctrl, parents = new Collection(); + + // Add each parent to collection + for (ctrl = self.parent(); ctrl; ctrl = ctrl.parent()) { + parents.add(ctrl); + } + + // Filter away everything that doesn't match the selector + if (selector) { + parents = parents.filter(selector); + } + + return parents; + }, + + /** + * Returns the control next to the current control. + * + * @method next + * @return {tinymce.ui.Control} Next control instance. + */ + next: function() { + var parentControls = this.parent().items(); + + return parentControls[parentControls.indexOf(this) + 1]; + }, + + /** + * Returns the control previous to the current control. + * + * @method prev + * @return {tinymce.ui.Control} Previous control instance. + */ + prev: function() { + var parentControls = this.parent().items(); + + return parentControls[parentControls.indexOf(this) - 1]; + }, + + /** + * Find the common ancestor for two control instances. + * + * @method findCommonAncestor + * @param {tinymce.ui.Control} ctrl1 First control. + * @param {tinymce.ui.Control} ctrl2 Second control. + * @return {tinymce.ui.Control} Ancestor control instance. + */ + findCommonAncestor: function(ctrl1, ctrl2) { + var parentCtrl; + + while (ctrl1) { + parentCtrl = ctrl2; + + while (parentCtrl && ctrl1 != parentCtrl) { + parentCtrl = parentCtrl.parent(); + } + + if (ctrl1 == parentCtrl) { + break; + } + + ctrl1 = ctrl1.parent(); + } + + return ctrl1; + }, + + /** + * Returns true/false if the specific control has the specific class. + * + * @method hasClass + * @param {String} cls Class to check for. + * @param {String} [group] Sub element group name. + * @return {Boolean} True/false if the control has the specified class. + */ + hasClass: function(cls, group) { + var classes = this._classes[group || 'control']; + + cls = this.classPrefix + cls; + + return classes && !!classes.map[cls]; + }, + + /** + * Adds the specified class to the control + * + * @method addClass + * @param {String} cls Class to check for. + * @param {String} [group] Sub element group name. + * @return {tinymce.ui.Control} Current control object. + */ + addClass: function(cls, group) { + var self = this, classes, elm; + + cls = this.classPrefix + cls; + classes = self._classes[group || 'control']; + + if (!classes) { + classes = []; + classes.map = {}; + self._classes[group || 'control'] = classes; + } + + if (!classes.map[cls]) { + classes.map[cls] = cls; + classes.push(cls); + + if (self._rendered) { + elm = self.getEl(group); + + if (elm) { + elm.className = classes.join(' '); + } + } + } + + return self; + }, + + /** + * Removes the specified class from the control. + * + * @method removeClass + * @param {String} cls Class to remove. + * @param {String} [group] Sub element group name. + * @return {tinymce.ui.Control} Current control object. + */ + removeClass: function(cls, group) { + var self = this, classes, i, elm; + + cls = this.classPrefix + cls; + classes = self._classes[group || 'control']; + if (classes && classes.map[cls]) { + delete classes.map[cls]; + + i = classes.length; + while (i--) { + if (classes[i] === cls) { + classes.splice(i, 1); + } + } + } + + if (self._rendered) { + elm = self.getEl(group); + + if (elm) { + elm.className = classes.join(' '); + } + } + + return self; + }, + + /** + * Toggles the specified class on the control. + * + * @method toggleClass + * @param {String} cls Class to remove. + * @param {Boolean} state True/false state to add/remove class. + * @param {String} [group] Sub element group name. + * @return {tinymce.ui.Control} Current control object. + */ + toggleClass: function(cls, state, group) { + var self = this; + + if (state) { + self.addClass(cls, group); + } else { + self.removeClass(cls, group); + } + + return self; + }, + + /** + * Returns the class string for the specified group name. + * + * @method classes + * @param {String} [group] Group to get clases by. + * @return {String} Classes for the specified group. + */ + classes: function(group) { + var classes = this._classes[group || 'control']; + + return classes ? classes.join(' ') : ''; + }, + + /** + * Sets the inner HTML of the control element. + * + * @method innerHtml + * @param {String} html Html string to set as inner html. + * @return {tinymce.ui.Control} Current control object. + */ + innerHtml: function(html) { + DomUtils.innerHtml(this.getEl(), html); + return this; + }, + + /** + * Returns the control DOM element or sub element. + * + * @method getEl + * @param {String} [suffix] Suffix to get element by. + * @param {Boolean} [dropCache] True if the cache for the element should be dropped. + * @return {Element} HTML DOM element for the current control or it's children. + */ + getEl: function(suffix, dropCache) { + var elm, id = suffix ? this._id + '-' + suffix : this._id; + + elm = elementIdCache[id] = (dropCache === true ? null : elementIdCache[id]) || DomUtils.get(id); + + return elm; + }, + + /** + * Sets/gets the visible for the control. + * + * @method visible + * @param {Boolean} state Value to set to control. + * @return {Boolean/tinymce.ui.Control} Current control on a set operation or current state on a get. + */ + visible: function(state) { + var self = this, parentCtrl; + + if (typeof(state) !== "undefined") { + if (self._visible !== state) { + if (self._rendered) { + self.getEl().style.display = state ? '' : 'none'; + } + + self._visible = state; + + // Parent container needs to reflow + parentCtrl = self.parent(); + if (parentCtrl) { + parentCtrl._lastRect = null; + } + + self.fire(state ? 'show' : 'hide'); + } + + return self; + } + + return self._visible; + }, + + /** + * Sets the visible state to true. + * + * @method show + * @return {tinymce.ui.Control} Current control instance. + */ + show: function() { + return this.visible(true); + }, + + /** + * Sets the visible state to false. + * + * @method hide + * @return {tinymce.ui.Control} Current control instance. + */ + hide: function() { + return this.visible(false); + }, + + /** + * Focuses the current control. + * + * @method focus + * @return {tinymce.ui.Control} Current control instance. + */ + focus: function() { + try { + this.getEl().focus(); + } catch (ex) { + // Ignore IE error + } + + return this; + }, + + /** + * Blurs the current control. + * + * @method blur + * @return {tinymce.ui.Control} Current control instance. + */ + blur: function() { + this.getEl().blur(); + + return this; + }, + + /** + * Sets the specified aria property. + * + * @method aria + * @param {String} name Name of the aria property to set. + * @param {String} value Value of the aria property. + * @return {tinymce.ui.Control} Current control instance. + */ + aria: function(name, value) { + var self = this, elm = self.getEl(self.ariaTarget); + + if (typeof(value) === "undefined") { + return self._aria[name]; + } else { + self._aria[name] = value; + } + + if (self._rendered) { + elm.setAttribute(name == 'role' ? name : 'aria-' + name, value); + } + + return self; + }, + + /** + * Encodes the specified string with HTML entities. It will also + * translate the string to different languages. + * + * @method encode + * @param {String/Object/Array} text Text to entity encode. + * @param {Boolean} [translate=true] False if the contents shouldn't be translated. + * @return {String} Encoded and possible traslated string. + */ + encode: function(text, translate) { + if (translate !== false && Control.translate) { + text = Control.translate(text); + } + + return (text || '').replace(/[&<>"]/g, function(match) { + return '&#' + match.charCodeAt(0) + ';'; + }); + }, + + /** + * Adds items before the current control. + * + * @method before + * @param {Array/tinymce.ui.Collection} items Array of items to prepend before this control. + * @return {tinymce.ui.Control} Current control instance. + */ + before: function(items) { + var self = this, parent = self.parent(); + + if (parent) { + parent.insert(items, parent.items().indexOf(self), true); + } + + return self; + }, + + /** + * Adds items after the current control. + * + * @method after + * @param {Array/tinymce.ui.Collection} items Array of items to append after this control. + * @return {tinymce.ui.Control} Current control instance. + */ + after: function(items) { + var self = this, parent = self.parent(); + + if (parent) { + parent.insert(items, parent.items().indexOf(self)); + } + + return self; + }, + + /** + * Removes the current control from DOM and from UI collections. + * + * @method remove + * @return {tinymce.ui.Control} Current control instance. + */ + remove: function() { + var self = this, elm = self.getEl(), parent = self.parent(), newItems, i; + + if (self.items) { + var controls = self.items().toArray(); + i = controls.length; + while (i--) { + controls[i].remove(); + } + } + + if (parent && parent.items) { + newItems = []; + + parent.items().each(function(item) { + if (item !== self) { + newItems.push(item); + } + }); + + parent.items().set(newItems); + parent._lastRect = null; + } + + if (self._eventsRoot && self._eventsRoot == self) { + DomUtils.off(elm); + } + + var lookup = self.getRoot().controlIdLookup; + if (lookup) { + delete lookup[self._id]; + } + + delete elementIdCache[self._id]; + + if (elm && elm.parentNode) { + var nodes = elm.getElementsByTagName('*'); + + i = nodes.length; + while (i--) { + delete elementIdCache[nodes[i].id]; + } + + elm.parentNode.removeChild(elm); + } + + self._rendered = false; + + return self; + }, + + /** + * Renders the control before the specified element. + * + * @method renderBefore + * @param {Element} elm Element to render before. + * @return {tinymce.ui.Control} Current control instance. + */ + renderBefore: function(elm) { + var self = this; + + elm.parentNode.insertBefore(DomUtils.createFragment(self.renderHtml()), elm); + self.postRender(); + + return self; + }, + + /** + * Renders the control to the specified element. + * + * @method renderBefore + * @param {Element} elm Element to render to. + * @return {tinymce.ui.Control} Current control instance. + */ + renderTo: function(elm) { + var self = this; + + elm = elm || self.getContainerElm(); + elm.appendChild(DomUtils.createFragment(self.renderHtml())); + self.postRender(); + + return self; + }, + + /** + * Post render method. Called after the control has been rendered to the target. + * + * @method postRender + * @return {tinymce.ui.Control} Current control instance. + */ + postRender: function() { + var self = this, settings = self.settings, elm, box, parent, name, parentEventsRoot; + + // Bind on<event> settings + for (name in settings) { + if (name.indexOf("on") === 0) { + self.on(name.substr(2), settings[name]); + } + } + + if (self._eventsRoot) { + for (parent = self.parent(); !parentEventsRoot && parent; parent = parent.parent()) { + parentEventsRoot = parent._eventsRoot; + } + + if (parentEventsRoot) { + for (name in parentEventsRoot._nativeEvents) { + self._nativeEvents[name] = true; + } + } + } + + self.bindPendingEvents(); + + if (settings.style) { + elm = self.getEl(); + if (elm) { + elm.setAttribute('style', settings.style); + elm.style.cssText = settings.style; + } + } + + if (!self._visible) { + DomUtils.css(self.getEl(), 'display', 'none'); + } + + if (self.settings.border) { + box = self.borderBox(); + DomUtils.css(self.getEl(), { + 'border-top-width': box.top, + 'border-right-width': box.right, + 'border-bottom-width': box.bottom, + 'border-left-width': box.left + }); + } + + // Add instance to lookup + var root = self.getRoot(); + if (!root.controlIdLookup) { + root.controlIdLookup = {}; + } + + root.controlIdLookup[self._id] = self; + + for (var key in self._aria) { + self.aria(key, self._aria[key]); + } + + self.fire('postrender', {}, false); + }, + + /** + * Scrolls the current control into view. + * + * @method scrollIntoView + * @param {String} align Alignment in view top|center|bottom. + * @return {tinymce.ui.Control} Current control instance. + */ + scrollIntoView: function(align) { + function getOffset(elm, rootElm) { + var x, y, parent = elm; + + x = y = 0; + while (parent && parent != rootElm && parent.nodeType) { + x += parent.offsetLeft || 0; + y += parent.offsetTop || 0; + parent = parent.offsetParent; + } + + return {x: x, y: y}; + } + + var elm = this.getEl(), parentElm = elm.parentNode; + var x, y, width, height, parentWidth, parentHeight; + var pos = getOffset(elm, parentElm); + + x = pos.x; + y = pos.y; + width = elm.offsetWidth; + height = elm.offsetHeight; + parentWidth = parentElm.clientWidth; + parentHeight = parentElm.clientHeight; + + if (align == "end") { + x -= parentWidth - width; + y -= parentHeight - height; + } else if (align == "center") { + x -= (parentWidth / 2) - (width / 2); + y -= (parentHeight / 2) - (height / 2); + } + + parentElm.scrollLeft = x; + parentElm.scrollTop = y; + + return this; + }, + + /** + * Binds pending DOM events. + * + * @private + */ + bindPendingEvents: function() { + var self = this, i, l, parents, eventRootCtrl, nativeEvents, name; + + function delegate(e) { + var control = self.getParentCtrl(e.target); + + if (control) { + control.fire(e.type, e); + } + } + + function mouseLeaveHandler() { + var ctrl = eventRootCtrl._lastHoverCtrl; + + if (ctrl) { + ctrl.fire("mouseleave", {target: ctrl.getEl()}); + + ctrl.parents().each(function(ctrl) { + ctrl.fire("mouseleave", {target: ctrl.getEl()}); + }); + + eventRootCtrl._lastHoverCtrl = null; + } + } + + function mouseEnterHandler(e) { + var ctrl = self.getParentCtrl(e.target), lastCtrl = eventRootCtrl._lastHoverCtrl, idx = 0, i, parents, lastParents; + + // Over on a new control + if (ctrl !== lastCtrl) { + eventRootCtrl._lastHoverCtrl = ctrl; + + parents = ctrl.parents().toArray().reverse(); + parents.push(ctrl); + + if (lastCtrl) { + lastParents = lastCtrl.parents().toArray().reverse(); + lastParents.push(lastCtrl); + + for (idx = 0; idx < lastParents.length; idx++) { + if (parents[idx] !== lastParents[idx]) { + break; + } + } + + for (i = lastParents.length - 1; i >= idx; i--) { + lastCtrl = lastParents[i]; + lastCtrl.fire("mouseleave", { + target : lastCtrl.getEl() + }); + } + } + + for (i = idx; i < parents.length; i++) { + ctrl = parents[i]; + ctrl.fire("mouseenter", { + target : ctrl.getEl() + }); + } + } + } + + function fixWheelEvent(e) { + e.preventDefault(); + + if (e.type == "mousewheel") { + e.deltaY = -1 / 40 * e.wheelDelta; + + if (e.wheelDeltaX) { + e.deltaX = -1 / 40 * e.wheelDeltaX; + } + } else { + e.deltaX = 0; + e.deltaY = e.detail; + } + + e = self.fire("wheel", e); + } + + self._rendered = true; + + nativeEvents = self._nativeEvents; + if (nativeEvents) { + // Find event root element if it exists + parents = self.parents().toArray(); + parents.unshift(self); + for (i = 0, l = parents.length; !eventRootCtrl && i < l; i++) { + eventRootCtrl = parents[i]._eventsRoot; + } + + // Event root wasn't found the use the root control + if (!eventRootCtrl) { + eventRootCtrl = parents[parents.length - 1] || self; + } + + // Set the eventsRoot property on children that didn't have it + self._eventsRoot = eventRootCtrl; + for (l = i, i = 0; i < l; i++) { + parents[i]._eventsRoot = eventRootCtrl; + } + + // Bind native event delegates + for (name in nativeEvents) { + if (!nativeEvents) { + return false; + } + + if (name === "wheel" && !hasWheelEventSupport) { + if (hasMouseWheelEventSupport) { + DomUtils.on(self.getEl(), "mousewheel", fixWheelEvent); + } else { + DomUtils.on(self.getEl(), "DOMMouseScroll", fixWheelEvent); + } + + continue; + } + + // Special treatment for mousenter/mouseleave since these doesn't bubble + if (name === "mouseenter" || name === "mouseleave") { + // Fake mousenter/mouseleave + if (!eventRootCtrl._hasMouseEnter) { + DomUtils.on(eventRootCtrl.getEl(), "mouseleave", mouseLeaveHandler); + DomUtils.on(eventRootCtrl.getEl(), "mouseover", mouseEnterHandler); + eventRootCtrl._hasMouseEnter = 1; + } + } else if (!eventRootCtrl[name]) { + DomUtils.on(eventRootCtrl.getEl(), name, delegate); + eventRootCtrl[name] = true; + } + + // Remove the event once it's bound + nativeEvents[name] = false; + } + } + }, + + getRoot: function() { + var ctrl = this, rootControl, parents = []; + + while (ctrl) { + if (ctrl.rootControl) { + rootControl = ctrl.rootControl; + break; + } + + parents.push(ctrl); + rootControl = ctrl; + ctrl = ctrl.parent(); + } + + if (!rootControl) { + rootControl = this; + } + + var i = parents.length; + while (i--) { + parents[i].rootControl = rootControl; + } + + return rootControl; + }, + + /** + * Reflows the current control and it's parents. + * This should be used after you for example append children to the current control so + * that the layout managers know that they need to reposition everything. + * + * @example + * container.append({type: 'button', text: 'My button'}).reflow(); + * + * @method reflow + * @return {tinymce.ui.Control} Current control instance. + */ + reflow: function() { + this.repaint(); + + return this; + } + + /** + * Sets/gets the parent container for the control. + * + * @method parent + * @param {tinymce.ui.Container} parent Optional parent to set. + * @return {tinymce.ui.Control} Parent control or the current control on a set action. + */ + // parent: function(parent) {} -- Generated + + /** + * Sets/gets the text for the control. + * + * @method text + * @param {String} value Value to set to control. + * @return {String/tinymce.ui.Control} Current control on a set operation or current value on a get. + */ + // text: function(value) {} -- Generated + + /** + * Sets/gets the width for the control. + * + * @method width + * @param {Number} value Value to set to control. + * @return {Number/tinymce.ui.Control} Current control on a set operation or current value on a get. + */ + // width: function(value) {} -- Generated + + /** + * Sets/gets the height for the control. + * + * @method height + * @param {Number} value Value to set to control. + * @return {Number/tinymce.ui.Control} Current control on a set operation or current value on a get. + */ + // height: function(value) {} -- Generated + + /** + * Sets/gets the disabled state on the control. + * + * @method disabled + * @param {Boolean} state Value to set to control. + * @return {Boolean/tinymce.ui.Control} Current control on a set operation or current state on a get. + */ + // disabled: function(state) {} -- Generated + + /** + * Sets/gets the active for the control. + * + * @method active + * @param {Boolean} state Value to set to control. + * @return {Boolean/tinymce.ui.Control} Current control on a set operation or current state on a get. + */ + // active: function(state) {} -- Generated + + /** + * Sets/gets the name for the control. + * + * @method name + * @param {String} value Value to set to control. + * @return {String/tinymce.ui.Control} Current control on a set operation or current value on a get. + */ + // name: function(value) {} -- Generated + + /** + * Sets/gets the title for the control. + * + * @method title + * @param {String} value Value to set to control. + * @return {String/tinymce.ui.Control} Current control on a set operation or current value on a get. + */ + // title: function(value) {} -- Generated + }); + + return Control; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/DomUtils.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/DomUtils.js new file mode 100755 index 00000000000..cbe3d40de9e --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/DomUtils.js @@ -0,0 +1,95 @@ +/** + * DOMUtils.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +define("tinymce/ui/DomUtils", [ + "tinymce/util/Tools", + "tinymce/dom/DOMUtils" +], function(Tools, DOMUtils) { + "use strict"; + + return { + id: function() { + return DOMUtils.DOM.uniqueId(); + }, + + createFragment: function(html) { + return DOMUtils.DOM.createFragment(html); + }, + + getWindowSize: function() { + return DOMUtils.DOM.getViewPort(); + }, + + getSize: function(elm) { + var width, height; + + if (elm.getBoundingClientRect) { + var rect = elm.getBoundingClientRect(); + + width = Math.max(rect.width || (rect.right - rect.left), elm.offsetWidth); + height = Math.max(rect.height || (rect.bottom - rect.bottom), elm.offsetHeight); + } else { + width = elm.offsetWidth; + height = elm.offsetHeight; + } + + return {width: width, height: height}; + }, + + getPos: function(elm, root) { + return DOMUtils.DOM.getPos(elm, root); + }, + + getViewPort: function(win) { + return DOMUtils.DOM.getViewPort(win); + }, + + get: function(id) { + return document.getElementById(id); + }, + + addClass : function(elm, cls) { + return DOMUtils.DOM.addClass(elm, cls); + }, + + removeClass : function(elm, cls) { + return DOMUtils.DOM.removeClass(elm, cls); + }, + + hasClass : function(elm, cls) { + return DOMUtils.DOM.hasClass(elm, cls); + }, + + toggleClass: function(elm, cls, state) { + return DOMUtils.DOM.toggleClass(elm, cls, state); + }, + + css: function(elm, name, value) { + return DOMUtils.DOM.setStyle(elm, name, value); + }, + + on: function(target, name, callback, scope) { + return DOMUtils.DOM.bind(target, name, callback, scope); + }, + + off: function(target, name, callback) { + return DOMUtils.DOM.unbind(target, name, callback); + }, + + fire: function(target, name, args) { + return DOMUtils.DOM.fire(target, name, args); + }, + + innerHtml: function(elm, html) { + // Workaround for <div> in <p> bug on IE 8 #6178 + DOMUtils.DOM.setHTML(elm, html); + } + }; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/DragHelper.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/DragHelper.js new file mode 100755 index 00000000000..c7c2850b268 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/DragHelper.js @@ -0,0 +1,136 @@ +/** + * DragHelper.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Drag/drop helper class. + * + * @example + * var dragHelper = new tinymce.ui.DragHelper('mydiv', { + * start: function(evt) { + * }, + * + * drag: function(evt) { + * }, + * + * end: function(evt) { + * } + * }); + * + * @class tinymce.ui.DragHelper + */ +define("tinymce/ui/DragHelper", [ + "tinymce/ui/DomUtils" +], function(DomUtils) { + "use strict"; + + function getDocumentSize() { + var doc = document, documentElement, body, scrollWidth, clientWidth; + var offsetWidth, scrollHeight, clientHeight, offsetHeight, max = Math.max; + + documentElement = doc.documentElement; + body = doc.body; + + scrollWidth = max(documentElement.scrollWidth, body.scrollWidth); + clientWidth = max(documentElement.clientWidth, body.clientWidth); + offsetWidth = max(documentElement.offsetWidth, body.offsetWidth); + + scrollHeight = max(documentElement.scrollHeight, body.scrollHeight); + clientHeight = max(documentElement.clientHeight, body.clientHeight); + offsetHeight = max(documentElement.offsetHeight, body.offsetHeight); + + return { + width: scrollWidth < offsetWidth ? clientWidth : scrollWidth, + height: scrollHeight < offsetHeight ? clientHeight : scrollHeight + }; + } + + return function(id, settings) { + var eventOverlayElm, doc = document, downButton, start, stop, drag, startX, startY; + + settings = settings || {}; + + function getHandleElm() { + return doc.getElementById(settings.handle || id); + } + + start = function(e) { + var docSize = getDocumentSize(), handleElm, cursor; + + e.preventDefault(); + downButton = e.button; + handleElm = getHandleElm(); + startX = e.screenX; + startY = e.screenY; + + // Grab cursor from handle + if (window.getComputedStyle) { + cursor = window.getComputedStyle(handleElm, null).getPropertyValue("cursor"); + } else { + cursor = handleElm.runtimeStyle.cursor; + } + + // Create event overlay and add it to document + eventOverlayElm = doc.createElement('div'); + DomUtils.css(eventOverlayElm, { + position: "absolute", + top: 0, left: 0, + width: docSize.width, + height: docSize.height, + zIndex: 0x7FFFFFFF, + opacity: 0.0001, + background: 'red', + cursor: cursor + }); + + doc.body.appendChild(eventOverlayElm); + + // Bind mouse events + DomUtils.on(doc, 'mousemove', drag); + DomUtils.on(doc, 'mouseup', stop); + + // Begin drag + settings.start(e); + }; + + drag = function(e) { + if (e.button !== downButton) { + return stop(e); + } + + e.deltaX = e.screenX - startX; + e.deltaY = e.screenY - startY; + + e.preventDefault(); + settings.drag(e); + }; + + stop = function(e) { + DomUtils.off(doc, 'mousemove', drag); + DomUtils.off(doc, 'mouseup', stop); + + eventOverlayElm.parentNode.removeChild(eventOverlayElm); + + if (settings.stop) { + settings.stop(e); + } + }; + + /** + * Destroys the drag/drop helper instance. + * + * @method destroy + */ + this.destroy = function() { + DomUtils.off(getHandleElm()); + }; + + DomUtils.on(getHandleElm(), 'mousedown', start); + }; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/ElementPath.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/ElementPath.js new file mode 100755 index 00000000000..5b9d7fbcecd --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/ElementPath.js @@ -0,0 +1,83 @@ +/** + * ElementPath.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This control creates an path for the current selections parent elements in TinyMCE. + * + * @class tinymce.ui.ElementPath + * @extends tinymce.ui.Path + */ +define("tinymce/ui/ElementPath", [ + "tinymce/ui/Path", + "tinymce/EditorManager" +], function(Path, EditorManager) { + return Path.extend({ + /** + * Post render method. Called after the control has been rendered to the target. + * + * @method postRender + * @return {tinymce.ui.ElementPath} Current combobox instance. + */ + postRender: function() { + var self = this, editor = EditorManager.activeEditor; + + function isHidden(elm) { + if (elm.nodeType === 1) { + if (elm.nodeName == "BR" || !!elm.getAttribute('data-mce-bogus')) { + return true; + } + + if (elm.getAttribute('data-mce-type') === 'bookmark') { + return true; + } + } + + return false; + } + + self.on('select', function(e) { + var parents = [], node, body = editor.getBody(); + + editor.focus(); + + node = editor.selection.getStart(); + while (node && node != body) { + if (!isHidden(node)) { + parents.push(node); + } + + node = node.parentNode; + } + + editor.selection.select(parents[parents.length - 1 - e.index]); + editor.nodeChanged(); + }); + + editor.on('nodeChange', function(e) { + var parents = [], selectionParents = e.parents, i = selectionParents.length; + + while (i--) { + if (selectionParents[i].nodeType == 1 && !isHidden(selectionParents[i])) { + var args = editor.fire('ResolveName', { + name: selectionParents[i].nodeName.toLowerCase(), + target: selectionParents[i] + }); + + parents.push({name: args.name}); + } + } + + self.data(parents); + }); + + return self._super(); + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Factory.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Factory.js new file mode 100755 index 00000000000..6e4fc1c5139 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Factory.js @@ -0,0 +1,105 @@ +/** + * Factory.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*global tinymce:true */ + +/** + * This class is a factory for control instances. This enables you + * to create instances of controls without having to require the UI controls directly. + * + * It also allow you to override or add new control types. + * + * @class tinymce.ui.Factory + */ +define("tinymce/ui/Factory", [], function() { + "use strict"; + + var types = {}, namespaceInit; + + return { + /** + * Adds a new control instance type to the factory. + * + * @method add + * @param {String} type Type name for example "button". + * @param {function} typeClass Class type function. + */ + add: function(type, typeClass) { + types[type.toLowerCase()] = typeClass; + }, + + /** + * Returns true/false if the specified type exists or not. + * + * @method has + * @param {String} type Type to look for. + * @return {Boolean} true/false if the control by name exists. + */ + has: function(type) { + return !!types[type.toLowerCase()]; + }, + + /** + * Creates a new control instance based on the settings provided. The instance created will be + * based on the specified type property it can also create whole structures of components out of + * the specified JSON object. + * + * @example + * tinymce.ui.Factory.create({ + * type: 'button', + * text: 'Hello world!' + * }); + * + * @method create + * @param {Object/String} settings Name/Value object with items used to create the type. + * @return {tinymce.ui.Control} Control instance based on the specified type. + */ + create: function(type, settings) { + var ControlType, name, namespace; + + // Build type lookup + if (!namespaceInit) { + namespace = tinymce.ui; + + for (name in namespace) { + types[name.toLowerCase()] = namespace[name]; + } + + namespaceInit = true; + } + + // If string is specified then use it as the type + if (typeof(type) == 'string') { + settings = settings || {}; + settings.type = type; + } else { + settings = type; + type = settings.type; + } + + // Find control type + type = type.toLowerCase(); + ControlType = types[type]; + + // #if debug + + if (!ControlType) { + throw new Error("Could not find control by type: " + type); + } + + // #endif + + ControlType = new ControlType(settings); + ControlType.type = type; // Set the type on the instance, this will be used by the Selector engine + + return ControlType; + } + }; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/FieldSet.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/FieldSet.js new file mode 100755 index 00000000000..4142890cb05 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/FieldSet.js @@ -0,0 +1,59 @@ +/** + * FieldSet.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class creates fieldset containers. + * + * @-x-less FieldSet.less + * @class tinymce.ui.FieldSet + * @extends tinymce.ui.Form + */ +define("tinymce/ui/FieldSet", [ + "tinymce/ui/Form" +], function(Form) { + "use strict"; + + return Form.extend({ + Defaults: { + containerCls: 'fieldset', + layout: 'flex', + direction: 'column', + align: 'stretch', + flex: 1, + padding: "25 15 5 15", + labelGap: 30, + spacing: 10, + border: 1 + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, layout = self._layout, prefix = self.classPrefix; + + self.preRender(); + layout.preRender(self); + + return ( + '<fieldset id="' + self._id + '" class="' + self.classes() + '" hideFocus="1" tabIndex="-1">' + + (self.settings.title ? ('<legend id="' + self._id + '-title" class="' + prefix + 'fieldset-title">' + + self.settings.title + '</legend>') : '') + + '<div id="' + self._id + '-body" class="' + self.classes('body') + '">' + + (self.settings.html || '') + layout.renderHtml(self) + + '</div>' + + '</fieldset>' + ); + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/FilePicker.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/FilePicker.js new file mode 100755 index 00000000000..b95bf603deb --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/FilePicker.js @@ -0,0 +1,53 @@ +/** + * FilePicker.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*global tinymce:true */ + +/** + * This class creates a file picker control. + * + * @class tinymce.ui.FilePicker + * @extends tinymce.ui.ComboBox + */ +define("tinymce/ui/FilePicker", [ + "tinymce/ui/ComboBox" +], function(ComboBox) { + "use strict"; + + return ComboBox.extend({ + /** + * Constructs a new control instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + */ + init: function(settings) { + var self = this, editor = tinymce.activeEditor, fileBrowserCallback; + + settings.spellcheck = false; + + fileBrowserCallback = editor.settings.file_browser_callback; + if (fileBrowserCallback) { + settings.icon = 'browse'; + + settings.onaction = function() { + fileBrowserCallback( + self.getEl('inp').id, + self.getEl('inp').value, + settings.filetype, + window + ); + }; + } + + self._super(settings); + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/FitLayout.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/FitLayout.js new file mode 100755 index 00000000000..6809204441a --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/FitLayout.js @@ -0,0 +1,48 @@ +/** + * FitLayout.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This layout manager will resize the control to be the size of it's parent container. + * In other words width: 100% and height: 100%. + * + * @-x-less FitLayout.less + * @class tinymce.ui.FitLayout + * @extends tinymce.ui.AbsoluteLayout + */ +define("tinymce/ui/FitLayout", [ + "tinymce/ui/AbsoluteLayout" +], function(AbsoluteLayout) { + "use strict"; + + return AbsoluteLayout.extend({ + /** + * Recalculates the positions of the controls in the specified container. + * + * @method recalc + * @param {tinymce.ui.Container} container Container instance to recalc. + */ + recalc: function(container) { + var contLayoutRect = container.layoutRect(), paddingBox = container.paddingBox(); + + container.items().filter(':visible').each(function(ctrl) { + ctrl.layoutRect({ + x: paddingBox.left, + y: paddingBox.top, + w: contLayoutRect.innerW - paddingBox.right - paddingBox.left, + h: contLayoutRect.innerH - paddingBox.top - paddingBox.bottom + }); + + if (ctrl.recalc) { + ctrl.recalc(); + } + }); + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/FlexLayout.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/FlexLayout.js new file mode 100755 index 00000000000..99761c8068a --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/FlexLayout.js @@ -0,0 +1,246 @@ +/** + * FlexLayout.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This layout manager works similar to the CSS flex box. + * + * @setting {String} direction row|row-reverse|column|column-reverse + * @setting {Number} flex A positive-number to flex by. + * @setting {String} align start|end|center|stretch + * @setting {String} pack start|end|justify + * + * @class tinymce.ui.FlexLayout + * @extends tinymce.ui.AbsoluteLayout + */ +define("tinymce/ui/FlexLayout", [ + "tinymce/ui/AbsoluteLayout" +], function(AbsoluteLayout) { + "use strict"; + + return AbsoluteLayout.extend({ + /** + * Recalculates the positions of the controls in the specified container. + * + * @method recalc + * @param {tinymce.ui.Container} container Container instance to recalc. + */ + recalc: function(container) { + // A ton of variables, needs to be in the same scope for performance + var i, l, items, contLayoutRect, contPaddingBox, contSettings, align, pack, spacing, totalFlex, availableSpace, direction; + var ctrl, ctrlLayoutRect, ctrlSettings, flex, maxSizeItems = [], size, maxSize, ratio, rect, pos, maxAlignEndPos; + var sizeName, minSizeName, posName, maxSizeName, beforeName, innerSizeName, deltaSizeName, contentSizeName; + var alignAxisName, alignInnerSizeName, alignSizeName, alignMinSizeName, alignBeforeName, alignAfterName; + var alignDeltaSizeName, alignContentSizeName; + var max = Math.max, min = Math.min; + + // Get container items, properties and settings + items = container.items().filter(':visible'); + contLayoutRect = container.layoutRect(); + contPaddingBox = container._paddingBox; + contSettings = container.settings; + direction = container.isRtl() ? (contSettings.direction || 'row-reversed') : contSettings.direction; + align = contSettings.align; + pack = container.isRtl() ? (contSettings.pack || 'end') : contSettings.pack; + spacing = contSettings.spacing || 0; + + if (direction == "row-reversed" || direction == "column-reverse") { + items = items.set(items.toArray().reverse()); + direction = direction.split('-')[0]; + } + + // Setup axis variable name for row/column direction since the calculations is the same + if (direction == "column") { + posName = "y"; + sizeName = "h"; + minSizeName = "minH"; + maxSizeName = "maxH"; + innerSizeName = "innerH"; + beforeName = 'top'; + deltaSizeName = "deltaH"; + contentSizeName = "contentH"; + + alignBeforeName = "left"; + alignSizeName = "w"; + alignAxisName = "x"; + alignInnerSizeName = "innerW"; + alignMinSizeName = "minW"; + alignAfterName = "right"; + alignDeltaSizeName = "deltaW"; + alignContentSizeName = "contentW"; + } else { + posName = "x"; + sizeName = "w"; + minSizeName = "minW"; + maxSizeName = "maxW"; + innerSizeName = "innerW"; + beforeName = 'left'; + deltaSizeName = "deltaW"; + contentSizeName = "contentW"; + + alignBeforeName = "top"; + alignSizeName = "h"; + alignAxisName = "y"; + alignInnerSizeName = "innerH"; + alignMinSizeName = "minH"; + alignAfterName = "bottom"; + alignDeltaSizeName = "deltaH"; + alignContentSizeName = "contentH"; + } + + // Figure out total flex, availableSpace and collect any max size elements + availableSpace = contLayoutRect[innerSizeName] - contPaddingBox[beforeName] - contPaddingBox[beforeName]; + maxAlignEndPos = totalFlex = 0; + for (i = 0, l = items.length; i < l; i++) { + ctrl = items[i]; + ctrlLayoutRect = ctrl.layoutRect(); + ctrlSettings = ctrl.settings; + flex = ctrlSettings.flex; + availableSpace -= (i < l - 1 ? spacing : 0); + + if (flex > 0) { + totalFlex += flex; + + // Flexed item has a max size then we need to check if we will hit that size + if (ctrlLayoutRect[maxSizeName]) { + maxSizeItems.push(ctrl); + } + + ctrlLayoutRect.flex = flex; + } + + availableSpace -= ctrlLayoutRect[minSizeName]; + + // Calculate the align end position to be used to check for overflow/underflow + size = contPaddingBox[alignBeforeName] + ctrlLayoutRect[alignMinSizeName] + contPaddingBox[alignAfterName]; + if (size > maxAlignEndPos) { + maxAlignEndPos = size; + } + } + + // Calculate minW/minH + rect = {}; + if (availableSpace < 0) { + rect[minSizeName] = contLayoutRect[minSizeName] - availableSpace + contLayoutRect[deltaSizeName]; + } else { + rect[minSizeName] = contLayoutRect[innerSizeName] - availableSpace + contLayoutRect[deltaSizeName]; + } + + rect[alignMinSizeName] = maxAlignEndPos + contLayoutRect[alignDeltaSizeName]; + + rect[contentSizeName] = contLayoutRect[innerSizeName] - availableSpace; + rect[alignContentSizeName] = maxAlignEndPos; + rect.minW = min(rect.minW, contLayoutRect.maxW); + rect.minH = min(rect.minH, contLayoutRect.maxH); + rect.minW = max(rect.minW, contLayoutRect.startMinWidth); + rect.minH = max(rect.minH, contLayoutRect.startMinHeight); + + // Resize container container if minSize was changed + if (contLayoutRect.autoResize && (rect.minW != contLayoutRect.minW || rect.minH != contLayoutRect.minH)) { + rect.w = rect.minW; + rect.h = rect.minH; + + container.layoutRect(rect); + this.recalc(container); + + // Forced recalc for example if items are hidden/shown + if (container._lastRect === null) { + var parentCtrl = container.parent(); + if (parentCtrl) { + parentCtrl._lastRect = null; + parentCtrl.recalc(); + } + } + + return; + } + + // Handle max size elements, check if they will become to wide with current options + ratio = availableSpace / totalFlex; + for (i = 0, l = maxSizeItems.length; i < l; i++) { + ctrl = maxSizeItems[i]; + ctrlLayoutRect = ctrl.layoutRect(); + maxSize = ctrlLayoutRect[maxSizeName]; + size = ctrlLayoutRect[minSizeName] + ctrlLayoutRect.flex * ratio; + + if (size > maxSize) { + availableSpace -= (ctrlLayoutRect[maxSizeName] - ctrlLayoutRect[minSizeName]); + totalFlex -= ctrlLayoutRect.flex; + ctrlLayoutRect.flex = 0; + ctrlLayoutRect.maxFlexSize = maxSize; + } else { + ctrlLayoutRect.maxFlexSize = 0; + } + } + + // Setup new ratio, target layout rect, start position + ratio = availableSpace / totalFlex; + pos = contPaddingBox[beforeName]; + rect = {}; + + // Handle pack setting moves the start position to end, center + if (totalFlex === 0) { + if (pack == "end") { + pos = availableSpace + contPaddingBox[beforeName]; + } else if (pack == "center") { + pos = Math.round( + (contLayoutRect[innerSizeName] / 2) - ((contLayoutRect[innerSizeName] - availableSpace) / 2) + ) + contPaddingBox[beforeName]; + + if (pos < 0) { + pos = contPaddingBox[beforeName]; + } + } else if (pack == "justify") { + pos = contPaddingBox[beforeName]; + spacing = Math.floor(availableSpace / (items.length - 1)); + } + } + + // Default aligning (start) the other ones needs to be calculated while doing the layout + rect[alignAxisName] = contPaddingBox[alignBeforeName]; + + // Start laying out controls + for (i = 0, l = items.length; i < l; i++) { + ctrl = items[i]; + ctrlLayoutRect = ctrl.layoutRect(); + size = ctrlLayoutRect.maxFlexSize || ctrlLayoutRect[minSizeName]; + + // Align the control on the other axis + if (align === "center") { + rect[alignAxisName] = Math.round((contLayoutRect[alignInnerSizeName] / 2) - (ctrlLayoutRect[alignSizeName] / 2)); + } else if (align === "stretch") { + rect[alignSizeName] = max( + ctrlLayoutRect[alignMinSizeName] || 0, + contLayoutRect[alignInnerSizeName] - contPaddingBox[alignBeforeName] - contPaddingBox[alignAfterName] + ); + rect[alignAxisName] = contPaddingBox[alignBeforeName]; + } else if (align === "end") { + rect[alignAxisName] = contLayoutRect[alignInnerSizeName] - ctrlLayoutRect[alignSizeName] - contPaddingBox.top; + } + + // Calculate new size based on flex + if (ctrlLayoutRect.flex > 0) { + size += ctrlLayoutRect.flex * ratio; + } + + rect[sizeName] = size; + rect[posName] = pos; + ctrl.layoutRect(rect); + + // Recalculate containers + if (ctrl.recalc) { + ctrl.recalc(); + } + + // Move x/y position + pos += size + spacing; + } + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/FloatPanel.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/FloatPanel.js new file mode 100755 index 00000000000..27457eee0e8 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/FloatPanel.js @@ -0,0 +1,366 @@ +/** + * FloatPanel.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class creates a floating panel. + * + * @-x-less FloatPanel.less + * @class tinymce.ui.FloatPanel + * @extends tinymce.ui.Panel + * @mixes tinymce.ui.Movable + * @mixes tinymce.ui.Resizable + */ +define("tinymce/ui/FloatPanel", [ + "tinymce/ui/Panel", + "tinymce/ui/Movable", + "tinymce/ui/Resizable", + "tinymce/ui/DomUtils" +], function(Panel, Movable, Resizable, DomUtils) { + "use strict"; + + var documentClickHandler, documentScrollHandler, visiblePanels = []; + var zOrder = [], hasModal; + + var FloatPanel = Panel.extend({ + Mixins: [Movable, Resizable], + + /** + * Constructs a new control instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {Boolean} autohide Automatically hide the panel. + */ + init: function(settings) { + var self = this; + + function reorder() { + var i, zIndex = FloatPanel.zIndex || 0xFFFF, topModal; + + if (zOrder.length) { + for (i = 0; i < zOrder.length; i++) { + if (zOrder[i].modal) { + zIndex++; + topModal = zOrder[i]; + } + + zOrder[i].getEl().style.zIndex = zIndex; + zOrder[i].zIndex = zIndex; + zIndex++; + } + } + + var modalBlockEl = document.getElementById(self.classPrefix + 'modal-block'); + + if (topModal) { + DomUtils.css(modalBlockEl, 'z-index', topModal.zIndex - 1); + } else if (modalBlockEl) { + modalBlockEl.parentNode.removeChild(modalBlockEl); + hasModal = false; + } + + FloatPanel.currentZIndex = zIndex; + } + + function isChildOf(ctrl, parent) { + while (ctrl) { + if (ctrl == parent) { + return true; + } + + ctrl = ctrl.parent(); + } + } + + /** + * Repositions the panel to the top of page if the panel is outside of the visual viewport. It will + * also reposition all child panels of the current panel. + */ + function repositionPanel(panel) { + var scrollY = DomUtils.getViewPort().y; + + function toggleFixedChildPanels(fixed, deltaY) { + var parent; + + for (var i = 0; i < visiblePanels.length; i++) { + if (visiblePanels[i] != panel) { + parent = visiblePanels[i].parent(); + + while (parent && (parent = parent.parent())) { + if (parent == panel) { + visiblePanels[i].fixed(fixed).moveBy(0, deltaY).repaint(); + } + } + } + } + } + + if (panel.settings.autofix) { + if (!panel._fixed) { + panel._autoFixY = panel.layoutRect().y; + + if (panel._autoFixY < scrollY) { + panel.fixed(true).layoutRect({y: 0}).repaint(); + toggleFixedChildPanels(true, scrollY - panel._autoFixY); + } + } else { + if (panel._autoFixY > scrollY) { + panel.fixed(false).layoutRect({y: panel._autoFixY}).repaint(); + toggleFixedChildPanels(false, panel._autoFixY - scrollY); + } + } + } + } + + self._super(settings); + self._eventsRoot = self; + + self.addClass('floatpanel'); + + // Hide floatpanes on click out side the root button + if (settings.autohide) { + if (!documentClickHandler) { + documentClickHandler = function(e) { + // Hide any float panel when a click is out side that float panel and the + // float panels direct parent for example a click on a menu button + var i = visiblePanels.length; + while (i--) { + var panel = visiblePanels[i], clickCtrl = panel.getParentCtrl(e.target); + + if (panel.settings.autohide) { + if (clickCtrl) { + if (isChildOf(clickCtrl, panel) || panel.parent() === clickCtrl) { + continue; + } + } + + e = panel.fire('autohide', {target: e.target}); + if (!e.isDefaultPrevented()) { + panel.hide(); + } + } + } + }; + + DomUtils.on(document, 'click', documentClickHandler); + } + + visiblePanels.push(self); + } + + if (settings.autofix) { + if (!documentScrollHandler) { + documentScrollHandler = function() { + var i; + + i = visiblePanels.length; + while (i--) { + repositionPanel(visiblePanels[i]); + } + }; + + DomUtils.on(window, 'scroll', documentScrollHandler); + } + + self.on('move', function() { + repositionPanel(this); + }); + } + + self.on('postrender show', function(e) { + if (e.control == self) { + var modalBlockEl, prefix = self.classPrefix; + + if (self.modal && !hasModal) { + modalBlockEl = DomUtils.createFragment('<div id="' + prefix + 'modal-block" class="' + + prefix + 'reset ' + prefix + 'fade"></div>'); + modalBlockEl = modalBlockEl.firstChild; + + self.getContainerElm().appendChild(modalBlockEl); + + setTimeout(function() { + DomUtils.addClass(modalBlockEl, prefix + 'in'); + DomUtils.addClass(self.getEl(), prefix + 'in'); + }, 0); + + hasModal = true; + } + + zOrder.push(self); + reorder(); + } + }); + + self.on('close hide', function(e) { + if (e.control == self) { + var i = zOrder.length; + + while (i--) { + if (zOrder[i] === self) { + zOrder.splice(i, 1); + } + } + + reorder(); + } + }); + + self.on('show', function() { + self.parents().each(function(ctrl) { + if (ctrl._fixed) { + self.fixed(true); + return false; + } + }); + }); + + if (settings.popover) { + self._preBodyHtml = '<div class="' + self.classPrefix + 'arrow"></div>'; + self.addClass('popover').addClass('bottom').addClass(self.isRtl() ? 'end' : 'start'); + } + }, + + fixed: function(state) { + var self = this; + + if (self._fixed != state) { + if (self._rendered) { + var viewport = DomUtils.getViewPort(); + + if (state) { + self.layoutRect().y -= viewport.y; + } else { + self.layoutRect().y += viewport.y; + } + } + + self.toggleClass('fixed', state); + self._fixed = state; + } + + return self; + }, + + /** + * Shows the current float panel. + * + * @method show + * @return {tinymce.ui.FloatPanel} Current floatpanel instance. + */ + show: function() { + var self = this, i, state = self._super(); + + i = visiblePanels.length; + while (i--) { + if (visiblePanels[i] === self) { + break; + } + } + + if (i === -1) { + visiblePanels.push(self); + } + + return state; + }, + + /** + * Hides the current float panel. + * + * @method hide + * @return {tinymce.ui.FloatPanel} Current floatpanel instance. + */ + hide: function() { + removeVisiblePanel(this); + return this._super(); + }, + + /** + * Hides all visible the float panels. + * + * @method hideAll + */ + hideAll: function() { + FloatPanel.hideAll(); + }, + + /** + * Closes the float panel. This will remove the float panel from page and fire the close event. + * + * @method close + */ + close: function() { + var self = this; + + self.fire('close'); + + return self.remove(); + }, + + /** + * Removes the float panel from page. + * + * @method remove + */ + remove: function() { + removeVisiblePanel(this); + this._super(); + }, + + postRender: function() { + var self = this; + + if (self.settings.bodyRole) { + this.getEl('body').setAttribute('role', self.settings.bodyRole); + } + + return self._super(); + } + }); + + /** + * Hides all visible the float panels. + * + * @static + * @method hideAll + */ + FloatPanel.hideAll = function() { + var i = visiblePanels.length; + + while (i--) { + var panel = visiblePanels[i]; + + if (panel && panel.settings.autohide) { + panel.hide(); + visiblePanels.splice(i, 1); + } + } + }; + + function removeVisiblePanel(panel) { + var i; + + i = visiblePanels.length; + while (i--) { + if (visiblePanels[i] === panel) { + visiblePanels.splice(i, 1); + } + } + + i = zOrder.length; + while (i--) { + if (zOrder[i] === panel) { + zOrder.splice(i, 1); + } + } + } + + return FloatPanel; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/FlowLayout.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/FlowLayout.js new file mode 100755 index 00000000000..cc40c22b749 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/FlowLayout.js @@ -0,0 +1,42 @@ +/** + * FlowLayout.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This layout manager will place the controls by using the browsers native layout. + * + * @-x-less FlowLayout.less + * @class tinymce.ui.FlowLayout + * @extends tinymce.ui.Layout + */ +define("tinymce/ui/FlowLayout", [ + "tinymce/ui/Layout" +], function(Layout) { + return Layout.extend({ + Defaults: { + containerClass: 'flow-layout', + controlClass: 'flow-layout-item', + endClass : 'break' + }, + + /** + * Recalculates the positions of the controls in the specified container. + * + * @method recalc + * @param {tinymce.ui.Container} container Container instance to recalc. + */ + recalc: function(container) { + container.items().filter(':visible').each(function(ctrl) { + if (ctrl.recalc) { + ctrl.recalc(); + } + }); + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Form.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Form.js new file mode 100755 index 00000000000..074ebc2832c --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Form.js @@ -0,0 +1,154 @@ +/** + * Form.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class creates a form container. A form container has the ability + * to automatically wrap items in tinymce.ui.FormItem instances. + * + * Each FormItem instance is a container for the label and the item. + * + * @example + * tinymce.ui.Factory.create({ + * type: 'form', + * items: [ + * {type: 'textbox', label: 'My text box'} + * ] + * }).renderTo(document.body); + * + * @class tinymce.ui.Form + * @extends tinymce.ui.Container + */ +define("tinymce/ui/Form", [ + "tinymce/ui/Container", + "tinymce/ui/FormItem" +], function(Container, FormItem) { + "use strict"; + + return Container.extend({ + Defaults: { + containerCls: 'form', + layout: 'flex', + direction: 'column', + align: 'stretch', + flex: 1, + padding: 20, + labelGap: 30, + spacing: 10, + callbacks: { + submit: function() { + this.submit(); + } + } + }, + + /** + * This method gets invoked before the control is rendered. + * + * @method preRender + */ + preRender: function() { + var self = this, items = self.items(); + + // Wrap any labeled items in FormItems + items.each(function(ctrl) { + var formItem, label = ctrl.settings.label; + + if (label) { + formItem = new FormItem({ + layout: 'flex', + autoResize: "overflow", + defaults: {flex: 1}, + items: [ + {type: 'label', id: ctrl._id + '-l', text: label, flex: 0, forId: ctrl._id, disabled: ctrl.disabled()} + ] + }); + + formItem.type = 'formitem'; + ctrl.aria('labelledby', ctrl._id + '-l'); + + if (typeof(ctrl.settings.flex) == "undefined") { + ctrl.settings.flex = 1; + } + + self.replace(ctrl, formItem); + formItem.add(ctrl); + } + }); + }, + + /** + * Recalcs label widths. + * + * @private + */ + recalcLabels: function() { + var self = this, maxLabelWidth = 0, labels = [], i, labelGap; + + if (self.settings.labelGapCalc === false) { + return; + } + + self.items().filter('formitem').each(function(item) { + var labelCtrl = item.items()[0], labelWidth = labelCtrl.getEl().clientWidth; + + maxLabelWidth = labelWidth > maxLabelWidth ? labelWidth : maxLabelWidth; + labels.push(labelCtrl); + }); + + labelGap = self.settings.labelGap || 0; + + i = labels.length; + while (i--) { + labels[i].settings.minWidth = maxLabelWidth + labelGap; + } + }, + + /** + * Getter/setter for the visibility state. + * + * @method visible + * @param {Boolean} [state] True/false state to show/hide. + * @return {tinymce.ui.Form|Boolean} True/false state or current control. + */ + visible: function(state) { + var val = this._super(state); + + if (state === true && this._rendered) { + this.recalcLabels(); + } + + return val; + }, + + /** + * Fires a submit event with the serialized form. + * + * @method submit + * @return {Object} Event arguments object. + */ + submit: function() { + return this.fire('submit', {data: this.toJSON()}); + }, + + /** + * Post render method. Called after the control has been rendered to the target. + * + * @method postRender + * @return {tinymce.ui.ComboBox} Current combobox instance. + */ + postRender: function() { + var self = this; + + self._super(); + self.recalcLabels(); + self.fromJSON(self.settings.data); + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/FormItem.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/FormItem.js new file mode 100755 index 00000000000..56408db8acd --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/FormItem.js @@ -0,0 +1,56 @@ +/** + * FormItem.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class is a container created by the form element with + * a label and control item. + * + * @class tinymce.ui.FormItem + * @extends tinymce.ui.Container + * @setting {String} label Label to display for the form item. + */ +define("tinymce/ui/FormItem", [ + "tinymce/ui/Container" +], function(Container) { + "use strict"; + + return Container.extend({ + Defaults: { + layout: 'flex', + align: 'center', + defaults: { + flex: 1 + } + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, layout = self._layout, prefix = self.classPrefix; + + self.addClass('formitem'); + layout.preRender(self); + + return ( + '<div id="' + self._id + '" class="' + self.classes() + '" hideFocus="1" tabIndex="-1">' + + (self.settings.title ? ('<div id="' + self._id + '-title" class="' + prefix + 'title">' + + self.settings.title + '</div>') : '') + + '<div id="' + self._id + '-body" class="' + self.classes('body') + '">' + + (self.settings.html || '') + layout.renderHtml(self) + + '</div>' + + '</div>' + ); + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/FormatControls.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/FormatControls.js new file mode 100755 index 00000000000..cce53fbf152 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/FormatControls.js @@ -0,0 +1,652 @@ +/** + * FormatControls.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Internal class containing all TinyMCE specific control types such as + * format listboxes, fontlist boxes, toolbar buttons etc. + * + * @class tinymce.ui.FormatControls + */ +define("tinymce/ui/FormatControls", [ + "tinymce/ui/Control", + "tinymce/ui/Widget", + "tinymce/ui/FloatPanel", + "tinymce/util/Tools", + "tinymce/EditorManager", + "tinymce/Env" +], function(Control, Widget, FloatPanel, Tools, EditorManager, Env) { + var each = Tools.each; + + EditorManager.on('AddEditor', function(e) { + if (e.editor.rtl) { + Control.rtl = true; + } + + registerControls(e.editor); + }); + + Control.translate = function(text) { + return EditorManager.translate(text); + }; + + Widget.tooltips = !Env.iOS; + + function registerControls(editor) { + var formatMenu; + + // Generates a preview for a format + function getPreviewCss(format) { + var name, previewElm, dom = editor.dom; + var previewCss = '', parentFontSize, previewStyles; + + previewStyles = editor.settings.preview_styles; + + // No preview forced + if (previewStyles === false) { + return ''; + } + + // Default preview + if (!previewStyles) { + previewStyles = 'font-family font-size font-weight font-style text-decoration ' + + 'text-transform color background-color border border-radius outline text-shadow'; + } + + // Removes any variables since these can't be previewed + function removeVars(val) { + return val.replace(/%(\w+)/g, ''); + } + + // Create block/inline element to use for preview + format = editor.formatter.get(format); + if (!format) { + return; + } + + format = format[0]; + name = format.block || format.inline || 'span'; + previewElm = dom.create(name); + + // Add format styles to preview element + each(format.styles, function(value, name) { + value = removeVars(value); + + if (value) { + dom.setStyle(previewElm, name, value); + } + }); + + // Add attributes to preview element + each(format.attributes, function(value, name) { + value = removeVars(value); + + if (value) { + dom.setAttrib(previewElm, name, value); + } + }); + + // Add classes to preview element + each(format.classes, function(value) { + value = removeVars(value); + + if (!dom.hasClass(previewElm, value)) { + dom.addClass(previewElm, value); + } + }); + + editor.fire('PreviewFormats'); + + // Add the previewElm outside the visual area + dom.setStyles(previewElm, {position: 'absolute', left: -0xFFFF}); + editor.getBody().appendChild(previewElm); + + // Get parent container font size so we can compute px values out of em/% for older IE:s + parentFontSize = dom.getStyle(editor.getBody(), 'fontSize', true); + parentFontSize = /px$/.test(parentFontSize) ? parseInt(parentFontSize, 10) : 0; + + each(previewStyles.split(' '), function(name) { + var value = dom.getStyle(previewElm, name, true); + + // If background is transparent then check if the body has a background color we can use + if (name == 'background-color' && /transparent|rgba\s*\([^)]+,\s*0\)/.test(value)) { + value = dom.getStyle(editor.getBody(), name, true); + + // Ignore white since it's the default color, not the nicest fix + // TODO: Fix this by detecting runtime style + if (dom.toHex(value).toLowerCase() == '#ffffff') { + return; + } + } + + if (name == 'color') { + // Ignore black since it's the default color, not the nicest fix + // TODO: Fix this by detecting runtime style + if (dom.toHex(value).toLowerCase() == '#000000') { + return; + } + } + + // Old IE won't calculate the font size so we need to do that manually + if (name == 'font-size') { + if (/em|%$/.test(value)) { + if (parentFontSize === 0) { + return; + } + + // Convert font size from em/% to px + value = parseFloat(value, 10) / (/%$/.test(value) ? 100 : 1); + value = (value * parentFontSize) + 'px'; + } + } + + if (name == "border" && value) { + previewCss += 'padding:0 2px;'; + } + + previewCss += name + ':' + value + ';'; + }); + + editor.fire('AfterPreviewFormats'); + + //previewCss += 'line-height:normal'; + + dom.remove(previewElm); + + return previewCss; + } + + function createListBoxChangeHandler(items, formatName) { + return function() { + var self = this; + + editor.on('nodeChange', function(e) { + var formatter = editor.formatter; + var value = null; + + each(e.parents, function(node) { + each(items, function(item) { + if (formatName) { + if (formatter.matchNode(node, formatName, {value: item.value})) { + value = item.value; + } + } else { + if (formatter.matchNode(node, item.value)) { + value = item.value; + } + } + + if (value) { + return false; + } + }); + + if (value) { + return false; + } + }); + + self.value(value); + }); + }; + } + + function createFormats(formats) { + formats = formats.split(';'); + + var i = formats.length; + while (i--) { + formats[i] = formats[i].split('='); + } + + return formats; + } + + function createFormatMenu() { + var count = 0, newFormats = []; + + var defaultStyleFormats = [ + {title: 'Headers', items: [ + {title: 'Header 1', format: 'h1'}, + {title: 'Header 2', format: 'h2'}, + {title: 'Header 3', format: 'h3'}, + {title: 'Header 4', format: 'h4'}, + {title: 'Header 5', format: 'h5'}, + {title: 'Header 6', format: 'h6'} + ]}, + + {title: 'Inline', items: [ + {title: 'Bold', icon: 'bold', format: 'bold'}, + {title: 'Italic', icon: 'italic', format: 'italic'}, + {title: 'Underline', icon: 'underline', format: 'underline'}, + {title: 'Strikethrough', icon: 'strikethrough', format: 'strikethrough'}, + {title: 'Superscript', icon: 'superscript', format: 'superscript'}, + {title: 'Subscript', icon: 'subscript', format: 'subscript'}, + {title: 'Code', icon: 'code', format: 'code'} + ]}, + + {title: 'Blocks', items: [ + {title: 'Paragraph', format: 'p'}, + {title: 'Blockquote', format: 'blockquote'}, + {title: 'Div', format: 'div'}, + {title: 'Pre', format: 'pre'} + ]}, + + {title: 'Alignment', items: [ + {title: 'Left', icon: 'alignleft', format: 'alignleft'}, + {title: 'Center', icon: 'aligncenter', format: 'aligncenter'}, + {title: 'Right', icon: 'alignright', format: 'alignright'}, + {title: 'Justify', icon: 'alignjustify', format: 'alignjustify'} + ]} + ]; + + function createMenu(formats) { + var menu = []; + + if (!formats) { + return; + } + + each(formats, function(format) { + var menuItem = { + text: format.title, + icon: format.icon + }; + + if (format.items) { + menuItem.menu = createMenu(format.items); + } else { + var formatName = format.format || "custom" + count++; + + if (!format.format) { + format.name = formatName; + newFormats.push(format); + } + + menuItem.format = formatName; + } + + menu.push(menuItem); + }); + + return menu; + } + + function createStylesMenu() { + var menu; + + if (editor.settings.style_formats_merge) { + if (editor.settings.style_formats) { + menu = createMenu(defaultStyleFormats.concat(editor.settings.style_formats)); + } else { + menu = createMenu(defaultStyleFormats); + } + } else { + menu = createMenu(editor.settings.style_formats || defaultStyleFormats); + } + + return menu; + } + + editor.on('init', function() { + each(newFormats, function(format) { + editor.formatter.register(format.name, format); + }); + }); + + return { + type: 'menu', + items: createStylesMenu(), + onPostRender: function(e) { + editor.fire('renderFormatsMenu', {control: e.control}); + }, + itemDefaults: { + preview: true, + + textStyle: function() { + if (this.settings.format) { + return getPreviewCss(this.settings.format); + } + }, + + onPostRender: function() { + var self = this, formatName = this.settings.format; + + if (formatName) { + self.parent().on('show', function() { + self.disabled(!editor.formatter.canApply(formatName)); + self.active(editor.formatter.match(formatName)); + }); + } + }, + + onclick: function() { + if (this.settings.format) { + toggleFormat(this.settings.format); + } + } + } + }; + } + + formatMenu = createFormatMenu(); + + // Simple format controls <control/format>:<UI text> + each({ + bold: 'Bold', + italic: 'Italic', + underline: 'Underline', + strikethrough: 'Strikethrough', + subscript: 'Subscript', + superscript: 'Superscript' + }, function(text, name) { + editor.addButton(name, { + tooltip: text, + onPostRender: function() { + var self = this; + + // TODO: Fix this + if (editor.formatter) { + editor.formatter.formatChanged(name, function(state) { + self.active(state); + }); + } else { + editor.on('init', function() { + editor.formatter.formatChanged(name, function(state) { + self.active(state); + }); + }); + } + }, + onclick: function() { + toggleFormat(name); + } + }); + }); + + // Simple command controls <control>:[<UI text>,<Command>] + each({ + outdent: ['Decrease indent', 'Outdent'], + indent: ['Increase indent', 'Indent'], + cut: ['Cut', 'Cut'], + copy: ['Copy', 'Copy'], + paste: ['Paste', 'Paste'], + help: ['Help', 'mceHelp'], + selectall: ['Select all', 'SelectAll'], + hr: ['Insert horizontal rule', 'InsertHorizontalRule'], + removeformat: ['Clear formatting', 'RemoveFormat'], + visualaid: ['Visual aids', 'mceToggleVisualAid'], + newdocument: ['New document', 'mceNewDocument'] + }, function(item, name) { + editor.addButton(name, { + tooltip: item[0], + cmd: item[1] + }); + }); + + // Simple command controls with format state + each({ + blockquote: ['Blockquote', 'mceBlockQuote'], + numlist: ['Numbered list', 'InsertOrderedList'], + bullist: ['Bullet list', 'InsertUnorderedList'], + subscript: ['Subscript', 'Subscript'], + superscript: ['Superscript', 'Superscript'], + alignleft: ['Align left', 'JustifyLeft'], + aligncenter: ['Align center', 'JustifyCenter'], + alignright: ['Align right', 'JustifyRight'], + alignjustify: ['Justify', 'JustifyFull'] + }, function(item, name) { + editor.addButton(name, { + tooltip: item[0], + cmd: item[1], + onPostRender: function() { + var self = this; + + // TODO: Fix this + if (editor.formatter) { + editor.formatter.formatChanged(name, function(state) { + self.active(state); + }); + } else { + editor.on('init', function() { + editor.formatter.formatChanged(name, function(state) { + self.active(state); + }); + }); + } + } + }); + }); + + function hasUndo() { + return editor.undoManager ? editor.undoManager.hasUndo() : false; + } + + function hasRedo() { + return editor.undoManager ? editor.undoManager.hasRedo() : false; + } + + function toggleUndoState() { + var self = this; + + self.disabled(!hasUndo()); + editor.on('Undo Redo AddUndo TypingUndo', function() { + self.disabled(!hasUndo()); + }); + } + + function toggleRedoState() { + var self = this; + + self.disabled(!hasRedo()); + editor.on('Undo Redo AddUndo TypingUndo', function() { + self.disabled(!hasRedo()); + }); + } + + function toggleVisualAidState() { + var self = this; + + editor.on('VisualAid', function(e) { + self.active(e.hasVisual); + }); + + self.active(editor.hasVisual); + } + + editor.addButton('undo', { + tooltip: 'Undo', + onPostRender: toggleUndoState, + cmd: 'undo' + }); + + editor.addButton('redo', { + tooltip: 'Redo', + onPostRender: toggleRedoState, + cmd: 'redo' + }); + + editor.addMenuItem('newdocument', { + text: 'New document', + shortcut: 'Ctrl+N', + icon: 'newdocument', + cmd: 'mceNewDocument' + }); + + editor.addMenuItem('undo', { + text: 'Undo', + icon: 'undo', + shortcut: 'Ctrl+Z', + onPostRender: toggleUndoState, + cmd: 'undo' + }); + + editor.addMenuItem('redo', { + text: 'Redo', + icon: 'redo', + shortcut: 'Ctrl+Y', + onPostRender: toggleRedoState, + cmd: 'redo' + }); + + editor.addMenuItem('visualaid', { + text: 'Visual aids', + selectable: true, + onPostRender: toggleVisualAidState, + cmd: 'mceToggleVisualAid' + }); + + each({ + cut: ['Cut', 'Cut', 'Ctrl+X'], + copy: ['Copy', 'Copy', 'Ctrl+C'], + paste: ['Paste', 'Paste', 'Ctrl+V'], + selectall: ['Select all', 'SelectAll', 'Ctrl+A'], + bold: ['Bold', 'Bold', 'Ctrl+B'], + italic: ['Italic', 'Italic', 'Ctrl+I'], + underline: ['Underline', 'Underline'], + strikethrough: ['Strikethrough', 'Strikethrough'], + subscript: ['Subscript', 'Subscript'], + superscript: ['Superscript', 'Superscript'], + removeformat: ['Clear formatting', 'RemoveFormat'] + }, function(item, name) { + editor.addMenuItem(name, { + text: item[0], + icon: name, + shortcut: item[2], + cmd: item[1] + }); + }); + + editor.on('mousedown', function() { + FloatPanel.hideAll(); + }); + + function toggleFormat(fmt) { + if (fmt.control) { + fmt = fmt.control.value(); + } + + if (fmt) { + editor.execCommand('mceToggleFormat', false, fmt); + } + } + + editor.addButton('styleselect', { + type: 'menubutton', + text: 'Formats', + menu: formatMenu + }); + + editor.addButton('formatselect', function() { + var items = [], blocks = createFormats(editor.settings.block_formats || + 'Paragraph=p;' + + 'Address=address;' + + 'Pre=pre;' + + 'Header 1=h1;' + + 'Header 2=h2;' + + 'Header 3=h3;' + + 'Header 4=h4;' + + 'Header 5=h5;' + + 'Header 6=h6' + ); + + each(blocks, function(block) { + items.push({ + text: block[0], + value: block[1], + textStyle: function() { + return getPreviewCss(block[1]); + } + }); + }); + + return { + type: 'listbox', + text: blocks[0][0], + values: items, + fixedWidth: true, + onselect: toggleFormat, + onPostRender: createListBoxChangeHandler(items) + }; + }); + + editor.addButton('fontselect', function() { + var defaultFontsFormats = + 'Andale Mono=andale mono,times;' + + 'Arial=arial,helvetica,sans-serif;' + + 'Arial Black=arial black,avant garde;' + + 'Book Antiqua=book antiqua,palatino;' + + 'Comic Sans MS=comic sans ms,sans-serif;' + + 'Courier New=courier new,courier;' + + 'Georgia=georgia,palatino;' + + 'Helvetica=helvetica;' + + 'Impact=impact,chicago;' + + 'Symbol=symbol;' + + 'Tahoma=tahoma,arial,helvetica,sans-serif;' + + 'Terminal=terminal,monaco;' + + 'Times New Roman=times new roman,times;' + + 'Trebuchet MS=trebuchet ms,geneva;' + + 'Verdana=verdana,geneva;' + + 'Webdings=webdings;' + + 'Wingdings=wingdings,zapf dingbats'; + + var items = [], fonts = createFormats(editor.settings.font_formats || defaultFontsFormats); + + each(fonts, function(font) { + items.push({ + text: {raw: font[0]}, + value: font[1], + textStyle: font[1].indexOf('dings') == -1 ? 'font-family:' + font[1] : '' + }); + }); + + return { + type: 'listbox', + text: 'Font Family', + tooltip: 'Font Family', + values: items, + fixedWidth: true, + onPostRender: createListBoxChangeHandler(items, 'fontname'), + onselect: function(e) { + if (e.control.settings.value) { + editor.execCommand('FontName', false, e.control.settings.value); + } + } + }; + }); + + editor.addButton('fontsizeselect', function() { + var items = [], defaultFontsizeFormats = '8pt 10pt 12pt 14pt 18pt 24pt 36pt'; + var fontsize_formats = editor.settings.fontsize_formats || defaultFontsizeFormats; + + each(fontsize_formats.split(' '), function(item) { + items.push({text: item, value: item}); + }); + + return { + type: 'listbox', + text: 'Font Sizes', + tooltip: 'Font Sizes', + values: items, + fixedWidth: true, + onPostRender: createListBoxChangeHandler(items, 'fontsize'), + onclick: function(e) { + if (e.control.settings.value) { + editor.execCommand('FontSize', false, e.control.settings.value); + } + } + }; + }); + + editor.addMenuItem('formats', { + text: 'Formats', + menu: formatMenu + }); + } +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/GridLayout.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/GridLayout.js new file mode 100755 index 00000000000..b4289712276 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/GridLayout.js @@ -0,0 +1,226 @@ +/** + * GridLayout.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This layout manager places controls in a grid. + * + * @setting {Number} spacing Spacing between controls. + * @setting {Number} spacingH Horizontal spacing between controls. + * @setting {Number} spacingV Vertical spacing between controls. + * @setting {Number} columns Number of columns to use. + * @setting {String/Array} alignH start|end|center|stretch or array of values for each column. + * @setting {String/Array} alignV start|end|center|stretch or array of values for each column. + * @setting {String} pack start|end + * + * @class tinymce.ui.GridLayout + * @extends tinymce.ui.AbsoluteLayout + */ +define("tinymce/ui/GridLayout", [ + "tinymce/ui/AbsoluteLayout" +], function(AbsoluteLayout) { + "use strict"; + + return AbsoluteLayout.extend({ + /** + * Recalculates the positions of the controls in the specified container. + * + * @method recalc + * @param {tinymce.ui.Container} container Container instance to recalc. + */ + recalc: function(container) { + var settings = container.settings, rows, cols, items, contLayoutRect, width, height, rect, + ctrlLayoutRect, ctrl, x, y, posX, posY, ctrlSettings, contPaddingBox, align, spacingH, spacingV, alignH, alignV, maxX, maxY, + colWidths = [], rowHeights = [], ctrlMinWidth, ctrlMinHeight, availableWidth, availableHeight; + + // Get layout settings + settings = container.settings; + items = container.items().filter(':visible'); + contLayoutRect = container.layoutRect(); + cols = settings.columns || Math.ceil(Math.sqrt(items.length)); + rows = Math.ceil(items.length / cols); + spacingH = settings.spacingH || settings.spacing || 0; + spacingV = settings.spacingV || settings.spacing || 0; + alignH = settings.alignH || settings.align; + alignV = settings.alignV || settings.align; + contPaddingBox = container._paddingBox; + + if (alignH && typeof(alignH) == "string") { + alignH = [alignH]; + } + + if (alignV && typeof(alignV) == "string") { + alignV = [alignV]; + } + + // Zero padd columnWidths + for (x = 0; x < cols; x++) { + colWidths.push(0); + } + + // Zero padd rowHeights + for (y = 0; y < rows; y++) { + rowHeights.push(0); + } + + // Calculate columnWidths and rowHeights + for (y = 0; y < rows; y++) { + for (x = 0; x < cols; x++) { + ctrl = items[y * cols + x]; + + // Out of bounds + if (!ctrl) { + break; + } + + ctrlLayoutRect = ctrl.layoutRect(); + ctrlMinWidth = ctrlLayoutRect.minW; + ctrlMinHeight = ctrlLayoutRect.minH; + + colWidths[x] = ctrlMinWidth > colWidths[x] ? ctrlMinWidth : colWidths[x]; + rowHeights[y] = ctrlMinHeight > rowHeights[y] ? ctrlMinHeight : rowHeights[y]; + } + } + + // Calculate maxX + availableWidth = contLayoutRect.innerW - contPaddingBox.left - contPaddingBox.right; + for (maxX = 0, x = 0; x < cols; x++) { + maxX += colWidths[x] + (x > 0 ? spacingH : 0); + availableWidth -= (x > 0 ? spacingH : 0) + colWidths[x]; + } + + // Calculate maxY + availableHeight = contLayoutRect.innerH - contPaddingBox.top - contPaddingBox.bottom; + for (maxY = 0, y = 0; y < rows; y++) { + maxY += rowHeights[y] + (y > 0 ? spacingV : 0); + availableHeight -= (y > 0 ? spacingV : 0) + rowHeights[y]; + } + + maxX += contPaddingBox.left + contPaddingBox.right; + maxY += contPaddingBox.top + contPaddingBox.bottom; + + // Calculate minW/minH + rect = {}; + rect.minW = maxX + (contLayoutRect.w - contLayoutRect.innerW); + rect.minH = maxY + (contLayoutRect.h - contLayoutRect.innerH); + + rect.contentW = rect.minW - contLayoutRect.deltaW; + rect.contentH = rect.minH - contLayoutRect.deltaH; + rect.minW = Math.min(rect.minW, contLayoutRect.maxW); + rect.minH = Math.min(rect.minH, contLayoutRect.maxH); + rect.minW = Math.max(rect.minW, contLayoutRect.startMinWidth); + rect.minH = Math.max(rect.minH, contLayoutRect.startMinHeight); + + // Resize container container if minSize was changed + if (contLayoutRect.autoResize && (rect.minW != contLayoutRect.minW || rect.minH != contLayoutRect.minH)) { + rect.w = rect.minW; + rect.h = rect.minH; + + container.layoutRect(rect); + this.recalc(container); + + // Forced recalc for example if items are hidden/shown + if (container._lastRect === null) { + var parentCtrl = container.parent(); + if (parentCtrl) { + parentCtrl._lastRect = null; + parentCtrl.recalc(); + } + } + + return; + } + + // Update contentW/contentH so absEnd moves correctly + if (contLayoutRect.autoResize) { + rect = container.layoutRect(rect); + rect.contentW = rect.minW - contLayoutRect.deltaW; + rect.contentH = rect.minH - contLayoutRect.deltaH; + } + + var flexV; + + if (settings.packV == 'start') { + flexV = 0; + } else { + flexV = availableHeight > 0 ? Math.floor(availableHeight / rows) : 0; + } + + // Calculate totalFlex + var totalFlex = 0; + var flexWidths = settings.flexWidths; + if (flexWidths) { + for (x = 0; x < flexWidths.length; x++) { + totalFlex += flexWidths[x]; + } + } else { + totalFlex = cols; + } + + // Calculate new column widths based on flex values + var ratio = availableWidth / totalFlex; + for (x = 0; x < cols; x++) { + colWidths[x] += flexWidths ? flexWidths[x] * ratio : ratio; + } + + // Move/resize controls + posY = contPaddingBox.top; + for (y = 0; y < rows; y++) { + posX = contPaddingBox.left; + height = rowHeights[y] + flexV; + + for (x = 0; x < cols; x++) { + ctrl = items[y * cols + x]; + + // No more controls to render then break + if (!ctrl) { + break; + } + + // Get control settings and calculate x, y + ctrlSettings = ctrl.settings; + ctrlLayoutRect = ctrl.layoutRect(); + width = Math.max(colWidths[x], ctrlLayoutRect.startMinWidth); + ctrlLayoutRect.x = posX; + ctrlLayoutRect.y = posY; + + // Align control horizontal + align = ctrlSettings.alignH || (alignH ? (alignH[x] || alignH[0]) : null); + if (align == "center") { + ctrlLayoutRect.x = posX + (width / 2) - (ctrlLayoutRect.w / 2); + } else if (align == "right") { + ctrlLayoutRect.x = posX + width - ctrlLayoutRect.w; + } else if (align == "stretch") { + ctrlLayoutRect.w = width; + } + + // Align control vertical + align = ctrlSettings.alignV || (alignV ? (alignV[x] || alignV[0]) : null); + if (align == "center") { + ctrlLayoutRect.y = posY + (height / 2) - (ctrlLayoutRect.h / 2); + } else if (align == "bottom") { + ctrlLayoutRect.y = posY + height - ctrlLayoutRect.h; + } else if (align == "stretch") { + ctrlLayoutRect.h = height; + } + + ctrl.layoutRect(ctrlLayoutRect); + + posX += width + spacingH; + + if (ctrl.recalc) { + ctrl.recalc(); + } + } + + posY += height + spacingV; + } + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Iframe.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Iframe.js new file mode 100755 index 00000000000..93ad3a29a08 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Iframe.js @@ -0,0 +1,83 @@ +/** + * Iframe.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*jshint scripturl:true */ + +/** + * This class creates an iframe. + * + * @setting {String} url Url to open in the iframe. + * + * @-x-less Iframe.less + * @class tinymce.ui.Iframe + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/Iframe", [ + "tinymce/ui/Widget" +], function(Widget) { + "use strict"; + + return Widget.extend({ + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this; + + self.addClass('iframe'); + self.canFocus = false; + + return ( + '<iframe id="' + self._id + '" class="' + self.classes() + '" tabindex="-1" src="' + + (self.settings.url || "javascript:\'\'") + '" frameborder="0"></iframe>' + ); + }, + + /** + * Setter for the iframe source. + * + * @method src + * @param {String} src Source URL for iframe. + */ + src: function(src) { + this.getEl().src = src; + }, + + /** + * Inner HTML for the iframe. + * + * @method html + * @param {String} html HTML string to set as HTML inside the iframe. + * @param {function} callback Optional callback to execute when the iframe body is filled with contents. + * @return {tinymce.ui.Iframe} Current iframe control. + */ + html: function(html, callback) { + var self = this, body = this.getEl().contentWindow.document.body; + + // Wait for iframe to initialize IE 10 takes time + if (!body) { + setTimeout(function() { + self.html(html); + }, 0); + } else { + body.innerHTML = html; + + if (callback) { + callback(); + } + } + + return this; + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/KeyboardNavigation.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/KeyboardNavigation.js new file mode 100755 index 00000000000..61acb384e1b --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/KeyboardNavigation.js @@ -0,0 +1,390 @@ +/** + * KeyboardNavigation.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles keyboard navigation of controls and elements. + * + * @class tinymce.ui.KeyboardNavigation + */ +define("tinymce/ui/KeyboardNavigation", [ +], function() { + "use strict"; + + /** + * This class handles all keyboard navigation for WAI-ARIA support. Each root container + * gets an instance of this class. + * + * @constructor + */ + return function(settings) { + var root = settings.root, focusedElement, focusedControl; + + focusedElement = document.activeElement; + focusedControl = root.getParentCtrl(focusedElement); + + /** + * Returns the currently focused elements wai aria role of the currently + * focused element or specified element. + * + * @private + * @param {Element} elm Optional element to get role from. + * @return {String} Role of specified element. + */ + function getRole(elm) { + elm = elm || focusedElement; + + return elm && elm.getAttribute('role'); + } + + /** + * Returns the wai role of the parent element of the currently + * focused element or specified element. + * + * @private + * @param {Element} elm Optional element to get parent role from. + * @return {String} Role of the first parent that has a role. + */ + function getParentRole(elm) { + var role, parent = elm || focusedElement; + + while ((parent = parent.parentNode)) { + if ((role = getRole(parent))) { + return role; + } + } + } + + /** + * Returns a wai aria property by name for example aria-selected. + * + * @private + * @param {String} name Name of the aria property to get for example "disabled". + * @return {String} Aria property value. + */ + function getAriaProp(name) { + var elm = focusedElement; + + if (elm) { + return elm.getAttribute('aria-' + name); + } + } + + /** + * Is the element a text input element or not. + * + * @private + * @param {Element} elm Element to check if it's an text input element or not. + * @return {Boolean} True/false if the element is a text element or not. + */ + function isTextInputElement(elm) { + // Notice: since type can be "email" etc we don't check the type + // So all input elements gets treated as text input elements + return elm.tagName == "INPUT" || elm.tagName == "TEXTAREA"; + } + + /** + * Returns true/false if the specified element can be focused or not. + * + * @private + * @param {Element} elm DOM element to check if it can be focused or not. + * @return {Boolean} True/false if the element can have focus. + */ + function canFocus(elm) { + if (isTextInputElement(elm) && !elm.hidden) { + return true; + } + + if (/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell)$/.test(getRole(elm))) { + return true; + } + + return false; + } + + /** + * Returns an array of focusable visible elements within the specified container element. + * + * @private + * @param {Element} elm DOM element to find focusable elements within. + * @return {Array} Array of focusable elements. + */ + function getFocusElements(elm) { + var elements = []; + + function collect(elm) { + if (elm.nodeType != 1 || elm.style.display == 'none') { + return; + } + + if (canFocus(elm)) { + elements.push(elm); + } + + for (var i = 0; i < elm.childNodes.length; i++) { + collect(elm.childNodes[i]); + } + } + + collect(elm || root.getEl()); + + return elements; + } + + /** + * Returns the navigation root control for the specified control. The navigation root + * is the control that the keyboard navigation gets scoped to for example a menubar or toolbar group. + * It will look for parents of the specified target control or the currenty focused control if this option is omitted. + * + * @private + * @param {tinymce.ui.Control} targetControl Optional target control to find root of. + * @return {tinymce.ui.Control} Navigation root control. + */ + function getNavigationRoot(targetControl) { + var navigationRoot, controls; + + targetControl = targetControl || focusedControl; + controls = targetControl.parents().toArray(); + controls.unshift(targetControl); + + for (var i = 0; i < controls.length; i++) { + navigationRoot = controls[i]; + + if (navigationRoot.settings.ariaRoot) { + break; + } + } + + return navigationRoot; + } + + /** + * Focuses the first item in the specified targetControl element or the last aria index if the + * navigation root has the ariaRemember option enabled. + * + * @private + * @param {tinymce.ui.Control} targetControl Target control to focus the first item in. + */ + function focusFirst(targetControl) { + var navigationRoot = getNavigationRoot(targetControl); + var focusElements = getFocusElements(navigationRoot.getEl()); + + if (navigationRoot.settings.ariaRemember && "lastAriaIndex" in navigationRoot) { + moveFocusToIndex(navigationRoot.lastAriaIndex, focusElements); + } else { + moveFocusToIndex(0, focusElements); + } + } + + /** + * Moves the focus to the specified index within the elements list. + * This will scope the index to the size of the element list if it changed. + * + * @private + * @param {Number} idx Specified index to move to. + * @param {Array} elements Array with dom elements to move focus within. + * @return {Number} Input index or a changed index if it was out of range. + */ + function moveFocusToIndex(idx, elements) { + if (idx < 0) { + idx = elements.length - 1; + } else if (idx >= elements.length) { + idx = 0; + } + + if (elements[idx]) { + elements[idx].focus(); + } + + return idx; + } + + /** + * Moves the focus forwards or backwards. + * + * @private + * @param {Number} dir Direction to move in positive means forward, negative means backwards. + * @param {Array} elements Optional array of elements to move within defaults to the current navigation roots elements. + */ + function moveFocus(dir, elements) { + var idx = -1, navigationRoot = getNavigationRoot(); + + elements = elements || getFocusElements(navigationRoot.getEl()); + + for (var i = 0; i < elements.length; i++) { + if (elements[i] === focusedElement) { + idx = i; + } + } + + idx += dir; + navigationRoot.lastAriaIndex = moveFocusToIndex(idx, elements); + } + + /** + * Moves the focus to the left this is called by the left key. + * + * @private + */ + function left() { + var parentRole = getParentRole(); + + if (parentRole == "tablist") { + moveFocus(-1, getFocusElements(focusedElement.parentNode)); + } else if (focusedControl.parent().submenu) { + cancel(); + } else { + moveFocus(-1); + } + } + + /** + * Moves the focus to the right this is called by the right key. + * + * @private + */ + function right() { + var role = getRole(), parentRole = getParentRole(); + + if (parentRole == "tablist") { + moveFocus(1, getFocusElements(focusedElement.parentNode)); + } else if (role == "menuitem" && parentRole == "menu" && getAriaProp('haspopup')) { + enter(); + } else { + moveFocus(1); + } + } + + /** + * Moves the focus to the up this is called by the up key. + * + * @private + */ + function up() { + moveFocus(-1); + } + + /** + * Moves the focus to the up this is called by the down key. + * + * @private + */ + function down() { + var role = getRole(), parentRole = getParentRole(); + + if (role == "menuitem" && parentRole == "menubar") { + enter(); + } else if (role == "button" && getAriaProp('haspopup')) { + enter({key: 'down'}); + } else { + moveFocus(1); + } + } + + /** + * Moves the focus to the next item or previous item depending on shift key. + * + * @private + * @param {DOMEvent} e DOM event object. + */ + function tab(e) { + var parentRole = getParentRole(); + + if (parentRole == "tablist") { + var elm = getFocusElements(focusedControl.getEl('body'))[0]; + + if (elm) { + elm.focus(); + } + } else { + moveFocus(e.shiftKey ? -1 : 1); + } + } + + /** + * Calls the cancel event on the currently focused control. This is normally done using the Esc key. + * + * @private + */ + function cancel() { + focusedControl.fire('cancel'); + } + + /** + * Calls the click event on the currently focused control. This is normally done using the Enter/Space keys. + * + * @private + * @param {Object} aria Optional aria data to pass along with the enter event. + */ + function enter(aria) { + aria = aria || {}; + focusedControl.fire('click', {target: focusedElement, aria: aria}); + } + + root.on('keydown', function(e) { + function handleNonTabEvent(e, handler) { + // Ignore non tab keys for text elements + if (isTextInputElement(focusedElement)) { + return; + } + + if (handler(e) !== false) { + e.preventDefault(); + } + } + + if (e.isDefaultPrevented()) { + return; + } + + switch (e.keyCode) { + case 37: // DOM_VK_LEFT + handleNonTabEvent(e, left); + break; + + case 39: // DOM_VK_RIGHT + handleNonTabEvent(e, right); + break; + + case 38: // DOM_VK_UP + handleNonTabEvent(e, up); + break; + + case 40: // DOM_VK_DOWN + handleNonTabEvent(e, down); + break; + + case 27: // DOM_VK_ESCAPE + handleNonTabEvent(e, cancel); + break; + + case 14: // DOM_VK_ENTER + case 13: // DOM_VK_RETURN + case 32: // DOM_VK_SPACE + handleNonTabEvent(e, enter); + break; + + case 9: // DOM_VK_TAB + if (tab(e) !== false) { + e.preventDefault(); + } + break; + } + }); + + root.on('focusin', function(e) { + focusedElement = e.target; + focusedControl = e.control; + }); + + return { + focusFirst: focusFirst + }; + }; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Label.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Label.js new file mode 100755 index 00000000000..1ecb81081b3 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Label.js @@ -0,0 +1,125 @@ +/** + * Label.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class creates a label element. A label is a simple text control + * that can be bound to other controls. + * + * @-x-less Label.less + * @class tinymce.ui.Label + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/Label", [ + "tinymce/ui/Widget", + "tinymce/ui/DomUtils" +], function(Widget, DomUtils) { + "use strict"; + + return Widget.extend({ + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @param {Boolean} multiline Multiline label. + */ + init: function(settings) { + var self = this; + + self._super(settings); + self.addClass('widget'); + self.addClass('label'); + self.canFocus = false; + + if (settings.multiline) { + self.addClass('autoscroll'); + } + + if (settings.strong) { + self.addClass('strong'); + } + }, + + /** + * Initializes the current controls layout rect. + * This will be executed by the layout managers to determine the + * default minWidth/minHeight etc. + * + * @method initLayoutRect + * @return {Object} Layout rect instance. + */ + initLayoutRect: function() { + var self = this, layoutRect = self._super(); + + if (self.settings.multiline) { + var size = DomUtils.getSize(self.getEl()); + + // Check if the text fits within maxW if not then try word wrapping it + if (size.width > layoutRect.maxW) { + layoutRect.minW = layoutRect.maxW; + self.addClass('multiline'); + } + + self.getEl().style.width = layoutRect.minW + 'px'; + layoutRect.startMinH = layoutRect.h = layoutRect.minH = Math.min(layoutRect.maxH, DomUtils.getSize(self.getEl()).height); + } + + return layoutRect; + }, + + /** + * Repaints the control after a layout operation. + * + * @method repaint + */ + repaint: function() { + var self = this; + + if (!self.settings.multiline) { + self.getEl().style.lineHeight = self.layoutRect().h + 'px'; + } + + return self._super(); + }, + + /** + * Sets/gets the current label text. + * + * @method text + * @param {String} [text] New label text. + * @return {String|tinymce.ui.Label} Current text or current label instance. + */ + text: function(text) { + var self = this; + + if (self._rendered && text) { + this.innerHtml(self.encode(text)); + } + + return self._super(text); + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, forId = self.settings.forId; + + return ( + '<label id="' + self._id + '" class="' + self.classes() + '"' + (forId ? ' for="' + forId + '"' : '') + '>' + + self.encode(self._text) + + '</label>' + ); + } + }); +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Layout.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Layout.js new file mode 100755 index 00000000000..7fd3f1d93b3 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Layout.js @@ -0,0 +1,114 @@ +/** + * Layout.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Base layout manager class. + * + * @class tinymce.ui.Layout + */ +define("tinymce/ui/Layout", [ + "tinymce/util/Class", + "tinymce/util/Tools" +], function(Class, Tools) { + "use strict"; + + return Class.extend({ + Defaults: { + firstControlClass: 'first', + lastControlClass: 'last' + }, + + /** + * Constructs a layout instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + */ + init: function(settings) { + this.settings = Tools.extend({}, this.Defaults, settings); + }, + + /** + * This method gets invoked before the layout renders the controls. + * + * @method preRender + * @param {tinymce.ui.Container} container Container instance to preRender. + */ + preRender: function(container) { + container.addClass(this.settings.containerClass, 'body'); + }, + + /** + * Applies layout classes to the container. + * + * @private + */ + applyClasses: function(container) { + var self = this, settings = self.settings, items, firstClass, lastClass; + + items = container.items().filter(':visible'); + firstClass = settings.firstControlClass; + lastClass = settings.lastControlClass; + + items.each(function(item) { + item.removeClass(firstClass).removeClass(lastClass); + + if (settings.controlClass) { + item.addClass(settings.controlClass); + } + }); + + items.eq(0).addClass(firstClass); + items.eq(-1).addClass(lastClass); + }, + + /** + * Renders the specified container and any layout specific HTML. + * + * @method renderHtml + * @param {tinymce.ui.Container} container Container to render HTML for. + */ + renderHtml: function(container) { + var self = this, settings = self.settings, items, html = ''; + + items = container.items(); + items.eq(0).addClass(settings.firstControlClass); + items.eq(-1).addClass(settings.lastControlClass); + + items.each(function(item) { + if (settings.controlClass) { + item.addClass(settings.controlClass); + } + + html += item.renderHtml(); + }); + + return html; + }, + + /** + * Recalculates the positions of the controls in the specified container. + * + * @method recalc + * @param {tinymce.ui.Container} container Container instance to recalc. + */ + recalc: function() { + }, + + /** + * This method gets invoked after the layout renders the controls. + * + * @method postRender + * @param {tinymce.ui.Container} container Container instance to postRender. + */ + postRender: function() { + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/ListBox.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/ListBox.js new file mode 100755 index 00000000000..d42fc9da3bd --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/ListBox.js @@ -0,0 +1,125 @@ +/** + * ListBox.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new list box control. + * + * @-x-less ListBox.less + * @class tinymce.ui.ListBox + * @extends tinymce.ui.MenuButton + */ +define("tinymce/ui/ListBox", [ + "tinymce/ui/MenuButton" +], function(MenuButton) { + "use strict"; + + return MenuButton.extend({ + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {Array} values Array with values to add to list box. + */ + init: function(settings) { + var self = this, values, i, selected, selectedText, lastItemCtrl; + + self._values = values = settings.values; + if (values) { + for (i = 0; i < values.length; i++) { + selected = values[i].selected || settings.value === values[i].value; + + if (selected) { + selectedText = selectedText || values[i].text; + self._value = values[i].value; + break; + } + } + + // Default with first item + if (!selected && values.length > 0) { + selectedText = values[0].text; + self._value = values[0].value; + } + + settings.menu = values; + } + + settings.text = settings.text || selectedText || values[0].text; + + self._super(settings); + self.addClass('listbox'); + + self.on('select', function(e) { + var ctrl = e.control; + + if (lastItemCtrl) { + e.lastControl = lastItemCtrl; + } + + if (settings.multiple) { + ctrl.active(!ctrl.active()); + } else { + self.value(e.control.settings.value); + } + + lastItemCtrl = ctrl; + }); + }, + + /** + * Getter/setter function for the control value. + * + * @method value + * @param {String} [value] Value to be set. + * @return {Boolean/tinymce.ui.ListBox} Value or self if it's a set operation. + */ + value: function(value) { + var self = this, active, selectedText, menu, i; + + function activateByValue(menu, value) { + menu.items().each(function(ctrl) { + active = ctrl.value() === value; + + if (active) { + selectedText = selectedText || ctrl.text(); + } + + ctrl.active(active); + + if (ctrl.menu) { + activateByValue(ctrl.menu, value); + } + }); + } + + if (typeof(value) != "undefined") { + if (self.menu) { + activateByValue(self.menu, value); + } else { + menu = self.settings.menu; + for (i = 0; i < menu.length; i++) { + active = menu[i].value == value; + + if (active) { + selectedText = selectedText || menu[i].text; + } + + menu[i].active = active; + } + } + + self.text(selectedText || this.settings.text); + } + + return self._super(value); + } + }); +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Menu.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Menu.js new file mode 100755 index 00000000000..5efdd3f7aea --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Menu.js @@ -0,0 +1,140 @@ +/** + * Menu.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new menu. + * + * @-x-less Menu.less + * @class tinymce.ui.Menu + * @extends tinymce.ui.FloatPanel + */ +define("tinymce/ui/Menu", [ + "tinymce/ui/FloatPanel", + "tinymce/ui/MenuItem", + "tinymce/util/Tools" +], function(FloatPanel, MenuItem, Tools) { + "use strict"; + + var Menu = FloatPanel.extend({ + Defaults: { + defaultType: 'menuitem', + border: 1, + layout: 'stack', + role: 'application', + bodyRole: 'menu', + ariaRoot: true + }, + + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + */ + init: function(settings) { + var self = this; + + settings.autohide = true; + settings.constrainToViewport = true; + + if (settings.itemDefaults) { + var items = settings.items, i = items.length; + + while (i--) { + items[i] = Tools.extend({}, settings.itemDefaults, items[i]); + } + } + + self._super(settings); + self.addClass('menu'); + }, + + /** + * Repaints the control after a layout operation. + * + * @method repaint + */ + repaint: function() { + this.toggleClass('menu-align', true); + + this._super(); + + this.getEl().style.height = ''; + this.getEl('body').style.height = ''; + + return this; + }, + + /** + * Hides/closes the menu. + * + * @method cancel + */ + cancel: function() { + var self = this; + + self.hideAll(); + self.fire('select'); + }, + + /** + * Hide menu and all sub menus. + * + * @method hideAll + */ + hideAll: function() { + var self = this; + + this.find('menuitem').exec('hideMenu'); + + return self._super(); + }, +/* + getContainerElm: function() { + var doc = document, id = this.classPrefix + 'menucontainer'; + + var elm = doc.getElementById(id); + if (!elm) { + elm = doc.createElement('div'); + elm.id = id; + elm.setAttribute('role', 'application'); + elm.className = this.classPrefix + '-reset'; + elm.style.position = 'absolute'; + elm.style.top = elm.style.left = '0'; + elm.style.overflow = 'visible'; + doc.body.appendChild(elm); + } + + return elm; + }, +*/ + /** + * Invoked before the menu is rendered. + * + * @method preRender + */ + preRender: function() { + var self = this; + + self.items().each(function(ctrl) { + var settings = ctrl.settings; + + if (settings.icon || settings.selectable) { + self._hasIcons = true; + return false; + } + }); + + return self._super(); + } + }); + + return Menu; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/MenuBar.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/MenuBar.js new file mode 100755 index 00000000000..385f30984c0 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/MenuBar.js @@ -0,0 +1,33 @@ +/** + * MenuBar.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new menubar. + * + * @-x-less MenuBar.less + * @class tinymce.ui.MenuBar + * @extends tinymce.ui.Container + */ +define("tinymce/ui/MenuBar", [ + "tinymce/ui/Toolbar" +], function(Toolbar) { + "use strict"; + + return Toolbar.extend({ + Defaults: { + role: 'menubar', + containerCls: 'menubar', + ariaRoot: true, + defaults: { + type: 'menubutton' + } + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/MenuButton.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/MenuButton.js new file mode 100755 index 00000000000..385916e277f --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/MenuButton.js @@ -0,0 +1,244 @@ +/** + * MenuButton.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new menu button. + * + * @-x-less MenuButton.less + * @class tinymce.ui.MenuButton + * @extends tinymce.ui.Button + */ +define("tinymce/ui/MenuButton", [ + "tinymce/ui/Button", + "tinymce/ui/Factory", + "tinymce/ui/MenuBar" +], function(Button, Factory, MenuBar) { + "use strict"; + + // TODO: Maybe add as some global function + function isChildOf(node, parent) { + while (node) { + if (parent === node) { + return true; + } + + node = node.parentNode; + } + + return false; + } + + var MenuButton = Button.extend({ + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + */ + init: function(settings) { + var self = this; + + self._renderOpen = true; + self._super(settings); + + self.addClass('menubtn'); + + if (settings.fixedWidth) { + self.addClass('fixed-width'); + } + + self.aria('haspopup', true); + self.hasPopup = true; + }, + + /** + * Shows the menu for the button. + * + * @method showMenu + */ + showMenu: function() { + var self = this, settings = self.settings, menu; + + if (self.menu && self.menu.visible()) { + return self.hideMenu(); + } + + if (!self.menu) { + menu = settings.menu || []; + + // Is menu array then auto constuct menu control + if (menu.length) { + menu = { + type: 'menu', + items: menu + }; + } else { + menu.type = menu.type || 'menu'; + } + + self.menu = Factory.create(menu).parent(self).renderTo(); + self.fire('createmenu'); + self.menu.reflow(); + self.menu.on('cancel', function(e) { + if (e.control.parent() === self.menu) { + e.stopPropagation(); + self.focus(); + self.hideMenu(); + } + }); + + // Move focus to button when a menu item is selected/clicked + self.menu.on('select', function() { + self.focus(); + }); + + self.menu.on('show hide', function(e) { + if (e.control == self.menu) { + self.activeMenu(e.type == 'show'); + } + + self.aria('expanded', e.type == 'show'); + }).fire('show'); + } + + self.menu.show(); + self.menu.layoutRect({w: self.layoutRect().w}); + self.menu.moveRel(self.getEl(), self.isRtl() ? ['br-tr', 'tr-br'] : ['bl-tl', 'tl-bl']); + }, + + /** + * Hides the menu for the button. + * + * @method hideMenu + */ + hideMenu: function() { + var self = this; + + if (self.menu) { + self.menu.items().each(function(item) { + if (item.hideMenu) { + item.hideMenu(); + } + }); + + self.menu.hide(); + } + }, + + /** + * Sets the active menu state. + * + * @private + */ + activeMenu: function(state) { + this.toggleClass('active', state); + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, id = self._id, prefix = self.classPrefix; + var icon = self.settings.icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : ''; + + self.aria('role', self.parent() instanceof MenuBar ? 'menuitem' : 'button'); + + return ( + '<div id="' + id + '" class="' + self.classes() + '" tabindex="-1" aria-labelledby="' + id + '">' + + '<button id="' + id + '-open" role="presentation" type="button" tabindex="-1">' + + (icon ? '<i class="' + icon + '"></i>' : '') + + '<span>' + (self._text ? (icon ? '\u00a0' : '') + self.encode(self._text) : '') + '</span>' + + ' <i class="' + prefix + 'caret"></i>' + + '</button>' + + '</div>' + ); + }, + + /** + * Gets invoked after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this; + + self.on('click', function(e) { + if (e.control === self && isChildOf(e.target, self.getEl())) { + self.showMenu(); + + if (e.aria) { + self.menu.items()[0].focus(); + } + } + }); + + self.on('mouseenter', function(e) { + var overCtrl = e.control, parent = self.parent(), hasVisibleSiblingMenu; + + if (overCtrl && parent && overCtrl instanceof MenuButton && overCtrl.parent() == parent) { + parent.items().filter('MenuButton').each(function(ctrl) { + if (ctrl.hideMenu && ctrl != overCtrl) { + if (ctrl.menu && ctrl.menu.visible()) { + hasVisibleSiblingMenu = true; + } + + ctrl.hideMenu(); + } + }); + + if (hasVisibleSiblingMenu) { + overCtrl.focus(); // Fix for: #5887 + overCtrl.showMenu(); + } + } + }); + + return self._super(); + }, + + /** + * Sets/gets the current button text. + * + * @method text + * @param {String} [text] New button text. + * @return {String|tinymce.ui.MenuButton} Current text or current MenuButton instance. + */ + text: function(text) { + var self = this, i, children; + + if (self._rendered) { + children = self.getEl('open').getElementsByTagName('span'); + for (i = 0; i < children.length; i++) { + children[i].innerHTML = (self.settings.icon && text ? '\u00a0' : '') + self.encode(text); + } + } + + return this._super(text); + }, + + /** + * Removes the control and it's menus. + * + * @method remove + */ + remove: function() { + this._super(); + + if (this.menu) { + this.menu.remove(); + } + } + }); + + return MenuButton; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/MenuItem.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/MenuItem.js new file mode 100755 index 00000000000..dac8af1a7e5 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/MenuItem.js @@ -0,0 +1,292 @@ +/** + * MenuItem.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new menu item. + * + * @-x-less MenuItem.less + * @class tinymce.ui.MenuItem + * @extends tinymce.ui.Control + */ +define("tinymce/ui/MenuItem", [ + "tinymce/ui/Widget", + "tinymce/ui/Factory", + "tinymce/Env" +], function(Widget, Factory, Env) { + "use strict"; + + return Widget.extend({ + Defaults: { + border: 0, + role: 'menuitem' + }, + + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {Boolean} selectable Selectable menu. + * @setting {Array} menu Submenu array with items. + * @setting {String} shortcut Shortcut to display for menu item. Example: Ctrl+X + */ + init: function(settings) { + var self = this; + + self.hasPopup = true; + + self._super(settings); + + settings = self.settings; + + self.addClass('menu-item'); + + if (settings.menu) { + self.addClass('menu-item-expand'); + } + + if (settings.preview) { + self.addClass('menu-item-preview'); + } + + if (self._text === '-' || self._text === '|') { + self.addClass('menu-item-sep'); + self.aria('role', 'separator'); + self._text = '-'; + } + + if (settings.selectable) { + self.aria('role', 'menuitemcheckbox'); + self.addClass('menu-item-checkbox'); + settings.icon = 'selected'; + } + + if (!settings.preview && !settings.selectable) { + self.addClass('menu-item-normal'); + } + + self.on('mousedown', function(e) { + e.preventDefault(); + }); + + if (settings.menu) { + self.aria('haspopup', true); + } + }, + + /** + * Returns true/false if the menuitem has sub menu. + * + * @method hasMenus + * @return {Boolean} True/false state if it has submenu. + */ + hasMenus: function() { + return !!this.settings.menu; + }, + + /** + * Shows the menu for the menu item. + * + * @method showMenu + */ + showMenu: function() { + var self = this, settings = self.settings, menu, parent = self.parent(); + + parent.items().each(function(ctrl) { + if (ctrl !== self) { + ctrl.hideMenu(); + } + }); + + if (settings.menu) { + menu = self.menu; + + if (!menu) { + menu = settings.menu; + + // Is menu array then auto constuct menu control + if (menu.length) { + menu = { + type: 'menu', + items: menu + }; + } else { + menu.type = menu.type || 'menu'; + } + + if (parent.settings.itemDefaults) { + menu.itemDefaults = parent.settings.itemDefaults; + } + + menu = self.menu = Factory.create(menu).parent(self).renderTo(); + menu.reflow(); + menu.fire('show'); + menu.on('cancel', function(e) { + e.stopPropagation(); + self.focus(); + menu.hide(); + }); + + menu.on('hide', function(e) { + if (e.control === menu) { + self.removeClass('selected'); + } + }); + + menu.submenu = true; + } else { + menu.show(); + } + + menu._parentMenu = parent; + + menu.addClass('menu-sub'); + + var rel = menu.testMoveRel( + self.getEl(), + self.isRtl() ? ['tl-tr', 'bl-br', 'tr-tl', 'br-bl'] : ['tr-tl', 'br-bl', 'tl-tr', 'bl-br'] + ); + + menu.moveRel(self.getEl(), rel); + menu.rel = rel; + + rel = 'menu-sub-' + rel; + menu.removeClass(menu._lastRel); + menu.addClass(rel); + menu._lastRel = rel; + + self.addClass('selected'); + self.aria('expanded', true); + } + }, + + /** + * Hides the menu for the menu item. + * + * @method hideMenu + */ + hideMenu: function() { + var self = this; + + if (self.menu) { + self.menu.items().each(function(item) { + if (item.hideMenu) { + item.hideMenu(); + } + }); + + self.menu.hide(); + self.aria('expanded', false); + } + + return self; + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, id = self._id, settings = self.settings, prefix = self.classPrefix, text = self.encode(self._text); + var icon = self.settings.icon, image = '', shortcut = settings.shortcut; + + if (icon) { + self.parent().addClass('menu-has-icons'); + } + + if (settings.image) { + icon = 'none'; + image = ' style="background-image: url(\'' + settings.image + '\')"'; + } + + if (shortcut && Env.mac) { + // format shortcut for Mac + shortcut = shortcut.replace(/ctrl\+alt\+/i, '⌥⌘'); // ctrl+cmd + shortcut = shortcut.replace(/ctrl\+/i, '⌘'); // ctrl symbol + shortcut = shortcut.replace(/alt\+/i, '⌥'); // cmd symbol + shortcut = shortcut.replace(/shift\+/i, '⇧'); // shift symbol + } + + icon = prefix + 'ico ' + prefix + 'i-' + (self.settings.icon || 'none'); + + return ( + '<div id="' + id + '" class="' + self.classes() + '" tabindex="-1">' + + (text !== '-' ? '<i class="' + icon + '"' + image + '></i> ' : '') + + (text !== '-' ? '<span id="' + id + '-text" class="' + prefix + 'text">' + text + '</span>' : '') + + (shortcut ? '<div id="' + id + '-shortcut" class="' + prefix + 'menu-shortcut">' + shortcut + '</div>' : '') + + (settings.menu ? '<div class="' + prefix + 'caret"></div>' : '') + + '</div>' + ); + }, + + /** + * Gets invoked after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this, settings = self.settings; + + var textStyle = settings.textStyle; + if (typeof(textStyle) == "function") { + textStyle = textStyle.call(this); + } + + if (textStyle) { + var textElm = self.getEl('text'); + if (textElm) { + textElm.setAttribute('style', textStyle); + } + } + + self.on('mouseenter click', function(e) { + if (e.control === self) { + if (!settings.menu && e.type === 'click') { + self.fire('select'); + self.parent().hideAll(); + } else { + self.showMenu(); + + if (e.aria) { + self.menu.focus(true); + } + } + } + }); + + self._super(); + + return self; + }, + + active: function(state) { + if (typeof(state) != "undefined") { + this.aria('checked', state); + } + + return this._super(state); + }, + + /** + * Removes the control and it's menus. + * + * @method remove + */ + remove: function() { + this._super(); + + if (this.menu) { + this.menu.remove(); + } + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/MessageBox.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/MessageBox.js new file mode 100755 index 00000000000..5da41817a02 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/MessageBox.js @@ -0,0 +1,205 @@ +/** + * MessageBox.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class is used to create MessageBoxes like alerts/confirms etc. + * + * @class tinymce.ui.Window + * @extends tinymce.ui.FloatPanel + */ +define("tinymce/ui/MessageBox", [ + "tinymce/ui/Window" +], function(Window) { + "use strict"; + + var MessageBox = Window.extend({ + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + */ + init: function(settings) { + settings = { + border: 1, + padding: 20, + layout: 'flex', + pack: "center", + align: "center", + containerCls: 'panel', + autoScroll: true, + buttons: {type: "button", text: "Ok", action: "ok"}, + items: { + type: "label", + multiline: true, + maxWidth: 500, + maxHeight: 200 + } + }; + + this._super(settings); + }, + + Statics: { + /** + * Ok buttons constant. + * + * @static + * @final + * @field {Number} OK + */ + OK: 1, + + /** + * Ok/cancel buttons constant. + * + * @static + * @final + * @field {Number} OK_CANCEL + */ + OK_CANCEL: 2, + + /** + * yes/no buttons constant. + * + * @static + * @final + * @field {Number} YES_NO + */ + YES_NO: 3, + + /** + * yes/no/cancel buttons constant. + * + * @static + * @final + * @field {Number} YES_NO_CANCEL + */ + YES_NO_CANCEL: 4, + + /** + * Constructs a new message box and renders it to the body element. + * + * @static + * @method msgBox + * @param {Object} settings Name/value object with settings. + */ + msgBox: function(settings) { + var buttons, callback = settings.callback || function() {}; + + switch (settings.buttons) { + case MessageBox.OK_CANCEL: + buttons = [ + {type: "button", text: "Ok", subtype: "primary", onClick: function(e) { + e.control.parents()[1].close(); + callback(true); + }}, + + {type: "button", text: "Cancel", onClick: function(e) { + e.control.parents()[1].close(); + callback(false); + }} + ]; + break; + + case MessageBox.YES_NO: + buttons = [ + {type: "button", text: "Ok", subtype: "primary", onClick: function(e) { + e.control.parents()[1].close(); + callback(true); + }} + ]; + break; + + case MessageBox.YES_NO_CANCEL: + buttons = [ + {type: "button", text: "Ok", subtype: "primary", onClick: function(e) { + e.control.parents()[1].close(); + }} + ]; + break; + + default: + buttons = [ + {type: "button", text: "Ok", subtype: "primary", onClick: function(e) { + e.control.parents()[1].close(); + callback(true); + }} + ]; + break; + } + + return new Window({ + padding: 20, + x: settings.x, + y: settings.y, + minWidth: 300, + minHeight: 100, + layout: "flex", + pack: "center", + align: "center", + buttons: buttons, + title: settings.title, + role: 'alertdialog', + items: { + type: "label", + multiline: true, + maxWidth: 500, + maxHeight: 200, + text: settings.text + }, + onPostRender: function() { + this.aria('describedby', this.items()[0]._id); + }, + onClose: settings.onClose, + onCancel: function() { + callback(false); + } + }).renderTo(document.body).reflow(); + }, + + /** + * Creates a new alert dialog. + * + * @method alert + * @param {Object} settings Settings for the alert dialog. + * @param {function} [callback] Callback to execute when the user makes a choice. + */ + alert: function(settings, callback) { + if (typeof(settings) == "string") { + settings = {text: settings}; + } + + settings.callback = callback; + return MessageBox.msgBox(settings); + }, + + /** + * Creates a new confirm dialog. + * + * @method confirm + * @param {Object} settings Settings for the confirm dialog. + * @param {function} [callback] Callback to execute when the user makes a choice. + */ + confirm: function(settings, callback) { + if (typeof(settings) == "string") { + settings = {text: settings}; + } + + settings.callback = callback; + settings.buttons = MessageBox.OK_CANCEL; + + return MessageBox.msgBox(settings); + } + } + }); + + return MessageBox; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Movable.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Movable.js new file mode 100755 index 00000000000..8370354e2c1 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Movable.js @@ -0,0 +1,200 @@ +/** + * Movable.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Movable mixin. Makes controls movable absolute and relative to other elements. + * + * @mixin tinymce.ui.Movable + */ +define("tinymce/ui/Movable", [ + "tinymce/ui/DomUtils" +], function(DomUtils) { + "use strict"; + + function calculateRelativePosition(ctrl, targetElm, rel) { + var ctrlElm, pos, x, y, selfW, selfH, targetW, targetH, viewport, size; + + viewport = DomUtils.getViewPort(); + + // Get pos of target + pos = DomUtils.getPos(targetElm); + x = pos.x; + y = pos.y; + + if (ctrl._fixed) { + x -= viewport.x; + y -= viewport.y; + } + + // Get size of self + ctrlElm = ctrl.getEl(); + size = DomUtils.getSize(ctrlElm); + selfW = size.width; + selfH = size.height; + + // Get size of target + size = DomUtils.getSize(targetElm); + targetW = size.width; + targetH = size.height; + + // Parse align string + rel = (rel || '').split(''); + + // Target corners + if (rel[0] === 'b') { + y += targetH; + } + + if (rel[1] === 'r') { + x += targetW; + } + + if (rel[0] === 'c') { + y += Math.round(targetH / 2); + } + + if (rel[1] === 'c') { + x += Math.round(targetW / 2); + } + + // Self corners + if (rel[3] === 'b') { + y -= selfH; + } + + if (rel[4] === 'r') { + x -= selfW; + } + + if (rel[3] === 'c') { + y -= Math.round(selfH / 2); + } + + if (rel[4] === 'c') { + x -= Math.round(selfW / 2); + } + + return { + x: x, + y: y, + w: selfW, + h: selfH + }; + } + + return { + /** + * Tests various positions to get the most suitable one. + * + * @method testMoveRel + * @param {DOMElement} elm Element to position against. + * @param {Array} rels Array with relative positions. + * @return {String} Best suitable relative position. + */ + testMoveRel: function(elm, rels) { + var viewPortRect = DomUtils.getViewPort(); + + for (var i = 0; i < rels.length; i++) { + var pos = calculateRelativePosition(this, elm, rels[i]); + + if (this._fixed) { + if (pos.x > 0 && pos.x + pos.w < viewPortRect.w && pos.y > 0 && pos.y + pos.h < viewPortRect.h) { + return rels[i]; + } + } else { + if (pos.x > viewPortRect.x && pos.x + pos.w < viewPortRect.w + viewPortRect.x && + pos.y > viewPortRect.y && pos.y + pos.h < viewPortRect.h + viewPortRect.y) { + return rels[i]; + } + } + } + + return rels[0]; + }, + + /** + * Move relative to the specified element. + * + * @method moveRel + * @param {Element} elm Element to move relative to. + * @param {String} rel Relative mode. For example: br-tl. + * @return {tinymce.ui.Control} Current control instance. + */ + moveRel: function(elm, rel) { + if (typeof(rel) != 'string') { + rel = this.testMoveRel(elm, rel); + } + + var pos = calculateRelativePosition(this, elm, rel); + return this.moveTo(pos.x, pos.y); + }, + + /** + * Move by a relative x, y values. + * + * @method moveBy + * @param {Number} dx Relative x position. + * @param {Number} dy Relative y position. + * @return {tinymce.ui.Control} Current control instance. + */ + moveBy: function(dx, dy) { + var self = this, rect = self.layoutRect(); + + self.moveTo(rect.x + dx, rect.y + dy); + + return self; + }, + + /** + * Move to absolute position. + * + * @method moveTo + * @param {Number} x Absolute x position. + * @param {Number} y Absolute y position. + * @return {tinymce.ui.Control} Current control instance. + */ + moveTo: function(x, y) { + var self = this; + + // TODO: Move this to some global class + function contrain(value, max, size) { + if (value < 0) { + return 0; + } + + if (value + size > max) { + value = max - size; + return value < 0 ? 0 : value; + } + + return value; + } + + if (self.settings.constrainToViewport) { + var viewPortRect = DomUtils.getViewPort(window); + var layoutRect = self.layoutRect(); + + x = contrain(x, viewPortRect.w + viewPortRect.x, layoutRect.w); + y = contrain(y, viewPortRect.h + viewPortRect.y, layoutRect.h); + } + + if (self._rendered) { + self.layoutRect({x: x, y: y}).repaint(); + } else { + self.settings.x = x; + self.settings.y = y; + } + + self.fire('move', {x: x, y: y}); + + return self; + } + }; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Panel.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Panel.js new file mode 100755 index 00000000000..1420ecd0cc9 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Panel.js @@ -0,0 +1,67 @@ +/** + * Panel.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new panel. + * + * @-x-less Panel.less + * @class tinymce.ui.Panel + * @extends tinymce.ui.Container + * @mixes tinymce.ui.Scrollable + */ +define("tinymce/ui/Panel", [ + "tinymce/ui/Container", + "tinymce/ui/Scrollable" +], function(Container, Scrollable) { + "use strict"; + + return Container.extend({ + Defaults: { + layout: 'fit', + containerCls: 'panel' + }, + + Mixins: [Scrollable], + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, layout = self._layout, innerHtml = self.settings.html; + + self.preRender(); + layout.preRender(self); + + if (typeof(innerHtml) == "undefined") { + innerHtml = ( + '<div id="' + self._id + '-body" class="' + self.classes('body') + '">' + + layout.renderHtml(self) + + '</div>' + ); + } else { + if (typeof(innerHtml) == 'function') { + innerHtml = innerHtml.call(self); + } + + self._hasBody = false; + } + + return ( + '<div id="' + self._id + '" class="' + self.classes() + '" hideFocus="1" tabIndex="-1" role="group">' + + (self._preBodyHtml || '') + + innerHtml + + '</div>' + ); + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/PanelButton.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/PanelButton.js new file mode 100755 index 00000000000..9505d3398f4 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/PanelButton.js @@ -0,0 +1,105 @@ +/** + * PanelButton.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new panel button. + * + * @class tinymce.ui.PanelButton + * @extends tinymce.ui.Button + */ +define("tinymce/ui/PanelButton", [ + "tinymce/ui/Button", + "tinymce/ui/FloatPanel" +], function(Button, FloatPanel) { + "use strict"; + + return Button.extend({ + /** + * Shows the panel for the button. + * + * @method showPanel + */ + showPanel: function() { + var self = this, settings = self.settings; + + self.active(true); + + if (!self.panel) { + var panelSettings = settings.panel; + + // Wrap panel in grid layout if type if specified + // This makes it possible to add forms or other containers directly in the panel option + if (panelSettings.type) { + panelSettings = { + layout: 'grid', + items: panelSettings + }; + } + + panelSettings.role = panelSettings.role || 'dialog'; + panelSettings.popover = true; + panelSettings.autohide = true; + panelSettings.ariaRoot = true; + + self.panel = new FloatPanel(panelSettings).on('hide', function() { + self.active(false); + }).on('cancel', function(e) { + e.stopPropagation(); + self.focus(); + self.hidePanel(); + }).parent(self).renderTo(self.getContainerElm()); + + self.panel.fire('show'); + self.panel.reflow(); + } else { + self.panel.show(); + } + + self.panel.moveRel(self.getEl(), settings.popoverAlign || (self.isRtl() ? ['bc-tr', 'bc-tc'] : ['bc-tl', 'bc-tc'])); + }, + + /** + * Hides the panel for the button. + * + * @method hidePanel + */ + hidePanel: function() { + var self = this; + + if (self.panel) { + self.panel.hide(); + } + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this; + + self.aria('haspopup', true); + + self.on('click', function(e) { + if (e.control === self) { + if (self.panel && self.panel.visible()) { + self.hidePanel(); + } else { + self.showPanel(); + self.panel.focus(!!e.aria); + } + } + }); + + return self._super(); + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Path.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Path.js new file mode 100755 index 00000000000..edf516304d2 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Path.js @@ -0,0 +1,140 @@ +/** + * Path.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new path control. + * + * @-x-less Path.less + * @class tinymce.ui.Path + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/Path", [ + "tinymce/ui/Widget" +], function(Widget) { + "use strict"; + + return Widget.extend({ + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {String} delimiter Delimiter to display between items in path. + */ + init: function(settings) { + var self = this; + + if (!settings.delimiter) { + settings.delimiter = '\u00BB'; + } + + self._super(settings); + self.addClass('path'); + self.canFocus = true; + + self.on('click', function(e) { + var index, target = e.target; + + if ((index = target.getAttribute('data-index'))) { + self.fire('select', {value: self.data()[index], index: index}); + } + }); + }, + + /** + * Focuses the current control. + * + * @method focus + * @return {tinymce.ui.Control} Current control instance. + */ + focus: function() { + var self = this; + + self.getEl().firstChild.focus(); + + return self; + }, + + /** + * Sets/gets the data to be used for the path. + * + * @method data + * @param {Array} data Array with items name is rendered to path. + */ + data: function(data) { + var self = this; + + if (typeof(data) !== "undefined") { + self._data = data; + self.update(); + + return self; + } + + return self._data; + }, + + /** + * Updated the path. + * + * @private + */ + update: function() { + this.innerHtml(this._getPathHtml()); + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this; + + self._super(); + + self.data(self.settings.data); + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this; + + return ( + '<div id="' + self._id + '" class="' + self.classes() + '">' + + self._getPathHtml() + + '</div>' + ); + }, + + _getPathHtml: function() { + var self = this, parts = self._data || [], i, l, html = '', prefix = self.classPrefix; + + for (i = 0, l = parts.length; i < l; i++) { + html += ( + (i > 0 ? '<div class="' + prefix + 'divider" aria-hidden="true"> ' + self.settings.delimiter + ' </div>' : '') + + '<div role="button" class="' + prefix + 'path-item' + (i == l - 1 ? ' ' + prefix + 'last' : '') + '" data-index="' + + i + '" tabindex="-1" id="' + self._id + '-' + i + '" aria-level="' + i + '">' + parts[i].name + '</div>' + ); + } + + if (!html) { + html = '<div class="' + prefix + 'path-item"> </div>'; + } + + return html; + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Radio.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Radio.js new file mode 100755 index 00000000000..056968c99da --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Radio.js @@ -0,0 +1,29 @@ +/** + * Radio.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new radio button. + * + * @-x-less Radio.less + * @class tinymce.ui.Radio + * @extends tinymce.ui.Checkbox + */ +define("tinymce/ui/Radio", [ + "tinymce/ui/Checkbox" +], function(Checkbox) { + "use strict"; + + return Checkbox.extend({ + Defaults: { + classes: "radio", + role: "radio" + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Resizable.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Resizable.js new file mode 100755 index 00000000000..5933efbddcc --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Resizable.js @@ -0,0 +1,68 @@ +/** + * Resizable.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Resizable mixin. Enables controls to be resized. + * + * @mixin tinymce.ui.Resizable + */ +define("tinymce/ui/Resizable", [ + "tinymce/ui/DomUtils" +], function(DomUtils) { + "use strict"; + + return { + /** + * Resizes the control to contents. + * + * @method resizeToContent + */ + resizeToContent: function() { + this._layoutRect.autoResize = true; + this._lastRect = null; + this.reflow(); + }, + + /** + * Resizes the control to a specific width/height. + * + * @method resizeTo + * @param {Number} w Control width. + * @param {Number} h Control height. + * @return {tinymce.ui.Control} Current control instance. + */ + resizeTo: function(w, h) { + // TODO: Fix hack + if (w <= 1 || h <= 1) { + var rect = DomUtils.getWindowSize(); + + w = w <= 1 ? w * rect.w : w; + h = h <= 1 ? h * rect.h : h; + } + + this._layoutRect.autoResize = false; + return this.layoutRect({minW: w, minH: h, w: w, h: h}).reflow(); + }, + + /** + * Resizes the control to a specific relative width/height. + * + * @method resizeBy + * @param {Number} dw Relative control width. + * @param {Number} dh Relative control height. + * @return {tinymce.ui.Control} Current control instance. + */ + resizeBy: function(dw, dh) { + var self = this, rect = self.layoutRect(); + + return self.resizeTo(rect.w + dw, rect.h + dh); + } + }; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/ResizeHandle.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/ResizeHandle.js new file mode 100755 index 00000000000..b09c699c69e --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/ResizeHandle.js @@ -0,0 +1,86 @@ +/** + * ResizeHandle.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Renders a resize handle that fires ResizeStart, Resize and ResizeEnd events. + * + * @-x-less ResizeHandle.less + * @class tinymce.ui.ResizeHandle + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/ResizeHandle", [ + "tinymce/ui/Widget", + "tinymce/ui/DragHelper" +], function(Widget, DragHelper) { + "use strict"; + + return Widget.extend({ + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, prefix = self.classPrefix; + + self.addClass('resizehandle'); + + if (self.settings.direction == "both") { + self.addClass('resizehandle-both'); + } + + self.canFocus = false; + + return ( + '<div id="' + self._id + '" class="' + self.classes() + '">' + + '<i class="' + prefix + 'ico ' + prefix + 'i-resize"></i>' + + '</div>' + ); + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this; + + self._super(); + + self.resizeDragHelper = new DragHelper(this._id, { + start: function() { + self.fire('ResizeStart'); + }, + + drag: function(e) { + if (self.settings.direction != "both") { + e.deltaX = 0; + } + + self.fire('Resize', e); + }, + + stop: function() { + self.fire('ResizeEnd'); + } + }); + }, + + remove: function() { + if (this.resizeDragHelper) { + this.resizeDragHelper.destroy(); + } + + return this._super(); + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Scrollable.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Scrollable.js new file mode 100755 index 00000000000..b3d375ff6db --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Scrollable.js @@ -0,0 +1,149 @@ +/** + * Scrollable.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This mixin makes controls scrollable using custom scrollbars. + * + * @-x-less Scrollable.less + * @mixin tinymce.ui.Scrollable + */ +define("tinymce/ui/Scrollable", [ + "tinymce/ui/DomUtils", + "tinymce/ui/DragHelper" +], function(DomUtils, DragHelper) { + "use strict"; + + return { + init: function() { + var self = this; + self.on('repaint', self.renderScroll); + }, + + renderScroll: function() { + var self = this, margin = 2; + + function repaintScroll() { + var hasScrollH, hasScrollV, bodyElm; + + function repaintAxis(axisName, posName, sizeName, contentSizeName, hasScroll, ax) { + var containerElm, scrollBarElm, scrollThumbElm; + var containerSize, scrollSize, ratio, rect; + var posNameLower, sizeNameLower; + + scrollBarElm = self.getEl('scroll' + axisName); + if (scrollBarElm) { + posNameLower = posName.toLowerCase(); + sizeNameLower = sizeName.toLowerCase(); + + if (self.getEl('absend')) { + DomUtils.css(self.getEl('absend'), posNameLower, self.layoutRect()[contentSizeName] - 1); + } + + if (!hasScroll) { + DomUtils.css(scrollBarElm, 'display', 'none'); + return; + } + + DomUtils.css(scrollBarElm, 'display', 'block'); + containerElm = self.getEl('body'); + scrollThumbElm = self.getEl('scroll' + axisName + "t"); + containerSize = containerElm["client" + sizeName] - (margin * 2); + containerSize -= hasScrollH && hasScrollV ? scrollBarElm["client" + ax] : 0; + scrollSize = containerElm["scroll" + sizeName]; + ratio = containerSize / scrollSize; + + rect = {}; + rect[posNameLower] = containerElm["offset" + posName] + margin; + rect[sizeNameLower] = containerSize; + DomUtils.css(scrollBarElm, rect); + + rect = {}; + rect[posNameLower] = containerElm["scroll" + posName] * ratio; + rect[sizeNameLower] = containerSize * ratio; + DomUtils.css(scrollThumbElm, rect); + } + } + + bodyElm = self.getEl('body'); + hasScrollH = bodyElm.scrollWidth > bodyElm.clientWidth; + hasScrollV = bodyElm.scrollHeight > bodyElm.clientHeight; + + repaintAxis("h", "Left", "Width", "contentW", hasScrollH, "Height"); + repaintAxis("v", "Top", "Height", "contentH", hasScrollV, "Width"); + } + + function addScroll() { + function addScrollAxis(axisName, posName, sizeName, deltaPosName, ax) { + var scrollStart, axisId = self._id + '-scroll' + axisName, prefix = self.classPrefix; + + self.getEl().appendChild(DomUtils.createFragment( + '<div id="' + axisId + '" class="' + prefix + 'scrollbar ' + prefix + 'scrollbar-' + axisName + '">' + + '<div id="' + axisId + 't" class="' + prefix + 'scrollbar-thumb"></div>' + + '</div>' + )); + + self.draghelper = new DragHelper(axisId + 't', { + start: function() { + scrollStart = self.getEl('body')["scroll" + posName]; + DomUtils.addClass(DomUtils.get(axisId), prefix + 'active'); + }, + + drag: function(e) { + var ratio, hasScrollH, hasScrollV, containerSize, layoutRect = self.layoutRect(); + + hasScrollH = layoutRect.contentW > layoutRect.innerW; + hasScrollV = layoutRect.contentH > layoutRect.innerH; + containerSize = self.getEl('body')["client" + sizeName] - (margin * 2); + containerSize -= hasScrollH && hasScrollV ? self.getEl('scroll' + axisName)["client" + ax] : 0; + + ratio = containerSize / self.getEl('body')["scroll" + sizeName]; + self.getEl('body')["scroll" + posName] = scrollStart + (e["delta" + deltaPosName] / ratio); + }, + + stop: function() { + DomUtils.removeClass(DomUtils.get(axisId), prefix + 'active'); + } + }); +/* + self.on('click', function(e) { + if (e.target.id == self._id + '-scrollv') { + + } + });*/ + } + + self.addClass('scroll'); + + addScrollAxis("v", "Top", "Height", "Y", "Width"); + addScrollAxis("h", "Left", "Width", "X", "Height"); + } + + if (self.settings.autoScroll) { + if (!self._hasScroll) { + self._hasScroll = true; + addScroll(); + + self.on('wheel', function(e) { + var bodyEl = self.getEl('body'); + + bodyEl.scrollLeft += (e.deltaX || 0) * 10; + bodyEl.scrollTop += e.deltaY * 10; + + repaintScroll(); + }); + + DomUtils.on(self.getEl('body'), "scroll", repaintScroll); + } + + repaintScroll(); + } + } + }; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Selector.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Selector.js new file mode 100755 index 00000000000..63bde042eec --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Selector.js @@ -0,0 +1,369 @@ +/** + * Selector.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*eslint no-nested-ternary:0 */ + +/** + * Selector engine, enables you to select controls by using CSS like expressions. + * We currently only support basic CSS expressions to reduce the size of the core + * and the ones we support should be enough for most cases. + * + * @example + * Supported expressions: + * element + * element#name + * element.class + * element[attr] + * element[attr*=value] + * element[attr~=value] + * element[attr!=value] + * element[attr^=value] + * element[attr$=value] + * element:<state> + * element:not(<expression>) + * element:first + * element:last + * element:odd + * element:even + * element element + * element > element + * + * @class tinymce.ui.Selector + */ +define("tinymce/ui/Selector", [ + "tinymce/util/Class" +], function(Class) { + "use strict"; + + /** + * Produces an array with a unique set of objects. It will not compare the values + * but the references of the objects. + * + * @private + * @method unqiue + * @param {Array} array Array to make into an array with unique items. + * @return {Array} Array with unique items. + */ + function unique(array) { + var uniqueItems = [], i = array.length, item; + + while (i--) { + item = array[i]; + + if (!item.__checked) { + uniqueItems.push(item); + item.__checked = 1; + } + } + + i = uniqueItems.length; + while (i--) { + delete uniqueItems[i].__checked; + } + + return uniqueItems; + } + + var expression = /^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i; + + /*jshint maxlen:255 */ + /*eslint max-len:0 */ + var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, + whiteSpace = /^\s*|\s*$/g, + Collection; + + var Selector = Class.extend({ + /** + * Constructs a new Selector instance. + * + * @constructor + * @method init + * @param {String} selector CSS like selector expression. + */ + init: function(selector) { + var match = this.match; + + function compileNameFilter(name) { + if (name) { + name = name.toLowerCase(); + + return function(item) { + return name === '*' || item.type === name; + }; + } + } + + function compileIdFilter(id) { + if (id) { + return function(item) { + return item._name === id; + }; + } + } + + function compileClassesFilter(classes) { + if (classes) { + classes = classes.split('.'); + + return function(item) { + var i = classes.length; + + while (i--) { + if (!item.hasClass(classes[i])) { + return false; + } + } + + return true; + }; + } + } + + function compileAttrFilter(name, cmp, check) { + if (name) { + return function(item) { + var value = item[name] ? item[name]() : ''; + + return !cmp ? !!check : + cmp === "=" ? value === check : + cmp === "*=" ? value.indexOf(check) >= 0 : + cmp === "~=" ? (" " + value + " ").indexOf(" " + check + " ") >= 0 : + cmp === "!=" ? value != check : + cmp === "^=" ? value.indexOf(check) === 0 : + cmp === "$=" ? value.substr(value.length - check.length) === check : + false; + }; + } + } + + function compilePsuedoFilter(name) { + var notSelectors; + + if (name) { + name = /(?:not\((.+)\))|(.+)/i.exec(name); + + if (!name[1]) { + name = name[2]; + + return function(item, index, length) { + return name === 'first' ? index === 0 : + name === 'last' ? index === length - 1 : + name === 'even' ? index % 2 === 0 : + name === 'odd' ? index % 2 === 1 : + item[name] ? item[name]() : + false; + }; + } else { + // Compile not expression + notSelectors = parseChunks(name[1], []); + + return function(item) { + return !match(item, notSelectors); + }; + } + } + } + + function compile(selector, filters, direct) { + var parts; + + function add(filter) { + if (filter) { + filters.push(filter); + } + } + + // Parse expression into parts + parts = expression.exec(selector.replace(whiteSpace, '')); + + add(compileNameFilter(parts[1])); + add(compileIdFilter(parts[2])); + add(compileClassesFilter(parts[3])); + add(compileAttrFilter(parts[4], parts[5], parts[6])); + add(compilePsuedoFilter(parts[7])); + + // Mark the filter with psuedo for performance + filters.psuedo = !!parts[7]; + filters.direct = direct; + + return filters; + } + + // Parser logic based on Sizzle by John Resig + function parseChunks(selector, selectors) { + var parts = [], extra, matches, i; + + do { + chunker.exec(""); + matches = chunker.exec(selector); + + if (matches) { + selector = matches[3]; + parts.push(matches[1]); + + if (matches[2]) { + extra = matches[3]; + break; + } + } + } while (matches); + + if (extra) { + parseChunks(extra, selectors); + } + + selector = []; + for (i = 0; i < parts.length; i++) { + if (parts[i] != '>') { + selector.push(compile(parts[i], [], parts[i - 1] === '>')); + } + } + + selectors.push(selector); + + return selectors; + } + + this._selectors = parseChunks(selector, []); + }, + + /** + * Returns true/false if the selector matches the specified control. + * + * @method match + * @param {tinymce.ui.Control} control Control to match agains the selector. + * @param {Array} selectors Optional array of selectors, mostly used internally. + * @return {Boolean} true/false state if the control matches or not. + */ + match: function(control, selectors) { + var i, l, si, sl, selector, fi, fl, filters, index, length, siblings, count, item; + + selectors = selectors || this._selectors; + for (i = 0, l = selectors.length; i < l; i++) { + selector = selectors[i]; + sl = selector.length; + item = control; + count = 0; + + for (si = sl - 1; si >= 0; si--) { + filters = selector[si]; + + while (item) { + // Find the index and length since a psuedo filter like :first needs it + if (filters.psuedo) { + siblings = item.parent().items(); + index = length = siblings.length; + while (index--) { + if (siblings[index] === item) { + break; + } + } + } + + for (fi = 0, fl = filters.length; fi < fl; fi++) { + if (!filters[fi](item, index, length)) { + fi = fl + 1; + break; + } + } + + if (fi === fl) { + count++; + break; + } else { + // If it didn't match the right most expression then + // break since it's no point looking at the parents + if (si === sl - 1) { + break; + } + } + + item = item.parent(); + } + } + + // If we found all selectors then return true otherwise continue looking + if (count === sl) { + return true; + } + } + + return false; + }, + + /** + * Returns a tinymce.ui.Collection with matches of the specified selector inside the specified container. + * + * @method find + * @param {tinymce.ui.Control} container Container to look for items in. + * @return {tinymce.ui.Collection} Collection with matched elements. + */ + find: function(container) { + var matches = [], i, l, selectors = this._selectors; + + function collect(items, selector, index) { + var i, l, fi, fl, item, filters = selector[index]; + + for (i = 0, l = items.length; i < l; i++) { + item = items[i]; + + // Run each filter agains the item + for (fi = 0, fl = filters.length; fi < fl; fi++) { + if (!filters[fi](item, i, l)) { + fi = fl + 1; + break; + } + } + + // All filters matched the item + if (fi === fl) { + // Matched item is on the last expression like: panel toolbar [button] + if (index == selector.length - 1) { + matches.push(item); + } else { + // Collect next expression type + if (item.items) { + collect(item.items(), selector, index + 1); + } + } + } else if (filters.direct) { + return; + } + + // Collect child items + if (item.items) { + collect(item.items(), selector, index); + } + } + } + + if (container.items) { + for (i = 0, l = selectors.length; i < l; i++) { + collect(container.items(), selectors[i], 0); + } + + // Unique the matches if needed + if (l > 1) { + matches = unique(matches); + } + } + + // Fix for circular reference + if (!Collection) { + // TODO: Fix me! + Collection = Selector.Collection; + } + + return new Collection(matches); + } + }); + + return Selector; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Spacer.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Spacer.js new file mode 100755 index 00000000000..7536994f833 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Spacer.js @@ -0,0 +1,39 @@ +/** + * Spacer.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a spacer. This control is used in flex layouts for example. + * + * @-x-less Spacer.less + * @class tinymce.ui.Spacer + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/Spacer", [ + "tinymce/ui/Widget" +], function(Widget) { + "use strict"; + + return Widget.extend({ + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this; + + self.addClass('spacer'); + self.canFocus = false; + + return '<div id="' + self._id + '" class="' + self.classes() + '"></div>'; + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/SplitButton.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/SplitButton.js new file mode 100755 index 00000000000..9263063d1b2 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/SplitButton.js @@ -0,0 +1,119 @@ +/** + * SplitButton.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a split button. + * + * @-x-less SplitButton.less + * @class tinymce.ui.SplitButton + * @extends tinymce.ui.Button + */ +define("tinymce/ui/SplitButton", [ + "tinymce/ui/MenuButton", + "tinymce/ui/DomUtils" +], function(MenuButton, DomUtils) { + return MenuButton.extend({ + Defaults: { + classes: "widget btn splitbtn", + role: "button" + }, + + /** + * Repaints the control after a layout operation. + * + * @method repaint + */ + repaint: function() { + var self = this, elm = self.getEl(), rect = self.layoutRect(), mainButtonElm, menuButtonElm; + + self._super(); + + mainButtonElm = elm.firstChild; + menuButtonElm = elm.lastChild; + + DomUtils.css(mainButtonElm, { + width: rect.w - DomUtils.getSize(menuButtonElm).width, + height: rect.h - 2 + }); + + DomUtils.css(menuButtonElm, { + height: rect.h - 2 + }); + + return self; + }, + + /** + * Sets the active menu state. + * + * @private + */ + activeMenu: function(state) { + var self = this; + + DomUtils.toggleClass(self.getEl().lastChild, self.classPrefix + 'active', state); + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, id = self._id, prefix = self.classPrefix; + var icon = self.settings.icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : ''; + + return ( + '<div id="' + id + '" class="' + self.classes() + '" role="button" tabindex="-1">' + + '<button type="button" hidefocus tabindex="-1">' + + (icon ? '<i class="' + icon + '"></i>' : '') + + (self._text ? (icon ? ' ' : '') + self._text : '') + + '</button>' + + '<button type="button" class="' + prefix + 'open" hidefocus tabindex="-1">' + + //(icon ? '<i class="' + icon + '"></i>' : '') + + (self._menuBtnText ? (icon ? '\u00a0' : '') + self._menuBtnText : '') + + ' <i class="' + prefix + 'caret"></i>' + + '</button>' + + '</div>' + ); + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this, onClickHandler = self.settings.onclick; + + self.on('click', function(e) { + var node = e.target; + + if (e.control == this) { + // Find clicks that is on the main button + while (node) { + if ((e.aria && e.aria.key != 'down') || (node.nodeName == 'BUTTON' && node.className.indexOf('open') == -1)) { + e.stopImmediatePropagation(); + onClickHandler.call(this, e); + return; + } + + node = node.parentNode; + } + } + }); + + delete self.settings.onclick; + + return self._super(); + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/StackLayout.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/StackLayout.js new file mode 100755 index 00000000000..32fcbf481c5 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/StackLayout.js @@ -0,0 +1,30 @@ +/** + * StackLayout.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This layout uses the browsers layout when the items are blocks. + * + * @-x-less StackLayout.less + * @class tinymce.ui.StackLayout + * @extends tinymce.ui.FlowLayout + */ +define("tinymce/ui/StackLayout", [ + "tinymce/ui/FlowLayout" +], function(FlowLayout) { + "use strict"; + + return FlowLayout.extend({ + Defaults: { + containerClass: 'stack-layout', + controlClass: 'stack-layout-item', + endClass : 'break' + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/TabPanel.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/TabPanel.js new file mode 100755 index 00000000000..1f379be9695 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/TabPanel.js @@ -0,0 +1,180 @@ +/** + * TabPanel.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a tab panel control. + * + * @-x-less TabPanel.less + * @class tinymce.ui.TabPanel + * @extends tinymce.ui.Panel + * + * @setting {Number} activeTab Active tab index. + */ +define("tinymce/ui/TabPanel", [ + "tinymce/ui/Panel", + "tinymce/ui/DomUtils" +], function(Panel, DomUtils) { + "use strict"; + + return Panel.extend({ + lastIdx: 0, + + Defaults: { + layout: 'absolute', + defaults: { + type: 'panel' + } + }, + + /** + * Activates the specified tab by index. + * + * @method activateTab + * @param {Number} idx Index of the tab to activate. + */ + activateTab: function(idx) { + var activeTabElm; + + if (this.activeTabId) { + activeTabElm = this.getEl(this.activeTabId); + DomUtils.removeClass(activeTabElm, this.classPrefix + 'active'); + activeTabElm.setAttribute('aria-selected', "false"); + } + + this.activeTabId = 't' + idx; + + activeTabElm = this.getEl('t' + idx); + activeTabElm.setAttribute('aria-selected', "true"); + DomUtils.addClass(activeTabElm, this.classPrefix + 'active'); + + if (idx != this.lastIdx) { + this.items()[this.lastIdx].hide(); + this.lastIdx = idx; + } + + this.items()[idx].show().fire('showtab'); + this.reflow(); + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, layout = self._layout, tabsHtml = '', prefix = self.classPrefix; + + self.preRender(); + layout.preRender(self); + + self.items().each(function(ctrl, i) { + var id = self._id + '-t' + i; + + ctrl.aria('role', 'tabpanel'); + ctrl.aria('labelledby', id); + + tabsHtml += ( + '<div id="' + id + '" class="' + prefix + 'tab" ' + + 'unselectable="on" role="tab" aria-controls="' + ctrl._id + '" aria-selected="false" tabIndex="-1">' + + self.encode(ctrl.settings.title) + + '</div>' + ); + }); + + return ( + '<div id="' + self._id + '" class="' + self.classes() + '" hideFocus="1" tabIndex="-1">' + + '<div id="' + self._id + '-head" class="' + prefix + 'tabs" role="tablist">' + + tabsHtml + + '</div>' + + '<div id="' + self._id + '-body" class="' + self.classes('body') + '">' + + layout.renderHtml(self) + + '</div>' + + '</div>' + ); + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this; + + self._super(); + + self.settings.activeTab = self.settings.activeTab || 0; + self.activateTab(self.settings.activeTab); + + this.on('click', function(e) { + var targetParent = e.target.parentNode; + + if (e.target.parentNode.id == self._id + '-head') { + var i = targetParent.childNodes.length; + + while (i--) { + if (targetParent.childNodes[i] == e.target) { + self.activateTab(i); + } + } + } + }); + }, + + /** + * Initializes the current controls layout rect. + * This will be executed by the layout managers to determine the + * default minWidth/minHeight etc. + * + * @method initLayoutRect + * @return {Object} Layout rect instance. + */ + initLayoutRect: function() { + var self = this, rect, minW, minH; + + minW = DomUtils.getSize(self.getEl('head')).width; + minW = minW < 0 ? 0 : minW; + minH = 0; + self.items().each(function(item, i) { + minW = Math.max(minW, item.layoutRect().minW); + minH = Math.max(minH, item.layoutRect().minH); + if (self.settings.activeTab != i) { + item.hide(); + } + }); + + self.items().each(function(ctrl) { + ctrl.settings.x = 0; + ctrl.settings.y = 0; + ctrl.settings.w = minW; + ctrl.settings.h = minH; + + ctrl.layoutRect({ + x: 0, + y: 0, + w: minW, + h: minH + }); + }); + + var headH = DomUtils.getSize(self.getEl('head')).height; + + self.settings.minWidth = minW; + self.settings.minHeight = minH + headH; + + rect = self._super(); + rect.deltaH += headH; + rect.innerH = rect.h - rect.deltaH; + + return rect; + } + }); +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/TextBox.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/TextBox.js new file mode 100755 index 00000000000..a11f72de53f --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/TextBox.js @@ -0,0 +1,214 @@ +/** + * TextBox.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new textbox. + * + * @-x-less TextBox.less + * @class tinymce.ui.TextBox + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/TextBox", [ + "tinymce/ui/Widget", + "tinymce/ui/DomUtils" +], function(Widget, DomUtils) { + "use strict"; + + return Widget.extend({ + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {Boolean} multiline True if the textbox is a multiline control. + * @setting {Number} maxLength Max length for the textbox. + * @setting {Number} size Size of the textbox in characters. + */ + init: function(settings) { + var self = this; + + self._super(settings); + + self._value = settings.value || ''; + self.addClass('textbox'); + + if (settings.multiline) { + self.addClass('multiline'); + } else { + // TODO: Rework this + self.on('keydown', function(e) { + if (e.keyCode == 13) { + self.parents().reverse().each(function(ctrl) { + e.preventDefault(); + + if (ctrl.hasEventListeners('submit') && ctrl.toJSON) { + ctrl.fire('submit', {data: ctrl.toJSON()}); + return false; + } + }); + } + }); + } + }, + + /** + * Getter/setter function for the disabled state. + * + * @method value + * @param {Boolean} [state] State to be set. + * @return {Boolean|tinymce.ui.ComboBox} True/false or self if it's a set operation. + */ + disabled: function(state) { + var self = this; + + if (self._rendered && typeof(state) != 'undefined') { + self.getEl().disabled = state; + } + + return self._super(state); + }, + + /** + * Getter/setter function for the control value. + * + * @method value + * @param {String} [value] Value to be set. + * @return {String|tinymce.ui.ComboBox} Value or self if it's a set operation. + */ + value: function(value) { + var self = this; + + if (typeof(value) != "undefined") { + self._value = value; + + if (self._rendered) { + self.getEl().value = value; + } + + return self; + } + + if (self._rendered) { + return self.getEl().value; + } + + return self._value; + }, + + /** + * Repaints the control after a layout operation. + * + * @method repaint + */ + repaint: function() { + var self = this, style, rect, borderBox, borderW = 0, borderH = 0, lastRepaintRect; + + style = self.getEl().style; + rect = self._layoutRect; + lastRepaintRect = self._lastRepaintRect || {}; + + // Detect old IE 7+8 add lineHeight to align caret vertically in the middle + var doc = document; + if (!self.settings.multiline && doc.all && (!doc.documentMode || doc.documentMode <= 8)) { + style.lineHeight = (rect.h - borderH) + 'px'; + } + + borderBox = self._borderBox; + borderW = borderBox.left + borderBox.right + 8; + borderH = borderBox.top + borderBox.bottom + (self.settings.multiline ? 8 : 0); + + if (rect.x !== lastRepaintRect.x) { + style.left = rect.x + 'px'; + lastRepaintRect.x = rect.x; + } + + if (rect.y !== lastRepaintRect.y) { + style.top = rect.y + 'px'; + lastRepaintRect.y = rect.y; + } + + if (rect.w !== lastRepaintRect.w) { + style.width = (rect.w - borderW) + 'px'; + lastRepaintRect.w = rect.w; + } + + if (rect.h !== lastRepaintRect.h) { + style.height = (rect.h - borderH) + 'px'; + lastRepaintRect.h = rect.h; + } + + self._lastRepaintRect = lastRepaintRect; + self.fire('repaint', {}, false); + + return self; + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, id = self._id, settings = self.settings, value = self.encode(self._value, false), extraAttrs = ''; + + if ("spellcheck" in settings) { + extraAttrs += ' spellcheck="' + settings.spellcheck + '"'; + } + + if (settings.maxLength) { + extraAttrs += ' maxlength="' + settings.maxLength + '"'; + } + + if (settings.size) { + extraAttrs += ' size="' + settings.size + '"'; + } + + if (settings.subtype) { + extraAttrs += ' type="' + settings.subtype + '"'; + } + + if (self.disabled()) { + extraAttrs += ' disabled="disabled"'; + } + + if (settings.multiline) { + return ( + '<textarea id="' + id + '" class="' + self.classes() + '" ' + + (settings.rows ? ' rows="' + settings.rows + '"' : '') + + ' hidefocus="true"' + extraAttrs + '>' + value + + '</textarea>' + ); + } + + return '<input id="' + id + '" class="' + self.classes() + '" value="' + value + '" hidefocus="true"' + extraAttrs + '>'; + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this; + + DomUtils.on(self.getEl(), 'change', function(e) { + self.fire('change', e); + }); + + return self._super(); + }, + + remove: function() { + DomUtils.off(this.getEl()); + this._super(); + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Throbber.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Throbber.js new file mode 100755 index 00000000000..b56e2cc7ca3 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Throbber.js @@ -0,0 +1,70 @@ +/** + * Throbber.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class enables you to display a Throbber for any element. + * + * @-x-less Throbber.less + * @class tinymce.ui.Throbber + */ +define("tinymce/ui/Throbber", [ + "tinymce/ui/DomUtils" +], function(DomUtils) { + "use strict"; + + /** + * Constructs a new throbber. + * + * @constructor + * @param {Element} elm DOM Html element to display throbber in. + */ + return function(elm) { + var self = this, state; + + /** + * Shows the throbber. + * + * @method show + * @param {Number} [time] Time to wait before showing. + * @return {tinymce.ui.Throbber} Current throbber instance. + */ + self.show = function(time) { + self.hide(); + + state = true; + + window.setTimeout(function() { + if (state) { + elm.appendChild(DomUtils.createFragment('<div class="mce-throbber"></div>')); + } + }, time || 0); + + return self; + }; + + /** + * Hides the throbber. + * + * @method hide + * @return {tinymce.ui.Throbber} Current throbber instance. + */ + self.hide = function() { + var child = elm.lastChild; + + if (child && child.className.indexOf('throbber') != -1) { + child.parentNode.removeChild(child); + } + + state = false; + + return self; + }; + }; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Toolbar.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Toolbar.js new file mode 100755 index 00000000000..55b6210e03e --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Toolbar.js @@ -0,0 +1,54 @@ +/** + * Toolbar.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new toolbar. + * + * @class tinymce.ui.Toolbar + * @extends tinymce.ui.Container + */ +define("tinymce/ui/Toolbar", [ + "tinymce/ui/Container" +], function(Container) { + "use strict"; + + return Container.extend({ + Defaults: { + role: 'toolbar', + layout: 'flow' + }, + + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + */ + init: function(settings) { + var self = this; + + self._super(settings); + self.addClass('toolbar'); + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this; + + self.items().addClass('toolbar-item'); + + return self._super(); + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Tooltip.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Tooltip.js new file mode 100755 index 00000000000..2d01d491201 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Tooltip.js @@ -0,0 +1,86 @@ +/** + * Tooltip.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a tooltip instance. + * + * @-x-less ToolTip.less + * @class tinymce.ui.ToolTip + * @extends tinymce.ui.Control + * @mixes tinymce.ui.Movable + */ +define("tinymce/ui/Tooltip", [ + "tinymce/ui/Control", + "tinymce/ui/Movable" +], function(Control, Movable) { + return Control.extend({ + Mixins: [Movable], + + Defaults: { + classes: 'widget tooltip tooltip-n' + }, + + /** + * Sets/gets the current label text. + * + * @method text + * @param {String} [text] New label text. + * @return {String|tinymce.ui.Tooltip} Current text or current label instance. + */ + text: function(value) { + var self = this; + + if (typeof(value) != "undefined") { + self._value = value; + + if (self._rendered) { + self.getEl().lastChild.innerHTML = self.encode(value); + } + + return self; + } + + return self._value; + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, prefix = self.classPrefix; + + return ( + '<div id="' + self._id + '" class="' + self.classes() + '" role="presentation">' + + '<div class="' + prefix + 'tooltip-arrow"></div>' + + '<div class="' + prefix + 'tooltip-inner">' + self.encode(self._text) + '</div>' + + '</div>' + ); + }, + + /** + * Repaints the control after a layout operation. + * + * @method repaint + */ + repaint: function() { + var self = this, style, rect; + + style = self.getEl().style; + rect = self._layoutRect; + + style.left = rect.x + 'px'; + style.top = rect.y + 'px'; + style.zIndex = 0xFFFF + 0xFFFF; + } + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Widget.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Widget.js new file mode 100755 index 00000000000..274b937e1c5 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Widget.js @@ -0,0 +1,156 @@ +/** + * Widget.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Widget base class a widget is a control that has a tooltip and some basic states. + * + * @class tinymce.ui.Widget + * @extends tinymce.ui.Control + */ +define("tinymce/ui/Widget", [ + "tinymce/ui/Control", + "tinymce/ui/Tooltip" +], function(Control, Tooltip) { + "use strict"; + + var tooltip; + + var Widget = Control.extend({ + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {String} tooltip Tooltip text to display when hovering. + * @setting {Boolean} autofocus True if the control should be focused when rendered. + * @setting {String} text Text to display inside widget. + */ + init: function(settings) { + var self = this; + + self._super(settings); + self.canFocus = true; + + if (settings.tooltip && Widget.tooltips !== false) { + self.on('mouseenter', function(e) { + var tooltip = self.tooltip().moveTo(-0xFFFF); + + if (e.control == self) { + var rel = tooltip.text(settings.tooltip).show().testMoveRel(self.getEl(), ['bc-tc', 'bc-tl', 'bc-tr']); + + tooltip.toggleClass('tooltip-n', rel == 'bc-tc'); + tooltip.toggleClass('tooltip-nw', rel == 'bc-tl'); + tooltip.toggleClass('tooltip-ne', rel == 'bc-tr'); + + tooltip.moveRel(self.getEl(), rel); + } else { + tooltip.hide(); + } + }); + + self.on('mouseleave mousedown click', function() { + self.tooltip().hide(); + }); + } + + self.aria('label', settings.ariaLabel || settings.tooltip); + }, + + /** + * Returns the current tooltip instance. + * + * @method tooltip + * @return {tinymce.ui.Tooltip} Tooltip instance. + */ + tooltip: function() { + if (!tooltip) { + tooltip = new Tooltip({type: 'tooltip'}); + tooltip.renderTo(); + } + + return tooltip; + }, + + /** + * Sets/gets the active state of the widget. + * + * @method active + * @param {Boolean} [state] State if the control is active. + * @return {Boolean|tinymce.ui.Widget} True/false or current widget instance. + */ + active: function(state) { + var self = this, undef; + + if (state !== undef) { + self.aria('pressed', state); + self.toggleClass('active', state); + } + + return self._super(state); + }, + + /** + * Sets/gets the disabled state of the widget. + * + * @method disabled + * @param {Boolean} [state] State if the control is disabled. + * @return {Boolean|tinymce.ui.Widget} True/false or current widget instance. + */ + disabled: function(state) { + var self = this, undef; + + if (state !== undef) { + self.aria('disabled', state); + self.toggleClass('disabled', state); + } + + return self._super(state); + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this, settings = self.settings; + + self._rendered = true; + + self._super(); + + if (!self.parent() && (settings.width || settings.height)) { + self.initLayoutRect(); + self.repaint(); + } + + if (settings.autofocus) { + self.focus(); + } + }, + + /** + * Removes the current control from DOM and from UI collections. + * + * @method remove + * @return {tinymce.ui.Control} Current control instance. + */ + remove: function() { + this._super(); + + if (tooltip) { + tooltip.remove(); + tooltip = null; + } + } + }); + + return Widget; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Window.js b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Window.js new file mode 100755 index 00000000000..00d841b09cf --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/ui/Window.js @@ -0,0 +1,373 @@ +/** + * Window.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new window. + * + * @-x-less Window.less + * @class tinymce.ui.Window + * @extends tinymce.ui.FloatPanel + */ +define("tinymce/ui/Window", [ + "tinymce/ui/FloatPanel", + "tinymce/ui/Panel", + "tinymce/ui/DomUtils", + "tinymce/ui/DragHelper" +], function(FloatPanel, Panel, DomUtils, DragHelper) { + "use strict"; + + var Window = FloatPanel.extend({ + modal: true, + + Defaults: { + border: 1, + layout: 'flex', + containerCls: 'panel', + role: 'dialog', + callbacks: { + submit: function() { + this.fire('submit', {data: this.toJSON()}); + }, + + close: function() { + this.close(); + } + } + }, + + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + */ + init: function(settings) { + var self = this; + + self._super(settings); + + if (self.isRtl()) { + self.addClass('rtl'); + } + + self.addClass('window'); + self._fixed = true; + + // Create statusbar + if (settings.buttons) { + self.statusbar = new Panel({ + layout: 'flex', + border: '1 0 0 0', + spacing: 3, + padding: 10, + align: 'center', + pack: self.isRtl() ? 'start' : 'end', + defaults: { + type: 'button' + }, + items: settings.buttons + }); + + self.statusbar.addClass('foot'); + self.statusbar.parent(self); + } + + self.on('click', function(e) { + if (e.target.className.indexOf(self.classPrefix + 'close') != -1) { + self.close(); + } + }); + + self.on('cancel', function() { + self.close(); + }); + + self.aria('describedby', self.describedBy || self._id + '-none'); + self.aria('label', settings.title); + self._fullscreen = false; + }, + + /** + * Recalculates the positions of the controls in the current container. + * This is invoked by the reflow method and shouldn't be called directly. + * + * @method recalc + */ + recalc: function() { + var self = this, statusbar = self.statusbar, layoutRect, width, x, needsRecalc; + + if (self._fullscreen) { + self.layoutRect(DomUtils.getWindowSize()); + self.layoutRect().contentH = self.layoutRect().innerH; + } + + self._super(); + + layoutRect = self.layoutRect(); + + // Resize window based on title width + if (self.settings.title && !self._fullscreen) { + width = layoutRect.headerW; + if (width > layoutRect.w) { + x = layoutRect.x - Math.max(0, width / 2); + self.layoutRect({w: width, x: x}); + needsRecalc = true; + } + } + + // Resize window based on statusbar width + if (statusbar) { + statusbar.layoutRect({w: self.layoutRect().innerW}).recalc(); + + width = statusbar.layoutRect().minW + layoutRect.deltaW; + if (width > layoutRect.w) { + x = layoutRect.x - Math.max(0, width - layoutRect.w); + self.layoutRect({w: width, x: x}); + needsRecalc = true; + } + } + + // Recalc body and disable auto resize + if (needsRecalc) { + self.recalc(); + } + }, + + /** + * Initializes the current controls layout rect. + * This will be executed by the layout managers to determine the + * default minWidth/minHeight etc. + * + * @method initLayoutRect + * @return {Object} Layout rect instance. + */ + initLayoutRect: function() { + var self = this, layoutRect = self._super(), deltaH = 0, headEl; + + // Reserve vertical space for title + if (self.settings.title && !self._fullscreen) { + headEl = self.getEl('head'); + + var size = DomUtils.getSize(headEl); + + layoutRect.headerW = size.width; + layoutRect.headerH = size.height; + + deltaH += layoutRect.headerH; + } + + // Reserve vertical space for statusbar + if (self.statusbar) { + deltaH += self.statusbar.layoutRect().h; + } + + layoutRect.deltaH += deltaH; + layoutRect.minH += deltaH; + //layoutRect.innerH -= deltaH; + layoutRect.h += deltaH; + + var rect = DomUtils.getWindowSize(); + + layoutRect.x = Math.max(0, rect.w / 2 - layoutRect.w / 2); + layoutRect.y = Math.max(0, rect.h / 2 - layoutRect.h / 2); + + return layoutRect; + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, layout = self._layout, id = self._id, prefix = self.classPrefix; + var settings = self.settings, headerHtml = '', footerHtml = '', html = settings.html; + + self.preRender(); + layout.preRender(self); + + if (settings.title) { + headerHtml = ( + '<div id="' + id + '-head" class="' + prefix + 'window-head">' + + '<div id="' + id + '-title" class="' + prefix + 'title">' + self.encode(settings.title) + '</div>' + + '<button type="button" class="' + prefix + 'close" aria-hidden="true">×</button>' + + '<div id="' + id + '-dragh" class="' + prefix + 'dragh"></div>' + + '</div>' + ); + } + + if (settings.url) { + html = '<iframe src="' + settings.url + '" tabindex="-1"></iframe>'; + } + + if (typeof(html) == "undefined") { + html = layout.renderHtml(self); + } + + if (self.statusbar) { + footerHtml = self.statusbar.renderHtml(); + } + + return ( + '<div id="' + id + '" class="' + self.classes() + '" hideFocus="1">' + + '<div class="' + self.classPrefix + 'reset" role="application">' + + headerHtml + + '<div id="' + id + '-body" class="' + self.classes('body') + '">' + + html + + '</div>' + + footerHtml + + '</div>' + + '</div>' + ); + }, + + /** + * Switches the window fullscreen mode. + * + * @method fullscreen + * @param {Boolean} state True/false state. + * @return {tinymce.ui.Window} Current window instance. + */ + fullscreen: function(state) { + var self = this, documentElement = document.documentElement, slowRendering, prefix = self.classPrefix, layoutRect; + + if (state != self._fullscreen) { + DomUtils.on(window, 'resize', function() { + var time; + + if (self._fullscreen) { + // Time the layout time if it's to slow use a timeout to not hog the CPU + if (!slowRendering) { + time = new Date().getTime(); + + var rect = DomUtils.getWindowSize(); + self.moveTo(0, 0).resizeTo(rect.w, rect.h); + + if ((new Date().getTime()) - time > 50) { + slowRendering = true; + } + } else { + if (!self._timer) { + self._timer = setTimeout(function() { + var rect = DomUtils.getWindowSize(); + self.moveTo(0, 0).resizeTo(rect.w, rect.h); + + self._timer = 0; + }, 50); + } + } + } + }); + + layoutRect = self.layoutRect(); + self._fullscreen = state; + + if (!state) { + self._borderBox = self.parseBox(self.settings.border); + self.getEl('head').style.display = ''; + layoutRect.deltaH += layoutRect.headerH; + DomUtils.removeClass(documentElement, prefix + 'fullscreen'); + DomUtils.removeClass(document.body, prefix + 'fullscreen'); + self.removeClass('fullscreen'); + self.moveTo(self._initial.x, self._initial.y).resizeTo(self._initial.w, self._initial.h); + } else { + self._initial = {x: layoutRect.x, y: layoutRect.y, w: layoutRect.w, h: layoutRect.h}; + + self._borderBox = self.parseBox('0'); + self.getEl('head').style.display = 'none'; + layoutRect.deltaH -= layoutRect.headerH + 2; + DomUtils.addClass(documentElement, prefix + 'fullscreen'); + DomUtils.addClass(document.body, prefix + 'fullscreen'); + self.addClass('fullscreen'); + + var rect = DomUtils.getWindowSize(); + self.moveTo(0, 0).resizeTo(rect.w, rect.h); + } + } + + return self.reflow(); + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this, startPos; + + setTimeout(function() { + self.addClass('in'); + }, 0); + + self._super(); + + if (self.statusbar) { + self.statusbar.postRender(); + } + + self.focus(); + + this.dragHelper = new DragHelper(self._id + '-dragh', { + start: function() { + startPos = { + x: self.layoutRect().x, + y: self.layoutRect().y + }; + }, + + drag: function(e) { + self.moveTo(startPos.x + e.deltaX, startPos.y + e.deltaY); + } + }); + + self.on('submit', function(e) { + if (!e.isDefaultPrevented()) { + self.close(); + } + }); + }, + + /** + * Fires a submit event with the serialized form. + * + * @method submit + * @return {Object} Event arguments object. + */ + submit: function() { + return this.fire('submit', {data: this.toJSON()}); + }, + + /** + * Removes the current control from DOM and from UI collections. + * + * @method remove + * @return {tinymce.ui.Control} Current control instance. + */ + remove: function() { + var self = this, prefix = self.classPrefix; + + self.dragHelper.destroy(); + self._super(); + + if (self.statusbar) { + this.statusbar.remove(); + } + + if (self._fullscreen) { + DomUtils.removeClass(document.documentElement, prefix + 'fullscreen'); + DomUtils.removeClass(document.body, prefix + 'fullscreen'); + } + } + }); + + return Window; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/util/Class.js b/common/static/js/vendor/tinymce/js/tinymce/classes/util/Class.js new file mode 100755 index 00000000000..787c69c77cb --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/util/Class.js @@ -0,0 +1,163 @@ +/** + * Class.js + * + * Copyright 2003-2012, Moxiecode Systems AB, All rights reserved. + */ + +/** + * This utilitiy class is used for easier inheritage. + * + * Features: + * * Exposed super functions: this._super(); + * * Mixins + * * Dummy functions + * * Property functions: var value = object.value(); and object.value(newValue); + * * Static functions + * * Defaults settings + */ +define("tinymce/util/Class", [ + "tinymce/util/Tools" +], function(Tools) { + var each = Tools.each, extend = Tools.extend; + + var extendClass, initializing; + + function Class() { + } + + // Provides classical inheritance, based on code made by John Resig + Class.extend = extendClass = function(prop) { + var self = this, _super = self.prototype, prototype, name, member; + + // The dummy class constructor + function Class() { + var i, mixins, mixin, self = this; + + // All construction is actually done in the init method + if (!initializing) { + // Run class constuctor + if (self.init) { + self.init.apply(self, arguments); + } + + // Run mixin constructors + mixins = self.Mixins; + if (mixins) { + i = mixins.length; + while (i--) { + mixin = mixins[i]; + if (mixin.init) { + mixin.init.apply(self, arguments); + } + } + } + } + } + + // Dummy function, needs to be extended in order to provide functionality + function dummy() { + return this; + } + + // Creates a overloaded method for the class + // this enables you to use this._super(); to call the super function + function createMethod(name, fn) { + return function(){ + var self = this, tmp = self._super, ret; + + self._super = _super[name]; + ret = fn.apply(self, arguments); + self._super = tmp; + + return ret; + }; + } + + // Instantiate a base class (but only create the instance, + // don't run the init constructor) + initializing = true; + prototype = new self(); + initializing = false; + + // Add mixins + if (prop.Mixins) { + each(prop.Mixins, function(mixin) { + mixin = mixin; + + for (var name in mixin) { + if (name !== "init") { + prop[name] = mixin[name]; + } + } + }); + + if (_super.Mixins) { + prop.Mixins = _super.Mixins.concat(prop.Mixins); + } + } + + // Generate dummy methods + if (prop.Methods) { + each(prop.Methods.split(','), function(name) { + prop[name] = dummy; + }); + } + + // Generate property methods + if (prop.Properties) { + each(prop.Properties.split(','), function(name) { + var fieldName = '_' + name; + + prop[name] = function(value) { + var self = this, undef; + + // Set value + if (value !== undef) { + self[fieldName] = value; + + return self; + } + + // Get value + return self[fieldName]; + }; + }); + } + + // Static functions + if (prop.Statics) { + each(prop.Statics, function(func, name) { + Class[name] = func; + }); + } + + // Default settings + if (prop.Defaults && _super.Defaults) { + prop.Defaults = extend({}, _super.Defaults, prop.Defaults); + } + + // Copy the properties over onto the new prototype + for (name in prop) { + member = prop[name]; + + if (typeof member == "function" && _super[name]) { + prototype[name] = createMethod(name, member); + } else { + prototype[name] = member; + } + } + + // Populate our constructed prototype object + Class.prototype = prototype; + + // Enforce the constructor to be what we expect + Class.constructor = Class; + + // And make this class extendible + Class.extend = extendClass; + + return Class; + }; + + return Class; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/util/I18n.js b/common/static/js/vendor/tinymce/js/tinymce/classes/util/I18n.js new file mode 100755 index 00000000000..27a8dad64a8 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/util/I18n.js @@ -0,0 +1,80 @@ +/** + * I18n.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * I18n class that handles translation of TinyMCE UI. + * Uses po style with csharp style parameters. + * + * @class tinymce.util.I18n + */ +define("tinymce/util/I18n", [], function() { + "use strict"; + + var data = {}; + + return { + /** + * Property gets set to true if a RTL language pack was loaded. + * + * @property rtl + * @type Boolean + */ + rtl: false, + + /** + * Adds translations for a specific language code. + * + * @method add + * @param {String} code Language code like sv_SE. + * @param {Array} items Name/value array with English en_US to sv_SE. + */ + add: function(code, items) { + for (var name in items) { + data[name] = items[name]; + } + + this.rtl = this.rtl || data._dir === 'rtl'; + }, + + /** + * Translates the specified text. + * + * It has a few formats: + * I18n.translate("Text"); + * I18n.translate(["Text {0}/{1}", 0, 1]); + * I18n.translate({raw: "Raw string"}); + * + * @method translate + * @param {String/Object/Array} text Text to translate. + * @return {String} String that got translated. + */ + translate: function(text) { + if (typeof(text) == "undefined") { + return text; + } + + if (typeof(text) != "string" && text.raw) { + return text.raw; + } + + if (text.push) { + var values = text.slice(1); + + text = (data[text[0]] || text[0]).replace(/\{([^\}]+)\}/g, function(match1, match2) { + return values[match2]; + }); + } + + return data[text] || text; + }, + + data: data + }; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/util/JSON.js b/common/static/js/vendor/tinymce/js/tinymce/classes/util/JSON.js new file mode 100755 index 00000000000..623b5df35e7 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/util/JSON.js @@ -0,0 +1,109 @@ +/** + * JSON.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * JSON parser and serializer class. + * + * @class tinymce.util.JSON + * @static + * @example + * // JSON parse a string into an object + * var obj = tinymce.util.JSON.parse(somestring); + * + * // JSON serialize a object into an string + * var str = tinymce.util.JSON.serialize(obj); + */ +define("tinymce/util/JSON", [], function() { + function serialize(o, quote) { + var i, v, t, name; + + quote = quote || '"'; + + if (o === null) { + return 'null'; + } + + t = typeof o; + + if (t == 'string') { + v = '\bb\tt\nn\ff\rr\""\'\'\\\\'; + + return quote + o.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g, function(a, b) { + // Make sure single quotes never get encoded inside double quotes for JSON compatibility + if (quote === '"' && a === "'") { + return a; + } + + i = v.indexOf(b); + + if (i + 1) { + return '\\' + v.charAt(i + 1); + } + + a = b.charCodeAt().toString(16); + + return '\\u' + '0000'.substring(a.length) + a; + }) + quote; + } + + if (t == 'object') { + if (o.hasOwnProperty && Object.prototype.toString.call(o) === '[object Array]') { + for (i = 0, v = '['; i < o.length; i++) { + v += (i > 0 ? ',' : '') + serialize(o[i], quote); + } + + return v + ']'; + } + + v = '{'; + + for (name in o) { + if (o.hasOwnProperty(name)) { + v += typeof o[name] != 'function' ? (v.length > 1 ? ',' + quote : quote) + name + + quote + ':' + serialize(o[name], quote) : ''; + } + } + + return v + '}'; + } + + return '' + o; + } + + return { + /** + * Serializes the specified object as a JSON string. + * + * @method serialize + * @param {Object} obj Object to serialize as a JSON string. + * @param {String} quote Optional quote string defaults to ". + * @return {string} JSON string serialized from input. + */ + serialize: serialize, + + /** + * Unserializes/parses the specified JSON string into a object. + * + * @method parse + * @param {string} s JSON String to parse into a JavaScript object. + * @return {Object} Object from input JSON string or undefined if it failed. + */ + parse: function(text) { + try { + // Trick uglify JS + return window[String.fromCharCode(101) + 'val']('(' + text + ')'); + } catch (ex) { + // Ignore + } + } + + /**#@-*/ + }; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/util/JSONP.js b/common/static/js/vendor/tinymce/js/tinymce/classes/util/JSONP.js new file mode 100755 index 00000000000..3c0bf67dd66 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/util/JSONP.js @@ -0,0 +1,38 @@ +/** + * JSONP.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +define("tinymce/util/JSONP", [ + "tinymce/dom/DOMUtils" +], function(DOMUtils) { + return { + callbacks: {}, + count: 0, + + send: function(settings) { + var self = this, dom = DOMUtils.DOM, count = settings.count !== undefined ? settings.count : self.count; + var id = 'tinymce_jsonp_' + count; + + self.callbacks[count] = function(json) { + dom.remove(id); + delete self.callbacks[count]; + + settings.callback(json); + }; + + dom.add(dom.doc.body, 'script', { + id: id, + src: settings.url, + type: 'text/javascript' + }); + + self.count++; + } + }; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/util/JSONRequest.js b/common/static/js/vendor/tinymce/js/tinymce/classes/util/JSONRequest.js new file mode 100755 index 00000000000..0277a66cb88 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/util/JSONRequest.js @@ -0,0 +1,110 @@ +/** + * JSONRequest.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class enables you to use JSON-RPC to call backend methods. + * + * @class tinymce.util.JSONRequest + * @example + * var json = new tinymce.util.JSONRequest({ + * url: 'somebackend.php' + * }); + * + * // Send RPC call 1 + * json.send({ + * method: 'someMethod1', + * params: ['a', 'b'], + * success: function(result) { + * console.dir(result); + * } + * }); + * + * // Send RPC call 2 + * json.send({ + * method: 'someMethod2', + * params: ['a', 'b'], + * success: function(result) { + * console.dir(result); + * } + * }); + */ +define("tinymce/util/JSONRequest", [ + "tinymce/util/JSON", + "tinymce/util/XHR", + "tinymce/util/Tools" +], function(JSON, XHR, Tools) { + var extend = Tools.extend; + + function JSONRequest(settings) { + this.settings = extend({}, settings); + this.count = 0; + } + + /** + * Simple helper function to send a JSON-RPC request without the need to initialize an object. + * Consult the Wiki API documentation for more details on what you can pass to this function. + * + * @method sendRPC + * @static + * @param {Object} o Call object where there are three field id, method and params this object should also contain callbacks etc. + */ + JSONRequest.sendRPC = function(o) { + return new JSONRequest().send(o); + }; + + JSONRequest.prototype = { + /** + * Sends a JSON-RPC call. Consult the Wiki API documentation for more details on what you can pass to this function. + * + * @method send + * @param {Object} args Call object where there are three field id, method and params this object should also contain callbacks etc. + */ + send: function(args) { + var ecb = args.error, scb = args.success; + + args = extend(this.settings, args); + + args.success = function(c, x) { + c = JSON.parse(c); + + if (typeof(c) == 'undefined') { + c = { + error : 'JSON Parse error.' + }; + } + + if (c.error) { + ecb.call(args.error_scope || args.scope, c.error, x); + } else { + scb.call(args.success_scope || args.scope, c.result); + } + }; + + args.error = function(ty, x) { + if (ecb) { + ecb.call(args.error_scope || args.scope, ty, x); + } + }; + + args.data = JSON.serialize({ + id: args.id || 'c' + (this.count++), + method: args.method, + params: args.params + }); + + // JSON content type for Ruby on rails. Bug: #1883287 + args.content_type = 'application/json'; + + XHR.send(args); + } + }; + + return JSONRequest; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/util/LocalStorage.js b/common/static/js/vendor/tinymce/js/tinymce/classes/util/LocalStorage.js new file mode 100755 index 00000000000..6a6d890c7e7 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/util/LocalStorage.js @@ -0,0 +1,213 @@ +/** + * LocalStorage.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class will simulate LocalStorage on IE 7 and return the native version on modern browsers. + * Storage is done using userData on IE 7 and a special serialization format. The format is designed + * to be as small as possible by making sure that the keys and values doesn't need to be encoded. This + * makes it possible to store for example HTML data. + * + * Storage format for userData: + * <base 32 key length>,<key string>,<base 32 value length>,<value>,... + * + * For example this data key1=value1,key2=value2 would be: + * 4,key1,6,value1,4,key2,6,value2 + * + * @class tinymce.util.LocalStorage + * @static + * @version 4.0 + * @example + * tinymce.util.LocalStorage.setItem('key', 'value'); + * var value = tinymce.util.LocalStorage.getItem('key'); + */ +define("tinymce/util/LocalStorage", [], function() { + var LocalStorage, storageElm, items, keys, userDataKey, hasOldIEDataSupport; + + // Check for native support + try { + if (window.localStorage) { + return localStorage; + } + } catch (ex) { + // Ignore + } + + userDataKey = "tinymce"; + storageElm = document.documentElement; + hasOldIEDataSupport = !!storageElm.addBehavior; + + if (hasOldIEDataSupport) { + storageElm.addBehavior('#default#userData'); + } + + /** + * Gets the keys names and updates LocalStorage.length property. Since IE7 doesn't have any getters/setters. + */ + function updateKeys() { + keys = []; + + for (var key in items) { + keys.push(key); + } + + LocalStorage.length = keys.length; + } + + /** + * Loads the userData string and parses it into the items structure. + */ + function load() { + var key, data, value, pos = 0; + + items = {}; + + // localStorage can be disabled on WebKit/Gecko so make a dummy storage + if (!hasOldIEDataSupport) { + return; + } + + function next(end) { + var value, nextPos; + + nextPos = end !== undefined ? pos + end : data.indexOf(',', pos); + if (nextPos === -1 || nextPos > data.length) { + return null; + } + + value = data.substring(pos, nextPos); + pos = nextPos + 1; + + return value; + } + + storageElm.load(userDataKey); + data = storageElm.getAttribute(userDataKey) || ''; + + do { + var offset = next(); + if (offset === null) { + break; + } + + key = next(parseInt(offset, 32) || 0); + if (key !== null) { + offset = next(); + if (offset === null) { + break; + } + + value = next(parseInt(offset, 32) || 0); + + if (key) { + items[key] = value; + } + } + } while (key !== null); + + updateKeys(); + } + + /** + * Saves the items structure into a the userData format. + */ + function save() { + var value, data = ''; + + // localStorage can be disabled on WebKit/Gecko so make a dummy storage + if (!hasOldIEDataSupport) { + return; + } + + for (var key in items) { + value = items[key]; + data += (data ? ',' : '') + key.length.toString(32) + ',' + key + ',' + value.length.toString(32) + ',' + value; + } + + storageElm.setAttribute(userDataKey, data); + + try { + storageElm.save(userDataKey); + } catch (ex) { + // Ignore disk full + } + + updateKeys(); + } + + LocalStorage = { + /** + * Length of the number of items in storage. + * + * @property length + * @type Number + * @return {Number} Number of items in storage. + */ + //length:0, + + /** + * Returns the key name by index. + * + * @method key + * @param {Number} index Index of key to return. + * @return {String} Key value or null if it wasn't found. + */ + key: function(index) { + return keys[index]; + }, + + /** + * Returns the value if the specified key or null if it wasn't found. + * + * @method getItem + * @param {String} key Key of item to retrive. + * @return {String} Value of the specified item or null if it wasn't found. + */ + getItem: function(key) { + return key in items ? items[key] : null; + }, + + /** + * Sets the value of the specified item by it's key. + * + * @method setItem + * @param {String} key Key of the item to set. + * @param {String} value Value of the item to set. + */ + setItem: function(key, value) { + items[key] = "" + value; + save(); + }, + + /** + * Removes the specified item by key. + * + * @method removeItem + * @param {String} key Key of item to remove. + */ + removeItem: function(key) { + delete items[key]; + save(); + }, + + /** + * Removes all items. + * + * @method clear + */ + clear: function() { + items = {}; + save(); + } + }; + + load(); + + return LocalStorage; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/util/Observable.js b/common/static/js/vendor/tinymce/js/tinymce/classes/util/Observable.js new file mode 100755 index 00000000000..ca17e677c52 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/util/Observable.js @@ -0,0 +1,250 @@ +/** + * Observable.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This mixin will add event binding logic to classes. + * + * @mixin tinymce.util.Observable + */ +define("tinymce/util/Observable", [ + "tinymce/util/Tools" +], function(Tools) { + var bindingsName = "__bindings"; + var nativeEvents = Tools.makeMap( + "focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange" + + " mouseout mouseenter mouseleave keydown keypress keyup contextmenu dragstart dragend dragover draggesture dragdrop drop drag", ' ' + ); + + function returnFalse() { + return false; + } + + function returnTrue() { + return true; + } + + return { + /** + * Fires the specified event by name. + * + * @method fire + * @param {String} name Name of the event to fire. + * @param {tinymce.Event/Object?} args Event arguments. + * @param {Boolean?} bubble True/false if the event is to be bubbled. + * @return {tinymce.Event} Event instance passed in converted into tinymce.Event instance. + * @example + * instance.fire('event', {...}); + */ + fire: function(name, args, bubble) { + var self = this, handlers, i, l, callback, parent; + + if (self.removed) { + return; + } + + name = name.toLowerCase(); + args = args || {}; + args.type = name; + + // Setup target is there isn't one + if (!args.target) { + args.target = self; + } + + // Add event delegation methods if they are missing + if (!args.preventDefault) { + // Add preventDefault method + args.preventDefault = function() { + args.isDefaultPrevented = returnTrue; + }; + + // Add stopPropagation + args.stopPropagation = function() { + args.isPropagationStopped = returnTrue; + }; + + // Add stopImmediatePropagation + args.stopImmediatePropagation = function() { + args.isImmediatePropagationStopped = returnTrue; + }; + + // Add event delegation states + args.isDefaultPrevented = returnFalse; + args.isPropagationStopped = returnFalse; + args.isImmediatePropagationStopped = returnFalse; + } + + //console.log(name, args); + + if (self[bindingsName]) { + handlers = self[bindingsName][name]; + + if (handlers) { + for (i = 0, l = handlers.length; i < l; i++) { + handlers[i] = callback = handlers[i]; + + // Stop immediate propagation if needed + if (args.isImmediatePropagationStopped()) { + break; + } + + // If callback returns false then prevent default and stop all propagation + if (callback.call(self, args) === false) { + args.preventDefault(); + return args; + } + } + } + } + + // Bubble event up to parents + if (bubble !== false && self.parent) { + parent = self.parent(); + while (parent && !args.isPropagationStopped()) { + parent.fire(name, args, false); + parent = parent.parent(); + } + } + + return args; + }, + + /** + * Binds an event listener to a specific event by name. + * + * @method on + * @param {String} name Event name or space separated list of events to bind. + * @param {callback} callback Callback to be executed when the event occurs. + * @param {Boolean} first Optional flag if the event should be prepended. Use this with care. + * @return {Object} Current class instance. + * @example + * instance.on('event', function(e) { + * // Callback logic + * }); + */ + on: function(name, callback, prepend) { + var self = this, bindings, handlers, names, i; + + if (callback === false) { + callback = function() { + return false; + }; + } + + if (callback) { + names = name.toLowerCase().split(' '); + i = names.length; + while (i--) { + name = names[i]; + + bindings = self[bindingsName]; + if (!bindings) { + bindings = self[bindingsName] = {}; + } + + handlers = bindings[name]; + if (!handlers) { + handlers = bindings[name] = []; + if (self.bindNative && nativeEvents[name]) { + self.bindNative(name); + } + } + + if (prepend) { + handlers.unshift(callback); + } else { + handlers.push(callback); + } + } + } + + return self; + }, + + /** + * Unbinds an event listener to a specific event by name. + * + * @method off + * @param {String?} name Name of the event to unbind. + * @param {callback?} callback Callback to unbind. + * @return {Object} Current class instance. + * @example + * // Unbind specific callback + * instance.off('event', handler); + * + * // Unbind all listeners by name + * instance.off('event'); + * + * // Unbind all events + * instance.off(); + */ + off: function(name, callback) { + var self = this, i, bindings = self[bindingsName], handlers, bindingName, names, hi; + + if (bindings) { + if (name) { + names = name.toLowerCase().split(' '); + i = names.length; + while (i--) { + name = names[i]; + handlers = bindings[name]; + + // Unbind all handlers + if (!name) { + for (bindingName in bindings) { + bindings[name].length = 0; + } + + return self; + } + + if (handlers) { + // Unbind all by name + if (!callback) { + handlers.length = 0; + } else { + // Unbind specific ones + hi = handlers.length; + while (hi--) { + if (handlers[hi] === callback) { + handlers.splice(hi, 1); + } + } + } + + if (!handlers.length && self.unbindNative && nativeEvents[name]) { + self.unbindNative(name); + delete bindings[name]; + } + } + } + } else { + if (self.unbindNative) { + for (name in bindings) { + self.unbindNative(name); + } + } + + self[bindingsName] = []; + } + } + + return self; + }, + + hasEventListeners: function(name) { + var bindings = this[bindingsName]; + + name = name.toLowerCase(); + + return !(!bindings || !bindings[name] || bindings[name].length === 0); + } + }; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/util/Quirks.js b/common/static/js/vendor/tinymce/js/tinymce/classes/util/Quirks.js new file mode 100755 index 00000000000..27b610c5519 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/util/Quirks.js @@ -0,0 +1,1139 @@ +/** + * Quirks.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + * + * @ignore-file + */ + +/** + * This file includes fixes for various browser quirks it's made to make it easy to add/remove browser specific fixes. + * + * @class tinymce.util.Quirks + */ +define("tinymce/util/Quirks", [ + "tinymce/util/VK", + "tinymce/dom/RangeUtils", + "tinymce/html/Node", + "tinymce/html/Entities", + "tinymce/Env", + "tinymce/util/Tools" +], function(VK, RangeUtils, Node, Entities, Env, Tools) { + return function(editor) { + var each = Tools.each; + var BACKSPACE = VK.BACKSPACE, DELETE = VK.DELETE, dom = editor.dom, selection = editor.selection, + settings = editor.settings, parser = editor.parser, serializer = editor.serializer; + var isGecko = Env.gecko, isIE = Env.ie, isWebKit = Env.webkit; + + /** + * Executes a command with a specific state this can be to enable/disable browser editing features. + */ + function setEditorCommandState(cmd, state) { + try { + editor.getDoc().execCommand(cmd, false, state); + } catch (ex) { + // Ignore + } + } + + /** + * Returns current IE document mode. + */ + function getDocumentMode() { + var documentMode = editor.getDoc().documentMode; + + return documentMode ? documentMode : 6; + } + + /** + * Returns true/false if the event is prevented or not. + * + * @private + * @param {Event} e Event object. + * @return {Boolean} true/false if the event is prevented or not. + */ + function isDefaultPrevented(e) { + return e.isDefaultPrevented(); + } + + /** + * Fixes a WebKit bug when deleting contents using backspace or delete key. + * WebKit will produce a span element if you delete across two block elements. + * + * Example: + * <h1>a</h1><p>|b</p> + * + * Will produce this on backspace: + * <h1>a<span style="<all runtime styles>">b</span></p> + * + * This fixes the backspace to produce: + * <h1>a|b</p> + * + * See bug: https://bugs.webkit.org/show_bug.cgi?id=45784 + * + * This fixes the following delete scenarios: + * 1. Delete by pressing backspace key. + * 2. Delete by pressing delete key. + * 3. Delete by pressing backspace key with ctrl/cmd (Word delete). + * 4. Delete by pressing delete key with ctrl/cmd (Word delete). + * 5. Delete by drag/dropping contents inside the editor. + * 6. Delete by using Cut Ctrl+X/Cmd+X. + * 7. Delete by selecting contents and writing a character.' + * + * This code is a ugly hack since writing full custom delete logic for just this bug + * fix seemed like a huge task. I hope we can remove this before the year 2030. + */ + function cleanupStylesWhenDeleting() { + var doc = editor.getDoc(), urlPrefix = 'data:text/mce-internal,'; + var MutationObserver = window.MutationObserver, olderWebKit; + + // Add mini polyfill for older WebKits + // TODO: Remove this when old Safari versions gets updated + if (!MutationObserver) { + olderWebKit = true; + + MutationObserver = function() { + var records = [], target; + + function nodeInsert(e) { + var target = e.relatedNode || e.target; + records.push({target: target, addedNodes: [target]}); + } + + function attrModified(e) { + var target = e.relatedNode || e.target; + records.push({target: target, attributeName: e.attrName}); + } + + this.observe = function(node) { + target = node; + target.addEventListener('DOMSubtreeModified', nodeInsert, false); + target.addEventListener('DOMNodeInsertedIntoDocument', nodeInsert, false); + target.addEventListener('DOMNodeInserted', nodeInsert, false); + target.addEventListener('DOMAttrModified', attrModified, false); + }; + + this.disconnect = function() { + target.removeEventListener('DOMNodeInserted', nodeInsert); + target.removeEventListener('DOMAttrModified', attrModified); + target.removeEventListener('DOMSubtreeModified', nodeInsert, false); + }; + + this.takeRecords = function() { + return records; + }; + }; + } + + function customDelete(isForward) { + var mutationObserver = new MutationObserver(function() {}); + + Tools.each(editor.getBody().getElementsByTagName('*'), function(elm) { + // Mark existing spans + if (elm.tagName == 'SPAN') { + elm.setAttribute('mce-data-marked', 1); + } + + // Make sure all elements has a data-mce-style attribute + if (!elm.hasAttribute('data-mce-style') && elm.hasAttribute('style')) { + editor.dom.setAttrib(elm, 'style', elm.getAttribute('style')); + } + }); + + // Observe added nodes and style attribute changes + mutationObserver.observe(editor.getDoc(), { + childList: true, + attributes: true, + subtree: true, + attributeFilter: ['style'] + }); + + editor.getDoc().execCommand(isForward ? 'ForwardDelete' : 'Delete', false, null); + + var rng = editor.selection.getRng(); + var caretElement = rng.startContainer.parentNode; + + Tools.each(mutationObserver.takeRecords(), function(record) { + // Restore style attribute to previous value + if (record.attributeName == "style") { + var oldValue = record.target.getAttribute('data-mce-style'); + + if (oldValue) { + record.target.setAttribute("style", oldValue); + } else { + record.target.removeAttribute("style"); + } + } + + // Remove all spans that isn't maked and retain selection + Tools.each(record.addedNodes, function(node) { + if (node.nodeName == "SPAN" && !node.getAttribute('mce-data-marked')) { + var offset, container; + + if (node == caretElement) { + offset = rng.startOffset; + container = node.firstChild; + } + + dom.remove(node, true); + + if (container) { + rng.setStart(container, offset); + rng.setEnd(container, offset); + editor.selection.setRng(rng); + } + } + }); + }); + + mutationObserver.disconnect(); + + // Remove any left over marks + Tools.each(editor.dom.select('span[mce-data-marked]'), function(span) { + span.removeAttribute('mce-data-marked'); + }); + } + + editor.on('keydown', function(e) { + var isForward = e.keyCode == DELETE, isMeta = VK.metaKeyPressed(e); + + if (!isDefaultPrevented(e) && (isForward || e.keyCode == BACKSPACE)) { + var rng = editor.selection.getRng(), container = rng.startContainer, offset = rng.startOffset; + + // Ignore non meta delete in the where there is text before/after the caret + if (!isMeta && rng.collapsed && container.nodeType == 3) { + if (isForward ? offset < container.data.length : offset > 0) { + return; + } + } + + e.preventDefault(); + + if (isMeta) { + editor.selection.getSel().modify("extend", isForward ? "forward" : "backward", "word"); + } + + customDelete(isForward); + } + }); + + editor.on('keypress', function(e) { + if (!isDefaultPrevented(e) && !selection.isCollapsed() && e.charCode && !VK.metaKeyPressed(e)) { + e.preventDefault(); + customDelete(true); + editor.selection.setContent(String.fromCharCode(e.charCode)); + } + }); + + editor.addCommand('Delete', function() { + customDelete(); + }); + + editor.addCommand('ForwardDelete', function() { + customDelete(true); + }); + + // Older WebKits doesn't properly handle the clipboard so we can't add the rest + if (olderWebKit) { + return; + } + + editor.on('dragstart', function(e) { + // Safari doesn't support custom dataTransfer items so we can only use URL and Text + e.dataTransfer.setData('URL', 'data:text/mce-internal,' + escape(editor.selection.getContent())); + }); + + editor.on('drop', function(e) { + if (!isDefaultPrevented(e)) { + var internalContent = e.dataTransfer.getData('URL'); + + if (!internalContent || internalContent.indexOf(urlPrefix) == -1 || !doc.caretRangeFromPoint) { + return; + } + + internalContent = unescape(internalContent.substr(urlPrefix.length)); + if (doc.caretRangeFromPoint) { + e.preventDefault(); + customDelete(); + editor.selection.setRng(doc.caretRangeFromPoint(e.x, e.y)); + editor.insertContent(internalContent); + } + } + }); + + editor.on('cut', function(e) { + if (!isDefaultPrevented(e) && e.clipboardData) { + e.preventDefault(); + e.clipboardData.clearData(); + e.clipboardData.setData('text/html', editor.selection.getContent()); + e.clipboardData.setData('text/plain', editor.selection.getContent({format: 'text'})); + customDelete(true); + } + }); + } + + /** + * Makes sure that the editor body becomes empty when backspace or delete is pressed in empty editors. + * + * For example: + * <p><b>|</b></p> + * + * Or: + * <h1>|</h1> + * + * Or: + * [<h1></h1>] + */ + function emptyEditorWhenDeleting() { + function serializeRng(rng) { + var body = dom.create("body"); + var contents = rng.cloneContents(); + body.appendChild(contents); + return selection.serializer.serialize(body, {format: 'html'}); + } + + function allContentsSelected(rng) { + if (!rng.setStart) { + if (rng.item) { + return false; + } + + var bodyRng = rng.duplicate(); + bodyRng.moveToElementText(editor.getBody()); + return RangeUtils.compareRanges(rng, bodyRng); + } + + var selection = serializeRng(rng); + + var allRng = dom.createRng(); + allRng.selectNode(editor.getBody()); + + var allSelection = serializeRng(allRng); + return selection === allSelection; + } + + editor.on('keydown', function(e) { + var keyCode = e.keyCode, isCollapsed, body; + + // Empty the editor if it's needed for example backspace at <p><b>|</b></p> + if (!isDefaultPrevented(e) && (keyCode == DELETE || keyCode == BACKSPACE)) { + isCollapsed = editor.selection.isCollapsed(); + body = editor.getBody(); + + // Selection is collapsed but the editor isn't empty + if (isCollapsed && !dom.isEmpty(body)) { + return; + } + + // Selection isn't collapsed but not all the contents is selected + if (!isCollapsed && !allContentsSelected(editor.selection.getRng())) { + return; + } + + // Manually empty the editor + e.preventDefault(); + editor.setContent(''); + + if (body.firstChild && dom.isBlock(body.firstChild)) { + editor.selection.setCursorLocation(body.firstChild, 0); + } else { + editor.selection.setCursorLocation(body, 0); + } + + editor.nodeChanged(); + } + }); + } + + /** + * WebKit doesn't select all the nodes in the body when you press Ctrl+A. + * IE selects more than the contents <body>[<p>a</p>]</body> instead of <body><p>[a]</p]</body> see bug #6438 + * This selects the whole body so that backspace/delete logic will delete everything + */ + function selectAll() { + editor.on('keydown', function(e) { + if (!isDefaultPrevented(e) && e.keyCode == 65 && VK.metaKeyPressed(e)) { + e.preventDefault(); + editor.execCommand('SelectAll'); + } + }); + } + + /** + * WebKit has a weird issue where it some times fails to properly convert keypresses to input method keystrokes. + * The IME on Mac doesn't initialize when it doesn't fire a proper focus event. + * + * This seems to happen when the user manages to click the documentElement element then the window doesn't get proper focus until + * you enter a character into the editor. + * + * It also happens when the first focus in made to the body. + * + * See: https://bugs.webkit.org/show_bug.cgi?id=83566 + */ + function inputMethodFocus() { + if (!editor.settings.content_editable) { + // Case 1 IME doesn't initialize if you focus the document + dom.bind(editor.getDoc(), 'focusin', function() { + selection.setRng(selection.getRng()); + }); + + // Case 2 IME doesn't initialize if you click the documentElement it also doesn't properly fire the focusin event + dom.bind(editor.getDoc(), 'mousedown', function(e) { + if (e.target == editor.getDoc().documentElement) { + editor.getBody().focus(); + selection.setRng(selection.getRng()); + } + }); + } + } + + /** + * Backspacing in FireFox/IE from a paragraph into a horizontal rule results in a floating text node because the + * browser just deletes the paragraph - the browser fails to merge the text node with a horizontal rule so it is + * left there. TinyMCE sees a floating text node and wraps it in a paragraph on the key up event (ForceBlocks.js + * addRootBlocks), meaning the action does nothing. With this code, FireFox/IE matche the behaviour of other + * browsers. + * + * It also fixes a bug on Firefox where it's impossible to delete HR elements. + */ + function removeHrOnBackspace() { + editor.on('keydown', function(e) { + if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) { + if (selection.isCollapsed() && selection.getRng(true).startOffset === 0) { + var node = selection.getNode(); + var previousSibling = node.previousSibling; + + if (node.nodeName == 'HR') { + dom.remove(node); + e.preventDefault(); + return; + } + + if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === "hr") { + dom.remove(previousSibling); + e.preventDefault(); + } + } + } + }); + } + + /** + * Firefox 3.x has an issue where the body element won't get proper focus if you click out + * side it's rectangle. + */ + function focusBody() { + // Fix for a focus bug in FF 3.x where the body element + // wouldn't get proper focus if the user clicked on the HTML element + if (!window.Range.prototype.getClientRects) { // Detect getClientRects got introduced in FF 4 + editor.on('mousedown', function(e) { + if (!isDefaultPrevented(e) && e.target.nodeName === "HTML") { + var body = editor.getBody(); + + // Blur the body it's focused but not correctly focused + body.blur(); + + // Refocus the body after a little while + setTimeout(function() { + body.focus(); + }, 0); + } + }); + } + } + + /** + * WebKit has a bug where it isn't possible to select image, hr or anchor elements + * by clicking on them so we need to fake that. + */ + function selectControlElements() { + editor.on('click', function(e) { + e = e.target; + + // Workaround for bug, http://bugs.webkit.org/show_bug.cgi?id=12250 + // WebKit can't even do simple things like selecting an image + // Needs tobe the setBaseAndExtend or it will fail to select floated images + if (/^(IMG|HR)$/.test(e.nodeName)) { + selection.getSel().setBaseAndExtent(e, 0, e, 1); + } + + if (e.nodeName == 'A' && dom.hasClass(e, 'mce-item-anchor')) { + selection.select(e); + } + + editor.nodeChanged(); + }); + } + + /** + * Fixes a Gecko bug where the style attribute gets added to the wrong element when deleting between two block elements. + * + * Fixes do backspace/delete on this: + * <p>bla[ck</p><p style="color:red">r]ed</p> + * + * Would become: + * <p>bla|ed</p> + * + * Instead of: + * <p style="color:red">bla|ed</p> + */ + function removeStylesWhenDeletingAcrossBlockElements() { + function getAttributeApplyFunction() { + var template = dom.getAttribs(selection.getStart().cloneNode(false)); + + return function() { + var target = selection.getStart(); + + if (target !== editor.getBody()) { + dom.setAttrib(target, "style", null); + + each(template, function(attr) { + target.setAttributeNode(attr.cloneNode(true)); + }); + } + }; + } + + function isSelectionAcrossElements() { + return !selection.isCollapsed() && + dom.getParent(selection.getStart(), dom.isBlock) != dom.getParent(selection.getEnd(), dom.isBlock); + } + + editor.on('keypress', function(e) { + var applyAttributes; + + if (!isDefaultPrevented(e) && (e.keyCode == 8 || e.keyCode == 46) && isSelectionAcrossElements()) { + applyAttributes = getAttributeApplyFunction(); + editor.getDoc().execCommand('delete', false, null); + applyAttributes(); + e.preventDefault(); + return false; + } + }); + + dom.bind(editor.getDoc(), 'cut', function(e) { + var applyAttributes; + + if (!isDefaultPrevented(e) && isSelectionAcrossElements()) { + applyAttributes = getAttributeApplyFunction(); + + setTimeout(function() { + applyAttributes(); + }, 0); + } + }); + } + + /** + * Fire a nodeChanged when the selection is changed on WebKit this fixes selection issues on iOS5. It only fires the nodeChange + * event every 50ms since it would other wise update the UI when you type and it hogs the CPU. + */ + function selectionChangeNodeChanged() { + var lastRng, selectionTimer; + + editor.on('selectionchange', function() { + if (selectionTimer) { + clearTimeout(selectionTimer); + selectionTimer = 0; + } + + selectionTimer = window.setTimeout(function() { + if (editor.removed) { + return; + } + + var rng = selection.getRng(); + + // Compare the ranges to see if it was a real change or not + if (!lastRng || !RangeUtils.compareRanges(rng, lastRng)) { + editor.nodeChanged(); + lastRng = rng; + } + }, 50); + }); + } + + /** + * Screen readers on IE needs to have the role application set on the body. + */ + function ensureBodyHasRoleApplication() { + document.body.setAttribute("role", "application"); + } + + /** + * Backspacing into a table behaves differently depending upon browser type. + * Therefore, disable Backspace when cursor immediately follows a table. + */ + function disableBackspaceIntoATable() { + editor.on('keydown', function(e) { + if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) { + if (selection.isCollapsed() && selection.getRng(true).startOffset === 0) { + var previousSibling = selection.getNode().previousSibling; + if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === "table") { + e.preventDefault(); + return false; + } + } + } + }); + } + + /** + * Old IE versions can't properly render BR elements in PRE tags white in contentEditable mode. So this + * logic adds a \n before the BR so that it will get rendered. + */ + function addNewLinesBeforeBrInPre() { + // IE8+ rendering mode does the right thing with BR in PRE + if (getDocumentMode() > 7) { + return; + } + + // Enable display: none in area and add a specific class that hides all BR elements in PRE to + // avoid the caret from getting stuck at the BR elements while pressing the right arrow key + setEditorCommandState('RespectVisibilityInDesign', true); + editor.contentStyles.push('.mceHideBrInPre pre br {display: none}'); + dom.addClass(editor.getBody(), 'mceHideBrInPre'); + + // Adds a \n before all BR elements in PRE to get them visual + parser.addNodeFilter('pre', function(nodes) { + var i = nodes.length, brNodes, j, brElm, sibling; + + while (i--) { + brNodes = nodes[i].getAll('br'); + j = brNodes.length; + while (j--) { + brElm = brNodes[j]; + + // Add \n before BR in PRE elements on older IE:s so the new lines get rendered + sibling = brElm.prev; + if (sibling && sibling.type === 3 && sibling.value.charAt(sibling.value - 1) != '\n') { + sibling.value += '\n'; + } else { + brElm.parent.insert(new Node('#text', 3), brElm, true).value = '\n'; + } + } + } + }); + + // Removes any \n before BR elements in PRE since other browsers and in contentEditable=false mode they will be visible + serializer.addNodeFilter('pre', function(nodes) { + var i = nodes.length, brNodes, j, brElm, sibling; + + while (i--) { + brNodes = nodes[i].getAll('br'); + j = brNodes.length; + while (j--) { + brElm = brNodes[j]; + sibling = brElm.prev; + if (sibling && sibling.type == 3) { + sibling.value = sibling.value.replace(/\r?\n$/, ''); + } + } + } + }); + } + + /** + * Moves style width/height to attribute width/height when the user resizes an image on IE. + */ + function removePreSerializedStylesWhenSelectingControls() { + dom.bind(editor.getBody(), 'mouseup', function() { + var value, node = selection.getNode(); + + // Moved styles to attributes on IMG eements + if (node.nodeName == 'IMG') { + // Convert style width to width attribute + if ((value = dom.getStyle(node, 'width'))) { + dom.setAttrib(node, 'width', value.replace(/[^0-9%]+/g, '')); + dom.setStyle(node, 'width', ''); + } + + // Convert style height to height attribute + if ((value = dom.getStyle(node, 'height'))) { + dom.setAttrib(node, 'height', value.replace(/[^0-9%]+/g, '')); + dom.setStyle(node, 'height', ''); + } + } + }); + } + + /** + * Removes a blockquote when backspace is pressed at the beginning of it. + * + * For example: + * <blockquote><p>|x</p></blockquote> + * + * Becomes: + * <p>|x</p> + */ + function removeBlockQuoteOnBackSpace() { + // Add block quote deletion handler + editor.on('keydown', function(e) { + var rng, container, offset, root, parent; + + if (isDefaultPrevented(e) || e.keyCode != VK.BACKSPACE) { + return; + } + + rng = selection.getRng(); + container = rng.startContainer; + offset = rng.startOffset; + root = dom.getRoot(); + parent = container; + + if (!rng.collapsed || offset !== 0) { + return; + } + + while (parent && parent.parentNode && parent.parentNode.firstChild == parent && parent.parentNode != root) { + parent = parent.parentNode; + } + + // Is the cursor at the beginning of a blockquote? + if (parent.tagName === 'BLOCKQUOTE') { + // Remove the blockquote + editor.formatter.toggle('blockquote', null, parent); + + // Move the caret to the beginning of container + rng = dom.createRng(); + rng.setStart(container, 0); + rng.setEnd(container, 0); + selection.setRng(rng); + } + }); + } + + /** + * Sets various Gecko editing options on mouse down and before a execCommand to disable inline table editing that is broken etc. + */ + function setGeckoEditingOptions() { + function setOpts() { + editor._refreshContentEditable(); + + setEditorCommandState("StyleWithCSS", false); + setEditorCommandState("enableInlineTableEditing", false); + + if (!settings.object_resizing) { + setEditorCommandState("enableObjectResizing", false); + } + } + + if (!settings.readonly) { + editor.on('BeforeExecCommand MouseDown', setOpts); + } + } + + /** + * Fixes a gecko link bug, when a link is placed at the end of block elements there is + * no way to move the caret behind the link. This fix adds a bogus br element after the link. + * + * For example this: + * <p><b><a href="#">x</a></b></p> + * + * Becomes this: + * <p><b><a href="#">x</a></b><br></p> + */ + function addBrAfterLastLinks() { + function fixLinks() { + each(dom.select('a'), function(node) { + var parentNode = node.parentNode, root = dom.getRoot(); + + if (parentNode.lastChild === node) { + while (parentNode && !dom.isBlock(parentNode)) { + if (parentNode.parentNode.lastChild !== parentNode || parentNode === root) { + return; + } + + parentNode = parentNode.parentNode; + } + + dom.add(parentNode, 'br', {'data-mce-bogus': 1}); + } + }); + } + + editor.on('SetContent ExecCommand', function(e) { + if (e.type == "setcontent" || e.command === 'mceInsertLink') { + fixLinks(); + } + }); + } + + /** + * WebKit will produce DIV elements here and there by default. But since TinyMCE uses paragraphs by + * default we want to change that behavior. + */ + function setDefaultBlockType() { + if (settings.forced_root_block) { + editor.on('init', function() { + setEditorCommandState('DefaultParagraphSeparator', settings.forced_root_block); + }); + } + } + + /** + * Removes ghost selections from images/tables on Gecko. + */ + function removeGhostSelection() { + editor.on('Undo Redo SetContent', function(e) { + if (!e.initial) { + editor.execCommand('mceRepaint'); + } + }); + } + + /** + * Deletes the selected image on IE instead of navigating to previous page. + */ + function deleteControlItemOnBackSpace() { + editor.on('keydown', function(e) { + var rng; + + if (!isDefaultPrevented(e) && e.keyCode == BACKSPACE) { + rng = editor.getDoc().selection.createRange(); + if (rng && rng.item) { + e.preventDefault(); + editor.undoManager.beforeChange(); + dom.remove(rng.item(0)); + editor.undoManager.add(); + } + } + }); + } + + /** + * IE10 doesn't properly render block elements with the right height until you add contents to them. + * This fixes that by adding a padding-right to all empty text block elements. + * See: https://connect.microsoft.com/IE/feedback/details/743881 + */ + function renderEmptyBlocksFix() { + var emptyBlocksCSS; + + // IE10+ + if (getDocumentMode() >= 10) { + emptyBlocksCSS = ''; + each('p div h1 h2 h3 h4 h5 h6'.split(' '), function(name, i) { + emptyBlocksCSS += (i > 0 ? ',' : '') + name + ':empty'; + }); + + editor.contentStyles.push(emptyBlocksCSS + '{padding-right: 1px !important}'); + } + } + + /** + * Old IE versions can't retain contents within noscript elements so this logic will store the contents + * as a attribute and the insert that value as it's raw text when the DOM is serialized. + */ + function keepNoScriptContents() { + if (getDocumentMode() < 9) { + parser.addNodeFilter('noscript', function(nodes) { + var i = nodes.length, node, textNode; + + while (i--) { + node = nodes[i]; + textNode = node.firstChild; + + if (textNode) { + node.attr('data-mce-innertext', textNode.value); + } + } + }); + + serializer.addNodeFilter('noscript', function(nodes) { + var i = nodes.length, node, textNode, value; + + while (i--) { + node = nodes[i]; + textNode = nodes[i].firstChild; + + if (textNode) { + textNode.value = Entities.decode(textNode.value); + } else { + // Old IE can't retain noscript value so an attribute is used to store it + value = node.attributes.map['data-mce-innertext']; + if (value) { + node.attr('data-mce-innertext', null); + textNode = new Node('#text', 3); + textNode.value = value; + textNode.raw = true; + node.append(textNode); + } + } + } + }); + } + } + + /** + * IE has an issue where you can't select/move the caret by clicking outside the body if the document is in standards mode. + */ + function fixCaretSelectionOfDocumentElementOnIe() { + var doc = dom.doc, body = doc.body, started, startRng, htmlElm; + + // Return range from point or null if it failed + function rngFromPoint(x, y) { + var rng = body.createTextRange(); + + try { + rng.moveToPoint(x, y); + } catch (ex) { + // IE sometimes throws and exception, so lets just ignore it + rng = null; + } + + return rng; + } + + // Fires while the selection is changing + function selectionChange(e) { + var pointRng; + + // Check if the button is down or not + if (e.button) { + // Create range from mouse position + pointRng = rngFromPoint(e.x, e.y); + + if (pointRng) { + // Check if pointRange is before/after selection then change the endPoint + if (pointRng.compareEndPoints('StartToStart', startRng) > 0) { + pointRng.setEndPoint('StartToStart', startRng); + } else { + pointRng.setEndPoint('EndToEnd', startRng); + } + + pointRng.select(); + } + } else { + endSelection(); + } + } + + // Removes listeners + function endSelection() { + var rng = doc.selection.createRange(); + + // If the range is collapsed then use the last start range + if (startRng && !rng.item && rng.compareEndPoints('StartToEnd', rng) === 0) { + startRng.select(); + } + + dom.unbind(doc, 'mouseup', endSelection); + dom.unbind(doc, 'mousemove', selectionChange); + startRng = started = 0; + } + + // Make HTML element unselectable since we are going to handle selection by hand + doc.documentElement.unselectable = true; + + // Detect when user selects outside BODY + dom.bind(doc, 'mousedown contextmenu', function(e) { + if (e.target.nodeName === 'HTML') { + if (started) { + endSelection(); + } + + // Detect vertical scrollbar, since IE will fire a mousedown on the scrollbar and have target set as HTML + htmlElm = doc.documentElement; + if (htmlElm.scrollHeight > htmlElm.clientHeight) { + return; + } + + started = 1; + // Setup start position + startRng = rngFromPoint(e.x, e.y); + if (startRng) { + // Listen for selection change events + dom.bind(doc, 'mouseup', endSelection); + dom.bind(doc, 'mousemove', selectionChange); + + dom.getRoot().focus(); + startRng.select(); + } + } + }); + } + + /** + * Fixes selection issues where the caret can be placed between two inline elements like <b>a</b>|<b>b</b> + * this fix will lean the caret right into the closest inline element. + */ + function normalizeSelection() { + // Normalize selection for example <b>a</b><i>|a</i> becomes <b>a|</b><i>a</i> except for Ctrl+A since it selects everything + editor.on('keyup focusin mouseup', function(e) { + if (e.keyCode != 65 || !VK.metaKeyPressed(e)) { + selection.normalize(); + } + }, true); + } + + /** + * Forces Gecko to render a broken image icon if it fails to load an image. + */ + function showBrokenImageIcon() { + editor.contentStyles.push( + 'img:-moz-broken {' + + '-moz-force-broken-image-icon:1;' + + 'min-width:24px;' + + 'min-height:24px' + + '}' + ); + } + + /** + * iOS has a bug where it's impossible to type if the document has a touchstart event + * bound and the user touches the document while having the on screen keyboard visible. + * + * The touch event moves the focus to the parent document while having the caret inside the iframe + * this fix moves the focus back into the iframe document. + */ + function restoreFocusOnKeyDown() { + if (!editor.inline) { + editor.on('keydown', function() { + if (document.activeElement == document.body) { + editor.getWin().focus(); + } + }); + } + } + + /** + * IE 11 has an annoying issue where you can't move focus into the editor + * by clicking on the white area HTML element. We used to be able to to fix this with + * the fixCaretSelectionOfDocumentElementOnIe fix. But since M$ removed the selection + * object it's not possible anymore. So we need to hack in a ungly CSS to force the + * body to be at least 150px. If the user clicks the HTML element out side this 150px region + * we simply move the focus into the first paragraph. Not ideal since you loose the + * positioning of the caret but goot enough for most cases. + */ + function bodyHeight() { + if (!editor.inline) { + editor.contentStyles.push('body {min-height: 150px}'); + editor.on('click', function(e) { + if (e.target.nodeName == 'HTML') { + editor.getBody().focus(); + editor.selection.normalize(); + editor.nodeChanged(); + } + }); + } + } + + /** + * Firefox on Mac OS will move the browser back to the previous page if you press CMD+Left arrow. + * You might then loose all your work so we need to block that behavior and replace it with our own. + */ + function blockCmdArrowNavigation() { + if (Env.mac) { + editor.on('keydown', function(e) { + if (VK.metaKeyPressed(e) && (e.keyCode == 37 || e.keyCode == 39)) { + e.preventDefault(); + editor.selection.getSel().modify('move', e.keyCode == 37 ? 'backward' : 'forward', 'word'); + } + }); + } + } + + /** + * Disables the autolinking in IE 9+ this is then re-enabled by the autolink plugin. + */ + function disableAutoUrlDetect() { + setEditorCommandState("AutoUrlDetect", false); + } + + /** + * IE 11 has a fantastic bug where it will produce two trailing BR elements to iframe bodies when + * the iframe is hidden by display: none on a parent container. The DOM is actually out of sync + * with innerHTML in this case. It's like IE adds shadow DOM BR elements that appears on innerHTML + * but not as the lastChild of the body. However is we add a BR element to the body then remove it + * it doesn't seem to add these BR elements makes sence right?! + * + * Example of what happens: <body>text</body> becomes <body>text<br><br></body> + */ + function doubleTrailingBrElements() { + if (!editor.inline) { + editor.on('focus blur', function() { + var br = editor.dom.create('br'); + editor.getBody().appendChild(br); + br.parentNode.removeChild(br); + }, true); + } + } + + /** + * iOS 7.1 introduced two new bugs: + * 1) It's possible to open links within a contentEditable area by clicking on them. + * 2) If you hold down the finger it will display the link/image touch callout menu. + */ + function tapLinksAndImages() { + editor.on('click', function(e) { + if (e.target.tagName === 'A') { + e.preventDefault(); + } + }); + + editor.contentStyles.push('.mce-content-body {-webkit-touch-callout: none}'); + } + + // All browsers + disableBackspaceIntoATable(); + removeBlockQuoteOnBackSpace(); + emptyEditorWhenDeleting(); + normalizeSelection(); + + // WebKit + if (isWebKit) { + cleanupStylesWhenDeleting(); + inputMethodFocus(); + selectControlElements(); + setDefaultBlockType(); + + // iOS + if (Env.iOS) { + selectionChangeNodeChanged(); + restoreFocusOnKeyDown(); + bodyHeight(); + tapLinksAndImages(); + } else { + selectAll(); + } + } + + // IE + if (isIE && Env.ie < 11) { + removeHrOnBackspace(); + ensureBodyHasRoleApplication(); + addNewLinesBeforeBrInPre(); + removePreSerializedStylesWhenSelectingControls(); + deleteControlItemOnBackSpace(); + renderEmptyBlocksFix(); + keepNoScriptContents(); + fixCaretSelectionOfDocumentElementOnIe(); + } + + if (Env.ie >= 11) { + bodyHeight(); + doubleTrailingBrElements(); + } + + if (Env.ie) { + selectAll(); + disableAutoUrlDetect(); + } + + // Gecko + if (isGecko) { + removeHrOnBackspace(); + focusBody(); + removeStylesWhenDeletingAcrossBlockElements(); + setGeckoEditingOptions(); + addBrAfterLastLinks(); + removeGhostSelection(); + showBrokenImageIcon(); + blockCmdArrowNavigation(); + } + }; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/util/Tools.js b/common/static/js/vendor/tinymce/js/tinymce/classes/util/Tools.js new file mode 100755 index 00000000000..c30101b5e38 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/util/Tools.js @@ -0,0 +1,503 @@ +/** + * Tools.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class contains various utlity functions. These are also exposed + * directly on the tinymce namespace. + * + * @class tinymce.util.Tools + */ +define("tinymce/util/Tools", [], function() { + /** + * Removes whitespace from the beginning and end of a string. + * + * @method trim + * @param {String} s String to remove whitespace from. + * @return {String} New string with removed whitespace. + */ + var whiteSpaceRegExp = /^\s*|\s*$/g; + + function trim(str) { + return (str === null || str === undefined) ? '' : ("" + str).replace(whiteSpaceRegExp, ''); + } + + /** + * Returns true/false if the object is an array or not. + * + * @method isArray + * @param {Object} obj Object to check. + * @return {boolean} true/false state if the object is an array or not. + */ + var isArray = Array.isArray || function(obj) { + return Object.prototype.toString.call(obj) === "[object Array]"; + }; + + /** + * Checks if a object is of a specific type for example an array. + * + * @method is + * @param {Object} o Object to check type of. + * @param {string} t Optional type to check for. + * @return {Boolean} true/false if the object is of the specified type. + */ + function is(o, t) { + if (!t) { + return o !== undefined; + } + + if (t == 'array' && isArray(o)) { + return true; + } + + return typeof(o) == t; + } + + /** + * Converts the specified object into a real JavaScript array. + * + * @method toArray + * @param {Object} obj Object to convert into array. + * @return {Array} Array object based in input. + */ + function toArray(obj) { + var array = [], i, l; + + for (i = 0, l = obj.length; i < l; i++) { + array[i] = obj[i]; + } + + return array; + } + + /** + * Makes a name/object map out of an array with names. + * + * @method makeMap + * @param {Array/String} items Items to make map out of. + * @param {String} delim Optional delimiter to split string by. + * @param {Object} map Optional map to add items to. + * @return {Object} Name/value map of items. + */ + function makeMap(items, delim, map) { + var i; + + items = items || []; + delim = delim || ','; + + if (typeof(items) == "string") { + items = items.split(delim); + } + + map = map || {}; + + i = items.length; + while (i--) { + map[items[i]] = {}; + } + + return map; + } + + /** + * Performs an iteration of all items in a collection such as an object or array. This method will execure the + * callback function for each item in the collection, if the callback returns false the iteration will terminate. + * The callback has the following format: cb(value, key_or_index). + * + * @method each + * @param {Object} o Collection to iterate. + * @param {function} cb Callback function to execute for each item. + * @param {Object} s Optional scope to execute the callback in. + * @example + * // Iterate an array + * tinymce.each([1,2,3], function(v, i) { + * console.debug("Value: " + v + ", Index: " + i); + * }); + * + * // Iterate an object + * tinymce.each({a: 1, b: 2, c: 3], function(v, k) { + * console.debug("Value: " + v + ", Key: " + k); + * }); + */ + function each(o, cb, s) { + var n, l; + + if (!o) { + return 0; + } + + s = s || o; + + if (o.length !== undefined) { + // Indexed arrays, needed for Safari + for (n = 0, l = o.length; n < l; n++) { + if (cb.call(s, o[n], n, o) === false) { + return 0; + } + } + } else { + // Hashtables + for (n in o) { + if (o.hasOwnProperty(n)) { + if (cb.call(s, o[n], n, o) === false) { + return 0; + } + } + } + } + + return 1; + } + + /** + * Creates a new array by the return value of each iteration function call. This enables you to convert + * one array list into another. + * + * @method map + * @param {Array} a Array of items to iterate. + * @param {function} f Function to call for each item. It's return value will be the new value. + * @return {Array} Array with new values based on function return values. + */ + function map(a, f) { + var o = []; + + each(a, function(v) { + o.push(f(v)); + }); + + return o; + } + + /** + * Filters out items from the input array by calling the specified function for each item. + * If the function returns false the item will be excluded if it returns true it will be included. + * + * @method grep + * @param {Array} a Array of items to loop though. + * @param {function} f Function to call for each item. Include/exclude depends on it's return value. + * @return {Array} New array with values imported and filtered based in input. + * @example + * // Filter out some items, this will return an array with 4 and 5 + * var items = tinymce.grep([1,2,3,4,5], function(v) {return v > 3;}); + */ + function grep(a, f) { + var o = []; + + each(a, function(v) { + if (!f || f(v)) { + o.push(v); + } + }); + + return o; + } + + /** + * Creates a class, subclass or static singleton. + * More details on this method can be found in the Wiki. + * + * @method create + * @param {String} s Class name, inheritage and prefix. + * @param {Object} p Collection of methods to add to the class. + * @param {Object} root Optional root object defaults to the global window object. + * @example + * // Creates a basic class + * tinymce.create('tinymce.somepackage.SomeClass', { + * SomeClass: function() { + * // Class constructor + * }, + * + * method: function() { + * // Some method + * } + * }); + * + * // Creates a basic subclass class + * tinymce.create('tinymce.somepackage.SomeSubClass:tinymce.somepackage.SomeClass', { + * SomeSubClass: function() { + * // Class constructor + * this.parent(); // Call parent constructor + * }, + * + * method: function() { + * // Some method + * this.parent(); // Call parent method + * }, + * + * 'static': { + * staticMethod: function() { + * // Static method + * } + * } + * }); + * + * // Creates a singleton/static class + * tinymce.create('static tinymce.somepackage.SomeSingletonClass', { + * method: function() { + * // Some method + * } + * }); + */ + function create(s, p, root) { + var self = this, sp, ns, cn, scn, c, de = 0; + + // Parse : <prefix> <class>:<super class> + s = /^((static) )?([\w.]+)(:([\w.]+))?/.exec(s); + cn = s[3].match(/(^|\.)(\w+)$/i)[2]; // Class name + + // Create namespace for new class + ns = self.createNS(s[3].replace(/\.\w+$/, ''), root); + + // Class already exists + if (ns[cn]) { + return; + } + + // Make pure static class + if (s[2] == 'static') { + ns[cn] = p; + + if (this.onCreate) { + this.onCreate(s[2], s[3], ns[cn]); + } + + return; + } + + // Create default constructor + if (!p[cn]) { + p[cn] = function() {}; + de = 1; + } + + // Add constructor and methods + ns[cn] = p[cn]; + self.extend(ns[cn].prototype, p); + + // Extend + if (s[5]) { + sp = self.resolve(s[5]).prototype; + scn = s[5].match(/\.(\w+)$/i)[1]; // Class name + + // Extend constructor + c = ns[cn]; + if (de) { + // Add passthrough constructor + ns[cn] = function() { + return sp[scn].apply(this, arguments); + }; + } else { + // Add inherit constructor + ns[cn] = function() { + this.parent = sp[scn]; + return c.apply(this, arguments); + }; + } + ns[cn].prototype[cn] = ns[cn]; + + // Add super methods + self.each(sp, function(f, n) { + ns[cn].prototype[n] = sp[n]; + }); + + // Add overridden methods + self.each(p, function(f, n) { + // Extend methods if needed + if (sp[n]) { + ns[cn].prototype[n] = function() { + this.parent = sp[n]; + return f.apply(this, arguments); + }; + } else { + if (n != cn) { + ns[cn].prototype[n] = f; + } + } + }); + } + + // Add static methods + /*jshint sub:true*/ + self.each(p['static'], function(f, n) { + ns[cn][n] = f; + }); + } + + /** + * Returns the index of a value in an array, this method will return -1 if the item wasn't found. + * + * @method inArray + * @param {Array} a Array/Object to search for value in. + * @param {Object} v Value to check for inside the array. + * @return {Number/String} Index of item inside the array inside an object. Or -1 if it wasn't found. + * @example + * // Get index of value in array this will alert 1 since 2 is at that index + * alert(tinymce.inArray([1,2,3], 2)); + */ + function inArray(a, v) { + var i, l; + + if (a) { + for (i = 0, l = a.length; i < l; i++) { + if (a[i] === v) { + return i; + } + } + } + + return -1; + } + + function extend(obj, ext) { + var i, l, name, args = arguments, value; + + for (i = 1, l = args.length; i < l; i++) { + ext = args[i]; + for (name in ext) { + if (ext.hasOwnProperty(name)) { + value = ext[name]; + + if (value !== undefined) { + obj[name] = value; + } + } + } + } + + return obj; + } + + /** + * Executed the specified function for each item in a object tree. + * + * @method walk + * @param {Object} o Object tree to walk though. + * @param {function} f Function to call for each item. + * @param {String} n Optional name of collection inside the objects to walk for example childNodes. + * @param {String} s Optional scope to execute the function in. + */ + function walk(o, f, n, s) { + s = s || this; + + if (o) { + if (n) { + o = o[n]; + } + + each(o, function(o, i) { + if (f.call(s, o, i, n) === false) { + return false; + } + + walk(o, f, n, s); + }); + } + } + + /** + * Creates a namespace on a specific object. + * + * @method createNS + * @param {String} n Namespace to create for example a.b.c.d. + * @param {Object} o Optional object to add namespace to, defaults to window. + * @return {Object} New namespace object the last item in path. + * @example + * // Create some namespace + * tinymce.createNS('tinymce.somepackage.subpackage'); + * + * // Add a singleton + * var tinymce.somepackage.subpackage.SomeSingleton = { + * method: function() { + * // Some method + * } + * }; + */ + function createNS(n, o) { + var i, v; + + o = o || window; + + n = n.split('.'); + for (i = 0; i < n.length; i++) { + v = n[i]; + + if (!o[v]) { + o[v] = {}; + } + + o = o[v]; + } + + return o; + } + + /** + * Resolves a string and returns the object from a specific structure. + * + * @method resolve + * @param {String} n Path to resolve for example a.b.c.d. + * @param {Object} o Optional object to search though, defaults to window. + * @return {Object} Last object in path or null if it couldn't be resolved. + * @example + * // Resolve a path into an object reference + * var obj = tinymce.resolve('a.b.c.d'); + */ + function resolve(n, o) { + var i, l; + + o = o || window; + + n = n.split('.'); + for (i = 0, l = n.length; i < l; i++) { + o = o[n[i]]; + + if (!o) { + break; + } + } + + return o; + } + + /** + * Splits a string but removes the whitespace before and after each value. + * + * @method explode + * @param {string} s String to split. + * @param {string} d Delimiter to split by. + * @example + * // Split a string into an array with a,b,c + * var arr = tinymce.explode('a, b, c'); + */ + function explode(s, d) { + if (!s || is(s, 'array')) { + return s; + } + + return map(s.split(d || ','), trim); + } + + return { + trim: trim, + isArray: isArray, + is: is, + toArray: toArray, + makeMap: makeMap, + each: each, + map: map, + grep: grep, + inArray: inArray, + extend: extend, + create: create, + walk: walk, + createNS: createNS, + resolve: resolve, + explode: explode + }; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/util/URI.js b/common/static/js/vendor/tinymce/js/tinymce/classes/util/URI.js new file mode 100755 index 00000000000..5529ad02074 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/util/URI.js @@ -0,0 +1,366 @@ +/** + * URI.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles parsing, modification and serialization of URI/URL strings. + * @class tinymce.util.URI + */ +define("tinymce/util/URI", [ + "tinymce/util/Tools" +], function(Tools) { + var each = Tools.each, trim = Tools.trim; + + /** + * Constructs a new URI instance. + * + * @constructor + * @method URI + * @param {String} url URI string to parse. + * @param {Object} settings Optional settings object. + */ + function URI(url, settings) { + var self = this, baseUri, base_url; + + // Trim whitespace + url = trim(url); + + // Default settings + settings = self.settings = settings || {}; + + // Strange app protocol that isn't http/https or local anchor + // For example: mailto,skype,tel etc. + if (/^([\w\-]+):([^\/]{2})/i.test(url) || /^\s*#/.test(url)) { + self.source = url; + return; + } + + var isProtocolRelative = url.indexOf('//') === 0; + + // Absolute path with no host, fake host and protocol + if (url.indexOf('/') === 0 && !isProtocolRelative) { + url = (settings.base_uri ? settings.base_uri.protocol || 'http' : 'http') + '://mce_host' + url; + } + + // Relative path http:// or protocol relative //path + if (!/^[\w\-]*:?\/\//.test(url)) { + base_url = settings.base_uri ? settings.base_uri.path : new URI(location.href).directory; + if (settings.base_uri.protocol === "") { + url = '//mce_host' + self.toAbsPath(base_url, url); + } else { + url = ((settings.base_uri && settings.base_uri.protocol) || 'http') + '://mce_host' + self.toAbsPath(base_url, url); + } + } + + // Parse URL (Credits goes to Steave, http://blog.stevenlevithan.com/archives/parseuri) + url = url.replace(/@@/g, '(mce_at)'); // Zope 3 workaround, they use @@something + + /*jshint maxlen: 255 */ + /*eslint max-len: 0 */ + url = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(url); + + each(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], function(v, i) { + var part = url[i]; + + // Zope 3 workaround, they use @@something + if (part) { + part = part.replace(/\(mce_at\)/g, '@@'); + } + + self[v] = part; + }); + + baseUri = settings.base_uri; + if (baseUri) { + if (!self.protocol) { + self.protocol = baseUri.protocol; + } + + if (!self.userInfo) { + self.userInfo = baseUri.userInfo; + } + + if (!self.port && self.host === 'mce_host') { + self.port = baseUri.port; + } + + if (!self.host || self.host === 'mce_host') { + self.host = baseUri.host; + } + + self.source = ''; + } + + if (isProtocolRelative) { + self.protocol = ''; + } + + //t.path = t.path || '/'; + } + + URI.prototype = { + /** + * Sets the internal path part of the URI. + * + * @method setPath + * @param {string} path Path string to set. + */ + setPath: function(path) { + var self = this; + + path = /^(.*?)\/?(\w+)?$/.exec(path); + + // Update path parts + self.path = path[0]; + self.directory = path[1]; + self.file = path[2]; + + // Rebuild source + self.source = ''; + self.getURI(); + }, + + /** + * Converts the specified URI into a relative URI based on the current URI instance location. + * + * @method toRelative + * @param {String} uri URI to convert into a relative path/URI. + * @return {String} Relative URI from the point specified in the current URI instance. + * @example + * // Converts an absolute URL to an relative URL url will be somedir/somefile.htm + * var url = new tinymce.util.URI('http://www.site.com/dir/').toRelative('http://www.site.com/dir/somedir/somefile.htm'); + */ + toRelative: function(uri) { + var self = this, output; + + if (uri === "./") { + return uri; + } + + uri = new URI(uri, {base_uri: self}); + + // Not on same domain/port or protocol + if ((uri.host != 'mce_host' && self.host != uri.host && uri.host) || self.port != uri.port || + (self.protocol != uri.protocol && uri.protocol !== "")) { + return uri.getURI(); + } + + var tu = self.getURI(), uu = uri.getURI(); + + // Allow usage of the base_uri when relative_urls = true + if (tu == uu || (tu.charAt(tu.length - 1) == "/" && tu.substr(0, tu.length - 1) == uu)) { + return tu; + } + + output = self.toRelPath(self.path, uri.path); + + // Add query + if (uri.query) { + output += '?' + uri.query; + } + + // Add anchor + if (uri.anchor) { + output += '#' + uri.anchor; + } + + return output; + }, + + /** + * Converts the specified URI into a absolute URI based on the current URI instance location. + * + * @method toAbsolute + * @param {String} uri URI to convert into a relative path/URI. + * @param {Boolean} noHost No host and protocol prefix. + * @return {String} Absolute URI from the point specified in the current URI instance. + * @example + * // Converts an relative URL to an absolute URL url will be http://www.site.com/dir/somedir/somefile.htm + * var url = new tinymce.util.URI('http://www.site.com/dir/').toAbsolute('somedir/somefile.htm'); + */ + toAbsolute: function(uri, noHost) { + uri = new URI(uri, {base_uri: this}); + + return uri.getURI(this.host == uri.host && this.protocol == uri.protocol ? noHost : 0); + }, + + /** + * Converts a absolute path into a relative path. + * + * @method toRelPath + * @param {String} base Base point to convert the path from. + * @param {String} path Absolute path to convert into a relative path. + */ + toRelPath: function(base, path) { + var items, breakPoint = 0, out = '', i, l; + + // Split the paths + base = base.substring(0, base.lastIndexOf('/')); + base = base.split('/'); + items = path.split('/'); + + if (base.length >= items.length) { + for (i = 0, l = base.length; i < l; i++) { + if (i >= items.length || base[i] != items[i]) { + breakPoint = i + 1; + break; + } + } + } + + if (base.length < items.length) { + for (i = 0, l = items.length; i < l; i++) { + if (i >= base.length || base[i] != items[i]) { + breakPoint = i + 1; + break; + } + } + } + + if (breakPoint === 1) { + return path; + } + + for (i = 0, l = base.length - (breakPoint - 1); i < l; i++) { + out += "../"; + } + + for (i = breakPoint - 1, l = items.length; i < l; i++) { + if (i != breakPoint - 1) { + out += "/" + items[i]; + } else { + out += items[i]; + } + } + + return out; + }, + + /** + * Converts a relative path into a absolute path. + * + * @method toAbsPath + * @param {String} base Base point to convert the path from. + * @param {String} path Relative path to convert into an absolute path. + */ + toAbsPath: function(base, path) { + var i, nb = 0, o = [], tr, outPath; + + // Split paths + tr = /\/$/.test(path) ? '/' : ''; + base = base.split('/'); + path = path.split('/'); + + // Remove empty chunks + each(base, function(k) { + if (k) { + o.push(k); + } + }); + + base = o; + + // Merge relURLParts chunks + for (i = path.length - 1, o = []; i >= 0; i--) { + // Ignore empty or . + if (path[i].length === 0 || path[i] === ".") { + continue; + } + + // Is parent + if (path[i] === '..') { + nb++; + continue; + } + + // Move up + if (nb > 0) { + nb--; + continue; + } + + o.push(path[i]); + } + + i = base.length - nb; + + // If /a/b/c or / + if (i <= 0) { + outPath = o.reverse().join('/'); + } else { + outPath = base.slice(0, i).join('/') + '/' + o.reverse().join('/'); + } + + // Add front / if it's needed + if (outPath.indexOf('/') !== 0) { + outPath = '/' + outPath; + } + + // Add traling / if it's needed + if (tr && outPath.lastIndexOf('/') !== outPath.length - 1) { + outPath += tr; + } + + return outPath; + }, + + /** + * Returns the full URI of the internal structure. + * + * @method getURI + * @param {Boolean} noProtoHost Optional no host and protocol part. Defaults to false. + */ + getURI: function(noProtoHost) { + var s, self = this; + + // Rebuild source + if (!self.source || noProtoHost) { + s = ''; + + if (!noProtoHost) { + if (self.protocol) { + s += self.protocol + '://'; + } else { + s += '//'; + } + + if (self.userInfo) { + s += self.userInfo + '@'; + } + + if (self.host) { + s += self.host; + } + + if (self.port) { + s += ':' + self.port; + } + } + + if (self.path) { + s += self.path; + } + + if (self.query) { + s += '?' + self.query; + } + + if (self.anchor) { + s += '#' + self.anchor; + } + + self.source = s; + } + + return self.source; + } + }; + + return URI; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/util/VK.js b/common/static/js/vendor/tinymce/js/tinymce/classes/util/VK.js new file mode 100755 index 00000000000..9640bc6dc80 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/util/VK.js @@ -0,0 +1,37 @@ +/** + * VK.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This file exposes a set of the common KeyCodes for use. Please grow it as needed. + */ +define("tinymce/util/VK", [ + "tinymce/Env" +], function(Env) { + return { + BACKSPACE: 8, + DELETE: 46, + DOWN: 40, + ENTER: 13, + LEFT: 37, + RIGHT: 39, + SPACEBAR: 32, + TAB: 9, + UP: 38, + + modifierPressed: function(e) { + return e.shiftKey || e.ctrlKey || e.altKey; + }, + + metaKeyPressed: function(e) { + // Check if ctrl or meta key is pressed also check if alt is false for Polish users + return (Env.mac ? e.metaKey : e.ctrlKey) && !e.altKey; + } + }; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/classes/util/XHR.js b/common/static/js/vendor/tinymce/js/tinymce/classes/util/XHR.js new file mode 100755 index 00000000000..7b87fbc463a --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/classes/util/XHR.js @@ -0,0 +1,84 @@ +/** + * XHR.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class enables you to send XMLHTTPRequests cross browser. + * @class tinymce.util.XHR + * @static + * @example + * // Sends a low level Ajax request + * tinymce.util.XHR.send({ + * url: 'someurl', + * success: function(text) { + * console.debug(text); + * } + * }); + */ +define("tinymce/util/XHR", [], function() { + return { + /** + * Sends a XMLHTTPRequest. + * Consult the Wiki for details on what settings this method takes. + * + * @method send + * @param {Object} settings Object will target URL, callbacks and other info needed to make the request. + */ + send: function(settings) { + var xhr, count = 0; + + function ready() { + if (!settings.async || xhr.readyState == 4 || count++ > 10000) { + if (settings.success && count < 10000 && xhr.status == 200) { + settings.success.call(settings.success_scope, '' + xhr.responseText, xhr, settings); + } else if (settings.error) { + settings.error.call(settings.error_scope, count > 10000 ? 'TIMED_OUT' : 'GENERAL', xhr, settings); + } + + xhr = null; + } else { + setTimeout(ready, 10); + } + } + + // Default settings + settings.scope = settings.scope || this; + settings.success_scope = settings.success_scope || settings.scope; + settings.error_scope = settings.error_scope || settings.scope; + settings.async = settings.async === false ? false : true; + settings.data = settings.data || ''; + + xhr = new XMLHttpRequest(); + + if (xhr) { + if (xhr.overrideMimeType) { + xhr.overrideMimeType(settings.content_type); + } + + xhr.open(settings.type || (settings.data ? 'POST' : 'GET'), settings.url, settings.async); + + if (settings.content_type) { + xhr.setRequestHeader('Content-Type', settings.content_type); + } + + xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); + + xhr.send(settings.data); + + // Syncronous request + if (!settings.async) { + return ready(); + } + + // Wait for response, onReadyStateChange can not be used since it leaks memory in IE + setTimeout(ready, 10); + } + } + }; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/jquery.tinymce.min.js b/common/static/js/vendor/tinymce/js/tinymce/jquery.tinymce.min.js new file mode 100755 index 00000000000..17c44e6ae76 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/jquery.tinymce.min.js @@ -0,0 +1 @@ +!function(e){function t(){function t(e){"remove"===e&&this.each(function(e,t){var n=r(t);n&&n.remove()}),this.find("span.mceEditor,div.mceEditor").each(function(e,t){var n=tinymce.get(t.id.replace(/_parent$/,""));n&&n.remove()})}function i(e){var n,i=this;if(null!=e)t.call(i),i.each(function(t,n){var i;(i=tinymce.get(n.id))&&i.setContent(e)});else if(i.length>0&&(n=tinymce.get(i[0].id)))return n.getContent()}function r(e){var t=null;return e&&e.id&&a.tinymce&&(t=tinymce.get(e.id)),t}function c(e){return!!(e&&e.length&&a.tinymce&&e.is(":tinymce"))}var o={};e.each(["text","html","val"],function(t,a){var u=o[a]=e.fn[a],s="text"===a;e.fn[a]=function(t){var a=this;if(!c(a))return u.apply(a,arguments);if(t!==n)return i.call(a.filter(":tinymce"),t),u.apply(a.not(":tinymce"),arguments),a;var o="",l=arguments;return(s?a:a.eq(0)).each(function(t,n){var i=r(n);o+=i?s?i.getContent().replace(/<(?:"[^"]*"|'[^']*'|[^'">])*>/g,""):i.getContent({save:!0}):u.apply(e(n),l)}),o}}),e.each(["append","prepend"],function(t,i){var a=o[i]=e.fn[i],u="prepend"===i;e.fn[i]=function(e){var t=this;return c(t)?e!==n?(t.filter(":tinymce").each(function(t,n){var i=r(n);i&&i.setContent(u?e+i.getContent():i.getContent()+e)}),a.apply(t.not(":tinymce"),arguments),t):void 0:a.apply(t,arguments)}}),e.each(["remove","replaceWith","replaceAll","empty"],function(n,i){var r=o[i]=e.fn[i];e.fn[i]=function(){return t.call(this,i),r.apply(this,arguments)}}),o.attr=e.fn.attr,e.fn.attr=function(t,a){var u=this,s=arguments;if(!t||"value"!==t||!c(u))return a!==n?o.attr.apply(u,s):o.attr.apply(u,s);if(a!==n)return i.call(u.filter(":tinymce"),a),o.attr.apply(u.not(":tinymce"),s),u;var l=u[0],m=r(l);return m?m.getContent({save:!0}):o.attr.apply(e(l),s)}}var n,i,r=[],a=window;e.fn.tinymce=function(n){function c(){var i=[],r=0;l||(t(),l=!0),m.each(function(e,t){var a,c=t.id,o=n.oninit;c||(t.id=c=tinymce.DOM.uniqueId()),tinymce.get(c)||(a=new tinymce.Editor(c,n,tinymce.EditorManager),i.push(a),a.on("init",function(){var e,t=o;m.css("visibility",""),o&&++r==i.length&&("string"==typeof t&&(e=-1===t.indexOf(".")?null:tinymce.resolve(t.replace(/\.\w+$/,"")),t=tinymce.resolve(t)),t.apply(e||tinymce,i))}))}),e.each(i,function(e,t){t.render()})}var o,u,s,l,m=this,p="";if(!m.length)return m;if(!n)return window.tinymce?tinymce.get(m[0].id):null;if(m.css("visibility","hidden"),a.tinymce||i||!(o=n.script_url))1===i?r.push(c):c();else{i=1,u=o.substring(0,o.lastIndexOf("/")),-1!=o.indexOf(".min")&&(p=".min"),a.tinymce=a.tinyMCEPreInit||{base:u,suffix:p},-1!=o.indexOf("gzip")&&(s=n.language||"en",o=o+(/\?/.test(o)?"&":"?")+"js=true&core=true&suffix="+escape(p)+"&themes="+escape(n.theme||"modern")+"&plugins="+escape(n.plugins||"")+"&languages="+(s||""),a.tinyMCE_GZ||(a.tinyMCE_GZ={start:function(){function t(e){tinymce.ScriptLoader.markDone(tinymce.baseURI.toAbsolute(e))}t("langs/"+s+".js"),t("themes/"+n.theme+"/theme"+p+".js"),t("themes/"+n.theme+"/langs/"+s+".js"),e.each(n.plugins.split(","),function(e,n){n&&(t("plugins/"+n+"/plugin"+p+".js"),t("plugins/"+n+"/langs/"+s+".js"))})},end:function(){}}));var f=document.createElement("script");f.type="text/javascript",f.onload=f.onreadystatechange=function(t){t=t||window.event,2===i||"load"!=t.type&&!/complete|loaded/.test(f.readyState)||(tinymce.dom.Event.domLoaded=1,i=2,n.script_loaded&&n.script_loaded(),c(),e.each(r,function(e,t){t()}))},f.src=o,document.body.appendChild(f)}return m},e.extend(e.expr[":"],{tinymce:function(e){return!!(e.id&&"tinymce"in window&&tinymce.get(e.id))}})}(jQuery); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/langs/readme.md b/common/static/js/vendor/tinymce/js/tinymce/langs/readme.md old mode 100644 new mode 100755 similarity index 100% rename from common/static/js/vendor/tiny_mce/langs/readme.md rename to common/static/js/vendor/tinymce/js/tinymce/langs/readme.md diff --git a/common/static/js/vendor/tiny_mce/license.txt b/common/static/js/vendor/tinymce/js/tinymce/license.txt old mode 100644 new mode 100755 similarity index 100% rename from common/static/js/vendor/tiny_mce/license.txt rename to common/static/js/vendor/tinymce/js/tinymce/license.txt diff --git a/common/static/js/vendor/tiny_mce/plugins/codemirror/LICENSE.txt b/common/static/js/vendor/tinymce/js/tinymce/plugins/codemirror/LICENSE.txt similarity index 100% rename from common/static/js/vendor/tiny_mce/plugins/codemirror/LICENSE.txt rename to common/static/js/vendor/tinymce/js/tinymce/plugins/codemirror/LICENSE.txt diff --git a/common/static/js/vendor/tiny_mce/plugins/codemirror/README.txt b/common/static/js/vendor/tinymce/js/tinymce/plugins/codemirror/README.txt similarity index 100% rename from common/static/js/vendor/tiny_mce/plugins/codemirror/README.txt rename to common/static/js/vendor/tinymce/js/tinymce/plugins/codemirror/README.txt diff --git a/common/static/js/vendor/tiny_mce/plugins/codemirror/langs/en.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/codemirror/langs/en.js similarity index 100% rename from common/static/js/vendor/tiny_mce/plugins/codemirror/langs/en.js rename to common/static/js/vendor/tinymce/js/tinymce/plugins/codemirror/langs/en.js diff --git a/common/static/js/vendor/tiny_mce/plugins/codemirror/langs/nl.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/codemirror/langs/nl.js similarity index 100% rename from common/static/js/vendor/tiny_mce/plugins/codemirror/langs/nl.js rename to common/static/js/vendor/tinymce/js/tinymce/plugins/codemirror/langs/nl.js diff --git a/common/static/js/vendor/tiny_mce/plugins/codemirror/plugin.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/codemirror/plugin.js similarity index 100% rename from common/static/js/vendor/tiny_mce/plugins/codemirror/plugin.js rename to common/static/js/vendor/tinymce/js/tinymce/plugins/codemirror/plugin.js diff --git a/common/static/js/vendor/tiny_mce/plugins/codemirror/source.html b/common/static/js/vendor/tinymce/js/tinymce/plugins/codemirror/source.html similarity index 100% rename from common/static/js/vendor/tiny_mce/plugins/codemirror/source.html rename to common/static/js/vendor/tinymce/js/tinymce/plugins/codemirror/source.html diff --git a/common/static/js/vendor/tiny_mce/plugins/image/plugin.min.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/image/plugin.min.js similarity index 100% rename from common/static/js/vendor/tiny_mce/plugins/image/plugin.min.js rename to common/static/js/vendor/tinymce/js/tinymce/plugins/image/plugin.min.js diff --git a/common/static/js/vendor/tiny_mce/plugins/link/plugin.min.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/link/plugin.min.js similarity index 100% rename from common/static/js/vendor/tiny_mce/plugins/link/plugin.min.js rename to common/static/js/vendor/tinymce/js/tinymce/plugins/link/plugin.min.js diff --git a/common/static/js/vendor/tinymce/js/tinymce/plugins/paste/classes/Clipboard.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/paste/classes/Clipboard.js new file mode 100755 index 00000000000..3a447b3d9ec --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/plugins/paste/classes/Clipboard.js @@ -0,0 +1,489 @@ +/** + * Clipboard.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class contains logic for getting HTML contents out of the clipboard. + * + * We need to make a lot of ugly hacks to get the contents out of the clipboard since + * the W3C Clipboard API is broken in all browsers that have it: Gecko/WebKit/Blink. + * We might rewrite this the way those API:s stabilize. Browsers doesn't handle pasting + * from applications like Word the same way as it does when pasting into a contentEditable area + * so we need to do lots of extra work to try to get to this clipboard data. + * + * Current implementation steps: + * 1. On keydown with paste keys Ctrl+V or Shift+Insert create + * a paste bin element and move focus to that element. + * 2. Wait for the browser to fire a "paste" event and get the contents out of the paste bin. + * 3. Check if the paste was successful if true, process the HTML. + * (4). If the paste was unsuccessful use IE execCommand, Clipboard API, document.dataTransfer old WebKit API etc. + * + * @class tinymce.pasteplugin.Clipboard + * @private + */ +define("tinymce/pasteplugin/Clipboard", [ + "tinymce/Env", + "tinymce/util/VK", + "tinymce/pasteplugin/Utils" +], function(Env, VK, Utils) { + return function(editor) { + var self = this, pasteBinElm, lastRng, keyboardPasteTimeStamp = 0; + var pasteBinDefaultContent = '%MCEPASTEBIN%', keyboardPastePlainTextState; + + /** + * Pastes the specified HTML. This means that the HTML is filtered and then + * inserted at the current selection in the editor. It will also fire paste events + * for custom user filtering. + * + * @param {String} html HTML code to paste into the current selection. + */ + function pasteHtml(html) { + var args, dom = editor.dom; + + args = editor.fire('BeforePastePreProcess', {content: html}); // Internal event used by Quirks + args = editor.fire('PastePreProcess', args); + html = args.content; + + if (!args.isDefaultPrevented()) { + // User has bound PastePostProcess events then we need to pass it through a DOM node + // This is not ideal but we don't want to let the browser mess up the HTML for example + // some browsers add to P tags etc + if (editor.hasEventListeners('PastePostProcess') && !args.isDefaultPrevented()) { + // We need to attach the element to the DOM so Sizzle selectors work on the contents + var tempBody = dom.add(editor.getBody(), 'div', {style: 'display:none'}, html); + args = editor.fire('PastePostProcess', {node: tempBody}); + dom.remove(tempBody); + html = args.node.innerHTML; + } + + if (!args.isDefaultPrevented()) { + editor.insertContent(html); + } + } + } + + /** + * Pastes the specified text. This means that the plain text is processed + * and converted into BR and P elements. It will fire paste events for custom filtering. + * + * @param {String} text Text to paste as the current selection location. + */ + function pasteText(text) { + text = editor.dom.encode(text).replace(/\r\n/g, '\n'); + + var startBlock = editor.dom.getParent(editor.selection.getStart(), editor.dom.isBlock); + + // Create start block html for example <p attr="value"> + var forcedRootBlockName = editor.settings.forced_root_block; + var forcedRootBlockStartHtml; + if (forcedRootBlockName) { + forcedRootBlockStartHtml = editor.dom.createHTML(forcedRootBlockName, editor.settings.forced_root_block_attrs); + forcedRootBlockStartHtml = forcedRootBlockStartHtml.substr(0, forcedRootBlockStartHtml.length - 3) + '>'; + } + + if ((startBlock && /^(PRE|DIV)$/.test(startBlock.nodeName)) || !forcedRootBlockName) { + text = Utils.filter(text, [ + [/\n/g, "<br>"] + ]); + } else { + text = Utils.filter(text, [ + [/\n\n/g, "</p>" + forcedRootBlockStartHtml], + [/^(.*<\/p>)(<p>)$/, forcedRootBlockStartHtml + '$1'], + [/\n/g, "<br />"] + ]); + + if (text.indexOf('<p>') != -1) { + text = forcedRootBlockStartHtml + text; + } + } + + pasteHtml(text); + } + + /** + * Creates a paste bin element as close as possible to the current caret location and places the focus inside that element + * so that when the real paste event occurs the contents gets inserted into this element + * instead of the current editor selection element. + */ + function createPasteBin() { + var dom = editor.dom, body = editor.getBody(); + var viewport = editor.dom.getViewPort(editor.getWin()), scrollTop = viewport.y, top = 20; + var scrollContainer; + + lastRng = editor.selection.getRng(); + + if (editor.inline) { + scrollContainer = editor.selection.getScrollContainer(); + + if (scrollContainer) { + scrollTop = scrollContainer.scrollTop; + } + } + + // Calculate top cordinate this is needed to avoid scrolling to top of document + // We want the paste bin to be as close to the caret as possible to avoid scrolling + if (lastRng.getClientRects) { + var rects = lastRng.getClientRects(); + + if (rects.length) { + // Client rects gets us closes to the actual + // caret location in for example a wrapped paragraph block + top = scrollTop + (rects[0].top - dom.getPos(body).y); + } else { + top = scrollTop; + + // Check if we can find a closer location by checking the range element + var container = lastRng.startContainer; + if (container) { + if (container.nodeType == 3 && container.parentNode != body) { + container = container.parentNode; + } + + if (container.nodeType == 1) { + top = dom.getPos(container, scrollContainer || body).y; + } + } + } + } + + // Create a pastebin + pasteBinElm = dom.add(editor.getBody(), 'div', { + id: "mcepastebin", + contentEditable: true, + "data-mce-bogus": "1", + style: 'position: absolute; top: ' + top + 'px;' + + 'width: 10px; height: 10px; overflow: hidden; opacity: 0' + }, pasteBinDefaultContent); + + // Move paste bin out of sight since the controlSelection rect gets displayed otherwise on IE and Gecko + if (Env.ie || Env.gecko) { + dom.setStyle(pasteBinElm, 'left', dom.getStyle(body, 'direction', true) == 'rtl' ? 0xFFFF : -0xFFFF); + } + + // Prevent focus events from bubbeling fixed FocusManager issues + dom.bind(pasteBinElm, 'beforedeactivate focusin focusout', function(e) { + e.stopPropagation(); + }); + + pasteBinElm.focus(); + editor.selection.select(pasteBinElm, true); + } + + /** + * Removes the paste bin if it exists. + */ + function removePasteBin() { + if (pasteBinElm) { + var pasteBinClone; + + // WebKit/Blink might clone the div so + // lets make sure we remove all clones + // TODO: Man o man is this ugly. WebKit is the new IE! Remove this if they ever fix it! + while ((pasteBinClone = editor.dom.get('mcepastebin'))) { + editor.dom.remove(pasteBinClone); + editor.dom.unbind(pasteBinClone); + } + + if (lastRng) { + editor.selection.setRng(lastRng); + } + } + + keyboardPastePlainTextState = false; + pasteBinElm = lastRng = null; + } + + /** + * Returns the contents of the paste bin as a HTML string. + * + * @return {String} Get the contents of the paste bin. + */ + function getPasteBinHtml() { + var html = pasteBinDefaultContent, pasteBinClones, i; + + // Since WebKit/Chrome might clone the paste bin when pasting + // for example: <img style="float: right"> we need to check if any of them contains some useful html. + // TODO: Man o man is this ugly. WebKit is the new IE! Remove this if they ever fix it! + pasteBinClones = editor.dom.select('div[id=mcepastebin]'); + i = pasteBinClones.length; + while (i--) { + var cloneHtml = pasteBinClones[i].innerHTML; + + if (html == pasteBinDefaultContent) { + html = ''; + } + + if (cloneHtml.length > html.length) { + html = cloneHtml; + } + } + + return html; + } + + /** + * Gets various content types out of a datatransfer object. + * + * @param {DataTransfer} dataTransfer Event fired on paste. + * @return {Object} Object with mime types and data for those mime types. + */ + function getDataTransferItems(dataTransfer) { + var data = {}; + + if (dataTransfer && dataTransfer.types) { + // Use old WebKit API + var legacyText = dataTransfer.getData('Text'); + if (legacyText && legacyText.length > 0) { + data['text/plain'] = legacyText; + } + + for (var i = 0; i < dataTransfer.types.length; i++) { + var contentType = dataTransfer.types[i]; + data[contentType] = dataTransfer.getData(contentType); + } + } + + return data; + } + + /** + * Gets various content types out of the Clipboard API. It will also get the + * plain text using older IE and WebKit API:s. + * + * @param {ClipboardEvent} clipboardEvent Event fired on paste. + * @return {Object} Object with mime types and data for those mime types. + */ + function getClipboardContent(clipboardEvent) { + return getDataTransferItems(clipboardEvent.clipboardData || editor.getDoc().dataTransfer); + } + + /** + * Checks if the clipboard contains image data if it does it will take that data + * and convert it into a data url image and paste that image at the caret location. + * + * @param {ClipboardEvent} e Paste event object. + * @param {Object} clipboardContent Collection of clipboard contents. + * @return {Boolean} true/false if the image data was found or not. + */ + function pasteImageData(e, clipboardContent) { + function pasteImage(item) { + if (items[i].type == 'image/png') { + var reader = new FileReader(); + + reader.onload = function() { + pasteHtml('<img src="' + reader.result + '">'); + }; + + reader.readAsDataURL(item.getAsFile()); + + return true; + } + } + + // If paste data images are disabled or there is HTML or plain text + // contents then proceed with the normal paste process + if (!editor.settings.paste_data_images || "text/html" in clipboardContent || "text/plain" in clipboardContent) { + return; + } + + if (e.clipboardData) { + var items = e.clipboardData.items; + + if (items) { + for (var i = 0; i < items.length; i++) { + if (pasteImage(items[i])) { + return true; + } + } + } + } + } + + function getCaretRangeFromEvent(e) { + var doc = editor.getDoc(), rng; + + if (doc.caretPositionFromPoint) { + var point = doc.caretPositionFromPoint(e.clientX, e.clientY); + rng = doc.createRange(); + rng.setStart(point.offsetNode, point.offset); + rng.collapse(true); + } else if (doc.caretRangeFromPoint) { + rng = doc.caretRangeFromPoint(e.clientX, e.clientY); + } + + return rng; + } + + function hasContentType(clipboardContent, mimeType) { + return mimeType in clipboardContent && clipboardContent[mimeType].length > 0; + } + + function registerEventHandlers() { + editor.on('keydown', function(e) { + if (e.isDefaultPrevented()) { + return; + } + + // Ctrl+V or Shift+Insert + if ((VK.metaKeyPressed(e) && e.keyCode == 86) || (e.shiftKey && e.keyCode == 45)) { + keyboardPastePlainTextState = e.shiftKey && e.keyCode == 86; + + // Prevent undoManager keydown handler from making an undo level with the pastebin in it + e.stopImmediatePropagation(); + + keyboardPasteTimeStamp = new Date().getTime(); + + // IE doesn't support Ctrl+Shift+V and it doesn't even produce a paste event + // so lets fake a paste event and let IE use the execCommand/dataTransfer methods + if (Env.ie && keyboardPastePlainTextState) { + e.preventDefault(); + editor.fire('paste', {ieFake: true}); + return; + } + + removePasteBin(); + createPasteBin(); + } + }); + + editor.on('paste', function(e) { + var clipboardContent = getClipboardContent(e); + var isKeyBoardPaste = new Date().getTime() - keyboardPasteTimeStamp < 1000; + var plainTextMode = self.pasteFormat == "text" || keyboardPastePlainTextState; + + if (e.isDefaultPrevented()) { + removePasteBin(); + return; + } + + if (pasteImageData(e, clipboardContent)) { + removePasteBin(); + return; + } + + // Not a keyboard paste prevent default paste and try to grab the clipboard contents using different APIs + if (!isKeyBoardPaste) { + e.preventDefault(); + } + + // Try IE only method if paste isn't a keyboard paste + if (Env.ie && (!isKeyBoardPaste || e.ieFake)) { + createPasteBin(); + + editor.dom.bind(pasteBinElm, 'paste', function(e) { + e.stopPropagation(); + }); + + editor.getDoc().execCommand('Paste', false, null); + clipboardContent["text/html"] = getPasteBinHtml(); + } + + setTimeout(function() { + var html = getPasteBinHtml(); + + // WebKit has a nice bug where it clones the paste bin if you paste from for example notepad + if (pasteBinElm && pasteBinElm.firstChild && pasteBinElm.firstChild.id === 'mcepastebin') { + plainTextMode = true; + } + + removePasteBin(); + + if (html == pasteBinDefaultContent || !isKeyBoardPaste) { + html = clipboardContent['text/html'] || clipboardContent['text/plain'] || pasteBinDefaultContent; + + if (html == pasteBinDefaultContent) { + if (!isKeyBoardPaste) { + editor.windowManager.alert('Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.'); + } + + return; + } + } + + // Force plain text mode if we only got a text/plain content type + if (!hasContentType(clipboardContent, 'text/html') && hasContentType(clipboardContent, 'text/plain')) { + plainTextMode = true; + } + + if (plainTextMode) { + pasteText(clipboardContent['text/plain'] || Utils.innerText(html)); + } else { + pasteHtml(html); + } + }, 0); + }); + + editor.on('dragstart', function(e) { + if (e.dataTransfer.types) { + try { + e.dataTransfer.setData('mce-internal', editor.selection.getContent()); + } catch (ex) { + // IE 10 throws an error since it doesn't support custom data items + } + } + }); + + editor.on('drop', function(e) { + var rng = getCaretRangeFromEvent(e); + + if (rng && !e.isDefaultPrevented()) { + var dropContent = getDataTransferItems(e.dataTransfer); + var content = dropContent['mce-internal'] || dropContent['text/html'] || dropContent['text/plain']; + + if (content) { + e.preventDefault(); + + editor.undoManager.transact(function() { + if (dropContent['mce-internal']) { + editor.execCommand('Delete'); + } + + editor.selection.setRng(rng); + + if (!dropContent['text/html']) { + pasteText(content); + } else { + pasteHtml(content); + } + }); + } + } + }); + } + + self.pasteHtml = pasteHtml; + self.pasteText = pasteText; + + editor.on('preInit', function() { + registerEventHandlers(); + + // Remove all data images from paste for example from Gecko + // except internal images like video elements + editor.parser.addNodeFilter('img', function(nodes) { + if (!editor.settings.paste_data_images) { + var i = nodes.length; + + while (i--) { + var src = nodes[i].attributes.map.src; + if (src && src.indexOf('data:image') === 0) { + if (!nodes[i].attr('data-mce-object') && src !== Env.transparentSrc) { + nodes[i].remove(); + } + } + } + } + }); + }); + + // Fix for #6504 we need to remove the paste bin on IE if the user paste in a file + editor.on('PreProcess', function() { + editor.dom.remove(editor.dom.get('mcepastebin')); + }); + }; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/plugins/paste/classes/Plugin.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/paste/classes/Plugin.js new file mode 100755 index 00000000000..c968b45d7b9 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/plugins/paste/classes/Plugin.js @@ -0,0 +1,110 @@ +/** + * Plugin.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class contains the tinymce plugin logic for the paste plugin. + * + * @class tinymce.pasteplugin.Plugin + * @private + */ +define("tinymce/pasteplugin/Plugin", [ + "tinymce/PluginManager", + "tinymce/pasteplugin/Clipboard", + "tinymce/pasteplugin/WordFilter", + "tinymce/pasteplugin/Quirks" +], function(PluginManager, Clipboard, WordFilter, Quirks) { + var userIsInformed; + + PluginManager.add('paste', function(editor) { + var self = this, clipboard, settings = editor.settings; + + function togglePlainTextPaste() { + if (clipboard.pasteFormat == "text") { + this.active(false); + clipboard.pasteFormat = "html"; + } else { + clipboard.pasteFormat = "text"; + this.active(true); + + if (!userIsInformed) { + editor.windowManager.alert( + 'Paste is now in plain text mode. Contents will now ' + + 'be pasted as plain text until you toggle this option off.' + ); + + userIsInformed = true; + } + } + } + + self.clipboard = clipboard = new Clipboard(editor); + self.quirks = new Quirks(editor); + self.wordFilter = new WordFilter(editor); + + if (editor.settings.paste_as_text) { + self.clipboard.pasteFormat = "text"; + } + + if (settings.paste_preprocess) { + editor.on('PastePreProcess', function(e) { + settings.paste_preprocess.call(self, self, e); + }); + } + + if (settings.paste_postprocess) { + editor.on('PastePostProcess', function(e) { + settings.paste_postprocess.call(self, self, e); + }); + } + + editor.addCommand('mceInsertClipboardContent', function(ui, value) { + if (value.content) { + self.clipboard.pasteHtml(value.content); + } + + if (value.text) { + self.clipboard.pasteText(value.text); + } + }); + + // Block all drag/drop events + if (editor.paste_block_drop) { + editor.on('dragend dragover draggesture dragdrop drop drag', function(e) { + e.preventDefault(); + e.stopPropagation(); + }); + } + + // Prevent users from dropping data images on Gecko + if (!editor.settings.paste_data_images) { + editor.on('drop', function(e) { + var dataTransfer = e.dataTransfer; + + if (dataTransfer && dataTransfer.files && dataTransfer.files.length > 0) { + e.preventDefault(); + } + }); + } + + editor.addButton('pastetext', { + icon: 'pastetext', + tooltip: 'Paste as text', + onclick: togglePlainTextPaste, + active: self.clipboard.pasteFormat == "text" + }); + + editor.addMenuItem('pastetext', { + text: 'Paste as text', + selectable: true, + active: clipboard.pasteFormat, + onclick: togglePlainTextPaste + }); + }); +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/plugins/paste/classes/Quirks.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/paste/classes/Quirks.js new file mode 100755 index 00000000000..48f033cad3c --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/plugins/paste/classes/Quirks.js @@ -0,0 +1,123 @@ +/** + * Quirks.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class contains various fixes for browsers. These issues can not be feature + * detected since we have no direct control over the clipboard. However we might be able + * to remove some of these fixes once the browsers gets updated/fixed. + * + * @class tinymce.pasteplugin.Quirks + * @private + */ +define("tinymce/pasteplugin/Quirks", [ + "tinymce/Env", + "tinymce/util/Tools", + "tinymce/pasteplugin/WordFilter", + "tinymce/pasteplugin/Utils" +], function(Env, Tools, WordFilter, Utils) { + "use strict"; + + return function(editor) { + function addPreProcessFilter(filterFunc) { + editor.on('BeforePastePreProcess', function(e) { + e.content = filterFunc(e.content); + }); + } + + /** + * Removes WebKit fragment comments and converted-space spans. + * + * This: + * <!--StartFragment-->a<span class="Apple-converted-space"> </span>b<!--EndFragment--> + * + * Becomes: + * a b + */ + function removeWebKitFragments(html) { + html = Utils.filter(html, [ + /^[\s\S]*<!--StartFragment-->|<!--EndFragment-->[\s\S]*$/g, // WebKit fragment + [/<span class="Apple-converted-space">\u00a0<\/span>/g, '\u00a0'], // WebKit + /<br>$/i // Traling BR elements + ]); + + return html; + } + + /** + * Removes BR elements after block elements. IE9 has a nasty bug where it puts a BR element after each + * block element when pasting from word. This removes those elements. + * + * This: + * <p>a</p><br><p>b</p> + * + * Becomes: + * <p>a</p><p>b</p> + */ + function removeExplorerBrElementsAfterBlocks(html) { + // Only filter word specific content + if (!WordFilter.isWordContent(html)) { + return html; + } + + // Produce block regexp based on the block elements in schema + var blockElements = []; + + Tools.each(editor.schema.getBlockElements(), function(block, blockName) { + blockElements.push(blockName); + }); + + var explorerBlocksRegExp = new RegExp( + '(?:<br> [\\s\\r\\n]+|<br>)*(<\\/?(' + blockElements.join('|') + ')[^>]*>)(?:<br> [\\s\\r\\n]+|<br>)*', + 'g' + ); + + // Remove BR:s from: <BLOCK>X</BLOCK><BR> + html = Utils.filter(html, [ + [explorerBlocksRegExp, '$1'] + ]); + + // IE9 also adds an extra BR element for each soft-linefeed and it also adds a BR for each word wrap break + html = Utils.filter(html, [ + [/<br><br>/g, '<BR><BR>'], // Replace multiple BR elements with uppercase BR to keep them intact + [/<br>/g, ' '], // Replace single br elements with space since they are word wrap BR:s + [/<BR><BR>/g, '<br>'] // Replace back the double brs but into a single BR + ]); + + return html; + } + + /** + * WebKit has a nasty bug where the all runtime styles gets added to style attributes when copy/pasting contents. + * This fix solves that by simply removing the whole style attribute. + * + * Todo: This can be made smarter. Keeping styles that override existing ones etc. + * + * @param {String} content Content that needs to be processed. + * @return {String} Processed contents. + */ + function removeWebKitStyles(content) { + if (editor.settings.paste_remove_styles || editor.settings.paste_remove_styles_if_webkit !== false) { + content = content.replace(/ style=\"[^\"]+\"/g, ''); + } + + return content; + } + + // Sniff browsers and apply fixes since we can't feature detect + if (Env.webkit) { + addPreProcessFilter(removeWebKitStyles); + addPreProcessFilter(removeWebKitFragments); + } + + if (Env.ie) { + addPreProcessFilter(removeExplorerBrElementsAfterBlocks); + } + }; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/plugins/paste/classes/Utils.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/paste/classes/Utils.js new file mode 100755 index 00000000000..3c4a80aff85 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/plugins/paste/classes/Utils.js @@ -0,0 +1,98 @@ +/** + * Utils.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class contails various utility functions for the paste plugin. + * + * @class tinymce.pasteplugin.Clipboard + * @private + */ +define("tinymce/pasteplugin/Utils", [ + "tinymce/util/Tools", + "tinymce/html/DomParser", + "tinymce/html/Schema" +], function(Tools, DomParser, Schema) { + function filter(content, items) { + Tools.each(items, function(v) { + if (v.constructor == RegExp) { + content = content.replace(v, ''); + } else { + content = content.replace(v[0], v[1]); + } + }); + + return content; + } + + /** + * Gets the innerText of the specified element. It will handle edge cases + * and works better than textContent on Gecko. + * + * @param {String} html HTML string to get text from. + * @return {String} String of text with line feeds. + */ + function innerText(html) { + var schema = new Schema(), domParser = new DomParser({}, schema), text = ''; + var shortEndedElements = schema.getShortEndedElements(); + var ignoreElements = Tools.makeMap('script noscript style textarea video audio iframe object', ' '); + var blockElements = schema.getBlockElements(); + + function walk(node) { + var name = node.name, currentNode = node; + + if (name === 'br') { + text += '\n'; + return; + } + + // img/input/hr + if (shortEndedElements[name]) { + text += ' '; + } + + // Ingore script, video contents + if (ignoreElements[name]) { + text += ' '; + return; + } + + if (node.type == 3) { + text += node.value; + } + + // Walk all children + if (!node.shortEnded) { + if ((node = node.firstChild)) { + do { + walk(node); + } while ((node = node.next)); + } + } + + // Add \n or \n\n for blocks or P + if (blockElements[name] && currentNode.next) { + text += '\n'; + + if (name == 'p') { + text += '\n'; + } + } + } + + walk(domParser.parse(html)); + + return text; + } + + return { + filter: filter, + innerText: innerText + }; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/plugins/paste/classes/WordFilter.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/paste/classes/WordFilter.js new file mode 100755 index 00000000000..566fe15af25 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/plugins/paste/classes/WordFilter.js @@ -0,0 +1,287 @@ +/** + * WordFilter.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class parses word HTML into proper TinyMCE markup. + * + * @class tinymce.pasteplugin.Quirks + * @private + */ +define("tinymce/pasteplugin/WordFilter", [ + "tinymce/util/Tools", + "tinymce/html/DomParser", + "tinymce/html/Schema", + "tinymce/html/Serializer", + "tinymce/html/Node", + "tinymce/pasteplugin/Utils" +], function(Tools, DomParser, Schema, Serializer, Node, Utils) { + function isWordContent(content) { + return (/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i).test(content); + } + + function WordFilter(editor) { + var settings = editor.settings; + + editor.on('BeforePastePreProcess', function(e) { + var content = e.content, retainStyleProperties, validStyles; + + retainStyleProperties = settings.paste_retain_style_properties; + if (retainStyleProperties) { + validStyles = Tools.makeMap(retainStyleProperties); + } + + /** + * Converts fake bullet and numbered lists to real semantic OL/UL. + * + * @param {tinymce.html.Node} node Root node to convert children of. + */ + function convertFakeListsToProperLists(node) { + var currentListNode, prevListNode, lastLevel = 1; + + function convertParagraphToLi(paragraphNode, listStartTextNode, listName, start) { + var level = paragraphNode._listLevel || lastLevel; + + // Handle list nesting + if (level != lastLevel) { + if (level < lastLevel) { + // Move to parent list + if (currentListNode) { + currentListNode = currentListNode.parent.parent; + } + } else { + // Create new list + prevListNode = currentListNode; + currentListNode = null; + } + } + + if (!currentListNode || currentListNode.name != listName) { + prevListNode = prevListNode || currentListNode; + currentListNode = new Node(listName, 1); + + if (start > 1) { + currentListNode.attr('start', '' + start); + } + + paragraphNode.wrap(currentListNode); + } else { + currentListNode.append(paragraphNode); + } + + paragraphNode.name = 'li'; + listStartTextNode.value = ''; + + var nextNode = listStartTextNode.next; + if (nextNode && nextNode.type == 3) { + nextNode.value = nextNode.value.replace(/^\u00a0+/, ''); + } + + // Append list to previous list if it exists + if (level > lastLevel && prevListNode) { + prevListNode.lastChild.append(currentListNode); + } + + lastLevel = level; + } + + var paragraphs = node.getAll('p'); + + for (var i = 0; i < paragraphs.length; i++) { + node = paragraphs[i]; + + if (node.name == 'p' && node.firstChild) { + // Find first text node in paragraph + var nodeText = ''; + var listStartTextNode = node.firstChild; + + while (listStartTextNode) { + nodeText = listStartTextNode.value; + if (nodeText) { + break; + } + + listStartTextNode = listStartTextNode.firstChild; + } + + // Detect unordered lists look for bullets + if (/^\s*[\u2022\u00b7\u00a7\u00d8\u25CF]\s*$/.test(nodeText)) { + convertParagraphToLi(node, listStartTextNode, 'ul'); + continue; + } + + // Detect ordered lists 1., a. or ixv. + if (/^\s*\w+\.$/.test(nodeText)) { + // Parse OL start number + var matches = /([0-9])\./.exec(nodeText); + var start = 1; + if (matches) { + start = parseInt(matches[1], 10); + } + + convertParagraphToLi(node, listStartTextNode, 'ol', start); + continue; + } + + currentListNode = null; + } + } + } + + function filterStyles(node, styleValue) { + // Parse out list indent level for lists + if (node.name === 'p') { + var matches = /mso-list:\w+ \w+([0-9]+)/.exec(styleValue); + + if (matches) { + node._listLevel = parseInt(matches[1], 10); + } + } + + if (editor.getParam("paste_retain_style_properties", "none")) { + var outputStyle = ""; + + Tools.each(editor.dom.parseStyle(styleValue), function(value, name) { + // Convert various MS styles to W3C styles + switch (name) { + case "horiz-align": + name = "text-align"; + return; + + case "vert-align": + name = "vertical-align"; + return; + + case "font-color": + case "mso-foreground": + name = "color"; + return; + + case "mso-background": + case "mso-highlight": + name = "background"; + break; + } + + // Output only valid styles + if (retainStyleProperties == "all" || (validStyles && validStyles[name])) { + outputStyle += name + ':' + value + ';'; + } + }); + + if (outputStyle) { + return outputStyle; + } + } + + return null; + } + + if (settings.paste_enable_default_filters === false) { + return; + } + + // Detect is the contents is Word junk HTML + if (isWordContent(e.content)) { + e.wordContent = true; // Mark it for other processors + + // Remove basic Word junk + content = Utils.filter(content, [ + // Word comments like conditional comments etc + /<!--[\s\S]+?-->/gi, + + // Remove comments, scripts (e.g., msoShowComment), XML tag, VML content, + // MS Office namespaced tags, and a few other tags + /<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi, + + // Convert <s> into <strike> for line-though + [/<(\/?)s>/gi, "<$1strike>"], + + // Replace nsbp entites to char since it's easier to handle + [/ /gi, "\u00a0"], + + // Convert <span style="mso-spacerun:yes">___</span> to string of alternating + // breaking/non-breaking spaces of same length + [/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi, + function(str, spaces) { + return (spaces.length > 0) ? + spaces.replace(/./, " ").slice(Math.floor(spaces.length / 2)).split("").join("\u00a0") : ""; + } + ] + ]); + + var validElements = settings.paste_word_valid_elements; + if (!validElements) { + validElements = '@[style],-strong/b,-em/i,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,' + + '-table[width],-tr,-td[colspan|rowspan|width],-th,-thead,-tfoot,-tbody,-a[href|name],sub,sup,strike,br'; + } + + // Setup strict schema + var schema = new Schema({ + valid_elements: validElements + }); + + // Parse HTML into DOM structure + var domParser = new DomParser({}, schema); + + domParser.addAttributeFilter('style', function(nodes) { + var i = nodes.length, node; + + while (i--) { + node = nodes[i]; + node.attr('style', filterStyles(node, node.attr('style'))); + + // Remove pointess spans + if (node.name == 'span' && !node.attributes.length) { + node.unwrap(); + } + } + }); + + domParser.addNodeFilter('a', function(nodes) { + var i = nodes.length, node, href, name; + + while (i--) { + node = nodes[i]; + href = node.attr('href'); + name = node.attr('name'); + + if (href && href.indexOf('file://') === 0) { + href = href.split('#')[1]; + if (href) { + href = '#' + href; + } + } + + if (!href && !name) { + node.unwrap(); + } else { + node.attr({ + href: href, + name: name + }); + } + } + }); + // Parse into DOM structure + var rootNode = domParser.parse(content); + + // Process DOM + convertFakeListsToProperLists(rootNode); + + // Serialize DOM back to HTML + e.content = new Serializer({}, schema).serialize(rootNode); + } + }); + } + + WordFilter.isWordContent = isWordContent; + + return WordFilter; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/plugins/paste/plugin.dev.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/paste/plugin.dev.js new file mode 100755 index 00000000000..557269ef75e --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/plugins/paste/plugin.dev.js @@ -0,0 +1,120 @@ +/** + * Inline development version. Only to be used while developing since it uses document.write to load scripts. + */ + +/*jshint smarttabs:true, undef:true, latedef:true, curly:true, bitwise:true, camelcase:true */ +/*globals $code */ + +(function(exports) { + "use strict"; + + var html = "", baseDir; + var modules = {}, exposedModules = [], moduleCount = 0; + + var scripts = document.getElementsByTagName('script'); + for (var i = 0; i < scripts.length; i++) { + var src = scripts[i].src; + + if (src.indexOf('/plugin.dev.js') != -1) { + baseDir = src.substring(0, src.lastIndexOf('/')); + } + } + + function require(ids, callback) { + var module, defs = []; + + for (var i = 0; i < ids.length; ++i) { + module = modules[ids[i]] || resolve(ids[i]); + if (!module) { + throw 'module definition dependecy not found: ' + ids[i]; + } + + defs.push(module); + } + + callback.apply(null, defs); + } + + function resolve(id) { + var target = exports; + var fragments = id.split(/[.\/]/); + + for (var fi = 0; fi < fragments.length; ++fi) { + if (!target[fragments[fi]]) { + return; + } + + target = target[fragments[fi]]; + } + + return target; + } + + function register(id) { + var target = exports; + var fragments = id.split(/[.\/]/); + + for (var fi = 0; fi < fragments.length - 1; ++fi) { + if (target[fragments[fi]] === undefined) { + target[fragments[fi]] = {}; + } + + target = target[fragments[fi]]; + } + + target[fragments[fragments.length - 1]] = modules[id]; + } + + function define(id, dependencies, definition) { + if (typeof id !== 'string') { + throw 'invalid module definition, module id must be defined and be a string'; + } + + if (dependencies === undefined) { + throw 'invalid module definition, dependencies must be specified'; + } + + if (definition === undefined) { + throw 'invalid module definition, definition function must be specified'; + } + + require(dependencies, function() { + modules[id] = definition.apply(null, arguments); + }); + + if (--moduleCount === 0) { + for (var i = 0; i < exposedModules.length; i++) { + register(exposedModules[i]); + } + } + } + + function expose(ids) { + exposedModules = ids; + } + + function writeScripts() { + document.write(html); + } + + function load(path) { + html += '<script type="text/javascript" src="' + baseDir + '/' + path + '"></script>\n'; + moduleCount++; + } + + // Expose globally + exports.define = define; + exports.require = require; + + expose(["tinymce/pasteplugin/Utils","tinymce/pasteplugin/Clipboard","tinymce/pasteplugin/WordFilter","tinymce/pasteplugin/Quirks","tinymce/pasteplugin/Plugin"]); + + load('classes/Utils.js'); + load('classes/Clipboard.js'); + load('classes/WordFilter.js'); + load('classes/Quirks.js'); + load('classes/Plugin.js'); + + writeScripts(); +})(this); + +// $hash: d99d9b748c4f7521874d185c37bfd19a \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/plugins/paste/plugin.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/paste/plugin.js new file mode 100755 index 00000000000..3a038798201 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/plugins/paste/plugin.js @@ -0,0 +1,1206 @@ +/** + * Compiled inline version. (Library mode) + */ + +/*jshint smarttabs:true, undef:true, latedef:true, curly:true, bitwise:true, camelcase:true */ +/*globals $code */ + +(function(exports, undefined) { + "use strict"; + + var modules = {}; + + function require(ids, callback) { + var module, defs = []; + + for (var i = 0; i < ids.length; ++i) { + module = modules[ids[i]] || resolve(ids[i]); + if (!module) { + throw 'module definition dependecy not found: ' + ids[i]; + } + + defs.push(module); + } + + callback.apply(null, defs); + } + + function define(id, dependencies, definition) { + if (typeof id !== 'string') { + throw 'invalid module definition, module id must be defined and be a string'; + } + + if (dependencies === undefined) { + throw 'invalid module definition, dependencies must be specified'; + } + + if (definition === undefined) { + throw 'invalid module definition, definition function must be specified'; + } + + require(dependencies, function() { + modules[id] = definition.apply(null, arguments); + }); + } + + function defined(id) { + return !!modules[id]; + } + + function resolve(id) { + var target = exports; + var fragments = id.split(/[.\/]/); + + for (var fi = 0; fi < fragments.length; ++fi) { + if (!target[fragments[fi]]) { + return; + } + + target = target[fragments[fi]]; + } + + return target; + } + + function expose(ids) { + for (var i = 0; i < ids.length; i++) { + var target = exports; + var id = ids[i]; + var fragments = id.split(/[.\/]/); + + for (var fi = 0; fi < fragments.length - 1; ++fi) { + if (target[fragments[fi]] === undefined) { + target[fragments[fi]] = {}; + } + + target = target[fragments[fi]]; + } + + target[fragments[fragments.length - 1]] = modules[id]; + } + } + +// Included from: js/tinymce/plugins/paste/classes/Utils.js + +/** + * Utils.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class contails various utility functions for the paste plugin. + * + * @class tinymce.pasteplugin.Clipboard + * @private + */ +define("tinymce/pasteplugin/Utils", [ + "tinymce/util/Tools", + "tinymce/html/DomParser", + "tinymce/html/Schema" +], function(Tools, DomParser, Schema) { + function filter(content, items) { + Tools.each(items, function(v) { + if (v.constructor == RegExp) { + content = content.replace(v, ''); + } else { + content = content.replace(v[0], v[1]); + } + }); + + return content; + } + + /** + * Gets the innerText of the specified element. It will handle edge cases + * and works better than textContent on Gecko. + * + * @param {String} html HTML string to get text from. + * @return {String} String of text with line feeds. + */ + function innerText(html) { + var schema = new Schema(), domParser = new DomParser({}, schema), text = ''; + var shortEndedElements = schema.getShortEndedElements(); + var ignoreElements = Tools.makeMap('script noscript style textarea video audio iframe object', ' '); + var blockElements = schema.getBlockElements(); + + function walk(node) { + var name = node.name, currentNode = node; + + if (name === 'br') { + text += '\n'; + return; + } + + // img/input/hr + if (shortEndedElements[name]) { + text += ' '; + } + + // Ingore script, video contents + if (ignoreElements[name]) { + text += ' '; + return; + } + + if (node.type == 3) { + text += node.value; + } + + // Walk all children + if (!node.shortEnded) { + if ((node = node.firstChild)) { + do { + walk(node); + } while ((node = node.next)); + } + } + + // Add \n or \n\n for blocks or P + if (blockElements[name] && currentNode.next) { + text += '\n'; + + if (name == 'p') { + text += '\n'; + } + } + } + + walk(domParser.parse(html)); + + return text; + } + + return { + filter: filter, + innerText: innerText + }; +}); + +// Included from: js/tinymce/plugins/paste/classes/Clipboard.js + +/** + * Clipboard.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class contains logic for getting HTML contents out of the clipboard. + * + * We need to make a lot of ugly hacks to get the contents out of the clipboard since + * the W3C Clipboard API is broken in all browsers that have it: Gecko/WebKit/Blink. + * We might rewrite this the way those API:s stabilize. Browsers doesn't handle pasting + * from applications like Word the same way as it does when pasting into a contentEditable area + * so we need to do lots of extra work to try to get to this clipboard data. + * + * Current implementation steps: + * 1. On keydown with paste keys Ctrl+V or Shift+Insert create + * a paste bin element and move focus to that element. + * 2. Wait for the browser to fire a "paste" event and get the contents out of the paste bin. + * 3. Check if the paste was successful if true, process the HTML. + * (4). If the paste was unsuccessful use IE execCommand, Clipboard API, document.dataTransfer old WebKit API etc. + * + * @class tinymce.pasteplugin.Clipboard + * @private + */ +define("tinymce/pasteplugin/Clipboard", [ + "tinymce/Env", + "tinymce/util/VK", + "tinymce/pasteplugin/Utils" +], function(Env, VK, Utils) { + return function(editor) { + var self = this, pasteBinElm, lastRng, keyboardPasteTimeStamp = 0; + var pasteBinDefaultContent = '%MCEPASTEBIN%', keyboardPastePlainTextState; + + /** + * Pastes the specified HTML. This means that the HTML is filtered and then + * inserted at the current selection in the editor. It will also fire paste events + * for custom user filtering. + * + * @param {String} html HTML code to paste into the current selection. + */ + function pasteHtml(html) { + var args, dom = editor.dom; + + args = editor.fire('BeforePastePreProcess', {content: html}); // Internal event used by Quirks + args = editor.fire('PastePreProcess', args); + html = args.content; + + if (!args.isDefaultPrevented()) { + // User has bound PastePostProcess events then we need to pass it through a DOM node + // This is not ideal but we don't want to let the browser mess up the HTML for example + // some browsers add to P tags etc + if (editor.hasEventListeners('PastePostProcess') && !args.isDefaultPrevented()) { + // We need to attach the element to the DOM so Sizzle selectors work on the contents + var tempBody = dom.add(editor.getBody(), 'div', {style: 'display:none'}, html); + args = editor.fire('PastePostProcess', {node: tempBody}); + dom.remove(tempBody); + html = args.node.innerHTML; + } + + if (!args.isDefaultPrevented()) { + editor.insertContent(html); + } + } + } + + /** + * Pastes the specified text. This means that the plain text is processed + * and converted into BR and P elements. It will fire paste events for custom filtering. + * + * @param {String} text Text to paste as the current selection location. + */ + function pasteText(text) { + text = editor.dom.encode(text).replace(/\r\n/g, '\n'); + + var startBlock = editor.dom.getParent(editor.selection.getStart(), editor.dom.isBlock); + + // Create start block html for example <p attr="value"> + var forcedRootBlockName = editor.settings.forced_root_block; + var forcedRootBlockStartHtml; + if (forcedRootBlockName) { + forcedRootBlockStartHtml = editor.dom.createHTML(forcedRootBlockName, editor.settings.forced_root_block_attrs); + forcedRootBlockStartHtml = forcedRootBlockStartHtml.substr(0, forcedRootBlockStartHtml.length - 3) + '>'; + } + + if ((startBlock && /^(PRE|DIV)$/.test(startBlock.nodeName)) || !forcedRootBlockName) { + text = Utils.filter(text, [ + [/\n/g, "<br>"] + ]); + } else { + text = Utils.filter(text, [ + [/\n\n/g, "</p>" + forcedRootBlockStartHtml], + [/^(.*<\/p>)(<p>)$/, forcedRootBlockStartHtml + '$1'], + [/\n/g, "<br />"] + ]); + + if (text.indexOf('<p>') != -1) { + text = forcedRootBlockStartHtml + text; + } + } + + pasteHtml(text); + } + + /** + * Creates a paste bin element as close as possible to the current caret location and places the focus inside that element + * so that when the real paste event occurs the contents gets inserted into this element + * instead of the current editor selection element. + */ + function createPasteBin() { + var dom = editor.dom, body = editor.getBody(); + var viewport = editor.dom.getViewPort(editor.getWin()), scrollTop = viewport.y, top = 20; + var scrollContainer; + + lastRng = editor.selection.getRng(); + + if (editor.inline) { + scrollContainer = editor.selection.getScrollContainer(); + + if (scrollContainer) { + scrollTop = scrollContainer.scrollTop; + } + } + + // Calculate top cordinate this is needed to avoid scrolling to top of document + // We want the paste bin to be as close to the caret as possible to avoid scrolling + if (lastRng.getClientRects) { + var rects = lastRng.getClientRects(); + + if (rects.length) { + // Client rects gets us closes to the actual + // caret location in for example a wrapped paragraph block + top = scrollTop + (rects[0].top - dom.getPos(body).y); + } else { + top = scrollTop; + + // Check if we can find a closer location by checking the range element + var container = lastRng.startContainer; + if (container) { + if (container.nodeType == 3 && container.parentNode != body) { + container = container.parentNode; + } + + if (container.nodeType == 1) { + top = dom.getPos(container, scrollContainer || body).y; + } + } + } + } + + // Create a pastebin + pasteBinElm = dom.add(editor.getBody(), 'div', { + id: "mcepastebin", + contentEditable: true, + "data-mce-bogus": "1", + style: 'position: absolute; top: ' + top + 'px;' + + 'width: 10px; height: 10px; overflow: hidden; opacity: 0' + }, pasteBinDefaultContent); + + // Move paste bin out of sight since the controlSelection rect gets displayed otherwise on IE and Gecko + if (Env.ie || Env.gecko) { + dom.setStyle(pasteBinElm, 'left', dom.getStyle(body, 'direction', true) == 'rtl' ? 0xFFFF : -0xFFFF); + } + + // Prevent focus events from bubbeling fixed FocusManager issues + dom.bind(pasteBinElm, 'beforedeactivate focusin focusout', function(e) { + e.stopPropagation(); + }); + + pasteBinElm.focus(); + editor.selection.select(pasteBinElm, true); + } + + /** + * Removes the paste bin if it exists. + */ + function removePasteBin() { + if (pasteBinElm) { + var pasteBinClone; + + // WebKit/Blink might clone the div so + // lets make sure we remove all clones + // TODO: Man o man is this ugly. WebKit is the new IE! Remove this if they ever fix it! + while ((pasteBinClone = editor.dom.get('mcepastebin'))) { + editor.dom.remove(pasteBinClone); + editor.dom.unbind(pasteBinClone); + } + + if (lastRng) { + editor.selection.setRng(lastRng); + } + } + + keyboardPastePlainTextState = false; + pasteBinElm = lastRng = null; + } + + /** + * Returns the contents of the paste bin as a HTML string. + * + * @return {String} Get the contents of the paste bin. + */ + function getPasteBinHtml() { + var html = pasteBinDefaultContent, pasteBinClones, i; + + // Since WebKit/Chrome might clone the paste bin when pasting + // for example: <img style="float: right"> we need to check if any of them contains some useful html. + // TODO: Man o man is this ugly. WebKit is the new IE! Remove this if they ever fix it! + pasteBinClones = editor.dom.select('div[id=mcepastebin]'); + i = pasteBinClones.length; + while (i--) { + var cloneHtml = pasteBinClones[i].innerHTML; + + if (html == pasteBinDefaultContent) { + html = ''; + } + + if (cloneHtml.length > html.length) { + html = cloneHtml; + } + } + + return html; + } + + /** + * Gets various content types out of a datatransfer object. + * + * @param {DataTransfer} dataTransfer Event fired on paste. + * @return {Object} Object with mime types and data for those mime types. + */ + function getDataTransferItems(dataTransfer) { + var data = {}; + + if (dataTransfer && dataTransfer.types) { + // Use old WebKit API + var legacyText = dataTransfer.getData('Text'); + if (legacyText && legacyText.length > 0) { + data['text/plain'] = legacyText; + } + + for (var i = 0; i < dataTransfer.types.length; i++) { + var contentType = dataTransfer.types[i]; + data[contentType] = dataTransfer.getData(contentType); + } + } + + return data; + } + + /** + * Gets various content types out of the Clipboard API. It will also get the + * plain text using older IE and WebKit API:s. + * + * @param {ClipboardEvent} clipboardEvent Event fired on paste. + * @return {Object} Object with mime types and data for those mime types. + */ + function getClipboardContent(clipboardEvent) { + return getDataTransferItems(clipboardEvent.clipboardData || editor.getDoc().dataTransfer); + } + + /** + * Checks if the clipboard contains image data if it does it will take that data + * and convert it into a data url image and paste that image at the caret location. + * + * @param {ClipboardEvent} e Paste event object. + * @param {Object} clipboardContent Collection of clipboard contents. + * @return {Boolean} true/false if the image data was found or not. + */ + function pasteImageData(e, clipboardContent) { + function pasteImage(item) { + if (items[i].type == 'image/png') { + var reader = new FileReader(); + + reader.onload = function() { + pasteHtml('<img src="' + reader.result + '">'); + }; + + reader.readAsDataURL(item.getAsFile()); + + return true; + } + } + + // If paste data images are disabled or there is HTML or plain text + // contents then proceed with the normal paste process + if (!editor.settings.paste_data_images || "text/html" in clipboardContent || "text/plain" in clipboardContent) { + return; + } + + if (e.clipboardData) { + var items = e.clipboardData.items; + + if (items) { + for (var i = 0; i < items.length; i++) { + if (pasteImage(items[i])) { + return true; + } + } + } + } + } + + function getCaretRangeFromEvent(e) { + var doc = editor.getDoc(), rng; + + if (doc.caretPositionFromPoint) { + var point = doc.caretPositionFromPoint(e.clientX, e.clientY); + rng = doc.createRange(); + rng.setStart(point.offsetNode, point.offset); + rng.collapse(true); + } else if (doc.caretRangeFromPoint) { + rng = doc.caretRangeFromPoint(e.clientX, e.clientY); + } + + return rng; + } + + function hasContentType(clipboardContent, mimeType) { + return mimeType in clipboardContent && clipboardContent[mimeType].length > 0; + } + + function registerEventHandlers() { + editor.on('keydown', function(e) { + if (e.isDefaultPrevented()) { + return; + } + + // Ctrl+V or Shift+Insert + if ((VK.metaKeyPressed(e) && e.keyCode == 86) || (e.shiftKey && e.keyCode == 45)) { + keyboardPastePlainTextState = e.shiftKey && e.keyCode == 86; + + // Prevent undoManager keydown handler from making an undo level with the pastebin in it + e.stopImmediatePropagation(); + + keyboardPasteTimeStamp = new Date().getTime(); + + // IE doesn't support Ctrl+Shift+V and it doesn't even produce a paste event + // so lets fake a paste event and let IE use the execCommand/dataTransfer methods + if (Env.ie && keyboardPastePlainTextState) { + e.preventDefault(); + editor.fire('paste', {ieFake: true}); + return; + } + + removePasteBin(); + createPasteBin(); + } + }); + + editor.on('paste', function(e) { + var clipboardContent = getClipboardContent(e); + var isKeyBoardPaste = new Date().getTime() - keyboardPasteTimeStamp < 1000; + var plainTextMode = self.pasteFormat == "text" || keyboardPastePlainTextState; + + if (e.isDefaultPrevented()) { + removePasteBin(); + return; + } + + if (pasteImageData(e, clipboardContent)) { + removePasteBin(); + return; + } + + // Not a keyboard paste prevent default paste and try to grab the clipboard contents using different APIs + if (!isKeyBoardPaste) { + e.preventDefault(); + } + + // Try IE only method if paste isn't a keyboard paste + if (Env.ie && (!isKeyBoardPaste || e.ieFake)) { + createPasteBin(); + + editor.dom.bind(pasteBinElm, 'paste', function(e) { + e.stopPropagation(); + }); + + editor.getDoc().execCommand('Paste', false, null); + clipboardContent["text/html"] = getPasteBinHtml(); + } + + setTimeout(function() { + var html = getPasteBinHtml(); + + // WebKit has a nice bug where it clones the paste bin if you paste from for example notepad + if (pasteBinElm && pasteBinElm.firstChild && pasteBinElm.firstChild.id === 'mcepastebin') { + plainTextMode = true; + } + + removePasteBin(); + + if (html == pasteBinDefaultContent || !isKeyBoardPaste) { + html = clipboardContent['text/html'] || clipboardContent['text/plain'] || pasteBinDefaultContent; + + if (html == pasteBinDefaultContent) { + if (!isKeyBoardPaste) { + editor.windowManager.alert('Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.'); + } + + return; + } + } + + // Force plain text mode if we only got a text/plain content type + if (!hasContentType(clipboardContent, 'text/html') && hasContentType(clipboardContent, 'text/plain')) { + plainTextMode = true; + } + + if (plainTextMode) { + pasteText(clipboardContent['text/plain'] || Utils.innerText(html)); + } else { + pasteHtml(html); + } + }, 0); + }); + + editor.on('dragstart', function(e) { + if (e.dataTransfer.types) { + try { + e.dataTransfer.setData('mce-internal', editor.selection.getContent()); + } catch (ex) { + // IE 10 throws an error since it doesn't support custom data items + } + } + }); + + editor.on('drop', function(e) { + var rng = getCaretRangeFromEvent(e); + + if (rng && !e.isDefaultPrevented()) { + var dropContent = getDataTransferItems(e.dataTransfer); + var content = dropContent['mce-internal'] || dropContent['text/html'] || dropContent['text/plain']; + + if (content) { + e.preventDefault(); + + editor.undoManager.transact(function() { + if (dropContent['mce-internal']) { + editor.execCommand('Delete'); + } + + editor.selection.setRng(rng); + + if (!dropContent['text/html']) { + pasteText(content); + } else { + pasteHtml(content); + } + }); + } + } + }); + } + + self.pasteHtml = pasteHtml; + self.pasteText = pasteText; + + editor.on('preInit', function() { + registerEventHandlers(); + + // Remove all data images from paste for example from Gecko + // except internal images like video elements + editor.parser.addNodeFilter('img', function(nodes) { + if (!editor.settings.paste_data_images) { + var i = nodes.length; + + while (i--) { + var src = nodes[i].attributes.map.src; + if (src && src.indexOf('data:image') === 0) { + if (!nodes[i].attr('data-mce-object') && src !== Env.transparentSrc) { + nodes[i].remove(); + } + } + } + } + }); + }); + + // Fix for #6504 we need to remove the paste bin on IE if the user paste in a file + editor.on('PreProcess', function() { + editor.dom.remove(editor.dom.get('mcepastebin')); + }); + }; +}); + +// Included from: js/tinymce/plugins/paste/classes/WordFilter.js + +/** + * WordFilter.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class parses word HTML into proper TinyMCE markup. + * + * @class tinymce.pasteplugin.Quirks + * @private + */ +define("tinymce/pasteplugin/WordFilter", [ + "tinymce/util/Tools", + "tinymce/html/DomParser", + "tinymce/html/Schema", + "tinymce/html/Serializer", + "tinymce/html/Node", + "tinymce/pasteplugin/Utils" +], function(Tools, DomParser, Schema, Serializer, Node, Utils) { + function isWordContent(content) { + return (/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i).test(content); + } + + function WordFilter(editor) { + var settings = editor.settings; + + editor.on('BeforePastePreProcess', function(e) { + var content = e.content, retainStyleProperties, validStyles; + + retainStyleProperties = settings.paste_retain_style_properties; + if (retainStyleProperties) { + validStyles = Tools.makeMap(retainStyleProperties); + } + + /** + * Converts fake bullet and numbered lists to real semantic OL/UL. + * + * @param {tinymce.html.Node} node Root node to convert children of. + */ + function convertFakeListsToProperLists(node) { + var currentListNode, prevListNode, lastLevel = 1; + + function convertParagraphToLi(paragraphNode, listStartTextNode, listName, start) { + var level = paragraphNode._listLevel || lastLevel; + + // Handle list nesting + if (level != lastLevel) { + if (level < lastLevel) { + // Move to parent list + if (currentListNode) { + currentListNode = currentListNode.parent.parent; + } + } else { + // Create new list + prevListNode = currentListNode; + currentListNode = null; + } + } + + if (!currentListNode || currentListNode.name != listName) { + prevListNode = prevListNode || currentListNode; + currentListNode = new Node(listName, 1); + + if (start > 1) { + currentListNode.attr('start', '' + start); + } + + paragraphNode.wrap(currentListNode); + } else { + currentListNode.append(paragraphNode); + } + + paragraphNode.name = 'li'; + listStartTextNode.value = ''; + + var nextNode = listStartTextNode.next; + if (nextNode && nextNode.type == 3) { + nextNode.value = nextNode.value.replace(/^\u00a0+/, ''); + } + + // Append list to previous list if it exists + if (level > lastLevel && prevListNode) { + prevListNode.lastChild.append(currentListNode); + } + + lastLevel = level; + } + + var paragraphs = node.getAll('p'); + + for (var i = 0; i < paragraphs.length; i++) { + node = paragraphs[i]; + + if (node.name == 'p' && node.firstChild) { + // Find first text node in paragraph + var nodeText = ''; + var listStartTextNode = node.firstChild; + + while (listStartTextNode) { + nodeText = listStartTextNode.value; + if (nodeText) { + break; + } + + listStartTextNode = listStartTextNode.firstChild; + } + + // Detect unordered lists look for bullets + if (/^\s*[\u2022\u00b7\u00a7\u00d8\u25CF]\s*$/.test(nodeText)) { + convertParagraphToLi(node, listStartTextNode, 'ul'); + continue; + } + + // Detect ordered lists 1., a. or ixv. + if (/^\s*\w+\.$/.test(nodeText)) { + // Parse OL start number + var matches = /([0-9])\./.exec(nodeText); + var start = 1; + if (matches) { + start = parseInt(matches[1], 10); + } + + convertParagraphToLi(node, listStartTextNode, 'ol', start); + continue; + } + + currentListNode = null; + } + } + } + + function filterStyles(node, styleValue) { + // Parse out list indent level for lists + if (node.name === 'p') { + var matches = /mso-list:\w+ \w+([0-9]+)/.exec(styleValue); + + if (matches) { + node._listLevel = parseInt(matches[1], 10); + } + } + + if (editor.getParam("paste_retain_style_properties", "none")) { + var outputStyle = ""; + + Tools.each(editor.dom.parseStyle(styleValue), function(value, name) { + // Convert various MS styles to W3C styles + switch (name) { + case "horiz-align": + name = "text-align"; + return; + + case "vert-align": + name = "vertical-align"; + return; + + case "font-color": + case "mso-foreground": + name = "color"; + return; + + case "mso-background": + case "mso-highlight": + name = "background"; + break; + } + + // Output only valid styles + if (retainStyleProperties == "all" || (validStyles && validStyles[name])) { + outputStyle += name + ':' + value + ';'; + } + }); + + if (outputStyle) { + return outputStyle; + } + } + + return null; + } + + if (settings.paste_enable_default_filters === false) { + return; + } + + // Detect is the contents is Word junk HTML + if (isWordContent(e.content)) { + e.wordContent = true; // Mark it for other processors + + // Remove basic Word junk + content = Utils.filter(content, [ + // Word comments like conditional comments etc + /<!--[\s\S]+?-->/gi, + + // Remove comments, scripts (e.g., msoShowComment), XML tag, VML content, + // MS Office namespaced tags, and a few other tags + /<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi, + + // Convert <s> into <strike> for line-though + [/<(\/?)s>/gi, "<$1strike>"], + + // Replace nsbp entites to char since it's easier to handle + [/ /gi, "\u00a0"], + + // Convert <span style="mso-spacerun:yes">___</span> to string of alternating + // breaking/non-breaking spaces of same length + [/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi, + function(str, spaces) { + return (spaces.length > 0) ? + spaces.replace(/./, " ").slice(Math.floor(spaces.length / 2)).split("").join("\u00a0") : ""; + } + ] + ]); + + var validElements = settings.paste_word_valid_elements; + if (!validElements) { + validElements = '@[style],-strong/b,-em/i,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,' + + '-table[width],-tr,-td[colspan|rowspan|width],-th,-thead,-tfoot,-tbody,-a[href|name],sub,sup,strike,br'; + } + + // Setup strict schema + var schema = new Schema({ + valid_elements: validElements + }); + + // Parse HTML into DOM structure + var domParser = new DomParser({}, schema); + + domParser.addAttributeFilter('style', function(nodes) { + var i = nodes.length, node; + + while (i--) { + node = nodes[i]; + node.attr('style', filterStyles(node, node.attr('style'))); + + // Remove pointess spans + if (node.name == 'span' && !node.attributes.length) { + node.unwrap(); + } + } + }); + + domParser.addNodeFilter('a', function(nodes) { + var i = nodes.length, node, href, name; + + while (i--) { + node = nodes[i]; + href = node.attr('href'); + name = node.attr('name'); + + if (href && href.indexOf('file://') === 0) { + href = href.split('#')[1]; + if (href) { + href = '#' + href; + } + } + + if (!href && !name) { + node.unwrap(); + } else { + node.attr({ + href: href, + name: name + }); + } + } + }); + // Parse into DOM structure + var rootNode = domParser.parse(content); + + // Process DOM + convertFakeListsToProperLists(rootNode); + + // Serialize DOM back to HTML + e.content = new Serializer({}, schema).serialize(rootNode); + } + }); + } + + WordFilter.isWordContent = isWordContent; + + return WordFilter; +}); + +// Included from: js/tinymce/plugins/paste/classes/Quirks.js + +/** + * Quirks.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class contains various fixes for browsers. These issues can not be feature + * detected since we have no direct control over the clipboard. However we might be able + * to remove some of these fixes once the browsers gets updated/fixed. + * + * @class tinymce.pasteplugin.Quirks + * @private + */ +define("tinymce/pasteplugin/Quirks", [ + "tinymce/Env", + "tinymce/util/Tools", + "tinymce/pasteplugin/WordFilter", + "tinymce/pasteplugin/Utils" +], function(Env, Tools, WordFilter, Utils) { + "use strict"; + + return function(editor) { + function addPreProcessFilter(filterFunc) { + editor.on('BeforePastePreProcess', function(e) { + e.content = filterFunc(e.content); + }); + } + + /** + * Removes WebKit fragment comments and converted-space spans. + * + * This: + * <!--StartFragment-->a<span class="Apple-converted-space"> </span>b<!--EndFragment--> + * + * Becomes: + * a b + */ + function removeWebKitFragments(html) { + html = Utils.filter(html, [ + /^[\s\S]*<!--StartFragment-->|<!--EndFragment-->[\s\S]*$/g, // WebKit fragment + [/<span class="Apple-converted-space">\u00a0<\/span>/g, '\u00a0'], // WebKit + /<br>$/i // Traling BR elements + ]); + + return html; + } + + /** + * Removes BR elements after block elements. IE9 has a nasty bug where it puts a BR element after each + * block element when pasting from word. This removes those elements. + * + * This: + * <p>a</p><br><p>b</p> + * + * Becomes: + * <p>a</p><p>b</p> + */ + function removeExplorerBrElementsAfterBlocks(html) { + // Only filter word specific content + if (!WordFilter.isWordContent(html)) { + return html; + } + + // Produce block regexp based on the block elements in schema + var blockElements = []; + + Tools.each(editor.schema.getBlockElements(), function(block, blockName) { + blockElements.push(blockName); + }); + + var explorerBlocksRegExp = new RegExp( + '(?:<br> [\\s\\r\\n]+|<br>)*(<\\/?(' + blockElements.join('|') + ')[^>]*>)(?:<br> [\\s\\r\\n]+|<br>)*', + 'g' + ); + + // Remove BR:s from: <BLOCK>X</BLOCK><BR> + html = Utils.filter(html, [ + [explorerBlocksRegExp, '$1'] + ]); + + // IE9 also adds an extra BR element for each soft-linefeed and it also adds a BR for each word wrap break + html = Utils.filter(html, [ + [/<br><br>/g, '<BR><BR>'], // Replace multiple BR elements with uppercase BR to keep them intact + [/<br>/g, ' '], // Replace single br elements with space since they are word wrap BR:s + [/<BR><BR>/g, '<br>'] // Replace back the double brs but into a single BR + ]); + + return html; + } + + /** + * WebKit has a nasty bug where the all runtime styles gets added to style attributes when copy/pasting contents. + * This fix solves that by simply removing the whole style attribute. + * + * Todo: This can be made smarter. Keeping styles that override existing ones etc. + * + * @param {String} content Content that needs to be processed. + * @return {String} Processed contents. + */ + function removeWebKitStyles(content) { + if (editor.settings.paste_remove_styles || editor.settings.paste_remove_styles_if_webkit !== false) { + content = content.replace(/ style=\"[^\"]+\"/g, ''); + } + + return content; + } + + // Sniff browsers and apply fixes since we can't feature detect + if (Env.webkit) { + addPreProcessFilter(removeWebKitStyles); + addPreProcessFilter(removeWebKitFragments); + } + + if (Env.ie) { + addPreProcessFilter(removeExplorerBrElementsAfterBlocks); + } + }; +}); + +// Included from: js/tinymce/plugins/paste/classes/Plugin.js + +/** + * Plugin.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class contains the tinymce plugin logic for the paste plugin. + * + * @class tinymce.pasteplugin.Plugin + * @private + */ +define("tinymce/pasteplugin/Plugin", [ + "tinymce/PluginManager", + "tinymce/pasteplugin/Clipboard", + "tinymce/pasteplugin/WordFilter", + "tinymce/pasteplugin/Quirks" +], function(PluginManager, Clipboard, WordFilter, Quirks) { + var userIsInformed; + + PluginManager.add('paste', function(editor) { + var self = this, clipboard, settings = editor.settings; + + function togglePlainTextPaste() { + if (clipboard.pasteFormat == "text") { + this.active(false); + clipboard.pasteFormat = "html"; + } else { + clipboard.pasteFormat = "text"; + this.active(true); + + if (!userIsInformed) { + editor.windowManager.alert( + 'Paste is now in plain text mode. Contents will now ' + + 'be pasted as plain text until you toggle this option off.' + ); + + userIsInformed = true; + } + } + } + + self.clipboard = clipboard = new Clipboard(editor); + self.quirks = new Quirks(editor); + self.wordFilter = new WordFilter(editor); + + if (editor.settings.paste_as_text) { + self.clipboard.pasteFormat = "text"; + } + + if (settings.paste_preprocess) { + editor.on('PastePreProcess', function(e) { + settings.paste_preprocess.call(self, self, e); + }); + } + + if (settings.paste_postprocess) { + editor.on('PastePostProcess', function(e) { + settings.paste_postprocess.call(self, self, e); + }); + } + + editor.addCommand('mceInsertClipboardContent', function(ui, value) { + if (value.content) { + self.clipboard.pasteHtml(value.content); + } + + if (value.text) { + self.clipboard.pasteText(value.text); + } + }); + + // Block all drag/drop events + if (editor.paste_block_drop) { + editor.on('dragend dragover draggesture dragdrop drop drag', function(e) { + e.preventDefault(); + e.stopPropagation(); + }); + } + + // Prevent users from dropping data images on Gecko + if (!editor.settings.paste_data_images) { + editor.on('drop', function(e) { + var dataTransfer = e.dataTransfer; + + if (dataTransfer && dataTransfer.files && dataTransfer.files.length > 0) { + e.preventDefault(); + } + }); + } + + editor.addButton('pastetext', { + icon: 'pastetext', + tooltip: 'Paste as text', + onclick: togglePlainTextPaste, + active: self.clipboard.pasteFormat == "text" + }); + + editor.addMenuItem('pastetext', { + text: 'Paste as text', + selectable: true, + active: clipboard.pasteFormat, + onclick: togglePlainTextPaste + }); + }); +}); + +expose(["tinymce/pasteplugin/Utils","tinymce/pasteplugin/Clipboard","tinymce/pasteplugin/WordFilter","tinymce/pasteplugin/Quirks","tinymce/pasteplugin/Plugin"]); +})(this); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/plugins/paste/plugin.min.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/paste/plugin.min.js new file mode 100755 index 00000000000..2a759d034a2 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/plugins/paste/plugin.min.js @@ -0,0 +1 @@ +!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i<e.length;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){for(var r=0;r<n.length;r++){for(var i=e,o=n[r],a=o.split(/[.\/]/),l=0;l<a.length-1;++l)i[a[l]]===t&&(i[a[l]]={}),i=i[a[l]];i[a[a.length-1]]=s[o]}}var s={},l="tinymce/pasteplugin/Utils",c="tinymce/util/Tools",d="tinymce/html/DomParser",u="tinymce/html/Schema",f="tinymce/pasteplugin/Clipboard",p="tinymce/Env",m="tinymce/util/VK",h="tinymce/pasteplugin/WordFilter",g="tinymce/html/Serializer",v="tinymce/html/Node",y="tinymce/pasteplugin/Quirks",b="tinymce/pasteplugin/Plugin",C="tinymce/PluginManager";r(l,[c,d,u],function(e,t,n){function r(t,n){return e.each(n,function(e){t=e.constructor==RegExp?t.replace(e,""):t.replace(e[0],e[1])}),t}function i(r){function i(e){var t=e.name,n=e;if("br"===t)return void(s+="\n");if(l[t]&&(s+=" "),c[t])return void(s+=" ");if(3==e.type&&(s+=e.value),!e.shortEnded&&(e=e.firstChild))do i(e);while(e=e.next);d[t]&&n.next&&(s+="\n","p"==t&&(s+="\n"))}var o=new n,a=new t({},o),s="",l=o.getShortEndedElements(),c=e.makeMap("script noscript style textarea video audio iframe object"," "),d=o.getBlockElements();return i(a.parse(r)),s}return{filter:r,innerText:i}}),r(f,[p,m,l],function(e,t,n){return function(r){function i(e){var t,n=r.dom;if(t=r.fire("BeforePastePreProcess",{content:e}),t=r.fire("PastePreProcess",t),e=t.content,!t.isDefaultPrevented()){if(r.hasEventListeners("PastePostProcess")&&!t.isDefaultPrevented()){var i=n.add(r.getBody(),"div",{style:"display:none"},e);t=r.fire("PastePostProcess",{node:i}),n.remove(i),e=t.node.innerHTML}t.isDefaultPrevented()||r.insertContent(e)}}function o(e){e=r.dom.encode(e).replace(/\r\n/g,"\n");var t=r.dom.getParent(r.selection.getStart(),r.dom.isBlock),o=r.settings.forced_root_block,a;o&&(a=r.dom.createHTML(o,r.settings.forced_root_block_attrs),a=a.substr(0,a.length-3)+">"),t&&/^(PRE|DIV)$/.test(t.nodeName)||!o?e=n.filter(e,[[/\n/g,"<br>"]]):(e=n.filter(e,[[/\n\n/g,"</p>"+a],[/^(.*<\/p>)(<p>)$/,a+"$1"],[/\n/g,"<br />"]]),-1!=e.indexOf("<p>")&&(e=a+e)),i(e)}function a(){var t=r.dom,n=r.getBody(),i=r.dom.getViewPort(r.getWin()),o=i.y,a=20,s;if(v=r.selection.getRng(),r.inline&&(s=r.selection.getScrollContainer(),s&&(o=s.scrollTop)),v.getClientRects){var l=v.getClientRects();if(l.length)a=o+(l[0].top-t.getPos(n).y);else{a=o;var c=v.startContainer;c&&(3==c.nodeType&&c.parentNode!=n&&(c=c.parentNode),1==c.nodeType&&(a=t.getPos(c,s||n).y))}}g=t.add(r.getBody(),"div",{id:"mcepastebin",contentEditable:!0,"data-mce-bogus":"1",style:"position: absolute; top: "+a+"px;width: 10px; height: 10px; overflow: hidden; opacity: 0"},b),(e.ie||e.gecko)&&t.setStyle(g,"left","rtl"==t.getStyle(n,"direction",!0)?65535:-65535),t.bind(g,"beforedeactivate focusin focusout",function(e){e.stopPropagation()}),g.focus(),r.selection.select(g,!0)}function s(){if(g){for(var e;e=r.dom.get("mcepastebin");)r.dom.remove(e),r.dom.unbind(e);v&&r.selection.setRng(v)}C=!1,g=v=null}function l(){var e=b,t,n;for(t=r.dom.select("div[id=mcepastebin]"),n=t.length;n--;){var i=t[n].innerHTML;e==b&&(e=""),i.length>e.length&&(e=i)}return e}function c(e){var t={};if(e&&e.types){var n=e.getData("Text");n&&n.length>0&&(t["text/plain"]=n);for(var r=0;r<e.types.length;r++){var i=e.types[r];t[i]=e.getData(i)}}return t}function d(e){return c(e.clipboardData||r.getDoc().dataTransfer)}function u(e,t){function n(e){if("image/png"==o[a].type){var t=new FileReader;return t.onload=function(){i('<img src="'+t.result+'">')},t.readAsDataURL(e.getAsFile()),!0}}if(!(!r.settings.paste_data_images||"text/html"in t||"text/plain"in t)&&e.clipboardData){var o=e.clipboardData.items;if(o)for(var a=0;a<o.length;a++)if(n(o[a]))return!0}}function f(e){var t=r.getDoc(),n;if(t.caretPositionFromPoint){var i=t.caretPositionFromPoint(e.clientX,e.clientY);n=t.createRange(),n.setStart(i.offsetNode,i.offset),n.collapse(!0)}else t.caretRangeFromPoint&&(n=t.caretRangeFromPoint(e.clientX,e.clientY));return n}function p(e,t){return t in e&&e[t].length>0}function m(){r.on("keydown",function(n){if(!n.isDefaultPrevented()&&(t.metaKeyPressed(n)&&86==n.keyCode||n.shiftKey&&45==n.keyCode)){if(C=n.shiftKey&&86==n.keyCode,n.stopImmediatePropagation(),y=(new Date).getTime(),e.ie&&C)return n.preventDefault(),void r.fire("paste",{ieFake:!0});s(),a()}}),r.on("paste",function(t){var c=d(t),f=(new Date).getTime()-y<1e3,m="text"==h.pasteFormat||C;return t.isDefaultPrevented()?void s():u(t,c)?void s():(f||t.preventDefault(),!e.ie||f&&!t.ieFake||(a(),r.dom.bind(g,"paste",function(e){e.stopPropagation()}),r.getDoc().execCommand("Paste",!1,null),c["text/html"]=l()),void setTimeout(function(){var e=l();return g&&g.firstChild&&"mcepastebin"===g.firstChild.id&&(m=!0),s(),e!=b&&f||(e=c["text/html"]||c["text/plain"]||b,e!=b)?(!p(c,"text/html")&&p(c,"text/plain")&&(m=!0),void(m?o(c["text/plain"]||n.innerText(e)):i(e))):void(f||r.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents."))},0))}),r.on("dragstart",function(e){if(e.dataTransfer.types)try{e.dataTransfer.setData("mce-internal",r.selection.getContent())}catch(t){}}),r.on("drop",function(e){var t=f(e);if(t&&!e.isDefaultPrevented()){var n=c(e.dataTransfer),a=n["mce-internal"]||n["text/html"]||n["text/plain"];a&&(e.preventDefault(),r.undoManager.transact(function(){n["mce-internal"]&&r.execCommand("Delete"),r.selection.setRng(t),n["text/html"]?i(a):o(a)}))}})}var h=this,g,v,y=0,b="%MCEPASTEBIN%",C;h.pasteHtml=i,h.pasteText=o,r.on("preInit",function(){m(),r.parser.addNodeFilter("img",function(t){if(!r.settings.paste_data_images)for(var n=t.length;n--;){var i=t[n].attributes.map.src;i&&0===i.indexOf("data:image")&&(t[n].attr("data-mce-object")||i===e.transparentSrc||t[n].remove())}})}),r.on("PreProcess",function(){r.dom.remove(r.dom.get("mcepastebin"))})}}),r(h,[c,d,u,g,v,l],function(e,t,n,r,i,o){function a(e){return/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(e)}function s(s){var l=s.settings;s.on("BeforePastePreProcess",function(c){function d(e){function t(e,t,a,s){var l=e._listLevel||o;l!=o&&(o>l?n&&(n=n.parent.parent):(r=n,n=null)),n&&n.name==a?n.append(e):(r=r||n,n=new i(a,1),s>1&&n.attr("start",""+s),e.wrap(n)),e.name="li",t.value="";var c=t.next;c&&3==c.type&&(c.value=c.value.replace(/^\u00a0+/,"")),l>o&&r&&r.lastChild.append(n),o=l}for(var n,r,o=1,a=e.getAll("p"),s=0;s<a.length;s++)if(e=a[s],"p"==e.name&&e.firstChild){for(var l="",c=e.firstChild;c&&!(l=c.value);)c=c.firstChild;if(/^\s*[\u2022\u00b7\u00a7\u00d8\u25CF]\s*$/.test(l)){t(e,c,"ul");continue}if(/^\s*\w+\.$/.test(l)){var d=/([0-9])\./.exec(l),u=1;d&&(u=parseInt(d[1],10)),t(e,c,"ol",u);continue}n=null}}function u(t,n){if("p"===t.name){var r=/mso-list:\w+ \w+([0-9]+)/.exec(n);r&&(t._listLevel=parseInt(r[1],10))}if(s.getParam("paste_retain_style_properties","none")){var i="";if(e.each(s.dom.parseStyle(n),function(e,t){switch(t){case"horiz-align":return void(t="text-align");case"vert-align":return void(t="vertical-align");case"font-color":case"mso-foreground":return void(t="color");case"mso-background":case"mso-highlight":t="background"}("all"==p||m&&m[t])&&(i+=t+":"+e+";")}),i)return i}return null}var f=c.content,p,m;if(p=l.paste_retain_style_properties,p&&(m=e.makeMap(p)),l.paste_enable_default_filters!==!1&&a(c.content)){c.wordContent=!0,f=o.filter(f,[/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/ /gi,"\xa0"],[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(e,t){return t.length>0?t.replace(/./," ").slice(Math.floor(t.length/2)).split("").join("\xa0"):""}]]);var h=l.paste_word_valid_elements;h||(h="@[style],-strong/b,-em/i,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-table[width],-tr,-td[colspan|rowspan|width],-th,-thead,-tfoot,-tbody,-a[href|name],sub,sup,strike,br");var g=new n({valid_elements:h}),v=new t({},g);v.addAttributeFilter("style",function(e){for(var t=e.length,n;t--;)n=e[t],n.attr("style",u(n,n.attr("style"))),"span"!=n.name||n.attributes.length||n.unwrap()}),v.addNodeFilter("a",function(e){for(var t=e.length,n,r,i;t--;)n=e[t],r=n.attr("href"),i=n.attr("name"),r&&0===r.indexOf("file://")&&(r=r.split("#")[1],r&&(r="#"+r)),r||i?n.attr({href:r,name:i}):n.unwrap()});var y=v.parse(f);d(y),c.content=new r({},g).serialize(y)}})}return s.isWordContent=a,s}),r(y,[p,c,h,l],function(e,t,n,r){return function(i){function o(e){i.on("BeforePastePreProcess",function(t){t.content=e(t.content)})}function a(e){return e=r.filter(e,[/^[\s\S]*<!--StartFragment-->|<!--EndFragment-->[\s\S]*$/g,[/<span class="Apple-converted-space">\u00a0<\/span>/g,"\xa0"],/<br>$/i])}function s(e){if(!n.isWordContent(e))return e;var o=[];t.each(i.schema.getBlockElements(),function(e,t){o.push(t)});var a=new RegExp("(?:<br> [\\s\\r\\n]+|<br>)*(<\\/?("+o.join("|")+")[^>]*>)(?:<br> [\\s\\r\\n]+|<br>)*","g");return e=r.filter(e,[[a,"$1"]]),e=r.filter(e,[[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]])}function l(e){return(i.settings.paste_remove_styles||i.settings.paste_remove_styles_if_webkit!==!1)&&(e=e.replace(/ style=\"[^\"]+\"/g,"")),e}e.webkit&&(o(l),o(a)),e.ie&&o(s)}}),r(b,[C,f,h,y],function(e,t,n,r){var i;e.add("paste",function(e){function o(){"text"==s.pasteFormat?(this.active(!1),s.pasteFormat="html"):(s.pasteFormat="text",this.active(!0),i||(e.windowManager.alert("Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off."),i=!0))}var a=this,s,l=e.settings;a.clipboard=s=new t(e),a.quirks=new r(e),a.wordFilter=new n(e),e.settings.paste_as_text&&(a.clipboard.pasteFormat="text"),l.paste_preprocess&&e.on("PastePreProcess",function(e){l.paste_preprocess.call(a,a,e)}),l.paste_postprocess&&e.on("PastePostProcess",function(e){l.paste_postprocess.call(a,a,e)}),e.addCommand("mceInsertClipboardContent",function(e,t){t.content&&a.clipboard.pasteHtml(t.content),t.text&&a.clipboard.pasteText(t.text)}),e.paste_block_drop&&e.on("dragend dragover draggesture dragdrop drop drag",function(e){e.preventDefault(),e.stopPropagation()}),e.settings.paste_data_images||e.on("drop",function(e){var t=e.dataTransfer;t&&t.files&&t.files.length>0&&e.preventDefault()}),e.addButton("pastetext",{icon:"pastetext",tooltip:"Paste as text",onclick:o,active:"text"==a.clipboard.pasteFormat}),e.addMenuItem("pastetext",{text:"Paste as text",selectable:!0,active:s.pasteFormat,onclick:o})})}),a([l,f,h,y,b])}(this); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/plugins/spellchecker/classes/DomTextMatcher.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/spellchecker/classes/DomTextMatcher.js new file mode 100755 index 00000000000..f6bdf06a480 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/plugins/spellchecker/classes/DomTextMatcher.js @@ -0,0 +1,470 @@ +/** + * DomTextMatcher.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*eslint no-labels:0, no-constant-condition: 0 */ + +/** + * This class logic for filtering text and matching words. + * + * @class tinymce.spellcheckerplugin.TextFilter + * @private + */ +define("tinymce/spellcheckerplugin/DomTextMatcher", [], function() { + // Based on work developed by: James Padolsey http://james.padolsey.com + // released under UNLICENSE that is compatible with LGPL + // TODO: Handle contentEditable edgecase: + // <p>text<span contentEditable="false">text<span contentEditable="true">text</span>text</span>text</p> + return function(node, editor) { + var m, matches = [], text, dom = editor.dom; + var blockElementsMap, hiddenTextElementsMap, shortEndedElementsMap; + + blockElementsMap = editor.schema.getBlockElements(); // H1-H6, P, TD etc + hiddenTextElementsMap = editor.schema.getWhiteSpaceElements(); // TEXTAREA, PRE, STYLE, SCRIPT + shortEndedElementsMap = editor.schema.getShortEndedElements(); // BR, IMG, INPUT + + function createMatch(m, data) { + if (!m[0]) { + throw 'findAndReplaceDOMText cannot handle zero-length matches'; + } + + return { + start: m.index, + end: m.index + m[0].length, + text: m[0], + data: data + }; + } + + function getText(node) { + var txt; + + if (node.nodeType === 3) { + return node.data; + } + + if (hiddenTextElementsMap[node.nodeName] && !blockElementsMap[node.nodeName]) { + return ''; + } + + txt = ''; + + if (blockElementsMap[node.nodeName] || shortEndedElementsMap[node.nodeName]) { + txt += '\n'; + } + + if ((node = node.firstChild)) { + do { + txt += getText(node); + } while ((node = node.nextSibling)); + } + + return txt; + } + + function stepThroughMatches(node, matches, replaceFn) { + var startNode, endNode, startNodeIndex, + endNodeIndex, innerNodes = [], atIndex = 0, curNode = node, + matchLocation, matchIndex = 0; + + matches = matches.slice(0); + matches.sort(function(a, b) { + return a.start - b.start; + }); + + matchLocation = matches.shift(); + + out: while (true) { + if (blockElementsMap[curNode.nodeName] || shortEndedElementsMap[curNode.nodeName]) { + atIndex++; + } + + if (curNode.nodeType === 3) { + if (!endNode && curNode.length + atIndex >= matchLocation.end) { + // We've found the ending + endNode = curNode; + endNodeIndex = matchLocation.end - atIndex; + } else if (startNode) { + // Intersecting node + innerNodes.push(curNode); + } + + if (!startNode && curNode.length + atIndex > matchLocation.start) { + // We've found the match start + startNode = curNode; + startNodeIndex = matchLocation.start - atIndex; + } + + atIndex += curNode.length; + } + + if (startNode && endNode) { + curNode = replaceFn({ + startNode: startNode, + startNodeIndex: startNodeIndex, + endNode: endNode, + endNodeIndex: endNodeIndex, + innerNodes: innerNodes, + match: matchLocation.text, + matchIndex: matchIndex + }); + + // replaceFn has to return the node that replaced the endNode + // and then we step back so we can continue from the end of the + // match: + atIndex -= (endNode.length - endNodeIndex); + startNode = null; + endNode = null; + innerNodes = []; + matchLocation = matches.shift(); + matchIndex++; + + if (!matchLocation) { + break; // no more matches + } + } else if ((!hiddenTextElementsMap[curNode.nodeName] || blockElementsMap[curNode.nodeName]) && curNode.firstChild) { + // Move down + curNode = curNode.firstChild; + continue; + } else if (curNode.nextSibling) { + // Move forward: + curNode = curNode.nextSibling; + continue; + } + + // Move forward or up: + while (true) { + if (curNode.nextSibling) { + curNode = curNode.nextSibling; + break; + } else if (curNode.parentNode !== node) { + curNode = curNode.parentNode; + } else { + break out; + } + } + } + } + + /** + * Generates the actual replaceFn which splits up text nodes + * and inserts the replacement element. + */ + function genReplacer(callback) { + function makeReplacementNode(fill, matchIndex) { + var match = matches[matchIndex]; + + if (!match.stencil) { + match.stencil = callback(match); + } + + var clone = match.stencil.cloneNode(false); + clone.setAttribute('data-mce-index', matchIndex); + + if (fill) { + clone.appendChild(dom.doc.createTextNode(fill)); + } + + return clone; + } + + return function(range) { + var before, after, parentNode, startNode = range.startNode, + endNode = range.endNode, matchIndex = range.matchIndex, + doc = dom.doc; + + if (startNode === endNode) { + var node = startNode; + + parentNode = node.parentNode; + if (range.startNodeIndex > 0) { + // Add "before" text node (before the match) + before = doc.createTextNode(node.data.substring(0, range.startNodeIndex)); + parentNode.insertBefore(before, node); + } + + // Create the replacement node: + var el = makeReplacementNode(range.match, matchIndex); + parentNode.insertBefore(el, node); + if (range.endNodeIndex < node.length) { + // Add "after" text node (after the match) + after = doc.createTextNode(node.data.substring(range.endNodeIndex)); + parentNode.insertBefore(after, node); + } + + node.parentNode.removeChild(node); + + return el; + } else { + // Replace startNode -> [innerNodes...] -> endNode (in that order) + before = doc.createTextNode(startNode.data.substring(0, range.startNodeIndex)); + after = doc.createTextNode(endNode.data.substring(range.endNodeIndex)); + var elA = makeReplacementNode(startNode.data.substring(range.startNodeIndex), matchIndex); + var innerEls = []; + + for (var i = 0, l = range.innerNodes.length; i < l; ++i) { + var innerNode = range.innerNodes[i]; + var innerEl = makeReplacementNode(innerNode.data, matchIndex); + innerNode.parentNode.replaceChild(innerEl, innerNode); + innerEls.push(innerEl); + } + + var elB = makeReplacementNode(endNode.data.substring(0, range.endNodeIndex), matchIndex); + + parentNode = startNode.parentNode; + parentNode.insertBefore(before, startNode); + parentNode.insertBefore(elA, startNode); + parentNode.removeChild(startNode); + + parentNode = endNode.parentNode; + parentNode.insertBefore(elB, endNode); + parentNode.insertBefore(after, endNode); + parentNode.removeChild(endNode); + + return elB; + } + }; + } + + function unwrapElement(element) { + var parentNode = element.parentNode; + parentNode.insertBefore(element.firstChild, element); + element.parentNode.removeChild(element); + } + + function getWrappersByIndex(index) { + var elements = node.getElementsByTagName('*'), wrappers = []; + + index = typeof(index) == "number" ? "" + index : null; + + for (var i = 0; i < elements.length; i++) { + var element = elements[i], dataIndex = element.getAttribute('data-mce-index'); + + if (dataIndex !== null && dataIndex.length) { + if (dataIndex === index || index === null) { + wrappers.push(element); + } + } + } + + return wrappers; + } + + /** + * Returns the index of a specific match object or -1 if it isn't found. + * + * @param {Match} match Text match object. + * @return {Number} Index of match or -1 if it isn't found. + */ + function indexOf(match) { + var i = matches.length; + while (i--) { + if (matches[i] === match) { + return i; + } + } + + return -1; + } + + /** + * Filters the matches. If the callback returns true it stays if not it gets removed. + * + * @param {Function} callback Callback to execute for each match. + * @return {DomTextMatcher} Current DomTextMatcher instance. + */ + function filter(callback) { + var filteredMatches = []; + + each(function(match, i) { + if (callback(match, i)) { + filteredMatches.push(match); + } + }); + + matches = filteredMatches; + + /*jshint validthis:true*/ + return this; + } + + /** + * Executes the specified callback for each match. + * + * @param {Function} callback Callback to execute for each match. + * @return {DomTextMatcher} Current DomTextMatcher instance. + */ + function each(callback) { + for (var i = 0, l = matches.length; i < l; i++) { + if (callback(matches[i], i) === false) { + break; + } + } + + /*jshint validthis:true*/ + return this; + } + + /** + * Wraps the current matches with nodes created by the specified callback. + * Multiple clones of these matches might occur on matches that are on multiple nodex. + * + * @param {Function} callback Callback to execute in order to create elements for matches. + * @return {DomTextMatcher} Current DomTextMatcher instance. + */ + function wrap(callback) { + if (matches.length) { + stepThroughMatches(node, matches, genReplacer(callback)); + } + + /*jshint validthis:true*/ + return this; + } + + /** + * Finds the specified regexp and adds them to the matches collection. + * + * @param {RegExp} regex Global regexp to search the current node by. + * @param {Object} [data] Optional custom data element for the match. + * @return {DomTextMatcher} Current DomTextMatcher instance. + */ + function find(regex, data) { + if (text && regex.global) { + while ((m = regex.exec(text))) { + matches.push(createMatch(m, data)); + } + } + + return this; + } + + /** + * Unwraps the specified match object or all matches if unspecified. + * + * @param {Object} [match] Optional match object. + * @return {DomTextMatcher} Current DomTextMatcher instance. + */ + function unwrap(match) { + var i, elements = getWrappersByIndex(match ? indexOf(match) : null); + + i = elements.length; + while (i--) { + unwrapElement(elements[i]); + } + + return this; + } + + /** + * Returns a match object by the specified DOM element. + * + * @param {DOMElement} element Element to return match object for. + * @return {Object} Match object for the specified element. + */ + function matchFromElement(element) { + return matches[element.getAttribute('data-mce-index')]; + } + + /** + * Returns a DOM element from the specified match element. This will be the first element if it's split + * on multiple nodes. + * + * @param {Object} match Match element to get first element of. + * @return {DOMElement} DOM element for the specified match object. + */ + function elementFromMatch(match) { + return getWrappersByIndex(indexOf(match))[0]; + } + + /** + * Adds match the specified range for example a grammar line. + * + * @param {Number} start Start offset. + * @param {Number} length Length of the text. + * @param {Object} data Custom data object for match. + * @return {DomTextMatcher} Current DomTextMatcher instance. + */ + function add(start, length, data) { + matches.push({ + start: start, + end: start + length, + text: text.substr(start, length), + data: data + }); + + return this; + } + + /** + * Returns a DOM range for the specified match. + * + * @param {Object} match Match object to get range for. + * @return {DOMRange} DOM Range for the specified match. + */ + function rangeFromMatch(match) { + var wrappers = getWrappersByIndex(indexOf(match)); + + var rng = editor.dom.createRng(); + rng.setStartBefore(wrappers[0]); + rng.setEndAfter(wrappers[wrappers.length - 1]); + + return rng; + } + + /** + * Replaces the specified match with the specified text. + * + * @param {Object} match Match object to replace. + * @param {String} text Text to replace the match with. + * @return {DOMRange} DOM range produced after the replace. + */ + function replace(match, text) { + var rng = rangeFromMatch(match); + + rng.deleteContents(); + + if (text.length > 0) { + rng.insertNode(editor.dom.doc.createTextNode(text)); + } + + return rng; + } + + /** + * Resets the DomTextMatcher instance. This will remove any wrapped nodes and remove any matches. + * + * @return {[type]} [description] + */ + function reset() { + matches.splice(0, matches.length); + unwrap(); + + return this; + } + + text = getText(node); + + return { + text: text, + matches: matches, + each: each, + filter: filter, + reset: reset, + matchFromElement: matchFromElement, + elementFromMatch: elementFromMatch, + find: find, + add: add, + wrap: wrap, + unwrap: unwrap, + replace: replace, + rangeFromMatch: rangeFromMatch, + indexOf: indexOf + }; + }; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/plugins/spellchecker/classes/Plugin.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/spellchecker/classes/Plugin.js new file mode 100755 index 00000000000..2fc99cf691c --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/plugins/spellchecker/classes/Plugin.js @@ -0,0 +1,343 @@ +/** + * Plugin.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*jshint camelcase:false */ + +/** + * This class contains all core logic for the spellchecker plugin. + * + * @class tinymce.spellcheckerplugin.Plugin + * @private + */ +define("tinymce/spellcheckerplugin/Plugin", [ + "tinymce/spellcheckerplugin/DomTextMatcher", + "tinymce/PluginManager", + "tinymce/util/Tools", + "tinymce/ui/Menu", + "tinymce/dom/DOMUtils", + "tinymce/util/JSONRequest", + "tinymce/util/URI" +], function(DomTextMatcher, PluginManager, Tools, Menu, DOMUtils, JSONRequest, URI) { + PluginManager.add('spellchecker', function(editor, url) { + var languageMenuItems, self = this, lastSuggestions, started, suggestionsMenu, settings = editor.settings; + + function getTextMatcher() { + if (!self.textMatcher) { + self.textMatcher = new DomTextMatcher(editor.getBody(), editor); + } + + return self.textMatcher; + } + + function buildMenuItems(listName, languageValues) { + var items = []; + + Tools.each(languageValues, function(languageValue) { + items.push({ + selectable: true, + text: languageValue.name, + data: languageValue.value + }); + }); + + return items; + } + + var languagesString = settings.spellchecker_languages || + 'English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr_FR,' + + 'German=de,Italian=it,Polish=pl,Portuguese=pt_BR,' + + 'Spanish=es,Swedish=sv'; + + languageMenuItems = buildMenuItems('Language', + Tools.map(languagesString.split(','), + function(lang_pair) { + var lang = lang_pair.split('='); + + return { + name: lang[0], + value: lang[1] + }; + } + ) + ); + + function isEmpty(obj) { + /*jshint unused:false*/ + /*eslint no-unused-vars:0 */ + for (var name in obj) { + return false; + } + + return true; + } + + function showSuggestions(match) { + var items = [], suggestions = lastSuggestions[match.text]; + + Tools.each(suggestions, function(suggestion) { + items.push({ + text: suggestion, + onclick: function() { + var rng = getTextMatcher().replace(match, suggestion); + rng.collapse(false); + editor.selection.setRng(rng); + checkIfFinished(); + } + }); + }); + + items.push.apply(items, [ + {text: '-'}, + + {text: 'Ignore', onclick: function() { + ignoreWord(match); + }}, + + {text: 'Ignore all', onclick: function() { + ignoreWord(match, true); + }}, + + {text: 'Finish', onclick: finish} + ]); + + // Render menu + suggestionsMenu = new Menu({ + items: items, + context: 'contextmenu', + onautohide: function(e) { + if (e.target.className.indexOf('spellchecker') != -1) { + e.preventDefault(); + } + }, + onhide: function() { + suggestionsMenu.remove(); + suggestionsMenu = null; + } + }); + + suggestionsMenu.renderTo(document.body); + + // Position menu + var matchNode = getTextMatcher().elementFromMatch(match); + var pos = DOMUtils.DOM.getPos(editor.getContentAreaContainer()); + var targetPos = editor.dom.getPos(matchNode); + var root = editor.dom.getRoot(); + + // Adjust targetPos for scrolling in the editor + if (root.nodeName == 'BODY') { + targetPos.x -= root.ownerDocument.documentElement.scrollLeft || root.scrollLeft; + targetPos.y -= root.ownerDocument.documentElement.scrollTop || root.scrollTop; + } else { + targetPos.x -= root.scrollLeft; + targetPos.y -= root.scrollTop; + } + + pos.x += targetPos.x; + pos.y += targetPos.y; + + suggestionsMenu.moveTo(pos.x, pos.y + matchNode.offsetHeight); + } + + function spellcheck() { + var words = [], uniqueWords = {}; + + if (started) { + finish(); + return; + } else { + finish(); + } + + started = true; + + function doneCallback(suggestions) { + editor.setProgressState(false); + + if (isEmpty(suggestions)) { + editor.windowManager.alert('No misspellings found'); + started = false; + return; + } + + lastSuggestions = suggestions; + + getTextMatcher().filter(function(match) { + return !!suggestions[match.text]; + }).wrap(function() { + return editor.dom.create('span', { + "class": 'mce-spellchecker-word', + "data-mce-bogus": 1 + }); + }); + + editor.fire('SpellcheckStart'); + } + + // Regexp for finding word specific characters this will split words by + // spaces, quotes, copy right characters etc. It's escaped with unicode characters + // to make it easier to output scripts on servers using different encodings + // so if you add any characters outside the 128 byte range make sure to escape it + var nonWordSeparatorCharacters = editor.getParam('spellchecker_wordchar_pattern') || new RegExp("[^" + + "\\s!\"#$%&()*+,-./:;<=>?@[\\]^_{|}`" + + "\u00a7\u00a9\u00ab\u00ae\u00b1\u00b6\u00b7\u00b8\u00bb" + + "\u00bc\u00bd\u00be\u00bf\u00d7\u00f7\u00a4\u201d\u201c\u201e" + + "]+", "g"); + + // Find all words and make an unique words array + getTextMatcher().find(nonWordSeparatorCharacters).each(function(match) { + var word = match.text; + + // TODO: Fix so it remembers correctly spelled words + if (!uniqueWords[word]) { + // Ignore numbers and single character words + if (/^\d+$/.test(word) || word.length == 1) { + return; + } + + words.push(word); + uniqueWords[word] = true; + } + }); + + function defaultSpellcheckCallback(method, words, doneCallback) { + JSONRequest.sendRPC({ + url: new URI(url).toAbsolute(settings.spellchecker_rpc_url), + method: method, + params: { + lang: settings.spellchecker_language || "en", + words: words + }, + success: function(result) { + doneCallback(result); + }, + error: function(error, xhr) { + if (error == "JSON Parse error.") { + error = "Non JSON response:" + xhr.responseText; + } else { + error = "Error: " + error; + } + + editor.windowManager.alert(error); + editor.setProgressState(false); + finish(); + } + }); + } + + editor.setProgressState(true); + + var spellCheckCallback = settings.spellchecker_callback || defaultSpellcheckCallback; + spellCheckCallback("spellcheck", words, doneCallback); + + editor.focus(); + } + + function checkIfFinished() { + if (!editor.dom.select('span.mce-spellchecker-word').length) { + finish(); + } + } + + function ignoreWord(wordMatch, all) { + editor.selection.collapse(); + + if (all) { + getTextMatcher().each(function(match) { + if (match.text == wordMatch.text) { + getTextMatcher().unwrap(match); + } + }); + } else { + getTextMatcher().unwrap(wordMatch); + } + + checkIfFinished(); + } + + function finish() { + getTextMatcher().reset(); + self.textMatcher = null; + + if (started) { + started = false; + editor.fire('SpellcheckEnd'); + } + } + + editor.on('click', function(e) { + if (e.target.className == "mce-spellchecker-word") { + e.preventDefault(); + + var match = getTextMatcher().matchFromElement(e.target); + editor.selection.setRng(getTextMatcher().rangeFromMatch(match)); + + showSuggestions(match); + } + }); + + editor.addMenuItem('spellchecker', { + text: 'Spellcheck', + context: 'tools', + onclick: spellcheck, + selectable: true, + onPostRender: function() { + var self = this; + + editor.on('SpellcheckStart SpellcheckEnd', function() { + self.active(started); + }); + } + }); + + function updateSelection(e) { + var selectedLanguage = settings.spellchecker_language; + + e.control.items().each(function(ctrl) { + ctrl.active(ctrl.settings.data === selectedLanguage); + }); + } + + var buttonArgs = { + tooltip: 'Spellcheck', + onclick: spellcheck, + onPostRender: function() { + var self = this; + + editor.on('SpellcheckStart SpellcheckEnd', function() { + self.active(started); + }); + } + }; + + if (languageMenuItems.length > 1) { + buttonArgs.type = 'splitbutton'; + buttonArgs.menu = languageMenuItems; + buttonArgs.onshow = updateSelection; + buttonArgs.onselect = function(e) { + settings.spellchecker_language = e.control.settings.data; + }; + } + + editor.addButton('spellchecker', buttonArgs); + editor.addCommand('mceSpellCheck', spellcheck); + + editor.on('remove', function() { + if (suggestionsMenu) { + suggestionsMenu.remove(); + suggestionsMenu = null; + } + }); + + this.getTextMatcher = getTextMatcher; + + // Set default spellchecker language if it's not specified + settings.spellchecker_language = settings.spellchecker_language || settings.language || 'en'; + }); +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/plugins/spellchecker/plugin.dev.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/spellchecker/plugin.dev.js new file mode 100755 index 00000000000..60bd6c7ce4a --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/plugins/spellchecker/plugin.dev.js @@ -0,0 +1,117 @@ +/** + * Inline development version. Only to be used while developing since it uses document.write to load scripts. + */ + +/*jshint smarttabs:true, undef:true, latedef:true, curly:true, bitwise:true, camelcase:true */ +/*globals $code */ + +(function(exports) { + "use strict"; + + var html = "", baseDir; + var modules = {}, exposedModules = [], moduleCount = 0; + + var scripts = document.getElementsByTagName('script'); + for (var i = 0; i < scripts.length; i++) { + var src = scripts[i].src; + + if (src.indexOf('/plugin.dev.js') != -1) { + baseDir = src.substring(0, src.lastIndexOf('/')); + } + } + + function require(ids, callback) { + var module, defs = []; + + for (var i = 0; i < ids.length; ++i) { + module = modules[ids[i]] || resolve(ids[i]); + if (!module) { + throw 'module definition dependecy not found: ' + ids[i]; + } + + defs.push(module); + } + + callback.apply(null, defs); + } + + function resolve(id) { + var target = exports; + var fragments = id.split(/[.\/]/); + + for (var fi = 0; fi < fragments.length; ++fi) { + if (!target[fragments[fi]]) { + return; + } + + target = target[fragments[fi]]; + } + + return target; + } + + function register(id) { + var target = exports; + var fragments = id.split(/[.\/]/); + + for (var fi = 0; fi < fragments.length - 1; ++fi) { + if (target[fragments[fi]] === undefined) { + target[fragments[fi]] = {}; + } + + target = target[fragments[fi]]; + } + + target[fragments[fragments.length - 1]] = modules[id]; + } + + function define(id, dependencies, definition) { + if (typeof id !== 'string') { + throw 'invalid module definition, module id must be defined and be a string'; + } + + if (dependencies === undefined) { + throw 'invalid module definition, dependencies must be specified'; + } + + if (definition === undefined) { + throw 'invalid module definition, definition function must be specified'; + } + + require(dependencies, function() { + modules[id] = definition.apply(null, arguments); + }); + + if (--moduleCount === 0) { + for (var i = 0; i < exposedModules.length; i++) { + register(exposedModules[i]); + } + } + } + + function expose(ids) { + exposedModules = ids; + } + + function writeScripts() { + document.write(html); + } + + function load(path) { + html += '<script type="text/javascript" src="' + baseDir + '/' + path + '"></script>\n'; + moduleCount++; + } + + // Expose globally + exports.define = define; + exports.require = require; + + expose(["tinymce/spellcheckerplugin/DomTextMatcher","tinymce/spellcheckerplugin/Plugin"]); + + load('classes/DomTextMatcher.js'); + load('classes/Plugin.js'); + + writeScripts(); +})(this); + +// $hash: 251b042e64f9ee017e1974a6737a818f \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/plugins/spellchecker/plugin.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/spellchecker/plugin.js new file mode 100755 index 00000000000..01061c1b365 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/plugins/spellchecker/plugin.js @@ -0,0 +1,903 @@ +/** + * Compiled inline version. (Library mode) + */ + +/*jshint smarttabs:true, undef:true, latedef:true, curly:true, bitwise:true, camelcase:true */ +/*globals $code */ + +(function(exports, undefined) { + "use strict"; + + var modules = {}; + + function require(ids, callback) { + var module, defs = []; + + for (var i = 0; i < ids.length; ++i) { + module = modules[ids[i]] || resolve(ids[i]); + if (!module) { + throw 'module definition dependecy not found: ' + ids[i]; + } + + defs.push(module); + } + + callback.apply(null, defs); + } + + function define(id, dependencies, definition) { + if (typeof id !== 'string') { + throw 'invalid module definition, module id must be defined and be a string'; + } + + if (dependencies === undefined) { + throw 'invalid module definition, dependencies must be specified'; + } + + if (definition === undefined) { + throw 'invalid module definition, definition function must be specified'; + } + + require(dependencies, function() { + modules[id] = definition.apply(null, arguments); + }); + } + + function defined(id) { + return !!modules[id]; + } + + function resolve(id) { + var target = exports; + var fragments = id.split(/[.\/]/); + + for (var fi = 0; fi < fragments.length; ++fi) { + if (!target[fragments[fi]]) { + return; + } + + target = target[fragments[fi]]; + } + + return target; + } + + function expose(ids) { + for (var i = 0; i < ids.length; i++) { + var target = exports; + var id = ids[i]; + var fragments = id.split(/[.\/]/); + + for (var fi = 0; fi < fragments.length - 1; ++fi) { + if (target[fragments[fi]] === undefined) { + target[fragments[fi]] = {}; + } + + target = target[fragments[fi]]; + } + + target[fragments[fragments.length - 1]] = modules[id]; + } + } + +// Included from: js/tinymce/plugins/spellchecker/classes/DomTextMatcher.js + +/** + * DomTextMatcher.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*eslint no-labels:0, no-constant-condition: 0 */ + +/** + * This class logic for filtering text and matching words. + * + * @class tinymce.spellcheckerplugin.TextFilter + * @private + */ +define("tinymce/spellcheckerplugin/DomTextMatcher", [], function() { + // Based on work developed by: James Padolsey http://james.padolsey.com + // released under UNLICENSE that is compatible with LGPL + // TODO: Handle contentEditable edgecase: + // <p>text<span contentEditable="false">text<span contentEditable="true">text</span>text</span>text</p> + return function(node, editor) { + var m, matches = [], text, dom = editor.dom; + var blockElementsMap, hiddenTextElementsMap, shortEndedElementsMap; + + blockElementsMap = editor.schema.getBlockElements(); // H1-H6, P, TD etc + hiddenTextElementsMap = editor.schema.getWhiteSpaceElements(); // TEXTAREA, PRE, STYLE, SCRIPT + shortEndedElementsMap = editor.schema.getShortEndedElements(); // BR, IMG, INPUT + + function createMatch(m, data) { + if (!m[0]) { + throw 'findAndReplaceDOMText cannot handle zero-length matches'; + } + + return { + start: m.index, + end: m.index + m[0].length, + text: m[0], + data: data + }; + } + + function getText(node) { + var txt; + + if (node.nodeType === 3) { + return node.data; + } + + if (hiddenTextElementsMap[node.nodeName] && !blockElementsMap[node.nodeName]) { + return ''; + } + + txt = ''; + + if (blockElementsMap[node.nodeName] || shortEndedElementsMap[node.nodeName]) { + txt += '\n'; + } + + if ((node = node.firstChild)) { + do { + txt += getText(node); + } while ((node = node.nextSibling)); + } + + return txt; + } + + function stepThroughMatches(node, matches, replaceFn) { + var startNode, endNode, startNodeIndex, + endNodeIndex, innerNodes = [], atIndex = 0, curNode = node, + matchLocation, matchIndex = 0; + + matches = matches.slice(0); + matches.sort(function(a, b) { + return a.start - b.start; + }); + + matchLocation = matches.shift(); + + out: while (true) { + if (blockElementsMap[curNode.nodeName] || shortEndedElementsMap[curNode.nodeName]) { + atIndex++; + } + + if (curNode.nodeType === 3) { + if (!endNode && curNode.length + atIndex >= matchLocation.end) { + // We've found the ending + endNode = curNode; + endNodeIndex = matchLocation.end - atIndex; + } else if (startNode) { + // Intersecting node + innerNodes.push(curNode); + } + + if (!startNode && curNode.length + atIndex > matchLocation.start) { + // We've found the match start + startNode = curNode; + startNodeIndex = matchLocation.start - atIndex; + } + + atIndex += curNode.length; + } + + if (startNode && endNode) { + curNode = replaceFn({ + startNode: startNode, + startNodeIndex: startNodeIndex, + endNode: endNode, + endNodeIndex: endNodeIndex, + innerNodes: innerNodes, + match: matchLocation.text, + matchIndex: matchIndex + }); + + // replaceFn has to return the node that replaced the endNode + // and then we step back so we can continue from the end of the + // match: + atIndex -= (endNode.length - endNodeIndex); + startNode = null; + endNode = null; + innerNodes = []; + matchLocation = matches.shift(); + matchIndex++; + + if (!matchLocation) { + break; // no more matches + } + } else if ((!hiddenTextElementsMap[curNode.nodeName] || blockElementsMap[curNode.nodeName]) && curNode.firstChild) { + // Move down + curNode = curNode.firstChild; + continue; + } else if (curNode.nextSibling) { + // Move forward: + curNode = curNode.nextSibling; + continue; + } + + // Move forward or up: + while (true) { + if (curNode.nextSibling) { + curNode = curNode.nextSibling; + break; + } else if (curNode.parentNode !== node) { + curNode = curNode.parentNode; + } else { + break out; + } + } + } + } + + /** + * Generates the actual replaceFn which splits up text nodes + * and inserts the replacement element. + */ + function genReplacer(callback) { + function makeReplacementNode(fill, matchIndex) { + var match = matches[matchIndex]; + + if (!match.stencil) { + match.stencil = callback(match); + } + + var clone = match.stencil.cloneNode(false); + clone.setAttribute('data-mce-index', matchIndex); + + if (fill) { + clone.appendChild(dom.doc.createTextNode(fill)); + } + + return clone; + } + + return function(range) { + var before, after, parentNode, startNode = range.startNode, + endNode = range.endNode, matchIndex = range.matchIndex, + doc = dom.doc; + + if (startNode === endNode) { + var node = startNode; + + parentNode = node.parentNode; + if (range.startNodeIndex > 0) { + // Add "before" text node (before the match) + before = doc.createTextNode(node.data.substring(0, range.startNodeIndex)); + parentNode.insertBefore(before, node); + } + + // Create the replacement node: + var el = makeReplacementNode(range.match, matchIndex); + parentNode.insertBefore(el, node); + if (range.endNodeIndex < node.length) { + // Add "after" text node (after the match) + after = doc.createTextNode(node.data.substring(range.endNodeIndex)); + parentNode.insertBefore(after, node); + } + + node.parentNode.removeChild(node); + + return el; + } else { + // Replace startNode -> [innerNodes...] -> endNode (in that order) + before = doc.createTextNode(startNode.data.substring(0, range.startNodeIndex)); + after = doc.createTextNode(endNode.data.substring(range.endNodeIndex)); + var elA = makeReplacementNode(startNode.data.substring(range.startNodeIndex), matchIndex); + var innerEls = []; + + for (var i = 0, l = range.innerNodes.length; i < l; ++i) { + var innerNode = range.innerNodes[i]; + var innerEl = makeReplacementNode(innerNode.data, matchIndex); + innerNode.parentNode.replaceChild(innerEl, innerNode); + innerEls.push(innerEl); + } + + var elB = makeReplacementNode(endNode.data.substring(0, range.endNodeIndex), matchIndex); + + parentNode = startNode.parentNode; + parentNode.insertBefore(before, startNode); + parentNode.insertBefore(elA, startNode); + parentNode.removeChild(startNode); + + parentNode = endNode.parentNode; + parentNode.insertBefore(elB, endNode); + parentNode.insertBefore(after, endNode); + parentNode.removeChild(endNode); + + return elB; + } + }; + } + + function unwrapElement(element) { + var parentNode = element.parentNode; + parentNode.insertBefore(element.firstChild, element); + element.parentNode.removeChild(element); + } + + function getWrappersByIndex(index) { + var elements = node.getElementsByTagName('*'), wrappers = []; + + index = typeof(index) == "number" ? "" + index : null; + + for (var i = 0; i < elements.length; i++) { + var element = elements[i], dataIndex = element.getAttribute('data-mce-index'); + + if (dataIndex !== null && dataIndex.length) { + if (dataIndex === index || index === null) { + wrappers.push(element); + } + } + } + + return wrappers; + } + + /** + * Returns the index of a specific match object or -1 if it isn't found. + * + * @param {Match} match Text match object. + * @return {Number} Index of match or -1 if it isn't found. + */ + function indexOf(match) { + var i = matches.length; + while (i--) { + if (matches[i] === match) { + return i; + } + } + + return -1; + } + + /** + * Filters the matches. If the callback returns true it stays if not it gets removed. + * + * @param {Function} callback Callback to execute for each match. + * @return {DomTextMatcher} Current DomTextMatcher instance. + */ + function filter(callback) { + var filteredMatches = []; + + each(function(match, i) { + if (callback(match, i)) { + filteredMatches.push(match); + } + }); + + matches = filteredMatches; + + /*jshint validthis:true*/ + return this; + } + + /** + * Executes the specified callback for each match. + * + * @param {Function} callback Callback to execute for each match. + * @return {DomTextMatcher} Current DomTextMatcher instance. + */ + function each(callback) { + for (var i = 0, l = matches.length; i < l; i++) { + if (callback(matches[i], i) === false) { + break; + } + } + + /*jshint validthis:true*/ + return this; + } + + /** + * Wraps the current matches with nodes created by the specified callback. + * Multiple clones of these matches might occur on matches that are on multiple nodex. + * + * @param {Function} callback Callback to execute in order to create elements for matches. + * @return {DomTextMatcher} Current DomTextMatcher instance. + */ + function wrap(callback) { + if (matches.length) { + stepThroughMatches(node, matches, genReplacer(callback)); + } + + /*jshint validthis:true*/ + return this; + } + + /** + * Finds the specified regexp and adds them to the matches collection. + * + * @param {RegExp} regex Global regexp to search the current node by. + * @param {Object} [data] Optional custom data element for the match. + * @return {DomTextMatcher} Current DomTextMatcher instance. + */ + function find(regex, data) { + if (text && regex.global) { + while ((m = regex.exec(text))) { + matches.push(createMatch(m, data)); + } + } + + return this; + } + + /** + * Unwraps the specified match object or all matches if unspecified. + * + * @param {Object} [match] Optional match object. + * @return {DomTextMatcher} Current DomTextMatcher instance. + */ + function unwrap(match) { + var i, elements = getWrappersByIndex(match ? indexOf(match) : null); + + i = elements.length; + while (i--) { + unwrapElement(elements[i]); + } + + return this; + } + + /** + * Returns a match object by the specified DOM element. + * + * @param {DOMElement} element Element to return match object for. + * @return {Object} Match object for the specified element. + */ + function matchFromElement(element) { + return matches[element.getAttribute('data-mce-index')]; + } + + /** + * Returns a DOM element from the specified match element. This will be the first element if it's split + * on multiple nodes. + * + * @param {Object} match Match element to get first element of. + * @return {DOMElement} DOM element for the specified match object. + */ + function elementFromMatch(match) { + return getWrappersByIndex(indexOf(match))[0]; + } + + /** + * Adds match the specified range for example a grammar line. + * + * @param {Number} start Start offset. + * @param {Number} length Length of the text. + * @param {Object} data Custom data object for match. + * @return {DomTextMatcher} Current DomTextMatcher instance. + */ + function add(start, length, data) { + matches.push({ + start: start, + end: start + length, + text: text.substr(start, length), + data: data + }); + + return this; + } + + /** + * Returns a DOM range for the specified match. + * + * @param {Object} match Match object to get range for. + * @return {DOMRange} DOM Range for the specified match. + */ + function rangeFromMatch(match) { + var wrappers = getWrappersByIndex(indexOf(match)); + + var rng = editor.dom.createRng(); + rng.setStartBefore(wrappers[0]); + rng.setEndAfter(wrappers[wrappers.length - 1]); + + return rng; + } + + /** + * Replaces the specified match with the specified text. + * + * @param {Object} match Match object to replace. + * @param {String} text Text to replace the match with. + * @return {DOMRange} DOM range produced after the replace. + */ + function replace(match, text) { + var rng = rangeFromMatch(match); + + rng.deleteContents(); + + if (text.length > 0) { + rng.insertNode(editor.dom.doc.createTextNode(text)); + } + + return rng; + } + + /** + * Resets the DomTextMatcher instance. This will remove any wrapped nodes and remove any matches. + * + * @return {[type]} [description] + */ + function reset() { + matches.splice(0, matches.length); + unwrap(); + + return this; + } + + text = getText(node); + + return { + text: text, + matches: matches, + each: each, + filter: filter, + reset: reset, + matchFromElement: matchFromElement, + elementFromMatch: elementFromMatch, + find: find, + add: add, + wrap: wrap, + unwrap: unwrap, + replace: replace, + rangeFromMatch: rangeFromMatch, + indexOf: indexOf + }; + }; +}); + +// Included from: js/tinymce/plugins/spellchecker/classes/Plugin.js + +/** + * Plugin.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*jshint camelcase:false */ + +/** + * This class contains all core logic for the spellchecker plugin. + * + * @class tinymce.spellcheckerplugin.Plugin + * @private + */ +define("tinymce/spellcheckerplugin/Plugin", [ + "tinymce/spellcheckerplugin/DomTextMatcher", + "tinymce/PluginManager", + "tinymce/util/Tools", + "tinymce/ui/Menu", + "tinymce/dom/DOMUtils", + "tinymce/util/JSONRequest", + "tinymce/util/URI" +], function(DomTextMatcher, PluginManager, Tools, Menu, DOMUtils, JSONRequest, URI) { + PluginManager.add('spellchecker', function(editor, url) { + var languageMenuItems, self = this, lastSuggestions, started, suggestionsMenu, settings = editor.settings; + + function getTextMatcher() { + if (!self.textMatcher) { + self.textMatcher = new DomTextMatcher(editor.getBody(), editor); + } + + return self.textMatcher; + } + + function buildMenuItems(listName, languageValues) { + var items = []; + + Tools.each(languageValues, function(languageValue) { + items.push({ + selectable: true, + text: languageValue.name, + data: languageValue.value + }); + }); + + return items; + } + + var languagesString = settings.spellchecker_languages || + 'English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr_FR,' + + 'German=de,Italian=it,Polish=pl,Portuguese=pt_BR,' + + 'Spanish=es,Swedish=sv'; + + languageMenuItems = buildMenuItems('Language', + Tools.map(languagesString.split(','), + function(lang_pair) { + var lang = lang_pair.split('='); + + return { + name: lang[0], + value: lang[1] + }; + } + ) + ); + + function isEmpty(obj) { + /*jshint unused:false*/ + /*eslint no-unused-vars:0 */ + for (var name in obj) { + return false; + } + + return true; + } + + function showSuggestions(match) { + var items = [], suggestions = lastSuggestions[match.text]; + + Tools.each(suggestions, function(suggestion) { + items.push({ + text: suggestion, + onclick: function() { + var rng = getTextMatcher().replace(match, suggestion); + rng.collapse(false); + editor.selection.setRng(rng); + checkIfFinished(); + } + }); + }); + + items.push.apply(items, [ + {text: '-'}, + + {text: 'Ignore', onclick: function() { + ignoreWord(match); + }}, + + {text: 'Ignore all', onclick: function() { + ignoreWord(match, true); + }}, + + {text: 'Finish', onclick: finish} + ]); + + // Render menu + suggestionsMenu = new Menu({ + items: items, + context: 'contextmenu', + onautohide: function(e) { + if (e.target.className.indexOf('spellchecker') != -1) { + e.preventDefault(); + } + }, + onhide: function() { + suggestionsMenu.remove(); + suggestionsMenu = null; + } + }); + + suggestionsMenu.renderTo(document.body); + + // Position menu + var matchNode = getTextMatcher().elementFromMatch(match); + var pos = DOMUtils.DOM.getPos(editor.getContentAreaContainer()); + var targetPos = editor.dom.getPos(matchNode); + var root = editor.dom.getRoot(); + + // Adjust targetPos for scrolling in the editor + if (root.nodeName == 'BODY') { + targetPos.x -= root.ownerDocument.documentElement.scrollLeft || root.scrollLeft; + targetPos.y -= root.ownerDocument.documentElement.scrollTop || root.scrollTop; + } else { + targetPos.x -= root.scrollLeft; + targetPos.y -= root.scrollTop; + } + + pos.x += targetPos.x; + pos.y += targetPos.y; + + suggestionsMenu.moveTo(pos.x, pos.y + matchNode.offsetHeight); + } + + function spellcheck() { + var words = [], uniqueWords = {}; + + if (started) { + finish(); + return; + } else { + finish(); + } + + started = true; + + function doneCallback(suggestions) { + editor.setProgressState(false); + + if (isEmpty(suggestions)) { + editor.windowManager.alert('No misspellings found'); + started = false; + return; + } + + lastSuggestions = suggestions; + + getTextMatcher().filter(function(match) { + return !!suggestions[match.text]; + }).wrap(function() { + return editor.dom.create('span', { + "class": 'mce-spellchecker-word', + "data-mce-bogus": 1 + }); + }); + + editor.fire('SpellcheckStart'); + } + + // Regexp for finding word specific characters this will split words by + // spaces, quotes, copy right characters etc. It's escaped with unicode characters + // to make it easier to output scripts on servers using different encodings + // so if you add any characters outside the 128 byte range make sure to escape it + var nonWordSeparatorCharacters = editor.getParam('spellchecker_wordchar_pattern') || new RegExp("[^" + + "\\s!\"#$%&()*+,-./:;<=>?@[\\]^_{|}`" + + "\u00a7\u00a9\u00ab\u00ae\u00b1\u00b6\u00b7\u00b8\u00bb" + + "\u00bc\u00bd\u00be\u00bf\u00d7\u00f7\u00a4\u201d\u201c\u201e" + + "]+", "g"); + + // Find all words and make an unique words array + getTextMatcher().find(nonWordSeparatorCharacters).each(function(match) { + var word = match.text; + + // TODO: Fix so it remembers correctly spelled words + if (!uniqueWords[word]) { + // Ignore numbers and single character words + if (/^\d+$/.test(word) || word.length == 1) { + return; + } + + words.push(word); + uniqueWords[word] = true; + } + }); + + function defaultSpellcheckCallback(method, words, doneCallback) { + JSONRequest.sendRPC({ + url: new URI(url).toAbsolute(settings.spellchecker_rpc_url), + method: method, + params: { + lang: settings.spellchecker_language || "en", + words: words + }, + success: function(result) { + doneCallback(result); + }, + error: function(error, xhr) { + if (error == "JSON Parse error.") { + error = "Non JSON response:" + xhr.responseText; + } else { + error = "Error: " + error; + } + + editor.windowManager.alert(error); + editor.setProgressState(false); + finish(); + } + }); + } + + editor.setProgressState(true); + + var spellCheckCallback = settings.spellchecker_callback || defaultSpellcheckCallback; + spellCheckCallback("spellcheck", words, doneCallback); + + editor.focus(); + } + + function checkIfFinished() { + if (!editor.dom.select('span.mce-spellchecker-word').length) { + finish(); + } + } + + function ignoreWord(wordMatch, all) { + editor.selection.collapse(); + + if (all) { + getTextMatcher().each(function(match) { + if (match.text == wordMatch.text) { + getTextMatcher().unwrap(match); + } + }); + } else { + getTextMatcher().unwrap(wordMatch); + } + + checkIfFinished(); + } + + function finish() { + getTextMatcher().reset(); + self.textMatcher = null; + + if (started) { + started = false; + editor.fire('SpellcheckEnd'); + } + } + + editor.on('click', function(e) { + if (e.target.className == "mce-spellchecker-word") { + e.preventDefault(); + + var match = getTextMatcher().matchFromElement(e.target); + editor.selection.setRng(getTextMatcher().rangeFromMatch(match)); + + showSuggestions(match); + } + }); + + editor.addMenuItem('spellchecker', { + text: 'Spellcheck', + context: 'tools', + onclick: spellcheck, + selectable: true, + onPostRender: function() { + var self = this; + + editor.on('SpellcheckStart SpellcheckEnd', function() { + self.active(started); + }); + } + }); + + function updateSelection(e) { + var selectedLanguage = settings.spellchecker_language; + + e.control.items().each(function(ctrl) { + ctrl.active(ctrl.settings.data === selectedLanguage); + }); + } + + var buttonArgs = { + tooltip: 'Spellcheck', + onclick: spellcheck, + onPostRender: function() { + var self = this; + + editor.on('SpellcheckStart SpellcheckEnd', function() { + self.active(started); + }); + } + }; + + if (languageMenuItems.length > 1) { + buttonArgs.type = 'splitbutton'; + buttonArgs.menu = languageMenuItems; + buttonArgs.onshow = updateSelection; + buttonArgs.onselect = function(e) { + settings.spellchecker_language = e.control.settings.data; + }; + } + + editor.addButton('spellchecker', buttonArgs); + editor.addCommand('mceSpellCheck', spellcheck); + + editor.on('remove', function() { + if (suggestionsMenu) { + suggestionsMenu.remove(); + suggestionsMenu = null; + } + }); + + this.getTextMatcher = getTextMatcher; + + // Set default spellchecker language if it's not specified + settings.spellchecker_language = settings.spellchecker_language || settings.language || 'en'; + }); +}); + +expose(["tinymce/spellcheckerplugin/DomTextMatcher","tinymce/spellcheckerplugin/Plugin"]); +})(this); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/plugins/spellchecker/plugin.min.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/spellchecker/plugin.min.js new file mode 100755 index 00000000000..0a0e1aa8cd6 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/plugins/spellchecker/plugin.min.js @@ -0,0 +1 @@ +!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i<e.length;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){for(var r=0;r<n.length;r++){for(var i=e,o=n[r],a=o.split(/[.\/]/),l=0;l<a.length-1;++l)i[a[l]]===t&&(i[a[l]]={}),i=i[a[l]];i[a[a.length-1]]=s[o]}}var s={},l="tinymce/spellcheckerplugin/DomTextMatcher",c="tinymce/spellcheckerplugin/Plugin",d="tinymce/PluginManager",u="tinymce/util/Tools",f="tinymce/ui/Menu",p="tinymce/dom/DOMUtils",m="tinymce/util/JSONRequest",h="tinymce/util/URI";r(l,[],function(){return function(e,t){function n(e,t){if(!e[0])throw"findAndReplaceDOMText cannot handle zero-length matches";return{start:e.index,end:e.index+e[0].length,text:e[0],data:t}}function r(e){var t;if(3===e.nodeType)return e.data;if(E[e.nodeName]&&!N[e.nodeName])return"";if(t="",(N[e.nodeName]||k[e.nodeName])&&(t+="\n"),e=e.firstChild)do t+=r(e);while(e=e.nextSibling);return t}function i(e,t,n){var r,i,o,a,s=[],l=0,c=e,d,u=0;t=t.slice(0),t.sort(function(e,t){return e.start-t.start}),d=t.shift();e:for(;;){if((N[c.nodeName]||k[c.nodeName])&&l++,3===c.nodeType&&(!i&&c.length+l>=d.end?(i=c,a=d.end-l):r&&s.push(c),!r&&c.length+l>d.start&&(r=c,o=d.start-l),l+=c.length),r&&i){if(c=n({startNode:r,startNodeIndex:o,endNode:i,endNodeIndex:a,innerNodes:s,match:d.text,matchIndex:u}),l-=i.length-a,r=null,i=null,s=[],d=t.shift(),u++,!d)break}else{if((!E[c.nodeName]||N[c.nodeName])&&c.firstChild){c=c.firstChild;continue}if(c.nextSibling){c=c.nextSibling;continue}}for(;;){if(c.nextSibling){c=c.nextSibling;break}if(c.parentNode===e)break e;c=c.parentNode}}}function o(e){function t(t,n){var r=x[n];r.stencil||(r.stencil=e(r));var i=r.stencil.cloneNode(!1);return i.setAttribute("data-mce-index",n),t&&i.appendChild(_.doc.createTextNode(t)),i}return function(e){var n,r,i,o=e.startNode,a=e.endNode,s=e.matchIndex,l=_.doc;if(o===a){var c=o;i=c.parentNode,e.startNodeIndex>0&&(n=l.createTextNode(c.data.substring(0,e.startNodeIndex)),i.insertBefore(n,c));var d=t(e.match,s);return i.insertBefore(d,c),e.endNodeIndex<c.length&&(r=l.createTextNode(c.data.substring(e.endNodeIndex)),i.insertBefore(r,c)),c.parentNode.removeChild(c),d}n=l.createTextNode(o.data.substring(0,e.startNodeIndex)),r=l.createTextNode(a.data.substring(e.endNodeIndex));for(var u=t(o.data.substring(e.startNodeIndex),s),f=[],p=0,m=e.innerNodes.length;m>p;++p){var h=e.innerNodes[p],g=t(h.data,s);h.parentNode.replaceChild(g,h),f.push(g)}var v=t(a.data.substring(0,e.endNodeIndex),s);return i=o.parentNode,i.insertBefore(n,o),i.insertBefore(u,o),i.removeChild(o),i=a.parentNode,i.insertBefore(v,a),i.insertBefore(r,a),i.removeChild(a),v}}function a(e){var t=e.parentNode;t.insertBefore(e.firstChild,e),e.parentNode.removeChild(e)}function s(t){var n=e.getElementsByTagName("*"),r=[];t="number"==typeof t?""+t:null;for(var i=0;i<n.length;i++){var o=n[i],a=o.getAttribute("data-mce-index");null!==a&&a.length&&(a===t||null===t)&&r.push(o)}return r}function l(e){for(var t=x.length;t--;)if(x[t]===e)return t;return-1}function c(e){var t=[];return d(function(n,r){e(n,r)&&t.push(n)}),x=t,this}function d(e){for(var t=0,n=x.length;n>t&&e(x[t],t)!==!1;t++);return this}function u(t){return x.length&&i(e,x,o(t)),this}function f(e,t){if(w&&e.global)for(;C=e.exec(w);)x.push(n(C,t));return this}function p(e){var t,n=s(e?l(e):null);for(t=n.length;t--;)a(n[t]);return this}function m(e){return x[e.getAttribute("data-mce-index")]}function h(e){return s(l(e))[0]}function g(e,t,n){return x.push({start:e,end:e+t,text:w.substr(e,t),data:n}),this}function v(e){var n=s(l(e)),r=t.dom.createRng();return r.setStartBefore(n[0]),r.setEndAfter(n[n.length-1]),r}function y(e,n){var r=v(e);return r.deleteContents(),n.length>0&&r.insertNode(t.dom.doc.createTextNode(n)),r}function b(){return x.splice(0,x.length),p(),this}var C,x=[],w,_=t.dom,N,E,k;return N=t.schema.getBlockElements(),E=t.schema.getWhiteSpaceElements(),k=t.schema.getShortEndedElements(),w=r(e),{text:w,matches:x,each:d,filter:c,reset:b,matchFromElement:m,elementFromMatch:h,find:f,add:g,wrap:u,unwrap:p,replace:y,rangeFromMatch:v,indexOf:l}}}),r(c,[l,d,u,f,p,m,h],function(e,t,n,r,i,o,a){t.add("spellchecker",function(t,s){function l(){return y.textMatcher||(y.textMatcher=new e(t.getBody(),t)),y.textMatcher}function c(e,t){var r=[];return n.each(t,function(e){r.push({selectable:!0,text:e.name,data:e.value})}),r}function d(e){for(var t in e)return!1;return!0}function u(e){var o=[],a=b[e.text];n.each(a,function(n){o.push({text:n,onclick:function(){var r=l().replace(e,n);r.collapse(!1),t.selection.setRng(r),p()}})}),o.push.apply(o,[{text:"-"},{text:"Ignore",onclick:function(){m(e)}},{text:"Ignore all",onclick:function(){m(e,!0)}},{text:"Finish",onclick:h}]),x=new r({items:o,context:"contextmenu",onautohide:function(e){-1!=e.target.className.indexOf("spellchecker")&&e.preventDefault()},onhide:function(){x.remove(),x=null}}),x.renderTo(document.body);var s=l().elementFromMatch(e),c=i.DOM.getPos(t.getContentAreaContainer()),d=t.dom.getPos(s),u=t.dom.getRoot();"BODY"==u.nodeName?(d.x-=u.ownerDocument.documentElement.scrollLeft||u.scrollLeft,d.y-=u.ownerDocument.documentElement.scrollTop||u.scrollTop):(d.x-=u.scrollLeft,d.y-=u.scrollTop),c.x+=d.x,c.y+=d.y,x.moveTo(c.x,c.y+s.offsetHeight)}function f(){function e(e){return t.setProgressState(!1),d(e)?(t.windowManager.alert("No misspellings found"),void(C=!1)):(b=e,l().filter(function(t){return!!e[t.text]}).wrap(function(){return t.dom.create("span",{"class":"mce-spellchecker-word","data-mce-bogus":1})}),void t.fire("SpellcheckStart"))}function n(e,n,r){o.sendRPC({url:new a(s).toAbsolute(w.spellchecker_rpc_url),method:e,params:{lang:w.spellchecker_language||"en",words:n},success:function(e){r(e)},error:function(e,n){e="JSON Parse error."==e?"Non JSON response:"+n.responseText:"Error: "+e,t.windowManager.alert(e),t.setProgressState(!1),h()}})}var r=[],i={};if(C)return void h();h(),C=!0;var c=t.getParam("spellchecker_wordchar_pattern")||new RegExp('[^\\s!"#$%&()*+,-./:;<=>?@[\\]^_{|}`\xa7\xa9\xab\xae\xb1\xb6\xb7\xb8\xbb\xbc\xbd\xbe\xbf\xd7\xf7\xa4\u201d\u201c\u201e]+',"g");l().find(c).each(function(e){var t=e.text;if(!i[t]){if(/^\d+$/.test(t)||1==t.length)return;r.push(t),i[t]=!0}}),t.setProgressState(!0);var u=w.spellchecker_callback||n;u("spellcheck",r,e),t.focus()}function p(){t.dom.select("span.mce-spellchecker-word").length||h()}function m(e,n){t.selection.collapse(),n?l().each(function(t){t.text==e.text&&l().unwrap(t)}):l().unwrap(e),p()}function h(){l().reset(),y.textMatcher=null,C&&(C=!1,t.fire("SpellcheckEnd"))}function g(e){var t=w.spellchecker_language;e.control.items().each(function(e){e.active(e.settings.data===t)})}var v,y=this,b,C,x,w=t.settings,_=w.spellchecker_languages||"English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr_FR,German=de,Italian=it,Polish=pl,Portuguese=pt_BR,Spanish=es,Swedish=sv";v=c("Language",n.map(_.split(","),function(e){var t=e.split("=");return{name:t[0],value:t[1]}})),t.on("click",function(e){if("mce-spellchecker-word"==e.target.className){e.preventDefault();var n=l().matchFromElement(e.target);t.selection.setRng(l().rangeFromMatch(n)),u(n)}}),t.addMenuItem("spellchecker",{text:"Spellcheck",context:"tools",onclick:f,selectable:!0,onPostRender:function(){var e=this;t.on("SpellcheckStart SpellcheckEnd",function(){e.active(C)})}});var N={tooltip:"Spellcheck",onclick:f,onPostRender:function(){var e=this;t.on("SpellcheckStart SpellcheckEnd",function(){e.active(C)})}};v.length>1&&(N.type="splitbutton",N.menu=v,N.onshow=g,N.onselect=function(e){w.spellchecker_language=e.control.settings.data}),t.addButton("spellchecker",N),t.addCommand("mceSpellCheck",f),t.on("remove",function(){x&&(x.remove(),x=null)}),this.getTextMatcher=l,w.spellchecker_language=w.spellchecker_language||w.language||"en"})}),a([l,c])}(this); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/plugins/table/classes/CellSelection.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/table/classes/CellSelection.js new file mode 100755 index 00000000000..9ec550160ad --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/plugins/table/classes/CellSelection.js @@ -0,0 +1,167 @@ +/** + * CellSelection.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles table cell selection by faking it using a css class that gets applied + * to cells when dragging the mouse from one cell to another. + * + * @class tinymce.tableplugin.CellSelection + * @private + */ +define("tinymce/tableplugin/CellSelection", [ + "tinymce/tableplugin/TableGrid", + "tinymce/dom/TreeWalker", + "tinymce/util/Tools" +], function(TableGrid, TreeWalker, Tools) { + return function(editor) { + var dom = editor.dom, tableGrid, startCell, startTable, hasCellSelection = true; + + function clear() { + // Restore selection possibilities + editor.getBody().style.webkitUserSelect = ''; + + if (hasCellSelection) { + editor.dom.removeClass( + editor.dom.select('td.mce-item-selected,th.mce-item-selected'), + 'mce-item-selected' + ); + + hasCellSelection = false; + } + } + + function cellSelectionHandler(e) { + var sel, table, target = e.target; + + if (startCell && (tableGrid || target != startCell) && (target.nodeName == 'TD' || target.nodeName == 'TH')) { + table = dom.getParent(target, 'table'); + if (table == startTable) { + if (!tableGrid) { + tableGrid = new TableGrid(editor, table); + tableGrid.setStartCell(startCell); + + editor.getBody().style.webkitUserSelect = 'none'; + } + + tableGrid.setEndCell(target); + hasCellSelection = true; + } + + // Remove current selection + sel = editor.selection.getSel(); + + try { + if (sel.removeAllRanges) { + sel.removeAllRanges(); + } else { + sel.empty(); + } + } catch (ex) { + // IE9 might throw errors here + } + + e.preventDefault(); + } + } + + // Add cell selection logic + editor.on('MouseDown', function(e) { + if (e.button != 2) { + clear(); + + startCell = dom.getParent(e.target, 'td,th'); + startTable = dom.getParent(startCell, 'table'); + } + }); + + editor.on('mouseover', cellSelectionHandler); + + editor.on('remove', function() { + dom.unbind(editor.getDoc(), 'mouseover', cellSelectionHandler); + }); + + editor.on('MouseUp', function() { + var rng, sel = editor.selection, selectedCells, walker, node, lastNode, endNode; + + function setPoint(node, start) { + var walker = new TreeWalker(node, node); + + do { + // Text node + if (node.nodeType == 3 && Tools.trim(node.nodeValue).length !== 0) { + if (start) { + rng.setStart(node, 0); + } else { + rng.setEnd(node, node.nodeValue.length); + } + + return; + } + + // BR element + if (node.nodeName == 'BR') { + if (start) { + rng.setStartBefore(node); + } else { + rng.setEndBefore(node); + } + + return; + } + } while ((node = (start ? walker.next() : walker.prev()))); + } + + // Move selection to startCell + if (startCell) { + if (tableGrid) { + editor.getBody().style.webkitUserSelect = ''; + } + + // Try to expand text selection as much as we can only Gecko supports cell selection + selectedCells = dom.select('td.mce-item-selected,th.mce-item-selected'); + if (selectedCells.length > 0) { + rng = dom.createRng(); + node = selectedCells[0]; + endNode = selectedCells[selectedCells.length - 1]; + rng.setStartBefore(node); + rng.setEndAfter(node); + + setPoint(node, 1); + walker = new TreeWalker(node, dom.getParent(selectedCells[0], 'table')); + + do { + if (node.nodeName == 'TD' || node.nodeName == 'TH') { + if (!dom.hasClass(node, 'mce-item-selected')) { + break; + } + + lastNode = node; + } + } while ((node = walker.next())); + + setPoint(lastNode); + + sel.setRng(rng); + } + + editor.nodeChanged(); + startCell = tableGrid = startTable = null; + } + }); + + editor.on('KeyUp', function() { + clear(); + }); + + return { + clear: clear + }; + }; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/plugins/table/classes/Plugin.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/table/classes/Plugin.js new file mode 100755 index 00000000000..a0d87ea578c --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/plugins/table/classes/Plugin.js @@ -0,0 +1,794 @@ +/** + * Plugin.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class contains all core logic for the table plugin. + * + * @class tinymce.tableplugin.Plugin + * @private + */ +define("tinymce/tableplugin/Plugin", [ + "tinymce/tableplugin/TableGrid", + "tinymce/tableplugin/Quirks", + "tinymce/tableplugin/CellSelection", + "tinymce/util/Tools", + "tinymce/dom/TreeWalker", + "tinymce/Env", + "tinymce/PluginManager" +], function(TableGrid, Quirks, CellSelection, Tools, TreeWalker, Env, PluginManager) { + var each = Tools.each; + + function Plugin(editor) { + var winMan, clipboardRows, self = this; // Might be selected cells on reload + + function removePxSuffix(size) { + return size ? size.replace(/px$/, '') : ""; + } + + function addSizeSuffix(size) { + if (/^[0-9]+$/.test(size)) { + size += "px"; + } + + return size; + } + + function unApplyAlign(elm) { + each('left center right'.split(' '), function(name) { + editor.formatter.remove('align' + name, {}, elm); + }); + } + + function tableDialog() { + var dom = editor.dom, tableElm, data; + + tableElm = dom.getParent(editor.selection.getStart(), 'table'); + + data = { + width: removePxSuffix(dom.getStyle(tableElm, 'width') || dom.getAttrib(tableElm, 'width')), + height: removePxSuffix(dom.getStyle(tableElm, 'height') || dom.getAttrib(tableElm, 'height')), + cellspacing: dom.getAttrib(tableElm, 'cellspacing'), + cellpadding: dom.getAttrib(tableElm, 'cellpadding'), + border: dom.getAttrib(tableElm, 'border'), + caption: !!dom.select('caption', tableElm)[0] + }; + + each('left center right'.split(' '), function(name) { + if (editor.formatter.matchNode(tableElm, 'align' + name)) { + data.align = name; + } + }); + + editor.windowManager.open({ + title: "Table properties", + items: { + type: 'form', + layout: 'grid', + columns: 2, + data: data, + defaults: { + type: 'textbox', + maxWidth: 50 + }, + items: [ + {label: 'Width', name: 'width'}, + {label: 'Height', name: 'height'}, + {label: 'Cell spacing', name: 'cellspacing'}, + {label: 'Cell padding', name: 'cellpadding'}, + {label: 'Border', name: 'border'}, + {label: 'Caption', name: 'caption', type: 'checkbox'}, + { + label: 'Alignment', + minWidth: 90, + name: 'align', + type: 'listbox', + text: 'None', + maxWidth: null, + values: [ + {text: 'None', value: ''}, + {text: 'Left', value: 'left'}, + {text: 'Center', value: 'center'}, + {text: 'Right', value: 'right'} + ] + } + ] + }, + + onsubmit: function() { + var data = this.toJSON(), captionElm; + + editor.undoManager.transact(function() { + editor.dom.setAttribs(tableElm, { + cellspacing: data.cellspacing, + cellpadding: data.cellpadding, + border: data.border + }); + + editor.dom.setStyles(tableElm, { + width: addSizeSuffix(data.width), + height: addSizeSuffix(data.height) + }); + + // Toggle caption on/off + captionElm = dom.select('caption', tableElm)[0]; + + if (captionElm && !data.caption) { + dom.remove(captionElm); + } + + if (!captionElm && data.caption) { + captionElm = dom.create('caption'); + captionElm.innerHTML = !Env.ie ? '<br data-mce-bogus="1"/>' : '\u00a0'; + tableElm.insertBefore(captionElm, tableElm.firstChild); + } + + unApplyAlign(tableElm); + if (data.align) { + editor.formatter.apply('align' + data.align, {}, tableElm); + } + + editor.focus(); + editor.addVisual(); + }); + } + }); + } + + function mergeDialog(grid, cell) { + editor.windowManager.open({ + title: "Merge cells", + body: [ + {label: 'Cols', name: 'cols', type: 'textbox', size: 10}, + {label: 'Rows', name: 'rows', type: 'textbox', size: 10} + ], + onsubmit: function() { + var data = this.toJSON(); + + editor.undoManager.transact(function() { + grid.merge(cell, data.cols, data.rows); + }); + } + }); + } + + function cellDialog() { + var dom = editor.dom, cellElm, data, cells = []; + + // Get selected cells or the current cell + cells = editor.dom.select('td.mce-item-selected,th.mce-item-selected'); + cellElm = editor.dom.getParent(editor.selection.getStart(), 'td,th'); + if (!cells.length && cellElm) { + cells.push(cellElm); + } + + cellElm = cellElm || cells[0]; + + if (!cellElm) { + // If this element is null, return now to avoid crashing. + return; + } + + data = { + width: removePxSuffix(dom.getStyle(cellElm, 'width') || dom.getAttrib(cellElm, 'width')), + height: removePxSuffix(dom.getStyle(cellElm, 'height') || dom.getAttrib(cellElm, 'height')), + scope: dom.getAttrib(cellElm, 'scope') + }; + + data.type = cellElm.nodeName.toLowerCase(); + + each('left center right'.split(' '), function(name) { + if (editor.formatter.matchNode(cellElm, 'align' + name)) { + data.align = name; + } + }); + + editor.windowManager.open({ + title: "Cell properties", + items: { + type: 'form', + data: data, + layout: 'grid', + columns: 2, + defaults: { + type: 'textbox', + maxWidth: 50 + }, + items: [ + {label: 'Width', name: 'width'}, + {label: 'Height', name: 'height'}, + { + label: 'Cell type', + name: 'type', + type: 'listbox', + text: 'None', + minWidth: 90, + maxWidth: null, + values: [ + {text: 'Cell', value: 'td'}, + {text: 'Header cell', value: 'th'} + ] + }, + { + label: 'Scope', + name: 'scope', + type: 'listbox', + text: 'None', + minWidth: 90, + maxWidth: null, + values: [ + {text: 'None', value: ''}, + {text: 'Row', value: 'row'}, + {text: 'Column', value: 'col'}, + {text: 'Row group', value: 'rowgroup'}, + {text: 'Column group', value: 'colgroup'} + ] + }, + { + label: 'Alignment', + name: 'align', + type: 'listbox', + text: 'None', + minWidth: 90, + maxWidth: null, + values: [ + {text: 'None', value: ''}, + {text: 'Left', value: 'left'}, + {text: 'Center', value: 'center'}, + {text: 'Right', value: 'right'} + ] + } + ] + }, + + onsubmit: function() { + var data = this.toJSON(); + + editor.undoManager.transact(function() { + each(cells, function(cellElm) { + editor.dom.setAttrib(cellElm, 'scope', data.scope); + + editor.dom.setStyles(cellElm, { + width: addSizeSuffix(data.width), + height: addSizeSuffix(data.height) + }); + + // Switch cell type + if (data.type && cellElm.nodeName.toLowerCase() != data.type) { + cellElm = dom.rename(cellElm, data.type); + } + + // Apply/remove alignment + unApplyAlign(cellElm); + if (data.align) { + editor.formatter.apply('align' + data.align, {}, cellElm); + } + }); + + editor.focus(); + }); + } + }); + } + + function rowDialog() { + var dom = editor.dom, tableElm, cellElm, rowElm, data, rows = []; + + tableElm = editor.dom.getParent(editor.selection.getStart(), 'table'); + cellElm = editor.dom.getParent(editor.selection.getStart(), 'td,th'); + + each(tableElm.rows, function(row) { + each(row.cells, function(cell) { + if (dom.hasClass(cell, 'mce-item-selected') || cell == cellElm) { + rows.push(row); + return false; + } + }); + }); + + rowElm = rows[0]; + if (!rowElm) { + // If this element is null, return now to avoid crashing. + return; + } + + data = { + height: removePxSuffix(dom.getStyle(rowElm, 'height') || dom.getAttrib(rowElm, 'height')), + scope: dom.getAttrib(rowElm, 'scope') + }; + + data.type = rowElm.parentNode.nodeName.toLowerCase(); + + each('left center right'.split(' '), function(name) { + if (editor.formatter.matchNode(rowElm, 'align' + name)) { + data.align = name; + } + }); + + editor.windowManager.open({ + title: "Row properties", + items: { + type: 'form', + data: data, + columns: 2, + defaults: { + type: 'textbox' + }, + items: [ + { + type: 'listbox', + name: 'type', + label: 'Row type', + text: 'None', + maxWidth: null, + values: [ + {text: 'Header', value: 'thead'}, + {text: 'Body', value: 'tbody'}, + {text: 'Footer', value: 'tfoot'} + ] + }, + { + type: 'listbox', + name: 'align', + label: 'Alignment', + text: 'None', + maxWidth: null, + values: [ + {text: 'None', value: ''}, + {text: 'Left', value: 'left'}, + {text: 'Center', value: 'center'}, + {text: 'Right', value: 'right'} + ] + }, + {label: 'Height', name: 'height'} + ] + }, + + onsubmit: function() { + var data = this.toJSON(), tableElm, oldParentElm, parentElm; + + editor.undoManager.transact(function() { + var toType = data.type; + + each(rows, function(rowElm) { + editor.dom.setAttrib(rowElm, 'scope', data.scope); + + editor.dom.setStyles(rowElm, { + height: addSizeSuffix(data.height) + }); + + if (toType != rowElm.parentNode.nodeName.toLowerCase()) { + tableElm = dom.getParent(rowElm, 'table'); + + oldParentElm = rowElm.parentNode; + parentElm = dom.select(toType, tableElm)[0]; + if (!parentElm) { + parentElm = dom.create(toType); + if (tableElm.firstChild) { + tableElm.insertBefore(parentElm, tableElm.firstChild); + } else { + tableElm.appendChild(parentElm); + } + } + + parentElm.appendChild(rowElm); + + if (!oldParentElm.hasChildNodes()) { + dom.remove(oldParentElm); + } + } + + // Apply/remove alignment + unApplyAlign(rowElm); + if (data.align) { + editor.formatter.apply('align' + data.align, {}, rowElm); + } + }); + + editor.focus(); + }); + } + }); + } + + function cmd(command) { + return function() { + editor.execCommand(command); + }; + } + + function insertTable(cols, rows) { + var y, x, html; + + html = '<table><tbody>'; + + for (y = 0; y < rows; y++) { + html += '<tr>'; + + for (x = 0; x < cols; x++) { + html += '<td>' + (Env.ie ? " " : '<br>') + '</td>'; + } + + html += '</tr>'; + } + + html += '</tbody></table>'; + + editor.insertContent(html); + } + + function handleDisabledState(ctrl, selector) { + function bindStateListener() { + ctrl.disabled(!editor.dom.getParent(editor.selection.getStart(), selector)); + + editor.selection.selectorChanged(selector, function(state) { + ctrl.disabled(!state); + }); + } + + if (editor.initialized) { + bindStateListener(); + } else { + editor.on('init', bindStateListener); + } + } + + function postRender() { + /*jshint validthis:true*/ + handleDisabledState(this, 'table'); + } + + function postRenderCell() { + /*jshint validthis:true*/ + handleDisabledState(this, 'td,th'); + } + + function generateTableGrid() { + var html = ''; + + html = '<table role="grid" class="mce-grid mce-grid-border" aria-readonly="true">'; + + for (var y = 0; y < 10; y++) { + html += '<tr>'; + + for (var x = 0; x < 10; x++) { + html += '<td role="gridcell" tabindex="-1"><a id="mcegrid' + (y * 10 + x) + '" href="#" ' + + 'data-mce-x="' + x + '" data-mce-y="' + y + '" ' + + '' + (x + y === 0 ? ' class="mce-active"' : '') + '></a></td>'; + } + + html += '</tr>'; + } + + html += '</table>'; + + html += '<div class="mce-text-center" role="presentation">1 x 1</div>'; + + return html; + } + + function selectGrid(tx, ty, control) { + var table = control.getEl().getElementsByTagName('table')[0]; + var rel = control.parent().rel, x, y, focusCell, cell; + + if (control.isRtl() || rel == 'tl-tr') { + for (y = 9; y >= 0; y--) { + for (x = 0; x < 10; x++) { + cell = table.rows[y].childNodes[x].firstChild; + + editor.dom.toggleClass( + cell, + 'mce-active', + x >= tx && y <= ty + ); + + if (x >= tx && y <= ty) { + focusCell = cell; + } + } + } + + tx = 9 - tx; + table.nextSibling.innerHTML = tx + ' x ' + (ty + 1); + } else { + for (y = 0; y < 10; y++) { + for (x = 0; x < 10; x++) { + cell = table.rows[y].childNodes[x].firstChild; + + editor.dom.toggleClass( + cell, + 'mce-active', + x <= tx && y <= ty + ); + + if (x <= tx && y <= ty) { + focusCell = cell; + } + } + } + + table.nextSibling.innerHTML = (tx + 1) + ' x ' + (ty + 1); + } + + return focusCell.parentNode; + } + + editor.addMenuItem('inserttable', { + text: 'Insert table', + icon: 'table', + context: 'table', + onhide: function() { + var elements = this.menu.items()[0].getEl().getElementsByTagName('a'); + editor.dom.removeClass(elements, 'mce-active'); + editor.dom.addClass(elements[0], 'mce-active'); + }, + menu: [ + { + type: 'container', + html: generateTableGrid(), + + onPostRender: function() { + this.lastX = this.lastY = 0; + }, + + onmousemove: function(e) { + var target = e.target, x, y; + + if (target.nodeName == 'A') { + x = parseInt(target.getAttribute('data-mce-x'), 10); + y = parseInt(target.getAttribute('data-mce-y'), 10); + + if (x !== this.lastX || y !== this.lastY) { + selectGrid(x, y, e.control); + + this.lastX = x; + this.lastY = y; + } + } + }, + + onkeydown: function(e) { + var x = this.lastX, y = this.lastY, isHandled; + + switch (e.keyCode) { + case 37: // DOM_VK_LEFT + if (x > 0) { + x--; + isHandled = true; + } + break; + + case 39: // DOM_VK_RIGHT + isHandled = true; + + if (x < 9) { + x++; + } + break; + + case 38: // DOM_VK_UP + isHandled = true; + + if (y > 0) { + y--; + } + break; + + case 40: // DOM_VK_DOWN + isHandled = true; + + if (y < 9) { + y++; + } + break; + } + + if (isHandled) { + e.preventDefault(); + e.stopPropagation(); + + selectGrid(x, y, e.control).focus(); + + this.lastX = x; + this.lastY = y; + } + }, + + onclick: function(e) { + if (e.target.nodeName == 'A') { + e.preventDefault(); + e.stopPropagation(); + this.parent().cancel(); + + insertTable(this.lastX + 1, this.lastY + 1); + } + } + } + ] + }); + + editor.addMenuItem('tableprops', { + text: 'Table properties', + context: 'table', + onPostRender: postRender, + onclick: tableDialog + }); + + editor.addMenuItem('deletetable', { + text: 'Delete table', + context: 'table', + onPostRender: postRender, + cmd: 'mceTableDelete' + }); + + editor.addMenuItem('cell', { + separator: 'before', + text: 'Cell', + context: 'table', + menu: [ + {text: 'Cell properties', onclick: cmd('mceTableCellProps'), onPostRender: postRenderCell}, + {text: 'Merge cells', onclick: cmd('mceTableMergeCells'), onPostRender: postRenderCell}, + {text: 'Split cell', onclick: cmd('mceTableSplitCells'), onPostRender: postRenderCell} + ] + }); + + editor.addMenuItem('row', { + text: 'Row', + context: 'table', + menu: [ + {text: 'Insert row before', onclick: cmd('mceTableInsertRowBefore'), onPostRender: postRenderCell}, + {text: 'Insert row after', onclick: cmd('mceTableInsertRowAfter'), onPostRender: postRenderCell}, + {text: 'Delete row', onclick: cmd('mceTableDeleteRow'), onPostRender: postRenderCell}, + {text: 'Row properties', onclick: cmd('mceTableRowProps'), onPostRender: postRenderCell}, + {text: '-'}, + {text: 'Cut row', onclick: cmd('mceTableCutRow'), onPostRender: postRenderCell}, + {text: 'Copy row', onclick: cmd('mceTableCopyRow'), onPostRender: postRenderCell}, + {text: 'Paste row before', onclick: cmd('mceTablePasteRowBefore'), onPostRender: postRenderCell}, + {text: 'Paste row after', onclick: cmd('mceTablePasteRowAfter'), onPostRender: postRenderCell} + ] + }); + + editor.addMenuItem('column', { + text: 'Column', + context: 'table', + menu: [ + {text: 'Insert column before', onclick: cmd('mceTableInsertColBefore'), onPostRender: postRenderCell}, + {text: 'Insert column after', onclick: cmd('mceTableInsertColAfter'), onPostRender: postRenderCell}, + {text: 'Delete column', onclick: cmd('mceTableDeleteCol'), onPostRender: postRenderCell} + ] + }); + + var menuItems = []; + each("inserttable tableprops deletetable | cell row column".split(' '), function(name) { + if (name == '|') { + menuItems.push({text: '-'}); + } else { + menuItems.push(editor.menuItems[name]); + } + }); + + editor.addButton("table", { + type: "menubutton", + title: "Table", + menu: menuItems + }); + + // Select whole table is a table border is clicked + if (!Env.isIE) { + editor.on('click', function(e) { + e = e.target; + + if (e.nodeName === 'TABLE') { + editor.selection.select(e); + editor.nodeChanged(); + } + }); + } + + self.quirks = new Quirks(editor); + + editor.on('Init', function() { + winMan = editor.windowManager; + self.cellSelection = new CellSelection(editor); + }); + + // Register action commands + each({ + mceTableSplitCells: function(grid) { + grid.split(); + }, + + mceTableMergeCells: function(grid) { + var rowSpan, colSpan, cell; + + cell = editor.dom.getParent(editor.selection.getStart(), 'th,td'); + if (cell) { + rowSpan = cell.rowSpan; + colSpan = cell.colSpan; + } + + if (!editor.dom.select('td.mce-item-selected,th.mce-item-selected').length) { + mergeDialog(grid, cell); + } else { + grid.merge(); + } + }, + + mceTableInsertRowBefore: function(grid) { + grid.insertRow(true); + }, + + mceTableInsertRowAfter: function(grid) { + grid.insertRow(); + }, + + mceTableInsertColBefore: function(grid) { + grid.insertCol(true); + }, + + mceTableInsertColAfter: function(grid) { + grid.insertCol(); + }, + + mceTableDeleteCol: function(grid) { + grid.deleteCols(); + }, + + mceTableDeleteRow: function(grid) { + grid.deleteRows(); + }, + + mceTableCutRow: function(grid) { + clipboardRows = grid.cutRows(); + }, + + mceTableCopyRow: function(grid) { + clipboardRows = grid.copyRows(); + }, + + mceTablePasteRowBefore: function(grid) { + grid.pasteRows(clipboardRows, true); + }, + + mceTablePasteRowAfter: function(grid) { + grid.pasteRows(clipboardRows); + }, + + mceTableDelete: function(grid) { + grid.deleteTable(); + } + }, function(func, name) { + editor.addCommand(name, function() { + var grid = new TableGrid(editor); + + if (grid) { + func(grid); + editor.execCommand('mceRepaint'); + self.cellSelection.clear(); + } + }); + }); + + // Register dialog commands + each({ + mceInsertTable: function() { + tableDialog(); + }, + + mceTableRowProps: rowDialog, + mceTableCellProps: cellDialog + }, function(func, name) { + editor.addCommand(name, function(ui, val) { + func(val); + }); + }); + } + + PluginManager.add('table', Plugin); +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/plugins/table/classes/Quirks.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/table/classes/Quirks.js new file mode 100755 index 00000000000..61e2a525534 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/plugins/table/classes/Quirks.js @@ -0,0 +1,370 @@ +/** + * Quirks.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class includes fixes for various browser quirks. + * + * @class tinymce.tableplugin.Quirks + * @private + */ +define("tinymce/tableplugin/Quirks", [ + "tinymce/util/VK", + "tinymce/Env", + "tinymce/util/Tools" +], function(VK, Env, Tools) { + var each = Tools.each; + + function getSpanVal(td, name) { + return parseInt(td.getAttribute(name) || 1, 10); + } + + return function(editor) { + /** + * Fixed caret movement around tables on WebKit. + */ + function moveWebKitSelection() { + function eventHandler(e) { + var key = e.keyCode; + + function handle(upBool, sourceNode) { + var siblingDirection = upBool ? 'previousSibling' : 'nextSibling'; + var currentRow = editor.dom.getParent(sourceNode, 'tr'); + var siblingRow = currentRow[siblingDirection]; + + if (siblingRow) { + moveCursorToRow(editor, sourceNode, siblingRow, upBool); + e.preventDefault(); + return true; + } else { + var tableNode = editor.dom.getParent(currentRow, 'table'); + var middleNode = currentRow.parentNode; + var parentNodeName = middleNode.nodeName.toLowerCase(); + if (parentNodeName === 'tbody' || parentNodeName === (upBool ? 'tfoot' : 'thead')) { + var targetParent = getTargetParent(upBool, tableNode, middleNode, 'tbody'); + if (targetParent !== null) { + return moveToRowInTarget(upBool, targetParent, sourceNode); + } + } + return escapeTable(upBool, currentRow, siblingDirection, tableNode); + } + } + + function getTargetParent(upBool, topNode, secondNode, nodeName) { + var tbodies = editor.dom.select('>' + nodeName, topNode); + var position = tbodies.indexOf(secondNode); + if (upBool && position === 0 || !upBool && position === tbodies.length - 1) { + return getFirstHeadOrFoot(upBool, topNode); + } else if (position === -1) { + var topOrBottom = secondNode.tagName.toLowerCase() === 'thead' ? 0 : tbodies.length - 1; + return tbodies[topOrBottom]; + } else { + return tbodies[position + (upBool ? -1 : 1)]; + } + } + + function getFirstHeadOrFoot(upBool, parent) { + var tagName = upBool ? 'thead' : 'tfoot'; + var headOrFoot = editor.dom.select('>' + tagName, parent); + return headOrFoot.length !== 0 ? headOrFoot[0] : null; + } + + function moveToRowInTarget(upBool, targetParent, sourceNode) { + var targetRow = getChildForDirection(targetParent, upBool); + + if (targetRow) { + moveCursorToRow(editor, sourceNode, targetRow, upBool); + } + + e.preventDefault(); + return true; + } + + function escapeTable(upBool, currentRow, siblingDirection, table) { + var tableSibling = table[siblingDirection]; + + if (tableSibling) { + moveCursorToStartOfElement(tableSibling); + return true; + } else { + var parentCell = editor.dom.getParent(table, 'td,th'); + if (parentCell) { + return handle(upBool, parentCell, e); + } else { + var backUpSibling = getChildForDirection(currentRow, !upBool); + moveCursorToStartOfElement(backUpSibling); + e.preventDefault(); + return false; + } + } + } + + function getChildForDirection(parent, up) { + var child = parent && parent[up ? 'lastChild' : 'firstChild']; + // BR is not a valid table child to return in this case we return the table cell + return child && child.nodeName === 'BR' ? editor.dom.getParent(child, 'td,th') : child; + } + + function moveCursorToStartOfElement(n) { + editor.selection.setCursorLocation(n, 0); + } + + function isVerticalMovement() { + return key == VK.UP || key == VK.DOWN; + } + + function isInTable(editor) { + var node = editor.selection.getNode(); + var currentRow = editor.dom.getParent(node, 'tr'); + return currentRow !== null; + } + + function columnIndex(column) { + var colIndex = 0; + var c = column; + while (c.previousSibling) { + c = c.previousSibling; + colIndex = colIndex + getSpanVal(c, "colspan"); + } + return colIndex; + } + + function findColumn(rowElement, columnIndex) { + var c = 0, r = 0; + + each(rowElement.children, function(cell, i) { + c = c + getSpanVal(cell, "colspan"); + r = i; + if (c > columnIndex) { + return false; + } + }); + return r; + } + + function moveCursorToRow(ed, node, row, upBool) { + var srcColumnIndex = columnIndex(editor.dom.getParent(node, 'td,th')); + var tgtColumnIndex = findColumn(row, srcColumnIndex); + var tgtNode = row.childNodes[tgtColumnIndex]; + var rowCellTarget = getChildForDirection(tgtNode, upBool); + moveCursorToStartOfElement(rowCellTarget || tgtNode); + } + + function shouldFixCaret(preBrowserNode) { + var newNode = editor.selection.getNode(); + var newParent = editor.dom.getParent(newNode, 'td,th'); + var oldParent = editor.dom.getParent(preBrowserNode, 'td,th'); + + return newParent && newParent !== oldParent && checkSameParentTable(newParent, oldParent); + } + + function checkSameParentTable(nodeOne, NodeTwo) { + return editor.dom.getParent(nodeOne, 'TABLE') === editor.dom.getParent(NodeTwo, 'TABLE'); + } + + if (isVerticalMovement() && isInTable(editor)) { + var preBrowserNode = editor.selection.getNode(); + setTimeout(function() { + if (shouldFixCaret(preBrowserNode)) { + handle(!e.shiftKey && key === VK.UP, preBrowserNode, e); + } + }, 0); + } + } + + editor.on('KeyDown', function(e) { + eventHandler(e); + }); + } + + function fixBeforeTableCaretBug() { + // Checks if the selection/caret is at the start of the specified block element + function isAtStart(rng, par) { + var doc = par.ownerDocument, rng2 = doc.createRange(), elm; + + rng2.setStartBefore(par); + rng2.setEnd(rng.endContainer, rng.endOffset); + + elm = doc.createElement('body'); + elm.appendChild(rng2.cloneContents()); + + // Check for text characters of other elements that should be treated as content + return elm.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi, '-').replace(/<[^>]+>/g, '').length === 0; + } + + // Fixes an bug where it's impossible to place the caret before a table in Gecko + // this fix solves it by detecting when the caret is at the beginning of such a table + // and then manually moves the caret infront of the table + editor.on('KeyDown', function(e) { + var rng, table, dom = editor.dom; + + // On gecko it's not possible to place the caret before a table + if (e.keyCode == 37 || e.keyCode == 38) { + rng = editor.selection.getRng(); + table = dom.getParent(rng.startContainer, 'table'); + + if (table && editor.getBody().firstChild == table) { + if (isAtStart(rng, table)) { + rng = dom.createRng(); + + rng.setStartBefore(table); + rng.setEndBefore(table); + + editor.selection.setRng(rng); + + e.preventDefault(); + } + } + } + }); + } + + // Fixes an issue on Gecko where it's impossible to place the caret behind a table + // This fix will force a paragraph element after the table but only when the forced_root_block setting is enabled + function fixTableCaretPos() { + editor.on('KeyDown SetContent VisualAid', function() { + var last; + + // Skip empty text nodes from the end + for (last = editor.getBody().lastChild; last; last = last.previousSibling) { + if (last.nodeType == 3) { + if (last.nodeValue.length > 0) { + break; + } + } else if (last.nodeType == 1 && !last.getAttribute('data-mce-bogus')) { + break; + } + } + + if (last && last.nodeName == 'TABLE') { + if (editor.settings.forced_root_block) { + editor.dom.add( + editor.getBody(), + editor.settings.forced_root_block, + editor.settings.forced_root_block_attrs, + Env.ie && Env.ie < 11 ? ' ' : '<br data-mce-bogus="1" />' + ); + } else { + editor.dom.add(editor.getBody(), 'br', {'data-mce-bogus': '1'}); + } + } + }); + + editor.on('PreProcess', function(o) { + var last = o.node.lastChild; + + if (last && (last.nodeName == "BR" || (last.childNodes.length == 1 && + (last.firstChild.nodeName == 'BR' || last.firstChild.nodeValue == '\u00a0'))) && + last.previousSibling && last.previousSibling.nodeName == "TABLE") { + editor.dom.remove(last); + } + }); + } + + // this nasty hack is here to work around some WebKit selection bugs. + function fixTableCellSelection() { + function tableCellSelected(ed, rng, n, currentCell) { + // The decision of when a table cell is selected is somewhat involved. The fact that this code is + // required is actually a pointer to the root cause of this bug. A cell is selected when the start + // and end offsets are 0, the start container is a text, and the selection node is either a TR (most cases) + // or the parent of the table (in the case of the selection containing the last cell of a table). + var TEXT_NODE = 3, table = ed.dom.getParent(rng.startContainer, 'TABLE'); + var tableParent, allOfCellSelected, tableCellSelection; + + if (table) { + tableParent = table.parentNode; + } + + allOfCellSelected = rng.startContainer.nodeType == TEXT_NODE && + rng.startOffset === 0 && + rng.endOffset === 0 && + currentCell && + (n.nodeName == "TR" || n == tableParent); + + tableCellSelection = (n.nodeName == "TD" || n.nodeName == "TH") && !currentCell; + + return allOfCellSelected || tableCellSelection; + } + + function fixSelection() { + var rng = editor.selection.getRng(); + var n = editor.selection.getNode(); + var currentCell = editor.dom.getParent(rng.startContainer, 'TD,TH'); + + if (!tableCellSelected(editor, rng, n, currentCell)) { + return; + } + + if (!currentCell) { + currentCell = n; + } + + // Get the very last node inside the table cell + var end = currentCell.lastChild; + while (end.lastChild) { + end = end.lastChild; + } + + // Select the entire table cell. Nothing outside of the table cell should be selected. + rng.setEnd(end, end.nodeValue.length); + editor.selection.setRng(rng); + } + + editor.on('KeyDown', function() { + fixSelection(); + }); + + editor.on('MouseDown', function(e) { + if (e.button != 2) { + fixSelection(); + } + }); + } + + /** + * Delete table if all cells are selected. + */ + function deleteTable() { + editor.on('keydown', function(e) { + if ((e.keyCode == VK.DELETE || e.keyCode == VK.BACKSPACE) && !e.isDefaultPrevented()) { + var table = editor.dom.getParent(editor.selection.getStart(), 'table'); + + if (table) { + var cells = editor.dom.select('td,th', table), i = cells.length; + while (i--) { + if (!editor.dom.hasClass(cells[i], 'mce-item-selected')) { + return; + } + } + + e.preventDefault(); + editor.execCommand('mceTableDelete'); + } + } + }); + } + + deleteTable(); + + if (Env.webkit) { + moveWebKitSelection(); + fixTableCellSelection(); + } + + if (Env.gecko) { + fixBeforeTableCaretBug(); + fixTableCaretPos(); + } + + if (Env.ie > 10) { + fixBeforeTableCaretBug(); + fixTableCaretPos(); + } + }; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/plugins/table/classes/TableGrid.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/table/classes/TableGrid.js new file mode 100755 index 00000000000..eea3cd23d93 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/plugins/table/classes/TableGrid.js @@ -0,0 +1,833 @@ +/** + * TableGrid.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class creates a grid out of a table element. This + * makes it a whole lot easier to handle complex tables with + * col/row spans. + * + * @class tinymce.tableplugin.TableGrid + * @private + */ +define("tinymce/tableplugin/TableGrid", [ + "tinymce/util/Tools", + "tinymce/Env" +], function(Tools, Env) { + var each = Tools.each; + + function getSpanVal(td, name) { + return parseInt(td.getAttribute(name) || 1, 10); + } + + return function(editor, table) { + var grid, startPos, endPos, selectedCell, selection = editor.selection, dom = selection.dom; + + function buildGrid() { + var startY = 0; + + grid = []; + + each(['thead', 'tbody', 'tfoot'], function(part) { + var rows = dom.select('> ' + part + ' tr', table); + + each(rows, function(tr, y) { + y += startY; + + each(dom.select('> td, > th', tr), function(td, x) { + var x2, y2, rowspan, colspan; + + // Skip over existing cells produced by rowspan + if (grid[y]) { + while (grid[y][x]) { + x++; + } + } + + // Get col/rowspan from cell + rowspan = getSpanVal(td, 'rowspan'); + colspan = getSpanVal(td, 'colspan'); + + // Fill out rowspan/colspan right and down + for (y2 = y; y2 < y + rowspan; y2++) { + if (!grid[y2]) { + grid[y2] = []; + } + + for (x2 = x; x2 < x + colspan; x2++) { + grid[y2][x2] = { + part: part, + real: y2 == y && x2 == x, + elm: td, + rowspan: rowspan, + colspan: colspan + }; + } + } + }); + }); + + startY += rows.length; + }); + } + + function cloneNode(node, children) { + node = node.cloneNode(children); + node.removeAttribute('id'); + + return node; + } + + function getCell(x, y) { + var row; + + row = grid[y]; + if (row) { + return row[x]; + } + } + + function setSpanVal(td, name, val) { + if (td) { + val = parseInt(val, 10); + + if (val === 1) { + td.removeAttribute(name, 1); + } else { + td.setAttribute(name, val, 1); + } + } + } + + function isCellSelected(cell) { + return cell && (dom.hasClass(cell.elm, 'mce-item-selected') || cell == selectedCell); + } + + function getSelectedRows() { + var rows = []; + + each(table.rows, function(row) { + each(row.cells, function(cell) { + if (dom.hasClass(cell, 'mce-item-selected') || (selectedCell && cell == selectedCell.elm)) { + rows.push(row); + return false; + } + }); + }); + + return rows; + } + + function deleteTable() { + var rng = dom.createRng(); + + rng.setStartAfter(table); + rng.setEndAfter(table); + + selection.setRng(rng); + + dom.remove(table); + } + + function cloneCell(cell) { + var formatNode, cloneFormats = {}; + + if (editor.settings.table_clone_elements !== false) { + cloneFormats = Tools.makeMap( + (editor.settings.table_clone_elements || 'strong em b i span font h1 h2 h3 h4 h5 h6 p div').toUpperCase(), + /[ ,]/ + ); + } + + // Clone formats + Tools.walk(cell, function(node) { + var curNode; + + if (node.nodeType == 3) { + each(dom.getParents(node.parentNode, null, cell).reverse(), function(node) { + if (!cloneFormats[node.nodeName]) { + return; + } + + node = cloneNode(node, false); + + if (!formatNode) { + formatNode = curNode = node; + } else if (curNode) { + curNode.appendChild(node); + } + + curNode = node; + }); + + // Add something to the inner node + if (curNode) { + curNode.innerHTML = Env.ie ? ' ' : '<br data-mce-bogus="1" />'; + } + + return false; + } + }, 'childNodes'); + + cell = cloneNode(cell, false); + setSpanVal(cell, 'rowSpan', 1); + setSpanVal(cell, 'colSpan', 1); + + if (formatNode) { + cell.appendChild(formatNode); + } else { + if (!Env.ie) { + cell.innerHTML = '<br data-mce-bogus="1" />'; + } + } + + return cell; + } + + function cleanup() { + var rng = dom.createRng(), row; + + // Empty rows + each(dom.select('tr', table), function(tr) { + if (tr.cells.length === 0) { + dom.remove(tr); + } + }); + + // Empty table + if (dom.select('tr', table).length === 0) { + rng.setStartBefore(table); + rng.setEndBefore(table); + selection.setRng(rng); + dom.remove(table); + return; + } + + // Empty header/body/footer + each(dom.select('thead,tbody,tfoot', table), function(part) { + if (part.rows.length === 0) { + dom.remove(part); + } + }); + + // Restore selection to start position if it still exists + buildGrid(); + + // If we have a valid startPos object + if (startPos) { + // Restore the selection to the closest table position + row = grid[Math.min(grid.length - 1, startPos.y)]; + if (row) { + selection.select(row[Math.min(row.length - 1, startPos.x)].elm, true); + selection.collapse(true); + } + } + } + + function fillLeftDown(x, y, rows, cols) { + var tr, x2, r, c, cell; + + tr = grid[y][x].elm.parentNode; + for (r = 1; r <= rows; r++) { + tr = dom.getNext(tr, 'tr'); + + if (tr) { + // Loop left to find real cell + for (x2 = x; x2 >= 0; x2--) { + cell = grid[y + r][x2].elm; + + if (cell.parentNode == tr) { + // Append clones after + for (c = 1; c <= cols; c++) { + dom.insertAfter(cloneCell(cell), cell); + } + + break; + } + } + + if (x2 == -1) { + // Insert nodes before first cell + for (c = 1; c <= cols; c++) { + tr.insertBefore(cloneCell(tr.cells[0]), tr.cells[0]); + } + } + } + } + } + + function split() { + each(grid, function(row, y) { + each(row, function(cell, x) { + var colSpan, rowSpan, i; + + if (isCellSelected(cell)) { + cell = cell.elm; + colSpan = getSpanVal(cell, 'colspan'); + rowSpan = getSpanVal(cell, 'rowspan'); + + if (colSpan > 1 || rowSpan > 1) { + setSpanVal(cell, 'rowSpan', 1); + setSpanVal(cell, 'colSpan', 1); + + // Insert cells right + for (i = 0; i < colSpan - 1; i++) { + dom.insertAfter(cloneCell(cell), cell); + } + + fillLeftDown(x, y, rowSpan - 1, colSpan); + } + } + }); + }); + } + + function merge(cell, cols, rows) { + var pos, startX, startY, endX, endY, x, y, startCell, endCell, children, count; + + // Use specified cell and cols/rows + if (cell) { + pos = getPos(cell); + startX = pos.x; + startY = pos.y; + endX = startX + (cols - 1); + endY = startY + (rows - 1); + } else { + startPos = endPos = null; + + // Calculate start/end pos by checking for selected cells in grid works better with context menu + each(grid, function(row, y) { + each(row, function(cell, x) { + if (isCellSelected(cell)) { + if (!startPos) { + startPos = {x: x, y: y}; + } + + endPos = {x: x, y: y}; + } + }); + }); + + // Use selection, but make sure startPos is valid before accessing + if (startPos) { + startX = startPos.x; + startY = startPos.y; + endX = endPos.x; + endY = endPos.y; + } + } + + // Find start/end cells + startCell = getCell(startX, startY); + endCell = getCell(endX, endY); + + // Check if the cells exists and if they are of the same part for example tbody = tbody + if (startCell && endCell && startCell.part == endCell.part) { + // Split and rebuild grid + split(); + buildGrid(); + + // Set row/col span to start cell + startCell = getCell(startX, startY).elm; + setSpanVal(startCell, 'colSpan', (endX - startX) + 1); + setSpanVal(startCell, 'rowSpan', (endY - startY) + 1); + + // Remove other cells and add it's contents to the start cell + for (y = startY; y <= endY; y++) { + for (x = startX; x <= endX; x++) { + if (!grid[y] || !grid[y][x]) { + continue; + } + + cell = grid[y][x].elm; + + /*jshint loopfunc:true */ + /*eslint loop-func:0 */ + if (cell != startCell) { + // Move children to startCell + children = Tools.grep(cell.childNodes); + each(children, function(node) { + startCell.appendChild(node); + }); + + // Remove bogus nodes if there is children in the target cell + if (children.length) { + children = Tools.grep(startCell.childNodes); + count = 0; + each(children, function(node) { + if (node.nodeName == 'BR' && dom.getAttrib(node, 'data-mce-bogus') && count++ < children.length - 1) { + startCell.removeChild(node); + } + }); + } + + dom.remove(cell); + } + } + } + + // Remove empty rows etc and restore caret location + cleanup(); + } + } + + function insertRow(before) { + var posY, cell, lastCell, x, rowElm, newRow, newCell, otherCell, rowSpan; + + // Find first/last row + each(grid, function(row, y) { + each(row, function(cell) { + if (isCellSelected(cell)) { + cell = cell.elm; + rowElm = cell.parentNode; + newRow = cloneNode(rowElm, false); + posY = y; + + if (before) { + return false; + } + } + }); + + if (before) { + return !posY; + } + }); + + // If posY is undefined there is nothing for us to do here...just return to avoid crashing below + if (posY === undefined) { + return; + } + + for (x = 0; x < grid[0].length; x++) { + // Cell not found could be because of an invalid table structure + if (!grid[posY][x]) { + continue; + } + + cell = grid[posY][x].elm; + + if (cell != lastCell) { + if (!before) { + rowSpan = getSpanVal(cell, 'rowspan'); + if (rowSpan > 1) { + setSpanVal(cell, 'rowSpan', rowSpan + 1); + continue; + } + } else { + // Check if cell above can be expanded + if (posY > 0 && grid[posY - 1][x]) { + otherCell = grid[posY - 1][x].elm; + rowSpan = getSpanVal(otherCell, 'rowSpan'); + if (rowSpan > 1) { + setSpanVal(otherCell, 'rowSpan', rowSpan + 1); + continue; + } + } + } + + // Insert new cell into new row + newCell = cloneCell(cell); + setSpanVal(newCell, 'colSpan', cell.colSpan); + + newRow.appendChild(newCell); + + lastCell = cell; + } + } + + if (newRow.hasChildNodes()) { + if (!before) { + dom.insertAfter(newRow, rowElm); + } else { + rowElm.parentNode.insertBefore(newRow, rowElm); + } + } + } + + function insertCol(before) { + var posX, lastCell; + + // Find first/last column + each(grid, function(row) { + each(row, function(cell, x) { + if (isCellSelected(cell)) { + posX = x; + + if (before) { + return false; + } + } + }); + + if (before) { + return !posX; + } + }); + + each(grid, function(row, y) { + var cell, rowSpan, colSpan; + + if (!row[posX]) { + return; + } + + cell = row[posX].elm; + if (cell != lastCell) { + colSpan = getSpanVal(cell, 'colspan'); + rowSpan = getSpanVal(cell, 'rowspan'); + + if (colSpan == 1) { + if (!before) { + dom.insertAfter(cloneCell(cell), cell); + fillLeftDown(posX, y, rowSpan - 1, colSpan); + } else { + cell.parentNode.insertBefore(cloneCell(cell), cell); + fillLeftDown(posX, y, rowSpan - 1, colSpan); + } + } else { + setSpanVal(cell, 'colSpan', cell.colSpan + 1); + } + + lastCell = cell; + } + }); + } + + function deleteCols() { + var cols = []; + + // Get selected column indexes + each(grid, function(row) { + each(row, function(cell, x) { + if (isCellSelected(cell) && Tools.inArray(cols, x) === -1) { + each(grid, function(row) { + var cell = row[x].elm, colSpan; + + colSpan = getSpanVal(cell, 'colSpan'); + + if (colSpan > 1) { + setSpanVal(cell, 'colSpan', colSpan - 1); + } else { + dom.remove(cell); + } + }); + + cols.push(x); + } + }); + }); + + cleanup(); + } + + function deleteRows() { + var rows; + + function deleteRow(tr) { + var nextTr, pos, lastCell; + + nextTr = dom.getNext(tr, 'tr'); + + // Move down row spanned cells + each(tr.cells, function(cell) { + var rowSpan = getSpanVal(cell, 'rowSpan'); + + if (rowSpan > 1) { + setSpanVal(cell, 'rowSpan', rowSpan - 1); + pos = getPos(cell); + fillLeftDown(pos.x, pos.y, 1, 1); + } + }); + + // Delete cells + pos = getPos(tr.cells[0]); + each(grid[pos.y], function(cell) { + var rowSpan; + + cell = cell.elm; + + if (cell != lastCell) { + rowSpan = getSpanVal(cell, 'rowSpan'); + + if (rowSpan <= 1) { + dom.remove(cell); + } else { + setSpanVal(cell, 'rowSpan', rowSpan - 1); + } + + lastCell = cell; + } + }); + } + + // Get selected rows and move selection out of scope + rows = getSelectedRows(); + + // Delete all selected rows + each(rows.reverse(), function(tr) { + deleteRow(tr); + }); + + cleanup(); + } + + function cutRows() { + var rows = getSelectedRows(); + + dom.remove(rows); + cleanup(); + + return rows; + } + + function copyRows() { + var rows = getSelectedRows(); + + each(rows, function(row, i) { + rows[i] = cloneNode(row, true); + }); + + return rows; + } + + function pasteRows(rows, before) { + var selectedRows = getSelectedRows(), + targetRow = selectedRows[before ? 0 : selectedRows.length - 1], + targetCellCount = targetRow.cells.length; + + // Nothing to paste + if (!rows) { + return; + } + + // Calc target cell count + each(grid, function(row) { + var match; + + targetCellCount = 0; + each(row, function(cell) { + if (cell.real) { + targetCellCount += cell.colspan; + } + + if (cell.elm.parentNode == targetRow) { + match = 1; + } + }); + + if (match) { + return false; + } + }); + + if (!before) { + rows.reverse(); + } + + each(rows, function(row) { + var i, cellCount = row.cells.length, cell; + + // Remove col/rowspans + for (i = 0; i < cellCount; i++) { + cell = row.cells[i]; + setSpanVal(cell, 'colSpan', 1); + setSpanVal(cell, 'rowSpan', 1); + } + + // Needs more cells + for (i = cellCount; i < targetCellCount; i++) { + row.appendChild(cloneCell(row.cells[cellCount - 1])); + } + + // Needs less cells + for (i = targetCellCount; i < cellCount; i++) { + dom.remove(row.cells[i]); + } + + // Add before/after + if (before) { + targetRow.parentNode.insertBefore(row, targetRow); + } else { + dom.insertAfter(row, targetRow); + } + }); + + // Remove current selection + dom.removeClass(dom.select('td.mce-item-selected,th.mce-item-selected'), 'mce-item-selected'); + } + + function getPos(target) { + var pos; + + each(grid, function(row, y) { + each(row, function(cell, x) { + if (cell.elm == target) { + pos = {x : x, y : y}; + return false; + } + }); + + return !pos; + }); + + return pos; + } + + function setStartCell(cell) { + startPos = getPos(cell); + } + + function findEndPos() { + var maxX, maxY; + + maxX = maxY = 0; + + each(grid, function(row, y) { + each(row, function(cell, x) { + var colSpan, rowSpan; + + if (isCellSelected(cell)) { + cell = grid[y][x]; + + if (x > maxX) { + maxX = x; + } + + if (y > maxY) { + maxY = y; + } + + if (cell.real) { + colSpan = cell.colspan - 1; + rowSpan = cell.rowspan - 1; + + if (colSpan) { + if (x + colSpan > maxX) { + maxX = x + colSpan; + } + } + + if (rowSpan) { + if (y + rowSpan > maxY) { + maxY = y + rowSpan; + } + } + } + } + }); + }); + + return {x : maxX, y : maxY}; + } + + function setEndCell(cell) { + var startX, startY, endX, endY, maxX, maxY, colSpan, rowSpan, x, y; + + endPos = getPos(cell); + + if (startPos && endPos) { + // Get start/end positions + startX = Math.min(startPos.x, endPos.x); + startY = Math.min(startPos.y, endPos.y); + endX = Math.max(startPos.x, endPos.x); + endY = Math.max(startPos.y, endPos.y); + + // Expand end positon to include spans + maxX = endX; + maxY = endY; + + // Expand startX + for (y = startY; y <= maxY; y++) { + cell = grid[y][startX]; + + if (!cell.real) { + if (startX - (cell.colspan - 1) < startX) { + startX -= cell.colspan - 1; + } + } + } + + // Expand startY + for (x = startX; x <= maxX; x++) { + cell = grid[startY][x]; + + if (!cell.real) { + if (startY - (cell.rowspan - 1) < startY) { + startY -= cell.rowspan - 1; + } + } + } + + // Find max X, Y + for (y = startY; y <= endY; y++) { + for (x = startX; x <= endX; x++) { + cell = grid[y][x]; + + if (cell.real) { + colSpan = cell.colspan - 1; + rowSpan = cell.rowspan - 1; + + if (colSpan) { + if (x + colSpan > maxX) { + maxX = x + colSpan; + } + } + + if (rowSpan) { + if (y + rowSpan > maxY) { + maxY = y + rowSpan; + } + } + } + } + } + + // Remove current selection + dom.removeClass(dom.select('td.mce-item-selected,th.mce-item-selected'), 'mce-item-selected'); + + // Add new selection + for (y = startY; y <= maxY; y++) { + for (x = startX; x <= maxX; x++) { + if (grid[y][x]) { + dom.addClass(grid[y][x].elm, 'mce-item-selected'); + } + } + } + } + } + + table = table || dom.getParent(selection.getStart(), 'table'); + + buildGrid(); + + selectedCell = dom.getParent(selection.getStart(), 'th,td'); + if (selectedCell) { + startPos = getPos(selectedCell); + endPos = findEndPos(); + selectedCell = getCell(startPos.x, startPos.y); + } + + Tools.extend(this, { + deleteTable: deleteTable, + split: split, + merge: merge, + insertRow: insertRow, + insertCol: insertCol, + deleteCols: deleteCols, + deleteRows: deleteRows, + cutRows: cutRows, + copyRows: copyRows, + pasteRows: pasteRows, + getPos: getPos, + setStartCell: setStartCell, + setEndCell: setEndCell + }); + }; +}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/plugins/table/plugin.dev.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/table/plugin.dev.js new file mode 100755 index 00000000000..b507f285950 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/plugins/table/plugin.dev.js @@ -0,0 +1,119 @@ +/** + * Inline development version. Only to be used while developing since it uses document.write to load scripts. + */ + +/*jshint smarttabs:true, undef:true, latedef:true, curly:true, bitwise:true, camelcase:true */ +/*globals $code */ + +(function(exports) { + "use strict"; + + var html = "", baseDir; + var modules = {}, exposedModules = [], moduleCount = 0; + + var scripts = document.getElementsByTagName('script'); + for (var i = 0; i < scripts.length; i++) { + var src = scripts[i].src; + + if (src.indexOf('/plugin.dev.js') != -1) { + baseDir = src.substring(0, src.lastIndexOf('/')); + } + } + + function require(ids, callback) { + var module, defs = []; + + for (var i = 0; i < ids.length; ++i) { + module = modules[ids[i]] || resolve(ids[i]); + if (!module) { + throw 'module definition dependecy not found: ' + ids[i]; + } + + defs.push(module); + } + + callback.apply(null, defs); + } + + function resolve(id) { + var target = exports; + var fragments = id.split(/[.\/]/); + + for (var fi = 0; fi < fragments.length; ++fi) { + if (!target[fragments[fi]]) { + return; + } + + target = target[fragments[fi]]; + } + + return target; + } + + function register(id) { + var target = exports; + var fragments = id.split(/[.\/]/); + + for (var fi = 0; fi < fragments.length - 1; ++fi) { + if (target[fragments[fi]] === undefined) { + target[fragments[fi]] = {}; + } + + target = target[fragments[fi]]; + } + + target[fragments[fragments.length - 1]] = modules[id]; + } + + function define(id, dependencies, definition) { + if (typeof id !== 'string') { + throw 'invalid module definition, module id must be defined and be a string'; + } + + if (dependencies === undefined) { + throw 'invalid module definition, dependencies must be specified'; + } + + if (definition === undefined) { + throw 'invalid module definition, definition function must be specified'; + } + + require(dependencies, function() { + modules[id] = definition.apply(null, arguments); + }); + + if (--moduleCount === 0) { + for (var i = 0; i < exposedModules.length; i++) { + register(exposedModules[i]); + } + } + } + + function expose(ids) { + exposedModules = ids; + } + + function writeScripts() { + document.write(html); + } + + function load(path) { + html += '<script type="text/javascript" src="' + baseDir + '/' + path + '"></script>\n'; + moduleCount++; + } + + // Expose globally + exports.define = define; + exports.require = require; + + expose(["tinymce/tableplugin/TableGrid","tinymce/tableplugin/Quirks","tinymce/tableplugin/CellSelection","tinymce/tableplugin/Plugin"]); + + load('classes/TableGrid.js'); + load('classes/Quirks.js'); + load('classes/CellSelection.js'); + load('classes/Plugin.js'); + + writeScripts(); +})(this); + +// $hash: a7dd468b88f17972bfbd56fb01359c08 \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/plugins/table/plugin.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/table/plugin.js new file mode 100755 index 00000000000..ff9bfe82f1e --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/plugins/table/plugin.js @@ -0,0 +1,2260 @@ +/** + * Compiled inline version. (Library mode) + */ + +/*jshint smarttabs:true, undef:true, latedef:true, curly:true, bitwise:true, camelcase:true */ +/*globals $code */ + +(function(exports, undefined) { + "use strict"; + + var modules = {}; + + function require(ids, callback) { + var module, defs = []; + + for (var i = 0; i < ids.length; ++i) { + module = modules[ids[i]] || resolve(ids[i]); + if (!module) { + throw 'module definition dependecy not found: ' + ids[i]; + } + + defs.push(module); + } + + callback.apply(null, defs); + } + + function define(id, dependencies, definition) { + if (typeof id !== 'string') { + throw 'invalid module definition, module id must be defined and be a string'; + } + + if (dependencies === undefined) { + throw 'invalid module definition, dependencies must be specified'; + } + + if (definition === undefined) { + throw 'invalid module definition, definition function must be specified'; + } + + require(dependencies, function() { + modules[id] = definition.apply(null, arguments); + }); + } + + function defined(id) { + return !!modules[id]; + } + + function resolve(id) { + var target = exports; + var fragments = id.split(/[.\/]/); + + for (var fi = 0; fi < fragments.length; ++fi) { + if (!target[fragments[fi]]) { + return; + } + + target = target[fragments[fi]]; + } + + return target; + } + + function expose(ids) { + for (var i = 0; i < ids.length; i++) { + var target = exports; + var id = ids[i]; + var fragments = id.split(/[.\/]/); + + for (var fi = 0; fi < fragments.length - 1; ++fi) { + if (target[fragments[fi]] === undefined) { + target[fragments[fi]] = {}; + } + + target = target[fragments[fi]]; + } + + target[fragments[fragments.length - 1]] = modules[id]; + } + } + +// Included from: js/tinymce/plugins/table/classes/TableGrid.js + +/** + * TableGrid.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class creates a grid out of a table element. This + * makes it a whole lot easier to handle complex tables with + * col/row spans. + * + * @class tinymce.tableplugin.TableGrid + * @private + */ +define("tinymce/tableplugin/TableGrid", [ + "tinymce/util/Tools", + "tinymce/Env" +], function(Tools, Env) { + var each = Tools.each; + + function getSpanVal(td, name) { + return parseInt(td.getAttribute(name) || 1, 10); + } + + return function(editor, table) { + var grid, startPos, endPos, selectedCell, selection = editor.selection, dom = selection.dom; + + function buildGrid() { + var startY = 0; + + grid = []; + + each(['thead', 'tbody', 'tfoot'], function(part) { + var rows = dom.select('> ' + part + ' tr', table); + + each(rows, function(tr, y) { + y += startY; + + each(dom.select('> td, > th', tr), function(td, x) { + var x2, y2, rowspan, colspan; + + // Skip over existing cells produced by rowspan + if (grid[y]) { + while (grid[y][x]) { + x++; + } + } + + // Get col/rowspan from cell + rowspan = getSpanVal(td, 'rowspan'); + colspan = getSpanVal(td, 'colspan'); + + // Fill out rowspan/colspan right and down + for (y2 = y; y2 < y + rowspan; y2++) { + if (!grid[y2]) { + grid[y2] = []; + } + + for (x2 = x; x2 < x + colspan; x2++) { + grid[y2][x2] = { + part: part, + real: y2 == y && x2 == x, + elm: td, + rowspan: rowspan, + colspan: colspan + }; + } + } + }); + }); + + startY += rows.length; + }); + } + + function cloneNode(node, children) { + node = node.cloneNode(children); + node.removeAttribute('id'); + + return node; + } + + function getCell(x, y) { + var row; + + row = grid[y]; + if (row) { + return row[x]; + } + } + + function setSpanVal(td, name, val) { + if (td) { + val = parseInt(val, 10); + + if (val === 1) { + td.removeAttribute(name, 1); + } else { + td.setAttribute(name, val, 1); + } + } + } + + function isCellSelected(cell) { + return cell && (dom.hasClass(cell.elm, 'mce-item-selected') || cell == selectedCell); + } + + function getSelectedRows() { + var rows = []; + + each(table.rows, function(row) { + each(row.cells, function(cell) { + if (dom.hasClass(cell, 'mce-item-selected') || (selectedCell && cell == selectedCell.elm)) { + rows.push(row); + return false; + } + }); + }); + + return rows; + } + + function deleteTable() { + var rng = dom.createRng(); + + rng.setStartAfter(table); + rng.setEndAfter(table); + + selection.setRng(rng); + + dom.remove(table); + } + + function cloneCell(cell) { + var formatNode, cloneFormats = {}; + + if (editor.settings.table_clone_elements !== false) { + cloneFormats = Tools.makeMap( + (editor.settings.table_clone_elements || 'strong em b i span font h1 h2 h3 h4 h5 h6 p div').toUpperCase(), + /[ ,]/ + ); + } + + // Clone formats + Tools.walk(cell, function(node) { + var curNode; + + if (node.nodeType == 3) { + each(dom.getParents(node.parentNode, null, cell).reverse(), function(node) { + if (!cloneFormats[node.nodeName]) { + return; + } + + node = cloneNode(node, false); + + if (!formatNode) { + formatNode = curNode = node; + } else if (curNode) { + curNode.appendChild(node); + } + + curNode = node; + }); + + // Add something to the inner node + if (curNode) { + curNode.innerHTML = Env.ie ? ' ' : '<br data-mce-bogus="1" />'; + } + + return false; + } + }, 'childNodes'); + + cell = cloneNode(cell, false); + setSpanVal(cell, 'rowSpan', 1); + setSpanVal(cell, 'colSpan', 1); + + if (formatNode) { + cell.appendChild(formatNode); + } else { + if (!Env.ie) { + cell.innerHTML = '<br data-mce-bogus="1" />'; + } + } + + return cell; + } + + function cleanup() { + var rng = dom.createRng(), row; + + // Empty rows + each(dom.select('tr', table), function(tr) { + if (tr.cells.length === 0) { + dom.remove(tr); + } + }); + + // Empty table + if (dom.select('tr', table).length === 0) { + rng.setStartBefore(table); + rng.setEndBefore(table); + selection.setRng(rng); + dom.remove(table); + return; + } + + // Empty header/body/footer + each(dom.select('thead,tbody,tfoot', table), function(part) { + if (part.rows.length === 0) { + dom.remove(part); + } + }); + + // Restore selection to start position if it still exists + buildGrid(); + + // If we have a valid startPos object + if (startPos) { + // Restore the selection to the closest table position + row = grid[Math.min(grid.length - 1, startPos.y)]; + if (row) { + selection.select(row[Math.min(row.length - 1, startPos.x)].elm, true); + selection.collapse(true); + } + } + } + + function fillLeftDown(x, y, rows, cols) { + var tr, x2, r, c, cell; + + tr = grid[y][x].elm.parentNode; + for (r = 1; r <= rows; r++) { + tr = dom.getNext(tr, 'tr'); + + if (tr) { + // Loop left to find real cell + for (x2 = x; x2 >= 0; x2--) { + cell = grid[y + r][x2].elm; + + if (cell.parentNode == tr) { + // Append clones after + for (c = 1; c <= cols; c++) { + dom.insertAfter(cloneCell(cell), cell); + } + + break; + } + } + + if (x2 == -1) { + // Insert nodes before first cell + for (c = 1; c <= cols; c++) { + tr.insertBefore(cloneCell(tr.cells[0]), tr.cells[0]); + } + } + } + } + } + + function split() { + each(grid, function(row, y) { + each(row, function(cell, x) { + var colSpan, rowSpan, i; + + if (isCellSelected(cell)) { + cell = cell.elm; + colSpan = getSpanVal(cell, 'colspan'); + rowSpan = getSpanVal(cell, 'rowspan'); + + if (colSpan > 1 || rowSpan > 1) { + setSpanVal(cell, 'rowSpan', 1); + setSpanVal(cell, 'colSpan', 1); + + // Insert cells right + for (i = 0; i < colSpan - 1; i++) { + dom.insertAfter(cloneCell(cell), cell); + } + + fillLeftDown(x, y, rowSpan - 1, colSpan); + } + } + }); + }); + } + + function merge(cell, cols, rows) { + var pos, startX, startY, endX, endY, x, y, startCell, endCell, children, count; + + // Use specified cell and cols/rows + if (cell) { + pos = getPos(cell); + startX = pos.x; + startY = pos.y; + endX = startX + (cols - 1); + endY = startY + (rows - 1); + } else { + startPos = endPos = null; + + // Calculate start/end pos by checking for selected cells in grid works better with context menu + each(grid, function(row, y) { + each(row, function(cell, x) { + if (isCellSelected(cell)) { + if (!startPos) { + startPos = {x: x, y: y}; + } + + endPos = {x: x, y: y}; + } + }); + }); + + // Use selection, but make sure startPos is valid before accessing + if (startPos) { + startX = startPos.x; + startY = startPos.y; + endX = endPos.x; + endY = endPos.y; + } + } + + // Find start/end cells + startCell = getCell(startX, startY); + endCell = getCell(endX, endY); + + // Check if the cells exists and if they are of the same part for example tbody = tbody + if (startCell && endCell && startCell.part == endCell.part) { + // Split and rebuild grid + split(); + buildGrid(); + + // Set row/col span to start cell + startCell = getCell(startX, startY).elm; + setSpanVal(startCell, 'colSpan', (endX - startX) + 1); + setSpanVal(startCell, 'rowSpan', (endY - startY) + 1); + + // Remove other cells and add it's contents to the start cell + for (y = startY; y <= endY; y++) { + for (x = startX; x <= endX; x++) { + if (!grid[y] || !grid[y][x]) { + continue; + } + + cell = grid[y][x].elm; + + /*jshint loopfunc:true */ + /*eslint loop-func:0 */ + if (cell != startCell) { + // Move children to startCell + children = Tools.grep(cell.childNodes); + each(children, function(node) { + startCell.appendChild(node); + }); + + // Remove bogus nodes if there is children in the target cell + if (children.length) { + children = Tools.grep(startCell.childNodes); + count = 0; + each(children, function(node) { + if (node.nodeName == 'BR' && dom.getAttrib(node, 'data-mce-bogus') && count++ < children.length - 1) { + startCell.removeChild(node); + } + }); + } + + dom.remove(cell); + } + } + } + + // Remove empty rows etc and restore caret location + cleanup(); + } + } + + function insertRow(before) { + var posY, cell, lastCell, x, rowElm, newRow, newCell, otherCell, rowSpan; + + // Find first/last row + each(grid, function(row, y) { + each(row, function(cell) { + if (isCellSelected(cell)) { + cell = cell.elm; + rowElm = cell.parentNode; + newRow = cloneNode(rowElm, false); + posY = y; + + if (before) { + return false; + } + } + }); + + if (before) { + return !posY; + } + }); + + // If posY is undefined there is nothing for us to do here...just return to avoid crashing below + if (posY === undefined) { + return; + } + + for (x = 0; x < grid[0].length; x++) { + // Cell not found could be because of an invalid table structure + if (!grid[posY][x]) { + continue; + } + + cell = grid[posY][x].elm; + + if (cell != lastCell) { + if (!before) { + rowSpan = getSpanVal(cell, 'rowspan'); + if (rowSpan > 1) { + setSpanVal(cell, 'rowSpan', rowSpan + 1); + continue; + } + } else { + // Check if cell above can be expanded + if (posY > 0 && grid[posY - 1][x]) { + otherCell = grid[posY - 1][x].elm; + rowSpan = getSpanVal(otherCell, 'rowSpan'); + if (rowSpan > 1) { + setSpanVal(otherCell, 'rowSpan', rowSpan + 1); + continue; + } + } + } + + // Insert new cell into new row + newCell = cloneCell(cell); + setSpanVal(newCell, 'colSpan', cell.colSpan); + + newRow.appendChild(newCell); + + lastCell = cell; + } + } + + if (newRow.hasChildNodes()) { + if (!before) { + dom.insertAfter(newRow, rowElm); + } else { + rowElm.parentNode.insertBefore(newRow, rowElm); + } + } + } + + function insertCol(before) { + var posX, lastCell; + + // Find first/last column + each(grid, function(row) { + each(row, function(cell, x) { + if (isCellSelected(cell)) { + posX = x; + + if (before) { + return false; + } + } + }); + + if (before) { + return !posX; + } + }); + + each(grid, function(row, y) { + var cell, rowSpan, colSpan; + + if (!row[posX]) { + return; + } + + cell = row[posX].elm; + if (cell != lastCell) { + colSpan = getSpanVal(cell, 'colspan'); + rowSpan = getSpanVal(cell, 'rowspan'); + + if (colSpan == 1) { + if (!before) { + dom.insertAfter(cloneCell(cell), cell); + fillLeftDown(posX, y, rowSpan - 1, colSpan); + } else { + cell.parentNode.insertBefore(cloneCell(cell), cell); + fillLeftDown(posX, y, rowSpan - 1, colSpan); + } + } else { + setSpanVal(cell, 'colSpan', cell.colSpan + 1); + } + + lastCell = cell; + } + }); + } + + function deleteCols() { + var cols = []; + + // Get selected column indexes + each(grid, function(row) { + each(row, function(cell, x) { + if (isCellSelected(cell) && Tools.inArray(cols, x) === -1) { + each(grid, function(row) { + var cell = row[x].elm, colSpan; + + colSpan = getSpanVal(cell, 'colSpan'); + + if (colSpan > 1) { + setSpanVal(cell, 'colSpan', colSpan - 1); + } else { + dom.remove(cell); + } + }); + + cols.push(x); + } + }); + }); + + cleanup(); + } + + function deleteRows() { + var rows; + + function deleteRow(tr) { + var nextTr, pos, lastCell; + + nextTr = dom.getNext(tr, 'tr'); + + // Move down row spanned cells + each(tr.cells, function(cell) { + var rowSpan = getSpanVal(cell, 'rowSpan'); + + if (rowSpan > 1) { + setSpanVal(cell, 'rowSpan', rowSpan - 1); + pos = getPos(cell); + fillLeftDown(pos.x, pos.y, 1, 1); + } + }); + + // Delete cells + pos = getPos(tr.cells[0]); + each(grid[pos.y], function(cell) { + var rowSpan; + + cell = cell.elm; + + if (cell != lastCell) { + rowSpan = getSpanVal(cell, 'rowSpan'); + + if (rowSpan <= 1) { + dom.remove(cell); + } else { + setSpanVal(cell, 'rowSpan', rowSpan - 1); + } + + lastCell = cell; + } + }); + } + + // Get selected rows and move selection out of scope + rows = getSelectedRows(); + + // Delete all selected rows + each(rows.reverse(), function(tr) { + deleteRow(tr); + }); + + cleanup(); + } + + function cutRows() { + var rows = getSelectedRows(); + + dom.remove(rows); + cleanup(); + + return rows; + } + + function copyRows() { + var rows = getSelectedRows(); + + each(rows, function(row, i) { + rows[i] = cloneNode(row, true); + }); + + return rows; + } + + function pasteRows(rows, before) { + var selectedRows = getSelectedRows(), + targetRow = selectedRows[before ? 0 : selectedRows.length - 1], + targetCellCount = targetRow.cells.length; + + // Nothing to paste + if (!rows) { + return; + } + + // Calc target cell count + each(grid, function(row) { + var match; + + targetCellCount = 0; + each(row, function(cell) { + if (cell.real) { + targetCellCount += cell.colspan; + } + + if (cell.elm.parentNode == targetRow) { + match = 1; + } + }); + + if (match) { + return false; + } + }); + + if (!before) { + rows.reverse(); + } + + each(rows, function(row) { + var i, cellCount = row.cells.length, cell; + + // Remove col/rowspans + for (i = 0; i < cellCount; i++) { + cell = row.cells[i]; + setSpanVal(cell, 'colSpan', 1); + setSpanVal(cell, 'rowSpan', 1); + } + + // Needs more cells + for (i = cellCount; i < targetCellCount; i++) { + row.appendChild(cloneCell(row.cells[cellCount - 1])); + } + + // Needs less cells + for (i = targetCellCount; i < cellCount; i++) { + dom.remove(row.cells[i]); + } + + // Add before/after + if (before) { + targetRow.parentNode.insertBefore(row, targetRow); + } else { + dom.insertAfter(row, targetRow); + } + }); + + // Remove current selection + dom.removeClass(dom.select('td.mce-item-selected,th.mce-item-selected'), 'mce-item-selected'); + } + + function getPos(target) { + var pos; + + each(grid, function(row, y) { + each(row, function(cell, x) { + if (cell.elm == target) { + pos = {x : x, y : y}; + return false; + } + }); + + return !pos; + }); + + return pos; + } + + function setStartCell(cell) { + startPos = getPos(cell); + } + + function findEndPos() { + var maxX, maxY; + + maxX = maxY = 0; + + each(grid, function(row, y) { + each(row, function(cell, x) { + var colSpan, rowSpan; + + if (isCellSelected(cell)) { + cell = grid[y][x]; + + if (x > maxX) { + maxX = x; + } + + if (y > maxY) { + maxY = y; + } + + if (cell.real) { + colSpan = cell.colspan - 1; + rowSpan = cell.rowspan - 1; + + if (colSpan) { + if (x + colSpan > maxX) { + maxX = x + colSpan; + } + } + + if (rowSpan) { + if (y + rowSpan > maxY) { + maxY = y + rowSpan; + } + } + } + } + }); + }); + + return {x : maxX, y : maxY}; + } + + function setEndCell(cell) { + var startX, startY, endX, endY, maxX, maxY, colSpan, rowSpan, x, y; + + endPos = getPos(cell); + + if (startPos && endPos) { + // Get start/end positions + startX = Math.min(startPos.x, endPos.x); + startY = Math.min(startPos.y, endPos.y); + endX = Math.max(startPos.x, endPos.x); + endY = Math.max(startPos.y, endPos.y); + + // Expand end positon to include spans + maxX = endX; + maxY = endY; + + // Expand startX + for (y = startY; y <= maxY; y++) { + cell = grid[y][startX]; + + if (!cell.real) { + if (startX - (cell.colspan - 1) < startX) { + startX -= cell.colspan - 1; + } + } + } + + // Expand startY + for (x = startX; x <= maxX; x++) { + cell = grid[startY][x]; + + if (!cell.real) { + if (startY - (cell.rowspan - 1) < startY) { + startY -= cell.rowspan - 1; + } + } + } + + // Find max X, Y + for (y = startY; y <= endY; y++) { + for (x = startX; x <= endX; x++) { + cell = grid[y][x]; + + if (cell.real) { + colSpan = cell.colspan - 1; + rowSpan = cell.rowspan - 1; + + if (colSpan) { + if (x + colSpan > maxX) { + maxX = x + colSpan; + } + } + + if (rowSpan) { + if (y + rowSpan > maxY) { + maxY = y + rowSpan; + } + } + } + } + } + + // Remove current selection + dom.removeClass(dom.select('td.mce-item-selected,th.mce-item-selected'), 'mce-item-selected'); + + // Add new selection + for (y = startY; y <= maxY; y++) { + for (x = startX; x <= maxX; x++) { + if (grid[y][x]) { + dom.addClass(grid[y][x].elm, 'mce-item-selected'); + } + } + } + } + } + + table = table || dom.getParent(selection.getStart(), 'table'); + + buildGrid(); + + selectedCell = dom.getParent(selection.getStart(), 'th,td'); + if (selectedCell) { + startPos = getPos(selectedCell); + endPos = findEndPos(); + selectedCell = getCell(startPos.x, startPos.y); + } + + Tools.extend(this, { + deleteTable: deleteTable, + split: split, + merge: merge, + insertRow: insertRow, + insertCol: insertCol, + deleteCols: deleteCols, + deleteRows: deleteRows, + cutRows: cutRows, + copyRows: copyRows, + pasteRows: pasteRows, + getPos: getPos, + setStartCell: setStartCell, + setEndCell: setEndCell + }); + }; +}); + +// Included from: js/tinymce/plugins/table/classes/Quirks.js + +/** + * Quirks.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class includes fixes for various browser quirks. + * + * @class tinymce.tableplugin.Quirks + * @private + */ +define("tinymce/tableplugin/Quirks", [ + "tinymce/util/VK", + "tinymce/Env", + "tinymce/util/Tools" +], function(VK, Env, Tools) { + var each = Tools.each; + + function getSpanVal(td, name) { + return parseInt(td.getAttribute(name) || 1, 10); + } + + return function(editor) { + /** + * Fixed caret movement around tables on WebKit. + */ + function moveWebKitSelection() { + function eventHandler(e) { + var key = e.keyCode; + + function handle(upBool, sourceNode) { + var siblingDirection = upBool ? 'previousSibling' : 'nextSibling'; + var currentRow = editor.dom.getParent(sourceNode, 'tr'); + var siblingRow = currentRow[siblingDirection]; + + if (siblingRow) { + moveCursorToRow(editor, sourceNode, siblingRow, upBool); + e.preventDefault(); + return true; + } else { + var tableNode = editor.dom.getParent(currentRow, 'table'); + var middleNode = currentRow.parentNode; + var parentNodeName = middleNode.nodeName.toLowerCase(); + if (parentNodeName === 'tbody' || parentNodeName === (upBool ? 'tfoot' : 'thead')) { + var targetParent = getTargetParent(upBool, tableNode, middleNode, 'tbody'); + if (targetParent !== null) { + return moveToRowInTarget(upBool, targetParent, sourceNode); + } + } + return escapeTable(upBool, currentRow, siblingDirection, tableNode); + } + } + + function getTargetParent(upBool, topNode, secondNode, nodeName) { + var tbodies = editor.dom.select('>' + nodeName, topNode); + var position = tbodies.indexOf(secondNode); + if (upBool && position === 0 || !upBool && position === tbodies.length - 1) { + return getFirstHeadOrFoot(upBool, topNode); + } else if (position === -1) { + var topOrBottom = secondNode.tagName.toLowerCase() === 'thead' ? 0 : tbodies.length - 1; + return tbodies[topOrBottom]; + } else { + return tbodies[position + (upBool ? -1 : 1)]; + } + } + + function getFirstHeadOrFoot(upBool, parent) { + var tagName = upBool ? 'thead' : 'tfoot'; + var headOrFoot = editor.dom.select('>' + tagName, parent); + return headOrFoot.length !== 0 ? headOrFoot[0] : null; + } + + function moveToRowInTarget(upBool, targetParent, sourceNode) { + var targetRow = getChildForDirection(targetParent, upBool); + + if (targetRow) { + moveCursorToRow(editor, sourceNode, targetRow, upBool); + } + + e.preventDefault(); + return true; + } + + function escapeTable(upBool, currentRow, siblingDirection, table) { + var tableSibling = table[siblingDirection]; + + if (tableSibling) { + moveCursorToStartOfElement(tableSibling); + return true; + } else { + var parentCell = editor.dom.getParent(table, 'td,th'); + if (parentCell) { + return handle(upBool, parentCell, e); + } else { + var backUpSibling = getChildForDirection(currentRow, !upBool); + moveCursorToStartOfElement(backUpSibling); + e.preventDefault(); + return false; + } + } + } + + function getChildForDirection(parent, up) { + var child = parent && parent[up ? 'lastChild' : 'firstChild']; + // BR is not a valid table child to return in this case we return the table cell + return child && child.nodeName === 'BR' ? editor.dom.getParent(child, 'td,th') : child; + } + + function moveCursorToStartOfElement(n) { + editor.selection.setCursorLocation(n, 0); + } + + function isVerticalMovement() { + return key == VK.UP || key == VK.DOWN; + } + + function isInTable(editor) { + var node = editor.selection.getNode(); + var currentRow = editor.dom.getParent(node, 'tr'); + return currentRow !== null; + } + + function columnIndex(column) { + var colIndex = 0; + var c = column; + while (c.previousSibling) { + c = c.previousSibling; + colIndex = colIndex + getSpanVal(c, "colspan"); + } + return colIndex; + } + + function findColumn(rowElement, columnIndex) { + var c = 0, r = 0; + + each(rowElement.children, function(cell, i) { + c = c + getSpanVal(cell, "colspan"); + r = i; + if (c > columnIndex) { + return false; + } + }); + return r; + } + + function moveCursorToRow(ed, node, row, upBool) { + var srcColumnIndex = columnIndex(editor.dom.getParent(node, 'td,th')); + var tgtColumnIndex = findColumn(row, srcColumnIndex); + var tgtNode = row.childNodes[tgtColumnIndex]; + var rowCellTarget = getChildForDirection(tgtNode, upBool); + moveCursorToStartOfElement(rowCellTarget || tgtNode); + } + + function shouldFixCaret(preBrowserNode) { + var newNode = editor.selection.getNode(); + var newParent = editor.dom.getParent(newNode, 'td,th'); + var oldParent = editor.dom.getParent(preBrowserNode, 'td,th'); + + return newParent && newParent !== oldParent && checkSameParentTable(newParent, oldParent); + } + + function checkSameParentTable(nodeOne, NodeTwo) { + return editor.dom.getParent(nodeOne, 'TABLE') === editor.dom.getParent(NodeTwo, 'TABLE'); + } + + if (isVerticalMovement() && isInTable(editor)) { + var preBrowserNode = editor.selection.getNode(); + setTimeout(function() { + if (shouldFixCaret(preBrowserNode)) { + handle(!e.shiftKey && key === VK.UP, preBrowserNode, e); + } + }, 0); + } + } + + editor.on('KeyDown', function(e) { + eventHandler(e); + }); + } + + function fixBeforeTableCaretBug() { + // Checks if the selection/caret is at the start of the specified block element + function isAtStart(rng, par) { + var doc = par.ownerDocument, rng2 = doc.createRange(), elm; + + rng2.setStartBefore(par); + rng2.setEnd(rng.endContainer, rng.endOffset); + + elm = doc.createElement('body'); + elm.appendChild(rng2.cloneContents()); + + // Check for text characters of other elements that should be treated as content + return elm.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi, '-').replace(/<[^>]+>/g, '').length === 0; + } + + // Fixes an bug where it's impossible to place the caret before a table in Gecko + // this fix solves it by detecting when the caret is at the beginning of such a table + // and then manually moves the caret infront of the table + editor.on('KeyDown', function(e) { + var rng, table, dom = editor.dom; + + // On gecko it's not possible to place the caret before a table + if (e.keyCode == 37 || e.keyCode == 38) { + rng = editor.selection.getRng(); + table = dom.getParent(rng.startContainer, 'table'); + + if (table && editor.getBody().firstChild == table) { + if (isAtStart(rng, table)) { + rng = dom.createRng(); + + rng.setStartBefore(table); + rng.setEndBefore(table); + + editor.selection.setRng(rng); + + e.preventDefault(); + } + } + } + }); + } + + // Fixes an issue on Gecko where it's impossible to place the caret behind a table + // This fix will force a paragraph element after the table but only when the forced_root_block setting is enabled + function fixTableCaretPos() { + editor.on('KeyDown SetContent VisualAid', function() { + var last; + + // Skip empty text nodes from the end + for (last = editor.getBody().lastChild; last; last = last.previousSibling) { + if (last.nodeType == 3) { + if (last.nodeValue.length > 0) { + break; + } + } else if (last.nodeType == 1 && !last.getAttribute('data-mce-bogus')) { + break; + } + } + + if (last && last.nodeName == 'TABLE') { + if (editor.settings.forced_root_block) { + editor.dom.add( + editor.getBody(), + editor.settings.forced_root_block, + editor.settings.forced_root_block_attrs, + Env.ie && Env.ie < 11 ? ' ' : '<br data-mce-bogus="1" />' + ); + } else { + editor.dom.add(editor.getBody(), 'br', {'data-mce-bogus': '1'}); + } + } + }); + + editor.on('PreProcess', function(o) { + var last = o.node.lastChild; + + if (last && (last.nodeName == "BR" || (last.childNodes.length == 1 && + (last.firstChild.nodeName == 'BR' || last.firstChild.nodeValue == '\u00a0'))) && + last.previousSibling && last.previousSibling.nodeName == "TABLE") { + editor.dom.remove(last); + } + }); + } + + // this nasty hack is here to work around some WebKit selection bugs. + function fixTableCellSelection() { + function tableCellSelected(ed, rng, n, currentCell) { + // The decision of when a table cell is selected is somewhat involved. The fact that this code is + // required is actually a pointer to the root cause of this bug. A cell is selected when the start + // and end offsets are 0, the start container is a text, and the selection node is either a TR (most cases) + // or the parent of the table (in the case of the selection containing the last cell of a table). + var TEXT_NODE = 3, table = ed.dom.getParent(rng.startContainer, 'TABLE'); + var tableParent, allOfCellSelected, tableCellSelection; + + if (table) { + tableParent = table.parentNode; + } + + allOfCellSelected = rng.startContainer.nodeType == TEXT_NODE && + rng.startOffset === 0 && + rng.endOffset === 0 && + currentCell && + (n.nodeName == "TR" || n == tableParent); + + tableCellSelection = (n.nodeName == "TD" || n.nodeName == "TH") && !currentCell; + + return allOfCellSelected || tableCellSelection; + } + + function fixSelection() { + var rng = editor.selection.getRng(); + var n = editor.selection.getNode(); + var currentCell = editor.dom.getParent(rng.startContainer, 'TD,TH'); + + if (!tableCellSelected(editor, rng, n, currentCell)) { + return; + } + + if (!currentCell) { + currentCell = n; + } + + // Get the very last node inside the table cell + var end = currentCell.lastChild; + while (end.lastChild) { + end = end.lastChild; + } + + // Select the entire table cell. Nothing outside of the table cell should be selected. + rng.setEnd(end, end.nodeValue.length); + editor.selection.setRng(rng); + } + + editor.on('KeyDown', function() { + fixSelection(); + }); + + editor.on('MouseDown', function(e) { + if (e.button != 2) { + fixSelection(); + } + }); + } + + /** + * Delete table if all cells are selected. + */ + function deleteTable() { + editor.on('keydown', function(e) { + if ((e.keyCode == VK.DELETE || e.keyCode == VK.BACKSPACE) && !e.isDefaultPrevented()) { + var table = editor.dom.getParent(editor.selection.getStart(), 'table'); + + if (table) { + var cells = editor.dom.select('td,th', table), i = cells.length; + while (i--) { + if (!editor.dom.hasClass(cells[i], 'mce-item-selected')) { + return; + } + } + + e.preventDefault(); + editor.execCommand('mceTableDelete'); + } + } + }); + } + + deleteTable(); + + if (Env.webkit) { + moveWebKitSelection(); + fixTableCellSelection(); + } + + if (Env.gecko) { + fixBeforeTableCaretBug(); + fixTableCaretPos(); + } + + if (Env.ie > 10) { + fixBeforeTableCaretBug(); + fixTableCaretPos(); + } + }; +}); + +// Included from: js/tinymce/plugins/table/classes/CellSelection.js + +/** + * CellSelection.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles table cell selection by faking it using a css class that gets applied + * to cells when dragging the mouse from one cell to another. + * + * @class tinymce.tableplugin.CellSelection + * @private + */ +define("tinymce/tableplugin/CellSelection", [ + "tinymce/tableplugin/TableGrid", + "tinymce/dom/TreeWalker", + "tinymce/util/Tools" +], function(TableGrid, TreeWalker, Tools) { + return function(editor) { + var dom = editor.dom, tableGrid, startCell, startTable, hasCellSelection = true; + + function clear() { + // Restore selection possibilities + editor.getBody().style.webkitUserSelect = ''; + + if (hasCellSelection) { + editor.dom.removeClass( + editor.dom.select('td.mce-item-selected,th.mce-item-selected'), + 'mce-item-selected' + ); + + hasCellSelection = false; + } + } + + function cellSelectionHandler(e) { + var sel, table, target = e.target; + + if (startCell && (tableGrid || target != startCell) && (target.nodeName == 'TD' || target.nodeName == 'TH')) { + table = dom.getParent(target, 'table'); + if (table == startTable) { + if (!tableGrid) { + tableGrid = new TableGrid(editor, table); + tableGrid.setStartCell(startCell); + + editor.getBody().style.webkitUserSelect = 'none'; + } + + tableGrid.setEndCell(target); + hasCellSelection = true; + } + + // Remove current selection + sel = editor.selection.getSel(); + + try { + if (sel.removeAllRanges) { + sel.removeAllRanges(); + } else { + sel.empty(); + } + } catch (ex) { + // IE9 might throw errors here + } + + e.preventDefault(); + } + } + + // Add cell selection logic + editor.on('MouseDown', function(e) { + if (e.button != 2) { + clear(); + + startCell = dom.getParent(e.target, 'td,th'); + startTable = dom.getParent(startCell, 'table'); + } + }); + + editor.on('mouseover', cellSelectionHandler); + + editor.on('remove', function() { + dom.unbind(editor.getDoc(), 'mouseover', cellSelectionHandler); + }); + + editor.on('MouseUp', function() { + var rng, sel = editor.selection, selectedCells, walker, node, lastNode, endNode; + + function setPoint(node, start) { + var walker = new TreeWalker(node, node); + + do { + // Text node + if (node.nodeType == 3 && Tools.trim(node.nodeValue).length !== 0) { + if (start) { + rng.setStart(node, 0); + } else { + rng.setEnd(node, node.nodeValue.length); + } + + return; + } + + // BR element + if (node.nodeName == 'BR') { + if (start) { + rng.setStartBefore(node); + } else { + rng.setEndBefore(node); + } + + return; + } + } while ((node = (start ? walker.next() : walker.prev()))); + } + + // Move selection to startCell + if (startCell) { + if (tableGrid) { + editor.getBody().style.webkitUserSelect = ''; + } + + // Try to expand text selection as much as we can only Gecko supports cell selection + selectedCells = dom.select('td.mce-item-selected,th.mce-item-selected'); + if (selectedCells.length > 0) { + rng = dom.createRng(); + node = selectedCells[0]; + endNode = selectedCells[selectedCells.length - 1]; + rng.setStartBefore(node); + rng.setEndAfter(node); + + setPoint(node, 1); + walker = new TreeWalker(node, dom.getParent(selectedCells[0], 'table')); + + do { + if (node.nodeName == 'TD' || node.nodeName == 'TH') { + if (!dom.hasClass(node, 'mce-item-selected')) { + break; + } + + lastNode = node; + } + } while ((node = walker.next())); + + setPoint(lastNode); + + sel.setRng(rng); + } + + editor.nodeChanged(); + startCell = tableGrid = startTable = null; + } + }); + + editor.on('KeyUp', function() { + clear(); + }); + + return { + clear: clear + }; + }; +}); + +// Included from: js/tinymce/plugins/table/classes/Plugin.js + +/** + * Plugin.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class contains all core logic for the table plugin. + * + * @class tinymce.tableplugin.Plugin + * @private + */ +define("tinymce/tableplugin/Plugin", [ + "tinymce/tableplugin/TableGrid", + "tinymce/tableplugin/Quirks", + "tinymce/tableplugin/CellSelection", + "tinymce/util/Tools", + "tinymce/dom/TreeWalker", + "tinymce/Env", + "tinymce/PluginManager" +], function(TableGrid, Quirks, CellSelection, Tools, TreeWalker, Env, PluginManager) { + var each = Tools.each; + + function Plugin(editor) { + var winMan, clipboardRows, self = this; // Might be selected cells on reload + + function removePxSuffix(size) { + return size ? size.replace(/px$/, '') : ""; + } + + function addSizeSuffix(size) { + if (/^[0-9]+$/.test(size)) { + size += "px"; + } + + return size; + } + + function unApplyAlign(elm) { + each('left center right'.split(' '), function(name) { + editor.formatter.remove('align' + name, {}, elm); + }); + } + + function tableDialog() { + var dom = editor.dom, tableElm, data; + + tableElm = dom.getParent(editor.selection.getStart(), 'table'); + + data = { + width: removePxSuffix(dom.getStyle(tableElm, 'width') || dom.getAttrib(tableElm, 'width')), + height: removePxSuffix(dom.getStyle(tableElm, 'height') || dom.getAttrib(tableElm, 'height')), + cellspacing: dom.getAttrib(tableElm, 'cellspacing'), + cellpadding: dom.getAttrib(tableElm, 'cellpadding'), + border: dom.getAttrib(tableElm, 'border'), + caption: !!dom.select('caption', tableElm)[0] + }; + + each('left center right'.split(' '), function(name) { + if (editor.formatter.matchNode(tableElm, 'align' + name)) { + data.align = name; + } + }); + + editor.windowManager.open({ + title: "Table properties", + items: { + type: 'form', + layout: 'grid', + columns: 2, + data: data, + defaults: { + type: 'textbox', + maxWidth: 50 + }, + items: [ + {label: 'Width', name: 'width'}, + {label: 'Height', name: 'height'}, + {label: 'Cell spacing', name: 'cellspacing'}, + {label: 'Cell padding', name: 'cellpadding'}, + {label: 'Border', name: 'border'}, + {label: 'Caption', name: 'caption', type: 'checkbox'}, + { + label: 'Alignment', + minWidth: 90, + name: 'align', + type: 'listbox', + text: 'None', + maxWidth: null, + values: [ + {text: 'None', value: ''}, + {text: 'Left', value: 'left'}, + {text: 'Center', value: 'center'}, + {text: 'Right', value: 'right'} + ] + } + ] + }, + + onsubmit: function() { + var data = this.toJSON(), captionElm; + + editor.undoManager.transact(function() { + editor.dom.setAttribs(tableElm, { + cellspacing: data.cellspacing, + cellpadding: data.cellpadding, + border: data.border + }); + + editor.dom.setStyles(tableElm, { + width: addSizeSuffix(data.width), + height: addSizeSuffix(data.height) + }); + + // Toggle caption on/off + captionElm = dom.select('caption', tableElm)[0]; + + if (captionElm && !data.caption) { + dom.remove(captionElm); + } + + if (!captionElm && data.caption) { + captionElm = dom.create('caption'); + captionElm.innerHTML = !Env.ie ? '<br data-mce-bogus="1"/>' : '\u00a0'; + tableElm.insertBefore(captionElm, tableElm.firstChild); + } + + unApplyAlign(tableElm); + if (data.align) { + editor.formatter.apply('align' + data.align, {}, tableElm); + } + + editor.focus(); + editor.addVisual(); + }); + } + }); + } + + function mergeDialog(grid, cell) { + editor.windowManager.open({ + title: "Merge cells", + body: [ + {label: 'Cols', name: 'cols', type: 'textbox', size: 10}, + {label: 'Rows', name: 'rows', type: 'textbox', size: 10} + ], + onsubmit: function() { + var data = this.toJSON(); + + editor.undoManager.transact(function() { + grid.merge(cell, data.cols, data.rows); + }); + } + }); + } + + function cellDialog() { + var dom = editor.dom, cellElm, data, cells = []; + + // Get selected cells or the current cell + cells = editor.dom.select('td.mce-item-selected,th.mce-item-selected'); + cellElm = editor.dom.getParent(editor.selection.getStart(), 'td,th'); + if (!cells.length && cellElm) { + cells.push(cellElm); + } + + cellElm = cellElm || cells[0]; + + if (!cellElm) { + // If this element is null, return now to avoid crashing. + return; + } + + data = { + width: removePxSuffix(dom.getStyle(cellElm, 'width') || dom.getAttrib(cellElm, 'width')), + height: removePxSuffix(dom.getStyle(cellElm, 'height') || dom.getAttrib(cellElm, 'height')), + scope: dom.getAttrib(cellElm, 'scope') + }; + + data.type = cellElm.nodeName.toLowerCase(); + + each('left center right'.split(' '), function(name) { + if (editor.formatter.matchNode(cellElm, 'align' + name)) { + data.align = name; + } + }); + + editor.windowManager.open({ + title: "Cell properties", + items: { + type: 'form', + data: data, + layout: 'grid', + columns: 2, + defaults: { + type: 'textbox', + maxWidth: 50 + }, + items: [ + {label: 'Width', name: 'width'}, + {label: 'Height', name: 'height'}, + { + label: 'Cell type', + name: 'type', + type: 'listbox', + text: 'None', + minWidth: 90, + maxWidth: null, + values: [ + {text: 'Cell', value: 'td'}, + {text: 'Header cell', value: 'th'} + ] + }, + { + label: 'Scope', + name: 'scope', + type: 'listbox', + text: 'None', + minWidth: 90, + maxWidth: null, + values: [ + {text: 'None', value: ''}, + {text: 'Row', value: 'row'}, + {text: 'Column', value: 'col'}, + {text: 'Row group', value: 'rowgroup'}, + {text: 'Column group', value: 'colgroup'} + ] + }, + { + label: 'Alignment', + name: 'align', + type: 'listbox', + text: 'None', + minWidth: 90, + maxWidth: null, + values: [ + {text: 'None', value: ''}, + {text: 'Left', value: 'left'}, + {text: 'Center', value: 'center'}, + {text: 'Right', value: 'right'} + ] + } + ] + }, + + onsubmit: function() { + var data = this.toJSON(); + + editor.undoManager.transact(function() { + each(cells, function(cellElm) { + editor.dom.setAttrib(cellElm, 'scope', data.scope); + + editor.dom.setStyles(cellElm, { + width: addSizeSuffix(data.width), + height: addSizeSuffix(data.height) + }); + + // Switch cell type + if (data.type && cellElm.nodeName.toLowerCase() != data.type) { + cellElm = dom.rename(cellElm, data.type); + } + + // Apply/remove alignment + unApplyAlign(cellElm); + if (data.align) { + editor.formatter.apply('align' + data.align, {}, cellElm); + } + }); + + editor.focus(); + }); + } + }); + } + + function rowDialog() { + var dom = editor.dom, tableElm, cellElm, rowElm, data, rows = []; + + tableElm = editor.dom.getParent(editor.selection.getStart(), 'table'); + cellElm = editor.dom.getParent(editor.selection.getStart(), 'td,th'); + + each(tableElm.rows, function(row) { + each(row.cells, function(cell) { + if (dom.hasClass(cell, 'mce-item-selected') || cell == cellElm) { + rows.push(row); + return false; + } + }); + }); + + rowElm = rows[0]; + if (!rowElm) { + // If this element is null, return now to avoid crashing. + return; + } + + data = { + height: removePxSuffix(dom.getStyle(rowElm, 'height') || dom.getAttrib(rowElm, 'height')), + scope: dom.getAttrib(rowElm, 'scope') + }; + + data.type = rowElm.parentNode.nodeName.toLowerCase(); + + each('left center right'.split(' '), function(name) { + if (editor.formatter.matchNode(rowElm, 'align' + name)) { + data.align = name; + } + }); + + editor.windowManager.open({ + title: "Row properties", + items: { + type: 'form', + data: data, + columns: 2, + defaults: { + type: 'textbox' + }, + items: [ + { + type: 'listbox', + name: 'type', + label: 'Row type', + text: 'None', + maxWidth: null, + values: [ + {text: 'Header', value: 'thead'}, + {text: 'Body', value: 'tbody'}, + {text: 'Footer', value: 'tfoot'} + ] + }, + { + type: 'listbox', + name: 'align', + label: 'Alignment', + text: 'None', + maxWidth: null, + values: [ + {text: 'None', value: ''}, + {text: 'Left', value: 'left'}, + {text: 'Center', value: 'center'}, + {text: 'Right', value: 'right'} + ] + }, + {label: 'Height', name: 'height'} + ] + }, + + onsubmit: function() { + var data = this.toJSON(), tableElm, oldParentElm, parentElm; + + editor.undoManager.transact(function() { + var toType = data.type; + + each(rows, function(rowElm) { + editor.dom.setAttrib(rowElm, 'scope', data.scope); + + editor.dom.setStyles(rowElm, { + height: addSizeSuffix(data.height) + }); + + if (toType != rowElm.parentNode.nodeName.toLowerCase()) { + tableElm = dom.getParent(rowElm, 'table'); + + oldParentElm = rowElm.parentNode; + parentElm = dom.select(toType, tableElm)[0]; + if (!parentElm) { + parentElm = dom.create(toType); + if (tableElm.firstChild) { + tableElm.insertBefore(parentElm, tableElm.firstChild); + } else { + tableElm.appendChild(parentElm); + } + } + + parentElm.appendChild(rowElm); + + if (!oldParentElm.hasChildNodes()) { + dom.remove(oldParentElm); + } + } + + // Apply/remove alignment + unApplyAlign(rowElm); + if (data.align) { + editor.formatter.apply('align' + data.align, {}, rowElm); + } + }); + + editor.focus(); + }); + } + }); + } + + function cmd(command) { + return function() { + editor.execCommand(command); + }; + } + + function insertTable(cols, rows) { + var y, x, html; + + html = '<table><tbody>'; + + for (y = 0; y < rows; y++) { + html += '<tr>'; + + for (x = 0; x < cols; x++) { + html += '<td>' + (Env.ie ? " " : '<br>') + '</td>'; + } + + html += '</tr>'; + } + + html += '</tbody></table>'; + + editor.insertContent(html); + } + + function handleDisabledState(ctrl, selector) { + function bindStateListener() { + ctrl.disabled(!editor.dom.getParent(editor.selection.getStart(), selector)); + + editor.selection.selectorChanged(selector, function(state) { + ctrl.disabled(!state); + }); + } + + if (editor.initialized) { + bindStateListener(); + } else { + editor.on('init', bindStateListener); + } + } + + function postRender() { + /*jshint validthis:true*/ + handleDisabledState(this, 'table'); + } + + function postRenderCell() { + /*jshint validthis:true*/ + handleDisabledState(this, 'td,th'); + } + + function generateTableGrid() { + var html = ''; + + html = '<table role="grid" class="mce-grid mce-grid-border" aria-readonly="true">'; + + for (var y = 0; y < 10; y++) { + html += '<tr>'; + + for (var x = 0; x < 10; x++) { + html += '<td role="gridcell" tabindex="-1"><a id="mcegrid' + (y * 10 + x) + '" href="#" ' + + 'data-mce-x="' + x + '" data-mce-y="' + y + '" ' + + '' + (x + y === 0 ? ' class="mce-active"' : '') + '></a></td>'; + } + + html += '</tr>'; + } + + html += '</table>'; + + html += '<div class="mce-text-center" role="presentation">1 x 1</div>'; + + return html; + } + + function selectGrid(tx, ty, control) { + var table = control.getEl().getElementsByTagName('table')[0]; + var rel = control.parent().rel, x, y, focusCell, cell; + + if (control.isRtl() || rel == 'tl-tr') { + for (y = 9; y >= 0; y--) { + for (x = 0; x < 10; x++) { + cell = table.rows[y].childNodes[x].firstChild; + + editor.dom.toggleClass( + cell, + 'mce-active', + x >= tx && y <= ty + ); + + if (x >= tx && y <= ty) { + focusCell = cell; + } + } + } + + tx = 9 - tx; + table.nextSibling.innerHTML = tx + ' x ' + (ty + 1); + } else { + for (y = 0; y < 10; y++) { + for (x = 0; x < 10; x++) { + cell = table.rows[y].childNodes[x].firstChild; + + editor.dom.toggleClass( + cell, + 'mce-active', + x <= tx && y <= ty + ); + + if (x <= tx && y <= ty) { + focusCell = cell; + } + } + } + + table.nextSibling.innerHTML = (tx + 1) + ' x ' + (ty + 1); + } + + return focusCell.parentNode; + } + + editor.addMenuItem('inserttable', { + text: 'Insert table', + icon: 'table', + context: 'table', + onhide: function() { + var elements = this.menu.items()[0].getEl().getElementsByTagName('a'); + editor.dom.removeClass(elements, 'mce-active'); + editor.dom.addClass(elements[0], 'mce-active'); + }, + menu: [ + { + type: 'container', + html: generateTableGrid(), + + onPostRender: function() { + this.lastX = this.lastY = 0; + }, + + onmousemove: function(e) { + var target = e.target, x, y; + + if (target.nodeName == 'A') { + x = parseInt(target.getAttribute('data-mce-x'), 10); + y = parseInt(target.getAttribute('data-mce-y'), 10); + + if (x !== this.lastX || y !== this.lastY) { + selectGrid(x, y, e.control); + + this.lastX = x; + this.lastY = y; + } + } + }, + + onkeydown: function(e) { + var x = this.lastX, y = this.lastY, isHandled; + + switch (e.keyCode) { + case 37: // DOM_VK_LEFT + if (x > 0) { + x--; + isHandled = true; + } + break; + + case 39: // DOM_VK_RIGHT + isHandled = true; + + if (x < 9) { + x++; + } + break; + + case 38: // DOM_VK_UP + isHandled = true; + + if (y > 0) { + y--; + } + break; + + case 40: // DOM_VK_DOWN + isHandled = true; + + if (y < 9) { + y++; + } + break; + } + + if (isHandled) { + e.preventDefault(); + e.stopPropagation(); + + selectGrid(x, y, e.control).focus(); + + this.lastX = x; + this.lastY = y; + } + }, + + onclick: function(e) { + if (e.target.nodeName == 'A') { + e.preventDefault(); + e.stopPropagation(); + this.parent().cancel(); + + insertTable(this.lastX + 1, this.lastY + 1); + } + } + } + ] + }); + + editor.addMenuItem('tableprops', { + text: 'Table properties', + context: 'table', + onPostRender: postRender, + onclick: tableDialog + }); + + editor.addMenuItem('deletetable', { + text: 'Delete table', + context: 'table', + onPostRender: postRender, + cmd: 'mceTableDelete' + }); + + editor.addMenuItem('cell', { + separator: 'before', + text: 'Cell', + context: 'table', + menu: [ + {text: 'Cell properties', onclick: cmd('mceTableCellProps'), onPostRender: postRenderCell}, + {text: 'Merge cells', onclick: cmd('mceTableMergeCells'), onPostRender: postRenderCell}, + {text: 'Split cell', onclick: cmd('mceTableSplitCells'), onPostRender: postRenderCell} + ] + }); + + editor.addMenuItem('row', { + text: 'Row', + context: 'table', + menu: [ + {text: 'Insert row before', onclick: cmd('mceTableInsertRowBefore'), onPostRender: postRenderCell}, + {text: 'Insert row after', onclick: cmd('mceTableInsertRowAfter'), onPostRender: postRenderCell}, + {text: 'Delete row', onclick: cmd('mceTableDeleteRow'), onPostRender: postRenderCell}, + {text: 'Row properties', onclick: cmd('mceTableRowProps'), onPostRender: postRenderCell}, + {text: '-'}, + {text: 'Cut row', onclick: cmd('mceTableCutRow'), onPostRender: postRenderCell}, + {text: 'Copy row', onclick: cmd('mceTableCopyRow'), onPostRender: postRenderCell}, + {text: 'Paste row before', onclick: cmd('mceTablePasteRowBefore'), onPostRender: postRenderCell}, + {text: 'Paste row after', onclick: cmd('mceTablePasteRowAfter'), onPostRender: postRenderCell} + ] + }); + + editor.addMenuItem('column', { + text: 'Column', + context: 'table', + menu: [ + {text: 'Insert column before', onclick: cmd('mceTableInsertColBefore'), onPostRender: postRenderCell}, + {text: 'Insert column after', onclick: cmd('mceTableInsertColAfter'), onPostRender: postRenderCell}, + {text: 'Delete column', onclick: cmd('mceTableDeleteCol'), onPostRender: postRenderCell} + ] + }); + + var menuItems = []; + each("inserttable tableprops deletetable | cell row column".split(' '), function(name) { + if (name == '|') { + menuItems.push({text: '-'}); + } else { + menuItems.push(editor.menuItems[name]); + } + }); + + editor.addButton("table", { + type: "menubutton", + title: "Table", + menu: menuItems + }); + + // Select whole table is a table border is clicked + if (!Env.isIE) { + editor.on('click', function(e) { + e = e.target; + + if (e.nodeName === 'TABLE') { + editor.selection.select(e); + editor.nodeChanged(); + } + }); + } + + self.quirks = new Quirks(editor); + + editor.on('Init', function() { + winMan = editor.windowManager; + self.cellSelection = new CellSelection(editor); + }); + + // Register action commands + each({ + mceTableSplitCells: function(grid) { + grid.split(); + }, + + mceTableMergeCells: function(grid) { + var rowSpan, colSpan, cell; + + cell = editor.dom.getParent(editor.selection.getStart(), 'th,td'); + if (cell) { + rowSpan = cell.rowSpan; + colSpan = cell.colSpan; + } + + if (!editor.dom.select('td.mce-item-selected,th.mce-item-selected').length) { + mergeDialog(grid, cell); + } else { + grid.merge(); + } + }, + + mceTableInsertRowBefore: function(grid) { + grid.insertRow(true); + }, + + mceTableInsertRowAfter: function(grid) { + grid.insertRow(); + }, + + mceTableInsertColBefore: function(grid) { + grid.insertCol(true); + }, + + mceTableInsertColAfter: function(grid) { + grid.insertCol(); + }, + + mceTableDeleteCol: function(grid) { + grid.deleteCols(); + }, + + mceTableDeleteRow: function(grid) { + grid.deleteRows(); + }, + + mceTableCutRow: function(grid) { + clipboardRows = grid.cutRows(); + }, + + mceTableCopyRow: function(grid) { + clipboardRows = grid.copyRows(); + }, + + mceTablePasteRowBefore: function(grid) { + grid.pasteRows(clipboardRows, true); + }, + + mceTablePasteRowAfter: function(grid) { + grid.pasteRows(clipboardRows); + }, + + mceTableDelete: function(grid) { + grid.deleteTable(); + } + }, function(func, name) { + editor.addCommand(name, function() { + var grid = new TableGrid(editor); + + if (grid) { + func(grid); + editor.execCommand('mceRepaint'); + self.cellSelection.clear(); + } + }); + }); + + // Register dialog commands + each({ + mceInsertTable: function() { + tableDialog(); + }, + + mceTableRowProps: rowDialog, + mceTableCellProps: cellDialog + }, function(func, name) { + editor.addCommand(name, function(ui, val) { + func(val); + }); + }); + } + + PluginManager.add('table', Plugin); +}); + +expose(["tinymce/tableplugin/TableGrid","tinymce/tableplugin/Quirks","tinymce/tableplugin/CellSelection","tinymce/tableplugin/Plugin"]); +})(this); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/plugins/table/plugin.min.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/table/plugin.min.js new file mode 100755 index 00000000000..bf5554bb4ee --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/plugins/table/plugin.min.js @@ -0,0 +1 @@ +!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i<e.length;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){for(var r=0;r<n.length;r++){for(var i=e,o=n[r],a=o.split(/[.\/]/),l=0;l<a.length-1;++l)i[a[l]]===t&&(i[a[l]]={}),i=i[a[l]];i[a[a.length-1]]=s[o]}}var s={},l="tinymce/tableplugin/TableGrid",c="tinymce/util/Tools",d="tinymce/Env",u="tinymce/tableplugin/Quirks",f="tinymce/util/VK",p="tinymce/tableplugin/CellSelection",m="tinymce/dom/TreeWalker",h="tinymce/tableplugin/Plugin",g="tinymce/PluginManager";r(l,[c,d],function(e,n){function r(e,t){return parseInt(e.getAttribute(t)||1,10)}var i=e.each;return function(o,a){function s(){var e=0;A=[],i(["thead","tbody","tfoot"],function(t){var n=M.select("> "+t+" tr",a);i(n,function(n,o){o+=e,i(M.select("> td, > th",n),function(e,n){var i,a,s,l;if(A[o])for(;A[o][n];)n++;for(s=r(e,"rowspan"),l=r(e,"colspan"),a=o;o+s>a;a++)for(A[a]||(A[a]=[]),i=n;n+l>i;i++)A[a][i]={part:t,real:a==o&&i==n,elm:e,rowspan:s,colspan:l}})}),e+=n.length})}function l(e,t){return e=e.cloneNode(t),e.removeAttribute("id"),e}function c(e,t){var n;return n=A[t],n?n[e]:void 0}function d(e,t,n){e&&(n=parseInt(n,10),1===n?e.removeAttribute(t,1):e.setAttribute(t,n,1))}function u(e){return e&&(M.hasClass(e.elm,"mce-item-selected")||e==D)}function f(){var e=[];return i(a.rows,function(t){i(t.cells,function(n){return M.hasClass(n,"mce-item-selected")||D&&n==D.elm?(e.push(t),!1):void 0})}),e}function p(){var e=M.createRng();e.setStartAfter(a),e.setEndAfter(a),L.setRng(e),M.remove(a)}function m(t){var r,a={};return o.settings.table_clone_elements!==!1&&(a=e.makeMap((o.settings.table_clone_elements||"strong em b i span font h1 h2 h3 h4 h5 h6 p div").toUpperCase(),/[ ,]/)),e.walk(t,function(e){var o;return 3==e.nodeType?(i(M.getParents(e.parentNode,null,t).reverse(),function(e){a[e.nodeName]&&(e=l(e,!1),r?o&&o.appendChild(e):r=o=e,o=e)}),o&&(o.innerHTML=n.ie?" ":'<br data-mce-bogus="1" />'),!1):void 0},"childNodes"),t=l(t,!1),d(t,"rowSpan",1),d(t,"colSpan",1),r?t.appendChild(r):n.ie||(t.innerHTML='<br data-mce-bogus="1" />'),t}function h(){var e=M.createRng(),t;return i(M.select("tr",a),function(e){0===e.cells.length&&M.remove(e)}),0===M.select("tr",a).length?(e.setStartBefore(a),e.setEndBefore(a),L.setRng(e),void M.remove(a)):(i(M.select("thead,tbody,tfoot",a),function(e){0===e.rows.length&&M.remove(e)}),s(),void(B&&(t=A[Math.min(A.length-1,B.y)],t&&(L.select(t[Math.min(t.length-1,B.x)].elm,!0),L.collapse(!0)))))}function g(e,t,n,r){var i,o,a,s,l;for(i=A[t][e].elm.parentNode,a=1;n>=a;a++)if(i=M.getNext(i,"tr")){for(o=e;o>=0;o--)if(l=A[t+a][o].elm,l.parentNode==i){for(s=1;r>=s;s++)M.insertAfter(m(l),l);break}if(-1==o)for(s=1;r>=s;s++)i.insertBefore(m(i.cells[0]),i.cells[0])}}function v(){i(A,function(e,t){i(e,function(e,n){var i,o,a;if(u(e)&&(e=e.elm,i=r(e,"colspan"),o=r(e,"rowspan"),i>1||o>1)){for(d(e,"rowSpan",1),d(e,"colSpan",1),a=0;i-1>a;a++)M.insertAfter(m(e),e);g(n,t,o-1,i)}})})}function y(t,n,r){var o,a,l,f,p,m,g,y,b,C,x;if(t?(o=k(t),a=o.x,l=o.y,f=a+(n-1),p=l+(r-1)):(B=P=null,i(A,function(e,t){i(e,function(e,n){u(e)&&(B||(B={x:n,y:t}),P={x:n,y:t})})}),B&&(a=B.x,l=B.y,f=P.x,p=P.y)),y=c(a,l),b=c(f,p),y&&b&&y.part==b.part){for(v(),s(),y=c(a,l).elm,d(y,"colSpan",f-a+1),d(y,"rowSpan",p-l+1),g=l;p>=g;g++)for(m=a;f>=m;m++)A[g]&&A[g][m]&&(t=A[g][m].elm,t!=y&&(C=e.grep(t.childNodes),i(C,function(e){y.appendChild(e)}),C.length&&(C=e.grep(y.childNodes),x=0,i(C,function(e){"BR"==e.nodeName&&M.getAttrib(e,"data-mce-bogus")&&x++<C.length-1&&y.removeChild(e)})),M.remove(t)));h()}}function b(e){var n,o,a,s,c,f,p,h,g;if(i(A,function(t,r){return i(t,function(t){return u(t)&&(t=t.elm,c=t.parentNode,f=l(c,!1),n=r,e)?!1:void 0}),e?!n:void 0}),n!==t){for(s=0;s<A[0].length;s++)if(A[n][s]&&(o=A[n][s].elm,o!=a)){if(e){if(n>0&&A[n-1][s]&&(h=A[n-1][s].elm,g=r(h,"rowSpan"),g>1)){d(h,"rowSpan",g+1);continue}}else if(g=r(o,"rowspan"),g>1){d(o,"rowSpan",g+1);continue}p=m(o),d(p,"colSpan",o.colSpan),f.appendChild(p),a=o}f.hasChildNodes()&&(e?c.parentNode.insertBefore(f,c):M.insertAfter(f,c))}}function C(e){var t,n;i(A,function(n){return i(n,function(n,r){return u(n)&&(t=r,e)?!1:void 0}),e?!t:void 0}),i(A,function(i,o){var a,s,l;i[t]&&(a=i[t].elm,a!=n&&(l=r(a,"colspan"),s=r(a,"rowspan"),1==l?e?(a.parentNode.insertBefore(m(a),a),g(t,o,s-1,l)):(M.insertAfter(m(a),a),g(t,o,s-1,l)):d(a,"colSpan",a.colSpan+1),n=a))})}function x(){var t=[];i(A,function(n){i(n,function(n,o){u(n)&&-1===e.inArray(t,o)&&(i(A,function(e){var t=e[o].elm,n;n=r(t,"colSpan"),n>1?d(t,"colSpan",n-1):M.remove(t)}),t.push(o))})}),h()}function w(){function e(e){var t,n,o;t=M.getNext(e,"tr"),i(e.cells,function(e){var t=r(e,"rowSpan");t>1&&(d(e,"rowSpan",t-1),n=k(e),g(n.x,n.y,1,1))}),n=k(e.cells[0]),i(A[n.y],function(e){var t;e=e.elm,e!=o&&(t=r(e,"rowSpan"),1>=t?M.remove(e):d(e,"rowSpan",t-1),o=e)})}var t;t=f(),i(t.reverse(),function(t){e(t)}),h()}function _(){var e=f();return M.remove(e),h(),e}function N(){var e=f();return i(e,function(t,n){e[n]=l(t,!0)}),e}function E(e,t){var n=f(),r=n[t?0:n.length-1],o=r.cells.length;e&&(i(A,function(e){var t;return o=0,i(e,function(e){e.real&&(o+=e.colspan),e.elm.parentNode==r&&(t=1)}),t?!1:void 0}),t||e.reverse(),i(e,function(e){var n,i=e.cells.length,a;for(n=0;i>n;n++)a=e.cells[n],d(a,"colSpan",1),d(a,"rowSpan",1);for(n=i;o>n;n++)e.appendChild(m(e.cells[i-1]));for(n=o;i>n;n++)M.remove(e.cells[n]);t?r.parentNode.insertBefore(e,r):M.insertAfter(e,r)}),M.removeClass(M.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"))}function k(e){var t;return i(A,function(n,r){return i(n,function(n,i){return n.elm==e?(t={x:i,y:r},!1):void 0}),!t}),t}function S(e){B=k(e)}function T(){var e,t;return e=t=0,i(A,function(n,r){i(n,function(n,i){var o,a;u(n)&&(n=A[r][i],i>e&&(e=i),r>t&&(t=r),n.real&&(o=n.colspan-1,a=n.rowspan-1,o&&i+o>e&&(e=i+o),a&&r+a>t&&(t=r+a)))})}),{x:e,y:t}}function R(e){var t,n,r,i,o,a,s,l,c,d;if(P=k(e),B&&P){for(t=Math.min(B.x,P.x),n=Math.min(B.y,P.y),r=Math.max(B.x,P.x),i=Math.max(B.y,P.y),o=r,a=i,d=n;a>=d;d++)e=A[d][t],e.real||t-(e.colspan-1)<t&&(t-=e.colspan-1);for(c=t;o>=c;c++)e=A[n][c],e.real||n-(e.rowspan-1)<n&&(n-=e.rowspan-1);for(d=n;i>=d;d++)for(c=t;r>=c;c++)e=A[d][c],e.real&&(s=e.colspan-1,l=e.rowspan-1,s&&c+s>o&&(o=c+s),l&&d+l>a&&(a=d+l));for(M.removeClass(M.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),d=n;a>=d;d++)for(c=t;o>=c;c++)A[d][c]&&M.addClass(A[d][c].elm,"mce-item-selected")}}var A,B,P,D,L=o.selection,M=L.dom;a=a||M.getParent(L.getStart(),"table"),s(),D=M.getParent(L.getStart(),"th,td"),D&&(B=k(D),P=T(),D=c(B.x,B.y)),e.extend(this,{deleteTable:p,split:v,merge:y,insertRow:b,insertCol:C,deleteCols:x,deleteRows:w,cutRows:_,copyRows:N,pasteRows:E,getPos:k,setStartCell:S,setEndCell:R})}}),r(u,[f,d,c],function(e,t,n){function r(e,t){return parseInt(e.getAttribute(t)||1,10)}var i=n.each;return function(n){function o(){function t(t){function o(e,r){var i=e?"previousSibling":"nextSibling",o=n.dom.getParent(r,"tr"),s=o[i];if(s)return g(n,r,s,e),t.preventDefault(),!0;var d=n.dom.getParent(o,"table"),u=o.parentNode,f=u.nodeName.toLowerCase();if("tbody"===f||f===(e?"tfoot":"thead")){var p=a(e,d,u,"tbody");if(null!==p)return l(e,p,r)}return c(e,o,i,d)}function a(e,t,r,i){var o=n.dom.select(">"+i,t),a=o.indexOf(r);if(e&&0===a||!e&&a===o.length-1)return s(e,t);if(-1===a){var l="thead"===r.tagName.toLowerCase()?0:o.length-1;return o[l]}return o[a+(e?-1:1)]}function s(e,t){var r=e?"thead":"tfoot",i=n.dom.select(">"+r,t);return 0!==i.length?i[0]:null}function l(e,r,i){var o=d(r,e);return o&&g(n,i,o,e),t.preventDefault(),!0}function c(e,r,i,a){var s=a[i];if(s)return u(s),!0;var l=n.dom.getParent(a,"td,th");if(l)return o(e,l,t);var c=d(r,!e);return u(c),t.preventDefault(),!1}function d(e,t){var r=e&&e[t?"lastChild":"firstChild"];return r&&"BR"===r.nodeName?n.dom.getParent(r,"td,th"):r}function u(e){n.selection.setCursorLocation(e,0)}function f(){return b==e.UP||b==e.DOWN}function p(e){var t=e.selection.getNode(),n=e.dom.getParent(t,"tr");return null!==n}function m(e){for(var t=0,n=e;n.previousSibling;)n=n.previousSibling,t+=r(n,"colspan");return t}function h(e,t){var n=0,o=0;return i(e.children,function(e,i){return n+=r(e,"colspan"),o=i,n>t?!1:void 0}),o}function g(e,t,r,i){var o=m(n.dom.getParent(t,"td,th")),a=h(r,o),s=r.childNodes[a],l=d(s,i);u(l||s)}function v(e){var t=n.selection.getNode(),r=n.dom.getParent(t,"td,th"),i=n.dom.getParent(e,"td,th");return r&&r!==i&&y(r,i)}function y(e,t){return n.dom.getParent(e,"TABLE")===n.dom.getParent(t,"TABLE")}var b=t.keyCode;if(f()&&p(n)){var C=n.selection.getNode();setTimeout(function(){v(C)&&o(!t.shiftKey&&b===e.UP,C,t)},0)}}n.on("KeyDown",function(e){t(e)})}function a(){function e(e,t){var n=t.ownerDocument,r=n.createRange(),i;return r.setStartBefore(t),r.setEnd(e.endContainer,e.endOffset),i=n.createElement("body"),i.appendChild(r.cloneContents()),0===i.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length}n.on("KeyDown",function(t){var r,i,o=n.dom;(37==t.keyCode||38==t.keyCode)&&(r=n.selection.getRng(),i=o.getParent(r.startContainer,"table"),i&&n.getBody().firstChild==i&&e(r,i)&&(r=o.createRng(),r.setStartBefore(i),r.setEndBefore(i),n.selection.setRng(r),t.preventDefault()))})}function s(){n.on("KeyDown SetContent VisualAid",function(){var e;for(e=n.getBody().lastChild;e;e=e.previousSibling)if(3==e.nodeType){if(e.nodeValue.length>0)break}else if(1==e.nodeType&&!e.getAttribute("data-mce-bogus"))break;e&&"TABLE"==e.nodeName&&(n.settings.forced_root_block?n.dom.add(n.getBody(),n.settings.forced_root_block,n.settings.forced_root_block_attrs,t.ie&&t.ie<11?" ":'<br data-mce-bogus="1" />'):n.dom.add(n.getBody(),"br",{"data-mce-bogus":"1"}))}),n.on("PreProcess",function(e){var t=e.node.lastChild;t&&("BR"==t.nodeName||1==t.childNodes.length&&("BR"==t.firstChild.nodeName||"\xa0"==t.firstChild.nodeValue))&&t.previousSibling&&"TABLE"==t.previousSibling.nodeName&&n.dom.remove(t)})}function l(){function e(e,t,n,r){var i=3,o=e.dom.getParent(t.startContainer,"TABLE"),a,s,l;return o&&(a=o.parentNode),s=t.startContainer.nodeType==i&&0===t.startOffset&&0===t.endOffset&&r&&("TR"==n.nodeName||n==a),l=("TD"==n.nodeName||"TH"==n.nodeName)&&!r,s||l}function t(){var t=n.selection.getRng(),r=n.selection.getNode(),i=n.dom.getParent(t.startContainer,"TD,TH");if(e(n,t,r,i)){i||(i=r);for(var o=i.lastChild;o.lastChild;)o=o.lastChild;t.setEnd(o,o.nodeValue.length),n.selection.setRng(t)}}n.on("KeyDown",function(){t()}),n.on("MouseDown",function(e){2!=e.button&&t()})}function c(){n.on("keydown",function(t){if((t.keyCode==e.DELETE||t.keyCode==e.BACKSPACE)&&!t.isDefaultPrevented()){var r=n.dom.getParent(n.selection.getStart(),"table");if(r){for(var i=n.dom.select("td,th",r),o=i.length;o--;)if(!n.dom.hasClass(i[o],"mce-item-selected"))return;t.preventDefault(),n.execCommand("mceTableDelete")}}})}c(),t.webkit&&(o(),l()),t.gecko&&(a(),s()),t.ie>10&&(a(),s())}}),r(p,[l,m,c],function(e,t,n){return function(r){function i(){r.getBody().style.webkitUserSelect="",d&&(r.dom.removeClass(r.dom.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),d=!1)}function o(t){var n,i,o=t.target;if(l&&(s||o!=l)&&("TD"==o.nodeName||"TH"==o.nodeName)){i=a.getParent(o,"table"),i==c&&(s||(s=new e(r,i),s.setStartCell(l),r.getBody().style.webkitUserSelect="none"),s.setEndCell(o),d=!0),n=r.selection.getSel();try{n.removeAllRanges?n.removeAllRanges():n.empty()}catch(u){}t.preventDefault()}}var a=r.dom,s,l,c,d=!0;return r.on("MouseDown",function(e){2!=e.button&&(i(),l=a.getParent(e.target,"td,th"),c=a.getParent(l,"table"))}),r.on("mouseover",o),r.on("remove",function(){a.unbind(r.getDoc(),"mouseover",o)}),r.on("MouseUp",function(){function e(e,r){var o=new t(e,e);do{if(3==e.nodeType&&0!==n.trim(e.nodeValue).length)return void(r?i.setStart(e,0):i.setEnd(e,e.nodeValue.length));if("BR"==e.nodeName)return void(r?i.setStartBefore(e):i.setEndBefore(e))}while(e=r?o.next():o.prev())}var i,o=r.selection,d,u,f,p,m;if(l){if(s&&(r.getBody().style.webkitUserSelect=""),d=a.select("td.mce-item-selected,th.mce-item-selected"),d.length>0){i=a.createRng(),f=d[0],m=d[d.length-1],i.setStartBefore(f),i.setEndAfter(f),e(f,1),u=new t(f,a.getParent(d[0],"table"));do if("TD"==f.nodeName||"TH"==f.nodeName){if(!a.hasClass(f,"mce-item-selected"))break;p=f}while(f=u.next());e(p),o.setRng(i)}r.nodeChanged(),l=s=c=null}}),r.on("KeyUp",function(){i()}),{clear:i}}}),r(h,[l,u,p,c,m,d,g],function(e,t,n,r,i,o,a){function s(r){function i(e){return e?e.replace(/px$/,""):""}function a(e){return/^[0-9]+$/.test(e)&&(e+="px"),e}function s(e){l("left center right".split(" "),function(t){r.formatter.remove("align"+t,{},e)})}function c(){var e=r.dom,t,n;t=e.getParent(r.selection.getStart(),"table"),n={width:i(e.getStyle(t,"width")||e.getAttrib(t,"width")),height:i(e.getStyle(t,"height")||e.getAttrib(t,"height")),cellspacing:e.getAttrib(t,"cellspacing"),cellpadding:e.getAttrib(t,"cellpadding"),border:e.getAttrib(t,"border"),caption:!!e.select("caption",t)[0]},l("left center right".split(" "),function(e){r.formatter.matchNode(t,"align"+e)&&(n.align=e)}),r.windowManager.open({title:"Table properties",items:{type:"form",layout:"grid",columns:2,data:n,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell spacing",name:"cellspacing"},{label:"Cell padding",name:"cellpadding"},{label:"Border",name:"border"},{label:"Caption",name:"caption",type:"checkbox"},{label:"Alignment",minWidth:90,name:"align",type:"listbox",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]}]},onsubmit:function(){var n=this.toJSON(),i;r.undoManager.transact(function(){r.dom.setAttribs(t,{cellspacing:n.cellspacing,cellpadding:n.cellpadding,border:n.border}),r.dom.setStyles(t,{width:a(n.width),height:a(n.height)}),i=e.select("caption",t)[0],i&&!n.caption&&e.remove(i),!i&&n.caption&&(i=e.create("caption"),i.innerHTML=o.ie?"\xa0":'<br data-mce-bogus="1"/>',t.insertBefore(i,t.firstChild)),s(t),n.align&&r.formatter.apply("align"+n.align,{},t),r.focus(),r.addVisual()})}})}function d(e,t){r.windowManager.open({title:"Merge cells",body:[{label:"Cols",name:"cols",type:"textbox",size:10},{label:"Rows",name:"rows",type:"textbox",size:10}],onsubmit:function(){var n=this.toJSON();r.undoManager.transact(function(){e.merge(t,n.cols,n.rows)})}})}function u(){var e=r.dom,t,n,o=[];o=r.dom.select("td.mce-item-selected,th.mce-item-selected"),t=r.dom.getParent(r.selection.getStart(),"td,th"),!o.length&&t&&o.push(t),t=t||o[0],t&&(n={width:i(e.getStyle(t,"width")||e.getAttrib(t,"width")),height:i(e.getStyle(t,"height")||e.getAttrib(t,"height")),scope:e.getAttrib(t,"scope")},n.type=t.nodeName.toLowerCase(),l("left center right".split(" "),function(e){r.formatter.matchNode(t,"align"+e)&&(n.align=e)}),r.windowManager.open({title:"Cell properties",items:{type:"form",data:n,layout:"grid",columns:2,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell type",name:"type",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{label:"Scope",name:"scope",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{label:"Alignment",name:"align",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]}]},onsubmit:function(){var t=this.toJSON();r.undoManager.transact(function(){l(o,function(n){r.dom.setAttrib(n,"scope",t.scope),r.dom.setStyles(n,{width:a(t.width),height:a(t.height)}),t.type&&n.nodeName.toLowerCase()!=t.type&&(n=e.rename(n,t.type)),s(n),t.align&&r.formatter.apply("align"+t.align,{},n)}),r.focus()})}}))}function f(){var e=r.dom,t,n,o,c,d=[];t=r.dom.getParent(r.selection.getStart(),"table"),n=r.dom.getParent(r.selection.getStart(),"td,th"),l(t.rows,function(t){l(t.cells,function(r){return e.hasClass(r,"mce-item-selected")||r==n?(d.push(t),!1):void 0})}),o=d[0],o&&(c={height:i(e.getStyle(o,"height")||e.getAttrib(o,"height")),scope:e.getAttrib(o,"scope")},c.type=o.parentNode.nodeName.toLowerCase(),l("left center right".split(" "),function(e){r.formatter.matchNode(o,"align"+e)&&(c.align=e)}),r.windowManager.open({title:"Row properties",items:{type:"form",data:c,columns:2,defaults:{type:"textbox"},items:[{type:"listbox",name:"type",label:"Row type",text:"None",maxWidth:null,values:[{text:"Header",value:"thead"},{text:"Body",value:"tbody"},{text:"Footer",value:"tfoot"}]},{type:"listbox",name:"align",label:"Alignment",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"Height",name:"height"}]},onsubmit:function(){var t=this.toJSON(),n,i,o;r.undoManager.transact(function(){var c=t.type;l(d,function(l){r.dom.setAttrib(l,"scope",t.scope),r.dom.setStyles(l,{height:a(t.height)}),c!=l.parentNode.nodeName.toLowerCase()&&(n=e.getParent(l,"table"),i=l.parentNode,o=e.select(c,n)[0],o||(o=e.create(c),n.firstChild?n.insertBefore(o,n.firstChild):n.appendChild(o)),o.appendChild(l),i.hasChildNodes()||e.remove(i)),s(l),t.align&&r.formatter.apply("align"+t.align,{},l)}),r.focus()})}}))}function p(e){return function(){r.execCommand(e)}}function m(e,t){var n,i,a;for(a="<table><tbody>",n=0;t>n;n++){for(a+="<tr>",i=0;e>i;i++)a+="<td>"+(o.ie?" ":"<br>")+"</td>";a+="</tr>"}a+="</tbody></table>",r.insertContent(a)}function h(e,t){function n(){e.disabled(!r.dom.getParent(r.selection.getStart(),t)),r.selection.selectorChanged(t,function(t){e.disabled(!t)})}r.initialized?n():r.on("init",n)}function g(){h(this,"table")}function v(){h(this,"td,th")}function y(){var e="";e='<table role="grid" class="mce-grid mce-grid-border" aria-readonly="true">';for(var t=0;10>t;t++){e+="<tr>";for(var n=0;10>n;n++)e+='<td role="gridcell" tabindex="-1"><a id="mcegrid'+(10*t+n)+'" href="#" data-mce-x="'+n+'" data-mce-y="'+t+'" '+(n+t===0?' class="mce-active"':"")+"></a></td>";e+="</tr>"}return e+="</table>",e+='<div class="mce-text-center" role="presentation">1 x 1</div>'}function b(e,t,n){var i=n.getEl().getElementsByTagName("table")[0],o=n.parent().rel,a,s,l,c;if(n.isRtl()||"tl-tr"==o){for(s=9;s>=0;s--)for(a=0;10>a;a++)c=i.rows[s].childNodes[a].firstChild,r.dom.toggleClass(c,"mce-active",a>=e&&t>=s),a>=e&&t>=s&&(l=c);e=9-e,i.nextSibling.innerHTML=e+" x "+(t+1)}else{for(s=0;10>s;s++)for(a=0;10>a;a++)c=i.rows[s].childNodes[a].firstChild,r.dom.toggleClass(c,"mce-active",e>=a&&t>=s),e>=a&&t>=s&&(l=c);i.nextSibling.innerHTML=e+1+" x "+(t+1)}return l.parentNode}var C,x,w=this;r.addMenuItem("inserttable",{text:"Insert table",icon:"table",context:"table",onhide:function(){var e=this.menu.items()[0].getEl().getElementsByTagName("a");r.dom.removeClass(e,"mce-active"),r.dom.addClass(e[0],"mce-active")},menu:[{type:"container",html:y(),onPostRender:function(){this.lastX=this.lastY=0},onmousemove:function(e){var t=e.target,n,r;"A"==t.nodeName&&(n=parseInt(t.getAttribute("data-mce-x"),10),r=parseInt(t.getAttribute("data-mce-y"),10),(n!==this.lastX||r!==this.lastY)&&(b(n,r,e.control),this.lastX=n,this.lastY=r))},onkeydown:function(e){var t=this.lastX,n=this.lastY,r;switch(e.keyCode){case 37:t>0&&(t--,r=!0);break;case 39:r=!0,9>t&&t++;break;case 38:r=!0,n>0&&n--;break;case 40:r=!0,9>n&&n++}r&&(e.preventDefault(),e.stopPropagation(),b(t,n,e.control).focus(),this.lastX=t,this.lastY=n)},onclick:function(e){"A"==e.target.nodeName&&(e.preventDefault(),e.stopPropagation(),this.parent().cancel(),m(this.lastX+1,this.lastY+1))}}]}),r.addMenuItem("tableprops",{text:"Table properties",context:"table",onPostRender:g,onclick:c}),r.addMenuItem("deletetable",{text:"Delete table",context:"table",onPostRender:g,cmd:"mceTableDelete"}),r.addMenuItem("cell",{separator:"before",text:"Cell",context:"table",menu:[{text:"Cell properties",onclick:p("mceTableCellProps"),onPostRender:v},{text:"Merge cells",onclick:p("mceTableMergeCells"),onPostRender:v},{text:"Split cell",onclick:p("mceTableSplitCells"),onPostRender:v}]}),r.addMenuItem("row",{text:"Row",context:"table",menu:[{text:"Insert row before",onclick:p("mceTableInsertRowBefore"),onPostRender:v},{text:"Insert row after",onclick:p("mceTableInsertRowAfter"),onPostRender:v},{text:"Delete row",onclick:p("mceTableDeleteRow"),onPostRender:v},{text:"Row properties",onclick:p("mceTableRowProps"),onPostRender:v},{text:"-"},{text:"Cut row",onclick:p("mceTableCutRow"),onPostRender:v},{text:"Copy row",onclick:p("mceTableCopyRow"),onPostRender:v},{text:"Paste row before",onclick:p("mceTablePasteRowBefore"),onPostRender:v},{text:"Paste row after",onclick:p("mceTablePasteRowAfter"),onPostRender:v}]}),r.addMenuItem("column",{text:"Column",context:"table",menu:[{text:"Insert column before",onclick:p("mceTableInsertColBefore"),onPostRender:v},{text:"Insert column after",onclick:p("mceTableInsertColAfter"),onPostRender:v},{text:"Delete column",onclick:p("mceTableDeleteCol"),onPostRender:v}]});var _=[];l("inserttable tableprops deletetable | cell row column".split(" "),function(e){_.push("|"==e?{text:"-"}:r.menuItems[e])}),r.addButton("table",{type:"menubutton",title:"Table",menu:_}),o.isIE||r.on("click",function(e){e=e.target,"TABLE"===e.nodeName&&(r.selection.select(e),r.nodeChanged())}),w.quirks=new t(r),r.on("Init",function(){C=r.windowManager,w.cellSelection=new n(r)}),l({mceTableSplitCells:function(e){e.split()},mceTableMergeCells:function(e){var t,n,i;i=r.dom.getParent(r.selection.getStart(),"th,td"),i&&(t=i.rowSpan,n=i.colSpan),r.dom.select("td.mce-item-selected,th.mce-item-selected").length?e.merge():d(e,i)},mceTableInsertRowBefore:function(e){e.insertRow(!0)},mceTableInsertRowAfter:function(e){e.insertRow()},mceTableInsertColBefore:function(e){e.insertCol(!0)},mceTableInsertColAfter:function(e){e.insertCol()},mceTableDeleteCol:function(e){e.deleteCols()},mceTableDeleteRow:function(e){e.deleteRows()},mceTableCutRow:function(e){x=e.cutRows()},mceTableCopyRow:function(e){x=e.copyRows()},mceTablePasteRowBefore:function(e){e.pasteRows(x,!0)},mceTablePasteRowAfter:function(e){e.pasteRows(x)},mceTableDelete:function(e){e.deleteTable()}},function(t,n){r.addCommand(n,function(){var n=new e(r);n&&(t(n),r.execCommand("mceRepaint"),w.cellSelection.clear())})}),l({mceInsertTable:function(){c()},mceTableRowProps:f,mceTableCellProps:u},function(e,t){r.addCommand(t,function(t,n){e(n)})})}var l=r.each;a.add("table",s)}),a([l,u,p,h])}(this); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/plugins/textcolor/plugin.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/textcolor/plugin.js new file mode 100755 index 00000000000..a3a01e790b0 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/plugins/textcolor/plugin.js @@ -0,0 +1,164 @@ +/** + * plugin.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*global tinymce:true */ +/*eslint consistent-this:0 */ + +tinymce.PluginManager.add('textcolor', function(editor) { + function mapColors() { + var i, colors = [], colorMap; + + colorMap = editor.settings.textcolor_map || [ + "000000", "Black", + "993300", "Burnt orange", + "333300", "Dark olive", + "003300", "Dark green", + "003366", "Dark azure", + "000080", "Navy Blue", + "333399", "Indigo", + "333333", "Very dark gray", + "800000", "Maroon", + "FF6600", "Orange", + "808000", "Olive", + "008000", "Green", + "008080", "Teal", + "0000FF", "Blue", + "666699", "Grayish blue", + "808080", "Gray", + "FF0000", "Red", + "FF9900", "Amber", + "99CC00", "Yellow green", + "339966", "Sea green", + "33CCCC", "Turquoise", + "3366FF", "Royal blue", + "800080", "Purple", + "999999", "Medium gray", + "FF00FF", "Magenta", + "FFCC00", "Gold", + "FFFF00", "Yellow", + "00FF00", "Lime", + "00FFFF", "Aqua", + "00CCFF", "Sky blue", + "993366", "Brown", + "C0C0C0", "Silver", + "FF99CC", "Pink", + "FFCC99", "Peach", + "FFFF99", "Light yellow", + "CCFFCC", "Pale green", + "CCFFFF", "Pale cyan", + "99CCFF", "Light sky blue", + "CC99FF", "Plum", + "FFFFFF", "White" + ]; + + for (i = 0; i < colorMap.length; i += 2) { + colors.push({ + text: colorMap[i + 1], + color: colorMap[i] + }); + } + + return colors; + } + + function renderColorPicker() { + var ctrl = this, colors, color, html, last, rows, cols, x, y, i; + + colors = mapColors(); + + html = '<table class="mce-grid mce-grid-border mce-colorbutton-grid" role="list" cellspacing="0"><tbody>'; + last = colors.length - 1; + rows = editor.settings.textcolor_rows || 5; + cols = editor.settings.textcolor_cols || 8; + + for (y = 0; y < rows; y++) { + html += '<tr>'; + + for (x = 0; x < cols; x++) { + i = y * cols + x; + + if (i > last) { + html += '<td></td>'; + } else { + color = colors[i]; + html += ( + '<td>' + + '<div id="' + ctrl._id + '-' + i + '"' + + ' data-mce-color="' + color.color + '"' + + ' role="option"' + + ' tabIndex="-1"' + + ' style="' + (color ? 'background-color: #' + color.color : '') + '"' + + ' title="' + color.text + '">' + + '</div>' + + '</td>' + ); + } + } + + html += '</tr>'; + } + + html += '</tbody></table>'; + + return html; + } + + function onPanelClick(e) { + var buttonCtrl = this.parent(), value; + + if ((value = e.target.getAttribute('data-mce-color'))) { + if (this.lastId) { + document.getElementById(this.lastId).setAttribute('aria-selected', false); + } + + e.target.setAttribute('aria-selected', true); + this.lastId = e.target.id; + + buttonCtrl.hidePanel(); + value = '#' + value; + buttonCtrl.color(value); + editor.execCommand(buttonCtrl.settings.selectcmd, false, value); + } + } + + function onButtonClick() { + var self = this; + + if (self._color) { + editor.execCommand(self.settings.selectcmd, false, self._color); + } + } + + editor.addButton('forecolor', { + type: 'colorbutton', + tooltip: 'Text color', + selectcmd: 'ForeColor', + panel: { + role: 'application', + ariaRemember: true, + html: renderColorPicker, + onclick: onPanelClick + }, + onclick: onButtonClick + }); + + editor.addButton('backcolor', { + type: 'colorbutton', + tooltip: 'Background color', + selectcmd: 'HiliteColor', + panel: { + role: 'application', + ariaRemember: true, + html: renderColorPicker, + onclick: onPanelClick + }, + onclick: onButtonClick + }); +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/plugins/textcolor/plugin.min.js b/common/static/js/vendor/tinymce/js/tinymce/plugins/textcolor/plugin.min.js new file mode 100755 index 00000000000..8f49254def0 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/plugins/textcolor/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("textcolor",function(e){function t(){var t,o,r=[];for(o=e.settings.textcolor_map||["000000","Black","993300","Burnt orange","333300","Dark olive","003300","Dark green","003366","Dark azure","000080","Navy Blue","333399","Indigo","333333","Very dark gray","800000","Maroon","FF6600","Orange","808000","Olive","008000","Green","008080","Teal","0000FF","Blue","666699","Grayish blue","808080","Gray","FF0000","Red","FF9900","Amber","99CC00","Yellow green","339966","Sea green","33CCCC","Turquoise","3366FF","Royal blue","800080","Purple","999999","Medium gray","FF00FF","Magenta","FFCC00","Gold","FFFF00","Yellow","00FF00","Lime","00FFFF","Aqua","00CCFF","Sky blue","993366","Brown","C0C0C0","Silver","FF99CC","Pink","FFCC99","Peach","FFFF99","Light yellow","CCFFCC","Pale green","CCFFFF","Pale cyan","99CCFF","Light sky blue","CC99FF","Plum","FFFFFF","White"],t=0;t<o.length;t+=2)r.push({text:o[t+1],color:o[t]});return r}function o(){var o,r,l,a,c,i,n,F,d,s=this;for(o=t(),l='<table class="mce-grid mce-grid-border mce-colorbutton-grid" role="list" cellspacing="0"><tbody>',a=o.length-1,c=e.settings.textcolor_rows||5,i=e.settings.textcolor_cols||8,F=0;c>F;F++){for(l+="<tr>",n=0;i>n;n++)d=F*i+n,d>a?l+="<td></td>":(r=o[d],l+='<td><div id="'+s._id+"-"+d+'" data-mce-color="'+r.color+'" role="option" tabIndex="-1" style="'+(r?"background-color: #"+r.color:"")+'" title="'+r.text+'"></div></td>');l+="</tr>"}return l+="</tbody></table>"}function r(t){var o,r=this.parent();(o=t.target.getAttribute("data-mce-color"))&&(this.lastId&&document.getElementById(this.lastId).setAttribute("aria-selected",!1),t.target.setAttribute("aria-selected",!0),this.lastId=t.target.id,r.hidePanel(),o="#"+o,r.color(o),e.execCommand(r.settings.selectcmd,!1,o))}function l(){var t=this;t._color&&e.execCommand(t.settings.selectcmd,!1,t._color)}e.addButton("forecolor",{type:"colorbutton",tooltip:"Text color",selectcmd:"ForeColor",panel:{role:"application",ariaRemember:!0,html:o,onclick:r},onclick:l}),e.addButton("backcolor",{type:"colorbutton",tooltip:"Background color",selectcmd:"HiliteColor",panel:{role:"application",ariaRemember:!0,html:o,onclick:r},onclick:l})}); \ No newline at end of file diff --git a/common/static/js/vendor/tiny_mce/skins/studio-tmce4/content.inline.min.css b/common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/content.inline.min.css similarity index 100% rename from common/static/js/vendor/tiny_mce/skins/studio-tmce4/content.inline.min.css rename to common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/content.inline.min.css diff --git a/common/static/js/vendor/tiny_mce/skins/studio-tmce4/content.min.css b/common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/content.min.css similarity index 100% rename from common/static/js/vendor/tiny_mce/skins/studio-tmce4/content.min.css rename to common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/content.min.css diff --git a/common/static/js/vendor/tiny_mce/skins/studio-tmce4/fonts/icomoon-small.eot b/common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/fonts/icomoon-small.eot similarity index 100% rename from common/static/js/vendor/tiny_mce/skins/studio-tmce4/fonts/icomoon-small.eot rename to common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/fonts/icomoon-small.eot diff --git a/common/static/js/vendor/tiny_mce/skins/studio-tmce4/fonts/icomoon-small.svg b/common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/fonts/icomoon-small.svg similarity index 100% rename from common/static/js/vendor/tiny_mce/skins/studio-tmce4/fonts/icomoon-small.svg rename to common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/fonts/icomoon-small.svg diff --git a/common/static/js/vendor/tiny_mce/skins/studio-tmce4/fonts/icomoon-small.ttf b/common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/fonts/icomoon-small.ttf similarity index 100% rename from common/static/js/vendor/tiny_mce/skins/studio-tmce4/fonts/icomoon-small.ttf rename to common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/fonts/icomoon-small.ttf diff --git a/common/static/js/vendor/tiny_mce/skins/studio-tmce4/fonts/icomoon-small.woff b/common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/fonts/icomoon-small.woff similarity index 100% rename from common/static/js/vendor/tiny_mce/skins/studio-tmce4/fonts/icomoon-small.woff rename to common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/fonts/icomoon-small.woff diff --git a/common/static/js/vendor/tiny_mce/skins/studio-tmce4/fonts/icomoon.eot b/common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/fonts/icomoon.eot similarity index 100% rename from common/static/js/vendor/tiny_mce/skins/studio-tmce4/fonts/icomoon.eot rename to common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/fonts/icomoon.eot diff --git a/common/static/js/vendor/tiny_mce/skins/studio-tmce4/fonts/icomoon.svg b/common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/fonts/icomoon.svg similarity index 100% rename from common/static/js/vendor/tiny_mce/skins/studio-tmce4/fonts/icomoon.svg rename to common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/fonts/icomoon.svg diff --git a/common/static/js/vendor/tiny_mce/skins/studio-tmce4/fonts/icomoon.ttf b/common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/fonts/icomoon.ttf similarity index 100% rename from common/static/js/vendor/tiny_mce/skins/studio-tmce4/fonts/icomoon.ttf rename to common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/fonts/icomoon.ttf diff --git a/common/static/js/vendor/tiny_mce/skins/studio-tmce4/fonts/icomoon.woff b/common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/fonts/icomoon.woff similarity index 100% rename from common/static/js/vendor/tiny_mce/skins/studio-tmce4/fonts/icomoon.woff rename to common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/fonts/icomoon.woff diff --git a/common/static/js/vendor/tiny_mce/skins/lightgray/fonts/readme.md b/common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/fonts/readme.md old mode 100644 new mode 100755 similarity index 100% rename from common/static/js/vendor/tiny_mce/skins/lightgray/fonts/readme.md rename to common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/fonts/readme.md diff --git a/common/static/js/vendor/tiny_mce/skins/lightgray/img/anchor.gif b/common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/img/anchor.gif old mode 100644 new mode 100755 similarity index 100% rename from common/static/js/vendor/tiny_mce/skins/lightgray/img/anchor.gif rename to common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/img/anchor.gif diff --git a/common/static/js/vendor/tiny_mce/skins/lightgray/img/loader.gif b/common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/img/loader.gif old mode 100644 new mode 100755 similarity index 100% rename from common/static/js/vendor/tiny_mce/skins/lightgray/img/loader.gif rename to common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/img/loader.gif diff --git a/common/static/js/vendor/tiny_mce/skins/lightgray/img/object.gif b/common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/img/object.gif old mode 100644 new mode 100755 similarity index 100% rename from common/static/js/vendor/tiny_mce/skins/lightgray/img/object.gif rename to common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/img/object.gif diff --git a/common/static/js/vendor/tiny_mce/skins/lightgray/img/trans.gif b/common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/img/trans.gif old mode 100644 new mode 100755 similarity index 100% rename from common/static/js/vendor/tiny_mce/skins/lightgray/img/trans.gif rename to common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/img/trans.gif diff --git a/common/static/js/vendor/tiny_mce/skins/studio-tmce4/img/wline.gif b/common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/img/wline.gif similarity index 100% rename from common/static/js/vendor/tiny_mce/skins/studio-tmce4/img/wline.gif rename to common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/img/wline.gif diff --git a/common/static/js/vendor/tiny_mce/skins/studio-tmce4/skin.ie7.min.css b/common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/skin.ie7.min.css similarity index 100% rename from common/static/js/vendor/tiny_mce/skins/studio-tmce4/skin.ie7.min.css rename to common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/skin.ie7.min.css diff --git a/common/static/js/vendor/tiny_mce/skins/studio-tmce4/skin.json b/common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/skin.json similarity index 100% rename from common/static/js/vendor/tiny_mce/skins/studio-tmce4/skin.json rename to common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/skin.json diff --git a/common/static/js/vendor/tiny_mce/skins/studio-tmce4/skin.min.css b/common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/skin.min.css similarity index 100% rename from common/static/js/vendor/tiny_mce/skins/studio-tmce4/skin.min.css rename to common/static/js/vendor/tinymce/js/tinymce/skins/studio-tmce4/skin.min.css diff --git a/common/static/js/vendor/tinymce/js/tinymce/themes/modern/theme.js b/common/static/js/vendor/tinymce/js/tinymce/themes/modern/theme.js new file mode 100755 index 00000000000..c5334f0259d --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/themes/modern/theme.js @@ -0,0 +1,599 @@ +/** + * theme.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*global tinymce:true */ + +tinymce.ThemeManager.add('modern', function(editor) { + var self = this, settings = editor.settings, Factory = tinymce.ui.Factory, each = tinymce.each, DOM = tinymce.DOM; + + // Default menus + var defaultMenus = { + file: {title: 'File', items: 'newdocument'}, + edit: {title: 'Edit', items: 'undo redo | cut copy paste pastetext | selectall'}, + insert: {title: 'Insert', items: '|'}, + view: {title: 'View', items: 'visualaid |'}, + format: {title: 'Format', items: 'bold italic underline strikethrough superscript subscript | formats | removeformat'}, + table: {title: 'Table'}, + tools: {title: 'Tools'} + }; + + var defaultToolbar = "undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | " + + "bullist numlist outdent indent | link image"; + + /** + * Creates the toolbars from config and returns a toolbar array. + * + * @return {Array} Array with toolbars. + */ + function createToolbars() { + var toolbars = []; + + function addToolbar(items) { + var toolbarItems = [], buttonGroup; + + if (!items) { + return; + } + + each(items.split(/[ ,]/), function(item) { + var itemName; + + function bindSelectorChanged() { + var selection = editor.selection; + + if (itemName == "bullist") { + selection.selectorChanged('ul > li', function(state, args) { + var nodeName, i = args.parents.length; + + while (i--) { + nodeName = args.parents[i].nodeName; + if (nodeName == "OL" || nodeName == "UL") { + break; + } + } + + item.active(state && nodeName == "UL"); + }); + } + + if (itemName == "numlist") { + selection.selectorChanged('ol > li', function(state, args) { + var nodeName, i = args.parents.length; + + while (i--) { + nodeName = args.parents[i].nodeName; + if (nodeName == "OL" || nodeName == "UL") { + break; + } + } + + item.active(state && nodeName == "OL"); + }); + } + + if (item.settings.stateSelector) { + selection.selectorChanged(item.settings.stateSelector, function(state) { + item.active(state); + }, true); + } + + if (item.settings.disabledStateSelector) { + selection.selectorChanged(item.settings.disabledStateSelector, function(state) { + item.disabled(state); + }); + } + } + + if (item == "|") { + buttonGroup = null; + } else { + if (Factory.has(item)) { + item = {type: item}; + + if (settings.toolbar_items_size) { + item.size = settings.toolbar_items_size; + } + + toolbarItems.push(item); + buttonGroup = null; + } else { + if (!buttonGroup) { + buttonGroup = {type: 'buttongroup', items: []}; + toolbarItems.push(buttonGroup); + } + + if (editor.buttons[item]) { + // TODO: Move control creation to some UI class + itemName = item; + item = editor.buttons[itemName]; + + if (typeof(item) == "function") { + item = item(); + } + + item.type = item.type || 'button'; + + if (settings.toolbar_items_size) { + item.size = settings.toolbar_items_size; + } + + item = Factory.create(item); + buttonGroup.items.push(item); + + if (editor.initialized) { + bindSelectorChanged(); + } else { + editor.on('init', bindSelectorChanged); + } + } + } + } + }); + + toolbars.push({type: 'toolbar', layout: 'flow', items: toolbarItems}); + + return true; + } + + // Generate toolbar<n> + for (var i = 1; i < 10; i++) { + if (!addToolbar(settings["toolbar" + i])) { + break; + } + } + + // Generate toolbar or default toolbar + if (!toolbars.length) { + addToolbar(settings.toolbar || defaultToolbar); + } + + return toolbars; + } + + /** + * Creates the menu buttons based on config. + * + * @return {Array} Menu buttons array. + */ + function createMenuButtons() { + var name, menuButtons = []; + + function createMenuItem(name) { + var menuItem; + + if (name == '|') { + return {text: '|'}; + } + + menuItem = editor.menuItems[name]; + + return menuItem; + } + + function createMenu(context) { + var menuButton, menu, menuItems, isUserDefined, removedMenuItems; + + removedMenuItems = tinymce.makeMap((settings.removed_menuitems || '').split(/[ ,]/)); + + // User defined menu + if (settings.menu) { + menu = settings.menu[context]; + isUserDefined = true; + } else { + menu = defaultMenus[context]; + } + + if (menu) { + menuButton = {text: menu.title}; + menuItems = []; + + // Default/user defined items + each((menu.items || '').split(/[ ,]/), function(item) { + var menuItem = createMenuItem(item); + + if (menuItem && !removedMenuItems[item]) { + menuItems.push(createMenuItem(item)); + } + }); + + // Added though context + if (!isUserDefined) { + each(editor.menuItems, function(menuItem) { + if (menuItem.context == context) { + if (menuItem.separator == 'before') { + menuItems.push({text: '|'}); + } + + if (menuItem.prependToContext) { + menuItems.unshift(menuItem); + } else { + menuItems.push(menuItem); + } + + if (menuItem.separator == 'after') { + menuItems.push({text: '|'}); + } + } + }); + } + + for (var i = 0; i < menuItems.length; i++) { + if (menuItems[i].text == '|') { + if (i === 0 || i == menuItems.length - 1) { + menuItems.splice(i, 1); + } + } + } + + menuButton.menu = menuItems; + + if (!menuButton.menu.length) { + return null; + } + } + + return menuButton; + } + + var defaultMenuBar = []; + if (settings.menu) { + for (name in settings.menu) { + defaultMenuBar.push(name); + } + } else { + for (name in defaultMenus) { + defaultMenuBar.push(name); + } + } + + var enabledMenuNames = typeof(settings.menubar) == "string" ? settings.menubar.split(/[ ,]/) : defaultMenuBar; + for (var i = 0; i < enabledMenuNames.length; i++) { + var menu = enabledMenuNames[i]; + menu = createMenu(menu); + + if (menu) { + menuButtons.push(menu); + } + } + + return menuButtons; + } + + /** + * Adds accessibility shortcut keys to panel. + * + * @param {tinymce.ui.Panel} panel Panel to add focus to. + */ + function addAccessibilityKeys(panel) { + function focus(type) { + var item = panel.find(type)[0]; + + if (item) { + item.focus(true); + } + } + + editor.shortcuts.add('Alt+F9', '', function() { + focus('menubar'); + }); + + editor.shortcuts.add('Alt+F10', '', function() { + focus('toolbar'); + }); + + editor.shortcuts.add('Alt+F11', '', function() { + focus('elementpath'); + }); + + panel.on('cancel', function() { + editor.focus(); + }); + } + + /** + * Resizes the editor to the specified width, height. + */ + function resizeTo(width, height) { + var containerElm, iframeElm, containerSize, iframeSize; + + function getSize(elm) { + return { + width: elm.clientWidth, + height: elm.clientHeight + }; + } + + containerElm = editor.getContainer(); + iframeElm = editor.getContentAreaContainer().firstChild; + containerSize = getSize(containerElm); + iframeSize = getSize(iframeElm); + + if (width !== null) { + width = Math.max(settings.min_width || 100, width); + width = Math.min(settings.max_width || 0xFFFF, width); + + DOM.css(containerElm, 'width', width + (containerSize.width - iframeSize.width)); + DOM.css(iframeElm, 'width', width); + } + + height = Math.max(settings.min_height || 100, height); + height = Math.min(settings.max_height || 0xFFFF, height); + DOM.css(iframeElm, 'height', height); + + editor.fire('ResizeEditor'); + } + + function resizeBy(dw, dh) { + var elm = editor.getContentAreaContainer(); + self.resizeTo(elm.clientWidth + dw, elm.clientHeight + dh); + } + + /** + * Renders the inline editor UI. + * + * @return {Object} Name/value object with theme data. + */ + function renderInlineUI(args) { + var panel, inlineToolbarContainer; + + if (settings.fixed_toolbar_container) { + inlineToolbarContainer = DOM.select(settings.fixed_toolbar_container)[0]; + } + + function reposition() { + if (panel && panel.moveRel && panel.visible() && !panel._fixed) { + // TODO: This is kind of ugly and doesn't handle multiple scrollable elements + var scrollContainer = editor.selection.getScrollContainer(), body = editor.getBody(); + var deltaX = 0, deltaY = 0; + + if (scrollContainer) { + var bodyPos = DOM.getPos(body), scrollContainerPos = DOM.getPos(scrollContainer); + + deltaX = Math.max(0, scrollContainerPos.x - bodyPos.x); + deltaY = Math.max(0, scrollContainerPos.y - bodyPos.y); + } + + panel.fixed(false).moveRel(body, editor.rtl ? ['tr-br', 'br-tr'] : ['tl-bl', 'bl-tl']).moveBy(deltaX, deltaY); + } + } + + function show() { + if (panel) { + panel.show(); + reposition(); + DOM.addClass(editor.getBody(), 'mce-edit-focus'); + } + } + + function hide() { + if (panel) { + panel.hide(); + DOM.removeClass(editor.getBody(), 'mce-edit-focus'); + } + } + + function render() { + if (panel) { + if (!panel.visible()) { + show(); + } + + return; + } + + // Render a plain panel inside the inlineToolbarContainer if it's defined + panel = self.panel = Factory.create({ + type: inlineToolbarContainer ? 'panel' : 'floatpanel', + role: 'application', + classes: 'tinymce tinymce-inline', + layout: 'flex', + direction: 'column', + align: 'stretch', + autohide: false, + autofix: true, + fixed: !!inlineToolbarContainer, + border: 1, + items: [ + settings.menubar === false ? null : {type: 'menubar', border: '0 0 1 0', items: createMenuButtons()}, + settings.toolbar === false ? null : { + type: 'panel', layout: 'stack', classes: "toolbar-grp", ariaRoot: true, ariaRemember: true, items: createToolbars() + } + ] + }); + + // Add statusbar + /*if (settings.statusbar !== false) { + panel.add({type: 'panel', classes: 'statusbar', layout: 'flow', border: '1 0 0 0', items: [ + {type: 'elementpath'} + ]}); + }*/ + + editor.fire('BeforeRenderUI'); + panel.renderTo(inlineToolbarContainer || document.body).reflow(); + + addAccessibilityKeys(panel); + show(); + + editor.on('nodeChange', reposition); + editor.on('activate', show); + editor.on('deactivate', hide); + + editor.nodeChanged(); + } + + settings.content_editable = true; + + editor.on('focus', function() { + // Render only when the CSS file has been loaded + if (args.skinUiCss) { + tinymce.DOM.styleSheetLoader.load(args.skinUiCss, render, render); + } else { + render(); + } + }); + + editor.on('blur', hide); + + // Remove the panel when the editor is removed + editor.on('remove', function() { + if (panel) { + panel.remove(); + panel = null; + } + }); + + // Preload skin css + if (args.skinUiCss) { + tinymce.DOM.styleSheetLoader.load(args.skinUiCss); + } + + return {}; + } + + /** + * Renders the iframe editor UI. + * + * @param {Object} args Details about target element etc. + * @return {Object} Name/value object with theme data. + */ + function renderIframeUI(args) { + var panel, resizeHandleCtrl, startSize; + + if (args.skinUiCss) { + tinymce.DOM.loadCSS(args.skinUiCss); + } + + // Basic UI layout + panel = self.panel = Factory.create({ + type: 'panel', + role: 'application', + classes: 'tinymce', + style: 'visibility: hidden', + layout: 'stack', + border: 1, + items: [ + settings.menubar === false ? null : {type: 'menubar', border: '0 0 1 0', items: createMenuButtons()}, + settings.toolbar === false ? null : { + type: 'panel', layout: 'stack', classes: "toolbar-grp", ariaRoot: true, ariaRemember: true, items: createToolbars() + }, + {type: 'panel', name: 'iframe', layout: 'stack', classes: 'edit-area', html: '', border: '1 0 0 0'} + ] + }); + + if (settings.resize !== false) { + resizeHandleCtrl = { + type: 'resizehandle', + direction: settings.resize, + + onResizeStart: function() { + var elm = editor.getContentAreaContainer().firstChild; + + startSize = { + width: elm.clientWidth, + height: elm.clientHeight + }; + }, + + onResize: function(e) { + if (settings.resize == 'both') { + resizeTo(startSize.width + e.deltaX, startSize.height + e.deltaY); + } else { + resizeTo(null, startSize.height + e.deltaY); + } + } + }; + } + + // Add statusbar if needed + if (settings.statusbar !== false) { + panel.add({type: 'panel', name: 'statusbar', classes: 'statusbar', layout: 'flow', border: '1 0 0 0', ariaRoot: true, items: [ + {type: 'elementpath'}, + resizeHandleCtrl + ]}); + } + + if (settings.readonly) { + panel.find('*').disabled(true); + } + + editor.fire('BeforeRenderUI'); + panel.renderBefore(args.targetNode).reflow(); + + if (settings.width) { + tinymce.DOM.setStyle(panel.getEl(), 'width', settings.width); + } + + // Remove the panel when the editor is removed + editor.on('remove', function() { + panel.remove(); + panel = null; + }); + + // Add accesibility shortkuts + addAccessibilityKeys(panel); + + return { + iframeContainer: panel.find('#iframe')[0].getEl(), + editorContainer: panel.getEl() + }; + } + + /** + * Renders the UI for the theme. This gets called by the editor. + * + * @param {Object} args Details about target element etc. + * @return {Object} Theme UI data items. + */ + self.renderUI = function(args) { + var skin = settings.skin !== false ? settings.skin || 'lightgray' : false; + + if (skin) { + var skinUrl = settings.skin_url; + + if (skinUrl) { + skinUrl = editor.documentBaseURI.toAbsolute(skinUrl); + } else { + skinUrl = tinymce.baseURL + '/skins/' + skin; + } + + // Load special skin for IE7 + // TODO: Remove this when we drop IE7 support + // EDX - Disable dynamic loading of CSS files in favor of hashed files from our Django pipeline +// if (tinymce.Env.documentMode <= 7) { +// args.skinUiCss = skinUrl + '/skin.ie7.min.css'; +// } else { +// args.skinUiCss = skinUrl + '/skin.min.css'; +// } + + // Load content.min.css or content.inline.min.css +// editor.contentCSS.push(skinUrl + '/content' + (editor.inline ? '.inline' : '') + '.min.css'); + } + + // Handle editor setProgressState change + editor.on('ProgressState', function(e) { + self.throbber = self.throbber || new tinymce.ui.Throbber(self.panel.getEl('body')); + + if (e.state) { + self.throbber.show(e.time); + } else { + self.throbber.hide(); + } + }); + + if (settings.inline) { + return renderInlineUI(args); + } + + return renderIframeUI(args); + }; + + self.resizeTo = resizeTo; + self.resizeBy = resizeBy; +}); diff --git a/common/static/js/vendor/tinymce/js/tinymce/themes/modern/theme.min.js b/common/static/js/vendor/tinymce/js/tinymce/themes/modern/theme.min.js new file mode 100755 index 00000000000..3997489bcf7 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/themes/modern/theme.min.js @@ -0,0 +1 @@ +tinymce.ThemeManager.add("modern",function(e){function t(){function t(t){var n,o=[];if(t)return d(t.split(/[ ,]/),function(t){function i(){var i=e.selection;"bullist"==r&&i.selectorChanged("ul > li",function(e,i){for(var n,o=i.parents.length;o--&&(n=i.parents[o].nodeName,"OL"!=n&&"UL"!=n););t.active(e&&"UL"==n)}),"numlist"==r&&i.selectorChanged("ol > li",function(e,i){for(var n,o=i.parents.length;o--&&(n=i.parents[o].nodeName,"OL"!=n&&"UL"!=n););t.active(e&&"OL"==n)}),t.settings.stateSelector&&i.selectorChanged(t.settings.stateSelector,function(e){t.active(e)},!0),t.settings.disabledStateSelector&&i.selectorChanged(t.settings.disabledStateSelector,function(e){t.disabled(e)})}var r;"|"==t?n=null:c.has(t)?(t={type:t},u.toolbar_items_size&&(t.size=u.toolbar_items_size),o.push(t),n=null):(n||(n={type:"buttongroup",items:[]},o.push(n)),e.buttons[t]&&(r=t,t=e.buttons[r],"function"==typeof t&&(t=t()),t.type=t.type||"button",u.toolbar_items_size&&(t.size=u.toolbar_items_size),t=c.create(t),n.items.push(t),e.initialized?i():e.on("init",i)))}),i.push({type:"toolbar",layout:"flow",items:o}),!0}for(var i=[],n=1;10>n&&t(u["toolbar"+n]);n++);return i.length||t(u.toolbar||f),i}function i(){function t(t){var i;return"|"==t?{text:"|"}:i=e.menuItems[t]}function i(i){var n,o,r,a,s;if(s=tinymce.makeMap((u.removed_menuitems||"").split(/[ ,]/)),u.menu?(o=u.menu[i],a=!0):o=h[i],o){n={text:o.title},r=[],d((o.items||"").split(/[ ,]/),function(e){var i=t(e);i&&!s[e]&&r.push(t(e))}),a||d(e.menuItems,function(e){e.context==i&&("before"==e.separator&&r.push({text:"|"}),e.prependToContext?r.unshift(e):r.push(e),"after"==e.separator&&r.push({text:"|"}))});for(var l=0;l<r.length;l++)"|"==r[l].text&&(0===l||l==r.length-1)&&r.splice(l,1);if(n.menu=r,!n.menu.length)return null}return n}var n,o=[],r=[];if(u.menu)for(n in u.menu)r.push(n);else for(n in h)r.push(n);for(var a="string"==typeof u.menubar?u.menubar.split(/[ ,]/):r,s=0;s<a.length;s++){var l=a[s];l=i(l),l&&o.push(l)}return o}function n(t){function i(e){var i=t.find(e)[0];i&&i.focus(!0)}e.shortcuts.add("Alt+F9","",function(){i("menubar")}),e.shortcuts.add("Alt+F10","",function(){i("toolbar")}),e.shortcuts.add("Alt+F11","",function(){i("elementpath")}),t.on("cancel",function(){e.focus()})}function o(t,i){function n(e){return{width:e.clientWidth,height:e.clientHeight}}var o,r,a,s;o=e.getContainer(),r=e.getContentAreaContainer().firstChild,a=n(o),s=n(r),null!==t&&(t=Math.max(u.min_width||100,t),t=Math.min(u.max_width||65535,t),m.css(o,"width",t+(a.width-s.width)),m.css(r,"width",t)),i=Math.max(u.min_height||100,i),i=Math.min(u.max_height||65535,i),m.css(r,"height",i),e.fire("ResizeEditor")}function r(t,i){var n=e.getContentAreaContainer();l.resizeTo(n.clientWidth+t,n.clientHeight+i)}function a(o){function r(){if(h&&h.moveRel&&h.visible()&&!h._fixed){var t=e.selection.getScrollContainer(),i=e.getBody(),n=0,o=0;if(t){var r=m.getPos(i),a=m.getPos(t);n=Math.max(0,a.x-r.x),o=Math.max(0,a.y-r.y)}h.fixed(!1).moveRel(i,e.rtl?["tr-br","br-tr"]:["tl-bl","bl-tl"]).moveBy(n,o)}}function a(){h&&(h.show(),r(),m.addClass(e.getBody(),"mce-edit-focus"))}function s(){h&&(h.hide(),m.removeClass(e.getBody(),"mce-edit-focus"))}function d(){return h?void(h.visible()||a()):(h=l.panel=c.create({type:f?"panel":"floatpanel",role:"application",classes:"tinymce tinymce-inline",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!!f,border:1,items:[u.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:i()},u.toolbar===!1?null:{type:"panel",layout:"stack",classes:"toolbar-grp",ariaRoot:!0,ariaRemember:!0,items:t()}]}),e.fire("BeforeRenderUI"),h.renderTo(f||document.body).reflow(),n(h),a(),e.on("nodeChange",r),e.on("activate",a),e.on("deactivate",s),void e.nodeChanged())}var h,f;return u.fixed_toolbar_container&&(f=m.select(u.fixed_toolbar_container)[0]),u.content_editable=!0,e.on("focus",function(){o.skinUiCss?tinymce.DOM.styleSheetLoader.load(o.skinUiCss,d,d):d()}),e.on("blur",s),e.on("remove",function(){h&&(h.remove(),h=null)}),o.skinUiCss&&tinymce.DOM.styleSheetLoader.load(o.skinUiCss),{}}function s(r){var a,s,d;return r.skinUiCss&&tinymce.DOM.loadCSS(r.skinUiCss),a=l.panel=c.create({type:"panel",role:"application",classes:"tinymce",style:"visibility: hidden",layout:"stack",border:1,items:[u.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:i()},u.toolbar===!1?null:{type:"panel",layout:"stack",classes:"toolbar-grp",ariaRoot:!0,ariaRemember:!0,items:t()},{type:"panel",name:"iframe",layout:"stack",classes:"edit-area",html:"",border:"1 0 0 0"}]}),u.resize!==!1&&(s={type:"resizehandle",direction:u.resize,onResizeStart:function(){var t=e.getContentAreaContainer().firstChild;d={width:t.clientWidth,height:t.clientHeight}},onResize:function(e){"both"==u.resize?o(d.width+e.deltaX,d.height+e.deltaY):o(null,d.height+e.deltaY)}}),u.statusbar!==!1&&a.add({type:"panel",name:"statusbar",classes:"statusbar",layout:"flow",border:"1 0 0 0",ariaRoot:!0,items:[{type:"elementpath"},s]}),u.readonly&&a.find("*").disabled(!0),e.fire("BeforeRenderUI"),a.renderBefore(r.targetNode).reflow(),u.width&&tinymce.DOM.setStyle(a.getEl(),"width",u.width),e.on("remove",function(){a.remove(),a=null}),n(a),{iframeContainer:a.find("#iframe")[0].getEl(),editorContainer:a.getEl()}}var l=this,u=e.settings,c=tinymce.ui.Factory,d=tinymce.each,m=tinymce.DOM,h={file:{title:"File",items:"newdocument"},edit:{title:"Edit",items:"undo redo | cut copy paste pastetext | selectall"},insert:{title:"Insert",items:"|"},view:{title:"View",items:"visualaid |"},format:{title:"Format",items:"bold italic underline strikethrough superscript subscript | formats | removeformat"},table:{title:"Table"},tools:{title:"Tools"}},f="undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image";l.renderUI=function(t){var i=u.skin!==!1?u.skin||"lightgray":!1;if(i){var n=u.skin_url;n=n?e.documentBaseURI.toAbsolute(n):tinymce.baseURL+"/skins/"+i}return e.on("ProgressState",function(e){l.throbber=l.throbber||new tinymce.ui.Throbber(l.panel.getEl("body")),e.state?l.throbber.show(e.time):l.throbber.hide()}),u.inline?a(t):s(t)},l.resizeTo=o,l.resizeBy=r}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/tinymce.dev.js b/common/static/js/vendor/tinymce/js/tinymce/tinymce.dev.js new file mode 100755 index 00000000000..cb7ddba5249 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/tinymce.dev.js @@ -0,0 +1,214 @@ +/** + * Inline development version. Only to be used while developing since it uses document.write to load scripts. + */ + +/*jshint smarttabs:true, undef:true, latedef:true, curly:true, bitwise:true, camelcase:true */ +/*globals $code */ + +(function(exports) { + "use strict"; + + var html = "", baseDir; + var modules = {}, exposedModules = [], moduleCount = 0; + + var scripts = document.getElementsByTagName('script'); + for (var i = 0; i < scripts.length; i++) { + var src = scripts[i].src; + + if (src.indexOf('/tinymce.dev.js') != -1) { + baseDir = src.substring(0, src.lastIndexOf('/')); + } + } + + function require(ids, callback) { + var module, defs = []; + + for (var i = 0; i < ids.length; ++i) { + module = modules[ids[i]] || resolve(ids[i]); + if (!module) { + throw 'module definition dependecy not found: ' + ids[i]; + } + + defs.push(module); + } + + callback.apply(null, defs); + } + + function resolve(id) { + var target = exports; + var fragments = id.split(/[.\/]/); + + for (var fi = 0; fi < fragments.length; ++fi) { + if (!target[fragments[fi]]) { + return; + } + + target = target[fragments[fi]]; + } + + return target; + } + + function register(id) { + var target = exports; + var fragments = id.split(/[.\/]/); + + for (var fi = 0; fi < fragments.length - 1; ++fi) { + if (target[fragments[fi]] === undefined) { + target[fragments[fi]] = {}; + } + + target = target[fragments[fi]]; + } + + target[fragments[fragments.length - 1]] = modules[id]; + } + + function define(id, dependencies, definition) { + if (typeof id !== 'string') { + throw 'invalid module definition, module id must be defined and be a string'; + } + + if (dependencies === undefined) { + throw 'invalid module definition, dependencies must be specified'; + } + + if (definition === undefined) { + throw 'invalid module definition, definition function must be specified'; + } + + require(dependencies, function() { + modules[id] = definition.apply(null, arguments); + }); + + if (--moduleCount === 0) { + for (var i = 0; i < exposedModules.length; i++) { + register(exposedModules[i]); + } + } + } + + function expose(ids) { + exposedModules = ids; + } + + function writeScripts() { + document.write(html); + } + + function load(path) { + html += '<script type="text/javascript" src="' + baseDir + '/' + path + '"></script>\n'; + moduleCount++; + } + + // Expose globally + exports.define = define; + exports.require = require; + + expose(["tinymce/dom/EventUtils","tinymce/dom/Sizzle","tinymce/dom/DomQuery","tinymce/html/Styles","tinymce/dom/TreeWalker","tinymce/util/Tools","tinymce/dom/Range","tinymce/html/Entities","tinymce/Env","tinymce/dom/StyleSheetLoader","tinymce/dom/DOMUtils","tinymce/dom/ScriptLoader","tinymce/AddOnManager","tinymce/html/Node","tinymce/html/Schema","tinymce/html/SaxParser","tinymce/html/DomParser","tinymce/html/Writer","tinymce/html/Serializer","tinymce/dom/Serializer","tinymce/dom/TridentSelection","tinymce/util/VK","tinymce/dom/ControlSelection","tinymce/dom/RangeUtils","tinymce/dom/Selection","tinymce/Formatter","tinymce/UndoManager","tinymce/EnterKey","tinymce/ForceBlocks","tinymce/EditorCommands","tinymce/util/URI","tinymce/util/Class","tinymce/ui/Selector","tinymce/ui/Collection","tinymce/ui/DomUtils","tinymce/ui/Control","tinymce/ui/Factory","tinymce/ui/KeyboardNavigation","tinymce/ui/Container","tinymce/ui/DragHelper","tinymce/ui/Scrollable","tinymce/ui/Panel","tinymce/ui/Movable","tinymce/ui/Resizable","tinymce/ui/FloatPanel","tinymce/ui/Window","tinymce/ui/MessageBox","tinymce/WindowManager","tinymce/util/Quirks","tinymce/util/Observable","tinymce/Shortcuts","tinymce/Editor","tinymce/util/I18n","tinymce/FocusManager","tinymce/EditorManager","tinymce/LegacyInput","tinymce/util/XHR","tinymce/util/JSON","tinymce/util/JSONRequest","tinymce/util/JSONP","tinymce/util/LocalStorage","tinymce/Compat","tinymce/ui/Layout","tinymce/ui/AbsoluteLayout","tinymce/ui/Tooltip","tinymce/ui/Widget","tinymce/ui/Button","tinymce/ui/ButtonGroup","tinymce/ui/Checkbox","tinymce/ui/PanelButton","tinymce/ui/ColorButton","tinymce/ui/ComboBox","tinymce/ui/Path","tinymce/ui/ElementPath","tinymce/ui/FormItem","tinymce/ui/Form","tinymce/ui/FieldSet","tinymce/ui/FilePicker","tinymce/ui/FitLayout","tinymce/ui/FlexLayout","tinymce/ui/FlowLayout","tinymce/ui/FormatControls","tinymce/ui/GridLayout","tinymce/ui/Iframe","tinymce/ui/Label","tinymce/ui/Toolbar","tinymce/ui/MenuBar","tinymce/ui/MenuButton","tinymce/ui/ListBox","tinymce/ui/MenuItem","tinymce/ui/Menu","tinymce/ui/Radio","tinymce/ui/ResizeHandle","tinymce/ui/Spacer","tinymce/ui/SplitButton","tinymce/ui/StackLayout","tinymce/ui/TabPanel","tinymce/ui/TextBox","tinymce/ui/Throbber"]); + + load('classes/dom/EventUtils.js'); + load('classes/dom/Sizzle.js'); + load('classes/dom/DomQuery.js'); + load('classes/html/Styles.js'); + load('classes/dom/TreeWalker.js'); + load('classes/util/Tools.js'); + load('classes/dom/Range.js'); + load('classes/html/Entities.js'); + load('classes/Env.js'); + load('classes/dom/StyleSheetLoader.js'); + load('classes/dom/DOMUtils.js'); + load('classes/dom/ScriptLoader.js'); + load('classes/AddOnManager.js'); + load('classes/html/Node.js'); + load('classes/html/Schema.js'); + load('classes/html/SaxParser.js'); + load('classes/html/DomParser.js'); + load('classes/html/Writer.js'); + load('classes/html/Serializer.js'); + load('classes/dom/Serializer.js'); + load('classes/dom/TridentSelection.js'); + load('classes/util/VK.js'); + load('classes/dom/ControlSelection.js'); + load('classes/dom/RangeUtils.js'); + load('classes/dom/Selection.js'); + load('classes/Formatter.js'); + load('classes/UndoManager.js'); + load('classes/EnterKey.js'); + load('classes/ForceBlocks.js'); + load('classes/EditorCommands.js'); + load('classes/util/URI.js'); + load('classes/util/Class.js'); + load('classes/ui/Selector.js'); + load('classes/ui/Collection.js'); + load('classes/ui/DomUtils.js'); + load('classes/ui/Control.js'); + load('classes/ui/Factory.js'); + load('classes/ui/KeyboardNavigation.js'); + load('classes/ui/Container.js'); + load('classes/ui/DragHelper.js'); + load('classes/ui/Scrollable.js'); + load('classes/ui/Panel.js'); + load('classes/ui/Movable.js'); + load('classes/ui/Resizable.js'); + load('classes/ui/FloatPanel.js'); + load('classes/ui/Window.js'); + load('classes/ui/MessageBox.js'); + load('classes/WindowManager.js'); + load('classes/util/Quirks.js'); + load('classes/util/Observable.js'); + load('classes/Shortcuts.js'); + load('classes/Editor.js'); + load('classes/util/I18n.js'); + load('classes/FocusManager.js'); + load('classes/EditorManager.js'); + load('classes/LegacyInput.js'); + load('classes/util/XHR.js'); + load('classes/util/JSON.js'); + load('classes/util/JSONRequest.js'); + load('classes/util/JSONP.js'); + load('classes/util/LocalStorage.js'); + load('classes/Compat.js'); + load('classes/ui/Layout.js'); + load('classes/ui/AbsoluteLayout.js'); + load('classes/ui/Tooltip.js'); + load('classes/ui/Widget.js'); + load('classes/ui/Button.js'); + load('classes/ui/ButtonGroup.js'); + load('classes/ui/Checkbox.js'); + load('classes/ui/PanelButton.js'); + load('classes/ui/ColorButton.js'); + load('classes/ui/ComboBox.js'); + load('classes/ui/Path.js'); + load('classes/ui/ElementPath.js'); + load('classes/ui/FormItem.js'); + load('classes/ui/Form.js'); + load('classes/ui/FieldSet.js'); + load('classes/ui/FilePicker.js'); + load('classes/ui/FitLayout.js'); + load('classes/ui/FlexLayout.js'); + load('classes/ui/FlowLayout.js'); + load('classes/ui/FormatControls.js'); + load('classes/ui/GridLayout.js'); + load('classes/ui/Iframe.js'); + load('classes/ui/Label.js'); + load('classes/ui/Toolbar.js'); + load('classes/ui/MenuBar.js'); + load('classes/ui/MenuButton.js'); + load('classes/ui/ListBox.js'); + load('classes/ui/MenuItem.js'); + load('classes/ui/Menu.js'); + load('classes/ui/Radio.js'); + load('classes/ui/ResizeHandle.js'); + load('classes/ui/Spacer.js'); + load('classes/ui/SplitButton.js'); + load('classes/ui/StackLayout.js'); + load('classes/ui/TabPanel.js'); + load('classes/ui/TextBox.js'); + load('classes/ui/Throbber.js'); + + writeScripts(); +})(this); + +// $hash: 05926848bb50eefb8b0a63bc5141644e \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/tinymce.full.min.js b/common/static/js/vendor/tinymce/js/tinymce/tinymce.full.min.js new file mode 100644 index 00000000000..33946a11858 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/tinymce.full.min.js @@ -0,0 +1,17 @@ +// 4.0.20 (2014-03-18) +!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i<e.length;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){for(var r=0;r<n.length;r++){for(var i=e,o=n[r],a=o.split(/[.\/]/),l=0;l<a.length-1;++l)i[a[l]]===t&&(i[a[l]]={}),i=i[a[l]];i[a[a.length-1]]=s[o]}}var s={},l="tinymce/dom/EventUtils",c="tinymce/dom/Sizzle",u="tinymce/dom/DomQuery",d="tinymce/html/Styles",f="tinymce/dom/TreeWalker",p="tinymce/util/Tools",m="tinymce/dom/Range",h="tinymce/html/Entities",g="tinymce/Env",v="tinymce/dom/StyleSheetLoader",y="tinymce/dom/DOMUtils",b="tinymce/dom/ScriptLoader",C="tinymce/AddOnManager",x="tinymce/html/Node",w="tinymce/html/Schema",_="tinymce/html/SaxParser",N="tinymce/html/DomParser",E="tinymce/html/Writer",S="tinymce/html/Serializer",k="tinymce/dom/Serializer",T="tinymce/dom/TridentSelection",R="tinymce/util/VK",A="tinymce/dom/ControlSelection",B="tinymce/dom/RangeUtils",L="tinymce/dom/Selection",D="tinymce/Formatter",M="tinymce/UndoManager",H="tinymce/EnterKey",P="tinymce/ForceBlocks",O="tinymce/EditorCommands",I="tinymce/util/URI",F="tinymce/util/Class",z="tinymce/ui/Selector",W="tinymce/ui/Collection",V="tinymce/ui/DomUtils",U="tinymce/ui/Control",q="tinymce/ui/Factory",$="tinymce/ui/KeyboardNavigation",j="tinymce/ui/Container",K="tinymce/ui/DragHelper",Y="tinymce/ui/Scrollable",G="tinymce/ui/Panel",X="tinymce/ui/Movable",J="tinymce/ui/Resizable",Q="tinymce/ui/FloatPanel",Z="tinymce/ui/Window",et="tinymce/ui/MessageBox",tt="tinymce/WindowManager",nt="tinymce/util/Quirks",rt="tinymce/util/Observable",it="tinymce/Shortcuts",ot="tinymce/Editor",at="tinymce/util/I18n",st="tinymce/FocusManager",lt="tinymce/EditorManager",ct="tinymce/LegacyInput",ut="tinymce/util/XHR",dt="tinymce/util/JSON",ft="tinymce/util/JSONRequest",pt="tinymce/util/JSONP",mt="tinymce/util/LocalStorage",ht="tinymce/Compat",gt="tinymce/ui/Layout",vt="tinymce/ui/AbsoluteLayout",yt="tinymce/ui/Tooltip",bt="tinymce/ui/Widget",Ct="tinymce/ui/Button",xt="tinymce/ui/ButtonGroup",wt="tinymce/ui/Checkbox",_t="tinymce/ui/PanelButton",Nt="tinymce/ui/ColorButton",Et="tinymce/ui/ComboBox",St="tinymce/ui/Path",kt="tinymce/ui/ElementPath",Tt="tinymce/ui/FormItem",Rt="tinymce/ui/Form",At="tinymce/ui/FieldSet",Bt="tinymce/ui/FilePicker",Lt="tinymce/ui/FitLayout",Dt="tinymce/ui/FlexLayout",Mt="tinymce/ui/FlowLayout",Ht="tinymce/ui/FormatControls",Pt="tinymce/ui/GridLayout",Ot="tinymce/ui/Iframe",It="tinymce/ui/Label",Ft="tinymce/ui/Toolbar",zt="tinymce/ui/MenuBar",Wt="tinymce/ui/MenuButton",Vt="tinymce/ui/ListBox",Ut="tinymce/ui/MenuItem",qt="tinymce/ui/Menu",$t="tinymce/ui/Radio",jt="tinymce/ui/ResizeHandle",Kt="tinymce/ui/Spacer",Yt="tinymce/ui/SplitButton",Gt="tinymce/ui/StackLayout",Xt="tinymce/ui/TabPanel",Jt="tinymce/ui/TextBox",Qt="tinymce/ui/Throbber";r(l,[],function(){function e(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r||!1):e.attachEvent&&e.attachEvent("on"+t,n)}function t(e,t,n,r){e.removeEventListener?e.removeEventListener(t,n,r||!1):e.detachEvent&&e.detachEvent("on"+t,n)}function n(e,t){function n(){return!1}function r(){return!0}var i,o=t||{},l;for(i in e)s[i]||(o[i]=e[i]);if(o.target||(o.target=o.srcElement||document),e&&a.test(e.type)&&e.pageX===l&&e.clientX!==l){var c=o.target.ownerDocument||document,u=c.documentElement,d=c.body;o.pageX=e.clientX+(u&&u.scrollLeft||d&&d.scrollLeft||0)-(u&&u.clientLeft||d&&d.clientLeft||0),o.pageY=e.clientY+(u&&u.scrollTop||d&&d.scrollTop||0)-(u&&u.clientTop||d&&d.clientTop||0)}return o.preventDefault=function(){o.isDefaultPrevented=r,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},o.stopPropagation=function(){o.isPropagationStopped=r,e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)},o.stopImmediatePropagation=function(){o.isImmediatePropagationStopped=r,o.stopPropagation()},o.isDefaultPrevented||(o.isDefaultPrevented=n,o.isPropagationStopped=n,o.isImmediatePropagationStopped=n),o}function r(n,r,i){function o(){i.domLoaded||(i.domLoaded=!0,r(c))}function a(){("complete"===l.readyState||"interactive"===l.readyState&&l.body)&&(t(l,"readystatechange",a),o())}function s(){try{l.documentElement.doScroll("left")}catch(e){return void setTimeout(s,0)}o()}var l=n.document,c={type:"ready"};return i.domLoaded?void r(c):(l.addEventListener?"complete"===l.readyState?o():e(n,"DOMContentLoaded",o):(e(l,"readystatechange",a),l.documentElement.doScroll&&n.self===n.top&&s()),void e(n,"load",o))}function i(){function i(e,t){var n,r,i,o,a=s[t];if(n=a&&a[e.type])for(r=0,i=n.length;i>r;r++)if(o=n[r],o&&o.func.call(o.scope,e)===!1&&e.preventDefault(),e.isImmediatePropagationStopped())return}var a=this,s={},l,c,u,d,f;c=o+(+new Date).toString(32),d="onmouseenter"in document.documentElement,u="onfocusin"in document.documentElement,f={mouseenter:"mouseover",mouseleave:"mouseout"},l=1,a.domLoaded=!1,a.events=s,a.bind=function(t,o,p,m){function h(e){i(n(e||_.event),g)}var g,v,y,b,C,x,w,_=window;if(t&&3!==t.nodeType&&8!==t.nodeType){for(t[c]?g=t[c]:(g=l++,t[c]=g,s[g]={}),m=m||t,o=o.split(" "),y=o.length;y--;)b=o[y],x=h,C=w=!1,"DOMContentLoaded"===b&&(b="ready"),a.domLoaded&&"ready"===b&&"complete"==t.readyState?p.call(m,n({type:b})):(d||(C=f[b],C&&(x=function(e){var t,r;if(t=e.currentTarget,r=e.relatedTarget,r&&t.contains)r=t.contains(r);else for(;r&&r!==t;)r=r.parentNode;r||(e=n(e||_.event),e.type="mouseout"===e.type?"mouseleave":"mouseenter",e.target=t,i(e,g))})),u||"focusin"!==b&&"focusout"!==b||(w=!0,C="focusin"===b?"focus":"blur",x=function(e){e=n(e||_.event),e.type="focus"===e.type?"focusin":"focusout",i(e,g)}),v=s[g][b],v?"ready"===b&&a.domLoaded?p({type:b}):v.push({func:p,scope:m}):(s[g][b]=v=[{func:p,scope:m}],v.fakeName=C,v.capture=w,v.nativeHandler=x,"ready"===b?r(t,x,a):e(t,C||b,x,w)));return t=v=0,p}},a.unbind=function(e,n,r){var i,o,l,u,d,f;if(!e||3===e.nodeType||8===e.nodeType)return a;if(i=e[c]){if(f=s[i],n){for(n=n.split(" "),l=n.length;l--;)if(d=n[l],o=f[d]){if(r)for(u=o.length;u--;)if(o[u].func===r){var p=o.nativeHandler,m=o.fakeName,h=o.capture;o=o.slice(0,u).concat(o.slice(u+1)),o.nativeHandler=p,o.fakeName=m,o.capture=h,f[d]=o}r&&0!==o.length||(delete f[d],t(e,o.fakeName||d,o.nativeHandler,o.capture))}}else{for(d in f)o=f[d],t(e,o.fakeName||d,o.nativeHandler,o.capture);f={}}for(d in f)return a;delete s[i];try{delete e[c]}catch(g){e[c]=null}}return a},a.fire=function(e,t,r){var o;if(!e||3===e.nodeType||8===e.nodeType)return a;r=n(null,r),r.type=t,r.target=e;do o=e[c],o&&i(r,o),e=e.parentNode||e.ownerDocument||e.defaultView||e.parentWindow;while(e&&!r.isPropagationStopped());return a},a.clean=function(e){var t,n,r=a.unbind;if(!e||3===e.nodeType||8===e.nodeType)return a;if(e[c]&&r(e),e.getElementsByTagName||(e=e.document),e&&e.getElementsByTagName)for(r(e),n=e.getElementsByTagName("*"),t=n.length;t--;)e=n[t],e[c]&&r(e);return a},a.destroy=function(){s={}},a.cancel=function(e){return e&&(e.preventDefault(),e.stopImmediatePropagation()),!1}}var o="mce-data-",a=/^(?:mouse|contextmenu)|click/,s={keyLocation:1,layerX:1,layerY:1,returnValue:1};return i.Event=new i,i.Event.bind(window,"ready",function(){}),i}),r(c,[],function(){function e(e){return ht.test(e+"")}function n(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>_.cacheLength&&delete e[t.shift()],e[n]=r,r}}function r(e){return e[I]=!0,e}function i(e){var t=B.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t=null}}function o(e,t,n,r){var i,o,a,s,l,c,f,p,m,h;if((t?t.ownerDocument||t:F)!==B&&A(t),t=t||B,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(D&&!r){if(i=gt.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&O(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return Z.apply(n,t.getElementsByTagName(e)),n;if((a=i[3])&&z.getElementsByClassName&&t.getElementsByClassName)return Z.apply(n,t.getElementsByClassName(a)),n}if(z.qsa&&!M.test(e)){if(f=!0,p=I,m=t,h=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(c=u(e),(f=t.getAttribute("id"))?p=f.replace(bt,"\\$&"):t.setAttribute("id",p),p="[id='"+p+"'] ",l=c.length;l--;)c[l]=p+d(c[l]);m=mt.test(e)&&t.parentNode||t,h=c.join(",")}if(h)try{return Z.apply(n,m.querySelectorAll(h)),n}catch(g){}finally{f||t.removeAttribute("id")}}}return b(e.replace(lt,"$1"),t,n,r)}function a(e,t){var n=t&&e,r=n&&(~t.sourceIndex||G)-(~e.sourceIndex||G);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function u(e,t){var n,r,i,a,s,l,c,u=q[e+" "];if(u)return t?0:u.slice(0);for(s=e,l=[],c=_.preFilter;s;){(!n||(r=ct.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=ut.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(lt," ")}),s=s.slice(n.length));for(a in _.filter)!(r=pt[a].exec(s))||c[a]&&!(r=c[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?o.error(e):q(e,l).slice(0)}function d(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function f(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=V++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,l,c,u=W+" "+o;if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i)if(c=t[I]||(t[I]={}),(l=c[r])&&l[0]===u){if((s=l[1])===!0||s===w)return s===!0}else if(l=c[r]=[u],l[1]=e(t,n,a)||w,l[1]===!0)return!0}}function p(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function m(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,c=null!=t;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),c&&t.push(s));return a}function h(e,t,n,i,o,a){return i&&!i[I]&&(i=h(i)),o&&!o[I]&&(o=h(o,a)),r(function(r,a,s,l){var c,u,d,f=[],p=[],h=a.length,g=r||y(t||"*",s.nodeType?[s]:s,[]),v=!e||!r&&t?g:m(g,f,e,s,l),b=n?o||(r?e:h||i)?[]:a:v;if(n&&n(v,b,s,l),i)for(c=m(b,p),i(c,[],s,l),u=c.length;u--;)(d=c[u])&&(b[p[u]]=!(v[p[u]]=d));if(r){if(o||e){if(o){for(c=[],u=b.length;u--;)(d=b[u])&&c.push(v[u]=d);o(null,b=[],c,l)}for(u=b.length;u--;)(d=b[u])&&(c=o?tt.call(r,d):f[u])>-1&&(r[c]=!(a[c]=d))}}else b=m(b===a?b.splice(h,b.length):b),o?o(null,a,b,l):Z.apply(a,b)})}function g(e){for(var t,n,r,i=e.length,o=_.relative[e[0].type],a=o||_.relative[" "],s=o?1:0,l=f(function(e){return e===t},a,!0),c=f(function(e){return tt.call(t,e)>-1},a,!0),u=[function(e,n,r){return!o&&(r||n!==k)||((t=n).nodeType?l(e,n,r):c(e,n,r))}];i>s;s++)if(n=_.relative[e[s].type])u=[f(p(u),n)];else{if(n=_.filter[e[s].type].apply(null,e[s].matches),n[I]){for(r=++s;i>r&&!_.relative[e[r].type];r++);return h(s>1&&p(u),s>1&&d(e.slice(0,s-1)).replace(lt,"$1"),n,r>s&&g(e.slice(s,r)),i>r&&g(e=e.slice(r)),i>r&&d(e))}u.push(n)}return p(u)}function v(e,t){var n=0,i=t.length>0,a=e.length>0,s=function(r,s,l,c,u){var d,f,p,h=[],g=0,v="0",y=r&&[],b=null!=u,C=k,x=r||a&&_.find.TAG("*",u&&s.parentNode||s),N=W+=null==C?1:Math.random()||.1;for(b&&(k=s!==B&&s,w=n);null!=(d=x[v]);v++){if(a&&d){for(f=0;p=e[f++];)if(p(d,s,l)){c.push(d);break}b&&(W=N,w=++n)}i&&((d=!p&&d)&&g--,r&&y.push(d))}if(g+=v,i&&v!==g){for(f=0;p=t[f++];)p(y,h,s,l);if(r){if(g>0)for(;v--;)y[v]||h[v]||(h[v]=J.call(c));h=m(h)}Z.apply(c,h),b&&!r&&h.length>0&&g+t.length>1&&o.uniqueSort(c)}return b&&(W=N,k=C),y};return i?r(s):s}function y(e,t,n){for(var r=0,i=t.length;i>r;r++)o(e,t[r],n);return n}function b(e,t,n,r){var i,o,a,s,l,c=u(e);if(!r&&1===c.length){if(o=c[0]=c[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&9===t.nodeType&&D&&_.relative[o[1].type]){if(t=(_.find.ID(a.matches[0].replace(xt,wt),t)||[])[0],!t)return n;e=e.slice(o.shift().value.length)}for(i=pt.needsContext.test(e)?0:o.length;i--&&(a=o[i],!_.relative[s=a.type]);)if((l=_.find[s])&&(r=l(a.matches[0].replace(xt,wt),mt.test(o[0].type)&&t.parentNode||t))){if(o.splice(i,1),e=r.length&&d(o),!e)return Z.apply(n,r),n;break}}return S(e,c)(r,t,!D,n,mt.test(e)),n}function C(){}var x,w,_,N,E,S,k,T,R,A,B,L,D,M,H,P,O,I="sizzle"+-new Date,F=window.document,z={},W=0,V=0,U=n(),q=n(),$=n(),j=!1,K=function(){return 0},Y=typeof t,G=1<<31,X=[],J=X.pop,Q=X.push,Z=X.push,et=X.slice,tt=X.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},nt="[\\x20\\t\\r\\n\\f]",rt="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",it=rt.replace("w","w#"),ot="([*^$|!~]?=)",at="\\["+nt+"*("+rt+")"+nt+"*(?:"+ot+nt+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+it+")|)|)"+nt+"*\\]",st=":("+rt+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+at.replace(3,8)+")*)|.*)\\)|)",lt=new RegExp("^"+nt+"+|((?:^|[^\\\\])(?:\\\\.)*)"+nt+"+$","g"),ct=new RegExp("^"+nt+"*,"+nt+"*"),ut=new RegExp("^"+nt+"*([\\x20\\t\\r\\n\\f>+~])"+nt+"*"),dt=new RegExp(st),ft=new RegExp("^"+it+"$"),pt={ID:new RegExp("^#("+rt+")"),CLASS:new RegExp("^\\.("+rt+")"),NAME:new RegExp("^\\[name=['\"]?("+rt+")['\"]?\\]"),TAG:new RegExp("^("+rt.replace("w","w*")+")"),ATTR:new RegExp("^"+at),PSEUDO:new RegExp("^"+st),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+nt+"*(even|odd|(([+-]|)(\\d*)n|)"+nt+"*(?:([+-]|)"+nt+"*(\\d+)|))"+nt+"*\\)|)","i"),needsContext:new RegExp("^"+nt+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+nt+"*((?:-\\d)?\\d*)"+nt+"*\\)|)(?=[^-]|$)","i")},mt=/[\x20\t\r\n\f]*[+~]/,ht=/^[^{]+\{\s*\[native code/,gt=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,vt=/^(?:input|select|textarea|button)$/i,yt=/^h\d$/i,bt=/'|\\/g,Ct=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,xt=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,wt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320)};try{Z.apply(X=et.call(F.childNodes),F.childNodes),X[F.childNodes.length].nodeType}catch(_t){Z={apply:X.length?function(e,t){Q.apply(e,et.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}E=o.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},A=o.setDocument=function(n){var r=n?n.ownerDocument||n:F;return r!==B&&9===r.nodeType&&r.documentElement?(B=r,L=r.documentElement,D=!E(r),z.getElementsByTagName=i(function(e){return e.appendChild(r.createComment("")),!e.getElementsByTagName("*").length}),z.attributes=i(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),z.getElementsByClassName=i(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),z.getByName=i(function(e){e.id=I+0,e.appendChild(B.createElement("a")).setAttribute("name",I),e.appendChild(B.createElement("i")).setAttribute("name",I),L.appendChild(e);var t=r.getElementsByName&&r.getElementsByName(I).length===2+r.getElementsByName(I+0).length;return L.removeChild(e),t}),z.sortDetached=i(function(e){return e.compareDocumentPosition&&1&e.compareDocumentPosition(B.createElement("div"))}),_.attrHandle=i(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==Y&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},z.getByName?(_.find.ID=function(e,t){if(typeof t.getElementById!==Y&&D){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},_.filter.ID=function(e){var t=e.replace(xt,wt);return function(e){return e.getAttribute("id")===t}}):(_.find.ID=function(e,n){if(typeof n.getElementById!==Y&&D){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==Y&&r.getAttributeNode("id").value===e?[r]:t:[]}},_.filter.ID=function(e){var t=e.replace(xt,wt);return function(e){var n=typeof e.getAttributeNode!==Y&&e.getAttributeNode("id");return n&&n.value===t}}),_.find.TAG=z.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==Y?t.getElementsByTagName(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},_.find.NAME=z.getByName&&function(e,t){return typeof t.getElementsByName!==Y?t.getElementsByName(name):void 0},_.find.CLASS=z.getElementsByClassName&&function(e,t){return typeof t.getElementsByClassName!==Y&&D?t.getElementsByClassName(e):void 0},H=[],M=[":focus"],(z.qsa=e(r.querySelectorAll))&&(i(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||M.push("\\["+nt+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||M.push(":checked")}),i(function(e){e.innerHTML="<input type='hidden' i=''/>",e.querySelectorAll("[i^='']").length&&M.push("[*^$]="+nt+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length||M.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),M.push(",.*:")})),(z.matchesSelector=e(P=L.matchesSelector||L.mozMatchesSelector||L.webkitMatchesSelector||L.oMatchesSelector||L.msMatchesSelector))&&i(function(e){z.disconnectedMatch=P.call(e,"div"),P.call(e,"[s!='']:x"),H.push("!=",st)}),M=new RegExp(M.join("|")),H=H.length&&new RegExp(H.join("|")),O=e(L.contains)||L.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},K=L.compareDocumentPosition?function(e,t){if(e===t)return j=!0,0;var n=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return n?1&n||T&&t.compareDocumentPosition(e)===n?e===r||O(F,e)?-1:t===r||O(F,t)?1:R?tt.call(R,e)-tt.call(R,t):0:4&n?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var n,i=0,o=e.parentNode,s=t.parentNode,l=[e],c=[t];if(e===t)return j=!0,0;if(!o||!s)return e===r?-1:t===r?1:o?-1:s?1:0;if(o===s)return a(e,t);for(n=e;n=n.parentNode;)l.unshift(n);for(n=t;n=n.parentNode;)c.unshift(n);for(;l[i]===c[i];)i++;return i?a(l[i],c[i]):l[i]===F?-1:c[i]===F?1:0},B):B},o.matches=function(e,t){return o(e,null,null,t)},o.matchesSelector=function(e,t){if((e.ownerDocument||e)!==B&&A(e),t=t.replace(Ct,"='$1']"),z.matchesSelector&&D&&(!H||!H.test(t))&&!M.test(t))try{var n=P.call(e,t);if(n||z.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return o(t,B,null,[e]).length>0},o.contains=function(e,t){return(e.ownerDocument||e)!==B&&A(e),O(e,t)},o.attr=function(e,t){var n;return(e.ownerDocument||e)!==B&&A(e),D&&(t=t.toLowerCase()),(n=_.attrHandle[t])?n(e):!D||z.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},o.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},o.uniqueSort=function(e){var t,n=[],r=0,i=0;if(j=!z.detectDuplicates,T=!z.sortDetached,R=!z.sortStable&&e.slice(0),e.sort(K),j){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return e},N=o.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=N(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=N(t);return n},_=o.selectors={cacheLength:50,createPseudo:r,match:pt,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(xt,wt),e[3]=(e[4]||e[5]||"").replace(xt,wt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||o.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&o.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return pt.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&dt.test(n)&&(t=u(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(xt,wt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=U[e+" "];return t||(t=new RegExp("(^|"+nt+")"+e+"("+nt+"|$)"))&&U(e,function(e){return t.test(e.className||typeof e.getAttribute!==Y&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=o.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var c,u,d,f,p,m,h=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!l&&!s;if(g){if(o){for(;h;){for(d=t;d=d[h];)if(s?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;m=h="only"===e&&!m&&"nextSibling"}return!0}if(m=[a?g.firstChild:g.lastChild],a&&y){for(u=g[I]||(g[I]={}),c=u[e]||[],p=c[0]===W&&c[1],f=c[0]===W&&c[2],d=p&&g.childNodes[p];d=++p&&d&&d[h]||(f=p=0)||m.pop();)if(1===d.nodeType&&++f&&d===t){u[e]=[W,p,f];break}}else if(y&&(c=(t[I]||(t[I]={}))[e])&&c[0]===W)f=c[1];else for(;(d=++p&&d&&d[h]||(f=p=0)||m.pop())&&((s?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++f||(y&&((d[I]||(d[I]={}))[e]=[W,f]),d!==t)););return f-=i,f===r||f%r===0&&f/r>=0}}},PSEUDO:function(e,t){var n,i=_.pseudos[e]||_.setFilters[e.toLowerCase()]||o.error("unsupported pseudo: "+e);return i[I]?i(t):i.length>1?(n=[e,e,"",t],_.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,n){for(var r,o=i(e,t),a=o.length;a--;)r=tt.call(e,o[a]),e[r]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:r(function(e){var t=[],n=[],i=S(e.replace(lt,"$1"));return i[I]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),!n.pop()}}),has:r(function(e){return function(t){return o(e,t).length>0}}),contains:r(function(e){return function(t){return(t.textContent||t.innerText||N(t)).indexOf(e)>-1}}),lang:r(function(e){return ft.test(e||"")||o.error("unsupported lang: "+e),e=e.replace(xt,wt).toLowerCase(),function(t){var n;do if(n=D?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(e){var t=window.location&&window.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===L},focus:function(e){return e===B.activeElement&&(!B.hasFocus||B.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!_.pseudos.empty(e)},header:function(e){return yt.test(e.nodeName)},input:function(e){return vt.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:c(function(){return[0]}),last:c(function(e,t){return[t-1]}),eq:c(function(e,t,n){return[0>n?n+t:n]}),even:c(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:c(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:c(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:c(function(e,t,n){for(var r=0>n?n+t:n;++r<t;)e.push(r);return e})}};for(x in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})_.pseudos[x]=s(x);for(x in{submit:!0,reset:!0})_.pseudos[x]=l(x);return S=o.compile=function(e,t){var n,r=[],i=[],o=$[e+" "];if(!o){for(t||(t=u(e)),n=t.length;n--;)o=g(t[n]),o[I]?r.push(o):i.push(o);o=$(e,v(i,r))}return o},_.pseudos.nth=_.pseudos.eq,C.prototype=_.filters=_.pseudos,_.setFilters=new C,z.sortStable=I.split("").sort(K).join("")===I,A(),[0,0].sort(K),z.detectDuplicates=j,o}),r(u,[l,c],function(e,n){function r(e){return"undefined"!=typeof e}function i(e){return"string"==typeof e}function o(e){var t,n,r;for(r=v.createElement("div"),t=v.createDocumentFragment(),r.innerHTML=e;n=r.firstChild;)t.appendChild(n);return t}function a(e,t,n){var r;if("string"==typeof t)t=o(t);else if(t.length){for(r=0;r<t.length;r++)a(e,t[r],n);return e}for(r=e.length;r--;)n.call(e[r],t.parentNode?t:t);return e}function s(e,t){return e&&t&&-1!==(" "+e.className+" ").indexOf(" "+t+" ")}function l(e,t){var n;for(e=e||[],"string"==typeof e&&(e=e.split(" ")),t=t||{},n=e.length;n--;)t[e[n]]={};return t}function c(e,t){return new c.fn.init(e,t)}function u(e){var t=arguments,n,r,i;for(r=1;r<t.length;r++){n=t[r];for(i in n)e[i]=n[i]}return e}function d(e){var t=[],n,r;for(n=0,r=e.length;r>n;n++)t[n]=e[n];return t}function f(e,t){var n;if(t.indexOf)return t.indexOf(e);for(n=t.length;n--;)if(t[n]===e)return n;return-1}function p(e){return null===e||e===t?"":(""+e).replace(N,"")}function m(e,t){var n,r,i,o,a;if(e)if(n=e.length,n===o){for(r in e)if(e.hasOwnProperty(r)&&(a=e[r],t.call(a,a,r)===!1))break}else for(i=0;n>i&&(a=e[i],t.call(a,a,r)!==!1);i++);return e}function h(e,n,r){for(var i=[],o=e[n];o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!c(o).is(r));)1===o.nodeType&&i.push(o),o=o[n];return i}function g(e,t,n,r){for(var i=[];e;e=e[n])r&&e.nodeType!==r||e===t||i.push(e);return i}var v=document,y=Array.prototype.push,b=Array.prototype.slice,C=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,x=e.Event,w=l("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"),_=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},N=/^\s*|\s*$/g;return c.fn=c.prototype={constructor:c,selector:"",length:0,init:function(e,t){var n=this,r,a;if(!e)return n;if(e.nodeType)return n.context=n[0]=e,n.length=1,n;if(i(e)){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:C.exec(e),!r)return c(t||document).find(e);if(r[1])for(a=o(e).firstChild;a;)this.add(a),a=a.nextSibling;else{if(a=v.getElementById(r[2]),a.id!==r[2])return n.find(e);n.length=1,n[0]=a}}else this.add(e);return n},toArray:function(){return d(this)},add:function(e){var t=this;return _(e)?y.apply(t,e):e instanceof c?t.add(e.toArray()):y.call(t,e),t},attr:function(e,n){var i=this;if("object"==typeof e)m(e,function(e,t){i.attr(t,e)});else{if(!r(n))return i[0]&&1===i[0].nodeType?i[0].getAttribute(e):t;this.each(function(){1===this.nodeType&&this.setAttribute(e,n)})}return i},css:function(e,n){var i=this;if("object"==typeof e)m(e,function(e,t){i.css(t,e)});else{if(e=e.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),!r(n))return i[0]?i[0].style[e]:t;"number"!=typeof n||w[e]||(n+="px"),i.each(function(){var t=this.style;"opacity"===e&&this.runtimeStyle&&"undefined"==typeof this.runtimeStyle.opacity&&(t.filter=""===n?"":"alpha(opacity="+100*n+")");try{t[e]=n}catch(r){}})}return i},remove:function(){for(var e=this,t,n=this.length;n--;)t=e[n],x.clean(t),t.parentNode&&t.parentNode.removeChild(t);return this},empty:function(){for(var e=this,t,n=this.length;n--;)for(t=e[n];t.firstChild;)t.removeChild(t.firstChild);return this},html:function(e){var t=this,n;if(r(e)){for(n=t.length;n--;)t[n].innerHTML=e;return t}return t[0]?t[0].innerHTML:""},text:function(e){var t=this,n;if(r(e)){for(n=t.length;n--;)t[n].innerText=t[0].textContent=e;return t}return t[0]?t[0].innerText||t[0].textContent:""},append:function(){return a(this,arguments,function(e){1===this.nodeType&&this.appendChild(e)})},prepend:function(){return a(this,arguments,function(e){1===this.nodeType&&this.insertBefore(e,this.firstChild)})},before:function(){var e=this;return e[0]&&e[0].parentNode?a(e,arguments,function(e){this.parentNode.insertBefore(e,this.nextSibling)}):e},after:function(){var e=this;return e[0]&&e[0].parentNode?a(e,arguments,function(e){this.parentNode.insertBefore(e,this)}):e},appendTo:function(e){return c(e).append(this),this},addClass:function(e){return this.toggleClass(e,!0)},removeClass:function(e){return this.toggleClass(e,!1)},toggleClass:function(e,t){var n=this;return-1!==e.indexOf(" ")?m(e.split(" "),function(){n.toggleClass(this,t)}):n.each(function(n){var r;s(n,e)!==t&&(r=n.className,t?n.className+=r?" "+e:e:n.className=p((" "+r+" ").replace(" "+e+" "," ")))}),n},hasClass:function(e){return s(this[0],e)},each:function(e){return m(this,e)},on:function(e,t){return this.each(function(){x.bind(this,e,t)})},off:function(e,t){return this.each(function(){x.unbind(this,e,t)})},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},slice:function(){return new c(b.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},replaceWith:function(e){var t=this;return t[0]&&t[0].parentNode.replaceChild(c(e)[0],t[0]),t},wrap:function(e){return e=c(e)[0],this.each(function(){var t=this,n=e.cloneNode(!1);t.parentNode.insertBefore(n,t),n.appendChild(t)})},unwrap:function(){return this.each(function(){for(var e=this,t=e.firstChild,n;t;)n=t,t=t.nextSibling,e.parentNode.insertBefore(n,e)})},clone:function(){var e=[];return this.each(function(){e.push(this.cloneNode(!0))}),c(e)},find:function(e){var t,n,r=[];for(t=0,n=this.length;n>t;t++)c.find(e,this[t],r);return c(r)},push:y,sort:[].sort,splice:[].splice},u(c,{extend:u,toArray:d,inArray:f,isArray:_,each:m,trim:p,makeMap:l,find:n,expr:n.selectors,unique:n.uniqueSort,text:n.getText,isXMLDoc:n.isXML,contains:n.contains,filter:function(e,t,n){return n&&(e=":not("+e+")"),t=1===t.length?c.find.matchesSelector(t[0],e)?[t[0]]:[]:c.find.matches(e,t)}}),m({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t){return h(e,"parentNode",t)},next:function(e){return g(e,"nextSibling",1)},prev:function(e){return g(e,"previousSibling",1)},nextNodes:function(e){return g(e,"nextSibling")},prevNodes:function(e){return g(e,"previousSibling")},children:function(e){return g(e.firstChild,"nextSibling",1)},contents:function(e){return d(("iframe"===e.nodeName?e.contentDocument||e.contentWindow.document:e).childNodes)}},function(e,t){c.fn[e]=function(n){var r=this,i;if(r.length>1)throw new Error("DomQuery only supports traverse functions on a single node.");return r[0]&&(i=t(r[0],n)),i=c(i),n&&"parentsUntil"!==e?i.filter(n):i}}),c.fn.filter=function(e){return c.filter(e)},c.fn.is=function(e){return!!e&&this.filter(e).length>0},c.fn.init.prototype=c.fn,c}),r(d,[],function(){return function(e,t){function n(e,t,n,r){function i(e){return e=parseInt(e,10).toString(16),e.length>1?e:"0"+e}return"#"+i(t)+i(n)+i(r)}var r=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,i=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,o=/\s*([^:]+):\s*([^;]+);?/g,a=/\s+$/,s,l,c={},u,d="\ufeff"; +for(e=e||{},u=("\\\" \\' \\; \\: ; : "+d).split(" "),l=0;l<u.length;l++)c[u[l]]=d+l,c[d+l]=u[l];return{toHex:function(e){return e.replace(r,n)},parse:function(t){function s(e,t,n){var r,i,o,a;if(r=h[e+"-top"+t],r&&(i=h[e+"-right"+t],i&&(o=h[e+"-bottom"+t],o&&(a=h[e+"-left"+t])))){var s=[r,i,o,a];for(l=s.length-1;l--&&s[l]===s[l+1];);l>-1&&n||(h[e+t]=-1==l?s[0]:s.join(" "),delete h[e+"-top"+t],delete h[e+"-right"+t],delete h[e+"-bottom"+t],delete h[e+"-left"+t])}}function u(e){var t=h[e],n;if(t){for(t=t.split(" "),n=t.length;n--;)if(t[n]!==t[0])return!1;return h[e]=t[0],!0}}function d(e,t,n,r){u(t)&&u(n)&&u(r)&&(h[e]=h[t]+" "+h[n]+" "+h[r],delete h[t],delete h[n],delete h[r])}function f(e){return b=!0,c[e]}function p(e,t){return b&&(e=e.replace(/\uFEFF[0-9]/g,function(e){return c[e]})),t||(e=e.replace(/\\([\'\";:])/g,"$1")),e}function m(t,n,r,i,o,a){return(o=o||a)?(o=p(o),"'"+o.replace(/\'/g,"\\'")+"'"):(n=p(n||r||i),!e.allow_script_urls&&/(java|vb)script:/i.test(n.replace(/[\s\r\n]+/,""))?"":(C&&(n=C.call(x,n,"style")),"url('"+n.replace(/\'/g,"\\'")+"')"))}var h={},g,v,y,b,C=e.url_converter,x=e.url_converter_scope||this;if(t){for(t=t.replace(/[\u0000-\u001F]/g,""),t=t.replace(/\\[\"\';:\uFEFF]/g,f).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(e){return e.replace(/[;:]/g,f)});g=o.exec(t);){if(v=g[1].replace(a,"").toLowerCase(),y=g[2].replace(a,""),v&&y.length>0){if(!e.allow_script_urls&&("behavior"==v||/expression\s*\(/.test(y)))continue;"font-weight"===v&&"700"===y?y="bold":("color"===v||"background-color"===v)&&(y=y.toLowerCase()),y=y.replace(r,n),y=y.replace(i,m),h[v]=b?p(y,!0):y}o.lastIndex=g.index+g[0].length}s("border","",!0),s("border","-width"),s("border","-color"),s("border","-style"),s("padding",""),s("margin",""),d("border","border-width","border-style","border-color"),"medium none"===h.border&&delete h.border,"none"===h["border-image"]&&delete h["border-image"]}return h},serialize:function(e,n){function r(n){var r,o,a,l;if(r=t.styles[n])for(o=0,a=r.length;a>o;o++)n=r[o],l=e[n],l!==s&&l.length>0&&(i+=(i.length>0?" ":"")+n+": "+l+";")}var i="",o,a;if(n&&t&&t.styles)r("*"),r(n);else for(o in e)a=e[o],a!==s&&a.length>0&&(i+=(i.length>0?" ":"")+o+": "+a+";");return i}}}}),r(f,[],function(){return function(e,t){function n(e,n,r,i){var o,a;if(e){if(!i&&e[n])return e[n];if(e!=t){if(o=e[r])return o;for(a=e.parentNode;a&&a!=t;a=a.parentNode)if(o=a[r])return o}}}var r=e;this.current=function(){return r},this.next=function(e){return r=n(r,"firstChild","nextSibling",e)},this.prev=function(e){return r=n(r,"lastChild","previousSibling",e)}}}),r(p,[],function(){function e(e){return null===e||e===t?"":(""+e).replace(h,"")}function n(e,n){return n?"array"==n&&g(e)?!0:typeof e==n:e!==t}function r(e){var t=[],n,r;for(n=0,r=e.length;r>n;n++)t[n]=e[n];return t}function i(e,t,n){var r;for(e=e||[],t=t||",","string"==typeof e&&(e=e.split(t)),n=n||{},r=e.length;r--;)n[e[r]]={};return n}function o(e,n,r){var i,o;if(!e)return 0;if(r=r||e,e.length!==t){for(i=0,o=e.length;o>i;i++)if(n.call(r,e[i],i,e)===!1)return 0}else for(i in e)if(e.hasOwnProperty(i)&&n.call(r,e[i],i,e)===!1)return 0;return 1}function a(e,t){var n=[];return o(e,function(e){n.push(t(e))}),n}function s(e,t){var n=[];return o(e,function(e){(!t||t(e))&&n.push(e)}),n}function l(e,t,n){var r=this,i,o,a,s,l,c=0;if(e=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(e),a=e[3].match(/(^|\.)(\w+)$/i)[2],o=r.createNS(e[3].replace(/\.\w+$/,""),n),!o[a]){if("static"==e[2])return o[a]=t,void(this.onCreate&&this.onCreate(e[2],e[3],o[a]));t[a]||(t[a]=function(){},c=1),o[a]=t[a],r.extend(o[a].prototype,t),e[5]&&(i=r.resolve(e[5]).prototype,s=e[5].match(/\.(\w+)$/i)[1],l=o[a],o[a]=c?function(){return i[s].apply(this,arguments)}:function(){return this.parent=i[s],l.apply(this,arguments)},o[a].prototype[a]=o[a],r.each(i,function(e,t){o[a].prototype[t]=i[t]}),r.each(t,function(e,t){i[t]?o[a].prototype[t]=function(){return this.parent=i[t],e.apply(this,arguments)}:t!=a&&(o[a].prototype[t]=e)})),r.each(t["static"],function(e,t){o[a][t]=e})}}function c(e,t){var n,r;if(e)for(n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1}function u(e,n){var r,i,o,a=arguments,s;for(r=1,i=a.length;i>r;r++){n=a[r];for(o in n)n.hasOwnProperty(o)&&(s=n[o],s!==t&&(e[o]=s))}return e}function d(e,t,n,r){r=r||this,e&&(n&&(e=e[n]),o(e,function(e,i){return t.call(r,e,i,n)===!1?!1:void d(e,t,n,r)}))}function f(e,t){var n,r;for(t=t||window,e=e.split("."),n=0;n<e.length;n++)r=e[n],t[r]||(t[r]={}),t=t[r];return t}function p(e,t){var n,r;for(t=t||window,e=e.split("."),n=0,r=e.length;r>n&&(t=t[e[n]],t);n++);return t}function m(t,r){return!t||n(t,"array")?t:a(t.split(r||","),e)}var h=/^\s*|\s*$/g,g=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};return{trim:e,isArray:g,is:n,toArray:r,makeMap:i,each:o,map:a,grep:s,inArray:c,extend:u,create:l,walk:d,createNS:f,resolve:p,explode:m}}),r(m,[p],function(e){function t(n){function r(){return H.createDocumentFragment()}function i(e,t){_(F,e,t)}function o(e,t){_(z,e,t)}function a(e){i(e.parentNode,j(e))}function s(e){i(e.parentNode,j(e)+1)}function l(e){o(e.parentNode,j(e))}function c(e){o(e.parentNode,j(e)+1)}function u(e){e?(M[U]=M[V],M[q]=M[W]):(M[V]=M[U],M[W]=M[q]),M.collapsed=F}function d(e){a(e),c(e)}function f(e){i(e,0),o(e,1===e.nodeType?e.childNodes.length:e.nodeValue.length)}function p(e,t){var n=M[V],r=M[W],i=M[U],o=M[q],a=t.startContainer,s=t.startOffset,l=t.endContainer,c=t.endOffset;return 0===e?w(n,r,a,s):1===e?w(i,o,a,s):2===e?w(i,o,l,c):3===e?w(n,r,l,c):void 0}function m(){N(I)}function h(){return N(P)}function g(){return N(O)}function v(e){var t=this[V],r=this[W],i,o;3!==t.nodeType&&4!==t.nodeType||!t.nodeValue?(t.childNodes.length>0&&(o=t.childNodes[r]),o?t.insertBefore(e,o):3==t.nodeType?n.insertAfter(e,t):t.appendChild(e)):r?r>=t.nodeValue.length?n.insertAfter(e,t):(i=t.splitText(r),t.parentNode.insertBefore(e,i)):t.parentNode.insertBefore(e,t)}function y(e){var t=M.extractContents();M.insertNode(e),e.appendChild(t),M.selectNode(e)}function b(){return $(new t(n),{startContainer:M[V],startOffset:M[W],endContainer:M[U],endOffset:M[q],collapsed:M.collapsed,commonAncestorContainer:M.commonAncestorContainer})}function C(e,t){var n;if(3==e.nodeType)return e;if(0>t)return e;for(n=e.firstChild;n&&t>0;)--t,n=n.nextSibling;return n?n:e}function x(){return M[V]==M[U]&&M[W]==M[q]}function w(e,t,r,i){var o,a,s,l,c,u;if(e==r)return t==i?0:i>t?-1:1;for(o=r;o&&o.parentNode!=e;)o=o.parentNode;if(o){for(a=0,s=e.firstChild;s!=o&&t>a;)a++,s=s.nextSibling;return a>=t?-1:1}for(o=e;o&&o.parentNode!=r;)o=o.parentNode;if(o){for(a=0,s=r.firstChild;s!=o&&i>a;)a++,s=s.nextSibling;return i>a?-1:1}for(l=n.findCommonAncestor(e,r),c=e;c&&c.parentNode!=l;)c=c.parentNode;for(c||(c=l),u=r;u&&u.parentNode!=l;)u=u.parentNode;if(u||(u=l),c==u)return 0;for(s=l.firstChild;s;){if(s==c)return-1;if(s==u)return 1;s=s.nextSibling}}function _(e,t,r){var i,o;for(e?(M[V]=t,M[W]=r):(M[U]=t,M[q]=r),i=M[U];i.parentNode;)i=i.parentNode;for(o=M[V];o.parentNode;)o=o.parentNode;o==i?w(M[V],M[W],M[U],M[q])>0&&M.collapse(e):M.collapse(e),M.collapsed=x(),M.commonAncestorContainer=n.findCommonAncestor(M[V],M[U])}function N(e){var t,n=0,r=0,i,o,a,s,l,c;if(M[V]==M[U])return E(e);for(t=M[U],i=t.parentNode;i;t=i,i=i.parentNode){if(i==M[V])return S(t,e);++n}for(t=M[V],i=t.parentNode;i;t=i,i=i.parentNode){if(i==M[U])return k(t,e);++r}for(o=r-n,a=M[V];o>0;)a=a.parentNode,o--;for(s=M[U];0>o;)s=s.parentNode,o++;for(l=a.parentNode,c=s.parentNode;l!=c;l=l.parentNode,c=c.parentNode)a=l,s=c;return T(a,s,e)}function E(e){var t,n,i,o,a,s,l,c,u;if(e!=I&&(t=r()),M[W]==M[q])return t;if(3==M[V].nodeType){if(n=M[V].nodeValue,i=n.substring(M[W],M[q]),e!=O&&(o=M[V],c=M[W],u=M[q]-M[W],0===c&&u>=o.nodeValue.length-1?o.parentNode.removeChild(o):o.deleteData(c,u),M.collapse(F)),e==I)return;return i.length>0&&t.appendChild(H.createTextNode(i)),t}for(o=C(M[V],M[W]),a=M[q]-M[W];o&&a>0;)s=o.nextSibling,l=L(o,e),t&&t.appendChild(l),--a,o=s;return e!=O&&M.collapse(F),t}function S(e,t){var n,i,o,a,s,l;if(t!=I&&(n=r()),i=R(e,t),n&&n.appendChild(i),o=j(e),a=o-M[W],0>=a)return t!=O&&(M.setEndBefore(e),M.collapse(z)),n;for(i=e.previousSibling;a>0;)s=i.previousSibling,l=L(i,t),n&&n.insertBefore(l,n.firstChild),--a,i=s;return t!=O&&(M.setEndBefore(e),M.collapse(z)),n}function k(e,t){var n,i,o,a,s,l;for(t!=I&&(n=r()),o=A(e,t),n&&n.appendChild(o),i=j(e),++i,a=M[q]-i,o=e.nextSibling;o&&a>0;)s=o.nextSibling,l=L(o,t),n&&n.appendChild(l),--a,o=s;return t!=O&&(M.setStartAfter(e),M.collapse(F)),n}function T(e,t,n){var i,o,a,s,l,c,u;for(n!=I&&(o=r()),i=A(e,n),o&&o.appendChild(i),a=j(e),s=j(t),++a,l=s-a,c=e.nextSibling;l>0;)u=c.nextSibling,i=L(c,n),o&&o.appendChild(i),c=u,--l;return i=R(t,n),o&&o.appendChild(i),n!=O&&(M.setStartAfter(e),M.collapse(F)),o}function R(e,t){var n=C(M[U],M[q]-1),r,i,o,a,s,l=n!=M[U];if(n==e)return B(n,l,z,t);for(r=n.parentNode,i=B(r,z,z,t);r;){for(;n;)o=n.previousSibling,a=B(n,l,z,t),t!=I&&i.insertBefore(a,i.firstChild),l=F,n=o;if(r==e)return i;n=r.previousSibling,r=r.parentNode,s=B(r,z,z,t),t!=I&&s.appendChild(i),i=s}}function A(e,t){var n=C(M[V],M[W]),r=n!=M[V],i,o,a,s,l;if(n==e)return B(n,r,F,t);for(i=n.parentNode,o=B(i,z,F,t);i;){for(;n;)a=n.nextSibling,s=B(n,r,F,t),t!=I&&o.appendChild(s),r=F,n=a;if(i==e)return o;n=i.nextSibling,i=i.parentNode,l=B(i,z,F,t),t!=I&&l.appendChild(o),o=l}}function B(e,t,r,i){var o,a,s,l,c;if(t)return L(e,i);if(3==e.nodeType){if(o=e.nodeValue,r?(l=M[W],a=o.substring(l),s=o.substring(0,l)):(l=M[q],a=o.substring(0,l),s=o.substring(l)),i!=O&&(e.nodeValue=s),i==I)return;return c=n.clone(e,z),c.nodeValue=a,c}if(i!=I)return n.clone(e,z)}function L(e,t){return t!=I?t==O?n.clone(e,F):e:void e.parentNode.removeChild(e)}function D(){return n.create("body",null,g()).outerText}var M=this,H=n.doc,P=0,O=1,I=2,F=!0,z=!1,W="startOffset",V="startContainer",U="endContainer",q="endOffset",$=e.extend,j=n.nodeIndex;return $(M,{startContainer:H,startOffset:0,endContainer:H,endOffset:0,collapsed:F,commonAncestorContainer:H,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:i,setEnd:o,setStartBefore:a,setStartAfter:s,setEndBefore:l,setEndAfter:c,collapse:u,selectNode:d,selectNodeContents:f,compareBoundaryPoints:p,deleteContents:m,extractContents:h,cloneContents:g,insertNode:v,surroundContents:y,cloneRange:b,toStringIE:D}),M}return t.prototype.toString=function(){return this.toStringIE()},t}),r(h,[p],function(e){function t(e){var t;return t=document.createElement("div"),t.innerHTML=e,t.textContent||t.innerText||e}function n(e,t){var n,r,i,a={};if(e){for(e=e.split(","),t=t||10,n=0;n<e.length;n+=2)r=String.fromCharCode(parseInt(e[n],t)),o[r]||(i="&"+e[n+1]+";",a[r]=i,a[i]=r);return a}}var r=e.makeMap,i,o,a,s=/[&<>\"\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,l=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=/[<>&\"\']/g,u=/&(#x|#)?([\w]+);/g,d={128:"\u20ac",130:"\u201a",131:"\u0192",132:"\u201e",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02c6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017d",145:"\u2018",146:"\u2019",147:"\u201c",148:"\u201d",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02dc",153:"\u2122",154:"\u0161",155:"\u203a",156:"\u0153",158:"\u017e",159:"\u0178"};o={'"':""","'":"'","<":"<",">":">","&":"&"},a={"<":"<",">":">","&":"&",""":'"',"'":"'"},i=n("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);var f={encodeRaw:function(e,t){return e.replace(t?s:l,function(e){return o[e]||e})},encodeAllRaw:function(e){return(""+e).replace(c,function(e){return o[e]||e})},encodeNumeric:function(e,t){return e.replace(t?s:l,function(e){return e.length>1?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":o[e]||"&#"+e.charCodeAt(0)+";"})},encodeNamed:function(e,t,n){return n=n||i,e.replace(t?s:l,function(e){return o[e]||n[e]||e})},getEncodeFunc:function(e,t){function a(e,n){return e.replace(n?s:l,function(e){return o[e]||t[e]||"&#"+e.charCodeAt(0)+";"||e})}function c(e,n){return f.encodeNamed(e,n,t)}return t=n(t)||i,e=r(e.replace(/\+/g,",")),e.named&&e.numeric?a:e.named?t?c:f.encodeNamed:e.numeric?f.encodeNumeric:f.encodeRaw},decode:function(e){return e.replace(u,function(e,n,r){return n?(r=parseInt(r,2===n.length?16:10),r>65535?(r-=65536,String.fromCharCode(55296+(r>>10),56320+(1023&r))):d[r]||String.fromCharCode(r)):a[e]||i[e]||t(e)})}};return f}),r(g,[],function(){var e=navigator,t=e.userAgent,n,r,i,o,a,s,l;n=window.opera&&window.opera.buildNumber,r=/WebKit/.test(t),i=!r&&!n&&/MSIE/gi.test(t)&&/Explorer/gi.test(e.appName),i=i&&/MSIE (\w+)\./.exec(t)[1],o=-1==t.indexOf("Trident/")||-1==t.indexOf("rv:")&&-1==e.appName.indexOf("Netscape")?!1:11,i=i||o,a=!r&&!o&&/Gecko/.test(t),s=-1!=t.indexOf("Mac"),l=/(iPad|iPhone)/.test(t);var c=!l||t.match(/AppleWebKit\/(\d*)/)[1]>=534;return{opera:n,webkit:r,ie:i,gecko:a,mac:s,iOS:l,contentEditable:c,transparentSrc:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",caretAfter:8!=i,range:window.getSelection&&"Range"in window,documentMode:i?document.documentMode||7:10}}),r(v,[],function(){return function(e,t){function n(t){e.getElementsByTagName("head")[0].appendChild(t)}function r(t,r,s){function l(){for(var e=v.passed,t=e.length;t--;)e[t]();v.status=2,v.passed=[],v.failed=[]}function c(){for(var e=v.failed,t=e.length;t--;)e[t]();v.status=3,v.passed=[],v.failed=[]}function u(){var e=navigator.userAgent.match(/WebKit\/(\d*)/);return!!(e&&e[1]<536)}function d(e,t){e()||((new Date).getTime()-g<a?window.setTimeout(t,0):c())}function f(){d(function(){for(var t=e.styleSheets,n,r=t.length,i;r--;)if(n=t[r],i=n.ownerNode?n.ownerNode:n.owningElement,i&&i.id===m.id)return l(),!0},f)}function p(){d(function(){try{var e=h.sheet.cssRules;return l(),!!e}catch(t){}},p)}var m,h,g,v;if(o[t]?v=o[t]:(v={passed:[],failed:[]},o[t]=v),r&&v.passed.push(r),s&&v.failed.push(s),1!=v.status){if(2==v.status)return void l();if(3==v.status)return void c();if(v.status=1,m=e.createElement("link"),m.rel="stylesheet",m.type="text/css",m.id="u"+i++,m.async=!1,m.defer=!1,g=(new Date).getTime(),"onload"in m&&!u())m.onload=f,m.onerror=c;else{if(navigator.userAgent.indexOf("Firefox")>0)return h=e.createElement("style"),h.textContent='@import "'+t+'"',p(),void n(h);f()}n(m),m.href=t}}var i=0,o={},a;t=t||{},a=t.maxLoadTime||5e3,this.load=r}}),r(y,[c,d,l,f,m,h,g,p,v],function(e,n,r,i,o,a,s,l,c){function u(e,t){var i=this,o;i.doc=e,i.win=window,i.files={},i.counter=0,i.stdMode=!v||e.documentMode>=8,i.boxModel=!v||"CSS1Compat"==e.compatMode||i.stdMode,i.hasOuterHTML="outerHTML"in e.createElement("a"),i.styleSheetLoader=new c(e),this.boundEvents=[],i.settings=t=h({keep_values:!1,hex_colors:1},t),i.schema=t.schema,i.styles=new n({url_converter:t.url_converter,url_converter_scope:t.url_converter_scope},t.schema),i.fixDoc(e),i.events=t.ownEvents?new r(t.proxy):r.Event,o=t.schema?t.schema.getBlockElements():{},i.isBlock=function(e){if(!e)return!1;var t=e.nodeType;return t?!(1!==t||!o[e.nodeName]):!!o[e]}}var d=l.each,f=l.is,p=l.grep,m=l.trim,h=l.extend,g=s.webkit,v=s.ie,y=/^([a-z0-9],?)+$/i,b=/^[ \t\r\n]*$/,C=l.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"," ");return u.prototype={root:null,props:{"for":"htmlFor","class":"className",className:"className",checked:"checked",disabled:"disabled",maxlength:"maxLength",readonly:"readOnly",selected:"selected",value:"value",id:"id",name:"name",type:"type"},fixDoc:function(e){var t=this.settings,n;if(v&&t.schema){"abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video".replace(/\w+/g,function(t){e.createElement(t)});for(n in t.schema.getCustomElements())e.createElement(n)}},clone:function(e,t){var n=this,r,i;return!v||1!==e.nodeType||t?e.cloneNode(t):(i=n.doc,t?r.firstChild:(r=i.createElement(e.nodeName),d(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),r))},getRoot:function(){var e=this;return e.get(e.settings.root_element)||e.doc.body},getViewPort:function(e){var t,n;return e=e?e:this.win,t=e.document,n=this.boxModel?t.documentElement:t.body,{x:e.pageXOffset||n.scrollLeft,y:e.pageYOffset||n.scrollTop,w:e.innerWidth||n.clientWidth,h:e.innerHeight||n.clientHeight}},getRect:function(e){var t=this,n,r;return e=t.get(e),n=t.getPos(e),r=t.getSize(e),{x:n.x,y:n.y,w:r.w,h:r.h}},getSize:function(e){var t=this,n,r;return e=t.get(e),n=t.getStyle(e,"width"),r=t.getStyle(e,"height"),-1===n.indexOf("px")&&(n=0),-1===r.indexOf("px")&&(r=0),{w:parseInt(n,10)||e.offsetWidth||e.clientWidth,h:parseInt(r,10)||e.offsetHeight||e.clientHeight}},getParent:function(e,t,n){return this.getParents(e,t,n,!1)},getParents:function(e,n,r,i){var o=this,a,s=[];for(e=o.get(e),i=i===t,r=r||("BODY"!=o.getRoot().nodeName?o.getRoot().parentNode:null),f(n,"string")&&(a=n,n="*"===n?function(e){return 1==e.nodeType}:function(e){return o.is(e,a)});e&&e!=r&&e.nodeType&&9!==e.nodeType;){if(!n||n(e)){if(!i)return e;s.push(e)}e=e.parentNode}return i?s:null},get:function(e){var t;return e&&this.doc&&"string"==typeof e&&(t=e,e=this.doc.getElementById(e),e&&e.id!==t)?this.doc.getElementsByName(t)[1]:e},getNext:function(e,t){return this._findSib(e,t,"nextSibling")},getPrev:function(e,t){return this._findSib(e,t,"previousSibling")},select:function(t,n){var r=this;return e(t,r.get(n)||r.get(r.settings.root_element)||r.doc,[])},is:function(n,r){var i;if(n.length===t){if("*"===r)return 1==n.nodeType;if(y.test(r)){for(r=r.toLowerCase().split(/,/),n=n.nodeName.toLowerCase(),i=r.length-1;i>=0;i--)if(r[i]==n)return!0;return!1}}if(n.nodeType&&1!=n.nodeType)return!1;var o=n.nodeType?[n]:n;return e(r,o[0].ownerDocument||o[0],null,o).length>0},add:function(e,t,n,r,i){var o=this;return this.run(e,function(e){var a;return a=f(t,"string")?o.doc.createElement(t):t,o.setAttribs(a,n),r&&(r.nodeType?a.appendChild(r):o.setHTML(a,r)),i?a:e.appendChild(a)})},create:function(e,t,n){return this.add(this.doc.createElement(e),e,t,n,1)},createHTML:function(e,t,n){var r="",i;r+="<"+e;for(i in t)t.hasOwnProperty(i)&&null!==t[i]&&(r+=" "+i+'="'+this.encode(t[i])+'"');return"undefined"!=typeof n?r+">"+n+"</"+e+">":r+" />"},createFragment:function(e){var t,n,r=this.doc,i;for(i=r.createElement("div"),t=r.createDocumentFragment(),e&&(i.innerHTML=e);n=i.firstChild;)t.appendChild(n);return t},remove:function(e,t){return this.run(e,function(e){var n,r=e.parentNode;if(!r)return null;if(t)for(;n=e.firstChild;)!v||3!==n.nodeType||n.nodeValue?r.insertBefore(n,e):e.removeChild(n);return r.removeChild(e)})},setStyle:function(e,t,n){return this.run(e,function(e){var r=this,i,o;if(t)if("string"==typeof t){i=e.style,t=t.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),"number"!=typeof n||C[t]||(n+="px"),"opacity"===t&&e.runtimeStyle&&"undefined"==typeof e.runtimeStyle.opacity&&(i.filter=""===n?"":"alpha(opacity="+100*n+")"),"float"==t&&(t="cssFloat"in e.style?"cssFloat":"styleFloat");try{i[t]=n}catch(a){}r.settings.update_styles&&e.removeAttribute("data-mce-style")}else for(o in t)r.setStyle(e,o,t[o])})},getStyle:function(e,n,r){if(e=this.get(e)){if(this.doc.defaultView&&r){n=n.replace(/[A-Z]/g,function(e){return"-"+e});try{return this.doc.defaultView.getComputedStyle(e,null).getPropertyValue(n)}catch(i){return null}}return n=n.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),"float"==n&&(n=v?"styleFloat":"cssFloat"),e.currentStyle&&r?e.currentStyle[n]:e.style?e.style[n]:t}},setStyles:function(e,t){this.setStyle(e,t)},css:function(e,t,n){this.setStyle(e,t,n)},removeAllAttribs:function(e){return this.run(e,function(e){var t,n=e.attributes;for(t=n.length-1;t>=0;t--)e.removeAttributeNode(n.item(t))})},setAttrib:function(e,t,n){var r=this;if(e&&t)return this.run(e,function(e){var i=r.settings,o=e.getAttribute(t);if(null!==n)switch(t){case"style":if(!f(n,"string"))return void d(n,function(t,n){r.setStyle(e,n,t)});i.keep_values&&(n?e.setAttribute("data-mce-style",n,2):e.removeAttribute("data-mce-style",2)),e.style.cssText=n;break;case"class":e.className=n||"";break;case"src":case"href":i.keep_values&&(i.url_converter&&(n=i.url_converter.call(i.url_converter_scope||r,n,t,e)),r.setAttrib(e,"data-mce-"+t,n,2));break;case"shape":e.setAttribute("data-mce-style",n)}f(n)&&null!==n&&0!==n.length?e.setAttribute(t,""+n,2):e.removeAttribute(t,2),o!=n&&i.onSetAttrib&&i.onSetAttrib({attrElm:e,attrName:t,attrValue:n})})},setAttribs:function(e,t){var n=this;return this.run(e,function(e){d(t,function(t,r){n.setAttrib(e,r,t)})})},getAttrib:function(e,t,n){var r,i=this,o;if(e=i.get(e),!e||1!==e.nodeType)return n===o?!1:n;if(f(n)||(n=""),/^(src|href|style|coords|shape)$/.test(t)&&(r=e.getAttribute("data-mce-"+t)))return r;if(v&&i.props[t]&&(r=e[i.props[t]],r=r&&r.nodeValue?r.nodeValue:r),r||(r=e.getAttribute(t,2)),/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(t))return e[i.props[t]]===!0&&""===r?t:r?t:"";if("FORM"===e.nodeName&&e.getAttributeNode(t))return e.getAttributeNode(t).nodeValue;if("style"===t&&(r=r||e.style.cssText,r&&(r=i.serializeStyle(i.parseStyle(r),e.nodeName),i.settings.keep_values&&e.setAttribute("data-mce-style",r))),g&&"class"===t&&r&&(r=r.replace(/(apple|webkit)\-[a-z\-]+/gi,"")),v)switch(t){case"rowspan":case"colspan":1===r&&(r="");break;case"size":("+0"===r||20===r||0===r)&&(r="");break;case"width":case"height":case"vspace":case"checked":case"disabled":case"readonly":0===r&&(r="");break;case"hspace":-1===r&&(r="");break;case"maxlength":case"tabindex":(32768===r||2147483647===r||"32768"===r)&&(r="");break;case"multiple":case"compact":case"noshade":case"nowrap":return 65535===r?t:n;case"shape":r=r.toLowerCase();break;default:0===t.indexOf("on")&&r&&(r=(""+r).replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/,"$1"))}return r!==o&&null!==r&&""!==r?""+r:n},getPos:function(e,t){var n=this,r=0,i=0,o,a=n.doc,s;if(e=n.get(e),t=t||a.body,e){if(t===a.body&&e.getBoundingClientRect)return s=e.getBoundingClientRect(),t=n.boxModel?a.documentElement:a.body,r=s.left+(a.documentElement.scrollLeft||a.body.scrollLeft)-t.clientLeft,i=s.top+(a.documentElement.scrollTop||a.body.scrollTop)-t.clientTop,{x:r,y:i};for(o=e;o&&o!=t&&o.nodeType;)r+=o.offsetLeft||0,i+=o.offsetTop||0,o=o.offsetParent;for(o=e.parentNode;o&&o!=t&&o.nodeType;)r-=o.scrollLeft||0,i-=o.scrollTop||0,o=o.parentNode}return{x:r,y:i}},parseStyle:function(e){return this.styles.parse(e)},serializeStyle:function(e,t){return this.styles.serialize(e,t)},addStyle:function(e){var t=this,n=t.doc,r,i;if(t!==u.DOM&&n===document){var o=u.DOM.addedStyles;if(o=o||[],o[e])return;o[e]=!0,u.DOM.addedStyles=o}i=n.getElementById("mceDefaultStyles"),i||(i=n.createElement("style"),i.id="mceDefaultStyles",i.type="text/css",r=n.getElementsByTagName("head")[0],r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i)),i.styleSheet?i.styleSheet.cssText+=e:i.appendChild(n.createTextNode(e))},loadCSS:function(e){var t=this,n=t.doc,r;return t!==u.DOM&&n===document?void u.DOM.loadCSS(e):(e||(e=""),r=n.getElementsByTagName("head")[0],void d(e.split(","),function(e){var i;t.files[e]||(t.files[e]=!0,i=t.create("link",{rel:"stylesheet",href:e}),v&&n.documentMode&&n.recalc&&(i.onload=function(){n.recalc&&n.recalc(),i.onload=null}),r.appendChild(i))}))},addClass:function(e,t){return this.run(e,function(e){var n;return t?this.hasClass(e,t)?e.className:(n=this.removeClass(e,t),e.className=n=(""!==n?n+" ":"")+t,n):0})},removeClass:function(e,t){var n=this,r;return n.run(e,function(e){var i;return n.hasClass(e,t)?(r||(r=new RegExp("(^|\\s+)"+t+"(\\s+|$)","g")),i=e.className.replace(r," "),i=m(" "!=i?i:""),e.className=i,i||(e.removeAttribute("class"),e.removeAttribute("className")),i):e.className})},hasClass:function(e,t){return e=this.get(e),e&&t?-1!==(" "+e.className+" ").indexOf(" "+t+" "):!1},toggleClass:function(e,n,r){r=r===t?!this.hasClass(e,n):r,this.hasClass(e,n)!==r&&(r?this.addClass(e,n):this.removeClass(e,n))},show:function(e){return this.setStyle(e,"display","block")},hide:function(e){return this.setStyle(e,"display","none")},isHidden:function(e){return e=this.get(e),!e||"none"==e.style.display||"none"==this.getStyle(e,"display")},uniqueId:function(e){return(e?e:"mce_")+this.counter++},setHTML:function(e,t){var n=this;return n.run(e,function(e){if(v){for(;e.firstChild;)e.removeChild(e.firstChild);try{e.innerHTML="<br />"+t,e.removeChild(e.firstChild)}catch(r){var i=n.create("div");i.innerHTML="<br />"+t,d(p(i.childNodes),function(t,n){n&&e.canHaveHTML&&e.appendChild(t)})}}else e.innerHTML=t;return t})},getOuterHTML:function(e){var t,n=this;return(e=n.get(e))?1===e.nodeType&&n.hasOuterHTML?e.outerHTML:(t=(e.ownerDocument||n.doc).createElement("body"),t.appendChild(e.cloneNode(!0)),t.innerHTML):null},setOuterHTML:function(e,t,n){var r=this;return r.run(e,function(e){function i(){var i,o;for(o=n.createElement("body"),o.innerHTML=t,i=o.lastChild;i;)r.insertAfter(i.cloneNode(!0),e),i=i.previousSibling;r.remove(e)}if(1==e.nodeType)if(n=n||e.ownerDocument||r.doc,v)try{1==e.nodeType&&r.hasOuterHTML?e.outerHTML=t:i()}catch(o){i()}else i()})},decode:a.decode,encode:a.encodeAllRaw,insertAfter:function(e,t){return t=this.get(t),this.run(e,function(e){var n,r;return n=t.parentNode,r=t.nextSibling,r?n.insertBefore(e,r):n.appendChild(e),e})},replace:function(e,t,n){var r=this;return r.run(t,function(t){return f(t,"array")&&(e=e.cloneNode(!0)),n&&d(p(t.childNodes),function(t){e.appendChild(t)}),t.parentNode.replaceChild(e,t)})},rename:function(e,t){var n=this,r;return e.nodeName!=t.toUpperCase()&&(r=n.create(t),d(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),n.replace(r,e,1)),r||e},findCommonAncestor:function(e,t){for(var n=e,r;n;){for(r=t;r&&n!=r;)r=r.parentNode;if(n==r)break;n=n.parentNode}return!n&&e.ownerDocument?e.ownerDocument.documentElement:n},toHex:function(e){return this.styles.toHex(l.trim(e))},run:function(e,t,n){var r=this,i;return"string"==typeof e&&(e=r.get(e)),e?(n=n||this,e.nodeType||!e.length&&0!==e.length?t.call(n,e):(i=[],d(e,function(e,o){e&&("string"==typeof e&&(e=r.get(e)),i.push(t.call(n,e,o)))}),i)):!1},getAttribs:function(e){var t;if(e=this.get(e),!e)return[];if(v){if(t=[],"OBJECT"==e.nodeName)return e.attributes;"OPTION"===e.nodeName&&this.getAttrib(e,"selected")&&t.push({specified:1,nodeName:"selected"});var n=/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi;return e.cloneNode(!1).outerHTML.replace(n,"").replace(/[\w:\-]+/gi,function(e){t.push({specified:1,nodeName:e})}),t}return e.attributes},isEmpty:function(e,t){var n=this,r,o,a,s,l,c=0;if(e=e.firstChild){s=new i(e,e.parentNode),t=t||n.schema?n.schema.getNonEmptyElements():null;do{if(a=e.nodeType,1===a){if(e.getAttribute("data-mce-bogus"))continue;if(l=e.nodeName.toLowerCase(),t&&t[l]){if("br"===l){c++;continue}return!1}for(o=n.getAttribs(e),r=e.attributes.length;r--;)if(l=e.attributes[r].nodeName,"name"===l||"data-mce-bookmark"===l)return!1}if(8==a)return!1;if(3===a&&!b.test(e.nodeValue))return!1}while(e=s.next())}return 1>=c},createRng:function(){var e=this.doc;return e.createRange?e.createRange():new o(this)},nodeIndex:function(e,t){var n=0,r,i;if(e)for(r=e.nodeType,e=e.previousSibling;e;e=e.previousSibling)i=e.nodeType,(!t||3!=i||i!=r&&e.nodeValue.length)&&(n++,r=i);return n},split:function(e,t,n){function r(e){function t(e){var t=e.previousSibling&&"SPAN"==e.previousSibling.nodeName,n=e.nextSibling&&"SPAN"==e.nextSibling.nodeName;return t&&n}var n,o=e.childNodes,a=e.nodeType;if(1!=a||"bookmark"!=e.getAttribute("data-mce-type")){for(n=o.length-1;n>=0;n--)r(o[n]);if(9!=a){if(3==a&&e.nodeValue.length>0){var s=m(e.nodeValue).length;if(!i.isBlock(e.parentNode)||s>0||0===s&&t(e))return}else if(1==a&&(o=e.childNodes,1==o.length&&o[0]&&1==o[0].nodeType&&"bookmark"==o[0].getAttribute("data-mce-type")&&e.parentNode.insertBefore(o[0],e),o.length||/^(br|hr|input|img)$/i.test(e.nodeName)))return;i.remove(e)}return e}}var i=this,o=i.createRng(),a,s,l;return e&&t?(o.setStart(e.parentNode,i.nodeIndex(e)),o.setEnd(t.parentNode,i.nodeIndex(t)),a=o.extractContents(),o=i.createRng(),o.setStart(t.parentNode,i.nodeIndex(t)+1),o.setEnd(e.parentNode,i.nodeIndex(e)+1),s=o.extractContents(),l=e.parentNode,l.insertBefore(r(a),e),n?l.replaceChild(n,t):l.insertBefore(t,e),l.insertBefore(r(s),e),i.remove(e),n||t):void 0},bind:function(e,t,n,r){var i=this;if(l.isArray(e)){for(var o=e.length;o--;)e[o]=i.bind(e[o],t,n,r);return e}return!i.settings.collect||e!==i.doc&&e!==i.win||i.boundEvents.push([e,t,n,r]),i.events.bind(e,t,n,r||i)},unbind:function(e,t,n){var r=this,i;if(l.isArray(e)){for(i=e.length;i--;)e[i]=r.unbind(e[i],t,n);return e}if(r.boundEvents&&(e===r.doc||e===r.win))for(i=r.boundEvents.length;i--;){var o=r.boundEvents[i];e!=o[0]||t&&t!=o[1]||n&&n!=o[2]||this.events.unbind(o[0],o[1],o[2])}return this.events.unbind(e,t,n)},fire:function(e,t,n){return this.events.fire(e,t,n)},getContentEditable:function(e){var t;return 1!=e.nodeType?null:(t=e.getAttribute("data-mce-contenteditable"),t&&"inherit"!==t?t:"inherit"!==e.contentEditable?e.contentEditable:null)},destroy:function(){var t=this;if(t.boundEvents){for(var n=t.boundEvents.length;n--;){var r=t.boundEvents[n];this.events.unbind(r[0],r[1],r[2])}t.boundEvents=null}e.setDocument&&e.setDocument(),t.win=t.doc=t.root=t.events=t.frag=null},dumpRng:function(e){return"startContainer: "+e.startContainer.nodeName+", startOffset: "+e.startOffset+", endContainer: "+e.endContainer.nodeName+", endOffset: "+e.endOffset},_findSib:function(e,t,n){var r=this,i=t;if(e)for("string"==typeof i&&(i=function(e){return r.is(e,t)}),e=e[n];e;e=e[n])if(i(e))return e;return null}},u.DOM=new u(document),u}),r(b,[y,p],function(e,t){function n(){function e(e,t){function n(){o.remove(s),a&&(a.onreadystatechange=a.onload=a=null),t() +}function i(){"undefined"!=typeof console&&console.log&&console.log("Failed to load: "+e)}var o=r,a,s;s=o.uniqueId(),a=document.createElement("script"),a.id=s,a.type="text/javascript",a.src=e,"onreadystatechange"in a?a.onreadystatechange=function(){/loaded|complete/.test(a.readyState)&&n()}:a.onload=n,a.onerror=i,(document.getElementsByTagName("head")[0]||document.body).appendChild(a)}var t=0,n=1,a=2,s={},l=[],c={},u=[],d=0,f;this.isDone=function(e){return s[e]==a},this.markDone=function(e){s[e]=a},this.add=this.load=function(e,n,r){var i=s[e];i==f&&(l.push(e),s[e]=t),n&&(c[e]||(c[e]=[]),c[e].push({func:n,scope:r||this}))},this.loadQueue=function(e,t){this.loadScripts(l,e,t)},this.loadScripts=function(t,r,l){function p(e){i(c[e],function(e){e.func.call(e.scope)}),c[e]=f}var m;u.push({func:r,scope:l||this}),(m=function(){var r=o(t);t.length=0,i(r,function(t){return s[t]==a?void p(t):void(s[t]!=n&&(s[t]=n,d++,e(t,function(){s[t]=a,d--,p(t),m()})))}),d||(i(u,function(e){e.func.call(e.scope)}),u.length=0)})()}}var r=e.DOM,i=t.each,o=t.grep;return n.ScriptLoader=new n,n}),r(C,[b,p],function(e,n){function r(){var e=this;e.items=[],e.urls={},e.lookup={}}var i=n.each;return r.prototype={get:function(e){return this.lookup[e]?this.lookup[e].instance:t},dependencies:function(e){var t;return this.lookup[e]&&(t=this.lookup[e].dependencies),t||[]},requireLangPack:function(t,n){if(r.language&&r.languageLoad!==!1){if(n&&new RegExp("([, ]|\\b)"+r.language+"([, ]|\\b)").test(n)===!1)return;e.ScriptLoader.add(this.urls[t]+"/langs/"+r.language+".js")}},add:function(e,t,n){return this.items.push(t),this.lookup[e]={instance:t,dependencies:n},t},createUrl:function(e,t){return"object"==typeof t?t:{prefix:e.prefix,resource:t,suffix:e.suffix}},addComponents:function(t,n){var r=this.urls[t];i(n,function(t){e.ScriptLoader.add(r+"/"+t)})},load:function(n,o,a,s){function l(){var r=c.dependencies(n);i(r,function(e){var n=c.createUrl(o,e);c.load(n.resource,n,t,t)}),a&&a.call(s?s:e)}var c=this,u=o;c.urls[n]||("object"==typeof o&&(u=o.prefix+o.resource+o.suffix),0!==u.indexOf("/")&&-1==u.indexOf("://")&&(u=r.baseURL+"/"+u),c.urls[n]=u.substring(0,u.lastIndexOf("/")),c.lookup[n]?l():e.ScriptLoader.add(u,l,s))}},r.PluginManager=new r,r.ThemeManager=new r,r}),r(x,[],function(){function e(e,t,n){var r,i,o=n?"lastChild":"firstChild",a=n?"prev":"next";if(e[o])return e[o];if(e!==t){if(r=e[a])return r;for(i=e.parent;i&&i!==t;i=i.parent)if(r=i[a])return r}}function t(e,t){this.name=e,this.type=t,1===t&&(this.attributes=[],this.attributes.map={})}var n=/^[ \t\r\n]*$/,r={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11};return t.prototype={replace:function(e){var t=this;return e.parent&&e.remove(),t.insert(e,t),t.remove(),t},attr:function(e,t){var n=this,r,i,o;if("string"!=typeof e){for(i in e)n.attr(i,e[i]);return n}if(r=n.attributes){if(t!==o){if(null===t){if(e in r.map)for(delete r.map[e],i=r.length;i--;)if(r[i].name===e)return r=r.splice(i,1),n;return n}if(e in r.map){for(i=r.length;i--;)if(r[i].name===e){r[i].value=t;break}}else r.push({name:e,value:t});return r.map[e]=t,n}return r.map[e]}},clone:function(){var e=this,n=new t(e.name,e.type),r,i,o,a,s;if(o=e.attributes){for(s=[],s.map={},r=0,i=o.length;i>r;r++)a=o[r],"id"!==a.name&&(s[s.length]={name:a.name,value:a.value},s.map[a.name]=a.value);n.attributes=s}return n.value=e.value,n.shortEnded=e.shortEnded,n},wrap:function(e){var t=this;return t.parent.insert(e,t),e.append(t),t},unwrap:function(){var e=this,t,n;for(t=e.firstChild;t;)n=t.next,e.insert(t,e,!0),t=n;e.remove()},remove:function(){var e=this,t=e.parent,n=e.next,r=e.prev;return t&&(t.firstChild===e?(t.firstChild=n,n&&(n.prev=null)):r.next=n,t.lastChild===e?(t.lastChild=r,r&&(r.next=null)):n.prev=r,e.parent=e.next=e.prev=null),e},append:function(e){var t=this,n;return e.parent&&e.remove(),n=t.lastChild,n?(n.next=e,e.prev=n,t.lastChild=e):t.lastChild=t.firstChild=e,e.parent=t,e},insert:function(e,t,n){var r;return e.parent&&e.remove(),r=t.parent||this,n?(t===r.firstChild?r.firstChild=e:t.prev.next=e,e.prev=t.prev,e.next=t,t.prev=e):(t===r.lastChild?r.lastChild=e:t.next.prev=e,e.next=t.next,e.prev=t,t.next=e),e.parent=r,e},getAll:function(t){var n=this,r,i=[];for(r=n.firstChild;r;r=e(r,n))r.name===t&&i.push(r);return i},empty:function(){var t=this,n,r,i;if(t.firstChild){for(n=[],i=t.firstChild;i;i=e(i,t))n.push(i);for(r=n.length;r--;)i=n[r],i.parent=i.firstChild=i.lastChild=i.next=i.prev=null}return t.firstChild=t.lastChild=null,t},isEmpty:function(t){var r=this,i=r.firstChild,o,a;if(i)do{if(1===i.type){if(i.attributes.map["data-mce-bogus"])continue;if(t[i.name])return!1;for(o=i.attributes.length;o--;)if(a=i.attributes[o].name,"name"===a||0===a.indexOf("data-mce-"))return!1}if(8===i.type)return!1;if(3===i.type&&!n.test(i.value))return!1}while(i=e(i,r));return!0},walk:function(t){return e(this,null,t)}},t.create=function(e,n){var i,o;if(i=new t(e,r[e]||1),n)for(o in n)i.attr(o,n[o]);return i},t}),r(w,[p],function(e){function t(e,t){return e?e.split(t||" "):[]}function n(e){function n(e,n,r){function i(e){var t={},n,r;for(n=0,r=e.length;r>n;n++)t[e[n]]={};return t}var o,l,c,u=arguments;for(r=r||[],n=n||"","string"==typeof r&&(r=t(r)),l=3;l<u.length;l++)"string"==typeof u[l]&&(u[l]=t(u[l])),r.push.apply(r,u[l]);for(e=t(e),o=e.length;o--;)c=[].concat(s,t(n)),a[e[o]]={attributes:i(c),attributesOrder:c,children:i(r)}}function i(e,n){var r,i,o,s;for(e=t(e),r=e.length,n=t(n);r--;)for(i=a[e[r]],o=0,s=n.length;s>o;o++)i.attributes[n[o]]={},i.attributesOrder.push(n[o])}var a={},s,l,c,u,d,f;return r[e]?r[e]:(s=t("id accesskey class dir lang style tabindex title"),l=t("address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul"),c=t("a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd label map noscript object q s samp script select small span strong sub sup textarea u var #text #comment"),"html4"!=e&&(s.push.apply(s,t("contenteditable contextmenu draggable dropzone hidden spellcheck translate")),l.push.apply(l,t("article aside details dialog figure header footer hgroup section nav")),c.push.apply(c,t("audio canvas command datalist mark meter output progress time wbr video ruby bdi keygen"))),"html5-strict"!=e&&(s.push("xml:lang"),f=t("acronym applet basefont big font strike tt"),c.push.apply(c,f),o(f,function(e){n(e,"",c)}),d=t("center dir isindex noframes"),l.push.apply(l,d),u=[].concat(l,c),o(d,function(e){n(e,"",u)})),u=u||[].concat(l,c),n("html","manifest","head body"),n("head","","base command link meta noscript script style title"),n("title hr noscript br"),n("base","href target"),n("link","href rel media hreflang type sizes hreflang"),n("meta","name http-equiv content charset"),n("style","media type scoped"),n("script","src async defer type charset"),n("body","onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload",u),n("address dt dd div caption","",u),n("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn","",c),n("blockquote","cite",u),n("ol","reversed start type","li"),n("ul","","li"),n("li","value",u),n("dl","","dt dd"),n("a","href target rel media hreflang type",c),n("q","cite",c),n("ins del","cite datetime",u),n("img","src alt usemap ismap width height"),n("iframe","src name width height",u),n("embed","src type width height"),n("object","data type typemustmatch name usemap form width height",u,"param"),n("param","name value"),n("map","name",u,"area"),n("area","alt coords shape href target rel media hreflang type"),n("table","border","caption colgroup thead tfoot tbody tr"+("html4"==e?" col":"")),n("colgroup","span","col"),n("col","span"),n("tbody thead tfoot","","tr"),n("tr","","td th"),n("td","colspan rowspan headers",u),n("th","colspan rowspan headers scope abbr",u),n("form","accept-charset action autocomplete enctype method name novalidate target",u),n("fieldset","disabled form name",u,"legend"),n("label","form for",c),n("input","accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern readonly required size src step type value width"),n("button","disabled form formaction formenctype formmethod formnovalidate formtarget name type value","html4"==e?u:c),n("select","disabled form multiple name required size","option optgroup"),n("optgroup","disabled label","option"),n("option","disabled label selected value"),n("textarea","cols dirname disabled form maxlength name readonly required rows wrap"),n("menu","type label",u,"li"),n("noscript","",u),"html4"!=e&&(n("wbr"),n("ruby","",c,"rt rp"),n("figcaption","",u),n("mark rt rp summary bdi","",c),n("canvas","width height",u),n("video","src crossorigin poster preload autoplay mediagroup loop muted controls width height",u,"track source"),n("audio","src crossorigin preload autoplay mediagroup loop muted controls",u,"track source"),n("source","src type media"),n("track","kind src srclang label default"),n("datalist","",c,"option"),n("article section nav aside header footer","",u),n("hgroup","","h1 h2 h3 h4 h5 h6"),n("figure","",u,"figcaption"),n("time","datetime",c),n("dialog","open",u),n("command","type label icon disabled checked radiogroup command"),n("output","for form name",c),n("progress","value max",c),n("meter","value min max low high optimum",c),n("details","open",u,"summary"),n("keygen","autofocus challenge disabled form keytype name")),"html5-strict"!=e&&(i("script","language xml:space"),i("style","xml:space"),i("object","declare classid codebase codetype archive standby align border hspace vspace"),i("param","valuetype type"),i("a","charset name rev shape coords"),i("br","clear"),i("applet","codebase archive code object alt name width height align hspace vspace"),i("img","name longdesc align border hspace vspace"),i("iframe","longdesc frameborder marginwidth marginheight scrolling align"),i("font basefont","size color face"),i("input","usemap align"),i("select","onchange"),i("textarea"),i("h1 h2 h3 h4 h5 h6 div p legend caption","align"),i("ul","type compact"),i("li","type"),i("ol dl menu dir","compact"),i("pre","width xml:space"),i("hr","align noshade size width"),i("isindex","prompt"),i("table","summary width frame rules cellspacing cellpadding align bgcolor"),i("col","width align char charoff valign"),i("colgroup","width align char charoff valign"),i("thead","align char charoff valign"),i("tr","align char charoff valign bgcolor"),i("th","axis align char charoff valign nowrap bgcolor width height"),i("form","accept"),i("td","abbr axis scope align char charoff valign nowrap bgcolor width height"),i("tfoot","align char charoff valign"),i("tbody","align char charoff valign"),i("area","nohref"),i("body","background bgcolor text link vlink alink")),"html4"!=e&&(i("input button select textarea","autofocus"),i("input textarea","placeholder"),i("a","download"),i("link script img","crossorigin"),i("iframe","srcdoc sandbox seamless allowfullscreen")),o(t("a form meter progress dfn"),function(e){a[e]&&delete a[e].children[e]}),delete a.caption.children.table,r[e]=a,a)}var r={},i=e.makeMap,o=e.each,a=e.extend,s=e.explode,l=e.inArray;return function(e){function c(t,n,o){var s=e[t];return s?s=i(s,",",i(s.toUpperCase()," ")):(s=r[t],s||(s=i(n," ",i(n.toUpperCase()," ")),s=a(s,o),r[t]=s)),s}function u(e){return new RegExp("^"+e.replace(/([?+*])/g,".$1")+"$")}function d(e){var n,r,o,a,s,c,d,f,p,m,h,g,y,C,x,w,_,N,E,S=/^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/,k=/^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,T=/[*?+]/;if(e)for(e=t(e,","),v["@"]&&(w=v["@"].attributes,_=v["@"].attributesOrder),n=0,r=e.length;r>n;n++)if(s=S.exec(e[n])){if(C=s[1],p=s[2],x=s[3],f=s[5],g={},y=[],c={attributes:g,attributesOrder:y},"#"===C&&(c.paddEmpty=!0),"-"===C&&(c.removeEmpty=!0),"!"===s[4]&&(c.removeEmptyAttrs=!0),w){for(N in w)g[N]=w[N];y.push.apply(y,_)}if(f)for(f=t(f,"|"),o=0,a=f.length;a>o;o++)if(s=k.exec(f[o])){if(d={},h=s[1],m=s[2].replace(/::/g,":"),C=s[3],E=s[4],"!"===h&&(c.attributesRequired=c.attributesRequired||[],c.attributesRequired.push(m),d.required=!0),"-"===h){delete g[m],y.splice(l(y,m),1);continue}C&&("="===C&&(c.attributesDefault=c.attributesDefault||[],c.attributesDefault.push({name:m,value:E}),d.defaultValue=E),":"===C&&(c.attributesForced=c.attributesForced||[],c.attributesForced.push({name:m,value:E}),d.forcedValue=E),"<"===C&&(d.validValues=i(E,"?"))),T.test(m)?(c.attributePatterns=c.attributePatterns||[],d.pattern=u(m),c.attributePatterns.push(d)):(g[m]||y.push(m),g[m]=d)}w||"@"!=p||(w=g,_=y),x&&(c.outputName=p,v[x]=c),T.test(p)?(c.pattern=u(p),b.push(c)):v[p]=c}}function f(e){v={},b=[],d(e),o(x,function(e,t){y[t]=e.children})}function p(e){var n=/^(~)?(.+)$/;e&&(r.text_block_elements=r.block_elements=null,o(t(e,","),function(e){var t=n.exec(e),r="~"===t[1],i=r?"span":"div",s=t[2];if(y[s]=y[i],R[s]=i,r||(S[s.toUpperCase()]={},S[s]={}),!v[s]){var l=v[i];l=a({},l),delete l.removeEmptyAttrs,delete l.removeEmpty,v[s]=l}o(y,function(e,t){e[i]&&(y[t]=e=a({},y[t]),e[s]=e[i])})}))}function m(e){var n=/^([+\-]?)(\w+)\[([^\]]+)\]$/;e&&o(t(e,","),function(e){var r=n.exec(e),i,s;r&&(s=r[1],i=s?y[r[2]]:y[r[2]]={"#comment":{}},i=y[r[2]],o(t(r[3],"|"),function(e){"-"===s?(y[r[2]]=i=a({},y[r[2]]),delete i[e]):i[e]={}}))})}function h(e){var t=v[e],n;if(t)return t;for(n=b.length;n--;)if(t=b[n],t.pattern.test(e))return t}var g=this,v={},y={},b=[],C,x,w,_,N,E,S,k,T,R={},A={};e=e||{},x=n(e.schema),e.verify_html===!1&&(e.valid_elements="*[*]"),e.valid_styles&&(C={},o(e.valid_styles,function(e,t){C[t]=s(e)})),w=c("whitespace_elements","pre script noscript style textarea video audio iframe object"),_=c("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr"),N=c("short_ended_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr track"),E=c("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"),k=c("non_empty_elements","td th iframe video audio object script",N),T=c("text_block_elements","h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure"),S=c("block_elements","hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex option datalist select optgroup",T),o((e.special||"script noscript style textarea").split(" "),function(e){A[e]=new RegExp("</"+e+"[^>]*>","gi")}),e.valid_elements?f(e.valid_elements):(o(x,function(e,t){v[t]={attributes:e.attributes,attributesOrder:e.attributesOrder},y[t]=e.children}),"html5"!=e.schema&&o(t("strong/b em/i"),function(e){e=t(e,"/"),v[e[1]].outputName=e[0]}),v.img.attributesDefault=[{name:"alt",value:""}],o(t("ol ul sub sup blockquote span font a table tbody tr strong em b i"),function(e){v[e]&&(v[e].removeEmpty=!0)}),o(t("p h1 h2 h3 h4 h5 h6 th td pre div address caption"),function(e){v[e].paddEmpty=!0}),o(t("span"),function(e){v[e].removeEmptyAttrs=!0})),p(e.custom_elements),m(e.valid_children),d(e.extended_valid_elements),m("+ol[ul|ol],+ul[ul|ol]"),e.invalid_elements&&o(s(e.invalid_elements),function(e){v[e]&&delete v[e]}),h("span")||d("span[!data-mce-type|*]"),g.children=y,g.styles=C,g.getBoolAttrs=function(){return E},g.getBlockElements=function(){return S},g.getTextBlockElements=function(){return T},g.getShortEndedElements=function(){return N},g.getSelfClosingElements=function(){return _},g.getNonEmptyElements=function(){return k},g.getWhiteSpaceElements=function(){return w},g.getSpecialElements=function(){return A},g.isValidChild=function(e,t){var n=y[e];return!(!n||!n[t])},g.isValid=function(e,t){var n,r,i=h(e);if(i){if(!t)return!0;if(i.attributes[t])return!0;if(n=i.attributePatterns)for(r=n.length;r--;)if(n[r].pattern.test(e))return!0}return!1},g.getElementRule=h,g.getCustomElements=function(){return R},g.addValidElements=d,g.setValidElements=f,g.addCustomElements=p,g.addValidChildren=m,g.elements=v}}),r(_,[w,h,p],function(e,t,n){var r=n.each;return function(i,o){function a(){}var s=this;i=i||{},s.schema=o=o||new e,i.fix_self_closing!==!1&&(i.fix_self_closing=!0),r("comment cdata text start end pi doctype".split(" "),function(e){e&&(s[e]=i[e]||a)}),s.parse=function(e){function r(e){var t,n;for(t=f.length;t--&&f[t].name!==e;);if(t>=0){for(n=f.length-1;n>=t;n--)e=f[n],e.valid&&s.end(e.name);f.length=t}}function a(e,t,n,r,o){var a,s,l=/[\s\u0000-\u001F]+/g;if(t=t.toLowerCase(),n=t in C?t:F(n||r||o||""),w&&!v&&0!==t.indexOf("data-")){if(a=k[t],!a&&T){for(s=T.length;s--&&(a=T[s],!a.pattern.test(t)););-1===s&&(a=null)}if(!a)return;if(a.validValues&&!(n in a.validValues))return}if(W[t]&&!i.allow_script_urls){var c=n.replace(l,"");try{if(c=decodeURIComponent(c),V.test(c))return}catch(u){if(c=unescape(c),V.test(c))return}}p.map[t]=n,p.push({name:t,value:n})}var s=this,l,c=0,u,d,f=[],p,m,h,g,v,y,b,C,x,w,_,N,E,S,k,T,R,A,B,L,D,M,H,P,O,I=0,F=t.decode,z,W=n.makeMap("src,href"),V=/(java|vb)script:/i;for(M=new RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([^>]+)>)|(?:([A-Za-z0-9\\-\\:\\.]+)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))","g"),H=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g,b=o.getShortEndedElements(),D=i.self_closing_elements||o.getSelfClosingElements(),C=o.getBoolAttrs(),w=i.validate,y=i.remove_internals,z=i.fix_self_closing,P=o.getSpecialElements();l=M.exec(e);){if(c<l.index&&s.text(F(e.substr(c,l.index-c))),u=l[6])u=u.toLowerCase(),":"===u.charAt(0)&&(u=u.substr(1)),r(u);else if(u=l[7]){if(u=u.toLowerCase(),":"===u.charAt(0)&&(u=u.substr(1)),x=u in b,z&&D[u]&&f.length>0&&f[f.length-1].name===u&&r(u),!w||(_=o.getElementRule(u))){if(N=!0,w&&(k=_.attributes,T=_.attributePatterns),(S=l[8])?(v=-1!==S.indexOf("data-mce-type"),v&&y&&(N=!1),p=[],p.map={},S.replace(H,a)):(p=[],p.map={}),w&&!v){if(R=_.attributesRequired,A=_.attributesDefault,B=_.attributesForced,L=_.removeEmptyAttrs,L&&!p.length&&(N=!1),B)for(m=B.length;m--;)E=B[m],g=E.name,O=E.value,"{$uid}"===O&&(O="mce_"+I++),p.map[g]=O,p.push({name:g,value:O});if(A)for(m=A.length;m--;)E=A[m],g=E.name,g in p.map||(O=E.value,"{$uid}"===O&&(O="mce_"+I++),p.map[g]=O,p.push({name:g,value:O}));if(R){for(m=R.length;m--&&!(R[m]in p.map););-1===m&&(N=!1)}p.map["data-mce-bogus"]&&(N=!1)}N&&s.start(u,p,x)}else N=!1;if(d=P[u]){d.lastIndex=c=l.index+l[0].length,(l=d.exec(e))?(N&&(h=e.substr(c,l.index-c)),c=l.index+l[0].length):(h=e.substr(c),c=e.length),N&&(h.length>0&&s.text(h,!0),s.end(u)),M.lastIndex=c;continue}x||(S&&S.indexOf("/")==S.length-1?N&&s.end(u):f.push({name:u,valid:N}))}else(u=l[1])?(">"===u.charAt(0)&&(u=" "+u),i.allow_conditional_comments||"[if"!==u.substr(0,3)||(u=" "+u),s.comment(u)):(u=l[2])?s.cdata(u):(u=l[3])?s.doctype(u):(u=l[4])&&s.pi(u,l[5]);c=l.index+l[0].length}for(c<e.length&&s.text(F(e.substr(c))),m=f.length-1;m>=0;m--)u=f[m],u.valid&&s.end(u.name)}}}),r(N,[x,w,_,p],function(e,t,n,r){var i=r.makeMap,o=r.each,a=r.explode,s=r.extend;return function(r,l){function c(t){var n,r,o,a,s,c,d,f,p,m,h,g,v,y;for(h=i("tr,td,th,tbody,thead,tfoot,table"),m=l.getNonEmptyElements(),g=l.getTextBlockElements(),n=0;n<t.length;n++)if(r=t[n],r.parent&&!r.fixed)if(g[r.name]&&"li"==r.parent.name){for(v=r.next;v&&g[v.name];)v.name="li",v.fixed=!0,r.parent.insert(v,r.parent),v=v.next;r.unwrap(r)}else{for(a=[r],o=r.parent;o&&!l.isValidChild(o.name,r.name)&&!h[o.name];o=o.parent)a.push(o);if(o&&a.length>1){for(a.reverse(),s=c=u.filterNode(a[0].clone()),p=0;p<a.length-1;p++){for(l.isValidChild(c.name,a[p].name)?(d=u.filterNode(a[p].clone()),c.append(d)):d=c,f=a[p].firstChild;f&&f!=a[p+1];)y=f.next,d.append(f),f=y;c=d}s.isEmpty(m)?o.insert(r,a[0],!0):(o.insert(s,a[0],!0),o.insert(r,s)),o=a[0],(o.isEmpty(m)||o.firstChild===o.lastChild&&"br"===o.firstChild.name)&&o.empty().remove()}else if(r.parent){if("li"===r.name){if(v=r.prev,v&&("ul"===v.name||"ul"===v.name)){v.append(r);continue}if(v=r.next,v&&("ul"===v.name||"ul"===v.name)){v.insert(r,v.firstChild,!0);continue}r.wrap(u.filterNode(new e("ul",1)));continue}l.isValidChild(r.parent.name,"div")&&l.isValidChild("div",r.name)?r.wrap(u.filterNode(new e("div",1))):"style"===r.name||"script"===r.name?r.empty().remove():r.unwrap()}}}var u=this,d={},f=[],p={},m={};r=r||{},r.validate="validate"in r?r.validate:!0,r.root_name=r.root_name||"body",u.schema=l=l||new t,u.filterNode=function(e){var t,n,r;n in d&&(r=p[n],r?r.push(e):p[n]=[e]),t=f.length;for(;t--;)n=f[t].name,n in e.attributes.map&&(r=m[n],r?r.push(e):m[n]=[e]);return e},u.addNodeFilter=function(e,t){o(a(e),function(e){var n=d[e];n||(d[e]=n=[]),n.push(t)})},u.addAttributeFilter=function(e,t){o(a(e),function(e){var n;for(n=0;n<f.length;n++)if(f[n].name===e)return void f[n].callbacks.push(t);f.push({name:e,callbacks:[t]})})},u.parse=function(t,o){function a(){function e(e){e&&(t=e.firstChild,t&&3==t.type&&(t.value=t.value.replace(R,"")),t=e.lastChild,t&&3==t.type&&(t.value=t.value.replace(L,"")))}var t=y.firstChild,n,i;if(l.isValidChild(y.name,I.toLowerCase())){for(;t;)n=t.next,3==t.type||1==t.type&&"p"!==t.name&&!T[t.name]&&!t.attr("data-mce-type")?i?i.append(t):(i=u(I,1),i.attr(r.forced_root_block_attrs),y.insert(i,t),i.append(t)):(e(i),i=null),t=n;e(i)}}function u(t,n){var r=new e(t,n),i;return t in d&&(i=p[t],i?i.push(r):p[t]=[r]),r}function h(e){var t,n,r;for(t=e.prev;t&&3===t.type;)n=t.value.replace(L,""),n.length>0?(t.value=n,t=t.prev):(r=t.prev,t.remove(),t=r)}function g(e){var t,n={};for(t in e)"li"!==t&&"p"!=t&&(n[t]=e[t]);return n}var v,y,b,C,x,w,_,N,E,S,k,T,R,A=[],B,L,D,M,H,P,O,I;if(o=o||{},p={},m={},T=s(i("script,style,head,html,body,title,meta,param"),l.getBlockElements()),O=l.getNonEmptyElements(),P=l.children,k=r.validate,I="forced_root_block"in o?o.forced_root_block:r.forced_root_block,H=l.getWhiteSpaceElements(),R=/^[ \t\r\n]+/,L=/[ \t\r\n]+$/,D=/[ \t\r\n]+/g,M=/^[ \t\r\n]+$/,v=new n({validate:k,allow_script_urls:r.allow_script_urls,allow_conditional_comments:r.allow_conditional_comments,self_closing_elements:g(l.getSelfClosingElements()),cdata:function(e){b.append(u("#cdata",4)).value=e},text:function(e,t){var n;B||(e=e.replace(D," "),b.lastChild&&T[b.lastChild.name]&&(e=e.replace(R,""))),0!==e.length&&(n=u("#text",3),n.raw=!!t,b.append(n).value=e)},comment:function(e){b.append(u("#comment",8)).value=e},pi:function(e,t){b.append(u(e,7)).value=t,h(b)},doctype:function(e){var t;t=b.append(u("#doctype",10)),t.value=e,h(b)},start:function(e,t,n){var r,i,o,a,s;if(o=k?l.getElementRule(e):{}){for(r=u(o.outputName||e,1),r.attributes=t,r.shortEnded=n,b.append(r),s=P[b.name],s&&P[r.name]&&!s[r.name]&&A.push(r),i=f.length;i--;)a=f[i].name,a in t.map&&(E=m[a],E?E.push(r):m[a]=[r]);T[e]&&h(r),n||(b=r),!B&&H[e]&&(B=!0)}},end:function(t){var n,r,i,o,a;if(r=k?l.getElementRule(t):{}){if(T[t]&&!B){if(n=b.firstChild,n&&3===n.type)if(i=n.value.replace(R,""),i.length>0)n.value=i,n=n.next;else for(o=n.next,n.remove(),n=o;n&&3===n.type;)i=n.value,o=n.next,(0===i.length||M.test(i))&&(n.remove(),n=o),n=o;if(n=b.lastChild,n&&3===n.type)if(i=n.value.replace(L,""),i.length>0)n.value=i,n=n.prev;else for(o=n.prev,n.remove(),n=o;n&&3===n.type;)i=n.value,o=n.prev,(0===i.length||M.test(i))&&(n.remove(),n=o),n=o}if(B&&H[t]&&(B=!1),(r.removeEmpty||r.paddEmpty)&&b.isEmpty(O))if(r.paddEmpty)b.empty().append(new e("#text","3")).value="\xa0";else if(!b.attributes.map.name&&!b.attributes.map.id)return a=b.parent,b.empty().remove(),void(b=a);b=b.parent}}},l),y=b=new e(o.context||r.root_name,11),v.parse(t),k&&A.length&&(o.context?o.invalid=!0:c(A)),I&&("body"==y.name||o.isRootContent)&&a(),!o.invalid){for(S in p){for(E=d[S],C=p[S],_=C.length;_--;)C[_].parent||C.splice(_,1);for(x=0,w=E.length;w>x;x++)E[x](C,S,o)}for(x=0,w=f.length;w>x;x++)if(E=f[x],E.name in m){for(C=m[E.name],_=C.length;_--;)C[_].parent||C.splice(_,1);for(_=0,N=E.callbacks.length;N>_;_++)E.callbacks[_](C,E.name,o)}}return y},r.remove_trailing_brs&&u.addNodeFilter("br",function(t){var n,r=t.length,i,o=s({},l.getBlockElements()),a=l.getNonEmptyElements(),c,u,d,f,p,m;for(o.body=1,n=0;r>n;n++)if(i=t[n],c=i.parent,o[i.parent.name]&&i===c.lastChild){for(d=i.prev;d;){if(f=d.name,"span"!==f||"bookmark"!==d.attr("data-mce-type")){if("br"!==f)break;if("br"===f){i=null;break}}d=d.prev}i&&(i.remove(),c.isEmpty(a)&&(p=l.getElementRule(c.name),p&&(p.removeEmpty?c.remove():p.paddEmpty&&(c.empty().append(new e("#text",3)).value="\xa0"))))}else{for(u=i;c&&c.firstChild===u&&c.lastChild===u&&(u=c,!o[c.name]);)c=c.parent;u===c&&(m=new e("#text",3),m.value="\xa0",i.replace(m))}}),r.allow_html_in_named_anchor||u.addAttributeFilter("id,name",function(e){for(var t=e.length,n,r,i,o;t--;)if(o=e[t],"a"===o.name&&o.firstChild&&!o.attr("href")){i=o.parent,n=o.lastChild;do r=n.prev,i.insert(n,o),n=r;while(n)}})}}),r(E,[h,p],function(e,t){var n=t.makeMap;return function(t){var r=[],i,o,a,s,l;return t=t||{},i=t.indent,o=n(t.indent_before||""),a=n(t.indent_after||""),s=e.getEncodeFunc(t.entity_encoding||"raw",t.entities),l="html"==t.element_format,{start:function(e,t,n){var c,u,d,f;if(i&&o[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n")),r.push("<",e),t)for(c=0,u=t.length;u>c;c++)d=t[c],r.push(" ",d.name,'="',s(d.value,!0),'"');r[r.length]=!n||l?">":" />",n&&i&&a[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n"))},end:function(e){var t;r.push("</",e,">"),i&&a[e]&&r.length>0&&(t=r[r.length-1],t.length>0&&"\n"!==t&&r.push("\n"))},text:function(e,t){e.length>0&&(r[r.length]=t?e:s(e))},cdata:function(e){r.push("<![CDATA[",e,"]]>")},comment:function(e){r.push("<!--",e,"-->")},pi:function(e,t){t?r.push("<?",e," ",t,"?>"):r.push("<?",e,"?>"),i&&r.push("\n")},doctype:function(e){r.push("<!DOCTYPE",e,">",i?"\n":"")},reset:function(){r.length=0},getContent:function(){return r.join("").replace(/\n$/,"")}}}}),r(S,[E,w],function(e,t){return function(n,r){var i=this,o=new e(n);n=n||{},n.validate="validate"in n?n.validate:!0,i.schema=r=r||new t,i.writer=o,i.serialize=function(e){function t(e){var n=i[e.type],s,l,c,u,d,f,p,m,h;if(n)n(e);else{if(s=e.name,l=e.shortEnded,c=e.attributes,a&&c&&c.length>1){for(f=[],f.map={},h=r.getElementRule(e.name),p=0,m=h.attributesOrder.length;m>p;p++)u=h.attributesOrder[p],u in c.map&&(d=c.map[u],f.map[u]=d,f.push({name:u,value:d}));for(p=0,m=c.length;m>p;p++)u=c[p].name,u in f.map||(d=c.map[u],f.map[u]=d,f.push({name:u,value:d}));c=f}if(o.start(e.name,c,l),!l){if(e=e.firstChild)do t(e);while(e=e.next);o.end(s)}}}var i,a;return a=n.validate,i={3:function(e){o.text(e.value,e.raw)},8:function(e){o.comment(e.value)},7:function(e){o.pi(e.name,e.value)},10:function(e){o.doctype(e.value)},4:function(e){o.cdata(e.value)},11:function(e){if(e=e.firstChild)do t(e);while(e=e.next)}},o.reset(),1!=e.type||n.inner?i[11](e):t(e),o.getContent()}}}),r(k,[y,N,h,S,x,w,g,p],function(e,t,n,r,i,o,a,s){var l=s.each,c=s.trim,u=e.DOM;return function(e,i){var s,d,f;return i&&(s=i.dom,d=i.schema),s=s||u,d=d||new o(e),e.entity_encoding=e.entity_encoding||"named",e.remove_trailing_brs="remove_trailing_brs"in e?e.remove_trailing_brs:!0,f=new t(e,d),f.addAttributeFilter("src,href,style",function(t,n){for(var r=t.length,i,o,a="data-mce-"+n,l=e.url_converter,c=e.url_converter_scope,u;r--;)i=t[r],o=i.attributes.map[a],o!==u?(i.attr(n,o.length>0?o:null),i.attr(a,null)):(o=i.attributes.map[n],"style"===n?o=s.serializeStyle(s.parseStyle(o),i.name):l&&(o=l.call(c,o,n,i.name)),i.attr(n,o.length>0?o:null))}),f.addAttributeFilter("class",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.attr("class").replace(/(?:^|\s)mce-item-\w+(?!\S)/g,""),n.attr("class",r.length>0?r:null)}),f.addAttributeFilter("data-mce-type",function(e,t,n){for(var r=e.length,i;r--;)i=e[r],"bookmark"!==i.attributes.map["data-mce-type"]||n.cleanup||i.remove()}),f.addAttributeFilter("data-mce-expando",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),f.addNodeFilter("noscript",function(e){for(var t=e.length,r;t--;)r=e[t].firstChild,r&&(r.value=n.decode(r.value))}),f.addNodeFilter("script,style",function(e,t){function n(e){return e.replace(/(<!--\[CDATA\[|\]\]-->)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi,"").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")}for(var r=e.length,i,o;r--;)if(i=e[r],o=i.firstChild?i.firstChild.value:"","script"===t){var a=(i.attr("type")||"text/javascript").replace(/^mce\-/,"");i.attr("type","text/javascript"===a?null:a),o.length>0&&(i.firstChild.value="// <![CDATA[\n"+n(o)+"\n// ]]>")}else o.length>0&&(i.firstChild.value="<!--\n"+n(o)+"\n-->")}),f.addNodeFilter("#comment",function(e){for(var t=e.length,n;t--;)n=e[t],0===n.value.indexOf("[CDATA[")?(n.name="#cdata",n.type=4,n.value=n.value.replace(/^\[CDATA\[|\]\]$/g,"")):0===n.value.indexOf("mce:protected ")&&(n.name="#text",n.type=3,n.raw=!0,n.value=unescape(n.value).substr(14))}),f.addNodeFilter("xml:namespace,input",function(e,t){for(var n=e.length,r;n--;)r=e[n],7===r.type?r.remove():1===r.type&&("input"!==t||"type"in r.attributes.map||r.attr("type","text"))}),e.fix_list_elements&&f.addNodeFilter("ul,ol",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.parent,("ul"===r.name||"ol"===r.name)&&n.prev&&"li"===n.prev.name&&n.prev.append(n)}),f.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style,data-mce-selected",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),{schema:d,addNodeFilter:f.addNodeFilter,addAttributeFilter:f.addAttributeFilter,serialize:function(t,n){var i=this,o,u,p,m,h;return a.ie&&s.select("script,style,select,map").length>0?(h=t.innerHTML,t=t.cloneNode(!1),s.setHTML(t,h)):t=t.cloneNode(!0),o=t.ownerDocument.implementation,o.createHTMLDocument&&(u=o.createHTMLDocument(""),l("BODY"==t.nodeName?t.childNodes:[t],function(e){u.body.appendChild(u.importNode(e,!0))}),t="BODY"!=t.nodeName?u.body.firstChild:u.body,p=s.doc,s.doc=u),n=n||{},n.format=n.format||"html",n.selection&&(n.forced_root_block=""),n.no_events||(n.node=t,i.onPreProcess(n)),m=new r(e,d),n.content=m.serialize(f.parse(c(n.getInner?t.innerHTML:s.getOuterHTML(t)),n)),n.cleanup||(n.content=n.content.replace(/\uFEFF/g,"")),n.no_events||i.onPostProcess(n),p&&(s.doc=p),n.node=null,n.content},addRules:function(e){d.addValidElements(e)},setRules:function(e){d.setValidElements(e)},onPreProcess:function(e){i&&i.fire("PreProcess",e)},onPostProcess:function(e){i&&i.fire("PostProcess",e)}}}}),r(T,[],function(){function e(e){function t(t,n){var r,i=0,o,a,s,l,c,u,d=-1,f;if(r=t.duplicate(),r.collapse(n),f=r.parentElement(),f.ownerDocument===e.dom.doc){for(;"false"===f.contentEditable;)f=f.parentNode;if(!f.hasChildNodes())return{node:f,inside:1};for(s=f.children,o=s.length-1;o>=i;)if(u=Math.floor((i+o)/2),l=s[u],r.moveToElementText(l),d=r.compareEndPoints(n?"StartToStart":"EndToEnd",t),d>0)o=u-1;else{if(!(0>d))return{node:l};i=u+1}if(0>d)for(l?r.collapse(!1):(r.moveToElementText(f),r.collapse(!0),l=f,a=!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",1)&&f==r.parentElement();)c++;else for(r.collapse(!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",-1)&&f==r.parentElement();)c++;return{node:l,position:d,offset:c,inside:a}}}function n(){function n(e){var n=t(o,e),r,i,s=0,l,c,u;if(r=n.node,i=n.offset,n.inside&&!r.hasChildNodes())return void a[e?"setStart":"setEnd"](r,0);if(i===c)return void a[e?"setStartBefore":"setEndAfter"](r);if(n.position<0){if(l=n.inside?r.firstChild:r.nextSibling,!l)return void a[e?"setStartAfter":"setEndAfter"](r);if(!i)return void(3==l.nodeType?a[e?"setStart":"setEnd"](l,0):a[e?"setStartBefore":"setEndBefore"](l)); +for(;l;){if(u=l.nodeValue,s+=u.length,s>=i){r=l,s-=i,s=u.length-s;break}l=l.nextSibling}}else{if(l=r.previousSibling,!l)return a[e?"setStartBefore":"setEndBefore"](r);if(!i)return void(3==r.nodeType?a[e?"setStart":"setEnd"](l,r.nodeValue.length):a[e?"setStartAfter":"setEndAfter"](l));for(;l;){if(s+=l.nodeValue.length,s>=i){r=l,s-=i;break}l=l.previousSibling}}a[e?"setStart":"setEnd"](r,s)}var o=e.getRng(),a=i.createRng(),s,l,c,u,d;if(s=o.item?o.item(0):o.parentElement(),s.ownerDocument!=i.doc)return a;if(l=e.isCollapsed(),o.item)return a.setStart(s.parentNode,i.nodeIndex(s)),a.setEnd(a.startContainer,a.startOffset+1),a;try{n(!0),l||n()}catch(f){if(-2147024809!=f.number)throw f;d=r.getBookmark(2),c=o.duplicate(),c.collapse(!0),s=c.parentElement(),l||(c=o.duplicate(),c.collapse(!1),u=c.parentElement(),u.innerHTML=u.innerHTML),s.innerHTML=s.innerHTML,r.moveToBookmark(d),o=e.getRng(),n(!0),l||n()}return a}var r=this,i=e.dom,o=!1;this.getBookmark=function(n){function r(e){var t,n,r,o,a=[];for(t=e.parentNode,n=i.getRoot().parentNode;t!=n&&9!==t.nodeType;){for(r=t.children,o=r.length;o--;)if(e===r[o]){a.push(o);break}e=t,t=t.parentNode}return a}function o(e){var n;return n=t(a,e),n?{position:n.position,offset:n.offset,indexes:r(n.node),inside:n.inside}:void 0}var a=e.getRng(),s={};return 2===n&&(a.item?s.start={ctrl:!0,indexes:r(a.item(0))}:(s.start=o(!0),e.isCollapsed()||(s.end=o()))),s},this.moveToBookmark=function(e){function t(e){var t,n,r,o;for(t=i.getRoot(),n=e.length-1;n>=0;n--)o=t.children,r=e[n],r<=o.length-1&&(t=o[r]);return t}function n(n){var i=e[n?"start":"end"],a,s,l,c;i&&(a=i.position>0,s=o.createTextRange(),s.moveToElementText(t(i.indexes)),c=i.offset,c!==l?(s.collapse(i.inside||a),s.moveStart("character",a?-c:c)):s.collapse(n),r.setEndPoint(n?"StartToStart":"EndToStart",s),n&&r.collapse(!0))}var r,o=i.doc.body;e.start&&(e.start.ctrl?(r=o.createControlRange(),r.addElement(t(e.start.indexes)),r.select()):(r=o.createTextRange(),n(!0),n(),r.select()))},this.addRange=function(t){function n(e){var t,n,a,d,m;a=i.create("a"),t=e?s:c,n=e?l:u,d=r.duplicate(),(t==f||t==f.documentElement)&&(t=p,n=0),3==t.nodeType?(t.parentNode.insertBefore(a,t),d.moveToElementText(a),d.moveStart("character",n),i.remove(a),r.setEndPoint(e?"StartToStart":"EndToEnd",d)):(m=t.childNodes,m.length?(n>=m.length?i.insertAfter(a,m[m.length-1]):t.insertBefore(a,m[n]),d.moveToElementText(a)):t.canHaveHTML&&(t.innerHTML="<span></span>",a=t.firstChild,d.moveToElementText(a),d.collapse(o)),r.setEndPoint(e?"StartToStart":"EndToEnd",d),i.remove(a))}var r,a,s,l,c,u,d,f=e.dom.doc,p=f.body,m,h;if(s=t.startContainer,l=t.startOffset,c=t.endContainer,u=t.endOffset,r=p.createTextRange(),s==c&&1==s.nodeType){if(l==u&&!s.hasChildNodes()){if(s.canHaveHTML)return d=s.previousSibling,d&&!d.hasChildNodes()&&i.isBlock(d)?d.innerHTML="":d=null,s.innerHTML="<span></span><span></span>",r.moveToElementText(s.lastChild),r.select(),i.doc.selection.clear(),s.innerHTML="",void(d&&(d.innerHTML=""));l=i.nodeIndex(s),s=s.parentNode}if(l==u-1)try{if(h=s.childNodes[l],a=p.createControlRange(),a.addElement(h),a.select(),m=e.getRng(),m.item&&h===m.item(0))return}catch(g){}}n(!0),n(),r.select()},this.getRangeAt=n}return e}),r(R,[g],function(e){return{BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,LEFT:37,RIGHT:39,SPACEBAR:32,TAB:9,UP:38,modifierPressed:function(e){return e.shiftKey||e.ctrlKey||e.altKey},metaKeyPressed:function(t){return(e.mac?t.metaKey:t.ctrlKey)&&!t.altKey}}}),r(A,[R,p,g],function(e,t,n){return function(r,i){function o(e){var t=i.settings.object_resizing;return t===!1||n.iOS?!1:("string"!=typeof t&&(t="table,img,div"),"false"===e.getAttribute("data-mce-resize")?!1:i.dom.is(e,t))}function a(t){var n,r;n=t.screenX-k,r=t.screenY-T,H=n*E[2]+B,P=r*E[3]+L,H=5>H?5:H,P=5>P?5:P,(e.modifierPressed(t)||"IMG"==w.nodeName&&E[2]*E[3]!==0)&&(H=Math.round(P/D),P=Math.round(H*D)),C.setStyles(_,{width:H,height:P}),E[2]<0&&_.clientWidth<=H&&C.setStyle(_,"left",R+(B-H)),E[3]<0&&_.clientHeight<=P&&C.setStyle(_,"top",A+(L-P)),M||(i.fire("ObjectResizeStart",{target:w,width:B,height:L}),M=!0)}function s(){function e(e,t){t&&(w.style[e]||!i.schema.isValid(w.nodeName.toLowerCase(),e)?C.setStyle(w,e,t):C.setAttrib(w,e,t))}M=!1,e("width",H),e("height",P),C.unbind(O,"mousemove",a),C.unbind(O,"mouseup",s),I!=O&&(C.unbind(I,"mousemove",a),C.unbind(I,"mouseup",s)),C.remove(_),F&&"TABLE"!=w.nodeName||l(w),i.fire("ObjectResized",{target:w,width:H,height:P}),i.nodeChanged()}function l(e,t,r){var l,u,d,f,p,m=i.getBody();g(),l=C.getPos(e,m),R=l.x,A=l.y,p=e.getBoundingClientRect(),u=p.width||p.right-p.left,d=p.height||p.bottom-p.top,w!=e&&(h(),w=e,H=P=0),f=i.fire("ObjectSelected",{target:e}),o(e)&&!f.isDefaultPrevented()?x(N,function(e,o){function l(t){k=t.screenX,T=t.screenY,B=w.clientWidth,L=w.clientHeight,D=L/B,E=e,_=w.cloneNode(!0),C.addClass(_,"mce-clonedresizable"),_.contentEditable=!1,_.unSelectabe=!0,C.setStyles(_,{left:R,top:A,margin:0}),_.removeAttribute("data-mce-selected"),i.getBody().appendChild(_),C.bind(O,"mousemove",a),C.bind(O,"mouseup",s),I!=O&&(C.bind(I,"mousemove",a),C.bind(I,"mouseup",s))}var c,f;return t?void(o==t&&l(r)):(c=C.get("mceResizeHandle"+o),c?C.show(c):(f=i.getBody(),c=C.add(f,"div",{id:"mceResizeHandle"+o,"data-mce-bogus":!0,"class":"mce-resizehandle",unselectable:!0,style:"cursor:"+o+"-resize; margin:0; padding:0"}),n.ie&&(c.contentEditable=!1)),e.elm||(C.bind(c,"mousedown",function(e){e.stopImmediatePropagation(),e.preventDefault(),l(e)}),e.elm=c),void C.setStyles(c,{left:u*e[0]+R-c.offsetWidth/2,top:d*e[1]+A-c.offsetHeight/2}))}):c(),w.setAttribute("data-mce-selected","1")}function c(){var e,t;g(),w&&w.removeAttribute("data-mce-selected");for(e in N)t=C.get("mceResizeHandle"+e),t&&(C.unbind(t),C.remove(t))}function u(e){function t(e,t){if(e)do if(e===t)return!0;while(e=e.parentNode)}var n;return x(C.select("img[data-mce-selected],hr[data-mce-selected]"),function(e){e.removeAttribute("data-mce-selected")}),n="mousedown"==e.type?e.target:r.getNode(),n=C.getParent(n,F?"table":"table,img,hr"),t(n,i.getBody())&&(v(),t(r.getStart(),n)&&t(r.getEnd(),n)&&(!F||n!=r.getStart()&&"IMG"!==r.getStart().nodeName))?void l(n):void c()}function d(e,t,n){e&&e.attachEvent&&e.attachEvent("on"+t,n)}function f(e,t,n){e&&e.detachEvent&&e.detachEvent("on"+t,n)}function p(e){var t=e.srcElement,n,r,o,a,s,c,u;n=t.getBoundingClientRect(),c=S.clientX-n.left,u=S.clientY-n.top;for(r in N)if(o=N[r],a=t.offsetWidth*o[0],s=t.offsetHeight*o[1],Math.abs(a-c)<8&&Math.abs(s-u)<8){E=o;break}M=!0,i.getDoc().selection.empty(),l(t,r,S)}function m(e){var t=e.srcElement;if(t!=w){if(h(),0===t.id.indexOf("mceResizeHandle"))return void(e.returnValue=!1);("IMG"==t.nodeName||"TABLE"==t.nodeName)&&(c(),w=t,d(t,"resizestart",p))}}function h(){f(w,"resizestart",p)}function g(){for(var e in N){var t=N[e];t.elm&&(C.unbind(t.elm),delete t.elm)}}function v(){try{i.getDoc().execCommand("enableObjectResizing",!1,!1)}catch(e){}}function y(e){var t;if(F){t=O.body.createControlRange();try{return t.addElement(e),t.select(),!0}catch(n){}}}function b(){w=_=null,F&&(h(),f(i.getBody(),"controlselect",m))}var C=i.dom,x=t.each,w,_,N,E,S,k,T,R,A,B,L,D,M,H,P,O=i.getDoc(),I=document,F=n.ie&&n.ie<11;N={n:[.5,0,0,-1],e:[1,.5,1,0],s:[.5,1,0,1],w:[0,.5,-1,0],nw:[0,0,-1,-1],ne:[1,0,1,-1],se:[1,1,1,1],sw:[0,1,-1,1]};var z=".mce-content-body";return i.contentStyles.push(z+" div.mce-resizehandle {position: absolute;border: 1px solid black;background: #FFF;width: 5px;height: 5px;z-index: 10000}"+z+" .mce-resizehandle:hover {background: #000}"+z+" img[data-mce-selected], hr[data-mce-selected] {outline: 1px solid black;resize: none}"+z+" .mce-clonedresizable {position: absolute;"+(n.gecko?"":"outline: 1px dashed black;")+"opacity: .5;filter: alpha(opacity=50);z-index: 10000}"),i.on("init",function(){F?(i.on("ObjectResized",function(e){"TABLE"!=e.target.nodeName&&(c(),y(e.target))}),d(i.getBody(),"controlselect",m),i.on("mousedown",function(e){S=e})):(v(),n.ie>=11&&(i.on("mouseup",function(e){var t=e.target.nodeName;/^(TABLE|IMG|HR)$/.test(t)&&(i.selection.select(e.target,"TABLE"==t),i.nodeChanged())}),i.dom.bind(i.getBody(),"mscontrolselect",function(e){/^(TABLE|IMG|HR)$/.test(e.target.nodeName)&&(e.preventDefault(),"IMG"==e.target.tagName&&window.setTimeout(function(){i.selection.select(e.target)},0))}))),i.on("nodechange mousedown mouseup ResizeEditor",u),i.on("keydown keyup",function(e){w&&"TABLE"==w.nodeName&&u(e)})}),i.on("remove",g),{isResizable:o,showResizeRect:l,hideResizeRect:c,updateResizeRect:u,controlSelect:y,destroy:b}}}),r(B,[p,f],function(e,t){function n(e){this.walk=function(t,n){function i(e){var t;return t=e[0],3===t.nodeType&&t===l&&c>=t.nodeValue.length&&e.splice(0,1),t=e[e.length-1],0===d&&e.length>0&&t===u&&3===t.nodeType&&e.splice(e.length-1,1),e}function o(e,t,n){for(var r=[];e&&e!=n;e=e[t])r.push(e);return r}function a(e,t){do{if(e.parentNode==t)return e;e=e.parentNode}while(e)}function s(e,t,r){var a=r?"nextSibling":"previousSibling";for(h=e,g=h.parentNode;h&&h!=t;h=g)g=h.parentNode,v=o(h==e?h:h[a],a),v.length&&(r||v.reverse(),n(i(v)))}var l=t.startContainer,c=t.startOffset,u=t.endContainer,d=t.endOffset,f,p,m,h,g,v,y;if(y=e.select("td.mce-item-selected,th.mce-item-selected"),y.length>0)return void r(y,function(e){n([e])});if(1==l.nodeType&&l.hasChildNodes()&&(l=l.childNodes[c]),1==u.nodeType&&u.hasChildNodes()&&(u=u.childNodes[Math.min(d-1,u.childNodes.length-1)]),l==u)return n(i([l]));for(f=e.findCommonAncestor(l,u),h=l;h;h=h.parentNode){if(h===u)return s(l,f,!0);if(h===f)break}for(h=u;h;h=h.parentNode){if(h===l)return s(u,f);if(h===f)break}p=a(l,f)||l,m=a(u,f)||u,s(l,p,!0),v=o(p==l?p:p.nextSibling,"nextSibling",m==u?m.nextSibling:m),v.length&&n(i(v)),s(u,m)},this.split=function(e){function t(e,t){return e.splitText(t)}var n=e.startContainer,r=e.startOffset,i=e.endContainer,o=e.endOffset;return n==i&&3==n.nodeType?r>0&&r<n.nodeValue.length&&(i=t(n,r),n=i.previousSibling,o>r?(o-=r,n=i=t(i,o).previousSibling,o=i.nodeValue.length,r=0):o=0):(3==n.nodeType&&r>0&&r<n.nodeValue.length&&(n=t(n,r),r=0),3==i.nodeType&&o>0&&o<i.nodeValue.length&&(i=t(i,o).previousSibling,o=i.nodeValue.length)),{startContainer:n,startOffset:r,endContainer:i,endOffset:o}},this.normalize=function(n){function r(r){function a(n,r){for(var i=new t(n,e.getParent(n.parentNode,e.isBlock)||f);n=i[r?"prev":"next"]();)if("BR"===n.nodeName)return!0}function s(e,t){return e.previousSibling&&e.previousSibling.nodeName==t}function l(n,r){var a,s,l;if(r=r||c,l=e.getParent(r.parentNode,e.isBlock)||f,n&&"BR"==r.nodeName&&v&&e.isEmpty(l))return c=r.parentNode,u=e.nodeIndex(r),void(i=!0);for(a=new t(r,l);p=a[n?"prev":"next"]();){if(3===p.nodeType&&p.nodeValue.length>0)return c=p,u=n?p.nodeValue.length:0,void(i=!0);if(e.isBlock(p)||m[p.nodeName.toLowerCase()])return;s=p}o&&s&&(c=s,i=!0,u=0)}var c,u,d,f=e.getRoot(),p,m,h,g,v;if(c=n[(r?"start":"end")+"Container"],u=n[(r?"start":"end")+"Offset"],v=1==c.nodeType&&u===c.childNodes.length,m=e.schema.getNonEmptyElements(),g=r,1==c.nodeType&&u>c.childNodes.length-1&&(g=!1),9===c.nodeType&&(c=e.getRoot(),u=0),c===f){if(g&&(p=c.childNodes[u>0?u-1:0],p&&(h=p.nodeName.toLowerCase(),m[p.nodeName]||"TABLE"==p.nodeName)))return;if(c.hasChildNodes()&&(u=Math.min(!g&&u>0?u-1:u,c.childNodes.length-1),c=c.childNodes[u],u=0,c.hasChildNodes()&&!/TABLE/.test(c.nodeName))){p=c,d=new t(c,f);do{if(3===p.nodeType&&p.nodeValue.length>0){u=g?0:p.nodeValue.length,c=p,i=!0;break}if(m[p.nodeName.toLowerCase()]){u=e.nodeIndex(p),c=p.parentNode,"IMG"!=p.nodeName||g||u++,i=!0;break}}while(p=g?d.next():d.prev())}}o&&(3===c.nodeType&&0===u&&l(!0),1===c.nodeType&&(p=c.childNodes[u],p||(p=c.childNodes[u-1]),!p||"BR"!==p.nodeName||s(p,"A")||a(p)||a(p,!0)||l(!0,p))),g&&!o&&3===c.nodeType&&u===c.nodeValue.length&&l(!1),i&&n["set"+(r?"Start":"End")](c,u)}var i,o;return o=n.collapsed,r(!0),o||r(),i&&o&&n.collapse(!0),i}}var r=e.each;return n.compareRanges=function(e,t){if(e&&t){if(!e.item&&!e.duplicate)return e.startContainer==t.startContainer&&e.startOffset==t.startOffset;if(e.item&&t.item&&e.item(0)===t.item(0))return!0;if(e.isEqual&&t.isEqual&&t.isEqual(e))return!0}return!1},n}),r(L,[f,T,A,B,g,p],function(e,n,r,i,o,a){function s(e,t,i,o){var a=this;a.dom=e,a.win=t,a.serializer=i,a.editor=o,a.controlSelection=new r(a,o),a.win.getSelection||(a.tridentSel=new n(a))}var l=a.each,c=a.grep,u=a.trim,d=o.ie,f=o.opera;return s.prototype={setCursorLocation:function(e,t){var n=this,r=n.dom.createRng();e?(r.setStart(e,t),r.setEnd(e,t),n.setRng(r),n.collapse(!1)):(n._moveEndPoint(r,n.editor.getBody(),!0),n.setRng(r))},getContent:function(e){var n=this,r=n.getRng(),i=n.dom.create("body"),o=n.getSel(),a,s,l;return e=e||{},a=s="",e.get=!0,e.format=e.format||"html",e.selection=!0,n.editor.fire("BeforeGetContent",e),"text"==e.format?n.isCollapsed()?"":r.text||(o.toString?o.toString():""):(r.cloneContents?(l=r.cloneContents(),l&&i.appendChild(l)):r.item!==t||r.htmlText!==t?(i.innerHTML="<br>"+(r.item?r.item(0).outerHTML:r.htmlText),i.removeChild(i.firstChild)):i.innerHTML=r.toString(),/^\s/.test(i.innerHTML)&&(a=" "),/\s+$/.test(i.innerHTML)&&(s=" "),e.getInner=!0,e.content=n.isCollapsed()?"":a+n.serializer.serialize(i,e)+s,n.editor.fire("GetContent",e),e.content)},setContent:function(e,t){var n=this,r=n.getRng(),i,o=n.win.document,a,s;if(t=t||{format:"html"},t.set=!0,t.selection=!0,e=t.content=e,t.no_events||n.editor.fire("BeforeSetContent",t),e=t.content,r.insertNode){e+='<span id="__caret">_</span>',r.startContainer==o&&r.endContainer==o?o.body.innerHTML=e:(r.deleteContents(),0===o.body.childNodes.length?o.body.innerHTML=e:r.createContextualFragment?r.insertNode(r.createContextualFragment(e)):(a=o.createDocumentFragment(),s=o.createElement("div"),a.appendChild(s),s.outerHTML=e,r.insertNode(a))),i=n.dom.get("__caret"),r=o.createRange(),r.setStartBefore(i),r.setEndBefore(i),n.setRng(r),n.dom.remove("__caret");try{n.setRng(r)}catch(l){}}else r.item&&(o.execCommand("Delete",!1,null),r=n.getRng()),/^\s+/.test(e)?(r.pasteHTML('<span id="__mce_tmp">_</span>'+e),n.dom.remove("__mce_tmp")):r.pasteHTML(e);t.no_events||n.editor.fire("SetContent",t)},getStart:function(){var e=this,t=e.getRng(),n,r,i,o;if(t.duplicate||t.item){if(t.item)return t.item(0);for(i=t.duplicate(),i.collapse(1),n=i.parentElement(),n.ownerDocument!==e.dom.doc&&(n=e.dom.getRoot()),r=o=t.parentElement();o=o.parentNode;)if(o==n){n=r;break}return n}return n=t.startContainer,1==n.nodeType&&n.hasChildNodes()&&(n=n.childNodes[Math.min(n.childNodes.length-1,t.startOffset)]),n&&3==n.nodeType?n.parentNode:n},getEnd:function(){var e=this,t=e.getRng(),n,r;return t.duplicate||t.item?t.item?t.item(0):(t=t.duplicate(),t.collapse(0),n=t.parentElement(),n.ownerDocument!==e.dom.doc&&(n=e.dom.getRoot()),n&&"BODY"==n.nodeName?n.lastChild||n:n):(n=t.endContainer,r=t.endOffset,1==n.nodeType&&n.hasChildNodes()&&(n=n.childNodes[r>0?r-1:r]),n&&3==n.nodeType?n.parentNode:n)},getBookmark:function(e,t){function n(e,t){var n=0;return l(a.select(e),function(e,r){e==t&&(n=r)}),n}function r(e){function t(t){var n,r,i,o=t?"start":"end";n=e[o+"Container"],r=e[o+"Offset"],1==n.nodeType&&"TR"==n.nodeName&&(i=n.childNodes,n=i[Math.min(t?r:r-1,i.length-1)],n&&(r=t?0:n.childNodes.length,e["set"+(t?"Start":"End")](n,r)))}return t(!0),t(),e}function i(){function e(e,n){var i=e[n?"startContainer":"endContainer"],a=e[n?"startOffset":"endOffset"],s=[],l,c,u=0;if(3==i.nodeType){if(t)for(l=i.previousSibling;l&&3==l.nodeType;l=l.previousSibling)a+=l.nodeValue.length;s.push(a)}else c=i.childNodes,a>=c.length&&c.length&&(u=1,a=Math.max(0,c.length-1)),s.push(o.dom.nodeIndex(c[a],t)+u);for(;i&&i!=r;i=i.parentNode)s.push(o.dom.nodeIndex(i,t));return s}var n=o.getRng(!0),r=a.getRoot(),i={};return i.start=e(n,!0),o.isCollapsed()||(i.end=e(n)),i}var o=this,a=o.dom,s,c,u,d,f,p,m="",h;if(2==e)return p=o.getNode(),f=p?p.nodeName:null,"IMG"==f?{name:f,index:n(f,p)}:o.tridentSel?o.tridentSel.getBookmark(e):i();if(e)return{rng:o.getRng()};if(s=o.getRng(),u=a.uniqueId(),d=o.isCollapsed(),h="overflow:hidden;line-height:0px",s.duplicate||s.item){if(s.item)return p=s.item(0),f=p.nodeName,{name:f,index:n(f,p)};c=s.duplicate();try{s.collapse(),s.pasteHTML('<span data-mce-type="bookmark" id="'+u+'_start" style="'+h+'">'+m+"</span>"),d||(c.collapse(!1),s.moveToElementText(c.parentElement()),0===s.compareEndPoints("StartToEnd",c)&&c.move("character",-1),c.pasteHTML('<span data-mce-type="bookmark" id="'+u+'_end" style="'+h+'">'+m+"</span>"))}catch(g){return null}}else{if(p=o.getNode(),f=p.nodeName,"IMG"==f)return{name:f,index:n(f,p)};c=r(s.cloneRange()),d||(c.collapse(!1),c.insertNode(a.create("span",{"data-mce-type":"bookmark",id:u+"_end",style:h},m))),s=r(s),s.collapse(!0),s.insertNode(a.create("span",{"data-mce-type":"bookmark",id:u+"_start",style:h},m))}return o.moveToBookmark({id:u,keep:1}),{id:u}},moveToBookmark:function(e){function t(t){var n=e[t?"start":"end"],r,i,o,l;if(n){for(o=n[0],i=s,r=n.length-1;r>=1;r--){if(l=i.childNodes,n[r]>l.length-1)return;i=l[n[r]]}3===i.nodeType&&(o=Math.min(n[0],i.nodeValue.length)),1===i.nodeType&&(o=Math.min(n[0],i.childNodes.length)),t?a.setStart(i,o):a.setEnd(i,o)}return!0}function n(t){var n=o.get(e.id+"_"+t),r,i,a,s,d=e.keep;if(n&&(r=n.parentNode,"start"==t?(d?(r=n.firstChild,i=1):i=o.nodeIndex(n),u=p=r,m=h=i):(d?(r=n.firstChild,i=1):i=o.nodeIndex(n),p=r,h=i),!d)){for(s=n.previousSibling,a=n.nextSibling,l(c(n.childNodes),function(e){3==e.nodeType&&(e.nodeValue=e.nodeValue.replace(/\uFEFF/g,""))});n=o.get(e.id+"_"+t);)o.remove(n,1);s&&a&&s.nodeType==a.nodeType&&3==s.nodeType&&!f&&(i=s.nodeValue.length,s.appendData(a.nodeValue),o.remove(a),"start"==t?(u=p=s,m=h=i):(p=s,h=i))}}function r(e){return!o.isBlock(e)||e.innerHTML||d||(e.innerHTML='<br data-mce-bogus="1" />'),e}var i=this,o=i.dom,a,s,u,p,m,h;if(e)if(e.start){if(a=o.createRng(),s=o.getRoot(),i.tridentSel)return i.tridentSel.moveToBookmark(e);t(!0)&&t()&&i.setRng(a)}else e.id?(n("start"),n("end"),u&&(a=o.createRng(),a.setStart(r(u),m),a.setEnd(r(p),h),i.setRng(a))):e.name?i.select(o.select(e.name)[e.index]):e.rng&&i.setRng(e.rng)},select:function(e,t){var n=this,r=n.dom,i=r.createRng(),o;if(n.lastFocusBookmark=null,e){if(!t&&n.controlSelection.controlSelect(e))return;o=r.nodeIndex(e),i.setStart(e.parentNode,o),i.setEnd(e.parentNode,o+1),t&&(n._moveEndPoint(i,e,!0),n._moveEndPoint(i,e)),n.setRng(i)}return e},isCollapsed:function(){var e=this,t=e.getRng(),n=e.getSel();return!t||t.item?!1:t.compareEndPoints?0===t.compareEndPoints("StartToEnd",t):!n||t.collapsed},collapse:function(e){var t=this,n=t.getRng(),r;n.item&&(r=n.item(0),n=t.win.document.body.createTextRange(),n.moveToElementText(r)),n.collapse(!!e),t.setRng(n)},getSel:function(){var e=this.win;return e.getSelection?e.getSelection():e.document.selection},getRng:function(e){function t(e,t,n){try{return t.compareBoundaryPoints(e,n)}catch(r){return-1}}var n=this,r,i,o,a=n.win.document,s;if(!e&&n.lastFocusBookmark){var l=n.lastFocusBookmark;return l.startContainer?(i=a.createRange(),i.setStart(l.startContainer,l.startOffset),i.setEnd(l.endContainer,l.endOffset)):i=l,i}if(e&&n.tridentSel)return n.tridentSel.getRangeAt(0);try{(r=n.getSel())&&(i=r.rangeCount>0?r.getRangeAt(0):r.createRange?r.createRange():a.createRange())}catch(c){}if(d&&i&&i.setStart&&a.selection){try{s=a.selection.createRange()}catch(c){}s&&s.item&&(o=s.item(0),i=a.createRange(),i.setStartBefore(o),i.setEndAfter(o))}return i||(i=a.createRange?a.createRange():a.body.createTextRange()),i.setStart&&9===i.startContainer.nodeType&&i.collapsed&&(o=n.dom.getRoot(),i.setStart(o,0),i.setEnd(o,0)),n.selectedRange&&n.explicitRange&&(0===t(i.START_TO_START,i,n.selectedRange)&&0===t(i.END_TO_END,i,n.selectedRange)?i=n.explicitRange:(n.selectedRange=null,n.explicitRange=null)),i},setRng:function(e,t){var n=this,r;if(e.select)try{e.select()}catch(i){}else if(n.tridentSel){if(e.cloneRange)try{return void n.tridentSel.addRange(e)}catch(i){}}else if(r=n.getSel()){n.explicitRange=e;try{r.removeAllRanges(),r.addRange(e)}catch(i){}t===!1&&r.extend&&(r.collapse(e.endContainer,e.endOffset),r.extend(e.startContainer,e.startOffset)),n.selectedRange=r.rangeCount>0?r.getRangeAt(0):null}},setNode:function(e){var t=this;return t.setContent(t.dom.getOuterHTML(e)),e},getNode:function(){function e(e,t){for(var n=e;e&&3===e.nodeType&&0===e.length;)e=t?e.nextSibling:e.previousSibling;return e||n}var t=this,n=t.getRng(),r,i=n.startContainer,o=n.endContainer,a=n.startOffset,s=n.endOffset,l=t.dom.getRoot();return n?n.setStart?(r=n.commonAncestorContainer,!n.collapsed&&(i==o&&2>s-a&&i.hasChildNodes()&&(r=i.childNodes[a]),3===i.nodeType&&3===o.nodeType&&(i=i.length===a?e(i.nextSibling,!0):i.parentNode,o=0===s?e(o.previousSibling,!1):o.parentNode,i&&i===o))?i:r&&3==r.nodeType?r.parentNode:r):(r=n.item?n.item(0):n.parentElement(),r.ownerDocument!==t.win.document&&(r=l),r):l},getSelectedBlocks:function(t,n){var r=this,i=r.dom,o,a,s=[];if(a=i.getRoot(),t=i.getParent(t||r.getStart(),i.isBlock),n=i.getParent(n||r.getEnd(),i.isBlock),t&&t!=a&&s.push(t),t&&n&&t!=n){o=t;for(var l=new e(t,a);(o=l.next())&&o!=n;)i.isBlock(o)&&s.push(o)}return n&&t!=n&&n!=a&&s.push(n),s},isForward:function(){var e=this.dom,t=this.getSel(),n,r;return t&&t.anchorNode&&t.focusNode?(n=e.createRng(),n.setStart(t.anchorNode,t.anchorOffset),n.collapse(!0),r=e.createRng(),r.setStart(t.focusNode,t.focusOffset),r.collapse(!0),n.compareBoundaryPoints(n.START_TO_START,r)<=0):!0},normalize:function(){var e=this,t=e.getRng();return!d&&new i(e.dom).normalize(t)&&e.setRng(t,e.isForward()),t},selectorChanged:function(e,t){var n=this,r;return n.selectorChangedData||(n.selectorChangedData={},r={},n.editor.on("NodeChange",function(e){var t=e.element,i=n.dom,o=i.getParents(t,null,i.getRoot()),a={};l(n.selectorChangedData,function(e,t){l(o,function(n){return i.is(n,t)?(r[t]||(l(e,function(e){e(!0,{node:n,selector:t,parents:o})}),r[t]=e),a[t]=e,!1):void 0})}),l(r,function(e,n){a[n]||(delete r[n],l(e,function(e){e(!1,{node:t,selector:n,parents:o})}))})})),n.selectorChangedData[e]||(n.selectorChangedData[e]=[]),n.selectorChangedData[e].push(t),n},getScrollContainer:function(){for(var e,t=this.dom.getRoot();t&&"BODY"!=t.nodeName;){if(t.scrollHeight>t.clientHeight){e=t;break}t=t.parentNode}return e},scrollIntoView:function(e){function t(e){for(var t=0,n=0,r=e;r&&r.nodeType;)t+=r.offsetLeft||0,n+=r.offsetTop||0,r=r.offsetParent;return{x:t,y:n}}var n,r,i=this,o=i.dom,a=o.getRoot(),s,l;if("BODY"!=a.nodeName){var c=i.getScrollContainer();if(c)return n=t(e).y-t(c).y,l=c.clientHeight,s=c.scrollTop,void((s>n||n+25>s+l)&&(c.scrollTop=s>n?n:n-l+25))}r=o.getViewPort(i.editor.getWin()),n=o.getPos(e).y,s=r.y,l=r.h,(n<r.y||n+25>s+l)&&i.editor.getWin().scrollTo(0,s>n?n:n-l+25)},_moveEndPoint:function(t,n,r){var i=n,a=new e(n,i),s=this.dom.schema.getNonEmptyElements();do{if(3==n.nodeType&&0!==u(n.nodeValue).length)return void(r?t.setStart(n,0):t.setEnd(n,n.nodeValue.length));if(s[n.nodeName])return void(r?t.setStartBefore(n):"BR"==n.nodeName?t.setEndBefore(n):t.setEndAfter(n));if(o.ie&&o.ie<11&&this.dom.isBlock(n)&&this.dom.isEmpty(n))return void(r?t.setStart(n,0):t.setEnd(n,0))}while(n=r?a.next():a.prev());"BODY"==i.nodeName&&(r?t.setStart(i,0):t.setEnd(i,i.childNodes.length))},destroy:function(){this.win=null,this.controlSelection.destroy()}},s}),r(D,[f,B,p],function(e,t,n){return function(r){function i(e){return e.nodeType&&(e=e.nodeName),!!r.schema.getTextBlockElements()[e.toLowerCase()]}function o(e,t){return I.getParents(e,t,I.getRoot())}function a(e){return 1===e.nodeType&&"_mce_caret"===e.id}function s(){u({alignleft:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"left"},defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"left"}}],aligncenter:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"center"},defaultBlock:"div"},{selector:"img",collapsed:!1,styles:{display:"block",marginLeft:"auto",marginRight:"auto"}},{selector:"table",collapsed:!1,styles:{marginLeft:"auto",marginRight:"auto"}}],alignright:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"right"},defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"right"}}],alignjustify:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"justify"},defaultBlock:"div"}],bold:[{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}},{inline:"b",remove:"all"}],italic:[{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}},{inline:"i",remove:"all"}],underline:[{inline:"span",styles:{textDecoration:"underline"},exact:!0},{inline:"u",remove:"all"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:!0},{inline:"strike",remove:"all"}],forecolor:{inline:"span",styles:{color:"%value"},wrap_links:!1},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"},wrap_links:!1},fontname:{inline:"span",styles:{fontFamily:"%value"}},fontsize:{inline:"span",styles:{fontSize:"%value"}},fontsize_class:{inline:"span",attributes:{"class":"%value"}},blockquote:{block:"blockquote",wrapper:1,remove:"all"},subscript:{inline:"sub"},superscript:{inline:"sup"},code:{inline:"code"},link:{inline:"a",selector:"a",remove:"all",split:!0,deep:!0,onmatch:function(){return!0},onformat:function(e,t,n){et(n,function(t,n){I.setAttrib(e,n,t)})}},removeformat:[{selector:"b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q",remove:"all",split:!0,expand:!1,block_expand:!0,deep:!0},{selector:"span",attributes:["style","class"],remove:"empty",split:!0,expand:!1,deep:!0},{selector:"*",attributes:["style","class"],split:!1,expand:!1,deep:!0}]}),et("p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp".split(/\s/),function(e){u(e,{block:e,remove:"all"})}),u(r.settings.formats)}function l(){r.addShortcut("ctrl+b","bold_desc","Bold"),r.addShortcut("ctrl+i","italic_desc","Italic"),r.addShortcut("ctrl+u","underline_desc","Underline");for(var e=1;6>=e;e++)r.addShortcut("ctrl+"+e,"",["FormatBlock",!1,"h"+e]);r.addShortcut("ctrl+7","",["FormatBlock",!1,"p"]),r.addShortcut("ctrl+8","",["FormatBlock",!1,"div"]),r.addShortcut("ctrl+9","",["FormatBlock",!1,"address"])}function c(e){return e?O[e]:O}function u(e,t){e&&("string"!=typeof e?et(e,function(e,t){u(t,e)}):(t=t.length?t:[t],et(t,function(e){e.deep===X&&(e.deep=!e.selector),e.split===X&&(e.split=!e.selector||e.inline),e.remove===X&&e.selector&&!e.inline&&(e.remove="none"),e.selector&&e.inline&&(e.mixed=!0,e.block_expand=!0),"string"==typeof e.classes&&(e.classes=e.classes.split(/\s+/))}),O[e]=t))}function d(e){var t;return r.dom.getParent(e,function(e){return t=r.dom.getStyle(e,"text-decoration"),t&&"none"!==t}),t}function f(e){var t;1===e.nodeType&&e.parentNode&&1===e.parentNode.nodeType&&(t=d(e.parentNode),r.dom.getStyle(e,"color")&&t?r.dom.setStyle(e,"text-decoration",t):r.dom.getStyle(e,"textdecoration")===t&&r.dom.setStyle(e,"text-decoration",null))}function p(t,n,o){function s(e,t){t=t||h,e&&(t.onformat&&t.onformat(e,t,n,o),et(t.styles,function(t,r){I.setStyle(e,r,E(t,n))}),et(t.attributes,function(t,r){I.setAttrib(e,r,E(t,n))}),et(t.classes,function(t){t=E(t,n),I.hasClass(e,t)||I.addClass(e,t)}))}function l(){function t(t,n){var r=new e(n);for(o=r.current();o;o=r.prev())if(o.childNodes.length>1||o==t||"BR"==o.tagName)return o}var n=r.selection.getRng(),i=n.startContainer,a=n.endContainer;if(i!=a&&0===n.endOffset){var s=t(i,a),l=3==s.nodeType?s.length:s.childNodes.length;n.setEnd(s,l)}return n}function u(e,t,n,r,i){var o=[],a=-1,s,l=-1,c=-1,u;return et(e.childNodes,function(e,t){return"UL"===e.nodeName||"OL"===e.nodeName?(a=t,s=e,!1):void 0}),et(e.childNodes,function(e,n){"SPAN"===e.nodeName&&"bookmark"==I.getAttrib(e,"data-mce-type")&&(e.id==t.id+"_start"?l=n:e.id==t.id+"_end"&&(c=n))}),0>=a||a>l&&c>a?(et(tt(e.childNodes),i),0):(u=I.clone(n,K),et(tt(e.childNodes),function(e,t){(a>l&&a>t||l>a&&t>a)&&(o.push(e),e.parentNode.removeChild(e))}),a>l?e.insertBefore(u,s):l>a&&e.insertBefore(u,s.nextSibling),r.push(u),et(o,function(e){u.appendChild(e)}),u)}function d(e,r,o){var l=[],c,d,f=!0;c=h.inline||h.block,d=I.create(c),s(d),z.walk(e,function(e){function p(e){var y,C,x,_,N;return N=f,y=e.nodeName.toLowerCase(),C=e.parentNode.nodeName.toLowerCase(),1===e.nodeType&&J(e)&&(N=f,f="true"===J(e),_=!0),w(y,"br")?(v=0,void(h.block&&I.remove(e))):h.wrapper&&g(e,t,n)?void(v=0):f&&!_&&h.block&&!h.wrapper&&i(y)&&W(C,c)?(e=I.rename(e,c),s(e),l.push(e),void(v=0)):h.selector&&(et(m,function(t){"collapsed"in t&&t.collapsed!==b||I.is(e,t.selector)&&!a(e)&&(s(e,t),x=!0)}),!h.inline||x)?void(v=0):void(!f||_||!W(c,y)||!W(C,c)||!o&&3===e.nodeType&&1===e.nodeValue.length&&65279===e.nodeValue.charCodeAt(0)||a(e)||h.inline&&V(e)?"li"==y&&r?v=u(e,r,d,l,p):(v=0,et(tt(e.childNodes),p),_&&(f=N),v=0):(v||(v=I.clone(d,K),e.parentNode.insertBefore(v,e),l.push(v)),v.appendChild(e)))}var v;et(e,p)}),h.wrap_links===!1&&et(l,function(e){function t(e){var n,r,i;if("A"===e.nodeName){for(r=I.clone(d,K),l.push(r),i=tt(e.childNodes),n=0;n<i.length;n++)r.appendChild(i[n]);e.appendChild(r)}et(tt(e.childNodes),t)}t(e)}),et(l,function(e){function r(e){var t=0;return et(e.childNodes,function(e){S(e)||L(e)||t++}),t}function i(e){var t,n;return et(e.childNodes,function(e){return 1!=e.nodeType||L(e)||a(e)?void 0:(t=e,K)}),t&&!L(t)&&x(t,h)&&(n=I.clone(t,K),s(n),I.replace(n,e,Y),I.remove(t,1)),n||e}var o;if(o=r(e),(l.length>1||!V(e))&&0===o)return void I.remove(e,1);if(h.inline||h.wrapper){if(h.exact||1!==o||(e=i(e)),et(m,function(t){et(I.select(t.inline,e),function(e){var r;if(!L(e)){if(t.wrap_links===!1){r=e.parentNode;do if("A"===r.nodeName)return;while(r=r.parentNode)}R(t,n,e,t.exact?e:null)}})}),g(e.parentNode,t,n))return I.remove(e,1),e=0,Y;h.merge_with_parents&&I.getParent(e.parentNode,function(r){return g(r,t,n)?(I.remove(e,1),e=0,Y):void 0}),e&&h.merge_siblings!==!1&&(e=D(B(e),e),e=D(e,B(e,Y)))}})}var m=c(t),h=m[0],v,y,b=!o&&F.isCollapsed();if(h)if(o)o.nodeType?(y=I.createRng(),y.setStartBefore(o),y.setEndAfter(o),d(T(y,m),null,!0)):d(o,null,!0);else if(b&&h.inline&&!I.select("td.mce-item-selected,th.mce-item-selected").length)H("apply",t,n);else{var C=r.selection.getNode();U||!m[0].defaultBlock||I.getParent(C,I.isBlock)||p(m[0].defaultBlock),r.selection.setRng(l()),v=F.getBookmark(),d(T(F.getRng(Y),m),v),h.styles&&(h.styles.color||h.styles.textDecoration)&&(nt(C,f,"childNodes"),f(C)),F.moveToBookmark(v),P(F.getRng(Y)),r.nodeChanged()}}function m(e,t,n){function i(e){var n,r,o,a,s;if(1===e.nodeType&&J(e)&&(a=b,b="true"===J(e),s=!0),n=tt(e.childNodes),b&&!s)for(r=0,o=p.length;o>r&&!R(p[r],t,e,e);r++);if(m.deep&&n.length){for(r=0,o=n.length;o>r;r++)i(n[r]);s&&(b=a)}}function a(n){var r;return et(o(n.parentNode).reverse(),function(n){var i;r||"_start"==n.id||"_end"==n.id||(i=g(n,e,t),i&&i.split!==!1&&(r=n))}),r}function s(e,n,r,i){var o,a,s,l,c,u;if(e){for(u=e.parentNode,o=n.parentNode;o&&o!=u;o=o.parentNode){for(a=I.clone(o,K),c=0;c<p.length;c++)if(R(p[c],t,a,a)){a=0;break}a&&(s&&a.appendChild(s),l||(l=a),s=a)}!i||m.mixed&&V(e)||(n=I.split(e,n)),s&&(r.parentNode.insertBefore(s,r),l.appendChild(r))}return n}function l(e){return s(a(e),e,e,!0)}function u(e){var t=I.get(e?"_start":"_end"),n=t[e?"firstChild":"lastChild"];return L(n)&&(n=n[e?"firstChild":"lastChild"]),I.remove(t,!0),n}function f(e){var t,n,o=e.commonAncestorContainer;e=T(e,p,Y),m.split&&(t=M(e,Y),n=M(e),t!=n?(/^(TR|TH|TD)$/.test(t.nodeName)&&t.firstChild&&(t="TR"==t.nodeName?t.firstChild.firstChild||t:t.firstChild||t),o&&/^T(HEAD|BODY|FOOT|R)$/.test(o.nodeName)&&/^(TH|TD)$/.test(n.nodeName)&&n.firstChild&&(n=n.firstChild||n),t=k(t,"span",{id:"_start","data-mce-type":"bookmark"}),n=k(n,"span",{id:"_end","data-mce-type":"bookmark"}),l(t),l(n),t=u(Y),n=u()):t=n=l(t),e.startContainer=t.parentNode,e.startOffset=q(t),e.endContainer=n.parentNode,e.endOffset=q(n)+1),z.walk(e,function(e){et(e,function(e){i(e),1===e.nodeType&&"underline"===r.dom.getStyle(e,"text-decoration")&&e.parentNode&&"underline"===d(e.parentNode)&&R({deep:!1,exact:!0,inline:"span",styles:{textDecoration:"underline"}},null,e) +})})}var p=c(e),m=p[0],h,y,b=!0;return n?void(n.nodeType?(y=I.createRng(),y.setStartBefore(n),y.setEndAfter(n),f(y)):f(n)):void(F.isCollapsed()&&m.inline&&!I.select("td.mce-item-selected,th.mce-item-selected").length?H("remove",e,t):(h=F.getBookmark(),f(F.getRng(Y)),F.moveToBookmark(h),m.inline&&v(e,t,F.getStart())&&P(F.getRng(!0)),r.nodeChanged()))}function h(e,t,n){var r=c(e);!v(e,t,n)||"toggle"in r[0]&&!r[0].toggle?p(e,t,n):m(e,t,n)}function g(e,t,n,r){function i(e,t,i){var o,a,s=t[i],l;if(t.onmatch)return t.onmatch(e,t,i);if(s)if(s.length===X){for(o in s)if(s.hasOwnProperty(o)){if(a="attributes"===i?I.getAttrib(e,o):_(e,o),r&&!a&&!t.exact)return;if((!r||t.exact)&&!w(a,N(E(s[o],n),o)))return}}else for(l=0;l<s.length;l++)if("attributes"===i?I.getAttrib(e,s[l]):_(e,s[l]))return t;return t}var o=c(t),a,s,l;if(o&&e)for(s=0;s<o.length;s++)if(a=o[s],x(e,a)&&i(e,a,"attributes")&&i(e,a,"styles")){if(l=a.classes)for(s=0;s<l.length;s++)if(!I.hasClass(e,l[s]))return;return a}}function v(e,t,n){function r(n){var r=I.getRoot();return n===r?!1:(n=I.getParent(n,function(n){return n.parentNode===r||!!g(n,e,t,!0)}),g(n,e,t))}var i;return n?r(n):(n=F.getNode(),r(n)?Y:(i=F.getStart(),i!=n&&r(i)?Y:K))}function y(e,t){var n,r=[],i={};return n=F.getStart(),I.getParent(n,function(n){var o,a;for(o=0;o<e.length;o++)a=e[o],!i[a]&&g(n,a,t)&&(i[a]=!0,r.push(a))},I.getRoot()),r}function b(e){var t=c(e),n,r,i,a,s;if(t)for(n=F.getStart(),r=o(n),a=t.length-1;a>=0;a--){if(s=t[a].selector,!s||t[a].defaultBlock)return Y;for(i=r.length-1;i>=0;i--)if(I.is(r[i],s))return Y}return K}function C(e,t,n){var i;return G||(G={},i={},r.on("NodeChange",function(e){var t=o(e.element),n={};et(G,function(e,r){et(t,function(o){return g(o,r,{},e.similar)?(i[r]||(et(e,function(e){e(!0,{node:o,format:r,parents:t})}),i[r]=e),n[r]=e,!1):void 0})}),et(i,function(r,o){n[o]||(delete i[o],et(r,function(n){n(!1,{node:e.element,format:o,parents:t})}))})})),et(e.split(","),function(e){G[e]||(G[e]=[],G[e].similar=n),G[e].push(t)}),this}function x(e,t){return w(e,t.inline)?Y:w(e,t.block)?Y:t.selector?1==e.nodeType&&I.is(e,t.selector):void 0}function w(e,t){return e=e||"",t=t||"",e=""+(e.nodeName||e),t=""+(t.nodeName||t),e.toLowerCase()==t.toLowerCase()}function _(e,t){return N(I.getStyle(e,t),t)}function N(e,t){return("color"==t||"backgroundColor"==t)&&(e=I.toHex(e)),"fontWeight"==t&&700==e&&(e="bold"),"fontFamily"==t&&(e=e.replace(/[\'\"]/g,"").replace(/,\s+/g,",")),""+e}function E(e,t){return"string"!=typeof e?e=e(t):t&&(e=e.replace(/%(\w+)/g,function(e,n){return t[n]||e})),e}function S(e){return e&&3===e.nodeType&&/^([\t \r\n]+|)$/.test(e.nodeValue)}function k(e,t,n){var r=I.create(t,n);return e.parentNode.insertBefore(r,e),r.appendChild(e),r}function T(t,n,a){function s(e){function t(e){return"BR"==e.nodeName&&e.getAttribute("data-mce-bogus")&&!e.nextSibling}var r,i,o,a,s;if(r=i=e?g:y,a=e?"previousSibling":"nextSibling",s=I.getRoot(),3==r.nodeType&&!S(r)&&(e?v>0:b<r.nodeValue.length))return r;for(;;){if(!n[0].block_expand&&V(i))return i;for(o=i[a];o;o=o[a])if(!L(o)&&!S(o)&&!t(o))return i;if(i.parentNode==s){r=i;break}i=i.parentNode}return r}function l(e,t){for(t===X&&(t=3===e.nodeType?e.length:e.childNodes.length);e&&e.hasChildNodes();)e=e.childNodes[t],e&&(t=3===e.nodeType?e.length:e.childNodes.length);return{node:e,offset:t}}function c(e){for(var t=e;t;){if(1===t.nodeType&&J(t))return"false"===J(t)?t:e;t=t.parentNode}return e}function u(t,n,i){function o(e,t){var n,r,o=e.nodeValue;return"undefined"==typeof t&&(t=i?o.length:0),i?(n=o.lastIndexOf(" ",t),r=o.lastIndexOf("\xa0",t),n=n>r?n:r,-1===n||a||n++):(n=o.indexOf(" ",t),r=o.indexOf("\xa0",t),n=-1!==n&&(-1===r||r>n)?n:r),n}var s,l,c,u;if(3===t.nodeType){if(c=o(t,n),-1!==c)return{container:t,offset:c};u=t}for(s=new e(t,I.getParent(t,V)||r.getBody());l=s[i?"prev":"next"]();)if(3===l.nodeType){if(u=l,c=o(l),-1!==c)return{container:l,offset:c}}else if(V(l))break;return u?(n=i?0:u.length,{container:u,offset:n}):void 0}function d(e,r){var i,a,s,l;for(3==e.nodeType&&0===e.nodeValue.length&&e[r]&&(e=e[r]),i=o(e),a=0;a<i.length;a++)for(s=0;s<n.length;s++)if(l=n[s],!("collapsed"in l&&l.collapsed!==t.collapsed)&&I.is(i[a],l.selector))return i[a];return e}function f(e,t){var r,a=I.getRoot();if(n[0].wrapper||(r=I.getParent(e,n[0].block,a)),r||(r=I.getParent(3==e.nodeType?e.parentNode:e,function(e){return e!=a&&i(e)})),r&&n[0].wrapper&&(r=o(r,"ul,ol").reverse()[0]||r),!r)for(r=e;r[t]&&!V(r[t])&&(r=r[t],!w(r,"br")););return r||e}var p,m,h,g=t.startContainer,v=t.startOffset,y=t.endContainer,b=t.endOffset;if(1==g.nodeType&&g.hasChildNodes()&&(p=g.childNodes.length-1,g=g.childNodes[v>p?p:v],3==g.nodeType&&(v=0)),1==y.nodeType&&y.hasChildNodes()&&(p=y.childNodes.length-1,y=y.childNodes[b>p?p:b-1],3==y.nodeType&&(b=y.nodeValue.length)),g=c(g),y=c(y),(L(g.parentNode)||L(g))&&(g=L(g)?g:g.parentNode,g=g.nextSibling||g,3==g.nodeType&&(v=0)),(L(y.parentNode)||L(y))&&(y=L(y)?y:y.parentNode,y=y.previousSibling||y,3==y.nodeType&&(b=y.length)),n[0].inline&&(t.collapsed&&(h=u(g,v,!0),h&&(g=h.container,v=h.offset),h=u(y,b),h&&(y=h.container,b=h.offset)),m=l(y,b),m.node)){for(;m.node&&0===m.offset&&m.node.previousSibling;)m=l(m.node.previousSibling);m.node&&m.offset>0&&3===m.node.nodeType&&" "===m.node.nodeValue.charAt(m.offset-1)&&m.offset>1&&(y=m.node,y.splitText(m.offset-1))}return(n[0].inline||n[0].block_expand)&&(n[0].inline&&3==g.nodeType&&0!==v||(g=s(!0)),n[0].inline&&3==y.nodeType&&b!==y.nodeValue.length||(y=s())),n[0].selector&&n[0].expand!==K&&!n[0].inline&&(g=d(g,"previousSibling"),y=d(y,"nextSibling")),(n[0].block||n[0].selector)&&(g=f(g,"previousSibling"),y=f(y,"nextSibling"),n[0].block&&(V(g)||(g=s(!0)),V(y)||(y=s()))),1==g.nodeType&&(v=q(g),g=g.parentNode),1==y.nodeType&&(b=q(y)+1,y=y.parentNode),{startContainer:g,startOffset:v,endContainer:y,endOffset:b}}function R(e,t,n,r){var i,o,a;if(!x(n,e))return K;if("all"!=e.remove)for(et(e.styles,function(e,i){e=N(E(e,t),i),"number"==typeof i&&(i=e,r=0),(!r||w(_(r,i),e))&&I.setStyle(n,i,""),a=1}),a&&""===I.getAttrib(n,"style")&&(n.removeAttribute("style"),n.removeAttribute("data-mce-style")),et(e.attributes,function(e,i){var o;if(e=E(e,t),"number"==typeof i&&(i=e,r=0),!r||w(I.getAttrib(r,i),e)){if("class"==i&&(e=I.getAttrib(n,i),e&&(o="",et(e.split(/\s+/),function(e){/mce\w+/.test(e)&&(o+=(o?" ":"")+e)}),o)))return void I.setAttrib(n,i,o);"class"==i&&n.removeAttribute("className"),j.test(i)&&n.removeAttribute("data-mce-"+i),n.removeAttribute(i)}}),et(e.classes,function(e){e=E(e,t),(!r||I.hasClass(r,e))&&I.removeClass(n,e)}),o=I.getAttribs(n),i=0;i<o.length;i++)if(0!==o[i].nodeName.indexOf("_"))return K;return"none"!=e.remove?(A(n,e),Y):void 0}function A(e,t){function n(e,t,n){return e=B(e,t,n),!e||"BR"==e.nodeName||V(e)}var i=e.parentNode,o;t.block&&(U?i==I.getRoot()&&(t.list_block&&w(e,t.list_block)||et(tt(e.childNodes),function(e){W(U,e.nodeName.toLowerCase())?o?o.appendChild(e):(o=k(e,U),I.setAttribs(o,r.settings.forced_root_block_attrs)):o=0})):V(e)&&!V(i)&&(n(e,K)||n(e.firstChild,Y,1)||e.insertBefore(I.create("br"),e.firstChild),n(e,Y)||n(e.lastChild,K,1)||e.appendChild(I.create("br")))),t.selector&&t.inline&&!w(t.inline,e)||I.remove(e,1)}function B(e,t,n){if(e)for(t=t?"nextSibling":"previousSibling",e=n?e:e[t];e;e=e[t])if(1==e.nodeType||!S(e))return e}function L(e){return e&&1==e.nodeType&&"bookmark"==e.getAttribute("data-mce-type")}function D(e,t){function n(e,t){function n(e){var t={};return et(I.getAttribs(e),function(n){var r=n.nodeName.toLowerCase();0!==r.indexOf("_")&&"style"!==r&&"data-mce-style"!==r&&(t[r]=I.getAttrib(e,r))}),t}function r(e,t){var n,r;for(r in e)if(e.hasOwnProperty(r)){if(n=t[r],n===X)return K;if(e[r]!=n)return K;delete t[r]}for(r in t)if(t.hasOwnProperty(r))return K;return Y}return e.nodeName!=t.nodeName?K:r(n(e),n(t))&&r(I.parseStyle(I.getAttrib(e,"style")),I.parseStyle(I.getAttrib(t,"style")))?!L(e)&&!L(t):K}function r(e,t){for(i=e;i;i=i[t]){if(3==i.nodeType&&0!==i.nodeValue.length)return e;if(1==i.nodeType&&!L(i))return i}return e}var i,o;if(e&&t&&(e=r(e,"previousSibling"),t=r(t,"nextSibling"),n(e,t))){for(i=e.nextSibling;i&&i!=t;)o=i,i=i.nextSibling,e.appendChild(o);return I.remove(t),et(tt(t.childNodes),function(t){e.appendChild(t)}),e}return t}function M(t,n){var i,o,a;return i=t[n?"startContainer":"endContainer"],o=t[n?"startOffset":"endOffset"],1==i.nodeType&&(a=i.childNodes.length-1,!n&&o&&o--,i=i.childNodes[o>a?a:o]),3===i.nodeType&&n&&o>=i.nodeValue.length&&(i=new e(i,r.getBody()).next()||i),3!==i.nodeType||n||0!==o||(i=new e(i,r.getBody()).prev()||i),i}function H(t,n,o){function a(e){var t=I.create("span",{id:y,"data-mce-bogus":!0,style:b?"color:red":""});return e&&t.appendChild(r.getDoc().createTextNode($)),t}function s(e,t){for(;e;){if(3===e.nodeType&&e.nodeValue!==$||e.childNodes.length>1)return!1;t&&1===e.nodeType&&t.push(e),e=e.firstChild}return!0}function l(e){for(;e;){if(e.id===y)return e;e=e.parentNode}}function u(t){var n;if(t)for(n=new e(t,t),t=n.current();t;t=n.next())if(3===t.nodeType)return t}function d(e,t){var n,r;if(e)r=F.getRng(!0),s(e)?(t!==!1&&(r.setStartBefore(e),r.setEndBefore(e)),I.remove(e)):(n=u(e),n.nodeValue.charAt(0)===$&&(n=n.deleteData(0,1)),I.remove(e,1)),F.setRng(r);else if(e=l(F.getStart()),!e)for(;e=I.get(y);)d(e,!1)}function f(){var e,t,r,i,s,d,f;e=F.getRng(!0),i=e.startOffset,d=e.startContainer,f=d.nodeValue,t=l(F.getStart()),t&&(r=u(t)),f&&i>0&&i<f.length&&/\w/.test(f.charAt(i))&&/\w/.test(f.charAt(i-1))?(s=F.getBookmark(),e.collapse(!0),e=T(e,c(n)),e=z.split(e),p(n,o,e),F.moveToBookmark(s)):(t&&r.nodeValue===$?p(n,o,t):(t=a(!0),r=t.firstChild,e.insertNode(t),i=1,p(n,o,t)),F.setCursorLocation(r,i))}function h(){var e=F.getRng(!0),t,r,s,l,u,d,f=[],p,h;for(t=e.startContainer,r=e.startOffset,u=t,3==t.nodeType&&((r!=t.nodeValue.length||t.nodeValue===$)&&(l=!0),u=u.parentNode);u;){if(g(u,n,o)){d=u;break}u.nextSibling&&(l=!0),f.push(u),u=u.parentNode}if(d)if(l)s=F.getBookmark(),e.collapse(!0),e=T(e,c(n),!0),e=z.split(e),m(n,o,e),F.moveToBookmark(s);else{for(h=a(),u=h,p=f.length-1;p>=0;p--)u.appendChild(I.clone(f[p],!1)),u=u.firstChild;u.appendChild(I.doc.createTextNode($)),u=u.firstChild;var v=I.getParent(d,i);v&&I.isEmpty(v)?d.parentNode.replaceChild(h,d):I.insertAfter(h,d),F.setCursorLocation(u,1),I.isEmpty(d)&&I.remove(d)}}function v(){var e;e=l(F.getStart()),e&&!I.isEmpty(e)&&nt(e,function(e){1!=e.nodeType||e.id===y||I.isEmpty(e)||I.setAttrib(e,"data-mce-bogus",null)},"childNodes")}var y="_mce_caret",b=r.settings.caret_debug;r._hasCaretEvents||(Z=function(){var e=[],t;if(s(l(F.getStart()),e))for(t=e.length;t--;)I.setAttrib(e[t],"data-mce-bogus","1")},Q=function(e){var t=e.keyCode;d(),(8==t||37==t||39==t)&&d(l(F.getStart())),v()},r.on("SetContent",function(e){e.selection&&v()}),r._hasCaretEvents=!0),"apply"==t?f():h()}function P(t){var n=t.startContainer,r=t.startOffset,i,o,a,s,l;if(3==n.nodeType&&r>=n.nodeValue.length&&(r=q(n),n=n.parentNode,i=!0),1==n.nodeType)for(s=n.childNodes,n=s[Math.min(r,s.length-1)],o=new e(n,I.getParent(n,I.isBlock)),(r>s.length-1||i)&&o.next(),a=o.current();a;a=o.next())if(3==a.nodeType&&!S(a))return l=I.create("a",null,$),a.parentNode.insertBefore(l,a),t.setStart(a,0),F.setRng(t),void I.remove(l)}var O={},I=r.dom,F=r.selection,z=new t(I),W=r.schema.isValidChild,V=I.isBlock,U=r.settings.forced_root_block,q=I.nodeIndex,$="\ufeff",j=/^(src|href|style)$/,K=!1,Y=!0,G,X,J=I.getContentEditable,Q,Z,et=n.each,tt=n.grep,nt=n.walk,rt=n.extend;rt(this,{get:c,register:u,apply:p,remove:m,toggle:h,match:v,matchAll:y,matchNode:g,canApply:b,formatChanged:C}),s(),l(),r.on("BeforeGetContent",function(){Z&&Z()}),r.on("mouseup keydown",function(e){Q&&Q(e)})}}),r(M,[g,p],function(e,t){var n=t.trim,r;return r=new RegExp(["<span[^>]+data-mce-bogus[^>]+>[\u200b\ufeff]+<\\/span>","<div[^>]+data-mce-bogus[^>]+><\\/div>",'\\s?data-mce-selected="[^"]+"'].join("|"),"gi"),function(t){function i(){return n(t.getContent({format:"raw",no_events:1}).replace(r,""))}function o(e){a.typing=!1,a.add({},e)}var a=this,s=0,l=[],c,u,d;return t.on("init",function(){a.add()}),t.on("BeforeExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&a.beforeChange()}),t.on("ExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&o(e)}),t.on("ObjectResizeStart",function(){a.beforeChange()}),t.on("SaveContent ObjectResized blur",o),t.dom.bind(t.dom.getRoot(),"dragend",o),t.on("KeyUp",function(n){var r=n.keyCode;(r>=33&&36>=r||r>=37&&40>=r||45==r||13==r||n.ctrlKey)&&(o(),t.nodeChanged()),(46==r||8==r||e.mac&&(91==r||93==r))&&t.nodeChanged(),u&&a.typing&&(t.isDirty()||(t.isNotDirty=!l[0]||i()==l[0].content,t.isNotDirty||t.fire("change",{level:l[0],lastLevel:null})),t.fire("TypingUndo"),u=!1,t.nodeChanged())}),t.on("KeyDown",function(e){var t=e.keyCode;return t>=33&&36>=t||t>=37&&40>=t||45==t?void(a.typing&&o(e)):void((16>t||t>20)&&224!=t&&91!=t&&!a.typing&&(a.beforeChange(),a.typing=!0,a.add({},e),u=!0))}),t.on("MouseDown",function(e){a.typing&&o(e)}),t.addShortcut("ctrl+z","","Undo"),t.addShortcut("ctrl+y,ctrl+shift+z","","Redo"),t.on("AddUndo Undo Redo ClearUndos MouseUp",function(e){e.isDefaultPrevented()||t.nodeChanged()}),a={data:l,typing:!1,beforeChange:function(){d||(c=t.selection.getBookmark(2,!0))},add:function(e,n){var r,o=t.settings,a;if(e=e||{},e.content=i(),d||t.removed)return null;if(t.fire("BeforeAddUndo",{level:e,originalEvent:n}).isDefaultPrevented())return null;if(a=l[s],a&&a.content==e.content)return null;if(l[s]&&(l[s].beforeBookmark=c),o.custom_undo_redo_levels&&l.length>o.custom_undo_redo_levels){for(r=0;r<l.length-1;r++)l[r]=l[r+1];l.length--,s=l.length}e.bookmark=t.selection.getBookmark(2,!0),s<l.length-1&&(l.length=s+1),l.push(e),s=l.length-1;var u={level:e,lastLevel:a,originalEvent:n};return t.fire("AddUndo",u),s>0&&(t.isNotDirty=!1,t.fire("change",u)),e},undo:function(){var e;return a.typing&&(a.add(),a.typing=!1),s>0&&(e=l[--s],0===s&&(t.isNotDirty=!0),t.setContent(e.content,{format:"raw"}),t.selection.moveToBookmark(e.beforeBookmark),t.fire("undo",{level:e})),e},redo:function(){var e;return s<l.length-1&&(e=l[++s],t.setContent(e.content,{format:"raw"}),t.selection.moveToBookmark(e.bookmark),t.fire("redo",{level:e})),e},clear:function(){l=[],s=0,a.typing=!1,t.fire("ClearUndos")},hasUndo:function(){return s>0||a.typing&&l[0]&&i()!=l[0].content},hasRedo:function(){return s<l.length-1&&!this.typing},transact:function(e){a.beforeChange(),d=!0,e(),d=!1,a.add()}}}}),r(H,[f,B,g],function(e,t,n){var r=n.ie&&n.ie<11;return function(i){function o(o){function f(e){return e&&a.isBlock(e)&&!/^(TD|TH|CAPTION|FORM)$/.test(e.nodeName)&&!/^(fixed|absolute)/i.test(e.style.position)&&"true"!==a.getContentEditable(e)}function p(e){var t;a.isBlock(e)&&(t=s.getRng(),e.appendChild(a.create("span",null,"\xa0")),s.select(e),e.lastChild.outerHTML="",s.setRng(t))}function m(e){for(var t=e,n=[],r;t=t.firstChild;){if(a.isBlock(t))return;1!=t.nodeType||d[t.nodeName.toLowerCase()]||n.push(t)}for(r=n.length;r--;)t=n[r],!t.hasChildNodes()||t.firstChild==t.lastChild&&""===t.firstChild.nodeValue?a.remove(t):"A"==t.nodeName&&" "===(t.innerText||t.textContent)&&a.remove(t)}function h(t){function r(e){for(;e;){if(1==e.nodeType||3==e.nodeType&&e.data&&/[\r\n\s]/.test(e.data))return e;e=e.nextSibling}}var i,o,l,c=t,u;if(n.ie&&n.ie<9&&B&&B.firstChild&&B.firstChild==B.lastChild&&"BR"==B.firstChild.tagName&&a.remove(B.firstChild),"LI"==t.nodeName){var f=r(t.firstChild);f&&/^(UL|OL)$/.test(f.nodeName)&&t.insertBefore(a.doc.createTextNode("\xa0"),t.firstChild)}if(l=a.createRng(),t.hasChildNodes()){for(i=new e(t,t);o=i.current();){if(3==o.nodeType){l.setStart(o,0),l.setEnd(o,0);break}if(d[o.nodeName.toLowerCase()]){l.setStartBefore(o),l.setEndBefore(o);break}c=o,o=i.next()}o||(l.setStart(c,0),l.setEnd(c,0))}else"BR"==t.nodeName?t.nextSibling&&a.isBlock(t.nextSibling)?((!L||9>L)&&(u=a.create("br"),t.parentNode.insertBefore(u,t)),l.setStartBefore(t),l.setEndBefore(t)):(l.setStartAfter(t),l.setEndAfter(t)):(l.setStart(t,0),l.setEnd(t,0));s.setRng(l),a.remove(u),s.scrollIntoView(t)}function g(e){var t=l.forced_root_block;t&&t.toLowerCase()===e.tagName.toLowerCase()&&a.setAttribs(e,l.forced_root_block_attrs)}function v(e){var t=R,n,i,o;if(e||"TABLE"==O?(n=a.create(e||F),g(n)):n=B.cloneNode(!1),o=n,l.keep_styles!==!1)do if(/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U|VAR|CITE|DFN|CODE|MARK|Q|SUP|SUB|SAMP)$/.test(t.nodeName)){if("_mce_caret"==t.id)continue;i=t.cloneNode(!1),a.setAttrib(i,"id",""),n.hasChildNodes()?(i.appendChild(n.firstChild),n.appendChild(i)):(o=i,n.appendChild(i))}while(t=t.parentNode);return r||(o.innerHTML='<br data-mce-bogus="1">'),n}function y(t){var n,r,i;if(3==R.nodeType&&(t?A>0:A<R.nodeValue.length))return!1;if(R.parentNode==B&&z&&!t)return!0;if(t&&1==R.nodeType&&R==B.firstChild)return!0;if("TABLE"===R.nodeName||R.previousSibling&&"TABLE"==R.previousSibling.nodeName)return z&&!t||!z&&t;for(n=new e(R,B),3==R.nodeType&&(t&&0===A?n.prev():t||A!=R.nodeValue.length||n.next());r=n.current();){if(1===r.nodeType){if(!r.getAttribute("data-mce-bogus")&&(i=r.nodeName.toLowerCase(),d[i]&&"br"!==i))return!1}else if(3===r.nodeType&&!/^[ \t\r\n]*$/.test(r.nodeValue))return!1;t?n.prev():n.next()}return!0}function b(e,t){var n,r,o,s,l,c,d=F||"P";if(r=a.getParent(e,a.isBlock),c=i.getBody().nodeName.toLowerCase(),!r||!f(r)){if(r=r||T,!r.hasChildNodes())return n=a.create(d),g(n),r.appendChild(n),S.setStart(n,0),S.setEnd(n,0),n;for(s=e;s.parentNode!=r;)s=s.parentNode;for(;s&&!a.isBlock(s);)o=s,s=s.previousSibling;if(o&&u.isValidChild(c,d.toLowerCase())){for(n=a.create(d),g(n),o.parentNode.insertBefore(n,o),s=o;s&&!a.isBlock(s);)l=s.nextSibling,n.appendChild(s),s=l;S.setStart(e,t),S.setEnd(e,t)}}return e}function C(){function e(e){for(var t=P[e?"firstChild":"lastChild"];t&&1!=t.nodeType;)t=t[e?"nextSibling":"previousSibling"];return t===B}function t(){var e=P.parentNode;return"LI"==e.nodeName?e:P}var n=P.parentNode.nodeName;/^(OL|UL|LI)$/.test(n)&&(F="LI"),M=F?v(F):a.create("BR"),e(!0)&&e()?"LI"==n?a.insertAfter(M,t()):a.replace(M,P):e(!0)?"LI"==n?(a.insertAfter(M,t()),M.appendChild(a.doc.createTextNode(" ")),M.appendChild(P)):P.parentNode.insertBefore(M,P):e()?(a.insertAfter(M,t()),p(M)):(P=t(),k=S.cloneRange(),k.setStartAfter(B),k.setEndAfter(P),H=k.extractContents(),"LI"==F&&"LI"==H.firstChild.nodeName?(M=H.firstChild,a.insertAfter(H,P)):(a.insertAfter(H,P),a.insertAfter(M,P))),a.remove(B),h(M),c.add()}function x(){for(var t=new e(R,B),n;n=t.next();)if(d[n.nodeName.toLowerCase()]||n.length>0)return!0}function w(){var e,t,n;R&&3==R.nodeType&&A>=R.nodeValue.length&&(r||x()||(e=a.create("br"),S.insertNode(e),S.setStartAfter(e),S.setEndAfter(e),t=!0)),e=a.create("br"),S.insertNode(e),r&&"PRE"==O&&(!L||8>L)&&e.parentNode.insertBefore(a.doc.createTextNode("\r"),e),n=a.create("span",{}," "),e.parentNode.insertBefore(n,e),s.scrollIntoView(n),a.remove(n),t?(S.setStartBefore(e),S.setEndBefore(e)):(S.setStartAfter(e),S.setEndAfter(e)),s.setRng(S),c.add()}function _(e){do 3===e.nodeType&&(e.nodeValue=e.nodeValue.replace(/^[\r\n]+/,"")),e=e.firstChild;while(e)}function N(e){var t=a.getRoot(),n,r;for(n=e;n!==t&&"false"!==a.getContentEditable(n);)"true"===a.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==t?r:t}function E(e){var t;r||(e.normalize(),t=e.lastChild,(!t||/^(left|right)$/gi.test(a.getStyle(t,"float",!0)))&&a.add(e,"br"))}var S,k,T,R,A,B,L,D,M,H,P,O,I,F,z;if(S=s.getRng(!0),!o.isDefaultPrevented()){if(!S.collapsed)return void i.execCommand("Delete");if(new t(a).normalize(S),R=S.startContainer,A=S.startOffset,F=(l.force_p_newlines?"p":"")||l.forced_root_block,F=F?F.toUpperCase():"",L=a.doc.documentMode,D=o.shiftKey,1==R.nodeType&&R.hasChildNodes()&&(z=A>R.childNodes.length-1,R=R.childNodes[Math.min(A,R.childNodes.length-1)]||R,A=z&&3==R.nodeType?R.nodeValue.length:0),T=N(R)){if(c.beforeChange(),!a.isBlock(T)&&T!=a.getRoot())return void((!F||D)&&w());if((F&&!D||!F&&D)&&(R=b(R,A)),B=a.getParent(R,a.isBlock),P=B?a.getParent(B.parentNode,a.isBlock):null,O=B?B.nodeName.toUpperCase():"",I=P?P.nodeName.toUpperCase():"","LI"!=I||o.ctrlKey||(B=P,O=I),"LI"==O){if(!F&&D)return void w();if(a.isEmpty(B))return void C()}if("PRE"==O&&l.br_in_pre!==!1){if(!D)return void w()}else if(!F&&!D&&"LI"!=O||F&&D)return void w();F&&B===i.getBody()||(F=F||"P",y()?(M=/^(H[1-6]|PRE|FIGURE)$/.test(O)&&"HGROUP"!=I?v(F):v(),l.end_container_on_empty_block&&f(P)&&a.isEmpty(B)?M=a.split(P,B):a.insertAfter(M,B),h(M)):y(!0)?(M=B.parentNode.insertBefore(v(),B),p(M),h(B)):(k=S.cloneRange(),k.setEndAfter(B),H=k.extractContents(),_(H),M=H.firstChild,a.insertAfter(H,B),m(M),E(B),h(M)),a.setAttrib(M,"id",""),i.fire("NewBlock",{newBlock:M}),c.add())}}}var a=i.dom,s=i.selection,l=i.settings,c=i.undoManager,u=i.schema,d=u.getNonEmptyElements();i.on("keydown",function(e){13==e.keyCode&&o(e)!==!1&&e.preventDefault()})}}),r(P,[],function(){return function(e){function t(){var t=i.getStart(),s=e.getBody(),l,c,u,d,f,p,m,h=-16777215,g,v,y,b,C;if(C=n.forced_root_block,t&&1===t.nodeType&&C){for(;t&&t!=s;){if(a[t.nodeName])return;t=t.parentNode}if(l=i.getRng(),l.setStart){c=l.startContainer,u=l.startOffset,d=l.endContainer,f=l.endOffset;try{v=e.getDoc().activeElement===s}catch(x){}}else l.item&&(t=l.item(0),l=e.getDoc().body.createTextRange(),l.moveToElementText(t)),v=l.parentElement().ownerDocument===e.getDoc(),y=l.duplicate(),y.collapse(!0),u=-1*y.move("character",h),y.collapsed||(y=l.duplicate(),y.collapse(!1),f=-1*y.move("character",h)-u);for(t=s.firstChild,b=s.nodeName.toLowerCase();t;)if((3===t.nodeType||1==t.nodeType&&!a[t.nodeName])&&o.isValidChild(b,C.toLowerCase())){if(3===t.nodeType&&0===t.nodeValue.length){m=t,t=t.nextSibling,r.remove(m);continue}p||(p=r.create(C,e.settings.forced_root_block_attrs),t.parentNode.insertBefore(p,t),g=!0),m=t,t=t.nextSibling,p.appendChild(m)}else p=null,t=t.nextSibling;if(g&&v){if(l.setStart)l.setStart(c,u),l.setEnd(d,f),i.setRng(l);else try{l=e.getDoc().body.createTextRange(),l.moveToElementText(s),l.collapse(!0),l.moveStart("character",u),f>0&&l.moveEnd("character",f),l.select()}catch(x){}e.nodeChanged()}}}var n=e.settings,r=e.dom,i=e.selection,o=e.schema,a=o.getBlockElements();n.forced_root_block&&e.on("NodeChange",t)}}),r(O,[S,g,p],function(e,n,r){var i=r.each,o=r.extend,a=r.map,s=r.inArray,l=r.explode,c=n.gecko,u=n.ie,d=!0,f=!1;return function(r){function p(e,t,n){var r;return e=e.toLowerCase(),(r=N.exec[e])?(r(e,t,n),d):f}function m(e){var t;return e=e.toLowerCase(),(t=N.state[e])?t(e):-1}function h(e){var t;return e=e.toLowerCase(),(t=N.value[e])?t(e):f}function g(e,t){t=t||"exec",i(e,function(e,n){i(n.toLowerCase().split(","),function(n){N[t][n]=e})})}function v(e,n,i){return n===t&&(n=f),i===t&&(i=null),r.getDoc().execCommand(e,n,i)}function y(e){return S.match(e)}function b(e,n){S.toggle(e,n?{value:n}:t),r.nodeChanged()}function C(e){k=_.getBookmark(e)}function x(){_.moveToBookmark(k)}var w=r.dom,_=r.selection,N={state:{},exec:{},value:{}},E=r.settings,S=r.formatter,k;o(this,{execCommand:p,queryCommandState:m,queryCommandValue:h,addCommands:g}),g({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){r.undoManager.add()},"Cut,Copy,Paste":function(e){var t=r.getDoc(),i;try{v(e)}catch(o){i=d}if(i||!t.queryCommandSupported(e)){var a=r.translate("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.");n.mac&&(a=a.replace(/Ctrl\+/g,"\u2318+")),r.windowManager.alert(a)}},unlink:function(){if(_.isCollapsed()){var e=_.getNode();return void("A"==e.tagName&&r.dom.remove(e,!0))}S.remove("link")},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t=e.substring(7);"full"==t&&(t="justify"),i("left,center,right,justify".split(","),function(e){t!=e&&S.remove("align"+e)}),b("align"+t),p("mceRepaint")},"InsertUnorderedList,InsertOrderedList":function(e){var t,n;v(e),t=w.getParent(_.getNode(),"ol,ul"),t&&(n=t.parentNode,/^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName)&&(C(),w.split(n,t),x()))},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){b(e)},"ForeColor,HiliteColor,FontName":function(e,t,n){b(e,n)},FontSize:function(e,t,n){var r,i;n>=1&&7>=n&&(i=l(E.font_size_style_values),r=l(E.font_size_classes),n=r?r[n-1]||n:i[n-1]||n),b(e,n)},RemoveFormat:function(e){S.remove(e)},mceBlockQuote:function(){b("blockquote")},FormatBlock:function(e,t,n){return b(n||"p")},mceCleanup:function(){var e=_.getBookmark();r.setContent(r.getContent({cleanup:d}),{cleanup:d}),_.moveToBookmark(e)},mceRemoveNode:function(e,t,n){var i=n||_.getNode();i!=r.getBody()&&(C(),r.dom.remove(i,d),x())},mceSelectNodeDepth:function(e,t,n){var i=0;w.getParent(_.getNode(),function(e){return 1==e.nodeType&&i++==n?(_.select(e),f):void 0},r.getBody())},mceSelectNode:function(e,t,n){_.select(n)},mceInsertContent:function(t,n,i){function o(e){function t(e){return r[e]&&3==r[e].nodeType}var n,r,i;return n=_.getRng(!0),r=n.startContainer,i=n.startOffset,3==r.nodeType&&(i>0?e=e.replace(/^ /," "):t("previousSibling")||(e=e.replace(/^ /," ")),i<r.length?e=e.replace(/ (<br>|)$/," "):t("nextSibling")||(e=e.replace(/( | )(<br>|)$/," "))),e}var a,s,l,c,d,f,p,m,h,g,v;/^ | $/.test(i)&&(i=o(i)),a=r.parser,s=new e({},r.schema),v='<span id="mce_marker" data-mce-type="bookmark">ÈB;</span>',f={content:i,format:"html",selection:!0},r.fire("BeforeSetContent",f),i=f.content,-1==i.indexOf("{$caret}")&&(i+="{$caret}"),i=i.replace(/\{\$caret\}/,v),m=_.getRng();var y=m.startContainer||(m.parentElement?m.parentElement():null),b=r.getBody();y===b&&_.isCollapsed()&&w.isBlock(b.firstChild)&&w.isEmpty(b.firstChild)&&(m=w.createRng(),m.setStart(b.firstChild,0),m.setEnd(b.firstChild,0),_.setRng(m)),_.isCollapsed()||r.getDoc().execCommand("Delete",!1,null),l=_.getNode();var C={context:l.nodeName.toLowerCase()};if(d=a.parse(i,C),h=d.lastChild,"mce_marker"==h.attr("id"))for(p=h,h=h.prev;h;h=h.walk(!0))if(3==h.type||!w.isBlock(h.name)){h.parent.insert(p,h,"br"===h.name);break}if(C.invalid){for(_.setContent(v),l=_.getNode(),c=r.getBody(),9==l.nodeType?l=h=c:h=l;h!==c;)l=h,h=h.parentNode;i=l==c?c.innerHTML:w.getOuterHTML(l),i=s.serialize(a.parse(i.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i,function(){return s.serialize(d)}))),l==c?w.setHTML(c,i):w.setOuterHTML(l,i)}else i=s.serialize(d),h=l.firstChild,g=l.lastChild,!h||h===g&&"BR"===h.nodeName?w.setHTML(l,i):_.setContent(i);p=w.get("mce_marker"),_.scrollIntoView(p),m=w.createRng(),h=p.previousSibling,h&&3==h.nodeType?(m.setStart(h,h.nodeValue.length),u||(g=p.nextSibling,g&&3==g.nodeType&&(h.appendData(g.data),g.parentNode.removeChild(g)))):(m.setStartBefore(p),m.setEndBefore(p)),w.remove(p),_.setRng(m),r.fire("SetContent",f),r.addVisual()},mceInsertRawHTML:function(e,t,n){_.setContent("tiny_mce_marker"),r.setContent(r.getContent().replace(/tiny_mce_marker/g,function(){return n}))},mceToggleFormat:function(e,t,n){b(n)},mceSetContent:function(e,t,n){r.setContent(n)},"Indent,Outdent":function(e){var t,n,o;t=E.indentation,n=/[a-z%]+$/i.exec(t),t=parseInt(t,10),m("InsertUnorderedList")||m("InsertOrderedList")?v(e):(E.forced_root_block||w.getParent(_.getNode(),w.isBlock)||S.apply("div"),i(_.getSelectedBlocks(),function(i){if("LI"!=i.nodeName){var a=r.getParam("indent_use_margin",!1)?"margin":"padding";a+="rtl"==w.getStyle(i,"direction",!0)?"Right":"Left","outdent"==e?(o=Math.max(0,parseInt(i.style[a]||0,10)-t),w.setStyle(i,a,o?o+n:"")):(o=parseInt(i.style[a]||0,10)+t+n,w.setStyle(i,a,o))}}))},mceRepaint:function(){if(c)try{C(d),_.getSel()&&_.getSel().selectAllChildren(r.getBody()),_.collapse(d),x()}catch(e){}},InsertHorizontalRule:function(){r.execCommand("mceInsertContent",!1,"<hr />")},mceToggleVisualAid:function(){r.hasVisual=!r.hasVisual,r.addVisual()},mceReplaceContent:function(e,t,n){r.execCommand("mceInsertContent",!1,n.replace(/\{\$selection\}/g,_.getContent({format:"text"})))},mceInsertLink:function(e,t,n){var r;"string"==typeof n&&(n={href:n}),r=w.getParent(_.getNode(),"a"),n.href=n.href.replace(" ","%20"),r&&n.href||S.remove("link"),n.href&&S.apply("link",n,r)},selectAll:function(){var e=w.getRoot(),t;_.getRng().setStart?(t=w.createRng(),t.setStart(e,0),t.setEnd(e,e.childNodes.length),_.setRng(t)):(t=_.getRng(),t.item||(t.moveToElementText(e),t.select()))},"delete":function(){v("Delete");var e=r.getBody();w.isEmpty(e)&&(r.setContent(""),e.firstChild&&w.isBlock(e.firstChild)?r.selection.setCursorLocation(e.firstChild,0):r.selection.setCursorLocation(e,0))},mceNewDocument:function(){r.setContent("")}}),g({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t="align"+e.substring(7),n=_.isCollapsed()?[w.getParent(_.getNode(),w.isBlock)]:_.getSelectedBlocks(),r=a(n,function(e){return!!S.matchNode(e,t)});return-1!==s(r,d)},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){return y(e)},mceBlockQuote:function(){return y("blockquote")},Outdent:function(){var e;if(E.inline_styles){if((e=w.getParent(_.getStart(),w.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return d;if((e=w.getParent(_.getEnd(),w.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return d}return m("InsertUnorderedList")||m("InsertOrderedList")||!E.inline_styles&&!!w.getParent(_.getNode(),"BLOCKQUOTE")},"InsertUnorderedList,InsertOrderedList":function(e){var t=w.getParent(_.getNode(),"ul,ol");return t&&("insertunorderedlist"===e&&"UL"===t.tagName||"insertorderedlist"===e&&"OL"===t.tagName)}},"state"),g({"FontSize,FontName":function(e){var t=0,n;return(n=w.getParent(_.getNode(),"span"))&&(t="fontsize"==e?n.style.fontSize:n.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()),t}},"value"),g({Undo:function(){r.undoManager.undo()},Redo:function(){r.undoManager.redo()}})}}),r(I,[p],function(e){function t(e,i){var o=this,a,s;if(e=r(e),i=o.settings=i||{},/^([\w\-]+):([^\/]{2})/i.test(e)||/^\s*#/.test(e))return void(o.source=e);var l=0===e.indexOf("//");0!==e.indexOf("/")||l||(e=(i.base_uri?i.base_uri.protocol||"http":"http")+"://mce_host"+e),/^[\w\-]*:?\/\//.test(e)||(s=i.base_uri?i.base_uri.path:new t(location.href).directory,e=""===i.base_uri.protocol?"//mce_host"+o.toAbsPath(s,e):(i.base_uri&&i.base_uri.protocol||"http")+"://mce_host"+o.toAbsPath(s,e)),e=e.replace(/@@/g,"(mce_at)"),e=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e),n(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],function(t,n){var r=e[n];r&&(r=r.replace(/\(mce_at\)/g,"@@")),o[t]=r}),a=i.base_uri,a&&(o.protocol||(o.protocol=a.protocol),o.userInfo||(o.userInfo=a.userInfo),o.port||"mce_host"!==o.host||(o.port=a.port),o.host&&"mce_host"!==o.host||(o.host=a.host),o.source=""),l&&(o.protocol="")}var n=e.each,r=e.trim;return t.prototype={setPath:function(e){var t=this;e=/^(.*?)\/?(\w+)?$/.exec(e),t.path=e[0],t.directory=e[1],t.file=e[2],t.source="",t.getURI()},toRelative:function(e){var n=this,r;if("./"===e)return e;if(e=new t(e,{base_uri:n}),"mce_host"!=e.host&&n.host!=e.host&&e.host||n.port!=e.port||n.protocol!=e.protocol&&""!==e.protocol)return e.getURI();var i=n.getURI(),o=e.getURI();return i==o||"/"==i.charAt(i.length-1)&&i.substr(0,i.length-1)==o?i:(r=n.toRelPath(n.path,e.path),e.query&&(r+="?"+e.query),e.anchor&&(r+="#"+e.anchor),r)},toAbsolute:function(e,n){return e=new t(e,{base_uri:this}),e.getURI(this.host==e.host&&this.protocol==e.protocol?n:0)},toRelPath:function(e,t){var n,r=0,i="",o,a;if(e=e.substring(0,e.lastIndexOf("/")),e=e.split("/"),n=t.split("/"),e.length>=n.length)for(o=0,a=e.length;a>o;o++)if(o>=n.length||e[o]!=n[o]){r=o+1;break}if(e.length<n.length)for(o=0,a=n.length;a>o;o++)if(o>=e.length||e[o]!=n[o]){r=o+1;break}if(1===r)return t;for(o=0,a=e.length-(r-1);a>o;o++)i+="../";for(o=r-1,a=n.length;a>o;o++)i+=o!=r-1?"/"+n[o]:n[o]; +return i},toAbsPath:function(e,t){var r,i=0,o=[],a,s;for(a=/\/$/.test(t)?"/":"",e=e.split("/"),t=t.split("/"),n(e,function(e){e&&o.push(e)}),e=o,r=t.length-1,o=[];r>=0;r--)0!==t[r].length&&"."!==t[r]&&(".."!==t[r]?i>0?i--:o.push(t[r]):i++);return r=e.length-i,s=0>=r?o.reverse().join("/"):e.slice(0,r).join("/")+"/"+o.reverse().join("/"),0!==s.indexOf("/")&&(s="/"+s),a&&s.lastIndexOf("/")!==s.length-1&&(s+=a),s},getURI:function(e){var t,n=this;return(!n.source||e)&&(t="",e||(t+=n.protocol?n.protocol+"://":"//",n.userInfo&&(t+=n.userInfo+"@"),n.host&&(t+=n.host),n.port&&(t+=":"+n.port)),n.path&&(t+=n.path),n.query&&(t+="?"+n.query),n.anchor&&(t+="#"+n.anchor),n.source=t),n.source}},t}),r(F,[p],function(e){function t(){}var n=e.each,r=e.extend,i,o;return t.extend=i=function(e){function t(){var e,t,n,r=this;if(!o&&(r.init&&r.init.apply(r,arguments),t=r.Mixins))for(e=t.length;e--;)n=t[e],n.init&&n.init.apply(r,arguments)}function a(){return this}function s(e,t){return function(){var n=this,r=n._super,i;return n._super=c[e],i=t.apply(n,arguments),n._super=r,i}}var l=this,c=l.prototype,u,d,f;o=!0,u=new l,o=!1,e.Mixins&&(n(e.Mixins,function(t){t=t;for(var n in t)"init"!==n&&(e[n]=t[n])}),c.Mixins&&(e.Mixins=c.Mixins.concat(e.Mixins))),e.Methods&&n(e.Methods.split(","),function(t){e[t]=a}),e.Properties&&n(e.Properties.split(","),function(t){var n="_"+t;e[t]=function(e){var t=this,r;return e!==r?(t[n]=e,t):t[n]}}),e.Statics&&n(e.Statics,function(e,n){t[n]=e}),e.Defaults&&c.Defaults&&(e.Defaults=r({},c.Defaults,e.Defaults));for(d in e)f=e[d],u[d]="function"==typeof f&&c[d]?s(d,f):f;return t.prototype=u,t.constructor=t,t.extend=i,t},t}),r(z,[F],function(e){function t(e){for(var t=[],n=e.length,r;n--;)r=e[n],r.__checked||(t.push(r),r.__checked=1);for(n=t.length;n--;)delete t[n].__checked;return t}var n=/^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i,r=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,i=/^\s*|\s*$/g,o,a=e.extend({init:function(e){function t(e){return e?(e=e.toLowerCase(),function(t){return"*"===e||t.type===e}):void 0}function o(e){return e?function(t){return t._name===e}:void 0}function a(e){return e?(e=e.split("."),function(t){for(var n=e.length;n--;)if(!t.hasClass(e[n]))return!1;return!0}):void 0}function s(e,t,n){return e?function(r){var i=r[e]?r[e]():"";return t?"="===t?i===n:"*="===t?i.indexOf(n)>=0:"~="===t?(" "+i+" ").indexOf(" "+n+" ")>=0:"!="===t?i!=n:"^="===t?0===i.indexOf(n):"$="===t?i.substr(i.length-n.length)===n:!1:!!n}:void 0}function l(e){var t;return e?(e=/(?:not\((.+)\))|(.+)/i.exec(e),e[1]?(t=u(e[1],[]),function(e){return!d(e,t)}):(e=e[2],function(t,n,r){return"first"===e?0===n:"last"===e?n===r-1:"even"===e?n%2===0:"odd"===e?n%2===1:t[e]?t[e]():!1})):void 0}function c(e,r,c){function u(e){e&&r.push(e)}var d;return d=n.exec(e.replace(i,"")),u(t(d[1])),u(o(d[2])),u(a(d[3])),u(s(d[4],d[5],d[6])),u(l(d[7])),r.psuedo=!!d[7],r.direct=c,r}function u(e,t){var n=[],i,o,a;do if(r.exec(""),o=r.exec(e),o&&(e=o[3],n.push(o[1]),o[2])){i=o[3];break}while(o);for(i&&u(i,t),e=[],a=0;a<n.length;a++)">"!=n[a]&&e.push(c(n[a],[],">"===n[a-1]));return t.push(e),t}var d=this.match;this._selectors=u(e,[])},match:function(e,t){var n,r,i,o,a,s,l,c,u,d,f,p,m;for(t=t||this._selectors,n=0,r=t.length;r>n;n++){for(a=t[n],o=a.length,m=e,p=0,i=o-1;i>=0;i--)for(c=a[i];m;){if(c.psuedo)for(f=m.parent().items(),u=d=f.length;u--&&f[u]!==m;);for(s=0,l=c.length;l>s;s++)if(!c[s](m,u,d)){s=l+1;break}if(s===l){p++;break}if(i===o-1)break;m=m.parent()}if(p===o)return!0}return!1},find:function(e){function n(e,t,i){var o,a,s,l,c,u=t[i];for(o=0,a=e.length;a>o;o++){for(c=e[o],s=0,l=u.length;l>s;s++)if(!u[s](c,o,a)){s=l+1;break}if(s===l)i==t.length-1?r.push(c):c.items&&n(c.items(),t,i+1);else if(u.direct)return;c.items&&n(c.items(),t,i)}}var r=[],i,s,l=this._selectors;if(e.items){for(i=0,s=l.length;s>i;i++)n(e.items(),l[i],0);s>1&&(r=t(r))}return o||(o=a.Collection),new o(r)}});return a}),r(W,[p,z,F],function(e,t,n){var r,i,o=Array.prototype.push,a=Array.prototype.slice;return i={length:0,init:function(e){e&&this.add(e)},add:function(t){var n=this;return e.isArray(t)?o.apply(n,t):t instanceof r?n.add(t.toArray()):o.call(n,t),n},set:function(e){var t=this,n=t.length,r;for(t.length=0,t.add(e),r=t.length;n>r;r++)delete t[r];return t},filter:function(e){var n=this,i,o,a=[],s,l;for("string"==typeof e?(e=new t(e),l=function(t){return e.match(t)}):l=e,i=0,o=n.length;o>i;i++)s=n[i],l(s)&&a.push(s);return new r(a)},slice:function(){return new r(a.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},each:function(t){return e.each(this,t),this},toArray:function(){return e.toArray(this)},indexOf:function(e){for(var t=this,n=t.length;n--&&t[n]!==e;);return n},reverse:function(){return new r(e.toArray(this).reverse())},hasClass:function(e){return this[0]?this[0].hasClass(e):!1},prop:function(e,t){var n=this,r,i;return t!==r?(n.each(function(n){n[e]&&n[e](t)}),n):(i=n[0],i&&i[e]?i[e]():void 0)},exec:function(t){var n=this,r=e.toArray(arguments).slice(1);return n.each(function(e){e[t]&&e[t].apply(e,r)}),n},remove:function(){for(var e=this.length;e--;)this[e].remove();return this}},e.each("fire on off show hide addClass removeClass append prepend before after reflow".split(" "),function(t){i[t]=function(){var n=e.toArray(arguments);return this.each(function(e){t in e&&e[t].apply(e,n)}),this}}),e.each("text name disabled active selected checked visible parent value data".split(" "),function(e){i[e]=function(t){return this.prop(e,t)}}),r=n.extend(i),t.Collection=r,r}),r(V,[p,y],function(e,t){return{id:function(){return t.DOM.uniqueId()},createFragment:function(e){return t.DOM.createFragment(e)},getWindowSize:function(){return t.DOM.getViewPort()},getSize:function(e){var t,n;if(e.getBoundingClientRect){var r=e.getBoundingClientRect();t=Math.max(r.width||r.right-r.left,e.offsetWidth),n=Math.max(r.height||r.bottom-r.bottom,e.offsetHeight)}else t=e.offsetWidth,n=e.offsetHeight;return{width:t,height:n}},getPos:function(e,n){return t.DOM.getPos(e,n)},getViewPort:function(e){return t.DOM.getViewPort(e)},get:function(e){return document.getElementById(e)},addClass:function(e,n){return t.DOM.addClass(e,n)},removeClass:function(e,n){return t.DOM.removeClass(e,n)},hasClass:function(e,n){return t.DOM.hasClass(e,n)},toggleClass:function(e,n,r){return t.DOM.toggleClass(e,n,r)},css:function(e,n,r){return t.DOM.setStyle(e,n,r)},on:function(e,n,r,i){return t.DOM.bind(e,n,r,i)},off:function(e,n,r){return t.DOM.unbind(e,n,r)},fire:function(e,n,r){return t.DOM.fire(e,n,r)},innerHtml:function(e,n){t.DOM.setHTML(e,n)}}}),r(U,[F,p,W,V],function(e,t,n,r){var i=t.makeMap("focusin focusout scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave wheel keydown keypress keyup contextmenu"," "),o={},a="onmousewheel"in document,s=!1,l=e.extend({Statics:{elementIdCache:o},isRtl:function(){return l.rtl},classPrefix:"mce-",init:function(e){var n=this,i,o;if(n.settings=e=t.extend({},n.Defaults,e),n._id=e.id||r.id(),n._text=n._name="",n._width=n._height=0,n._aria={role:e.role},i=e.classes)for(i=i.split(" "),i.map={},o=i.length;o--;)i.map[i[o]]=!0;n._classes=i||[],n.visible(!0),t.each("title text width height name classes visible disabled active value".split(" "),function(t){var r=e[t],i;r!==i?n[t](r):n["_"+t]===i&&(n["_"+t]=!1)}),n.on("click",function(){return n.disabled()?!1:void 0}),e.classes&&t.each(e.classes.split(" "),function(e){n.addClass(e)}),n.settings=e,n._borderBox=n.parseBox(e.border),n._paddingBox=n.parseBox(e.padding),n._marginBox=n.parseBox(e.margin),e.hidden&&n.hide()},Properties:"parent,title,text,width,height,disabled,active,name,value",Methods:"renderHtml",getContainerElm:function(){return document.body},getParentCtrl:function(e){for(var t,n=this.getRoot().controlIdLookup;e&&n&&!(t=n[e.id]);)e=e.parentNode;return t},parseBox:function(e){var t,n=10;if(e)return"number"==typeof e?(e=e||0,{top:e,left:e,bottom:e,right:e}):(e=e.split(" "),t=e.length,1===t?e[1]=e[2]=e[3]=e[0]:2===t?(e[2]=e[0],e[3]=e[1]):3===t&&(e[3]=e[1]),{top:parseInt(e[0],n)||0,right:parseInt(e[1],n)||0,bottom:parseInt(e[2],n)||0,left:parseInt(e[3],n)||0})},borderBox:function(){return this._borderBox},paddingBox:function(){return this._paddingBox},marginBox:function(){return this._marginBox},measureBox:function(e,t){function n(t){var n=document.defaultView;return n?(t=t.replace(/[A-Z]/g,function(e){return"-"+e}),n.getComputedStyle(e,null).getPropertyValue(t)):e.currentStyle[t]}function r(e){var t=parseFloat(n(e),10);return isNaN(t)?0:t}return{top:r(t+"TopWidth"),right:r(t+"RightWidth"),bottom:r(t+"BottomWidth"),left:r(t+"LeftWidth")}},initLayoutRect:function(){var e=this,t=e.settings,n,i,o=e.getEl(),a,s,l,c,u,d,f,p;n=e._borderBox=e._borderBox||e.measureBox(o,"border"),e._paddingBox=e._paddingBox||e.measureBox(o,"padding"),e._marginBox=e._marginBox||e.measureBox(o,"margin"),p=r.getSize(o),d=t.minWidth,f=t.minHeight,l=d||p.width,c=f||p.height,a=t.width,s=t.height,u=t.autoResize,u="undefined"!=typeof u?u:!a&&!s,a=a||l,s=s||c;var m=n.left+n.right,h=n.top+n.bottom,g=t.maxWidth||65535,v=t.maxHeight||65535;return e._layoutRect=i={x:t.x||0,y:t.y||0,w:a,h:s,deltaW:m,deltaH:h,contentW:a-m,contentH:s-h,innerW:a-m,innerH:s-h,startMinWidth:d||0,startMinHeight:f||0,minW:Math.min(l,g),minH:Math.min(c,v),maxW:g,maxH:v,autoResize:u,scrollW:0},e._lastLayoutRect={},i},layoutRect:function(e){var t=this,n=t._layoutRect,r,i,o,a,s,c;return n||(n=t.initLayoutRect()),e?(o=n.deltaW,a=n.deltaH,e.x!==s&&(n.x=e.x),e.y!==s&&(n.y=e.y),e.minW!==s&&(n.minW=e.minW),e.minH!==s&&(n.minH=e.minH),i=e.w,i!==s&&(i=i<n.minW?n.minW:i,i=i>n.maxW?n.maxW:i,n.w=i,n.innerW=i-o),i=e.h,i!==s&&(i=i<n.minH?n.minH:i,i=i>n.maxH?n.maxH:i,n.h=i,n.innerH=i-a),i=e.innerW,i!==s&&(i=i<n.minW-o?n.minW-o:i,i=i>n.maxW-o?n.maxW-o:i,n.innerW=i,n.w=i+o),i=e.innerH,i!==s&&(i=i<n.minH-a?n.minH-a:i,i=i>n.maxH-a?n.maxH-a:i,n.innerH=i,n.h=i+a),e.contentW!==s&&(n.contentW=e.contentW),e.contentH!==s&&(n.contentH=e.contentH),r=t._lastLayoutRect,(r.x!==n.x||r.y!==n.y||r.w!==n.w||r.h!==n.h)&&(c=l.repaintControls,c&&c.map&&!c.map[t._id]&&(c.push(t),c.map[t._id]=!0),r.x=n.x,r.y=n.y,r.w=n.w,r.h=n.h),t):n},repaint:function(){var e=this,t,n,r,i,o=0,a=0,s,l;l=document.createRange?function(e){return e}:Math.round,t=e.getEl().style,r=e._layoutRect,s=e._lastRepaintRect||{},i=e._borderBox,o=i.left+i.right,a=i.top+i.bottom,r.x!==s.x&&(t.left=l(r.x)+"px",s.x=r.x),r.y!==s.y&&(t.top=l(r.y)+"px",s.y=r.y),r.w!==s.w&&(t.width=l(r.w-o)+"px",s.w=r.w),r.h!==s.h&&(t.height=l(r.h-a)+"px",s.h=r.h),e._hasBody&&r.innerW!==s.innerW&&(n=e.getEl("body").style,n.width=l(r.innerW)+"px",s.innerW=r.innerW),e._hasBody&&r.innerH!==s.innerH&&(n=n||e.getEl("body").style,n.height=l(r.innerH)+"px",s.innerH=r.innerH),e._lastRepaintRect=s,e.fire("repaint",{},!1)},on:function(e,t){function n(e){var t,n;return function(i){return t||r.parents().each(function(r){var i=r.settings.callbacks;return i&&(t=i[e])?(n=r,!1):void 0}),t.call(n,i)}}var r=this,o,a,s,l;if(t)for("string"==typeof t&&(t=n(t)),s=e.toLowerCase().split(" "),l=s.length;l--;)e=s[l],o=r._bindings,o||(o=r._bindings={}),a=o[e],a||(a=o[e]=[]),a.push(t),i[e]&&(r._nativeEvents?r._nativeEvents[e]=!0:r._nativeEvents={name:!0},r._rendered&&r.bindPendingEvents());return r},off:function(e,t){var n=this,r,i=n._bindings,o,a,s,l;if(i)if(e)for(s=e.toLowerCase().split(" "),r=s.length;r--;){if(e=s[r],o=i[e],!e){for(a in i)i[a].length=0;return n}if(o)if(t)for(l=o.length;l--;)o[l]===t&&o.splice(l,1);else o.length=0}else n._bindings=[];return n},fire:function(e,t,n){function r(){return!1}function i(){return!0}var o=this,a,s,l,c;if(e=e.toLowerCase(),t=t||{},t.type||(t.type=e),t.control||(t.control=o),t.preventDefault||(t.preventDefault=function(){t.isDefaultPrevented=i},t.stopPropagation=function(){t.isPropagationStopped=i},t.stopImmediatePropagation=function(){t.isImmediatePropagationStopped=i},t.isDefaultPrevented=r,t.isPropagationStopped=r,t.isImmediatePropagationStopped=r),o._bindings&&(l=o._bindings[e]))for(a=0,s=l.length;s>a&&(t.isImmediatePropagationStopped()||l[a].call(o,t)!==!1);a++);if(n!==!1)for(c=o.parent();c&&!t.isPropagationStopped();)c.fire(e,t,!1),c=c.parent();return t},hasEventListeners:function(e){return e in this._bindings},parents:function(e){var t=this,r,i=new n;for(r=t.parent();r;r=r.parent())i.add(r);return e&&(i=i.filter(e)),i},next:function(){var e=this.parent().items();return e[e.indexOf(this)+1]},prev:function(){var e=this.parent().items();return e[e.indexOf(this)-1]},findCommonAncestor:function(e,t){for(var n;e;){for(n=t;n&&e!=n;)n=n.parent();if(e==n)break;e=e.parent()}return e},hasClass:function(e,t){var n=this._classes[t||"control"];return e=this.classPrefix+e,n&&!!n.map[e]},addClass:function(e,t){var n=this,r,i;return e=this.classPrefix+e,r=n._classes[t||"control"],r||(r=[],r.map={},n._classes[t||"control"]=r),r.map[e]||(r.map[e]=e,r.push(e),n._rendered&&(i=n.getEl(t),i&&(i.className=r.join(" ")))),n},removeClass:function(e,t){var n=this,r,i,o;if(e=this.classPrefix+e,r=n._classes[t||"control"],r&&r.map[e])for(delete r.map[e],i=r.length;i--;)r[i]===e&&r.splice(i,1);return n._rendered&&(o=n.getEl(t),o&&(o.className=r.join(" "))),n},toggleClass:function(e,t,n){var r=this;return t?r.addClass(e,n):r.removeClass(e,n),r},classes:function(e){var t=this._classes[e||"control"];return t?t.join(" "):""},innerHtml:function(e){return r.innerHtml(this.getEl(),e),this},getEl:function(e,t){var n,i=e?this._id+"-"+e:this._id;return n=o[i]=(t===!0?null:o[i])||r.get(i)},visible:function(e){var t=this,n;return"undefined"!=typeof e?(t._visible!==e&&(t._rendered&&(t.getEl().style.display=e?"":"none"),t._visible=e,n=t.parent(),n&&(n._lastRect=null),t.fire(e?"show":"hide")),t):t._visible},show:function(){return this.visible(!0)},hide:function(){return this.visible(!1)},focus:function(){try{this.getEl().focus()}catch(e){}return this},blur:function(){return this.getEl().blur(),this},aria:function(e,t){var n=this,r=n.getEl(n.ariaTarget);return"undefined"==typeof t?n._aria[e]:(n._aria[e]=t,n._rendered&&r.setAttribute("role"==e?e:"aria-"+e,t),n)},encode:function(e,t){return t!==!1&&l.translate&&(e=l.translate(e)),(e||"").replace(/[&<>"]/g,function(e){return"&#"+e.charCodeAt(0)+";"})},before:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t),!0),t},after:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t)),t},remove:function(){var e=this,t=e.getEl(),n=e.parent(),i,a;if(e.items){var s=e.items().toArray();for(a=s.length;a--;)s[a].remove()}n&&n.items&&(i=[],n.items().each(function(t){t!==e&&i.push(t)}),n.items().set(i),n._lastRect=null),e._eventsRoot&&e._eventsRoot==e&&r.off(t);var l=e.getRoot().controlIdLookup;if(l&&delete l[e._id],delete o[e._id],t&&t.parentNode){var c=t.getElementsByTagName("*");for(a=c.length;a--;)delete o[c[a].id];t.parentNode.removeChild(t)}return e._rendered=!1,e},renderBefore:function(e){var t=this;return e.parentNode.insertBefore(r.createFragment(t.renderHtml()),e),t.postRender(),t},renderTo:function(e){var t=this;return e=e||t.getContainerElm(),e.appendChild(r.createFragment(t.renderHtml())),t.postRender(),t},postRender:function(){var e=this,t=e.settings,n,i,o,a,s;for(a in t)0===a.indexOf("on")&&e.on(a.substr(2),t[a]);if(e._eventsRoot){for(o=e.parent();!s&&o;o=o.parent())s=o._eventsRoot;if(s)for(a in s._nativeEvents)e._nativeEvents[a]=!0}e.bindPendingEvents(),t.style&&(n=e.getEl(),n&&(n.setAttribute("style",t.style),n.style.cssText=t.style)),e._visible||r.css(e.getEl(),"display","none"),e.settings.border&&(i=e.borderBox(),r.css(e.getEl(),{"border-top-width":i.top,"border-right-width":i.right,"border-bottom-width":i.bottom,"border-left-width":i.left}));var l=e.getRoot();l.controlIdLookup||(l.controlIdLookup={}),l.controlIdLookup[e._id]=e;for(var c in e._aria)e.aria(c,e._aria[c]);e.fire("postrender",{},!1)},scrollIntoView:function(e){function t(e,t){var n,r,i=e;for(n=r=0;i&&i!=t&&i.nodeType;)n+=i.offsetLeft||0,r+=i.offsetTop||0,i=i.offsetParent;return{x:n,y:r}}var n=this.getEl(),r=n.parentNode,i,o,a,s,l,c,u=t(n,r);return i=u.x,o=u.y,a=n.offsetWidth,s=n.offsetHeight,l=r.clientWidth,c=r.clientHeight,"end"==e?(i-=l-a,o-=c-s):"center"==e&&(i-=l/2-a/2,o-=c/2-s/2),r.scrollLeft=i,r.scrollTop=o,this},bindPendingEvents:function(){function e(e){var t=o.getParentCtrl(e.target);t&&t.fire(e.type,e)}function t(){var e=d._lastHoverCtrl;e&&(e.fire("mouseleave",{target:e.getEl()}),e.parents().each(function(e){e.fire("mouseleave",{target:e.getEl()})}),d._lastHoverCtrl=null)}function n(e){var t=o.getParentCtrl(e.target),n=d._lastHoverCtrl,r=0,i,a,s;if(t!==n){if(d._lastHoverCtrl=t,a=t.parents().toArray().reverse(),a.push(t),n){for(s=n.parents().toArray().reverse(),s.push(n),r=0;r<s.length&&a[r]===s[r];r++);for(i=s.length-1;i>=r;i--)n=s[i],n.fire("mouseleave",{target:n.getEl()})}for(i=r;i<a.length;i++)t=a[i],t.fire("mouseenter",{target:t.getEl()})}}function i(e){e.preventDefault(),"mousewheel"==e.type?(e.deltaY=-1/40*e.wheelDelta,e.wheelDeltaX&&(e.deltaX=-1/40*e.wheelDeltaX)):(e.deltaX=0,e.deltaY=e.detail),e=o.fire("wheel",e)}var o=this,l,c,u,d,f,p;if(o._rendered=!0,f=o._nativeEvents){for(u=o.parents().toArray(),u.unshift(o),l=0,c=u.length;!d&&c>l;l++)d=u[l]._eventsRoot;for(d||(d=u[u.length-1]||o),o._eventsRoot=d,c=l,l=0;c>l;l++)u[l]._eventsRoot=d;for(p in f){if(!f)return!1;"wheel"!==p||s?("mouseenter"===p||"mouseleave"===p?d._hasMouseEnter||(r.on(d.getEl(),"mouseleave",t),r.on(d.getEl(),"mouseover",n),d._hasMouseEnter=1):d[p]||(r.on(d.getEl(),p,e),d[p]=!0),f[p]=!1):a?r.on(o.getEl(),"mousewheel",i):r.on(o.getEl(),"DOMMouseScroll",i)}}},getRoot:function(){for(var e=this,t,n=[];e;){if(e.rootControl){t=e.rootControl;break}n.push(e),t=e,e=e.parent()}t||(t=this);for(var r=n.length;r--;)n[r].rootControl=t;return t},reflow:function(){return this.repaint(),this}});return l}),r(q,[],function(){var e={},t;return{add:function(t,n){e[t.toLowerCase()]=n},has:function(t){return!!e[t.toLowerCase()]},create:function(n,r){var i,o,a;if(!t){a=tinymce.ui;for(o in a)e[o.toLowerCase()]=a[o];t=!0}if("string"==typeof n?(r=r||{},r.type=n):(r=n,n=r.type),n=n.toLowerCase(),i=e[n],!i)throw new Error("Could not find control by type: "+n);return i=new i(r),i.type=n,i}}}),r($,[],function(){return function(e){function t(e){return e=e||b,e&&e.getAttribute("role")}function n(e){for(var n,r=e||b;r=r.parentNode;)if(n=t(r))return n}function r(e){var t=b;return t?t.getAttribute("aria-"+e):void 0}function i(e){return"INPUT"==e.tagName||"TEXTAREA"==e.tagName}function o(e){return i(e)&&!e.hidden?!0:/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell)$/.test(t(e))?!0:!1}function a(e){function t(e){if(1==e.nodeType&&"none"!=e.style.display){o(e)&&n.push(e);for(var r=0;r<e.childNodes.length;r++)t(e.childNodes[r])}}var n=[];return t(e||y.getEl()),n}function s(e){var t,n;e=e||C,n=e.parents().toArray(),n.unshift(e);for(var r=0;r<n.length&&(t=n[r],!t.settings.ariaRoot);r++);return t}function l(e){var t=s(e),n=a(t.getEl());t.settings.ariaRemember&&"lastAriaIndex"in t?c(t.lastAriaIndex,n):c(0,n)}function c(e,t){return 0>e?e=t.length-1:e>=t.length&&(e=0),t[e]&&t[e].focus(),e}function u(e,t){var n=-1,r=s();t=t||a(r.getEl());for(var i=0;i<t.length;i++)t[i]===b&&(n=i);n+=e,r.lastAriaIndex=c(n,t)}function d(){var e=n();"tablist"==e?u(-1,a(b.parentNode)):C.parent().submenu?g():u(-1)}function f(){var e=t(),i=n();"tablist"==i?u(1,a(b.parentNode)):"menuitem"==e&&"menu"==i&&r("haspopup")?v():u(1)}function p(){u(-1)}function m(){var e=t(),i=n();"menuitem"==e&&"menubar"==i?v():"button"==e&&r("haspopup")?v({key:"down"}):u(1)}function h(e){var t=n();if("tablist"==t){var r=a(C.getEl("body"))[0];r&&r.focus()}else u(e.shiftKey?-1:1)}function g(){C.fire("cancel")}function v(e){e=e||{},C.fire("click",{target:b,aria:e})}var y=e.root,b,C;return b=document.activeElement,C=y.getParentCtrl(b),y.on("keydown",function(e){function t(e,t){i(b)||t(e)!==!1&&e.preventDefault()}if(!e.isDefaultPrevented())switch(e.keyCode){case 37:t(e,d);break;case 39:t(e,f);break;case 38:t(e,p);break;case 40:t(e,m);break;case 27:t(e,g);break;case 14:case 13:case 32:t(e,v);break;case 9:h(e)!==!1&&e.preventDefault()}}),y.on("focusin",function(e){b=e.target,C=e.control}),{focusFirst:l}}}),r(j,[U,W,z,q,$,p,V],function(e,t,n,r,i,o,a){var s={};return e.extend({layout:"",innerClass:"container-inner",init:function(e){var n=this;n._super(e),e=n.settings,n._fixed=e.fixed,n._items=new t,n.isRtl()&&n.addClass("rtl"),n.addClass("container"),n.addClass("container-body","body"),e.containerCls&&n.addClass(e.containerCls),n._layout=r.create((e.layout||n.layout)+"layout"),n.settings.items&&n.add(n.settings.items),n._hasBody=!0},items:function(){return this._items},find:function(e){return e=s[e]=s[e]||new n(e),e.find(this)},add:function(e){var t=this;return t.items().add(t.create(e)).parent(t),t},focus:function(e){var t=this,n,r,i;return e&&(r=t.keyboardNav||t.parents().eq(-1)[0].keyboardNav)?void r.focusFirst(t):(i=t.find("*"),t.statusbar&&i.add(t.statusbar.items()),i.each(function(e){return e.settings.autofocus?(n=null,!1):void(e.canFocus&&(n=n||e))}),n&&n.focus(),t)},replace:function(e,t){for(var n,r=this.items(),i=r.length;i--;)if(r[i]===e){r[i]=t;break}i>=0&&(n=t.getEl(),n&&n.parentNode.removeChild(n),n=e.getEl(),n&&n.parentNode.removeChild(n)),t.parent(this)},create:function(t){var n=this,i,a=[];return o.isArray(t)||(t=[t]),o.each(t,function(t){t&&(t instanceof e||("string"==typeof t&&(t={type:t}),i=o.extend({},n.settings.defaults,t),t.type=i.type=i.type||t.type||n.settings.defaultType||(i.defaults?i.defaults.type:null),t=r.create(i)),a.push(t))}),a},renderNew:function(){var e=this;return e.items().each(function(t,n){var r,i;t.parent(e),t._rendered||(r=e.getEl("body"),i=a.createFragment(t.renderHtml()),r.hasChildNodes()&&n<=r.childNodes.length-1?r.insertBefore(i,r.childNodes[n]):r.appendChild(i),t.postRender())}),e._layout.applyClasses(e),e._lastRect=null,e},append:function(e){return this.add(e).renderNew()},prepend:function(e){var t=this;return t.items().set(t.create(e).concat(t.items().toArray())),t.renderNew()},insert:function(e,t,n){var r=this,i,o,a;return e=r.create(e),i=r.items(),!n&&t<i.length-1&&(t+=1),t>=0&&t<i.length&&(o=i.slice(0,t).toArray(),a=i.slice(t).toArray(),i.set(o.concat(e,a))),r.renderNew()},fromJSON:function(e){var t=this;for(var n in e)t.find("#"+n).value(e[n]);return t},toJSON:function(){var e=this,t={};return e.find("*").each(function(e){var n=e.name(),r=e.value();n&&"undefined"!=typeof r&&(t[n]=r)}),t},preRender:function(){},renderHtml:function(){var e=this,t=e._layout,n=this.settings.role;return e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'"'+(n?' role="'+this.settings.role+'"':"")+'><div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"},postRender:function(){var e=this,t;return e.items().exec("postRender"),e._super(),e._layout.postRender(e),e._rendered=!0,e.settings.style&&a.css(e.getEl(),e.settings.style),e.settings.border&&(t=e.borderBox(),a.css(e.getEl(),{"border-top-width":t.top,"border-right-width":t.right,"border-bottom-width":t.bottom,"border-left-width":t.left})),e.parent()||(e.keyboardNav=new i({root:e})),e},initLayoutRect:function(){var e=this,t=e._super();return e._layout.recalc(e),t},recalc:function(){var e=this,t=e._layoutRect,n=e._lastRect;return n&&n.w==t.w&&n.h==t.h?void 0:(e._layout.recalc(e),t=e.layoutRect(),e._lastRect={x:t.x,y:t.y,w:t.w,h:t.h},!0)},reflow:function(){var t;if(this.visible()){for(e.repaintControls=[],e.repaintControls.map={},this.recalc(),t=e.repaintControls.length;t--;)e.repaintControls[t].repaint();"flow"!==this.settings.layout&&"stack"!==this.settings.layout&&this.repaint(),e.repaintControls=[]}return this}})}),r(K,[V],function(e){function t(){var e=document,t,n,r,i,o,a,s,l,c=Math.max;return t=e.documentElement,n=e.body,r=c(t.scrollWidth,n.scrollWidth),i=c(t.clientWidth,n.clientWidth),o=c(t.offsetWidth,n.offsetWidth),a=c(t.scrollHeight,n.scrollHeight),s=c(t.clientHeight,n.clientHeight),l=c(t.offsetHeight,n.offsetHeight),{width:o>r?i:r,height:l>a?s:a}}return function(n,r){function i(){return a.getElementById(r.handle||n)}var o,a=document,s,l,c,u,d,f;r=r||{},l=function(n){var l=t(),p,m;n.preventDefault(),s=n.button,p=i(),d=n.screenX,f=n.screenY,m=window.getComputedStyle?window.getComputedStyle(p,null).getPropertyValue("cursor"):p.runtimeStyle.cursor,o=a.createElement("div"),e.css(o,{position:"absolute",top:0,left:0,width:l.width,height:l.height,zIndex:2147483647,opacity:1e-4,background:"red",cursor:m}),a.body.appendChild(o),e.on(a,"mousemove",u),e.on(a,"mouseup",c),r.start(n)},u=function(e){return e.button!==s?c(e):(e.deltaX=e.screenX-d,e.deltaY=e.screenY-f,e.preventDefault(),void r.drag(e))},c=function(t){e.off(a,"mousemove",u),e.off(a,"mouseup",c),o.parentNode.removeChild(o),r.stop&&r.stop(t)},this.destroy=function(){e.off(i())},e.on(i(),"mousedown",l)}}),r(Y,[V,K],function(e,t){return{init:function(){var e=this;e.on("repaint",e.renderScroll)},renderScroll:function(){function n(){function t(t,a,s,l,c,u){var d,f,p,m,h,g,v,y,b;if(f=i.getEl("scroll"+t)){if(y=a.toLowerCase(),b=s.toLowerCase(),i.getEl("absend")&&e.css(i.getEl("absend"),y,i.layoutRect()[l]-1),!c)return void e.css(f,"display","none");e.css(f,"display","block"),d=i.getEl("body"),p=i.getEl("scroll"+t+"t"),m=d["client"+s]-2*o,m-=n&&r?f["client"+u]:0,h=d["scroll"+s],g=m/h,v={},v[y]=d["offset"+a]+o,v[b]=m,e.css(f,v),v={},v[y]=d["scroll"+a]*g,v[b]=m*g,e.css(p,v)}}var n,r,a;a=i.getEl("body"),n=a.scrollWidth>a.clientWidth,r=a.scrollHeight>a.clientHeight,t("h","Left","Width","contentW",n,"Height"),t("v","Top","Height","contentH",r,"Width")}function r(){function n(n,r,a,s,l){var c,u=i._id+"-scroll"+n,d=i.classPrefix;i.getEl().appendChild(e.createFragment('<div id="'+u+'" class="'+d+"scrollbar "+d+"scrollbar-"+n+'"><div id="'+u+'t" class="'+d+'scrollbar-thumb"></div></div>')),i.draghelper=new t(u+"t",{start:function(){c=i.getEl("body")["scroll"+r],e.addClass(e.get(u),d+"active")},drag:function(e){var t,u,d,f,p=i.layoutRect();u=p.contentW>p.innerW,d=p.contentH>p.innerH,f=i.getEl("body")["client"+a]-2*o,f-=u&&d?i.getEl("scroll"+n)["client"+l]:0,t=f/i.getEl("body")["scroll"+a],i.getEl("body")["scroll"+r]=c+e["delta"+s]/t},stop:function(){e.removeClass(e.get(u),d+"active")}})}i.addClass("scroll"),n("v","Top","Height","Y","Width"),n("h","Left","Width","X","Height")}var i=this,o=2;i.settings.autoScroll&&(i._hasScroll||(i._hasScroll=!0,r(),i.on("wheel",function(e){var t=i.getEl("body");t.scrollLeft+=10*(e.deltaX||0),t.scrollTop+=10*e.deltaY,n()}),e.on(i.getEl("body"),"scroll",n)),n())}}}),r(G,[j,Y],function(e,t){return e.extend({Defaults:{layout:"fit",containerCls:"panel"},Mixins:[t],renderHtml:function(){var e=this,t=e._layout,n=e.settings.html;return e.preRender(),t.preRender(e),"undefined"==typeof n?n='<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+t.renderHtml(e)+"</div>":("function"==typeof n&&(n=n.call(e)),e._hasBody=!1),'<div id="'+e._id+'" class="'+e.classes()+'" hideFocus="1" tabIndex="-1" role="group">'+(e._preBodyHtml||"")+n+"</div>"}})}),r(X,[V],function(e){function t(t,n,r){var i,o,a,s,l,c,u,d,f,p;return f=e.getViewPort(),o=e.getPos(n),a=o.x,s=o.y,t._fixed&&(a-=f.x,s-=f.y),i=t.getEl(),p=e.getSize(i),l=p.width,c=p.height,p=e.getSize(n),u=p.width,d=p.height,r=(r||"").split(""),"b"===r[0]&&(s+=d),"r"===r[1]&&(a+=u),"c"===r[0]&&(s+=Math.round(d/2)),"c"===r[1]&&(a+=Math.round(u/2)),"b"===r[3]&&(s-=c),"r"===r[4]&&(a-=l),"c"===r[3]&&(s-=Math.round(c/2)),"c"===r[4]&&(a-=Math.round(l/2)),{x:a,y:s,w:l,h:c}}return{testMoveRel:function(n,r){for(var i=e.getViewPort(),o=0;o<r.length;o++){var a=t(this,n,r[o]);if(this._fixed){if(a.x>0&&a.x+a.w<i.w&&a.y>0&&a.y+a.h<i.h)return r[o]}else if(a.x>i.x&&a.x+a.w<i.w+i.x&&a.y>i.y&&a.y+a.h<i.h+i.y)return r[o]}return r[0]},moveRel:function(e,n){"string"!=typeof n&&(n=this.testMoveRel(e,n));var r=t(this,e,n);return this.moveTo(r.x,r.y)},moveBy:function(e,t){var n=this,r=n.layoutRect();return n.moveTo(r.x+e,r.y+t),n},moveTo:function(t,n){function r(e,t,n){return 0>e?0:e+n>t?(e=t-n,0>e?0:e):e}var i=this;if(i.settings.constrainToViewport){var o=e.getViewPort(window),a=i.layoutRect();t=r(t,o.w+o.x,a.w),n=r(n,o.h+o.y,a.h)}return i._rendered?i.layoutRect({x:t,y:n}).repaint():(i.settings.x=t,i.settings.y=n),i.fire("move",{x:t,y:n}),i}}}),r(J,[V],function(e){return{resizeToContent:function(){this._layoutRect.autoResize=!0,this._lastRect=null,this.reflow()},resizeTo:function(t,n){if(1>=t||1>=n){var r=e.getWindowSize();t=1>=t?t*r.w:t,n=1>=n?n*r.h:n}return this._layoutRect.autoResize=!1,this.layoutRect({minW:t,minH:n,w:t,h:n}).reflow()},resizeBy:function(e,t){var n=this,r=n.layoutRect();return n.resizeTo(r.w+e,r.h+t)}}}),r(Q,[G,X,J,V],function(e,t,n,r){function i(e){var t;for(t=s.length;t--;)s[t]===e&&s.splice(t,1);for(t=l.length;t--;)l[t]===e&&l.splice(t,1)}var o,a,s=[],l=[],c,u=e.extend({Mixins:[t,n],init:function(e){function t(){var e,t=u.zIndex||65535,n;if(l.length)for(e=0;e<l.length;e++)l[e].modal&&(t++,n=l[e]),l[e].getEl().style.zIndex=t,l[e].zIndex=t,t++;var i=document.getElementById(d.classPrefix+"modal-block");n?r.css(i,"z-index",n.zIndex-1):i&&(i.parentNode.removeChild(i),c=!1),u.currentZIndex=t}function n(e,t){for(;e;){if(e==t)return!0;e=e.parent()}}function i(e){function t(t,n){for(var r,i=0;i<s.length;i++)if(s[i]!=e)for(r=s[i].parent();r&&(r=r.parent());)r==e&&s[i].fixed(t).moveBy(0,n).repaint()}var n=r.getViewPort().y;e.settings.autofix&&(e._fixed?e._autoFixY>n&&(e.fixed(!1).layoutRect({y:e._autoFixY}).repaint(),t(!1,e._autoFixY-n)):(e._autoFixY=e.layoutRect().y,e._autoFixY<n&&(e.fixed(!0).layoutRect({y:0}).repaint(),t(!0,n-e._autoFixY))))}var d=this;d._super(e),d._eventsRoot=d,d.addClass("floatpanel"),e.autohide&&(o||(o=function(e){for(var t=s.length;t--;){var r=s[t],i=r.getParentCtrl(e.target);if(r.settings.autohide){if(i&&(n(i,r)||r.parent()===i))continue;e=r.fire("autohide",{target:e.target}),e.isDefaultPrevented()||r.hide()}}},r.on(document,"click",o)),s.push(d)),e.autofix&&(a||(a=function(){var e;for(e=s.length;e--;)i(s[e])},r.on(window,"scroll",a)),d.on("move",function(){i(this)})),d.on("postrender show",function(e){if(e.control==d){var n,i=d.classPrefix;d.modal&&!c&&(n=r.createFragment('<div id="'+i+'modal-block" class="'+i+"reset "+i+'fade"></div>'),n=n.firstChild,d.getContainerElm().appendChild(n),setTimeout(function(){r.addClass(n,i+"in"),r.addClass(d.getEl(),i+"in")},0),c=!0),l.push(d),t()}}),d.on("close hide",function(e){if(e.control==d){for(var n=l.length;n--;)l[n]===d&&l.splice(n,1);t()}}),d.on("show",function(){d.parents().each(function(e){return e._fixed?(d.fixed(!0),!1):void 0})}),e.popover&&(d._preBodyHtml='<div class="'+d.classPrefix+'arrow"></div>',d.addClass("popover").addClass("bottom").addClass(d.isRtl()?"end":"start"))},fixed:function(e){var t=this;if(t._fixed!=e){if(t._rendered){var n=r.getViewPort();e?t.layoutRect().y-=n.y:t.layoutRect().y+=n.y}t.toggleClass("fixed",e),t._fixed=e}return t},show:function(){var e=this,t,n=e._super();for(t=s.length;t--&&s[t]!==e;);return-1===t&&s.push(e),n},hide:function(){return i(this),this._super()},hideAll:function(){u.hideAll()},close:function(){var e=this;return e.fire("close"),e.remove()},remove:function(){i(this),this._super()},postRender:function(){var e=this;return e.settings.bodyRole&&this.getEl("body").setAttribute("role",e.settings.bodyRole),e._super()}});return u.hideAll=function(){for(var e=s.length;e--;){var t=s[e];t&&t.settings.autohide&&(t.hide(),s.splice(e,1))}},u}),r(Z,[Q,G,V,K],function(e,t,n,r){var i=e.extend({modal:!0,Defaults:{border:1,layout:"flex",containerCls:"panel",role:"dialog",callbacks:{submit:function(){this.fire("submit",{data:this.toJSON()})},close:function(){this.close()}}},init:function(e){var n=this;n._super(e),n.isRtl()&&n.addClass("rtl"),n.addClass("window"),n._fixed=!0,e.buttons&&(n.statusbar=new t({layout:"flex",border:"1 0 0 0",spacing:3,padding:10,align:"center",pack:n.isRtl()?"start":"end",defaults:{type:"button"},items:e.buttons}),n.statusbar.addClass("foot"),n.statusbar.parent(n)),n.on("click",function(e){-1!=e.target.className.indexOf(n.classPrefix+"close")&&n.close() +}),n.on("cancel",function(){n.close()}),n.aria("describedby",n.describedBy||n._id+"-none"),n.aria("label",e.title),n._fullscreen=!1},recalc:function(){var e=this,t=e.statusbar,r,i,o,a;e._fullscreen&&(e.layoutRect(n.getWindowSize()),e.layoutRect().contentH=e.layoutRect().innerH),e._super(),r=e.layoutRect(),e.settings.title&&!e._fullscreen&&(i=r.headerW,i>r.w&&(o=r.x-Math.max(0,i/2),e.layoutRect({w:i,x:o}),a=!0)),t&&(t.layoutRect({w:e.layoutRect().innerW}).recalc(),i=t.layoutRect().minW+r.deltaW,i>r.w&&(o=r.x-Math.max(0,i-r.w),e.layoutRect({w:i,x:o}),a=!0)),a&&e.recalc()},initLayoutRect:function(){var e=this,t=e._super(),r=0,i;if(e.settings.title&&!e._fullscreen){i=e.getEl("head");var o=n.getSize(i);t.headerW=o.width,t.headerH=o.height,r+=t.headerH}e.statusbar&&(r+=e.statusbar.layoutRect().h),t.deltaH+=r,t.minH+=r,t.h+=r;var a=n.getWindowSize();return t.x=Math.max(0,a.w/2-t.w/2),t.y=Math.max(0,a.h/2-t.h/2),t},renderHtml:function(){var e=this,t=e._layout,n=e._id,r=e.classPrefix,i=e.settings,o="",a="",s=i.html;return e.preRender(),t.preRender(e),i.title&&(o='<div id="'+n+'-head" class="'+r+'window-head"><div id="'+n+'-title" class="'+r+'title">'+e.encode(i.title)+'</div><button type="button" class="'+r+'close" aria-hidden="true">×</button><div id="'+n+'-dragh" class="'+r+'dragh"></div></div>'),i.url&&(s='<iframe src="'+i.url+'" tabindex="-1"></iframe>'),"undefined"==typeof s&&(s=t.renderHtml(e)),e.statusbar&&(a=e.statusbar.renderHtml()),'<div id="'+n+'" class="'+e.classes()+'" hideFocus="1"><div class="'+e.classPrefix+'reset" role="application">'+o+'<div id="'+n+'-body" class="'+e.classes("body")+'">'+s+"</div>"+a+"</div></div>"},fullscreen:function(e){var t=this,r=document.documentElement,i,o=t.classPrefix,a;if(e!=t._fullscreen)if(n.on(window,"resize",function(){var e;if(t._fullscreen)if(i)t._timer||(t._timer=setTimeout(function(){var e=n.getWindowSize();t.moveTo(0,0).resizeTo(e.w,e.h),t._timer=0},50));else{e=(new Date).getTime();var r=n.getWindowSize();t.moveTo(0,0).resizeTo(r.w,r.h),(new Date).getTime()-e>50&&(i=!0)}}),a=t.layoutRect(),t._fullscreen=e,e){t._initial={x:a.x,y:a.y,w:a.w,h:a.h},t._borderBox=t.parseBox("0"),t.getEl("head").style.display="none",a.deltaH-=a.headerH+2,n.addClass(r,o+"fullscreen"),n.addClass(document.body,o+"fullscreen"),t.addClass("fullscreen");var s=n.getWindowSize();t.moveTo(0,0).resizeTo(s.w,s.h)}else t._borderBox=t.parseBox(t.settings.border),t.getEl("head").style.display="",a.deltaH+=a.headerH,n.removeClass(r,o+"fullscreen"),n.removeClass(document.body,o+"fullscreen"),t.removeClass("fullscreen"),t.moveTo(t._initial.x,t._initial.y).resizeTo(t._initial.w,t._initial.h);return t.reflow()},postRender:function(){var e=this,t;setTimeout(function(){e.addClass("in")},0),e._super(),e.statusbar&&e.statusbar.postRender(),e.focus(),this.dragHelper=new r(e._id+"-dragh",{start:function(){t={x:e.layoutRect().x,y:e.layoutRect().y}},drag:function(n){e.moveTo(t.x+n.deltaX,t.y+n.deltaY)}}),e.on("submit",function(t){t.isDefaultPrevented()||e.close()})},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var e=this,t=e.classPrefix;e.dragHelper.destroy(),e._super(),e.statusbar&&this.statusbar.remove(),e._fullscreen&&(n.removeClass(document.documentElement,t+"fullscreen"),n.removeClass(document.body,t+"fullscreen"))}});return i}),r(et,[Z],function(e){var t=e.extend({init:function(e){e={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(e)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(n){var r,i=n.callback||function(){};switch(n.buttons){case t.OK_CANCEL:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close(),i(!0)}},{type:"button",text:"Cancel",onClick:function(e){e.control.parents()[1].close(),i(!1)}}];break;case t.YES_NO:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close(),i(!0)}}];break;case t.YES_NO_CANCEL:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close()}}];break;default:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close(),i(!0)}}]}return new e({padding:20,x:n.x,y:n.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:r,title:n.title,role:"alertdialog",items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:n.text},onPostRender:function(){this.aria("describedby",this.items()[0]._id)},onClose:n.onClose,onCancel:function(){i(!1)}}).renderTo(document.body).reflow()},alert:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,t.msgBox(e)},confirm:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,e.buttons=t.OK_CANCEL,t.msgBox(e)}}});return t}),r(tt,[Z,et],function(e,t){return function(n){function r(){return o.length?o[o.length-1]:void 0}var i=this,o=[];i.windows=o,i.open=function(t,r){var i;return n.editorManager.activeEditor=n,t.title=t.title||" ",t.url=t.url||t.file,t.url&&(t.width=parseInt(t.width||320,10),t.height=parseInt(t.height||240,10)),t.body&&(t.items={defaults:t.defaults,type:t.bodyType||"form",items:t.body}),t.url||t.buttons||(t.buttons=[{text:"Ok",subtype:"primary",onclick:function(){i.find("form")[0].submit()}},{text:"Cancel",onclick:function(){i.close()}}]),i=new e(t),o.push(i),i.on("close",function(){for(var e=o.length;e--;)o[e]===i&&o.splice(e,1);n.focus()}),t.data&&i.on("postRender",function(){this.find("*").each(function(e){var n=e.name();n in t.data&&e.value(t.data[n])})}),i.features=t||{},i.params=r||{},n.nodeChanged(),i.renderTo(document.body).reflow()},i.alert=function(e,r,i){t.alert(e,function(){r?r.call(i||this):n.focus()})},i.confirm=function(e,n,r){t.confirm(e,function(e){n.call(r||this,e)})},i.close=function(){r()&&r().close()},i.getParams=function(){return r()?r().params:null},i.setParams=function(e){r()&&(r().params=e)}}}),r(nt,[R,B,x,h,g,p],function(e,t,n,r,i,o){return function(a){function s(e,t){try{a.getDoc().execCommand(e,!1,t)}catch(n){}}function l(){var e=a.getDoc().documentMode;return e?e:6}function c(e){return e.isDefaultPrevented()}function u(){function t(e){var t=new i(function(){});o.each(a.getBody().getElementsByTagName("*"),function(e){"SPAN"==e.tagName&&e.setAttribute("mce-data-marked",1),!e.hasAttribute("data-mce-style")&&e.hasAttribute("style")&&a.dom.setAttrib(e,"style",e.getAttribute("style"))}),t.observe(a.getDoc(),{childList:!0,attributes:!0,subtree:!0,attributeFilter:["style"]}),a.getDoc().execCommand(e?"ForwardDelete":"Delete",!1,null);var n=a.selection.getRng(),r=n.startContainer.parentNode;o.each(t.takeRecords(),function(e){if("style"==e.attributeName){var t=e.target.getAttribute("data-mce-style");t?e.target.setAttribute("style",t):e.target.removeAttribute("style")}o.each(e.addedNodes,function(e){if("SPAN"==e.nodeName&&!e.getAttribute("mce-data-marked")){var t,i;e==r&&(t=n.startOffset,i=e.firstChild),U.remove(e,!0),i&&(n.setStart(i,t),n.setEnd(i,t),a.selection.setRng(n))}})}),t.disconnect(),o.each(a.dom.select("span[mce-data-marked]"),function(e){e.removeAttribute("mce-data-marked")})}var n=a.getDoc(),r="data:text/mce-internal,",i=window.MutationObserver,s;i||(s=!0,i=function(){function e(e){var t=e.relatedNode||e.target;n.push({target:t,addedNodes:[t]})}function t(e){var t=e.relatedNode||e.target;n.push({target:t,attributeName:e.attrName})}var n=[],r;this.observe=function(n){r=n,r.addEventListener("DOMSubtreeModified",e,!1),r.addEventListener("DOMNodeInsertedIntoDocument",e,!1),r.addEventListener("DOMNodeInserted",e,!1),r.addEventListener("DOMAttrModified",t,!1)},this.disconnect=function(){r.removeEventListener("DOMNodeInserted",e),r.removeEventListener("DOMAttrModified",t),r.removeEventListener("DOMSubtreeModified",e,!1)},this.takeRecords=function(){return n}}),a.on("keydown",function(n){var r=n.keyCode==V,i=e.metaKeyPressed(n);if(!c(n)&&(r||n.keyCode==W)){var o=a.selection.getRng(),s=o.startContainer,l=o.startOffset;if(!i&&o.collapsed&&3==s.nodeType&&(r?l<s.data.length:l>0))return;n.preventDefault(),i&&a.selection.getSel().modify("extend",r?"forward":"backward","word"),t(r)}}),a.on("keypress",function(n){c(n)||q.isCollapsed()||!n.charCode||e.metaKeyPressed(n)||(n.preventDefault(),t(!0),a.selection.setContent(String.fromCharCode(n.charCode)))}),a.addCommand("Delete",function(){t()}),a.addCommand("ForwardDelete",function(){t(!0)}),s||(a.on("dragstart",function(e){e.dataTransfer.setData("URL","data:text/mce-internal,"+escape(a.selection.getContent()))}),a.on("drop",function(e){if(!c(e)){var i=e.dataTransfer.getData("URL");if(!i||-1==i.indexOf(r)||!n.caretRangeFromPoint)return;i=unescape(i.substr(r.length)),n.caretRangeFromPoint&&(e.preventDefault(),t(),a.selection.setRng(n.caretRangeFromPoint(e.x,e.y)),a.insertContent(i))}}),a.on("cut",function(e){!c(e)&&e.clipboardData&&(e.preventDefault(),e.clipboardData.clearData(),e.clipboardData.setData("text/html",a.selection.getContent()),e.clipboardData.setData("text/plain",a.selection.getContent({format:"text"})),t(!0))}))}function d(){function e(e){var t=U.create("body"),n=e.cloneContents();return t.appendChild(n),q.serializer.serialize(t,{format:"html"})}function n(n){if(!n.setStart){if(n.item)return!1;var r=n.duplicate();return r.moveToElementText(a.getBody()),t.compareRanges(n,r)}var i=e(n),o=U.createRng();o.selectNode(a.getBody());var s=e(o);return i===s}a.on("keydown",function(e){var t=e.keyCode,r,i;if(!c(e)&&(t==V||t==W)){if(r=a.selection.isCollapsed(),i=a.getBody(),r&&!U.isEmpty(i))return;if(!r&&!n(a.selection.getRng()))return;e.preventDefault(),a.setContent(""),i.firstChild&&U.isBlock(i.firstChild)?a.selection.setCursorLocation(i.firstChild,0):a.selection.setCursorLocation(i,0),a.nodeChanged()}})}function f(){a.on("keydown",function(t){!c(t)&&65==t.keyCode&&e.metaKeyPressed(t)&&(t.preventDefault(),a.execCommand("SelectAll"))})}function p(){a.settings.content_editable||(U.bind(a.getDoc(),"focusin",function(){q.setRng(q.getRng())}),U.bind(a.getDoc(),"mousedown",function(e){e.target==a.getDoc().documentElement&&(a.getBody().focus(),q.setRng(q.getRng()))}))}function m(){a.on("keydown",function(e){if(!c(e)&&e.keyCode===W&&q.isCollapsed()&&0===q.getRng(!0).startOffset){var t=q.getNode(),n=t.previousSibling;if("HR"==t.nodeName)return U.remove(t),void e.preventDefault();n&&n.nodeName&&"hr"===n.nodeName.toLowerCase()&&(U.remove(n),e.preventDefault())}})}function h(){window.Range.prototype.getClientRects||a.on("mousedown",function(e){if(!c(e)&&"HTML"===e.target.nodeName){var t=a.getBody();t.blur(),setTimeout(function(){t.focus()},0)}})}function g(){a.on("click",function(e){e=e.target,/^(IMG|HR)$/.test(e.nodeName)&&q.getSel().setBaseAndExtent(e,0,e,1),"A"==e.nodeName&&U.hasClass(e,"mce-item-anchor")&&q.select(e),a.nodeChanged()})}function v(){function e(){var e=U.getAttribs(q.getStart().cloneNode(!1));return function(){var t=q.getStart();t!==a.getBody()&&(U.setAttrib(t,"style",null),z(e,function(e){t.setAttributeNode(e.cloneNode(!0))}))}}function t(){return!q.isCollapsed()&&U.getParent(q.getStart(),U.isBlock)!=U.getParent(q.getEnd(),U.isBlock)}a.on("keypress",function(n){var r;return c(n)||8!=n.keyCode&&46!=n.keyCode||!t()?void 0:(r=e(),a.getDoc().execCommand("delete",!1,null),r(),n.preventDefault(),!1)}),U.bind(a.getDoc(),"cut",function(n){var r;!c(n)&&t()&&(r=e(),setTimeout(function(){r()},0))})}function y(){var e,n;a.on("selectionchange",function(){n&&(clearTimeout(n),n=0),n=window.setTimeout(function(){if(!a.removed){var n=q.getRng();e&&t.compareRanges(n,e)||(a.nodeChanged(),e=n)}},50)})}function b(){document.body.setAttribute("role","application")}function C(){a.on("keydown",function(e){if(!c(e)&&e.keyCode===W&&q.isCollapsed()&&0===q.getRng(!0).startOffset){var t=q.getNode().previousSibling;if(t&&t.nodeName&&"table"===t.nodeName.toLowerCase())return e.preventDefault(),!1}})}function x(){l()>7||(s("RespectVisibilityInDesign",!0),a.contentStyles.push(".mceHideBrInPre pre br {display: none}"),U.addClass(a.getBody(),"mceHideBrInPre"),j.addNodeFilter("pre",function(e){for(var t=e.length,r,i,o,a;t--;)for(r=e[t].getAll("br"),i=r.length;i--;)o=r[i],a=o.prev,a&&3===a.type&&"\n"!=a.value.charAt(a.value-1)?a.value+="\n":o.parent.insert(new n("#text",3),o,!0).value="\n"}),K.addNodeFilter("pre",function(e){for(var t=e.length,n,r,i,o;t--;)for(n=e[t].getAll("br"),r=n.length;r--;)i=n[r],o=i.prev,o&&3==o.type&&(o.value=o.value.replace(/\r?\n$/,""))}))}function w(){U.bind(a.getBody(),"mouseup",function(){var e,t=q.getNode();"IMG"==t.nodeName&&((e=U.getStyle(t,"width"))&&(U.setAttrib(t,"width",e.replace(/[^0-9%]+/g,"")),U.setStyle(t,"width","")),(e=U.getStyle(t,"height"))&&(U.setAttrib(t,"height",e.replace(/[^0-9%]+/g,"")),U.setStyle(t,"height","")))})}function _(){a.on("keydown",function(t){var n,r,i,o,s;if(!c(t)&&t.keyCode==e.BACKSPACE&&(n=q.getRng(),r=n.startContainer,i=n.startOffset,o=U.getRoot(),s=r,n.collapsed&&0===i)){for(;s&&s.parentNode&&s.parentNode.firstChild==s&&s.parentNode!=o;)s=s.parentNode;"BLOCKQUOTE"===s.tagName&&(a.formatter.toggle("blockquote",null,s),n=U.createRng(),n.setStart(r,0),n.setEnd(r,0),q.setRng(n))}})}function N(){function e(){a._refreshContentEditable(),s("StyleWithCSS",!1),s("enableInlineTableEditing",!1),$.object_resizing||s("enableObjectResizing",!1)}$.readonly||a.on("BeforeExecCommand MouseDown",e)}function E(){function e(){z(U.select("a"),function(e){var t=e.parentNode,n=U.getRoot();if(t.lastChild===e){for(;t&&!U.isBlock(t);){if(t.parentNode.lastChild!==t||t===n)return;t=t.parentNode}U.add(t,"br",{"data-mce-bogus":1})}})}a.on("SetContent ExecCommand",function(t){("setcontent"==t.type||"mceInsertLink"===t.command)&&e()})}function S(){$.forced_root_block&&a.on("init",function(){s("DefaultParagraphSeparator",$.forced_root_block)})}function k(){a.on("Undo Redo SetContent",function(e){e.initial||a.execCommand("mceRepaint")})}function T(){a.on("keydown",function(e){var t;c(e)||e.keyCode!=W||(t=a.getDoc().selection.createRange(),t&&t.item&&(e.preventDefault(),a.undoManager.beforeChange(),U.remove(t.item(0)),a.undoManager.add()))})}function R(){var e;l()>=10&&(e="",z("p div h1 h2 h3 h4 h5 h6".split(" "),function(t,n){e+=(n>0?",":"")+t+":empty"}),a.contentStyles.push(e+"{padding-right: 1px !important}"))}function A(){l()<9&&(j.addNodeFilter("noscript",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.firstChild,r&&n.attr("data-mce-innertext",r.value)}),K.addNodeFilter("noscript",function(e){for(var t=e.length,i,o,a;t--;)i=e[t],o=e[t].firstChild,o?o.value=r.decode(o.value):(a=i.attributes.map["data-mce-innertext"],a&&(i.attr("data-mce-innertext",null),o=new n("#text",3),o.value=a,o.raw=!0,i.append(o)))}))}function B(){function e(e,t){var n=i.createTextRange();try{n.moveToPoint(e,t)}catch(r){n=null}return n}function t(t){var r;t.button?(r=e(t.x,t.y),r&&(r.compareEndPoints("StartToStart",a)>0?r.setEndPoint("StartToStart",a):r.setEndPoint("EndToEnd",a),r.select())):n()}function n(){var e=r.selection.createRange();a&&!e.item&&0===e.compareEndPoints("StartToEnd",e)&&a.select(),U.unbind(r,"mouseup",n),U.unbind(r,"mousemove",t),a=o=0}var r=U.doc,i=r.body,o,a,s;r.documentElement.unselectable=!0,U.bind(r,"mousedown contextmenu",function(i){if("HTML"===i.target.nodeName){if(o&&n(),s=r.documentElement,s.scrollHeight>s.clientHeight)return;o=1,a=e(i.x,i.y),a&&(U.bind(r,"mouseup",n),U.bind(r,"mousemove",t),U.getRoot().focus(),a.select())}})}function L(){a.on("keyup focusin mouseup",function(t){65==t.keyCode&&e.metaKeyPressed(t)||q.normalize()},!0)}function D(){a.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}")}function M(){a.inline||a.on("keydown",function(){document.activeElement==document.body&&a.getWin().focus()})}function H(){a.inline||(a.contentStyles.push("body {min-height: 150px}"),a.on("click",function(e){"HTML"==e.target.nodeName&&(a.getBody().focus(),a.selection.normalize(),a.nodeChanged())}))}function P(){i.mac&&a.on("keydown",function(t){!e.metaKeyPressed(t)||37!=t.keyCode&&39!=t.keyCode||(t.preventDefault(),a.selection.getSel().modify("move",37==t.keyCode?"backward":"forward","word"))})}function O(){s("AutoUrlDetect",!1)}function I(){a.inline||a.on("focus blur",function(){var e=a.dom.create("br");a.getBody().appendChild(e),e.parentNode.removeChild(e)},!0)}function F(){a.on("click",function(e){"A"===e.target.tagName&&e.preventDefault()}),a.contentStyles.push(".mce-content-body {-webkit-touch-callout: none}")}var z=o.each,W=e.BACKSPACE,V=e.DELETE,U=a.dom,q=a.selection,$=a.settings,j=a.parser,K=a.serializer,Y=i.gecko,G=i.ie,X=i.webkit;C(),_(),d(),L(),X&&(u(),p(),g(),S(),i.iOS?(y(),M(),H(),F()):f()),G&&i.ie<11&&(m(),b(),x(),w(),T(),R(),A(),B()),i.ie>=11&&(H(),I()),i.ie&&(f(),O()),Y&&(m(),h(),v(),N(),E(),k(),D(),P())}}),r(rt,[p],function(e){function t(){return!1}function n(){return!0}var r="__bindings",i=e.makeMap("focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave keydown keypress keyup contextmenu dragstart dragend dragover draggesture dragdrop drop drag"," ");return{fire:function(e,i,o){var a=this,s,l,c,u,d;if(!a.removed){if(e=e.toLowerCase(),i=i||{},i.type=e,i.target||(i.target=a),i.preventDefault||(i.preventDefault=function(){i.isDefaultPrevented=n},i.stopPropagation=function(){i.isPropagationStopped=n},i.stopImmediatePropagation=function(){i.isImmediatePropagationStopped=n},i.isDefaultPrevented=t,i.isPropagationStopped=t,i.isImmediatePropagationStopped=t),a[r]&&(s=a[r][e]))for(l=0,c=s.length;c>l&&(s[l]=u=s[l],!i.isImmediatePropagationStopped());l++)if(u.call(a,i)===!1)return i.preventDefault(),i;if(o!==!1&&a.parent)for(d=a.parent();d&&!i.isPropagationStopped();)d.fire(e,i,!1),d=d.parent();return i}},on:function(e,t,n){var o=this,a,s,l,c;if(t===!1&&(t=function(){return!1}),t)for(l=e.toLowerCase().split(" "),c=l.length;c--;)e=l[c],a=o[r],a||(a=o[r]={}),s=a[e],s||(s=a[e]=[],o.bindNative&&i[e]&&o.bindNative(e)),n?s.unshift(t):s.push(t);return o},off:function(e,t){var n=this,o,a=n[r],s,l,c,u;if(a)if(e)for(c=e.toLowerCase().split(" "),o=c.length;o--;){if(e=c[o],s=a[e],!e){for(l in a)a[e].length=0;return n}if(s){if(t)for(u=s.length;u--;)s[u]===t&&s.splice(u,1);else s.length=0;!s.length&&n.unbindNative&&i[e]&&(n.unbindNative(e),delete a[e])}}else{if(n.unbindNative)for(e in a)n.unbindNative(e);n[r]=[]}return n},hasEventListeners:function(e){var t=this[r];return e=e.toLowerCase(),!(!t||!t[e]||0===t[e].length)}}}),r(it,[p,g],function(e,t){var n=e.each,r=e.explode,i={f9:120,f10:121,f11:122};return function(o){var a=this,s={};o.on("keyup keypress keydown",function(e){(e.altKey||e.ctrlKey||e.metaKey)&&n(s,function(n){var r=t.mac?e.metaKey:e.ctrlKey;if(n.ctrl==r&&n.alt==e.altKey&&n.shift==e.shiftKey)return e.keyCode==n.keyCode||e.charCode&&e.charCode==n.charCode?(e.preventDefault(),"keydown"==e.type&&n.func.call(n.scope),!0):void 0})}),a.add=function(t,a,l,c){var u;return u=l,"string"==typeof l?l=function(){o.execCommand(u,!1,null)}:e.isArray(u)&&(l=function(){o.execCommand(u[0],u[1],u[2])}),n(r(t.toLowerCase()),function(e){var t={func:l,scope:c||o,desc:o.translate(a),alt:!1,ctrl:!1,shift:!1};n(r(e,"+"),function(e){switch(e){case"alt":case"ctrl":case"shift":t[e]=!0;break;default:t.charCode=e.charCodeAt(0),t.keyCode=i[e]||e.toUpperCase().charCodeAt(0)}}),s[(t.ctrl?"ctrl":"")+","+(t.alt?"alt":"")+","+(t.shift?"shift":"")+","+t.keyCode]=t}),!0}}}),r(ot,[y,C,x,k,S,L,D,M,H,P,O,I,b,l,tt,w,N,nt,g,p,rt,it],function(e,n,r,i,o,a,s,l,c,u,d,f,p,m,h,g,v,y,b,C,x,w){function _(e,t){return"selectionchange"==t?e.getDoc():!e.inline&&/^mouse|click|contextmenu|drop/.test(t)?e.getDoc():e.getBody()}function N(e,t,r){var i=this,o,a;o=i.documentBaseUrl=r.documentBaseURL,a=r.baseURI,i.settings=t=T({id:e,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:o,add_form_submit_trigger:!0,submit_patch:!0,add_unload_trigger:!0,convert_urls:!0,relative_urls:!0,remove_script_host:!0,object_resizing:!0,doctype:"<!DOCTYPE html>",visual:!0,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",forced_root_block:"p",hidden_input:!0,padd_empty_editor:!0,render_ui:!0,indentation:"30px",inline_styles:!0,convert_fonts_to_spans:!0,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",validate:!0,entity_encoding:"named",url_converter:i.convertURL,url_converter_scope:i,ie7_compat:!0},t),n.language=t.language||"en",n.languageLoad=t.language_load,n.baseURL=r.baseURL,i.id=t.id=e,i.isNotDirty=!0,i.plugins={},i.documentBaseURI=new f(t.document_base_url||o,{base_uri:a}),i.baseURI=a,i.contentCSS=[],i.contentStyles=[],i.shortcuts=new w(i),i.execCommands={},i.queryStateCommands={},i.queryValueCommands={},i.loadedCSS={},i.suffix=r.suffix,i.editorManager=r,i.inline=t.inline,r.fire("SetupEditor",i),i.execCallback("setup",i)}var E=e.DOM,S=n.ThemeManager,k=n.PluginManager,T=C.extend,R=C.each,A=C.explode,B=C.inArray,L=C.trim,D=C.resolve,M=m.Event,H=b.gecko,P=b.ie;return N.prototype={render:function(){function e(){E.unbind(window,"ready",e),n.render()}function t(){var e=p.ScriptLoader;if(r.language&&"en"!=r.language&&!r.language_url&&(r.language_url=n.editorManager.baseURL+"/langs/"+r.language+".js"),r.language_url&&e.add(r.language_url),r.theme&&"function"!=typeof r.theme&&"-"!=r.theme.charAt(0)&&!S.urls[r.theme]){var t=r.theme_url;t=t?n.documentBaseURI.toAbsolute(t):"themes/"+r.theme+"/theme"+o+".js",S.load(r.theme,t)}C.isArray(r.plugins)&&(r.plugins=r.plugins.join(" ")),R(r.external_plugins,function(e,t){k.load(t,e),r.plugins+=" "+t}),R(r.plugins.split(/[ ,]/),function(e){if(e=L(e),e&&!k.urls[e])if("-"==e.charAt(0)){e=e.substr(1,e.length);var t=k.dependencies(e);R(t,function(e){var t={prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"};e=k.createUrl(t,e),k.load(e.resource,e)})}else k.load(e,{prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"})}),e.loadQueue(function(){n.removed||n.init()})}var n=this,r=n.settings,i=n.id,o=n.suffix;if(!M.domLoaded)return void E.bind(window,"ready",e);if(n.getElement()&&b.contentEditable){r.inline?n.inline=!0:(n.orgVisibility=n.getElement().style.visibility,n.getElement().style.visibility="hidden");var a=n.getElement().form||E.getParent(i,"form");a&&(n.formElement=a,r.hidden_input&&!/TEXTAREA|INPUT/i.test(n.getElement().nodeName)&&(E.insertAfter(E.create("input",{type:"hidden",name:i}),i),n.hasHiddenInput=!0),n.formEventDelegate=function(e){n.fire(e.type,e)},E.bind(a,"submit reset",n.formEventDelegate),n.on("reset",function(){n.setContent(n.startContent,{format:"raw"})}),!r.submit_patch||a.submit.nodeType||a.submit.length||a._mceOldSubmit||(a._mceOldSubmit=a.submit,a.submit=function(){return n.editorManager.triggerSave(),n.isNotDirty=!0,a._mceOldSubmit(a)})),n.windowManager=new h(n),"xml"==r.encoding&&n.on("GetContent",function(e){e.save&&(e.content=E.encode(e.content))}),r.add_form_submit_trigger&&n.on("submit",function(){n.initialized&&n.save()}),r.add_unload_trigger&&(n._beforeUnload=function(){!n.initialized||n.destroyed||n.isHidden()||n.save({format:"raw",no_events:!0,set_dirty:!1})},n.editorManager.on("BeforeUnload",n._beforeUnload)),t()}},init:function(){function e(n){var r=k.get(n),i,o;i=k.urls[n]||t.documentBaseUrl.replace(/\/$/,""),n=L(n),r&&-1===B(h,n)&&(R(k.dependencies(n),function(t){e(t)}),o=new r(t,i),t.plugins[n]=o,o.init&&(o.init(t,i),h.push(n)))}var t=this,n=t.settings,r=t.getElement(),i,o,a,s,l,c,u,d,f,p,m,h=[];if(t.rtl=this.editorManager.i18n.rtl,t.editorManager.add(t),n.aria_label=n.aria_label||E.getAttrib(r,"aria-label",t.getLang("aria.rich_text_area")),n.theme&&("function"!=typeof n.theme?(n.theme=n.theme.replace(/-/,""),c=S.get(n.theme),t.theme=new c(t,S.urls[n.theme]),t.theme.init&&t.theme.init(t,S.urls[n.theme]||t.documentBaseUrl.replace(/\/$/,""))):t.theme=n.theme),R(n.plugins.replace(/\-/g,"").split(/[ ,]/),e),n.render_ui&&t.theme&&(t.orgDisplay=r.style.display,"function"!=typeof n.theme?(i=n.width||r.style.width||r.offsetWidth,o=n.height||r.style.height||r.offsetHeight,a=n.min_height||100,p=/^[0-9\.]+(|px)$/i,p.test(""+i)&&(i=Math.max(parseInt(i,10),100)),p.test(""+o)&&(o=Math.max(parseInt(o,10),a)),l=t.theme.renderUI({targetNode:r,width:i,height:o,deltaWidth:n.delta_width,deltaHeight:n.delta_height}),n.content_editable||(E.setStyles(l.sizeContainer||l.editorContainer,{wi2dth:i,h2eight:o}),o=(l.iframeHeight||o)+("number"==typeof o?l.deltaHeight||0:""),a>o&&(o=a))):(l=n.theme(t,r),l.editorContainer.nodeType&&(l.editorContainer=l.editorContainer.id=l.editorContainer.id||t.id+"_parent"),l.iframeContainer.nodeType&&(l.iframeContainer=l.iframeContainer.id=l.iframeContainer.id||t.id+"_iframecontainer"),o=l.iframeHeight||r.offsetHeight),t.editorContainer=l.editorContainer),n.content_css&&R(A(n.content_css),function(e){t.contentCSS.push(t.documentBaseURI.toAbsolute(e))}),n.content_style&&t.contentStyles.push(n.content_style),n.content_editable)return r=s=l=null,t.initContentBody();for(t.iframeHTML=n.doctype+"<html><head>",n.document_base_url!=t.documentBaseUrl&&(t.iframeHTML+='<base href="'+t.documentBaseURI.getURI()+'" />'),!b.caretAfter&&n.ie7_compat&&(t.iframeHTML+='<meta http-equiv="X-UA-Compatible" content="IE=7" />'),t.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />',m=0;m<t.contentCSS.length;m++){var g=t.contentCSS[m];t.iframeHTML+='<link type="text/css" rel="stylesheet" href="'+g+'" />',t.loadedCSS[g]=!0}d=n.body_id||"tinymce",-1!=d.indexOf("=")&&(d=t.getParam("body_id","","hash"),d=d[t.id]||d),f=n.body_class||"",-1!=f.indexOf("=")&&(f=t.getParam("body_class","","hash"),f=f[t.id]||""),t.iframeHTML+='</head><body id="'+d+'" class="mce-content-body '+f+'" onload="window.parent.tinymce.get(\''+t.id+"').fire('load');\"><br></body></html>";var v='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinymce.get("'+t.id+'");document.write(ed.iframeHTML);document.close();ed.initContentBody(true);})()';if(document.domain!=location.hostname&&(u=v),s=E.add(l.iframeContainer,"iframe",{id:t.id+"_ifr",src:u||'javascript:""',frameBorder:"0",allowTransparency:"true",title:t.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"),style:{width:"100%",height:o,display:"block"}}),P)try{t.getDoc()}catch(y){s.src=u=v}t.contentAreaContainer=l.iframeContainer,l.editorContainer&&(E.get(l.editorContainer).style.display=t.orgDisplay),E.get(t.id).style.display="none",E.setAttrib(t.id,"aria-hidden",!0),u||t.initContentBody(),r=s=l=null},initContentBody:function(t){var n=this,o=n.settings,f=E.get(n.id),p=n.getDoc(),m,h;o.inline||(n.getElement().style.visibility=n.orgVisibility),t||o.content_editable||(p.open(),p.write(n.iframeHTML),p.close()),o.content_editable&&(n.on("remove",function(){var e=this.getBody();E.removeClass(e,"mce-content-body"),E.removeClass(e,"mce-edit-focus"),E.setAttrib(e,"tabIndex",null),E.setAttrib(e,"contentEditable",null)}),E.addClass(f,"mce-content-body"),f.tabIndex=-1,n.contentDocument=p=o.content_document||document,n.contentWindow=o.content_window||window,n.bodyElement=f,o.content_document=o.content_window=null,o.root_name=f.nodeName.toLowerCase()),m=n.getBody(),m.disabled=!0,o.readonly||(n.inline&&"static"==E.getStyle(m,"position",!0)&&(m.style.position="relative"),m.contentEditable=n.getParam("content_editable_state",!0)),m.disabled=!1,n.schema=new g(o),n.dom=new e(p,{keep_values:!0,url_converter:n.convertURL,url_converter_scope:n,hex_colors:o.force_hex_style_colors,class_filter:o.class_filter,update_styles:!0,root_element:o.content_editable?n.id:null,collect:o.content_editable,schema:n.schema,onSetAttrib:function(e){n.fire("SetAttrib",e)}}),n.parser=new v(o,n.schema),n.parser.addAttributeFilter("src,href,style",function(e,t){for(var r=e.length,i,o=n.dom,a,s;r--;)i=e[r],a=i.attr(t),s="data-mce-"+t,i.attributes.map[s]||("style"===t?i.attr(s,o.serializeStyle(o.parseStyle(a),i.name)):i.attr(s,n.convertURL(a,t,i.name)))}),n.parser.addNodeFilter("script",function(e){for(var t=e.length,n;t--;)n=e[t],n.attr("type","mce-"+(n.attr("type")||"text/javascript"))}),n.parser.addNodeFilter("#cdata",function(e){for(var t=e.length,n;t--;)n=e[t],n.type=8,n.name="#comment",n.value="[CDATA["+n.value+"]]"}),n.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(e){for(var t=e.length,i,o=n.schema.getNonEmptyElements();t--;)i=e[t],i.isEmpty(o)&&(i.empty().append(new r("br",1)).shortEnded=!0)}),n.serializer=new i(o,n),n.selection=new a(n.dom,n.getWin(),n.serializer,n),n.formatter=new s(n),n.undoManager=new l(n),n.forceBlocks=new u(n),n.enterKey=new c(n),n.editorCommands=new d(n),n.fire("PreInit"),o.browser_spellcheck||o.gecko_spellcheck||(p.body.spellcheck=!1,E.setAttrib(m,"spellcheck","false")),n.fire("PostRender"),n.quirks=y(n),o.directionality&&(m.dir=o.directionality),o.nowrap&&(m.style.whiteSpace="nowrap"),o.protect&&n.on("BeforeSetContent",function(e){R(o.protect,function(t){e.content=e.content.replace(t,function(e){return"<!--mce:protected "+escape(e)+"-->"})})}),n.on("SetContent",function(){n.addVisual(n.getBody())}),o.padd_empty_editor&&n.on("PostProcess",function(e){e.content=e.content.replace(/^(<p[^>]*>( | |\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,"")}),n.load({initial:!0,format:"html"}),n.startContent=n.getContent({format:"raw"}),n.initialized=!0,R(n._pendingNativeEvents,function(e){n.dom.bind(_(n,e),e,function(e){n.fire(e.type,e)})}),n.fire("init"),n.focus(!0),n.nodeChanged({initial:!0}),n.execCallback("init_instance_callback",n),n.contentStyles.length>0&&(h="",R(n.contentStyles,function(e){h+=e+"\r\n"}),n.dom.addStyle(h)),R(n.contentCSS,function(e){n.loadedCSS[e]||(n.dom.loadCSS(e),n.loadedCSS[e]=!0)}),o.auto_focus&&setTimeout(function(){var e=n.editorManager.get(o.auto_focus);e.selection.select(e.getBody(),1),e.selection.collapse(1),e.getBody().focus(),e.getWin().focus()},100),f=p=m=null},focus:function(e){var t,n=this,r=n.selection,i=n.settings.content_editable,o,a,s=n.getDoc(),l;e||(o=r.getRng(),o.item&&(a=o.item(0)),n._refreshContentEditable(),i||(b.opera||n.getBody().focus(),n.getWin().focus()),(H||i)&&(l=n.getBody(),l.setActive&&b.ie<11?l.setActive():l.focus(),i&&r.normalize()),a&&a.ownerDocument==s&&(o=s.body.createControlRange(),o.addElement(a),o.select())),n.editorManager.activeEditor!=n&&((t=n.editorManager.activeEditor)&&t.fire("deactivate",{relatedTarget:n}),n.fire("activate",{relatedTarget:t})),n.editorManager.activeEditor=n},execCallback:function(e){var t=this,n=t.settings[e],r;if(n)return t.callbackLookup&&(r=t.callbackLookup[e])&&(n=r.func,r=r.scope),"string"==typeof n&&(r=n.replace(/\.\w+$/,""),r=r?D(r):0,n=D(n),t.callbackLookup=t.callbackLookup||{},t.callbackLookup[e]={func:n,scope:r}),n.apply(r||t,Array.prototype.slice.call(arguments,1))},translate:function(e){var t=this.settings.language||"en",n=this.editorManager.i18n;return e?n.data[t+"."+e]||e.replace(/\{\#([^\}]+)\}/g,function(e,r){return n.data[t+"."+r]||"{#"+r+"}"}):""},getLang:function(e,n){return this.editorManager.i18n.data[(this.settings.language||"en")+"."+e]||(n!==t?n:"{#"+e+"}")},getParam:function(e,t,n){var r=e in this.settings?this.settings[e]:t,i;return"hash"===n?(i={},"string"==typeof r?R(r.split(r.indexOf("=")>0?/[;,](?![^=;,]*(?:[;,]|$))/:","),function(e){e=e.split("="),i[L(e[0])]=L(e.length>1?e[1]:e)}):i=r,i):r},nodeChanged:function(){var e=this,t=e.selection,n,r,i;!e.initialized||e.settings.disable_nodechange||e.settings.readonly||(i=e.getBody(),n=t.getStart()||i,n=P&&n.ownerDocument!=e.getDoc()?e.getBody():n,"IMG"==n.nodeName&&t.isCollapsed()&&(n=n.parentNode),r=[],e.dom.getParent(n,function(e){return e===i?!0:void r.push(e) +}),e.fire("NodeChange",{element:n,parents:r}))},addButton:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),t.text||t.icon||(t.icon=e),n.buttons=n.buttons||{},t.tooltip=t.tooltip||t.title,n.buttons[e]=t},addMenuItem:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),n.menuItems=n.menuItems||{},n.menuItems[e]=t},addCommand:function(e,t,n){this.execCommands[e]={func:t,scope:n||this}},addQueryStateHandler:function(e,t,n){this.queryStateCommands[e]={func:t,scope:n||this}},addQueryValueHandler:function(e,t,n){this.queryValueCommands[e]={func:t,scope:n||this}},addShortcut:function(e,t,n,r){this.shortcuts.add(e,t,n,r)},execCommand:function(e,t,n,r){var i=this,o=0,a;return/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(e)||r&&r.skip_focus||i.focus(),r=T({},r),r=i.fire("BeforeExecCommand",{command:e,ui:t,value:n}),r.isDefaultPrevented()?!1:(a=i.execCommands[e])&&a.func.call(a.scope,t,n)!==!0?(i.fire("ExecCommand",{command:e,ui:t,value:n}),!0):(R(i.plugins,function(r){return r.execCommand&&r.execCommand(e,t,n)?(i.fire("ExecCommand",{command:e,ui:t,value:n}),o=!0,!1):void 0}),o?o:i.theme&&i.theme.execCommand&&i.theme.execCommand(e,t,n)?(i.fire("ExecCommand",{command:e,ui:t,value:n}),!0):i.editorCommands.execCommand(e,t,n)?(i.fire("ExecCommand",{command:e,ui:t,value:n}),!0):(i.getDoc().execCommand(e,t,n),void i.fire("ExecCommand",{command:e,ui:t,value:n})))},queryCommandState:function(e){var t=this,n,r;if(!t._isHidden()){if((n=t.queryStateCommands[e])&&(r=n.func.call(n.scope),r!==!0))return r;if(r=t.editorCommands.queryCommandState(e),-1!==r)return r;try{return t.getDoc().queryCommandState(e)}catch(i){}}},queryCommandValue:function(e){var n=this,r,i;if(!n._isHidden()){if((r=n.queryValueCommands[e])&&(i=r.func.call(r.scope),i!==!0))return i;if(i=n.editorCommands.queryCommandValue(e),i!==t)return i;try{return n.getDoc().queryCommandValue(e)}catch(o){}}},show:function(){var e=this;E.show(e.getContainer()),E.hide(e.id),e.load(),e.fire("show")},hide:function(){var e=this,t=e.getDoc();P&&t&&!e.inline&&t.execCommand("SelectAll"),e.save(),E.hide(e.getContainer()),E.setStyle(e.id,"display",e.orgDisplay),e.fire("hide")},isHidden:function(){return!E.isHidden(this.id)},setProgressState:function(e,t){this.fire("ProgressState",{state:e,time:t})},load:function(e){var n=this,r=n.getElement(),i;return r?(e=e||{},e.load=!0,i=n.setContent(r.value!==t?r.value:r.innerHTML,e),e.element=r,e.no_events||n.fire("LoadContent",e),e.element=r=null,i):void 0},save:function(e){var t=this,n=t.getElement(),r,i;if(n&&t.initialized)return e=e||{},e.save=!0,e.element=n,r=e.content=t.getContent(e),e.no_events||t.fire("SaveContent",e),r=e.content,/TEXTAREA|INPUT/i.test(n.nodeName)?n.value=r:(t.inline||(n.innerHTML=r),(i=E.getParent(t.id,"form"))&&R(i.elements,function(e){return e.name==t.id?(e.value=r,!1):void 0})),e.element=n=null,e.set_dirty!==!1&&(t.isNotDirty=!0),r},setContent:function(e,t){var n=this,r=n.getBody(),i;return t=t||{},t.format=t.format||"html",t.set=!0,t.content=e,t.no_events||n.fire("BeforeSetContent",t),e=t.content,0===e.length||/^\s+$/.test(e)?(i=n.settings.forced_root_block,i&&n.schema.isValidChild(r.nodeName.toLowerCase(),i.toLowerCase())?(e=P&&11>P?"":'<br data-mce-bogus="1">',e=n.dom.createHTML(i,n.settings.forced_root_block_attrs,e)):P||(e='<br data-mce-bogus="1">'),r.innerHTML=e,n.fire("SetContent",t)):("raw"!==t.format&&(e=new o({},n.schema).serialize(n.parser.parse(e,{isRootContent:!0}))),t.content=L(e),n.dom.setHTML(r,t.content),t.no_events||n.fire("SetContent",t)),t.content},getContent:function(e){var t=this,n,r=t.getBody();return e=e||{},e.format=e.format||"html",e.get=!0,e.getInner=!0,e.no_events||t.fire("BeforeGetContent",e),n="raw"==e.format?r.innerHTML:"text"==e.format?r.innerText||r.textContent:t.serializer.serialize(r,e),e.content="text"!=e.format?L(n):n,e.no_events||t.fire("GetContent",e),e.content},insertContent:function(e){this.execCommand("mceInsertContent",!1,e)},isDirty:function(){return!this.isNotDirty},getContainer:function(){var e=this;return e.container||(e.container=E.get(e.editorContainer||e.id+"_parent")),e.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return E.get(this.settings.content_element||this.id)},getWin:function(){var e=this,t;return e.contentWindow||(t=E.get(e.id+"_ifr"),t&&(e.contentWindow=t.contentWindow)),e.contentWindow},getDoc:function(){var e=this,t;return e.contentDocument||(t=e.getWin(),t&&(e.contentDocument=t.document)),e.contentDocument},getBody:function(){return this.bodyElement||this.getDoc().body},convertURL:function(e,t,n){var r=this,i=r.settings;return i.urlconverter_callback?r.execCallback("urlconverter_callback",e,n,!0,t):!i.convert_urls||n&&"LINK"==n.nodeName||0===e.indexOf("file:")||0===e.length?e:i.relative_urls?r.documentBaseURI.toRelative(e):e=r.documentBaseURI.toAbsolute(e,i.remove_script_host)},addVisual:function(e){var n=this,r=n.settings,i=n.dom,o;e=e||n.getBody(),n.hasVisual===t&&(n.hasVisual=r.visual),R(i.select("table,a",e),function(e){var t;switch(e.nodeName){case"TABLE":return o=r.visual_table_class||"mce-item-table",t=i.getAttrib(e,"border"),void(t&&"0"!=t||(n.hasVisual?i.addClass(e,o):i.removeClass(e,o)));case"A":return void(i.getAttrib(e,"href",!1)||(t=i.getAttrib(e,"name")||e.id,o=r.visual_anchor_class||"mce-item-anchor",t&&(n.hasVisual?i.addClass(e,o):i.removeClass(e,o))))}}),n.fire("VisualAid",{element:e,hasVisual:n.hasVisual})},remove:function(){var e=this;if(!e.removed){e.save(),e.fire("remove"),e.off(),e.removed=1,e.hasHiddenInput&&E.remove(e.getElement().nextSibling),E.setStyle(e.id,"display",e.orgDisplay),e.settings.content_editable||(M.unbind(e.getWin()),M.unbind(e.getDoc()));var t=e.getContainer();M.unbind(e.getBody()),M.unbind(t),e.editorManager.remove(e),E.remove(t),e.destroy()}},bindNative:function(e){var t=this;t.settings.readonly||(t.initialized?t.dom.bind(_(t,e),e,function(n){t.fire(e,n)}):t._pendingNativeEvents?t._pendingNativeEvents.push(e):t._pendingNativeEvents=[e])},unbindNative:function(e){var t=this;t.initialized&&t.dom.unbind(e)},destroy:function(e){var t=this,n;if(!t.destroyed){if(!e&&!t.removed)return void t.remove();e&&H&&(M.unbind(t.getDoc()),M.unbind(t.getWin()),M.unbind(t.getBody())),e||(t.editorManager.off("beforeunload",t._beforeUnload),t.theme&&t.theme.destroy&&t.theme.destroy(),t.selection.destroy(),t.dom.destroy()),n=t.formElement,n&&(n._mceOldSubmit&&(n.submit=n._mceOldSubmit,n._mceOldSubmit=null),E.unbind(n,"submit reset",t.formEventDelegate)),t.contentAreaContainer=t.formElement=t.container=t.editorContainer=null,t.settings.content_element=t.bodyElement=t.contentDocument=t.contentWindow=null,t.selection&&(t.selection=t.selection.win=t.selection.dom=t.selection.dom.doc=null),t.destroyed=1}},_refreshContentEditable:function(){var e=this,t,n;e._isHidden()&&(t=e.getBody(),n=t.parentNode,n.removeChild(t),n.appendChild(t),t.focus())},_isHidden:function(){var e;return H?(e=this.selection.getSel(),!e||!e.rangeCount||0===e.rangeCount):0}},T(N.prototype,x),N}),r(at,[],function(){var e={};return{rtl:!1,add:function(t,n){for(var r in n)e[r]=n[r];this.rtl=this.rtl||"rtl"===e._dir},translate:function(t){if("undefined"==typeof t)return t;if("string"!=typeof t&&t.raw)return t.raw;if(t.push){var n=t.slice(1);t=(e[t[0]]||t[0]).replace(/\{([^\}]+)\}/g,function(e,t){return n[t]})}return e[t]||t},data:e}}),r(st,[y,g],function(e,t){function n(e){function a(){try{return document.activeElement}catch(e){return document.body}}function s(e){return e&&e.startContainer?{startContainer:e.startContainer,startOffset:e.startOffset,endContainer:e.endContainer,endOffset:e.endOffset}:e}function l(e,t){var n;return t.startContainer?(n=e.getDoc().createRange(),n.setStart(t.startContainer,t.startOffset),n.setEnd(t.endContainer,t.endOffset)):n=t,n}function c(e){return!!o.getParent(e,n.isEditorUIElement)}function u(e,t){for(var n=t.getBody();e;){if(e==n)return!0;e=e.parentNode}}function d(n){var d=n.editor;d.on("init",function(){(d.inline||t.ie)&&(d.on("nodechange keyup",function(){var e=document.activeElement;e&&e.id==d.id+"_ifr"&&(e=d.getBody()),u(e,d)&&(d.lastRng=d.selection.getRng())}),t.webkit&&!r&&(r=function(){var t=e.activeEditor;if(t&&t.selection){var n=t.selection.getRng();n&&!n.collapsed&&(d.lastRng=n)}},o.bind(document,"selectionchange",r)))}),d.on("setcontent",function(){d.lastRng=null}),d.on("mousedown",function(){d.selection.lastFocusBookmark=null}),d.on("focusin",function(){var t=e.focusedEditor;d.selection.lastFocusBookmark&&(d.selection.setRng(l(d,d.selection.lastFocusBookmark)),d.selection.lastFocusBookmark=null),t!=d&&(t&&t.fire("blur",{focusedEditor:d}),e.activeEditor=d,e.focusedEditor=d,d.fire("focus",{blurredEditor:t}),d.focus(!0)),d.lastRng=null}),d.on("focusout",function(){window.setTimeout(function(){var t=e.focusedEditor;c(a())||t!=d||(d.fire("blur",{focusedEditor:null}),e.focusedEditor=null,d.selection&&(d.selection.lastFocusBookmark=null))},0)}),i||(i=function(t){var n=e.activeEditor;n&&t.target.ownerDocument==document&&(n.selection&&(n.selection.lastFocusBookmark=s(n.lastRng)),c(t.target)||e.focusedEditor!=n||(n.fire("blur",{focusedEditor:null}),e.focusedEditor=null))},o.bind(document,"focusin",i))}function f(t){e.focusedEditor==t.editor&&(e.focusedEditor=null),e.activeEditor||(o.unbind(document,"selectionchange",r),o.unbind(document,"focusin",i),r=i=null)}e.on("AddEditor",d),e.on("RemoveEditor",f)}var r,i,o=e.DOM;return n.isEditorUIElement=function(e){return-1!==e.className.toString().indexOf("mce-")},n}),r(lt,[ot,y,I,g,p,rt,at,st],function(e,n,r,i,o,a,s,l){var c=n.DOM,u=o.explode,d=o.each,f=o.extend,p=0,m,h={majorVersion:"4",minorVersion:"0.20",releaseDate:"2014-03-18",editors:[],i18n:s,activeEditor:null,setup:function(){var e=this,t,n,i="",o;if(n=document.location.href.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(n)||(n+="/"),o=window.tinymce||window.tinyMCEPreInit)t=o.base||o.baseURL,i=o.suffix;else for(var a=document.getElementsByTagName("script"),s=0;s<a.length;s++){var c=a[s].src;if(/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(c)){-1!=c.indexOf(".min")&&(i=".min"),t=c.substring(0,c.lastIndexOf("/"));break}}e.baseURL=new r(n).toAbsolute(t),e.documentBaseURL=n,e.baseURI=new r(e.baseURL),e.suffix=i,e.focusManager=new l(e)},init:function(t){function n(e){var t=e.id;return t||(t=e.name,t=t&&!c.get(t)?e.name:c.uniqueId(),e.setAttribute("id",t)),t}function r(e,t,n){var r=e[t];if(r)return r.apply(n||this,Array.prototype.slice.call(arguments,2))}function i(e,t){return t.constructor===RegExp?t.test(e.className):c.hasClass(e,t)}function o(){var m,h;if(c.unbind(window,"ready",o),r(t,"onpageload"),t.types)return void d(t.types,function(r){d(c.select(r.selector),function(i){var o=new e(n(i),f({},t,r),a);s.push(o),o.render(1)})});if(t.selector)return void d(c.select(t.selector),function(r){var i=new e(n(r),t,a);s.push(i),i.render(1)});switch(t.mode){case"exact":m=t.elements||"",m.length>0&&d(u(m),function(n){c.get(n)?(l=new e(n,t,a),s.push(l),l.render(!0)):d(document.forms,function(r){d(r.elements,function(r){r.name===n&&(n="mce_editor_"+p++,c.setAttrib(r,"id",n),l=new e(n,t,a),s.push(l),l.render(1))})})});break;case"textareas":case"specific_textareas":d(c.select("textarea"),function(r){t.editor_deselector&&i(r,t.editor_deselector)||(!t.editor_selector||i(r,t.editor_selector))&&(l=new e(n(r),t,a),s.push(l),l.render(!0))})}t.oninit&&(m=h=0,d(s,function(e){h++,e.initialized?m++:e.on("init",function(){m++,m==h&&r(t,"oninit")}),m==h&&r(t,"oninit")}))}var a=this,s=[],l;a.settings=t,c.bind(window,"ready",o)},get:function(e){return e===t?this.editors:this.editors[e]},add:function(e){var t=this,n=t.editors;return n[e.id]=e,n.push(e),t.activeEditor=e,t.fire("AddEditor",{editor:e}),m||(m=function(){t.fire("BeforeUnload")},c.bind(window,"beforeunload",m)),e},createEditor:function(t,n){return this.add(new e(t,n,this))},remove:function(e){var t=this,n,r=t.editors,i,o;{if(e){if("string"==typeof e)return e=e.selector||e,void d(c.select(e),function(e){t.remove(r[e.id])});if(i=e,!r[i.id])return null;for(delete r[i.id],n=0;n<r.length;n++)if(r[n]==i){r.splice(n,1),o=!0;break}return t.activeEditor==i&&(t.activeEditor=r[0]),o&&t.fire("RemoveEditor",{editor:i}),r.length||c.unbind(window,"beforeunload",m),i.remove(),i}for(n=r.length-1;n>=0;n--)t.remove(r[n])}},execCommand:function(t,n,r){var i=this,o=i.get(r);switch(t){case"mceAddEditor":return i.get(r)||new e(r,i.settings,i).render(),!0;case"mceRemoveEditor":return o&&o.remove(),!0;case"mceToggleEditor":return o?(o.isHidden()?o.show():o.hide(),!0):(i.execCommand("mceAddEditor",0,r),!0)}return i.activeEditor?i.activeEditor.execCommand(t,n,r):!1},triggerSave:function(){d(this.editors,function(e){e.save()})},addI18n:function(e,t){s.add(e,t)},translate:function(e){return s.translate(e)}};return f(h,a),h.setup(),window.tinymce=window.tinyMCE=h,h}),r(ct,[lt,p],function(e,t){var n=t.each,r=t.explode;e.on("AddEditor",function(e){var t=e.editor;t.on("preInit",function(){function e(e,t){n(t,function(t,n){t&&s.setStyle(e,n,t)}),s.rename(e,"span")}function i(e){s=t.dom,l.convert_fonts_to_spans&&n(s.select("font,u,strike",e.node),function(e){o[e.nodeName.toLowerCase()](s,e)})}var o,a,s,l=t.settings;l.inline_styles&&(a=r(l.font_size_legacy_values),o={font:function(t,n){e(n,{backgroundColor:n.style.backgroundColor,color:n.color,fontFamily:n.face,fontSize:a[parseInt(n.size,10)-1]})},u:function(t,n){e(n,{textDecoration:"underline"})},strike:function(t,n){e(n,{textDecoration:"line-through"})}},t.on("PreProcess SetContent",i))})})}),r(ut,[],function(){return{send:function(e){function t(){!e.async||4==n.readyState||r++>1e4?(e.success&&1e4>r&&200==n.status?e.success.call(e.success_scope,""+n.responseText,n,e):e.error&&e.error.call(e.error_scope,r>1e4?"TIMED_OUT":"GENERAL",n,e),n=null):setTimeout(t,10)}var n,r=0;if(e.scope=e.scope||this,e.success_scope=e.success_scope||e.scope,e.error_scope=e.error_scope||e.scope,e.async=e.async===!1?!1:!0,e.data=e.data||"",n=new XMLHttpRequest){if(n.overrideMimeType&&n.overrideMimeType(e.content_type),n.open(e.type||(e.data?"POST":"GET"),e.url,e.async),e.content_type&&n.setRequestHeader("Content-Type",e.content_type),n.setRequestHeader("X-Requested-With","XMLHttpRequest"),n.send(e.data),!e.async)return t();setTimeout(t,10)}}}}),r(dt,[],function(){function e(t,n){var r,i,o,a;if(n=n||'"',null===t)return"null";if(o=typeof t,"string"==o)return i="\bb t\nn\ff\rr\"\"''\\\\",n+t.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(e,t){return'"'===n&&"'"===e?e:(r=i.indexOf(t),r+1?"\\"+i.charAt(r+1):(e=t.charCodeAt().toString(16),"\\u"+"0000".substring(e.length)+e))})+n;if("object"==o){if(t.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(t)){for(r=0,i="[";r<t.length;r++)i+=(r>0?",":"")+e(t[r],n);return i+"]"}i="{";for(a in t)t.hasOwnProperty(a)&&(i+="function"!=typeof t[a]?(i.length>1?","+n:n)+a+n+":"+e(t[a],n):"");return i+"}"}return""+t}return{serialize:e,parse:function(e){try{return window[String.fromCharCode(101)+"val"]("("+e+")")}catch(t){}}}}),r(ft,[dt,ut,p],function(e,t,n){function r(e){this.settings=i({},e),this.count=0}var i=n.extend;return r.sendRPC=function(e){return(new r).send(e)},r.prototype={send:function(n){var r=n.error,o=n.success;n=i(this.settings,n),n.success=function(t,i){t=e.parse(t),"undefined"==typeof t&&(t={error:"JSON Parse error."}),t.error?r.call(n.error_scope||n.scope,t.error,i):o.call(n.success_scope||n.scope,t.result)},n.error=function(e,t){r&&r.call(n.error_scope||n.scope,e,t)},n.data=e.serialize({id:n.id||"c"+this.count++,method:n.method,params:n.params}),n.content_type="application/json",t.send(n)}},r}),r(pt,[y],function(e){return{callbacks:{},count:0,send:function(n){var r=this,i=e.DOM,o=n.count!==t?n.count:r.count,a="tinymce_jsonp_"+o;r.callbacks[o]=function(e){i.remove(a),delete r.callbacks[o],n.callback(e)},i.add(i.doc.body,"script",{id:a,src:n.url,type:"text/javascript"}),r.count++}}}),r(mt,[],function(){function e(){s=[];for(var e in a)s.push(e);i.length=s.length}function n(){function n(e){var n,r;return r=e!==t?u+e:i.indexOf(",",u),-1===r||r>i.length?null:(n=i.substring(u,r),u=r+1,n)}var r,i,s,u=0;if(a={},c){o.load(l),i=o.getAttribute(l)||"";do{var d=n();if(null===d)break;if(r=n(parseInt(d,32)||0),null!==r){if(d=n(),null===d)break;s=n(parseInt(d,32)||0),r&&(a[r]=s)}}while(null!==r);e()}}function r(){var t,n="";if(c){for(var r in a)t=a[r],n+=(n?",":"")+r.length.toString(32)+","+r+","+t.length.toString(32)+","+t;o.setAttribute(l,n);try{o.save(l)}catch(i){}e()}}var i,o,a,s,l,c;try{if(window.localStorage)return localStorage}catch(u){}return l="tinymce",o=document.documentElement,c=!!o.addBehavior,c&&o.addBehavior("#default#userData"),i={key:function(e){return s[e]},getItem:function(e){return e in a?a[e]:null},setItem:function(e,t){a[e]=""+t,r()},removeItem:function(e){delete a[e],r()},clear:function(){a={},r()}},n(),i}),r(ht,[y,l,b,C,p,g],function(e,t,n,r,i,o){var a=window.tinymce;return a.DOM=e.DOM,a.ScriptLoader=n.ScriptLoader,a.PluginManager=r.PluginManager,a.ThemeManager=r.ThemeManager,a.dom=a.dom||{},a.dom.Event=t.Event,i.each(i,function(e,t){a[t]=e}),i.each("isOpera isWebKit isIE isGecko isMac".split(" "),function(e){a[e]=o[e.substr(2).toLowerCase()]}),{}}),r(gt,[F,p],function(e,t){return e.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(e){this.settings=t.extend({},this.Defaults,e)},preRender:function(e){e.addClass(this.settings.containerClass,"body")},applyClasses:function(e){var t=this,n=t.settings,r,i,o;r=e.items().filter(":visible"),i=n.firstControlClass,o=n.lastControlClass,r.each(function(e){e.removeClass(i).removeClass(o),n.controlClass&&e.addClass(n.controlClass)}),r.eq(0).addClass(i),r.eq(-1).addClass(o)},renderHtml:function(e){var t=this,n=t.settings,r,i="";return r=e.items(),r.eq(0).addClass(n.firstControlClass),r.eq(-1).addClass(n.lastControlClass),r.each(function(e){n.controlClass&&e.addClass(n.controlClass),i+=e.renderHtml()}),i},recalc:function(){},postRender:function(){}})}),r(vt,[gt],function(e){return e.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(e){e.items().filter(":visible").each(function(e){var t=e.settings;e.layoutRect({x:t.x,y:t.y,w:t.w,h:t.h}),e.recalc&&e.recalc()})},renderHtml:function(e){return'<div id="'+e._id+'-absend" class="'+e.classPrefix+'abs-end"></div>'+this._super(e)}})}),r(yt,[U,X],function(e,t){return e.extend({Mixins:[t],Defaults:{classes:"widget tooltip tooltip-n"},text:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t._rendered&&(t.getEl().lastChild.innerHTML=t.encode(e)),t):t._value},renderHtml:function(){var e=this,t=e.classPrefix;return'<div id="'+e._id+'" class="'+e.classes()+'" role="presentation"><div class="'+t+'tooltip-arrow"></div><div class="'+t+'tooltip-inner">'+e.encode(e._text)+"</div></div>"},repaint:function(){var e=this,t,n;t=e.getEl().style,n=e._layoutRect,t.left=n.x+"px",t.top=n.y+"px",t.zIndex=131070}})}),r(bt,[U,yt],function(e,t){var n,r=e.extend({init:function(e){var t=this;t._super(e),t.canFocus=!0,e.tooltip&&r.tooltips!==!1&&(t.on("mouseenter",function(n){var r=t.tooltip().moveTo(-65535);if(n.control==t){var i=r.text(e.tooltip).show().testMoveRel(t.getEl(),["bc-tc","bc-tl","bc-tr"]);r.toggleClass("tooltip-n","bc-tc"==i),r.toggleClass("tooltip-nw","bc-tl"==i),r.toggleClass("tooltip-ne","bc-tr"==i),r.moveRel(t.getEl(),i)}else r.hide()}),t.on("mouseleave mousedown click",function(){t.tooltip().hide()})),t.aria("label",e.ariaLabel||e.tooltip)},tooltip:function(){return n||(n=new t({type:"tooltip"}),n.renderTo()),n},active:function(e){var t=this,n;return e!==n&&(t.aria("pressed",e),t.toggleClass("active",e)),t._super(e)},disabled:function(e){var t=this,n;return e!==n&&(t.aria("disabled",e),t.toggleClass("disabled",e)),t._super(e)},postRender:function(){var e=this,t=e.settings;e._rendered=!0,e._super(),e.parent()||!t.width&&!t.height||(e.initLayoutRect(),e.repaint()),t.autofocus&&e.focus()},remove:function(){this._super(),n&&(n.remove(),n=null)}});return r}),r(Ct,[bt],function(e){return e.extend({Defaults:{classes:"widget btn",role:"button"},init:function(e){var t=this,n;t.on("click mousedown",function(e){e.preventDefault()}),t._super(e),n=e.size,e.subtype&&t.addClass(e.subtype),n&&t.addClass("btn-"+n)},icon:function(e){var t=this,n=t.classPrefix;if("undefined"==typeof e)return t.settings.icon;if(t.settings.icon=e,e=e?n+"ico "+n+"i-"+t.settings.icon:"",t._rendered){var r=t.getEl().firstChild,i=r.getElementsByTagName("i")[0];e?(i&&i==r.firstChild||(i=document.createElement("i"),r.insertBefore(i,r.firstChild)),i.className=e):i&&r.removeChild(i),t.text(t._text)}return t},repaint:function(){var e=this.getEl().firstChild.style;e.width=e.height="100%",this._super()},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon,i="";return e.settings.image&&(r="none",i=" style=\"background-image: url('"+e.settings.image+"')\""),r=e.settings.icon?n+"ico "+n+"i-"+r:"",'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1" aria-labelledby="'+t+'"><button role="presentation" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+i+"></i>":"")+(e._text?(r?"\xa0":"")+e.encode(e._text):"")+"</button></div>"}})}),r(xt,[j],function(e){return e.extend({Defaults:{defaultType:"button",role:"group"},renderHtml:function(){var e=this,t=e._layout;return e.addClass("btn-group"),e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'"><div id="'+e._id+'-body">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}})}),r(wt,[bt],function(e){return e.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(e){var t=this;t._super(e),t.on("click mousedown",function(e){e.preventDefault()}),t.on("click",function(e){e.preventDefault(),t.disabled()||t.checked(!t.checked())}),t.checked(t.settings.checked)},checked:function(e){var t=this;return"undefined"!=typeof e?(e?t.addClass("checked"):t.removeClass("checked"),t._checked=e,t.aria("checked",e),t):t._checked},value:function(e){return this.checked(e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix;return'<div id="'+t+'" class="'+e.classes()+'" unselectable="on" aria-labelledby="'+t+'-al" tabindex="-1"><i class="'+n+"ico "+n+'i-checkbox"></i><span id="'+t+'-al" class="'+n+'label">'+e.encode(e._text)+"</span></div>"}})}),r(_t,[Ct,Q],function(e,t){return e.extend({showPanel:function(){var e=this,n=e.settings;if(e.active(!0),e.panel)e.panel.show();else{var r=n.panel;r.type&&(r={layout:"grid",items:r}),r.role=r.role||"dialog",r.popover=!0,r.autohide=!0,r.ariaRoot=!0,e.panel=new t(r).on("hide",function(){e.active(!1)}).on("cancel",function(t){t.stopPropagation(),e.focus(),e.hidePanel()}).parent(e).renderTo(e.getContainerElm()),e.panel.fire("show"),e.panel.reflow()}e.panel.moveRel(e.getEl(),n.popoverAlign||(e.isRtl()?["bc-tr","bc-tc"]:["bc-tl","bc-tc"]))},hidePanel:function(){var e=this;e.panel&&e.panel.hide()},postRender:function(){var e=this;return e.aria("haspopup",!0),e.on("click",function(t){t.control===e&&(e.panel&&e.panel.visible()?e.hidePanel():(e.showPanel(),e.panel.focus(!!t.aria)))}),e._super()}})}),r(Nt,[_t,y],function(e,t){var n=t.DOM;return e.extend({init:function(e){this._super(e),this.addClass("colorbutton")},color:function(e){return e?(this._color=e,this.getEl("preview").style.backgroundColor=e,this):this._color},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"",i=e.settings.image?" style=\"background-image: url('"+e.settings.image+"')\"":"";return'<div id="'+t+'" class="'+e.classes()+'" role="button" tabindex="-1" aria-haspopup="true"><button role="presentation" hidefocus type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+i+"></i>":"")+'<span id="'+t+'-preview" class="'+n+'preview"></span>'+(e._text?(r?" ":"")+e._text:"")+'</button><button type="button" class="'+n+'open" hidefocus tabindex="-1"> <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(r){r.aria&&"down"==r.aria.key||r.control!=e||n.getParent(r.target,"."+e.classPrefix+"open")||(r.stopImmediatePropagation(),t.call(e,r))}),delete e.settings.onclick,e._super()}})}),r(Et,[bt,q,V],function(e,t,n){return e.extend({init:function(e){var t=this;t._super(e),t.addClass("combobox"),t.subinput=!0,t.ariaTarget="inp",e=t.settings,e.menu=e.menu||e.values,e.menu&&(e.icon="caret"),t.on("click",function(n){for(var r=n.target,i=t.getEl();r&&r!=i;)r.id&&-1!=r.id.indexOf("-open")&&(t.fire("action"),e.menu&&(t.showMenu(),n.aria&&t.menu.items()[0].focus())),r=r.parentNode}),t.on("keydown",function(e){"INPUT"==e.target.nodeName&&13==e.keyCode&&t.parents().reverse().each(function(n){return e.preventDefault(),t.fire("change"),n.hasEventListeners("submit")&&n.toJSON?(n.fire("submit",{data:n.toJSON()}),!1):void 0})}),e.placeholder&&(t.addClass("placeholder"),t.on("focusin",function(){t._hasOnChange||(n.on(t.getEl("inp"),"change",function(){t.fire("change")}),t._hasOnChange=!0),t.hasClass("placeholder")&&(t.getEl("inp").value="",t.removeClass("placeholder"))}),t.on("focusout",function(){0===t.value().length&&(t.getEl("inp").value=e.placeholder,t.addClass("placeholder"))}))},showMenu:function(){var e=this,n=e.settings,r;e.menu||(r=n.menu||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(e.getContainerElm()),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control===e.menu&&e.focus()}),e.menu.on("show hide",function(t){t.control.items().each(function(t){t.active(t.value()==e.value())})}).fire("show"),e.menu.on("select",function(t){e.value(t.control.value())}),e.on("focusin",function(t){"INPUT"==t.target.tagName&&e.menu.hide()}),e.aria("expanded",!0)),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},value:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t.removeClass("placeholder"),t._rendered&&(t.getEl("inp").value=e),t):t._rendered?(e=t.getEl("inp").value,e!=t.settings.placeholder?e:""):t._value},disabled:function(e){var t=this;return t._rendered&&"undefined"!=typeof e&&(t.getEl("inp").disabled=e),t._super(e)},focus:function(){this.getEl("inp").focus()},repaint:function(){var e=this,t=e.getEl(),r=e.getEl("open"),i=e.layoutRect(),o,a;o=r?i.w-n.getSize(r).width-10:i.w-10;var s=document;return s.all&&(!s.documentMode||s.documentMode<=8)&&(a=e.layoutRect().h-2+"px"),n.css(t.firstChild,{width:o,lineHeight:a}),e._super(),e},postRender:function(){var e=this;return n.on(this.getEl("inp"),"change",function(){e.fire("change")}),e._super()},remove:function(){n.off(this.getEl("inp")),this._super()},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.classPrefix,i=n.value||n.placeholder||"",o,a,s="",l="";return"spellcheck"in n&&(l+=' spellcheck="'+n.spellcheck+'"'),n.maxLength&&(l+=' maxlength="'+n.maxLength+'"'),n.size&&(l+=' size="'+n.size+'"'),n.subtype&&(l+=' type="'+n.subtype+'"'),e.disabled()&&(l+=' disabled="disabled"'),o=n.icon,o&&"caret"!=o&&(o=r+"ico "+r+"i-"+n.icon),a=e._text,(o||a)&&(s='<div id="'+t+'-open" class="'+r+"btn "+r+'open" tabIndex="-1" role="button"><button id="'+t+'-action" type="button" hidefocus tabindex="-1">'+("caret"!=o?'<i class="'+o+'"></i>':'<i class="'+r+'caret"></i>')+(a?(o?" ":"")+a:"")+"</button></div>",e.addClass("has-open")),'<div id="'+t+'" class="'+e.classes()+'"><input id="'+t+'-inp" class="'+r+"textbox "+r+'placeholder" value="'+i+'" hidefocus="true"'+l+">"+s+"</div>"}})}),r(St,[bt],function(e){return e.extend({init:function(e){var t=this;e.delimiter||(e.delimiter="\xbb"),t._super(e),t.addClass("path"),t.canFocus=!0,t.on("click",function(e){var n,r=e.target;(n=r.getAttribute("data-index"))&&t.fire("select",{value:t.data()[n],index:n})})},focus:function(){var e=this;return e.getEl().firstChild.focus(),e},data:function(e){var t=this;return"undefined"!=typeof e?(t._data=e,t.update(),t):t._data},update:function(){this.innerHtml(this._getPathHtml())},postRender:function(){var e=this;e._super(),e.data(e.settings.data)},renderHtml:function(){var e=this;return'<div id="'+e._id+'" class="'+e.classes()+'">'+e._getPathHtml()+"</div>"},_getPathHtml:function(){var e=this,t=e._data||[],n,r,i="",o=e.classPrefix;for(n=0,r=t.length;r>n;n++)i+=(n>0?'<div class="'+o+'divider" aria-hidden="true"> '+e.settings.delimiter+" </div>":"")+'<div role="button" class="'+o+"path-item"+(n==r-1?" "+o+"last":"")+'" data-index="'+n+'" tabindex="-1" id="'+e._id+"-"+n+'" aria-level="'+n+'">'+t[n].name+"</div>";return i||(i='<div class="'+o+'path-item"> </div>'),i}})}),r(kt,[St,lt],function(e,t){return e.extend({postRender:function(){function e(e){if(1===e.nodeType){if("BR"==e.nodeName||e.getAttribute("data-mce-bogus"))return!0;if("bookmark"===e.getAttribute("data-mce-type"))return!0}return!1}var n=this,r=t.activeEditor;return n.on("select",function(t){var n=[],i,o=r.getBody();for(r.focus(),i=r.selection.getStart();i&&i!=o;)e(i)||n.push(i),i=i.parentNode;r.selection.select(n[n.length-1-t.index]),r.nodeChanged()}),r.on("nodeChange",function(t){for(var i=[],o=t.parents,a=o.length;a--;)if(1==o[a].nodeType&&!e(o[a])){var s=r.fire("ResolveName",{name:o[a].nodeName.toLowerCase(),target:o[a]});i.push({name:s.name})}n.data(i)}),n._super()}})}),r(Tt,[j],function(e){return e.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.addClass("formitem"),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'" hideFocus="1" tabIndex="-1">'+(e.settings.title?'<div id="'+e._id+'-title" class="'+n+'title">'+e.settings.title+"</div>":"")+'<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}})}),r(Rt,[j,Tt],function(e,t){return e.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:20,labelGap:30,spacing:10,callbacks:{submit:function(){this.submit()}}},preRender:function(){var e=this,n=e.items();n.each(function(n){var r,i=n.settings.label;i&&(r=new t({layout:"flex",autoResize:"overflow",defaults:{flex:1},items:[{type:"label",id:n._id+"-l",text:i,flex:0,forId:n._id,disabled:n.disabled()}]}),r.type="formitem",n.aria("labelledby",n._id+"-l"),"undefined"==typeof n.settings.flex&&(n.settings.flex=1),e.replace(n,r),r.add(n))})},recalcLabels:function(){var e=this,t=0,n=[],r,i;if(e.settings.labelGapCalc!==!1)for(e.items().filter("formitem").each(function(e){var r=e.items()[0],i=r.getEl().clientWidth;t=i>t?i:t,n.push(r)}),i=e.settings.labelGap||0,r=n.length;r--;)n[r].settings.minWidth=t+i},visible:function(e){var t=this._super(e);return e===!0&&this._rendered&&this.recalcLabels(),t},submit:function(){return this.fire("submit",{data:this.toJSON()})},postRender:function(){var e=this;e._super(),e.recalcLabels(),e.fromJSON(e.settings.data)}})}),r(At,[Rt],function(e){return e.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column",align:"stretch",flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.preRender(),t.preRender(e),'<fieldset id="'+e._id+'" class="'+e.classes()+'" hideFocus="1" tabIndex="-1">'+(e.settings.title?'<legend id="'+e._id+'-title" class="'+n+'fieldset-title">'+e.settings.title+"</legend>":"")+'<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></fieldset>"}})}),r(Bt,[Et],function(e){return e.extend({init:function(e){var t=this,n=tinymce.activeEditor,r;e.spellcheck=!1,r=n.settings.file_browser_callback,r&&(e.icon="browse",e.onaction=function(){r(t.getEl("inp").id,t.getEl("inp").value,e.filetype,window)}),t._super(e)}})}),r(Lt,[vt],function(e){return e.extend({recalc:function(e){var t=e.layoutRect(),n=e.paddingBox();e.items().filter(":visible").each(function(e){e.layoutRect({x:n.left,y:n.top,w:t.innerW-n.right-n.left,h:t.innerH-n.top-n.bottom}),e.recalc&&e.recalc() +})}})}),r(Dt,[vt],function(e){return e.extend({recalc:function(e){var t,n,r,i,o,a,s,l,c,u,d,f,p,m,h,g,v=[],y,b,C,x,w,_,N,E,S,k,T,R,A,B,L,D,M,H,P,O,I,F,z=Math.max,W=Math.min;for(r=e.items().filter(":visible"),i=e.layoutRect(),o=e._paddingBox,a=e.settings,f=e.isRtl()?a.direction||"row-reversed":a.direction,s=a.align,l=e.isRtl()?a.pack||"end":a.pack,c=a.spacing||0,("row-reversed"==f||"column-reverse"==f)&&(r=r.set(r.toArray().reverse()),f=f.split("-")[0]),"column"==f?(S="y",N="h",E="minH",k="maxH",R="innerH",T="top",A="deltaH",B="contentH",P="left",M="w",L="x",D="innerW",H="minW",O="right",I="deltaW",F="contentW"):(S="x",N="w",E="minW",k="maxW",R="innerW",T="left",A="deltaW",B="contentW",P="top",M="h",L="y",D="innerH",H="minH",O="bottom",I="deltaH",F="contentH"),d=i[R]-o[T]-o[T],_=u=0,t=0,n=r.length;n>t;t++)p=r[t],m=p.layoutRect(),h=p.settings,g=h.flex,d-=n-1>t?c:0,g>0&&(u+=g,m[k]&&v.push(p),m.flex=g),d-=m[E],y=o[P]+m[H]+o[O],y>_&&(_=y);if(x={},x[E]=0>d?i[E]-d+i[A]:i[R]-d+i[A],x[H]=_+i[I],x[B]=i[R]-d,x[F]=_,x.minW=W(x.minW,i.maxW),x.minH=W(x.minH,i.maxH),x.minW=z(x.minW,i.startMinWidth),x.minH=z(x.minH,i.startMinHeight),!i.autoResize||x.minW==i.minW&&x.minH==i.minH){for(C=d/u,t=0,n=v.length;n>t;t++)p=v[t],m=p.layoutRect(),b=m[k],y=m[E]+m.flex*C,y>b?(d-=m[k]-m[E],u-=m.flex,m.flex=0,m.maxFlexSize=b):m.maxFlexSize=0;for(C=d/u,w=o[T],x={},0===u&&("end"==l?w=d+o[T]:"center"==l?(w=Math.round(i[R]/2-(i[R]-d)/2)+o[T],0>w&&(w=o[T])):"justify"==l&&(w=o[T],c=Math.floor(d/(r.length-1)))),x[L]=o[P],t=0,n=r.length;n>t;t++)p=r[t],m=p.layoutRect(),y=m.maxFlexSize||m[E],"center"===s?x[L]=Math.round(i[D]/2-m[M]/2):"stretch"===s?(x[M]=z(m[H]||0,i[D]-o[P]-o[O]),x[L]=o[P]):"end"===s&&(x[L]=i[D]-m[M]-o.top),m.flex>0&&(y+=m.flex*C),x[N]=y,x[S]=w,p.layoutRect(x),p.recalc&&p.recalc(),w+=y+c}else if(x.w=x.minW,x.h=x.minH,e.layoutRect(x),this.recalc(e),null===e._lastRect){var V=e.parent();V&&(V._lastRect=null,V.recalc())}}})}),r(Mt,[gt],function(e){return e.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(e){e.items().filter(":visible").each(function(e){e.recalc&&e.recalc()})}})}),r(Ht,[U,bt,Q,p,lt,g],function(e,t,n,r,i,o){function a(e){function t(t){function n(e){return e.replace(/%(\w+)/g,"")}var r,i,o=e.dom,a="",l,c;return c=e.settings.preview_styles,c===!1?"":(c||(c="font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow"),(t=e.formatter.get(t))?(t=t[0],r=t.block||t.inline||"span",i=o.create(r),s(t.styles,function(e,t){e=n(e),e&&o.setStyle(i,t,e)}),s(t.attributes,function(e,t){e=n(e),e&&o.setAttrib(i,t,e)}),s(t.classes,function(e){e=n(e),o.hasClass(i,e)||o.addClass(i,e)}),e.fire("PreviewFormats"),o.setStyles(i,{position:"absolute",left:-65535}),e.getBody().appendChild(i),l=o.getStyle(e.getBody(),"fontSize",!0),l=/px$/.test(l)?parseInt(l,10):0,s(c.split(" "),function(t){var n=o.getStyle(i,t,!0);if(!("background-color"==t&&/transparent|rgba\s*\([^)]+,\s*0\)/.test(n)&&(n=o.getStyle(e.getBody(),t,!0),"#ffffff"==o.toHex(n).toLowerCase())||"color"==t&&"#000000"==o.toHex(n).toLowerCase())){if("font-size"==t&&/em|%$/.test(n)){if(0===l)return;n=parseFloat(n,10)/(/%$/.test(n)?100:1),n=n*l+"px"}"border"==t&&n&&(a+="padding:0 2px;"),a+=t+":"+n+";"}}),e.fire("AfterPreviewFormats"),o.remove(i),a):void 0)}function r(t,n){return function(){var r=this;e.on("nodeChange",function(i){var o=e.formatter,a=null;s(i.parents,function(e){return s(t,function(t){return n?o.matchNode(e,n,{value:t.value})&&(a=t.value):o.matchNode(e,t.value)&&(a=t.value),a?!1:void 0}),a?!1:void 0}),r.value(a)})}}function i(e){e=e.split(";");for(var t=e.length;t--;)e[t]=e[t].split("=");return e}function o(){function n(e){var t=[];if(e)return s(e,function(e){var r={text:e.title,icon:e.icon};if(e.items)r.menu=n(e.items);else{var a=e.format||"custom"+i++;e.format||(e.name=a,o.push(e)),r.format=a}t.push(r)}),t}function r(){var t;return t=n(e.settings.style_formats_merge?e.settings.style_formats?a.concat(e.settings.style_formats):a:e.settings.style_formats||a)}var i=0,o=[],a=[{title:"Headers",items:[{title:"Header 1",format:"h1"},{title:"Header 2",format:"h2"},{title:"Header 3",format:"h3"},{title:"Header 4",format:"h4"},{title:"Header 5",format:"h5"},{title:"Header 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}];return e.on("init",function(){s(o,function(t){e.formatter.register(t.name,t)})}),{type:"menu",items:r(),onPostRender:function(t){e.fire("renderFormatsMenu",{control:t.control})},itemDefaults:{preview:!0,textStyle:function(){return this.settings.format?t(this.settings.format):void 0},onPostRender:function(){var t=this,n=this.settings.format;n&&t.parent().on("show",function(){t.disabled(!e.formatter.canApply(n)),t.active(e.formatter.match(n))})},onclick:function(){this.settings.format&&f(this.settings.format)}}}}function a(){return e.undoManager?e.undoManager.hasUndo():!1}function l(){return e.undoManager?e.undoManager.hasRedo():!1}function c(){var t=this;t.disabled(!a()),e.on("Undo Redo AddUndo TypingUndo",function(){t.disabled(!a())})}function u(){var t=this;t.disabled(!l()),e.on("Undo Redo AddUndo TypingUndo",function(){t.disabled(!l())})}function d(){var t=this;e.on("VisualAid",function(e){t.active(e.hasVisual)}),t.active(e.hasVisual)}function f(t){t.control&&(t=t.control.value()),t&&e.execCommand("mceToggleFormat",!1,t)}var p;p=o(),s({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(t,n){e.addButton(n,{tooltip:t,onPostRender:function(){var t=this;e.formatter?e.formatter.formatChanged(n,function(e){t.active(e)}):e.on("init",function(){e.formatter.formatChanged(n,function(e){t.active(e)})})},onclick:function(){f(n)}})}),s({outdent:["Decrease indent","Outdent"],indent:["Increase indent","Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste","Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],hr:["Insert horizontal rule","InsertHorizontalRule"],removeformat:["Clear formatting","RemoveFormat"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:["New document","mceNewDocument"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1]})}),s({blockquote:["Blockquote","mceBlockQuote"],numlist:["Numbered list","InsertOrderedList"],bullist:["Bullet list","InsertUnorderedList"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1],onPostRender:function(){var t=this;e.formatter?e.formatter.formatChanged(n,function(e){t.active(e)}):e.on("init",function(){e.formatter.formatChanged(n,function(e){t.active(e)})})}})}),e.addButton("undo",{tooltip:"Undo",onPostRender:c,cmd:"undo"}),e.addButton("redo",{tooltip:"Redo",onPostRender:u,cmd:"redo"}),e.addMenuItem("newdocument",{text:"New document",shortcut:"Ctrl+N",icon:"newdocument",cmd:"mceNewDocument"}),e.addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Ctrl+Z",onPostRender:c,cmd:"undo"}),e.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Ctrl+Y",onPostRender:u,cmd:"redo"}),e.addMenuItem("visualaid",{text:"Visual aids",selectable:!0,onPostRender:d,cmd:"mceToggleVisualAid"}),s({cut:["Cut","Cut","Ctrl+X"],copy:["Copy","Copy","Ctrl+C"],paste:["Paste","Paste","Ctrl+V"],selectall:["Select all","SelectAll","Ctrl+A"],bold:["Bold","Bold","Ctrl+B"],italic:["Italic","Italic","Ctrl+I"],underline:["Underline","Underline"],strikethrough:["Strikethrough","Strikethrough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"]},function(t,n){e.addMenuItem(n,{text:t[0],icon:n,shortcut:t[2],cmd:t[1]})}),e.on("mousedown",function(){n.hideAll()}),e.addButton("styleselect",{type:"menubutton",text:"Formats",menu:p}),e.addButton("formatselect",function(){var n=[],o=i(e.settings.block_formats||"Paragraph=p;Address=address;Pre=pre;Header 1=h1;Header 2=h2;Header 3=h3;Header 4=h4;Header 5=h5;Header 6=h6");return s(o,function(e){n.push({text:e[0],value:e[1],textStyle:function(){return t(e[1])}})}),{type:"listbox",text:o[0][0],values:n,fixedWidth:!0,onselect:f,onPostRender:r(n)}}),e.addButton("fontselect",function(){var t="Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats",n=[],o=i(e.settings.font_formats||t);return s(o,function(e){n.push({text:{raw:e[0]},value:e[1],textStyle:-1==e[1].indexOf("dings")?"font-family:"+e[1]:""})}),{type:"listbox",text:"Font Family",tooltip:"Font Family",values:n,fixedWidth:!0,onPostRender:r(n,"fontname"),onselect:function(t){t.control.settings.value&&e.execCommand("FontName",!1,t.control.settings.value)}}}),e.addButton("fontsizeselect",function(){var t=[],n="8pt 10pt 12pt 14pt 18pt 24pt 36pt",i=e.settings.fontsize_formats||n;return s(i.split(" "),function(e){t.push({text:e,value:e})}),{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:t,fixedWidth:!0,onPostRender:r(t,"fontsize"),onclick:function(t){t.control.settings.value&&e.execCommand("FontSize",!1,t.control.settings.value)}}}),e.addMenuItem("formats",{text:"Formats",menu:p})}var s=r.each;i.on("AddEditor",function(t){t.editor.rtl&&(e.rtl=!0),a(t.editor)}),e.translate=function(e){return i.translate(e)},t.tooltips=!o.iOS}),r(Pt,[vt],function(e){return e.extend({recalc:function(e){var t=e.settings,n,r,i,o,a,s,l,c,u,d,f,p,m,h,g,v,y,b,C,x,w,_,N=[],E=[],S,k,T,R;for(t=e.settings,i=e.items().filter(":visible"),o=e.layoutRect(),r=t.columns||Math.ceil(Math.sqrt(i.length)),n=Math.ceil(i.length/r),y=t.spacingH||t.spacing||0,b=t.spacingV||t.spacing||0,C=t.alignH||t.align,x=t.alignV||t.align,g=e._paddingBox,C&&"string"==typeof C&&(C=[C]),x&&"string"==typeof x&&(x=[x]),d=0;r>d;d++)N.push(0);for(f=0;n>f;f++)E.push(0);for(f=0;n>f;f++)for(d=0;r>d&&(u=i[f*r+d],u);d++)c=u.layoutRect(),S=c.minW,k=c.minH,N[d]=S>N[d]?S:N[d],E[f]=k>E[f]?k:E[f];for(T=o.innerW-g.left-g.right,w=0,d=0;r>d;d++)w+=N[d]+(d>0?y:0),T-=(d>0?y:0)+N[d];for(R=o.innerH-g.top-g.bottom,_=0,f=0;n>f;f++)_+=E[f]+(f>0?b:0),R-=(f>0?b:0)+E[f];if(w+=g.left+g.right,_+=g.top+g.bottom,l={},l.minW=w+(o.w-o.innerW),l.minH=_+(o.h-o.innerH),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH,l.minW=Math.min(l.minW,o.maxW),l.minH=Math.min(l.minH,o.maxH),l.minW=Math.max(l.minW,o.startMinWidth),l.minH=Math.max(l.minH,o.startMinHeight),!o.autoResize||l.minW==o.minW&&l.minH==o.minH){o.autoResize&&(l=e.layoutRect(l),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH);var A;A="start"==t.packV?0:R>0?Math.floor(R/n):0;var B=0,L=t.flexWidths;if(L)for(d=0;d<L.length;d++)B+=L[d];else B=r;var D=T/B;for(d=0;r>d;d++)N[d]+=L?L[d]*D:D;for(m=g.top,f=0;n>f;f++){for(p=g.left,s=E[f]+A,d=0;r>d&&(u=i[f*r+d],u);d++)h=u.settings,c=u.layoutRect(),a=Math.max(N[d],c.startMinWidth),c.x=p,c.y=m,v=h.alignH||(C?C[d]||C[0]:null),"center"==v?c.x=p+a/2-c.w/2:"right"==v?c.x=p+a-c.w:"stretch"==v&&(c.w=a),v=h.alignV||(x?x[d]||x[0]:null),"center"==v?c.y=m+s/2-c.h/2:"bottom"==v?c.y=m+s-c.h:"stretch"==v&&(c.h=s),u.layoutRect(c),p+=a+y,u.recalc&&u.recalc();m+=s+b}}else if(l.w=l.minW,l.h=l.minH,e.layoutRect(l),this.recalc(e),null===e._lastRect){var M=e.parent();M&&(M._lastRect=null,M.recalc())}}})}),r(Ot,[bt],function(e){return e.extend({renderHtml:function(){var e=this;return e.addClass("iframe"),e.canFocus=!1,'<iframe id="'+e._id+'" class="'+e.classes()+'" tabindex="-1" src="'+(e.settings.url||"javascript:''")+'" frameborder="0"></iframe>'},src:function(e){this.getEl().src=e},html:function(e,t){var n=this,r=this.getEl().contentWindow.document.body;return r?(r.innerHTML=e,t&&t()):setTimeout(function(){n.html(e)},0),this}})}),r(It,[bt,V],function(e,t){return e.extend({init:function(e){var t=this;t._super(e),t.addClass("widget"),t.addClass("label"),t.canFocus=!1,e.multiline&&t.addClass("autoscroll"),e.strong&&t.addClass("strong")},initLayoutRect:function(){var e=this,n=e._super();if(e.settings.multiline){var r=t.getSize(e.getEl());r.width>n.maxW&&(n.minW=n.maxW,e.addClass("multiline")),e.getEl().style.width=n.minW+"px",n.startMinH=n.h=n.minH=Math.min(n.maxH,t.getSize(e.getEl()).height)}return n},repaint:function(){var e=this;return e.settings.multiline||(e.getEl().style.lineHeight=e.layoutRect().h+"px"),e._super()},text:function(e){var t=this;return t._rendered&&e&&this.innerHtml(t.encode(e)),t._super(e)},renderHtml:function(){var e=this,t=e.settings.forId;return'<label id="'+e._id+'" class="'+e.classes()+'"'+(t?' for="'+t+'"':"")+">"+e.encode(e._text)+"</label>"}})}),r(Ft,[j],function(e){return e.extend({Defaults:{role:"toolbar",layout:"flow"},init:function(e){var t=this;t._super(e),t.addClass("toolbar")},postRender:function(){var e=this;return e.items().addClass("toolbar-item"),e._super()}})}),r(zt,[Ft],function(e){return e.extend({Defaults:{role:"menubar",containerCls:"menubar",ariaRoot:!0,defaults:{type:"menubutton"}}})}),r(Wt,[Ct,q,zt],function(e,t,n){function r(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1}var i=e.extend({init:function(e){var t=this;t._renderOpen=!0,t._super(e),t.addClass("menubtn"),e.fixedWidth&&t.addClass("fixed-width"),t.aria("haspopup",!0),t.hasPopup=!0},showMenu:function(){var e=this,n=e.settings,r;return e.menu&&e.menu.visible()?e.hideMenu():(e.menu||(r=n.menu||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control.parent()===e.menu&&(t.stopPropagation(),e.focus(),e.hideMenu())}),e.menu.on("select",function(){e.focus()}),e.menu.on("show hide",function(t){t.control==e.menu&&e.activeMenu("show"==t.type),e.aria("expanded","show"==t.type)}).fire("show")),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),void e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"]))},hideMenu:function(){var e=this;e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide())},activeMenu:function(e){this.toggleClass("active",e)},renderHtml:function(){var e=this,t=e._id,r=e.classPrefix,i=e.settings.icon?r+"ico "+r+"i-"+e.settings.icon:"";return e.aria("role",e.parent()instanceof n?"menuitem":"button"),'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1" aria-labelledby="'+t+'"><button id="'+t+'-open" role="presentation" type="button" tabindex="-1">'+(i?'<i class="'+i+'"></i>':"")+"<span>"+(e._text?(i?"\xa0":"")+e.encode(e._text):"")+'</span> <i class="'+r+'caret"></i></button></div>'},postRender:function(){var e=this;return e.on("click",function(t){t.control===e&&r(t.target,e.getEl())&&(e.showMenu(),t.aria&&e.menu.items()[0].focus())}),e.on("mouseenter",function(t){var n=t.control,r=e.parent(),o;n&&r&&n instanceof i&&n.parent()==r&&(r.items().filter("MenuButton").each(function(e){e.hideMenu&&e!=n&&(e.menu&&e.menu.visible()&&(o=!0),e.hideMenu())}),o&&(n.focus(),n.showMenu()))}),e._super()},text:function(e){var t=this,n,r;if(t._rendered)for(r=t.getEl("open").getElementsByTagName("span"),n=0;n<r.length;n++)r[n].innerHTML=(t.settings.icon&&e?"\xa0":"")+t.encode(e);return this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}});return i}),r(Vt,[Wt],function(e){return e.extend({init:function(e){var t=this,n,r,i,o,a;if(t._values=n=e.values,n){for(r=0;r<n.length;r++)if(i=n[r].selected||e.value===n[r].value){o=o||n[r].text,t._value=n[r].value;break}!i&&n.length>0&&(o=n[0].text,t._value=n[0].value),e.menu=n}e.text=e.text||o||n[0].text,t._super(e),t.addClass("listbox"),t.on("select",function(n){var r=n.control;a&&(n.lastControl=a),e.multiple?r.active(!r.active()):t.value(n.control.settings.value),a=r})},value:function(e){function t(e,n){e.items().each(function(e){r=e.value()===n,r&&(i=i||e.text()),e.active(r),e.menu&&t(e.menu,n)})}var n=this,r,i,o,a;if("undefined"!=typeof e){if(n.menu)t(n.menu,e);else for(o=n.settings.menu,a=0;a<o.length;a++)r=o[a].value==e,r&&(i=i||o[a].text),o[a].active=r;n.text(i||this.settings.text)}return n._super(e)}})}),r(Ut,[bt,q,g],function(e,t,n){return e.extend({Defaults:{border:0,role:"menuitem"},init:function(e){var t=this;t.hasPopup=!0,t._super(e),e=t.settings,t.addClass("menu-item"),e.menu&&t.addClass("menu-item-expand"),e.preview&&t.addClass("menu-item-preview"),("-"===t._text||"|"===t._text)&&(t.addClass("menu-item-sep"),t.aria("role","separator"),t._text="-"),e.selectable&&(t.aria("role","menuitemcheckbox"),t.addClass("menu-item-checkbox"),e.icon="selected"),e.preview||e.selectable||t.addClass("menu-item-normal"),t.on("mousedown",function(e){e.preventDefault()}),e.menu&&t.aria("haspopup",!0)},hasMenus:function(){return!!this.settings.menu},showMenu:function(){var e=this,n=e.settings,r,i=e.parent();if(i.items().each(function(t){t!==e&&t.hideMenu()}),n.menu){r=e.menu,r?r.show():(r=n.menu,r.length?r={type:"menu",items:r}:r.type=r.type||"menu",i.settings.itemDefaults&&(r.itemDefaults=i.settings.itemDefaults),r=e.menu=t.create(r).parent(e).renderTo(),r.reflow(),r.fire("show"),r.on("cancel",function(t){t.stopPropagation(),e.focus(),r.hide()}),r.on("hide",function(t){t.control===r&&e.removeClass("selected")}),r.submenu=!0),r._parentMenu=i,r.addClass("menu-sub");var o=r.testMoveRel(e.getEl(),e.isRtl()?["tl-tr","bl-br","tr-tl","br-bl"]:["tr-tl","br-bl","tl-tr","bl-br"]);r.moveRel(e.getEl(),o),r.rel=o,o="menu-sub-"+o,r.removeClass(r._lastRel),r.addClass(o),r._lastRel=o,e.addClass("selected"),e.aria("expanded",!0)}},hideMenu:function(){var e=this;return e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide(),e.aria("expanded",!1)),e},renderHtml:function(){var e=this,t=e._id,r=e.settings,i=e.classPrefix,o=e.encode(e._text),a=e.settings.icon,s="",l=r.shortcut;return a&&e.parent().addClass("menu-has-icons"),r.image&&(a="none",s=" style=\"background-image: url('"+r.image+"')\""),l&&n.mac&&(l=l.replace(/ctrl\+alt\+/i,"⌥⌘"),l=l.replace(/ctrl\+/i,"⌘"),l=l.replace(/alt\+/i,"⌥"),l=l.replace(/shift\+/i,"⇧")),a=i+"ico "+i+"i-"+(e.settings.icon||"none"),'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1">'+("-"!==o?'<i class="'+a+'"'+s+"></i> ":"")+("-"!==o?'<span id="'+t+'-text" class="'+i+'text">'+o+"</span>":"")+(l?'<div id="'+t+'-shortcut" class="'+i+'menu-shortcut">'+l+"</div>":"")+(r.menu?'<div class="'+i+'caret"></div>':"")+"</div>"},postRender:function(){var e=this,t=e.settings,n=t.textStyle;if("function"==typeof n&&(n=n.call(this)),n){var r=e.getEl("text");r&&r.setAttribute("style",n)}return e.on("mouseenter click",function(n){n.control===e&&(t.menu||"click"!==n.type?(e.showMenu(),n.aria&&e.menu.focus(!0)):(e.fire("select"),e.parent().hideAll()))}),e._super(),e},active:function(e){return"undefined"!=typeof e&&this.aria("checked",e),this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}})}),r(qt,[Q,Ut,p],function(e,t,n){var r=e.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"application",bodyRole:"menu",ariaRoot:!0},init:function(e){var t=this;if(e.autohide=!0,e.constrainToViewport=!0,e.itemDefaults)for(var r=e.items,i=r.length;i--;)r[i]=n.extend({},e.itemDefaults,r[i]);t._super(e),t.addClass("menu")},repaint:function(){return this.toggleClass("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){var e=this;e.hideAll(),e.fire("select")},hideAll:function(){var e=this;return this.find("menuitem").exec("hideMenu"),e._super()},preRender:function(){var e=this;return e.items().each(function(t){var n=t.settings;return n.icon||n.selectable?(e._hasIcons=!0,!1):void 0}),e._super()}});return r}),r($t,[wt],function(e){return e.extend({Defaults:{classes:"radio",role:"radio"}})}),r(jt,[bt,K],function(e,t){return e.extend({renderHtml:function(){var e=this,t=e.classPrefix;return e.addClass("resizehandle"),"both"==e.settings.direction&&e.addClass("resizehandle-both"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes()+'"><i class="'+t+"ico "+t+'i-resize"></i></div>'},postRender:function(){var e=this;e._super(),e.resizeDragHelper=new t(this._id,{start:function(){e.fire("ResizeStart")},drag:function(t){"both"!=e.settings.direction&&(t.deltaX=0),e.fire("Resize",t)},stop:function(){e.fire("ResizeEnd")}})},remove:function(){return this.resizeDragHelper&&this.resizeDragHelper.destroy(),this._super()}})}),r(Kt,[bt],function(e){return e.extend({renderHtml:function(){var e=this;return e.addClass("spacer"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes()+'"></div>'}})}),r(Yt,[Wt,V],function(e,t){return e.extend({Defaults:{classes:"widget btn splitbtn",role:"button"},repaint:function(){var e=this,n=e.getEl(),r=e.layoutRect(),i,o;return e._super(),i=n.firstChild,o=n.lastChild,t.css(i,{width:r.w-t.getSize(o).width,height:r.h-2}),t.css(o,{height:r.h-2}),e},activeMenu:function(e){var n=this;t.toggleClass(n.getEl().lastChild,n.classPrefix+"active",e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"";return'<div id="'+t+'" class="'+e.classes()+'" role="button" tabindex="-1"><button type="button" hidefocus tabindex="-1">'+(r?'<i class="'+r+'"></i>':"")+(e._text?(r?" ":"")+e._text:"")+'</button><button type="button" class="'+n+'open" hidefocus tabindex="-1">'+(e._menuBtnText?(r?"\xa0":"")+e._menuBtnText:"")+' <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(e){var n=e.target;if(e.control==this)for(;n;){if(e.aria&&"down"!=e.aria.key||"BUTTON"==n.nodeName&&-1==n.className.indexOf("open"))return e.stopImmediatePropagation(),void t.call(this,e);n=n.parentNode}}),delete e.settings.onclick,e._super()}})}),r(Gt,[Mt],function(e){return e.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"}})}),r(Xt,[G,V],function(e,t){return e.extend({lastIdx:0,Defaults:{layout:"absolute",defaults:{type:"panel"}},activateTab:function(e){var n;this.activeTabId&&(n=this.getEl(this.activeTabId),t.removeClass(n,this.classPrefix+"active"),n.setAttribute("aria-selected","false")),this.activeTabId="t"+e,n=this.getEl("t"+e),n.setAttribute("aria-selected","true"),t.addClass(n,this.classPrefix+"active"),e!=this.lastIdx&&(this.items()[this.lastIdx].hide(),this.lastIdx=e),this.items()[e].show().fire("showtab"),this.reflow()},renderHtml:function(){var e=this,t=e._layout,n="",r=e.classPrefix;return e.preRender(),t.preRender(e),e.items().each(function(t,i){var o=e._id+"-t"+i;t.aria("role","tabpanel"),t.aria("labelledby",o),n+='<div id="'+o+'" class="'+r+'tab" unselectable="on" role="tab" aria-controls="'+t._id+'" aria-selected="false" tabIndex="-1">'+e.encode(t.settings.title)+"</div>"}),'<div id="'+e._id+'" class="'+e.classes()+'" hideFocus="1" tabIndex="-1"><div id="'+e._id+'-head" class="'+r+'tabs" role="tablist">'+n+'</div><div id="'+e._id+'-body" class="'+e.classes("body")+'">'+t.renderHtml(e)+"</div></div>"},postRender:function(){var e=this;e._super(),e.settings.activeTab=e.settings.activeTab||0,e.activateTab(e.settings.activeTab),this.on("click",function(t){var n=t.target.parentNode;if(t.target.parentNode.id==e._id+"-head")for(var r=n.childNodes.length;r--;)n.childNodes[r]==t.target&&e.activateTab(r)})},initLayoutRect:function(){var e=this,n,r,i;r=t.getSize(e.getEl("head")).width,r=0>r?0:r,i=0,e.items().each(function(t,n){r=Math.max(r,t.layoutRect().minW),i=Math.max(i,t.layoutRect().minH),e.settings.activeTab!=n&&t.hide()}),e.items().each(function(e){e.settings.x=0,e.settings.y=0,e.settings.w=r,e.settings.h=i,e.layoutRect({x:0,y:0,w:r,h:i})});var o=t.getSize(e.getEl("head")).height;return e.settings.minWidth=r,e.settings.minHeight=i+o,n=e._super(),n.deltaH+=o,n.innerH=n.h-n.deltaH,n}})}),r(Jt,[bt,V],function(e,t){return e.extend({init:function(e){var t=this;t._super(e),t._value=e.value||"",t.addClass("textbox"),e.multiline?t.addClass("multiline"):t.on("keydown",function(e){13==e.keyCode&&t.parents().reverse().each(function(t){return e.preventDefault(),t.hasEventListeners("submit")&&t.toJSON?(t.fire("submit",{data:t.toJSON()}),!1):void 0})})},disabled:function(e){var t=this;return t._rendered&&"undefined"!=typeof e&&(t.getEl().disabled=e),t._super(e)},value:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t._rendered&&(t.getEl().value=e),t):t._rendered?t.getEl().value:t._value},repaint:function(){var e=this,t,n,r,i=0,o=0,a;t=e.getEl().style,n=e._layoutRect,a=e._lastRepaintRect||{};var s=document;return!e.settings.multiline&&s.all&&(!s.documentMode||s.documentMode<=8)&&(t.lineHeight=n.h-o+"px"),r=e._borderBox,i=r.left+r.right+8,o=r.top+r.bottom+(e.settings.multiline?8:0),n.x!==a.x&&(t.left=n.x+"px",a.x=n.x),n.y!==a.y&&(t.top=n.y+"px",a.y=n.y),n.w!==a.w&&(t.width=n.w-i+"px",a.w=n.w),n.h!==a.h&&(t.height=n.h-o+"px",a.h=n.h),e._lastRepaintRect=a,e.fire("repaint",{},!1),e},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.encode(e._value,!1),i="";return"spellcheck"in n&&(i+=' spellcheck="'+n.spellcheck+'"'),n.maxLength&&(i+=' maxlength="'+n.maxLength+'"'),n.size&&(i+=' size="'+n.size+'"'),n.subtype&&(i+=' type="'+n.subtype+'"'),e.disabled()&&(i+=' disabled="disabled"'),n.multiline?'<textarea id="'+t+'" class="'+e.classes()+'" '+(n.rows?' rows="'+n.rows+'"':"")+' hidefocus="true"'+i+">"+r+"</textarea>":'<input id="'+t+'" class="'+e.classes()+'" value="'+r+'" hidefocus="true"'+i+">"},postRender:function(){var e=this;return t.on(e.getEl(),"change",function(t){e.fire("change",t)}),e._super()},remove:function(){t.off(this.getEl()),this._super()}})}),r(Qt,[V],function(e){return function(t){var n=this,r;n.show=function(i){return n.hide(),r=!0,window.setTimeout(function(){r&&t.appendChild(e.createFragment('<div class="mce-throbber"></div>'))},i||0),n},n.hide=function(){var e=t.lastChild;return e&&-1!=e.className.indexOf("throbber")&&e.parentNode.removeChild(e),r=!1,n}}}),a([l,c,u,d,f,p,m,h,g,v,y,b,C,x,w,_,N,E,S,k,T,R,A,B,L,D,M,H,P,O,I,F,z,W,V,U,q,$,j,K,Y,G,X,J,Q,Z,et,tt,nt,rt,it,ot,at,st,lt,ct,ut,dt,ft,pt,mt,ht,gt,vt,yt,bt,Ct,xt,wt,_t,Nt,Et,St,kt,Tt,Rt,At,Bt,Lt,Dt,Mt,Ht,Pt,Ot,It,Ft,zt,Wt,Vt,Ut,qt,$t,jt,Kt,Yt,Gt,Xt,Jt,Qt])}(this); +;tinymce.ThemeManager.add("modern",function(e){function t(){function t(t){var n,o=[];if(t)return d(t.split(/[ ,]/),function(t){function i(){var i=e.selection;"bullist"==r&&i.selectorChanged("ul > li",function(e,i){for(var n,o=i.parents.length;o--&&(n=i.parents[o].nodeName,"OL"!=n&&"UL"!=n););t.active(e&&"UL"==n)}),"numlist"==r&&i.selectorChanged("ol > li",function(e,i){for(var n,o=i.parents.length;o--&&(n=i.parents[o].nodeName,"OL"!=n&&"UL"!=n););t.active(e&&"OL"==n)}),t.settings.stateSelector&&i.selectorChanged(t.settings.stateSelector,function(e){t.active(e)},!0),t.settings.disabledStateSelector&&i.selectorChanged(t.settings.disabledStateSelector,function(e){t.disabled(e)})}var r;"|"==t?n=null:c.has(t)?(t={type:t},u.toolbar_items_size&&(t.size=u.toolbar_items_size),o.push(t),n=null):(n||(n={type:"buttongroup",items:[]},o.push(n)),e.buttons[t]&&(r=t,t=e.buttons[r],"function"==typeof t&&(t=t()),t.type=t.type||"button",u.toolbar_items_size&&(t.size=u.toolbar_items_size),t=c.create(t),n.items.push(t),e.initialized?i():e.on("init",i)))}),i.push({type:"toolbar",layout:"flow",items:o}),!0}for(var i=[],n=1;10>n&&t(u["toolbar"+n]);n++);return i.length||t(u.toolbar||f),i}function i(){function t(t){var i;return"|"==t?{text:"|"}:i=e.menuItems[t]}function i(i){var n,o,r,a,s;if(s=tinymce.makeMap((u.removed_menuitems||"").split(/[ ,]/)),u.menu?(o=u.menu[i],a=!0):o=h[i],o){n={text:o.title},r=[],d((o.items||"").split(/[ ,]/),function(e){var i=t(e);i&&!s[e]&&r.push(t(e))}),a||d(e.menuItems,function(e){e.context==i&&("before"==e.separator&&r.push({text:"|"}),e.prependToContext?r.unshift(e):r.push(e),"after"==e.separator&&r.push({text:"|"}))});for(var l=0;l<r.length;l++)"|"==r[l].text&&(0===l||l==r.length-1)&&r.splice(l,1);if(n.menu=r,!n.menu.length)return null}return n}var n,o=[],r=[];if(u.menu)for(n in u.menu)r.push(n);else for(n in h)r.push(n);for(var a="string"==typeof u.menubar?u.menubar.split(/[ ,]/):r,s=0;s<a.length;s++){var l=a[s];l=i(l),l&&o.push(l)}return o}function n(t){function i(e){var i=t.find(e)[0];i&&i.focus(!0)}e.shortcuts.add("Alt+F9","",function(){i("menubar")}),e.shortcuts.add("Alt+F10","",function(){i("toolbar")}),e.shortcuts.add("Alt+F11","",function(){i("elementpath")}),t.on("cancel",function(){e.focus()})}function o(t,i){function n(e){return{width:e.clientWidth,height:e.clientHeight}}var o,r,a,s;o=e.getContainer(),r=e.getContentAreaContainer().firstChild,a=n(o),s=n(r),null!==t&&(t=Math.max(u.min_width||100,t),t=Math.min(u.max_width||65535,t),m.css(o,"width",t+(a.width-s.width)),m.css(r,"width",t)),i=Math.max(u.min_height||100,i),i=Math.min(u.max_height||65535,i),m.css(r,"height",i),e.fire("ResizeEditor")}function r(t,i){var n=e.getContentAreaContainer();l.resizeTo(n.clientWidth+t,n.clientHeight+i)}function a(o){function r(){if(h&&h.moveRel&&h.visible()&&!h._fixed){var t=e.selection.getScrollContainer(),i=e.getBody(),n=0,o=0;if(t){var r=m.getPos(i),a=m.getPos(t);n=Math.max(0,a.x-r.x),o=Math.max(0,a.y-r.y)}h.fixed(!1).moveRel(i,e.rtl?["tr-br","br-tr"]:["tl-bl","bl-tl"]).moveBy(n,o)}}function a(){h&&(h.show(),r(),m.addClass(e.getBody(),"mce-edit-focus"))}function s(){h&&(h.hide(),m.removeClass(e.getBody(),"mce-edit-focus"))}function d(){return h?void(h.visible()||a()):(h=l.panel=c.create({type:f?"panel":"floatpanel",role:"application",classes:"tinymce tinymce-inline",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!!f,border:1,items:[u.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:i()},u.toolbar===!1?null:{type:"panel",layout:"stack",classes:"toolbar-grp",ariaRoot:!0,ariaRemember:!0,items:t()}]}),e.fire("BeforeRenderUI"),h.renderTo(f||document.body).reflow(),n(h),a(),e.on("nodeChange",r),e.on("activate",a),e.on("deactivate",s),void e.nodeChanged())}var h,f;return u.fixed_toolbar_container&&(f=m.select(u.fixed_toolbar_container)[0]),u.content_editable=!0,e.on("focus",function(){o.skinUiCss?tinymce.DOM.styleSheetLoader.load(o.skinUiCss,d,d):d()}),e.on("blur",s),e.on("remove",function(){h&&(h.remove(),h=null)}),o.skinUiCss&&tinymce.DOM.styleSheetLoader.load(o.skinUiCss),{}}function s(r){var a,s,d;return r.skinUiCss&&tinymce.DOM.loadCSS(r.skinUiCss),a=l.panel=c.create({type:"panel",role:"application",classes:"tinymce",style:"visibility: hidden",layout:"stack",border:1,items:[u.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:i()},u.toolbar===!1?null:{type:"panel",layout:"stack",classes:"toolbar-grp",ariaRoot:!0,ariaRemember:!0,items:t()},{type:"panel",name:"iframe",layout:"stack",classes:"edit-area",html:"",border:"1 0 0 0"}]}),u.resize!==!1&&(s={type:"resizehandle",direction:u.resize,onResizeStart:function(){var t=e.getContentAreaContainer().firstChild;d={width:t.clientWidth,height:t.clientHeight}},onResize:function(e){"both"==u.resize?o(d.width+e.deltaX,d.height+e.deltaY):o(null,d.height+e.deltaY)}}),u.statusbar!==!1&&a.add({type:"panel",name:"statusbar",classes:"statusbar",layout:"flow",border:"1 0 0 0",ariaRoot:!0,items:[{type:"elementpath"},s]}),u.readonly&&a.find("*").disabled(!0),e.fire("BeforeRenderUI"),a.renderBefore(r.targetNode).reflow(),u.width&&tinymce.DOM.setStyle(a.getEl(),"width",u.width),e.on("remove",function(){a.remove(),a=null}),n(a),{iframeContainer:a.find("#iframe")[0].getEl(),editorContainer:a.getEl()}}var l=this,u=e.settings,c=tinymce.ui.Factory,d=tinymce.each,m=tinymce.DOM,h={file:{title:"File",items:"newdocument"},edit:{title:"Edit",items:"undo redo | cut copy paste pastetext | selectall"},insert:{title:"Insert",items:"|"},view:{title:"View",items:"visualaid |"},format:{title:"Format",items:"bold italic underline strikethrough superscript subscript | formats | removeformat"},table:{title:"Table"},tools:{title:"Tools"}},f="undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image";l.renderUI=function(t){var i=u.skin!==!1?u.skin||"lightgray":!1;if(i){var n=u.skin_url;n=n?e.documentBaseURI.toAbsolute(n):tinymce.baseURL+"/skins/"+i}return e.on("ProgressState",function(e){l.throbber=l.throbber||new tinymce.ui.Throbber(l.panel.getEl("body")),e.state?l.throbber.show(e.time):l.throbber.hide()}),u.inline?a(t):s(t)},l.resizeTo=o,l.resizeBy=r}); +;tinymce.PluginManager.add("image",function(e){function t(e,t){function n(e,n){i.parentNode&&i.parentNode.removeChild(i),t({width:e,height:n})}var i=document.createElement("img");i.onload=function(){n(i.clientWidth,i.clientHeight)},i.onerror=function(){n()};var a=i.style;a.visibility="hidden",a.position="fixed",a.bottom=a.left=0,a.width=a.height="auto",document.body.appendChild(i),i.src=e}function n(t){return function(){var n=e.settings.image_list;"string"==typeof n?tinymce.util.XHR.send({url:n,success:function(e){t(tinymce.util.JSON.parse(e))}}):t(n)}}function i(n){function i(){var t=[{text:"None",value:""}];return tinymce.each(n,function(n){t.push({text:n.text||n.title,value:e.convertURL(n.value||n.url,"src"),menu:n.menu})}),t}function a(){var e,t,n,i;e=s.find("#width")[0],t=s.find("#height")[0],n=e.value(),i=t.value(),s.find("#constrain")[0].checked()&&d&&u&&n&&i&&(d!=n?(i=Math.round(n/d*i),t.value(i)):(n=Math.round(i/u*n),e.value(n))),d=n,u=i}function o(){function t(t){function i(){t.onload=t.onerror=null,e.selection.select(t),e.nodeChanged()}t.onload=function(){n.width||n.height||m.setAttribs(t,{width:t.clientWidth,height:t.clientHeight}),i()},t.onerror=i}c(),a();var n=s.toJSON();""===n.width&&(n.width=null),""===n.height&&(n.height=null),""===n.style&&(n.style=null),n={src:n.src,alt:n.alt,width:n.width,height:n.height,style:n.style},e.fire('SaveImage', n),e.undoManager.transact(function(){return n.src?(p?m.setAttribs(p,n):(n.id="__mcenew",e.focus(),e.selection.setContent(m.createHTML("img",n)),p=m.get("__mcenew"),m.setAttrib(p,"id",null)),void t(p)):void(p&&(m.remove(p),e.nodeChanged()))})}function l(e){return e&&(e=e.replace(/px$/,"")),e}function r(){h&&h.value(e.convertURL(this.value(),"src")),t(this.value(),function(e){e.width&&e.height&&(d=e.width,u=e.height,s.find("#width").value(d),s.find("#height").value(u))})}function c(){function t(e){return e.length>0&&/^[0-9]+$/.test(e)&&(e+="px"),e}if(e.settings.image_advtab){var n=s.toJSON(),i=m.parseStyle(n.style);delete i.margin,i["margin-top"]=i["margin-bottom"]=t(n.vspace),i["margin-left"]=i["margin-right"]=t(n.hspace),i["border-width"]=t(n.border),s.find("#style").value(m.serializeStyle(m.parseStyle(m.serializeStyle(i))))}}var s,d,u,h,g={},m=e.dom,p=e.selection.getNode();d=m.getAttrib(p,"width"),u=m.getAttrib(p,"height"),"IMG"!=p.nodeName||p.getAttribute("data-mce-object")||p.getAttribute("data-mce-placeholder")?p=null:g={src:m.getAttrib(p,"src"),alt:m.getAttrib(p,"alt"),width:d,height:u},n&&(h={type:"listbox",label:"Image list",values:i(),value:g.src&&e.convertURL(g.src,"src"),onselect:function(e){var t=s.find("#alt");(!t.value()||e.lastControl&&t.value()==e.lastControl.text())&&t.value(e.control.text()),s.find("#src").value(e.control.value())},onPostRender:function(){h=this}});var y=[{name:"src",type:"filepicker",filetype:"image",label:"Source",autofocus:!0,onchange:r},h,{name:"alt",type:"textbox",label:"Image description"},{type:"container",label:"Dimensions",layout:"flex",direction:"row",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:3,onchange:a},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:3,onchange:a},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}];e.fire('EditImage', g),e.settings.image_advtab?(p&&(g.hspace=l(p.style.marginLeft||p.style.marginRight),g.vspace=l(p.style.marginTop||p.style.marginBottom),g.border=l(p.style.borderWidth),g.style=e.dom.serializeStyle(e.dom.parseStyle(e.dom.getAttrib(p,"style")))),s=e.windowManager.open({title:"Insert/edit image",data:g,bodyType:"tabpanel",body:[{title:"General",type:"form",items:y},{title:"Advanced",type:"form",pack:"start",items:[{label:"Style",name:"style",type:"textbox"},{type:"form",layout:"grid",packV:"start",columns:2,padding:0,alignH:["left","right"],defaults:{type:"textbox",maxWidth:50,onchange:c},items:[{label:"Vertical space",name:"vspace"},{label:"Horizontal space",name:"hspace"},{label:"Border",name:"border"}]}]}],onSubmit:o})):s=e.windowManager.open({title:"Insert/edit image",data:g,body:y,onSubmit:o})}e.addButton("image",{icon:"image",tooltip:"Insert/edit image",onclick:n(i),stateSelector:"img:not([data-mce-object],[data-mce-placeholder])"}),e.addMenuItem("image",{icon:"image",text:"Insert image",onclick:n(i),context:"insert",prependToContext:!0})}); +;tinymce.PluginManager.add("link",function(e){function t(t){return function(){var n=e.settings.link_list;"string"==typeof n?tinymce.util.XHR.send({url:n,success:function(e){t(tinymce.util.JSON.parse(e))}}):t(n)}}function n(t){function n(e){var t=f.find("#text");(!t.value()||e.lastControl&&t.value()==e.lastControl.text())&&t.value(e.control.text()),f.find("#href").value(e.control.value())}function l(){var n=[{text:"None",value:""}];return tinymce.each(t,function(t){n.push({text:t.text||t.title,value:e.convertURL(t.value||t.url,"href"),menu:t.menu})}),n}function i(t){var n=[{text:"None",value:""}];return tinymce.each(e.settings.rel_list,function(e){n.push({text:e.text||e.title,value:e.value,selected:t===e.value})}),n}function r(t){var n=[];return e.settings.target_list||(n.push({text:"None",value:""}),n.push({text:"New window",value:"_blank"})),tinymce.each(e.settings.target_list,function(e){n.push({text:e.text||e.title,value:e.value,selected:t===e.value})}),n}function a(t){var l=[];return tinymce.each(e.dom.select("a:not([href])"),function(e){var n=e.name||e.id;n&&l.push({text:n,value:"#"+n,selected:-1!=t.indexOf("#"+n)})}),l.length?(l.unshift({text:"None",value:""}),{name:"anchor",type:"listbox",label:"Anchors",values:l,onselect:n}):void 0}function o(){h&&h.value(e.convertURL(this.value(),"href")),!c&&0===x.text.length&&k&&this.parent().parent().find("#text")[0].value(this.value())}var u,s,c,f,d,h,v,g,x={},m=e.selection,p=e.dom;u=m.getNode(),s=p.getParent(u,"a[href]");var k=!0;if(/</.test(m.getContent()))k=!1;else if(s){var y,b=s.childNodes;if(0===b.length)k=!1;else for(y=b.length-1;y>=0;y--)if(3!=b[y].nodeType){k=!1;break}}x.text=c=s?s.innerText||s.textContent:m.getContent({format:"text"}),x.href=s?p.getAttrib(s,"href"):"",x.target=s?p.getAttrib(s,"target"):e.settings.default_link_target||"",x.rel=s?p.getAttrib(s,"rel"):"",e.fire('EditLink', x),k&&(d={name:"text",type:"textbox",size:40,label:"Text to display",onchange:function(){x.text=this.value()}}),t&&(h={type:"listbox",label:"Link list",values:l(),onselect:n,value:e.convertURL(x.href,"href"),onPostRender:function(){h=this}}),e.settings.target_list!==!1&&(g={name:"target",type:"listbox",label:"Target",values:r(x.target)}),e.settings.rel_list&&(v={name:"rel",type:"listbox",label:"Rel",values:i(x.rel)}),f=e.windowManager.open({title:"Insert link",data:x,body:[{name:"href",type:"filepicker",filetype:"file",size:40,autofocus:!0,label:"Url",onchange:o,onkeyup:o},d,a(x.href),h,v,g],onSubmit:function(t){function n(t,n){var l=e.selection.getRng();window.setTimeout(function(){e.windowManager.confirm(t,function(t){e.selection.setRng(l),n(t)})},0)}function l(){s?(e.focus(),k&&i.text!=c&&(s.innerText=i.text),p.setAttribs(s,{href:r,target:i.target?i.target:null,rel:i.rel?i.rel:null}),m.select(s),e.undoManager.add()):k?e.insertContent(p.createHTML("a",{href:r,target:i.target?i.target:null,rel:i.rel?i.rel:null},p.encode(i.text))):e.execCommand("mceInsertLink",!1,{href:r,target:i.target,rel:i.rel?i.rel:null})}var i=t.data;e.fire('SaveLink', i);var r=i.href;return r?r.indexOf("@")>0&&-1==r.indexOf("//")&&-1==r.indexOf("mailto:")?void n("The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",function(e){e&&(r="mailto:"+r),l()}):/^\s*www\./i.test(r)?void n("The URL you entered seems to be an external link. Do you want to add the required http:// prefix?",function(e){e&&(r="http://"+r),l()}):void l():void e.execCommand("unlink")}})}e.addButton("link",{icon:"link",tooltip:"Insert/edit link",shortcut:"Ctrl+K",onclick:t(n),stateSelector:"a[href]"}),e.addButton("unlink",{icon:"unlink",tooltip:"Remove link",cmd:"unlink",stateSelector:"a[href]"}),e.addShortcut("Ctrl+K","",t(n)),this.showDialog=n,e.addMenuItem("link",{icon:"link",text:"Insert link",shortcut:"Ctrl+K",onclick:t(n),stateSelector:"a[href]",context:"insert",prependToContext:!0})}); +;tinymce.PluginManager.requireLangPack("codemirror"),tinymce.PluginManager.add("codemirror",function(e,t){function n(){e.focus(),e.selection.collapse(!0),e.selection.setContent('<span class="CmCaReT" style="display:none">�</span>');var n,o=tinyMCE.baseURL.indexOf("/static/");n=o>0?tinyMCE.baseURL.substring(0,o):window.location.origin;var i="?CodeMirrorPath="+e.settings.codemirror.path+"&ParentOrigin="+window.location.origin,a=e.windowManager.open({title:"HTML source code",url:t+"/source.html"+i,width:800,height:550,resizable:!0,maximizable:!0,buttons:[{text:"OK",subtype:"primary",onclick:function(){s({type:"save"})}},{text:"Cancel",onclick:function(){s({type:"cancel"})}}]}),c=a.getEl().getElementsByTagName("iframe")[0].contentWindow,s=function(e){c.postMessage(e,n)},r=function(t){if(n===t.origin){var o;if("init"===t.data.type)o={content:e.getContent({source_view:!0})},e.fire("ShowCodeEditor",o),s({type:"init",content:o.content}),e.dom.remove(e.dom.select(".CmCaReT"));else if("setText"===t.data.type){o={content:t.data.text};var i=t.data.isDirty;e.fire("SaveCodeEditor",o),e.setContent(o.content);var c=e.dom.select("span#CmCaReT")[0];if(c)e.selection.scrollIntoView(c),e.selection.setCursorLocation(c,0),e.dom.remove(c);else{var r=e.getContent(),d=r.replace('<span id="CmCaReT"></span>',"");r!==d&&e.setContent(d)}e.isNotDirty=!i,i&&e.nodeChanged()}else"closeWindow"===t.data.type&&a.close()}};a.on("close",function(){window.removeEventListener("message",r)}),window.addEventListener("message",r,!1)}e.addButton("code",{title:"Edit HTML",text:"HTML",icon:!1,onclick:n}),e.addMenuItem("code",{icon:"code",text:"Edit HTML",context:"tools",onclick:n})}); +;!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i<e.length;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){for(var r=0;r<n.length;r++){for(var i=e,o=n[r],a=o.split(/[.\/]/),l=0;l<a.length-1;++l)i[a[l]]===t&&(i[a[l]]={}),i=i[a[l]];i[a[a.length-1]]=s[o]}}var s={},l="tinymce/pasteplugin/Utils",c="tinymce/util/Tools",d="tinymce/html/DomParser",u="tinymce/html/Schema",f="tinymce/pasteplugin/Clipboard",p="tinymce/Env",m="tinymce/util/VK",h="tinymce/pasteplugin/WordFilter",g="tinymce/html/Serializer",v="tinymce/html/Node",y="tinymce/pasteplugin/Quirks",b="tinymce/pasteplugin/Plugin",C="tinymce/PluginManager";r(l,[c,d,u],function(e,t,n){function r(t,n){return e.each(n,function(e){t=e.constructor==RegExp?t.replace(e,""):t.replace(e[0],e[1])}),t}function i(r){function i(e){var t=e.name,n=e;if("br"===t)return void(s+="\n");if(l[t]&&(s+=" "),c[t])return void(s+=" ");if(3==e.type&&(s+=e.value),!e.shortEnded&&(e=e.firstChild))do i(e);while(e=e.next);d[t]&&n.next&&(s+="\n","p"==t&&(s+="\n"))}var o=new n,a=new t({},o),s="",l=o.getShortEndedElements(),c=e.makeMap("script noscript style textarea video audio iframe object"," "),d=o.getBlockElements();return i(a.parse(r)),s}return{filter:r,innerText:i}}),r(f,[p,m,l],function(e,t,n){return function(r){function i(e){var t,n=r.dom;if(t=r.fire("BeforePastePreProcess",{content:e}),t=r.fire("PastePreProcess",t),e=t.content,!t.isDefaultPrevented()){if(r.hasEventListeners("PastePostProcess")&&!t.isDefaultPrevented()){var i=n.add(r.getBody(),"div",{style:"display:none"},e);t=r.fire("PastePostProcess",{node:i}),n.remove(i),e=t.node.innerHTML}t.isDefaultPrevented()||r.insertContent(e)}}function o(e){e=r.dom.encode(e).replace(/\r\n/g,"\n");var t=r.dom.getParent(r.selection.getStart(),r.dom.isBlock),o=r.settings.forced_root_block,a;o&&(a=r.dom.createHTML(o,r.settings.forced_root_block_attrs),a=a.substr(0,a.length-3)+">"),t&&/^(PRE|DIV)$/.test(t.nodeName)||!o?e=n.filter(e,[[/\n/g,"<br>"]]):(e=n.filter(e,[[/\n\n/g,"</p>"+a],[/^(.*<\/p>)(<p>)$/,a+"$1"],[/\n/g,"<br />"]]),-1!=e.indexOf("<p>")&&(e=a+e)),i(e)}function a(){var t=r.dom,n=r.getBody(),i=r.dom.getViewPort(r.getWin()),o=i.y,a=20,s;if(v=r.selection.getRng(),r.inline&&(s=r.selection.getScrollContainer(),s&&(o=s.scrollTop)),v.getClientRects){var l=v.getClientRects();if(l.length)a=o+(l[0].top-t.getPos(n).y);else{a=o;var c=v.startContainer;c&&(3==c.nodeType&&c.parentNode!=n&&(c=c.parentNode),1==c.nodeType&&(a=t.getPos(c,s||n).y))}}g=t.add(r.getBody(),"div",{id:"mcepastebin",contentEditable:!0,"data-mce-bogus":"1",style:"position: absolute; top: "+a+"px;width: 10px; height: 10px; overflow: hidden; opacity: 0"},b),(e.ie||e.gecko)&&t.setStyle(g,"left","rtl"==t.getStyle(n,"direction",!0)?65535:-65535),t.bind(g,"beforedeactivate focusin focusout",function(e){e.stopPropagation()}),g.focus(),r.selection.select(g,!0)}function s(){if(g){for(var e;e=r.dom.get("mcepastebin");)r.dom.remove(e),r.dom.unbind(e);v&&r.selection.setRng(v)}C=!1,g=v=null}function l(){var e=b,t,n;for(t=r.dom.select("div[id=mcepastebin]"),n=t.length;n--;){var i=t[n].innerHTML;e==b&&(e=""),i.length>e.length&&(e=i)}return e}function c(e){var t={};if(e&&e.types){var n=e.getData("Text");n&&n.length>0&&(t["text/plain"]=n);for(var r=0;r<e.types.length;r++){var i=e.types[r];t[i]=e.getData(i)}}return t}function d(e){return c(e.clipboardData||r.getDoc().dataTransfer)}function u(e,t){function n(e){if("image/png"==o[a].type){var t=new FileReader;return t.onload=function(){i('<img src="'+t.result+'">')},t.readAsDataURL(e.getAsFile()),!0}}if(!(!r.settings.paste_data_images||"text/html"in t||"text/plain"in t)&&e.clipboardData){var o=e.clipboardData.items;if(o)for(var a=0;a<o.length;a++)if(n(o[a]))return!0}}function f(e){var t=r.getDoc(),n;if(t.caretPositionFromPoint){var i=t.caretPositionFromPoint(e.clientX,e.clientY);n=t.createRange(),n.setStart(i.offsetNode,i.offset),n.collapse(!0)}else t.caretRangeFromPoint&&(n=t.caretRangeFromPoint(e.clientX,e.clientY));return n}function p(e,t){return t in e&&e[t].length>0}function m(){r.on("keydown",function(n){if(!n.isDefaultPrevented()&&(t.metaKeyPressed(n)&&86==n.keyCode||n.shiftKey&&45==n.keyCode)){if(C=n.shiftKey&&86==n.keyCode,n.stopImmediatePropagation(),y=(new Date).getTime(),e.ie&&C)return n.preventDefault(),void r.fire("paste",{ieFake:!0});s(),a()}}),r.on("paste",function(t){var c=d(t),f=(new Date).getTime()-y<1e3,m="text"==h.pasteFormat||C;return t.isDefaultPrevented()?void s():u(t,c)?void s():(f||t.preventDefault(),!e.ie||f&&!t.ieFake||(a(),r.dom.bind(g,"paste",function(e){e.stopPropagation()}),r.getDoc().execCommand("Paste",!1,null),c["text/html"]=l()),void setTimeout(function(){var e=l();return g&&g.firstChild&&"mcepastebin"===g.firstChild.id&&(m=!0),s(),e!=b&&f||(e=c["text/html"]||c["text/plain"]||b,e!=b)?(!p(c,"text/html")&&p(c,"text/plain")&&(m=!0),void(m?o(c["text/plain"]||n.innerText(e)):i(e))):void(f||r.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents."))},0))}),r.on("dragstart",function(e){if(e.dataTransfer.types)try{e.dataTransfer.setData("mce-internal",r.selection.getContent())}catch(t){}}),r.on("drop",function(e){var t=f(e);if(t&&!e.isDefaultPrevented()){var n=c(e.dataTransfer),a=n["mce-internal"]||n["text/html"]||n["text/plain"];a&&(e.preventDefault(),r.undoManager.transact(function(){n["mce-internal"]&&r.execCommand("Delete"),r.selection.setRng(t),n["text/html"]?i(a):o(a)}))}})}var h=this,g,v,y=0,b="%MCEPASTEBIN%",C;h.pasteHtml=i,h.pasteText=o,r.on("preInit",function(){m(),r.parser.addNodeFilter("img",function(t){if(!r.settings.paste_data_images)for(var n=t.length;n--;){var i=t[n].attributes.map.src;i&&0===i.indexOf("data:image")&&(t[n].attr("data-mce-object")||i===e.transparentSrc||t[n].remove())}})}),r.on("PreProcess",function(){r.dom.remove(r.dom.get("mcepastebin"))})}}),r(h,[c,d,u,g,v,l],function(e,t,n,r,i,o){function a(e){return/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(e)}function s(s){var l=s.settings;s.on("BeforePastePreProcess",function(c){function d(e){function t(e,t,a,s){var l=e._listLevel||o;l!=o&&(o>l?n&&(n=n.parent.parent):(r=n,n=null)),n&&n.name==a?n.append(e):(r=r||n,n=new i(a,1),s>1&&n.attr("start",""+s),e.wrap(n)),e.name="li",t.value="";var c=t.next;c&&3==c.type&&(c.value=c.value.replace(/^\u00a0+/,"")),l>o&&r&&r.lastChild.append(n),o=l}for(var n,r,o=1,a=e.getAll("p"),s=0;s<a.length;s++)if(e=a[s],"p"==e.name&&e.firstChild){for(var l="",c=e.firstChild;c&&!(l=c.value);)c=c.firstChild;if(/^\s*[\u2022\u00b7\u00a7\u00d8\u25CF]\s*$/.test(l)){t(e,c,"ul");continue}if(/^\s*\w+\.$/.test(l)){var d=/([0-9])\./.exec(l),u=1;d&&(u=parseInt(d[1],10)),t(e,c,"ol",u);continue}n=null}}function u(t,n){if("p"===t.name){var r=/mso-list:\w+ \w+([0-9]+)/.exec(n);r&&(t._listLevel=parseInt(r[1],10))}if(s.getParam("paste_retain_style_properties","none")){var i="";if(e.each(s.dom.parseStyle(n),function(e,t){switch(t){case"horiz-align":return void(t="text-align");case"vert-align":return void(t="vertical-align");case"font-color":case"mso-foreground":return void(t="color");case"mso-background":case"mso-highlight":t="background"}("all"==p||m&&m[t])&&(i+=t+":"+e+";")}),i)return i}return null}var f=c.content,p,m;if(p=l.paste_retain_style_properties,p&&(m=e.makeMap(p)),l.paste_enable_default_filters!==!1&&a(c.content)){c.wordContent=!0,f=o.filter(f,[/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/ /gi,"\xa0"],[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(e,t){return t.length>0?t.replace(/./," ").slice(Math.floor(t.length/2)).split("").join("\xa0"):""}]]);var h=l.paste_word_valid_elements;h||(h="@[style],-strong/b,-em/i,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-table[width],-tr,-td[colspan|rowspan|width],-th,-thead,-tfoot,-tbody,-a[href|name],sub,sup,strike,br");var g=new n({valid_elements:h}),v=new t({},g);v.addAttributeFilter("style",function(e){for(var t=e.length,n;t--;)n=e[t],n.attr("style",u(n,n.attr("style"))),"span"!=n.name||n.attributes.length||n.unwrap()}),v.addNodeFilter("a",function(e){for(var t=e.length,n,r,i;t--;)n=e[t],r=n.attr("href"),i=n.attr("name"),r&&0===r.indexOf("file://")&&(r=r.split("#")[1],r&&(r="#"+r)),r||i?n.attr({href:r,name:i}):n.unwrap()});var y=v.parse(f);d(y),c.content=new r({},g).serialize(y)}})}return s.isWordContent=a,s}),r(y,[p,c,h,l],function(e,t,n,r){return function(i){function o(e){i.on("BeforePastePreProcess",function(t){t.content=e(t.content)})}function a(e){return e=r.filter(e,[/^[\s\S]*<!--StartFragment-->|<!--EndFragment-->[\s\S]*$/g,[/<span class="Apple-converted-space">\u00a0<\/span>/g,"\xa0"],/<br>$/i])}function s(e){if(!n.isWordContent(e))return e;var o=[];t.each(i.schema.getBlockElements(),function(e,t){o.push(t)});var a=new RegExp("(?:<br> [\\s\\r\\n]+|<br>)*(<\\/?("+o.join("|")+")[^>]*>)(?:<br> [\\s\\r\\n]+|<br>)*","g");return e=r.filter(e,[[a,"$1"]]),e=r.filter(e,[[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]])}function l(e){return(i.settings.paste_remove_styles||i.settings.paste_remove_styles_if_webkit!==!1)&&(e=e.replace(/ style=\"[^\"]+\"/g,"")),e}e.webkit&&(o(l),o(a)),e.ie&&o(s)}}),r(b,[C,f,h,y],function(e,t,n,r){var i;e.add("paste",function(e){function o(){"text"==s.pasteFormat?(this.active(!1),s.pasteFormat="html"):(s.pasteFormat="text",this.active(!0),i||(e.windowManager.alert("Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off."),i=!0))}var a=this,s,l=e.settings;a.clipboard=s=new t(e),a.quirks=new r(e),a.wordFilter=new n(e),e.settings.paste_as_text&&(a.clipboard.pasteFormat="text"),l.paste_preprocess&&e.on("PastePreProcess",function(e){l.paste_preprocess.call(a,a,e)}),l.paste_postprocess&&e.on("PastePostProcess",function(e){l.paste_postprocess.call(a,a,e)}),e.addCommand("mceInsertClipboardContent",function(e,t){t.content&&a.clipboard.pasteHtml(t.content),t.text&&a.clipboard.pasteText(t.text)}),e.paste_block_drop&&e.on("dragend dragover draggesture dragdrop drop drag",function(e){e.preventDefault(),e.stopPropagation()}),e.settings.paste_data_images||e.on("drop",function(e){var t=e.dataTransfer;t&&t.files&&t.files.length>0&&e.preventDefault()}),e.addButton("pastetext",{icon:"pastetext",tooltip:"Paste as text",onclick:o,active:"text"==a.clipboard.pasteFormat}),e.addMenuItem("pastetext",{text:"Paste as text",selectable:!0,active:s.pasteFormat,onclick:o})})}),a([l,f,h,y,b])}(this); +;!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i<e.length;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){for(var r=0;r<n.length;r++){for(var i=e,o=n[r],a=o.split(/[.\/]/),l=0;l<a.length-1;++l)i[a[l]]===t&&(i[a[l]]={}),i=i[a[l]];i[a[a.length-1]]=s[o]}}var s={},l="tinymce/tableplugin/TableGrid",c="tinymce/util/Tools",d="tinymce/Env",u="tinymce/tableplugin/Quirks",f="tinymce/util/VK",p="tinymce/tableplugin/CellSelection",m="tinymce/dom/TreeWalker",h="tinymce/tableplugin/Plugin",g="tinymce/PluginManager";r(l,[c,d],function(e,n){function r(e,t){return parseInt(e.getAttribute(t)||1,10)}var i=e.each;return function(o,a){function s(){var e=0;A=[],i(["thead","tbody","tfoot"],function(t){var n=M.select("> "+t+" tr",a);i(n,function(n,o){o+=e,i(M.select("> td, > th",n),function(e,n){var i,a,s,l;if(A[o])for(;A[o][n];)n++;for(s=r(e,"rowspan"),l=r(e,"colspan"),a=o;o+s>a;a++)for(A[a]||(A[a]=[]),i=n;n+l>i;i++)A[a][i]={part:t,real:a==o&&i==n,elm:e,rowspan:s,colspan:l}})}),e+=n.length})}function l(e,t){return e=e.cloneNode(t),e.removeAttribute("id"),e}function c(e,t){var n;return n=A[t],n?n[e]:void 0}function d(e,t,n){e&&(n=parseInt(n,10),1===n?e.removeAttribute(t,1):e.setAttribute(t,n,1))}function u(e){return e&&(M.hasClass(e.elm,"mce-item-selected")||e==D)}function f(){var e=[];return i(a.rows,function(t){i(t.cells,function(n){return M.hasClass(n,"mce-item-selected")||D&&n==D.elm?(e.push(t),!1):void 0})}),e}function p(){var e=M.createRng();e.setStartAfter(a),e.setEndAfter(a),L.setRng(e),M.remove(a)}function m(t){var r,a={};return o.settings.table_clone_elements!==!1&&(a=e.makeMap((o.settings.table_clone_elements||"strong em b i span font h1 h2 h3 h4 h5 h6 p div").toUpperCase(),/[ ,]/)),e.walk(t,function(e){var o;return 3==e.nodeType?(i(M.getParents(e.parentNode,null,t).reverse(),function(e){a[e.nodeName]&&(e=l(e,!1),r?o&&o.appendChild(e):r=o=e,o=e)}),o&&(o.innerHTML=n.ie?" ":'<br data-mce-bogus="1" />'),!1):void 0},"childNodes"),t=l(t,!1),d(t,"rowSpan",1),d(t,"colSpan",1),r?t.appendChild(r):n.ie||(t.innerHTML='<br data-mce-bogus="1" />'),t}function h(){var e=M.createRng(),t;return i(M.select("tr",a),function(e){0===e.cells.length&&M.remove(e)}),0===M.select("tr",a).length?(e.setStartBefore(a),e.setEndBefore(a),L.setRng(e),void M.remove(a)):(i(M.select("thead,tbody,tfoot",a),function(e){0===e.rows.length&&M.remove(e)}),s(),void(B&&(t=A[Math.min(A.length-1,B.y)],t&&(L.select(t[Math.min(t.length-1,B.x)].elm,!0),L.collapse(!0)))))}function g(e,t,n,r){var i,o,a,s,l;for(i=A[t][e].elm.parentNode,a=1;n>=a;a++)if(i=M.getNext(i,"tr")){for(o=e;o>=0;o--)if(l=A[t+a][o].elm,l.parentNode==i){for(s=1;r>=s;s++)M.insertAfter(m(l),l);break}if(-1==o)for(s=1;r>=s;s++)i.insertBefore(m(i.cells[0]),i.cells[0])}}function v(){i(A,function(e,t){i(e,function(e,n){var i,o,a;if(u(e)&&(e=e.elm,i=r(e,"colspan"),o=r(e,"rowspan"),i>1||o>1)){for(d(e,"rowSpan",1),d(e,"colSpan",1),a=0;i-1>a;a++)M.insertAfter(m(e),e);g(n,t,o-1,i)}})})}function y(t,n,r){var o,a,l,f,p,m,g,y,b,C,x;if(t?(o=k(t),a=o.x,l=o.y,f=a+(n-1),p=l+(r-1)):(B=P=null,i(A,function(e,t){i(e,function(e,n){u(e)&&(B||(B={x:n,y:t}),P={x:n,y:t})})}),B&&(a=B.x,l=B.y,f=P.x,p=P.y)),y=c(a,l),b=c(f,p),y&&b&&y.part==b.part){for(v(),s(),y=c(a,l).elm,d(y,"colSpan",f-a+1),d(y,"rowSpan",p-l+1),g=l;p>=g;g++)for(m=a;f>=m;m++)A[g]&&A[g][m]&&(t=A[g][m].elm,t!=y&&(C=e.grep(t.childNodes),i(C,function(e){y.appendChild(e)}),C.length&&(C=e.grep(y.childNodes),x=0,i(C,function(e){"BR"==e.nodeName&&M.getAttrib(e,"data-mce-bogus")&&x++<C.length-1&&y.removeChild(e)})),M.remove(t)));h()}}function b(e){var n,o,a,s,c,f,p,h,g;if(i(A,function(t,r){return i(t,function(t){return u(t)&&(t=t.elm,c=t.parentNode,f=l(c,!1),n=r,e)?!1:void 0}),e?!n:void 0}),n!==t){for(s=0;s<A[0].length;s++)if(A[n][s]&&(o=A[n][s].elm,o!=a)){if(e){if(n>0&&A[n-1][s]&&(h=A[n-1][s].elm,g=r(h,"rowSpan"),g>1)){d(h,"rowSpan",g+1);continue}}else if(g=r(o,"rowspan"),g>1){d(o,"rowSpan",g+1);continue}p=m(o),d(p,"colSpan",o.colSpan),f.appendChild(p),a=o}f.hasChildNodes()&&(e?c.parentNode.insertBefore(f,c):M.insertAfter(f,c))}}function C(e){var t,n;i(A,function(n){return i(n,function(n,r){return u(n)&&(t=r,e)?!1:void 0}),e?!t:void 0}),i(A,function(i,o){var a,s,l;i[t]&&(a=i[t].elm,a!=n&&(l=r(a,"colspan"),s=r(a,"rowspan"),1==l?e?(a.parentNode.insertBefore(m(a),a),g(t,o,s-1,l)):(M.insertAfter(m(a),a),g(t,o,s-1,l)):d(a,"colSpan",a.colSpan+1),n=a))})}function x(){var t=[];i(A,function(n){i(n,function(n,o){u(n)&&-1===e.inArray(t,o)&&(i(A,function(e){var t=e[o].elm,n;n=r(t,"colSpan"),n>1?d(t,"colSpan",n-1):M.remove(t)}),t.push(o))})}),h()}function w(){function e(e){var t,n,o;t=M.getNext(e,"tr"),i(e.cells,function(e){var t=r(e,"rowSpan");t>1&&(d(e,"rowSpan",t-1),n=k(e),g(n.x,n.y,1,1))}),n=k(e.cells[0]),i(A[n.y],function(e){var t;e=e.elm,e!=o&&(t=r(e,"rowSpan"),1>=t?M.remove(e):d(e,"rowSpan",t-1),o=e)})}var t;t=f(),i(t.reverse(),function(t){e(t)}),h()}function _(){var e=f();return M.remove(e),h(),e}function N(){var e=f();return i(e,function(t,n){e[n]=l(t,!0)}),e}function E(e,t){var n=f(),r=n[t?0:n.length-1],o=r.cells.length;e&&(i(A,function(e){var t;return o=0,i(e,function(e){e.real&&(o+=e.colspan),e.elm.parentNode==r&&(t=1)}),t?!1:void 0}),t||e.reverse(),i(e,function(e){var n,i=e.cells.length,a;for(n=0;i>n;n++)a=e.cells[n],d(a,"colSpan",1),d(a,"rowSpan",1);for(n=i;o>n;n++)e.appendChild(m(e.cells[i-1]));for(n=o;i>n;n++)M.remove(e.cells[n]);t?r.parentNode.insertBefore(e,r):M.insertAfter(e,r)}),M.removeClass(M.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"))}function k(e){var t;return i(A,function(n,r){return i(n,function(n,i){return n.elm==e?(t={x:i,y:r},!1):void 0}),!t}),t}function S(e){B=k(e)}function T(){var e,t;return e=t=0,i(A,function(n,r){i(n,function(n,i){var o,a;u(n)&&(n=A[r][i],i>e&&(e=i),r>t&&(t=r),n.real&&(o=n.colspan-1,a=n.rowspan-1,o&&i+o>e&&(e=i+o),a&&r+a>t&&(t=r+a)))})}),{x:e,y:t}}function R(e){var t,n,r,i,o,a,s,l,c,d;if(P=k(e),B&&P){for(t=Math.min(B.x,P.x),n=Math.min(B.y,P.y),r=Math.max(B.x,P.x),i=Math.max(B.y,P.y),o=r,a=i,d=n;a>=d;d++)e=A[d][t],e.real||t-(e.colspan-1)<t&&(t-=e.colspan-1);for(c=t;o>=c;c++)e=A[n][c],e.real||n-(e.rowspan-1)<n&&(n-=e.rowspan-1);for(d=n;i>=d;d++)for(c=t;r>=c;c++)e=A[d][c],e.real&&(s=e.colspan-1,l=e.rowspan-1,s&&c+s>o&&(o=c+s),l&&d+l>a&&(a=d+l));for(M.removeClass(M.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),d=n;a>=d;d++)for(c=t;o>=c;c++)A[d][c]&&M.addClass(A[d][c].elm,"mce-item-selected")}}var A,B,P,D,L=o.selection,M=L.dom;a=a||M.getParent(L.getStart(),"table"),s(),D=M.getParent(L.getStart(),"th,td"),D&&(B=k(D),P=T(),D=c(B.x,B.y)),e.extend(this,{deleteTable:p,split:v,merge:y,insertRow:b,insertCol:C,deleteCols:x,deleteRows:w,cutRows:_,copyRows:N,pasteRows:E,getPos:k,setStartCell:S,setEndCell:R})}}),r(u,[f,d,c],function(e,t,n){function r(e,t){return parseInt(e.getAttribute(t)||1,10)}var i=n.each;return function(n){function o(){function t(t){function o(e,r){var i=e?"previousSibling":"nextSibling",o=n.dom.getParent(r,"tr"),s=o[i];if(s)return g(n,r,s,e),t.preventDefault(),!0;var d=n.dom.getParent(o,"table"),u=o.parentNode,f=u.nodeName.toLowerCase();if("tbody"===f||f===(e?"tfoot":"thead")){var p=a(e,d,u,"tbody");if(null!==p)return l(e,p,r)}return c(e,o,i,d)}function a(e,t,r,i){var o=n.dom.select(">"+i,t),a=o.indexOf(r);if(e&&0===a||!e&&a===o.length-1)return s(e,t);if(-1===a){var l="thead"===r.tagName.toLowerCase()?0:o.length-1;return o[l]}return o[a+(e?-1:1)]}function s(e,t){var r=e?"thead":"tfoot",i=n.dom.select(">"+r,t);return 0!==i.length?i[0]:null}function l(e,r,i){var o=d(r,e);return o&&g(n,i,o,e),t.preventDefault(),!0}function c(e,r,i,a){var s=a[i];if(s)return u(s),!0;var l=n.dom.getParent(a,"td,th");if(l)return o(e,l,t);var c=d(r,!e);return u(c),t.preventDefault(),!1}function d(e,t){var r=e&&e[t?"lastChild":"firstChild"];return r&&"BR"===r.nodeName?n.dom.getParent(r,"td,th"):r}function u(e){n.selection.setCursorLocation(e,0)}function f(){return b==e.UP||b==e.DOWN}function p(e){var t=e.selection.getNode(),n=e.dom.getParent(t,"tr");return null!==n}function m(e){for(var t=0,n=e;n.previousSibling;)n=n.previousSibling,t+=r(n,"colspan");return t}function h(e,t){var n=0,o=0;return i(e.children,function(e,i){return n+=r(e,"colspan"),o=i,n>t?!1:void 0}),o}function g(e,t,r,i){var o=m(n.dom.getParent(t,"td,th")),a=h(r,o),s=r.childNodes[a],l=d(s,i);u(l||s)}function v(e){var t=n.selection.getNode(),r=n.dom.getParent(t,"td,th"),i=n.dom.getParent(e,"td,th");return r&&r!==i&&y(r,i)}function y(e,t){return n.dom.getParent(e,"TABLE")===n.dom.getParent(t,"TABLE")}var b=t.keyCode;if(f()&&p(n)){var C=n.selection.getNode();setTimeout(function(){v(C)&&o(!t.shiftKey&&b===e.UP,C,t)},0)}}n.on("KeyDown",function(e){t(e)})}function a(){function e(e,t){var n=t.ownerDocument,r=n.createRange(),i;return r.setStartBefore(t),r.setEnd(e.endContainer,e.endOffset),i=n.createElement("body"),i.appendChild(r.cloneContents()),0===i.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length}n.on("KeyDown",function(t){var r,i,o=n.dom;(37==t.keyCode||38==t.keyCode)&&(r=n.selection.getRng(),i=o.getParent(r.startContainer,"table"),i&&n.getBody().firstChild==i&&e(r,i)&&(r=o.createRng(),r.setStartBefore(i),r.setEndBefore(i),n.selection.setRng(r),t.preventDefault()))})}function s(){n.on("KeyDown SetContent VisualAid",function(){var e;for(e=n.getBody().lastChild;e;e=e.previousSibling)if(3==e.nodeType){if(e.nodeValue.length>0)break}else if(1==e.nodeType&&!e.getAttribute("data-mce-bogus"))break;e&&"TABLE"==e.nodeName&&(n.settings.forced_root_block?n.dom.add(n.getBody(),n.settings.forced_root_block,n.settings.forced_root_block_attrs,t.ie&&t.ie<11?" ":'<br data-mce-bogus="1" />'):n.dom.add(n.getBody(),"br",{"data-mce-bogus":"1"}))}),n.on("PreProcess",function(e){var t=e.node.lastChild;t&&("BR"==t.nodeName||1==t.childNodes.length&&("BR"==t.firstChild.nodeName||"\xa0"==t.firstChild.nodeValue))&&t.previousSibling&&"TABLE"==t.previousSibling.nodeName&&n.dom.remove(t)})}function l(){function e(e,t,n,r){var i=3,o=e.dom.getParent(t.startContainer,"TABLE"),a,s,l;return o&&(a=o.parentNode),s=t.startContainer.nodeType==i&&0===t.startOffset&&0===t.endOffset&&r&&("TR"==n.nodeName||n==a),l=("TD"==n.nodeName||"TH"==n.nodeName)&&!r,s||l}function t(){var t=n.selection.getRng(),r=n.selection.getNode(),i=n.dom.getParent(t.startContainer,"TD,TH");if(e(n,t,r,i)){i||(i=r);for(var o=i.lastChild;o.lastChild;)o=o.lastChild;t.setEnd(o,o.nodeValue.length),n.selection.setRng(t)}}n.on("KeyDown",function(){t()}),n.on("MouseDown",function(e){2!=e.button&&t()})}function c(){n.on("keydown",function(t){if((t.keyCode==e.DELETE||t.keyCode==e.BACKSPACE)&&!t.isDefaultPrevented()){var r=n.dom.getParent(n.selection.getStart(),"table");if(r){for(var i=n.dom.select("td,th",r),o=i.length;o--;)if(!n.dom.hasClass(i[o],"mce-item-selected"))return;t.preventDefault(),n.execCommand("mceTableDelete")}}})}c(),t.webkit&&(o(),l()),t.gecko&&(a(),s()),t.ie>10&&(a(),s())}}),r(p,[l,m,c],function(e,t,n){return function(r){function i(){r.getBody().style.webkitUserSelect="",d&&(r.dom.removeClass(r.dom.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),d=!1)}function o(t){var n,i,o=t.target;if(l&&(s||o!=l)&&("TD"==o.nodeName||"TH"==o.nodeName)){i=a.getParent(o,"table"),i==c&&(s||(s=new e(r,i),s.setStartCell(l),r.getBody().style.webkitUserSelect="none"),s.setEndCell(o),d=!0),n=r.selection.getSel();try{n.removeAllRanges?n.removeAllRanges():n.empty()}catch(u){}t.preventDefault()}}var a=r.dom,s,l,c,d=!0;return r.on("MouseDown",function(e){2!=e.button&&(i(),l=a.getParent(e.target,"td,th"),c=a.getParent(l,"table"))}),r.on("mouseover",o),r.on("remove",function(){a.unbind(r.getDoc(),"mouseover",o)}),r.on("MouseUp",function(){function e(e,r){var o=new t(e,e);do{if(3==e.nodeType&&0!==n.trim(e.nodeValue).length)return void(r?i.setStart(e,0):i.setEnd(e,e.nodeValue.length));if("BR"==e.nodeName)return void(r?i.setStartBefore(e):i.setEndBefore(e))}while(e=r?o.next():o.prev())}var i,o=r.selection,d,u,f,p,m;if(l){if(s&&(r.getBody().style.webkitUserSelect=""),d=a.select("td.mce-item-selected,th.mce-item-selected"),d.length>0){i=a.createRng(),f=d[0],m=d[d.length-1],i.setStartBefore(f),i.setEndAfter(f),e(f,1),u=new t(f,a.getParent(d[0],"table"));do if("TD"==f.nodeName||"TH"==f.nodeName){if(!a.hasClass(f,"mce-item-selected"))break;p=f}while(f=u.next());e(p),o.setRng(i)}r.nodeChanged(),l=s=c=null}}),r.on("KeyUp",function(){i()}),{clear:i}}}),r(h,[l,u,p,c,m,d,g],function(e,t,n,r,i,o,a){function s(r){function i(e){return e?e.replace(/px$/,""):""}function a(e){return/^[0-9]+$/.test(e)&&(e+="px"),e}function s(e){l("left center right".split(" "),function(t){r.formatter.remove("align"+t,{},e)})}function c(){var e=r.dom,t,n;t=e.getParent(r.selection.getStart(),"table"),n={width:i(e.getStyle(t,"width")||e.getAttrib(t,"width")),height:i(e.getStyle(t,"height")||e.getAttrib(t,"height")),cellspacing:e.getAttrib(t,"cellspacing"),cellpadding:e.getAttrib(t,"cellpadding"),border:e.getAttrib(t,"border"),caption:!!e.select("caption",t)[0]},l("left center right".split(" "),function(e){r.formatter.matchNode(t,"align"+e)&&(n.align=e)}),r.windowManager.open({title:"Table properties",items:{type:"form",layout:"grid",columns:2,data:n,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell spacing",name:"cellspacing"},{label:"Cell padding",name:"cellpadding"},{label:"Border",name:"border"},{label:"Caption",name:"caption",type:"checkbox"},{label:"Alignment",minWidth:90,name:"align",type:"listbox",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]}]},onsubmit:function(){var n=this.toJSON(),i;r.undoManager.transact(function(){r.dom.setAttribs(t,{cellspacing:n.cellspacing,cellpadding:n.cellpadding,border:n.border}),r.dom.setStyles(t,{width:a(n.width),height:a(n.height)}),i=e.select("caption",t)[0],i&&!n.caption&&e.remove(i),!i&&n.caption&&(i=e.create("caption"),i.innerHTML=o.ie?"\xa0":'<br data-mce-bogus="1"/>',t.insertBefore(i,t.firstChild)),s(t),n.align&&r.formatter.apply("align"+n.align,{},t),r.focus(),r.addVisual()})}})}function d(e,t){r.windowManager.open({title:"Merge cells",body:[{label:"Cols",name:"cols",type:"textbox",size:10},{label:"Rows",name:"rows",type:"textbox",size:10}],onsubmit:function(){var n=this.toJSON();r.undoManager.transact(function(){e.merge(t,n.cols,n.rows)})}})}function u(){var e=r.dom,t,n,o=[];o=r.dom.select("td.mce-item-selected,th.mce-item-selected"),t=r.dom.getParent(r.selection.getStart(),"td,th"),!o.length&&t&&o.push(t),t=t||o[0],t&&(n={width:i(e.getStyle(t,"width")||e.getAttrib(t,"width")),height:i(e.getStyle(t,"height")||e.getAttrib(t,"height")),scope:e.getAttrib(t,"scope")},n.type=t.nodeName.toLowerCase(),l("left center right".split(" "),function(e){r.formatter.matchNode(t,"align"+e)&&(n.align=e)}),r.windowManager.open({title:"Cell properties",items:{type:"form",data:n,layout:"grid",columns:2,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell type",name:"type",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{label:"Scope",name:"scope",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{label:"Alignment",name:"align",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]}]},onsubmit:function(){var t=this.toJSON();r.undoManager.transact(function(){l(o,function(n){r.dom.setAttrib(n,"scope",t.scope),r.dom.setStyles(n,{width:a(t.width),height:a(t.height)}),t.type&&n.nodeName.toLowerCase()!=t.type&&(n=e.rename(n,t.type)),s(n),t.align&&r.formatter.apply("align"+t.align,{},n)}),r.focus()})}}))}function f(){var e=r.dom,t,n,o,c,d=[];t=r.dom.getParent(r.selection.getStart(),"table"),n=r.dom.getParent(r.selection.getStart(),"td,th"),l(t.rows,function(t){l(t.cells,function(r){return e.hasClass(r,"mce-item-selected")||r==n?(d.push(t),!1):void 0})}),o=d[0],o&&(c={height:i(e.getStyle(o,"height")||e.getAttrib(o,"height")),scope:e.getAttrib(o,"scope")},c.type=o.parentNode.nodeName.toLowerCase(),l("left center right".split(" "),function(e){r.formatter.matchNode(o,"align"+e)&&(c.align=e)}),r.windowManager.open({title:"Row properties",items:{type:"form",data:c,columns:2,defaults:{type:"textbox"},items:[{type:"listbox",name:"type",label:"Row type",text:"None",maxWidth:null,values:[{text:"Header",value:"thead"},{text:"Body",value:"tbody"},{text:"Footer",value:"tfoot"}]},{type:"listbox",name:"align",label:"Alignment",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"Height",name:"height"}]},onsubmit:function(){var t=this.toJSON(),n,i,o;r.undoManager.transact(function(){var c=t.type;l(d,function(l){r.dom.setAttrib(l,"scope",t.scope),r.dom.setStyles(l,{height:a(t.height)}),c!=l.parentNode.nodeName.toLowerCase()&&(n=e.getParent(l,"table"),i=l.parentNode,o=e.select(c,n)[0],o||(o=e.create(c),n.firstChild?n.insertBefore(o,n.firstChild):n.appendChild(o)),o.appendChild(l),i.hasChildNodes()||e.remove(i)),s(l),t.align&&r.formatter.apply("align"+t.align,{},l)}),r.focus()})}}))}function p(e){return function(){r.execCommand(e)}}function m(e,t){var n,i,a;for(a="<table><tbody>",n=0;t>n;n++){for(a+="<tr>",i=0;e>i;i++)a+="<td>"+(o.ie?" ":"<br>")+"</td>";a+="</tr>"}a+="</tbody></table>",r.insertContent(a)}function h(e,t){function n(){e.disabled(!r.dom.getParent(r.selection.getStart(),t)),r.selection.selectorChanged(t,function(t){e.disabled(!t)})}r.initialized?n():r.on("init",n)}function g(){h(this,"table")}function v(){h(this,"td,th")}function y(){var e="";e='<table role="grid" class="mce-grid mce-grid-border" aria-readonly="true">';for(var t=0;10>t;t++){e+="<tr>";for(var n=0;10>n;n++)e+='<td role="gridcell" tabindex="-1"><a id="mcegrid'+(10*t+n)+'" href="#" data-mce-x="'+n+'" data-mce-y="'+t+'" '+(n+t===0?' class="mce-active"':"")+"></a></td>";e+="</tr>"}return e+="</table>",e+='<div class="mce-text-center" role="presentation">1 x 1</div>'}function b(e,t,n){var i=n.getEl().getElementsByTagName("table")[0],o=n.parent().rel,a,s,l,c;if(n.isRtl()||"tl-tr"==o){for(s=9;s>=0;s--)for(a=0;10>a;a++)c=i.rows[s].childNodes[a].firstChild,r.dom.toggleClass(c,"mce-active",a>=e&&t>=s),a>=e&&t>=s&&(l=c);e=9-e,i.nextSibling.innerHTML=e+" x "+(t+1)}else{for(s=0;10>s;s++)for(a=0;10>a;a++)c=i.rows[s].childNodes[a].firstChild,r.dom.toggleClass(c,"mce-active",e>=a&&t>=s),e>=a&&t>=s&&(l=c);i.nextSibling.innerHTML=e+1+" x "+(t+1)}return l.parentNode}var C,x,w=this;r.addMenuItem("inserttable",{text:"Insert table",icon:"table",context:"table",onhide:function(){var e=this.menu.items()[0].getEl().getElementsByTagName("a");r.dom.removeClass(e,"mce-active"),r.dom.addClass(e[0],"mce-active")},menu:[{type:"container",html:y(),onPostRender:function(){this.lastX=this.lastY=0},onmousemove:function(e){var t=e.target,n,r;"A"==t.nodeName&&(n=parseInt(t.getAttribute("data-mce-x"),10),r=parseInt(t.getAttribute("data-mce-y"),10),(n!==this.lastX||r!==this.lastY)&&(b(n,r,e.control),this.lastX=n,this.lastY=r))},onkeydown:function(e){var t=this.lastX,n=this.lastY,r;switch(e.keyCode){case 37:t>0&&(t--,r=!0);break;case 39:r=!0,9>t&&t++;break;case 38:r=!0,n>0&&n--;break;case 40:r=!0,9>n&&n++}r&&(e.preventDefault(),e.stopPropagation(),b(t,n,e.control).focus(),this.lastX=t,this.lastY=n)},onclick:function(e){"A"==e.target.nodeName&&(e.preventDefault(),e.stopPropagation(),this.parent().cancel(),m(this.lastX+1,this.lastY+1))}}]}),r.addMenuItem("tableprops",{text:"Table properties",context:"table",onPostRender:g,onclick:c}),r.addMenuItem("deletetable",{text:"Delete table",context:"table",onPostRender:g,cmd:"mceTableDelete"}),r.addMenuItem("cell",{separator:"before",text:"Cell",context:"table",menu:[{text:"Cell properties",onclick:p("mceTableCellProps"),onPostRender:v},{text:"Merge cells",onclick:p("mceTableMergeCells"),onPostRender:v},{text:"Split cell",onclick:p("mceTableSplitCells"),onPostRender:v}]}),r.addMenuItem("row",{text:"Row",context:"table",menu:[{text:"Insert row before",onclick:p("mceTableInsertRowBefore"),onPostRender:v},{text:"Insert row after",onclick:p("mceTableInsertRowAfter"),onPostRender:v},{text:"Delete row",onclick:p("mceTableDeleteRow"),onPostRender:v},{text:"Row properties",onclick:p("mceTableRowProps"),onPostRender:v},{text:"-"},{text:"Cut row",onclick:p("mceTableCutRow"),onPostRender:v},{text:"Copy row",onclick:p("mceTableCopyRow"),onPostRender:v},{text:"Paste row before",onclick:p("mceTablePasteRowBefore"),onPostRender:v},{text:"Paste row after",onclick:p("mceTablePasteRowAfter"),onPostRender:v}]}),r.addMenuItem("column",{text:"Column",context:"table",menu:[{text:"Insert column before",onclick:p("mceTableInsertColBefore"),onPostRender:v},{text:"Insert column after",onclick:p("mceTableInsertColAfter"),onPostRender:v},{text:"Delete column",onclick:p("mceTableDeleteCol"),onPostRender:v}]});var _=[];l("inserttable tableprops deletetable | cell row column".split(" "),function(e){_.push("|"==e?{text:"-"}:r.menuItems[e])}),r.addButton("table",{type:"menubutton",title:"Table",menu:_}),o.isIE||r.on("click",function(e){e=e.target,"TABLE"===e.nodeName&&(r.selection.select(e),r.nodeChanged())}),w.quirks=new t(r),r.on("Init",function(){C=r.windowManager,w.cellSelection=new n(r)}),l({mceTableSplitCells:function(e){e.split()},mceTableMergeCells:function(e){var t,n,i;i=r.dom.getParent(r.selection.getStart(),"th,td"),i&&(t=i.rowSpan,n=i.colSpan),r.dom.select("td.mce-item-selected,th.mce-item-selected").length?e.merge():d(e,i)},mceTableInsertRowBefore:function(e){e.insertRow(!0)},mceTableInsertRowAfter:function(e){e.insertRow()},mceTableInsertColBefore:function(e){e.insertCol(!0)},mceTableInsertColAfter:function(e){e.insertCol()},mceTableDeleteCol:function(e){e.deleteCols()},mceTableDeleteRow:function(e){e.deleteRows()},mceTableCutRow:function(e){x=e.cutRows()},mceTableCopyRow:function(e){x=e.copyRows()},mceTablePasteRowBefore:function(e){e.pasteRows(x,!0)},mceTablePasteRowAfter:function(e){e.pasteRows(x)},mceTableDelete:function(e){e.deleteTable()}},function(t,n){r.addCommand(n,function(){var n=new e(r);n&&(t(n),r.execCommand("mceRepaint"),w.cellSelection.clear())})}),l({mceInsertTable:function(){c()},mceTableRowProps:f,mceTableCellProps:u},function(e,t){r.addCommand(t,function(t,n){e(n)})})}var l=r.each;a.add("table",s)}),a([l,u,p,h])}(this); +;tinymce.PluginManager.add("textcolor",function(e){function t(){var t,o,r=[];for(o=e.settings.textcolor_map||["000000","Black","993300","Burnt orange","333300","Dark olive","003300","Dark green","003366","Dark azure","000080","Navy Blue","333399","Indigo","333333","Very dark gray","800000","Maroon","FF6600","Orange","808000","Olive","008000","Green","008080","Teal","0000FF","Blue","666699","Grayish blue","808080","Gray","FF0000","Red","FF9900","Amber","99CC00","Yellow green","339966","Sea green","33CCCC","Turquoise","3366FF","Royal blue","800080","Purple","999999","Medium gray","FF00FF","Magenta","FFCC00","Gold","FFFF00","Yellow","00FF00","Lime","00FFFF","Aqua","00CCFF","Sky blue","993366","Brown","C0C0C0","Silver","FF99CC","Pink","FFCC99","Peach","FFFF99","Light yellow","CCFFCC","Pale green","CCFFFF","Pale cyan","99CCFF","Light sky blue","CC99FF","Plum","FFFFFF","White"],t=0;t<o.length;t+=2)r.push({text:o[t+1],color:o[t]});return r}function o(){var o,r,l,a,c,i,n,F,d,s=this;for(o=t(),l='<table class="mce-grid mce-grid-border mce-colorbutton-grid" role="list" cellspacing="0"><tbody>',a=o.length-1,c=e.settings.textcolor_rows||5,i=e.settings.textcolor_cols||8,F=0;c>F;F++){for(l+="<tr>",n=0;i>n;n++)d=F*i+n,d>a?l+="<td></td>":(r=o[d],l+='<td><div id="'+s._id+"-"+d+'" data-mce-color="'+r.color+'" role="option" tabIndex="-1" style="'+(r?"background-color: #"+r.color:"")+'" title="'+r.text+'"></div></td>');l+="</tr>"}return l+="</tbody></table>"}function r(t){var o,r=this.parent();(o=t.target.getAttribute("data-mce-color"))&&(this.lastId&&document.getElementById(this.lastId).setAttribute("aria-selected",!1),t.target.setAttribute("aria-selected",!0),this.lastId=t.target.id,r.hidePanel(),o="#"+o,r.color(o),e.execCommand(r.settings.selectcmd,!1,o))}function l(){var t=this;t._color&&e.execCommand(t.settings.selectcmd,!1,t._color)}e.addButton("forecolor",{type:"colorbutton",tooltip:"Text color",selectcmd:"ForeColor",panel:{role:"application",ariaRemember:!0,html:o,onclick:r},onclick:l}),e.addButton("backcolor",{type:"colorbutton",tooltip:"Background color",selectcmd:"HiliteColor",panel:{role:"application",ariaRemember:!0,html:o,onclick:r},onclick:l})}); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/tinymce.jquery.dev.js b/common/static/js/vendor/tinymce/js/tinymce/tinymce.jquery.dev.js new file mode 100755 index 00000000000..65580436c95 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/tinymce.jquery.dev.js @@ -0,0 +1,213 @@ +/** + * Inline development version. Only to be used while developing since it uses document.write to load scripts. + */ + +/*jshint smarttabs:true, undef:true, latedef:true, curly:true, bitwise:true, camelcase:true */ +/*globals $code */ + +(function(exports) { + "use strict"; + + var html = "", baseDir; + var modules = {}, exposedModules = [], moduleCount = 0; + + var scripts = document.getElementsByTagName('script'); + for (var i = 0; i < scripts.length; i++) { + var src = scripts[i].src; + + if (src.indexOf('/tinymce.jquery.dev.js') != -1) { + baseDir = src.substring(0, src.lastIndexOf('/')); + } + } + + function require(ids, callback) { + var module, defs = []; + + for (var i = 0; i < ids.length; ++i) { + module = modules[ids[i]] || resolve(ids[i]); + if (!module) { + throw 'module definition dependecy not found: ' + ids[i]; + } + + defs.push(module); + } + + callback.apply(null, defs); + } + + function resolve(id) { + var target = exports; + var fragments = id.split(/[.\/]/); + + for (var fi = 0; fi < fragments.length; ++fi) { + if (!target[fragments[fi]]) { + return; + } + + target = target[fragments[fi]]; + } + + return target; + } + + function register(id) { + var target = exports; + var fragments = id.split(/[.\/]/); + + for (var fi = 0; fi < fragments.length - 1; ++fi) { + if (target[fragments[fi]] === undefined) { + target[fragments[fi]] = {}; + } + + target = target[fragments[fi]]; + } + + target[fragments[fragments.length - 1]] = modules[id]; + } + + function define(id, dependencies, definition) { + if (typeof id !== 'string') { + throw 'invalid module definition, module id must be defined and be a string'; + } + + if (dependencies === undefined) { + throw 'invalid module definition, dependencies must be specified'; + } + + if (definition === undefined) { + throw 'invalid module definition, definition function must be specified'; + } + + require(dependencies, function() { + modules[id] = definition.apply(null, arguments); + }); + + if (--moduleCount === 0) { + for (var i = 0; i < exposedModules.length; i++) { + register(exposedModules[i]); + } + } + } + + function expose(ids) { + exposedModules = ids; + } + + function writeScripts() { + document.write(html); + } + + function load(path) { + html += '<script type="text/javascript" src="' + baseDir + '/' + path + '"></script>\n'; + moduleCount++; + } + + // Expose globally + exports.define = define; + exports.require = require; + + expose(["tinymce/dom/Sizzle","tinymce/html/Styles","tinymce/dom/EventUtils","tinymce/dom/TreeWalker","tinymce/util/Tools","tinymce/dom/Range","tinymce/html/Entities","tinymce/Env","tinymce/dom/StyleSheetLoader","tinymce/dom/DOMUtils","tinymce/dom/ScriptLoader","tinymce/AddOnManager","tinymce/html/Node","tinymce/html/Schema","tinymce/html/SaxParser","tinymce/html/DomParser","tinymce/html/Writer","tinymce/html/Serializer","tinymce/dom/Serializer","tinymce/dom/TridentSelection","tinymce/util/VK","tinymce/dom/ControlSelection","tinymce/dom/RangeUtils","tinymce/dom/Selection","tinymce/Formatter","tinymce/UndoManager","tinymce/EnterKey","tinymce/ForceBlocks","tinymce/EditorCommands","tinymce/util/URI","tinymce/util/Class","tinymce/ui/Selector","tinymce/ui/Collection","tinymce/ui/DomUtils","tinymce/ui/Control","tinymce/ui/Factory","tinymce/ui/KeyboardNavigation","tinymce/ui/Container","tinymce/ui/DragHelper","tinymce/ui/Scrollable","tinymce/ui/Panel","tinymce/ui/Movable","tinymce/ui/Resizable","tinymce/ui/FloatPanel","tinymce/ui/Window","tinymce/ui/MessageBox","tinymce/WindowManager","tinymce/util/Quirks","tinymce/util/Observable","tinymce/Shortcuts","tinymce/Editor","tinymce/util/I18n","tinymce/FocusManager","tinymce/EditorManager","tinymce/LegacyInput","tinymce/util/XHR","tinymce/util/JSON","tinymce/util/JSONRequest","tinymce/util/JSONP","tinymce/util/LocalStorage","tinymce/Compat","tinymce/ui/Layout","tinymce/ui/AbsoluteLayout","tinymce/ui/Tooltip","tinymce/ui/Widget","tinymce/ui/Button","tinymce/ui/ButtonGroup","tinymce/ui/Checkbox","tinymce/ui/PanelButton","tinymce/ui/ColorButton","tinymce/ui/ComboBox","tinymce/ui/Path","tinymce/ui/ElementPath","tinymce/ui/FormItem","tinymce/ui/Form","tinymce/ui/FieldSet","tinymce/ui/FilePicker","tinymce/ui/FitLayout","tinymce/ui/FlexLayout","tinymce/ui/FlowLayout","tinymce/ui/FormatControls","tinymce/ui/GridLayout","tinymce/ui/Iframe","tinymce/ui/Label","tinymce/ui/Toolbar","tinymce/ui/MenuBar","tinymce/ui/MenuButton","tinymce/ui/ListBox","tinymce/ui/MenuItem","tinymce/ui/Menu","tinymce/ui/Radio","tinymce/ui/ResizeHandle","tinymce/ui/Spacer","tinymce/ui/SplitButton","tinymce/ui/StackLayout","tinymce/ui/TabPanel","tinymce/ui/TextBox","tinymce/ui/Throbber"]); + + load('classes/dom/Sizzle.jQuery.js'); + load('classes/html/Styles.js'); + load('classes/dom/EventUtils.js'); + load('classes/dom/TreeWalker.js'); + load('classes/util/Tools.js'); + load('classes/dom/Range.js'); + load('classes/html/Entities.js'); + load('classes/Env.js'); + load('classes/dom/StyleSheetLoader.js'); + load('classes/dom/DOMUtils.js'); + load('classes/dom/ScriptLoader.js'); + load('classes/AddOnManager.js'); + load('classes/html/Node.js'); + load('classes/html/Schema.js'); + load('classes/html/SaxParser.js'); + load('classes/html/DomParser.js'); + load('classes/html/Writer.js'); + load('classes/html/Serializer.js'); + load('classes/dom/Serializer.js'); + load('classes/dom/TridentSelection.js'); + load('classes/util/VK.js'); + load('classes/dom/ControlSelection.js'); + load('classes/dom/RangeUtils.js'); + load('classes/dom/Selection.js'); + load('classes/Formatter.js'); + load('classes/UndoManager.js'); + load('classes/EnterKey.js'); + load('classes/ForceBlocks.js'); + load('classes/EditorCommands.js'); + load('classes/util/URI.js'); + load('classes/util/Class.js'); + load('classes/ui/Selector.js'); + load('classes/ui/Collection.js'); + load('classes/ui/DomUtils.js'); + load('classes/ui/Control.js'); + load('classes/ui/Factory.js'); + load('classes/ui/KeyboardNavigation.js'); + load('classes/ui/Container.js'); + load('classes/ui/DragHelper.js'); + load('classes/ui/Scrollable.js'); + load('classes/ui/Panel.js'); + load('classes/ui/Movable.js'); + load('classes/ui/Resizable.js'); + load('classes/ui/FloatPanel.js'); + load('classes/ui/Window.js'); + load('classes/ui/MessageBox.js'); + load('classes/WindowManager.js'); + load('classes/util/Quirks.js'); + load('classes/util/Observable.js'); + load('classes/Shortcuts.js'); + load('classes/Editor.js'); + load('classes/util/I18n.js'); + load('classes/FocusManager.js'); + load('classes/EditorManager.js'); + load('classes/LegacyInput.js'); + load('classes/util/XHR.js'); + load('classes/util/JSON.js'); + load('classes/util/JSONRequest.js'); + load('classes/util/JSONP.js'); + load('classes/util/LocalStorage.js'); + load('classes/Compat.js'); + load('classes/ui/Layout.js'); + load('classes/ui/AbsoluteLayout.js'); + load('classes/ui/Tooltip.js'); + load('classes/ui/Widget.js'); + load('classes/ui/Button.js'); + load('classes/ui/ButtonGroup.js'); + load('classes/ui/Checkbox.js'); + load('classes/ui/PanelButton.js'); + load('classes/ui/ColorButton.js'); + load('classes/ui/ComboBox.js'); + load('classes/ui/Path.js'); + load('classes/ui/ElementPath.js'); + load('classes/ui/FormItem.js'); + load('classes/ui/Form.js'); + load('classes/ui/FieldSet.js'); + load('classes/ui/FilePicker.js'); + load('classes/ui/FitLayout.js'); + load('classes/ui/FlexLayout.js'); + load('classes/ui/FlowLayout.js'); + load('classes/ui/FormatControls.js'); + load('classes/ui/GridLayout.js'); + load('classes/ui/Iframe.js'); + load('classes/ui/Label.js'); + load('classes/ui/Toolbar.js'); + load('classes/ui/MenuBar.js'); + load('classes/ui/MenuButton.js'); + load('classes/ui/ListBox.js'); + load('classes/ui/MenuItem.js'); + load('classes/ui/Menu.js'); + load('classes/ui/Radio.js'); + load('classes/ui/ResizeHandle.js'); + load('classes/ui/Spacer.js'); + load('classes/ui/SplitButton.js'); + load('classes/ui/StackLayout.js'); + load('classes/ui/TabPanel.js'); + load('classes/ui/TextBox.js'); + load('classes/ui/Throbber.js'); + + writeScripts(); +})(this); + +// $hash: 0987d954549d1d01100987db6426ea5d \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/tinymce.jquery.js b/common/static/js/vendor/tinymce/js/tinymce/tinymce.jquery.js new file mode 100755 index 00000000000..3a2a690edb3 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/tinymce.jquery.js @@ -0,0 +1,32176 @@ +// 4.0.20 (2014-03-18) + +/** + * Compiled inline version. (Library mode) + */ + +/*jshint smarttabs:true, undef:true, latedef:true, curly:true, bitwise:true, camelcase:true */ +/*globals $code */ + +(function(exports, undefined) { + "use strict"; + + var modules = {}; + + function require(ids, callback) { + var module, defs = []; + + for (var i = 0; i < ids.length; ++i) { + module = modules[ids[i]] || resolve(ids[i]); + if (!module) { + throw 'module definition dependecy not found: ' + ids[i]; + } + + defs.push(module); + } + + callback.apply(null, defs); + } + + function define(id, dependencies, definition) { + if (typeof id !== 'string') { + throw 'invalid module definition, module id must be defined and be a string'; + } + + if (dependencies === undefined) { + throw 'invalid module definition, dependencies must be specified'; + } + + if (definition === undefined) { + throw 'invalid module definition, definition function must be specified'; + } + + require(dependencies, function() { + modules[id] = definition.apply(null, arguments); + }); + } + + function defined(id) { + return !!modules[id]; + } + + function resolve(id) { + var target = exports; + var fragments = id.split(/[.\/]/); + + for (var fi = 0; fi < fragments.length; ++fi) { + if (!target[fragments[fi]]) { + return; + } + + target = target[fragments[fi]]; + } + + return target; + } + + function expose(ids) { + for (var i = 0; i < ids.length; i++) { + var target = exports; + var id = ids[i]; + var fragments = id.split(/[.\/]/); + + for (var fi = 0; fi < fragments.length - 1; ++fi) { + if (target[fragments[fi]] === undefined) { + target[fragments[fi]] = {}; + } + + target = target[fragments[fi]]; + } + + target[fragments[fragments.length - 1]] = modules[id]; + } + } + +// Included from: js/tinymce/classes/dom/Sizzle.jQuery.js + +/** + * Sizzle.jQuery.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*global jQuery:true */ + +/* + * Fake Sizzle using jQuery. + */ +define("tinymce/dom/Sizzle", [], function() { + // Detect if jQuery is loaded + if (!window.jQuery) { + throw new Error("Load jQuery first"); + } + + return jQuery.find; +}); + +// Included from: js/tinymce/classes/html/Styles.js + +/** + * Styles.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class is used to parse CSS styles it also compresses styles to reduce the output size. + * + * @example + * var Styles = new tinymce.html.Styles({ + * url_converter: function(url) { + * return url; + * } + * }); + * + * styles = Styles.parse('border: 1px solid red'); + * styles.color = 'red'; + * + * console.log(new tinymce.html.StyleSerializer().serialize(styles)); + * + * @class tinymce.html.Styles + * @version 3.4 + */ +define("tinymce/html/Styles", [], function() { + return function(settings, schema) { + /*jshint maxlen:255 */ + /*eslint max-len:0 */ + var rgbRegExp = /rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi, + urlOrStrRegExp = /(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi, + styleRegExp = /\s*([^:]+):\s*([^;]+);?/g, + trimRightRegExp = /\s+$/, + undef, i, encodingLookup = {}, encodingItems, invisibleChar = '\uFEFF'; + + settings = settings || {}; + + encodingItems = ('\\" \\\' \\; \\: ; : ' + invisibleChar).split(' '); + for (i = 0; i < encodingItems.length; i++) { + encodingLookup[encodingItems[i]] = invisibleChar + i; + encodingLookup[invisibleChar + i] = encodingItems[i]; + } + + function toHex(match, r, g, b) { + function hex(val) { + val = parseInt(val, 10).toString(16); + + return val.length > 1 ? val : '0' + val; // 0 -> 00 + } + + return '#' + hex(r) + hex(g) + hex(b); + } + + return { + /** + * Parses the specified RGB color value and returns a hex version of that color. + * + * @method toHex + * @param {String} color RGB string value like rgb(1,2,3) + * @return {String} Hex version of that RGB value like #FF00FF. + */ + toHex: function(color) { + return color.replace(rgbRegExp, toHex); + }, + + /** + * Parses the specified style value into an object collection. This parser will also + * merge and remove any redundant items that browsers might have added. It will also convert non hex + * colors to hex values. Urls inside the styles will also be converted to absolute/relative based on settings. + * + * @method parse + * @param {String} css Style value to parse for example: border:1px solid red;. + * @return {Object} Object representation of that style like {border: '1px solid red'} + */ + parse: function(css) { + var styles = {}, matches, name, value, isEncoded, urlConverter = settings.url_converter; + var urlConverterScope = settings.url_converter_scope || this; + + function compress(prefix, suffix, noJoin) { + var top, right, bottom, left; + + top = styles[prefix + '-top' + suffix]; + if (!top) { + return; + } + + right = styles[prefix + '-right' + suffix]; + if (!right) { + return; + } + + bottom = styles[prefix + '-bottom' + suffix]; + if (!bottom) { + return; + } + + left = styles[prefix + '-left' + suffix]; + if (!left) { + return; + } + + var box = [top, right, bottom, left]; + i = box.length - 1; + while (i--) { + if (box[i] !== box[i + 1]) { + break; + } + } + + if (i > -1 && noJoin) { + return; + } + + styles[prefix + suffix] = i == -1 ? box[0] : box.join(' '); + delete styles[prefix + '-top' + suffix]; + delete styles[prefix + '-right' + suffix]; + delete styles[prefix + '-bottom' + suffix]; + delete styles[prefix + '-left' + suffix]; + } + + /** + * Checks if the specific style can be compressed in other words if all border-width are equal. + */ + function canCompress(key) { + var value = styles[key], i; + + if (!value) { + return; + } + + value = value.split(' '); + i = value.length; + while (i--) { + if (value[i] !== value[0]) { + return false; + } + } + + styles[key] = value[0]; + + return true; + } + + /** + * Compresses multiple styles into one style. + */ + function compress2(target, a, b, c) { + if (!canCompress(a)) { + return; + } + + if (!canCompress(b)) { + return; + } + + if (!canCompress(c)) { + return; + } + + // Compress + styles[target] = styles[a] + ' ' + styles[b] + ' ' + styles[c]; + delete styles[a]; + delete styles[b]; + delete styles[c]; + } + + // Encodes the specified string by replacing all \" \' ; : with _<num> + function encode(str) { + isEncoded = true; + + return encodingLookup[str]; + } + + // Decodes the specified string by replacing all _<num> with it's original value \" \' etc + // It will also decode the \" \' if keep_slashes is set to fale or omitted + function decode(str, keep_slashes) { + if (isEncoded) { + str = str.replace(/\uFEFF[0-9]/g, function(str) { + return encodingLookup[str]; + }); + } + + if (!keep_slashes) { + str = str.replace(/\\([\'\";:])/g, "$1"); + } + + return str; + } + + function processUrl(match, url, url2, url3, str, str2) { + str = str || str2; + + if (str) { + str = decode(str); + + // Force strings into single quote format + return "'" + str.replace(/\'/g, "\\'") + "'"; + } + + url = decode(url || url2 || url3); + + if (!settings.allow_script_urls && /(java|vb)script:/i.test(url.replace(/[\s\r\n]+/, ''))) { + return ""; + } + + // Convert the URL to relative/absolute depending on config + if (urlConverter) { + url = urlConverter.call(urlConverterScope, url, 'style'); + } + + // Output new URL format + return "url('" + url.replace(/\'/g, "\\'") + "')"; + } + + if (css) { + css = css.replace(/[\u0000-\u001F]/g, ''); + + // Encode \" \' % and ; and : inside strings so they don't interfere with the style parsing + css = css.replace(/\\[\"\';:\uFEFF]/g, encode).replace(/\"[^\"]+\"|\'[^\']+\'/g, function(str) { + return str.replace(/[;:]/g, encode); + }); + + // Parse styles + while ((matches = styleRegExp.exec(css))) { + name = matches[1].replace(trimRightRegExp, '').toLowerCase(); + value = matches[2].replace(trimRightRegExp, ''); + + if (name && value.length > 0) { + if (!settings.allow_script_urls && (name == "behavior" || /expression\s*\(/.test(value))) { + continue; + } + + // Opera will produce 700 instead of bold in their style values + if (name === 'font-weight' && value === '700') { + value = 'bold'; + } else if (name === 'color' || name === 'background-color') { // Lowercase colors like RED + value = value.toLowerCase(); + } + + // Convert RGB colors to HEX + value = value.replace(rgbRegExp, toHex); + + // Convert URLs and force them into url('value') format + value = value.replace(urlOrStrRegExp, processUrl); + styles[name] = isEncoded ? decode(value, true) : value; + } + + styleRegExp.lastIndex = matches.index + matches[0].length; + } + // Compress the styles to reduce it's size for example IE will expand styles + compress("border", "", true); + compress("border", "-width"); + compress("border", "-color"); + compress("border", "-style"); + compress("padding", ""); + compress("margin", ""); + compress2('border', 'border-width', 'border-style', 'border-color'); + + // Remove pointless border, IE produces these + if (styles.border === 'medium none') { + delete styles.border; + } + + // IE 11 will produce a border-image: none when getting the style attribute from <p style="border: 1px solid red"></p> + // So lets asume it shouldn't be there + if (styles['border-image'] === 'none') { + delete styles['border-image']; + } + } + + return styles; + }, + + /** + * Serializes the specified style object into a string. + * + * @method serialize + * @param {Object} styles Object to serialize as string for example: {border: '1px solid red'} + * @param {String} element_name Optional element name, if specified only the styles that matches the schema will be serialized. + * @return {String} String representation of the style object for example: border: 1px solid red. + */ + serialize: function(styles, element_name) { + var css = '', name, value; + + function serializeStyles(name) { + var styleList, i, l, value; + + styleList = schema.styles[name]; + if (styleList) { + for (i = 0, l = styleList.length; i < l; i++) { + name = styleList[i]; + value = styles[name]; + + if (value !== undef && value.length > 0) { + css += (css.length > 0 ? ' ' : '') + name + ': ' + value + ';'; + } + } + } + } + + // Serialize styles according to schema + if (element_name && schema && schema.styles) { + // Serialize global styles and element specific styles + serializeStyles('*'); + serializeStyles(element_name); + } else { + // Output the styles in the order they are inside the object + for (name in styles) { + value = styles[name]; + + if (value !== undef && value.length > 0) { + css += (css.length > 0 ? ' ' : '') + name + ': ' + value + ';'; + } + } + } + + return css; + } + }; + }; +}); + +// Included from: js/tinymce/classes/dom/EventUtils.js + +/** + * EventUtils.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*jshint loopfunc:true*/ +/*eslint no-loop-func:0 */ + +define("tinymce/dom/EventUtils", [], function() { + "use strict"; + + var eventExpandoPrefix = "mce-data-"; + var mouseEventRe = /^(?:mouse|contextmenu)|click/; + var deprecated = {keyLocation: 1, layerX: 1, layerY: 1, returnValue: 1}; + + /** + * Binds a native event to a callback on the speified target. + */ + function addEvent(target, name, callback, capture) { + if (target.addEventListener) { + target.addEventListener(name, callback, capture || false); + } else if (target.attachEvent) { + target.attachEvent('on' + name, callback); + } + } + + /** + * Unbinds a native event callback on the specified target. + */ + function removeEvent(target, name, callback, capture) { + if (target.removeEventListener) { + target.removeEventListener(name, callback, capture || false); + } else if (target.detachEvent) { + target.detachEvent('on' + name, callback); + } + } + + /** + * Normalizes a native event object or just adds the event specific methods on a custom event. + */ + function fix(originalEvent, data) { + var name, event = data || {}, undef; + + // Dummy function that gets replaced on the delegation state functions + function returnFalse() { + return false; + } + + // Dummy function that gets replaced on the delegation state functions + function returnTrue() { + return true; + } + + // Copy all properties from the original event + for (name in originalEvent) { + // layerX/layerY is deprecated in Chrome and produces a warning + if (!deprecated[name]) { + event[name] = originalEvent[name]; + } + } + + // Normalize target IE uses srcElement + if (!event.target) { + event.target = event.srcElement || document; + } + + // Calculate pageX/Y if missing and clientX/Y available + if (originalEvent && mouseEventRe.test(originalEvent.type) && originalEvent.pageX === undef && originalEvent.clientX !== undef) { + var eventDoc = event.target.ownerDocument || document; + var doc = eventDoc.documentElement; + var body = eventDoc.body; + + event.pageX = originalEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - + ( doc && doc.clientLeft || body && body.clientLeft || 0); + + event.pageY = originalEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0 ) - + ( doc && doc.clientTop || body && body.clientTop || 0); + } + + // Add preventDefault method + event.preventDefault = function() { + event.isDefaultPrevented = returnTrue; + + // Execute preventDefault on the original event object + if (originalEvent) { + if (originalEvent.preventDefault) { + originalEvent.preventDefault(); + } else { + originalEvent.returnValue = false; // IE + } + } + }; + + // Add stopPropagation + event.stopPropagation = function() { + event.isPropagationStopped = returnTrue; + + // Execute stopPropagation on the original event object + if (originalEvent) { + if (originalEvent.stopPropagation) { + originalEvent.stopPropagation(); + } else { + originalEvent.cancelBubble = true; // IE + } + } + }; + + // Add stopImmediatePropagation + event.stopImmediatePropagation = function() { + event.isImmediatePropagationStopped = returnTrue; + event.stopPropagation(); + }; + + // Add event delegation states + if (!event.isDefaultPrevented) { + event.isDefaultPrevented = returnFalse; + event.isPropagationStopped = returnFalse; + event.isImmediatePropagationStopped = returnFalse; + } + + return event; + } + + /** + * Bind a DOMContentLoaded event across browsers and executes the callback once the page DOM is initialized. + * It will also set/check the domLoaded state of the event_utils instance so ready isn't called multiple times. + */ + function bindOnReady(win, callback, eventUtils) { + var doc = win.document, event = {type: 'ready'}; + + if (eventUtils.domLoaded) { + callback(event); + return; + } + + // Gets called when the DOM is ready + function readyHandler() { + if (!eventUtils.domLoaded) { + eventUtils.domLoaded = true; + callback(event); + } + } + + function waitForDomLoaded() { + // Check complete or interactive state if there is a body + // element on some iframes IE 8 will produce a null body + if (doc.readyState === "complete" || (doc.readyState === "interactive" && doc.body)) { + removeEvent(doc, "readystatechange", waitForDomLoaded); + readyHandler(); + } + } + + function tryScroll() { + try { + // If IE is used, use the trick by Diego Perini licensed under MIT by request to the author. + // http://javascript.nwbox.com/IEContentLoaded/ + doc.documentElement.doScroll("left"); + } catch (ex) { + setTimeout(tryScroll, 0); + return; + } + + readyHandler(); + } + + // Use W3C method + if (doc.addEventListener) { + if (doc.readyState === "complete") { + readyHandler(); + } else { + addEvent(win, 'DOMContentLoaded', readyHandler); + } + } else { + // Use IE method + addEvent(doc, "readystatechange", waitForDomLoaded); + + // Wait until we can scroll, when we can the DOM is initialized + if (doc.documentElement.doScroll && win.self === win.top) { + tryScroll(); + } + } + + // Fallback if any of the above methods should fail for some odd reason + addEvent(win, 'load', readyHandler); + } + + /** + * This class enables you to bind/unbind native events to elements and normalize it's behavior across browsers. + */ + function EventUtils() { + var self = this, events = {}, count, expando, hasFocusIn, hasMouseEnterLeave, mouseEnterLeave; + + expando = eventExpandoPrefix + (+new Date()).toString(32); + hasMouseEnterLeave = "onmouseenter" in document.documentElement; + hasFocusIn = "onfocusin" in document.documentElement; + mouseEnterLeave = {mouseenter: 'mouseover', mouseleave: 'mouseout'}; + count = 1; + + // State if the DOMContentLoaded was executed or not + self.domLoaded = false; + self.events = events; + + /** + * Executes all event handler callbacks for a specific event. + * + * @private + * @param {Event} evt Event object. + * @param {String} id Expando id value to look for. + */ + function executeHandlers(evt, id) { + var callbackList, i, l, callback, container = events[id]; + + callbackList = container && container[evt.type]; + if (callbackList) { + for (i = 0, l = callbackList.length; i < l; i++) { + callback = callbackList[i]; + + // Check if callback exists might be removed if a unbind is called inside the callback + if (callback && callback.func.call(callback.scope, evt) === false) { + evt.preventDefault(); + } + + // Should we stop propagation to immediate listeners + if (evt.isImmediatePropagationStopped()) { + return; + } + } + } + } + + /** + * Binds a callback to an event on the specified target. + * + * @method bind + * @param {Object} target Target node/window or custom object. + * @param {String} names Name of the event to bind. + * @param {function} callback Callback function to execute when the event occurs. + * @param {Object} scope Scope to call the callback function on, defaults to target. + * @return {function} Callback function that got bound. + */ + self.bind = function(target, names, callback, scope) { + var id, callbackList, i, name, fakeName, nativeHandler, capture, win = window; + + // Native event handler function patches the event and executes the callbacks for the expando + function defaultNativeHandler(evt) { + executeHandlers(fix(evt || win.event), id); + } + + // Don't bind to text nodes or comments + if (!target || target.nodeType === 3 || target.nodeType === 8) { + return; + } + + // Create or get events id for the target + if (!target[expando]) { + id = count++; + target[expando] = id; + events[id] = {}; + } else { + id = target[expando]; + } + + // Setup the specified scope or use the target as a default + scope = scope || target; + + // Split names and bind each event, enables you to bind multiple events with one call + names = names.split(' '); + i = names.length; + while (i--) { + name = names[i]; + nativeHandler = defaultNativeHandler; + fakeName = capture = false; + + // Use ready instead of DOMContentLoaded + if (name === "DOMContentLoaded") { + name = "ready"; + } + + // DOM is already ready + if (self.domLoaded && name === "ready" && target.readyState == 'complete') { + callback.call(scope, fix({type: name})); + continue; + } + + // Handle mouseenter/mouseleaver + if (!hasMouseEnterLeave) { + fakeName = mouseEnterLeave[name]; + + if (fakeName) { + nativeHandler = function(evt) { + var current, related; + + current = evt.currentTarget; + related = evt.relatedTarget; + + // Check if related is inside the current target if it's not then the event should + // be ignored since it's a mouseover/mouseout inside the element + if (related && current.contains) { + // Use contains for performance + related = current.contains(related); + } else { + while (related && related !== current) { + related = related.parentNode; + } + } + + // Fire fake event + if (!related) { + evt = fix(evt || win.event); + evt.type = evt.type === 'mouseout' ? 'mouseleave' : 'mouseenter'; + evt.target = current; + executeHandlers(evt, id); + } + }; + } + } + + // Fake bubbeling of focusin/focusout + if (!hasFocusIn && (name === "focusin" || name === "focusout")) { + capture = true; + fakeName = name === "focusin" ? "focus" : "blur"; + nativeHandler = function(evt) { + evt = fix(evt || win.event); + evt.type = evt.type === 'focus' ? 'focusin' : 'focusout'; + executeHandlers(evt, id); + }; + } + + // Setup callback list and bind native event + callbackList = events[id][name]; + if (!callbackList) { + events[id][name] = callbackList = [{func: callback, scope: scope}]; + callbackList.fakeName = fakeName; + callbackList.capture = capture; + + // Add the nativeHandler to the callback list so that we can later unbind it + callbackList.nativeHandler = nativeHandler; + + // Check if the target has native events support + + if (name === "ready") { + bindOnReady(target, nativeHandler, self); + } else { + addEvent(target, fakeName || name, nativeHandler, capture); + } + } else { + if (name === "ready" && self.domLoaded) { + callback({type: name}); + } else { + // If it already has an native handler then just push the callback + callbackList.push({func: callback, scope: scope}); + } + } + } + + target = callbackList = 0; // Clean memory for IE + + return callback; + }; + + /** + * Unbinds the specified event by name, name and callback or all events on the target. + * + * @method unbind + * @param {Object} target Target node/window or custom object. + * @param {String} names Optional event name to unbind. + * @param {function} callback Optional callback function to unbind. + * @return {EventUtils} Event utils instance. + */ + self.unbind = function(target, names, callback) { + var id, callbackList, i, ci, name, eventMap; + + // Don't bind to text nodes or comments + if (!target || target.nodeType === 3 || target.nodeType === 8) { + return self; + } + + // Unbind event or events if the target has the expando + id = target[expando]; + if (id) { + eventMap = events[id]; + + // Specific callback + if (names) { + names = names.split(' '); + i = names.length; + while (i--) { + name = names[i]; + callbackList = eventMap[name]; + + // Unbind the event if it exists in the map + if (callbackList) { + // Remove specified callback + if (callback) { + ci = callbackList.length; + while (ci--) { + if (callbackList[ci].func === callback) { + var nativeHandler = callbackList.nativeHandler; + var fakeName = callbackList.fakeName, capture = callbackList.capture; + + // Clone callbackList since unbind inside a callback would otherwise break the handlers loop + callbackList = callbackList.slice(0, ci).concat(callbackList.slice(ci + 1)); + callbackList.nativeHandler = nativeHandler; + callbackList.fakeName = fakeName; + callbackList.capture = capture; + + eventMap[name] = callbackList; + } + } + } + + // Remove all callbacks if there isn't a specified callback or there is no callbacks left + if (!callback || callbackList.length === 0) { + delete eventMap[name]; + removeEvent(target, callbackList.fakeName || name, callbackList.nativeHandler, callbackList.capture); + } + } + } + } else { + // All events for a specific element + for (name in eventMap) { + callbackList = eventMap[name]; + removeEvent(target, callbackList.fakeName || name, callbackList.nativeHandler, callbackList.capture); + } + + eventMap = {}; + } + + // Check if object is empty, if it isn't then we won't remove the expando map + for (name in eventMap) { + return self; + } + + // Delete event object + delete events[id]; + + // Remove expando from target + try { + // IE will fail here since it can't delete properties from window + delete target[expando]; + } catch (ex) { + // IE will set it to null + target[expando] = null; + } + } + + return self; + }; + + /** + * Fires the specified event on the specified target. + * + * @method fire + * @param {Object} target Target node/window or custom object. + * @param {String} name Event name to fire. + * @param {Object} args Optional arguments to send to the observers. + * @return {EventUtils} Event utils instance. + */ + self.fire = function(target, name, args) { + var id; + + // Don't bind to text nodes or comments + if (!target || target.nodeType === 3 || target.nodeType === 8) { + return self; + } + + // Build event object by patching the args + args = fix(null, args); + args.type = name; + args.target = target; + + do { + // Found an expando that means there is listeners to execute + id = target[expando]; + if (id) { + executeHandlers(args, id); + } + + // Walk up the DOM + target = target.parentNode || target.ownerDocument || target.defaultView || target.parentWindow; + } while (target && !args.isPropagationStopped()); + + return self; + }; + + /** + * Removes all bound event listeners for the specified target. This will also remove any bound + * listeners to child nodes within that target. + * + * @method clean + * @param {Object} target Target node/window object. + * @return {EventUtils} Event utils instance. + */ + self.clean = function(target) { + var i, children, unbind = self.unbind; + + // Don't bind to text nodes or comments + if (!target || target.nodeType === 3 || target.nodeType === 8) { + return self; + } + + // Unbind any element on the specificed target + if (target[expando]) { + unbind(target); + } + + // Target doesn't have getElementsByTagName it's probably a window object then use it's document to find the children + if (!target.getElementsByTagName) { + target = target.document; + } + + // Remove events from each child element + if (target && target.getElementsByTagName) { + unbind(target); + + children = target.getElementsByTagName('*'); + i = children.length; + while (i--) { + target = children[i]; + + if (target[expando]) { + unbind(target); + } + } + } + + return self; + }; + + /** + * Destroys the event object. Call this on IE to remove memory leaks. + */ + self.destroy = function() { + events = {}; + }; + + // Legacy function for canceling events + self.cancel = function(e) { + if (e) { + e.preventDefault(); + e.stopImmediatePropagation(); + } + + return false; + }; + } + + EventUtils.Event = new EventUtils(); + EventUtils.Event.bind(window, 'ready', function() {}); + + return EventUtils; +}); + +// Included from: js/tinymce/classes/dom/TreeWalker.js + +/** + * TreeWalker.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * TreeWalker class enables you to walk the DOM in a linear manner. + * + * @class tinymce.dom.TreeWalker + */ +define("tinymce/dom/TreeWalker", [], function() { + return function(start_node, root_node) { + var node = start_node; + + function findSibling(node, start_name, sibling_name, shallow) { + var sibling, parent; + + if (node) { + // Walk into nodes if it has a start + if (!shallow && node[start_name]) { + return node[start_name]; + } + + // Return the sibling if it has one + if (node != root_node) { + sibling = node[sibling_name]; + if (sibling) { + return sibling; + } + + // Walk up the parents to look for siblings + for (parent = node.parentNode; parent && parent != root_node; parent = parent.parentNode) { + sibling = parent[sibling_name]; + if (sibling) { + return sibling; + } + } + } + } + } + + /** + * Returns the current node. + * + * @method current + * @return {Node} Current node where the walker is. + */ + this.current = function() { + return node; + }; + + /** + * Walks to the next node in tree. + * + * @method next + * @return {Node} Current node where the walker is after moving to the next node. + */ + this.next = function(shallow) { + node = findSibling(node, 'firstChild', 'nextSibling', shallow); + return node; + }; + + /** + * Walks to the previous node in tree. + * + * @method prev + * @return {Node} Current node where the walker is after moving to the previous node. + */ + this.prev = function(shallow) { + node = findSibling(node, 'lastChild', 'previousSibling', shallow); + return node; + }; + }; +}); + +// Included from: js/tinymce/classes/util/Tools.js + +/** + * Tools.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class contains various utlity functions. These are also exposed + * directly on the tinymce namespace. + * + * @class tinymce.util.Tools + */ +define("tinymce/util/Tools", [], function() { + /** + * Removes whitespace from the beginning and end of a string. + * + * @method trim + * @param {String} s String to remove whitespace from. + * @return {String} New string with removed whitespace. + */ + var whiteSpaceRegExp = /^\s*|\s*$/g; + + function trim(str) { + return (str === null || str === undefined) ? '' : ("" + str).replace(whiteSpaceRegExp, ''); + } + + /** + * Returns true/false if the object is an array or not. + * + * @method isArray + * @param {Object} obj Object to check. + * @return {boolean} true/false state if the object is an array or not. + */ + var isArray = Array.isArray || function(obj) { + return Object.prototype.toString.call(obj) === "[object Array]"; + }; + + /** + * Checks if a object is of a specific type for example an array. + * + * @method is + * @param {Object} o Object to check type of. + * @param {string} t Optional type to check for. + * @return {Boolean} true/false if the object is of the specified type. + */ + function is(o, t) { + if (!t) { + return o !== undefined; + } + + if (t == 'array' && isArray(o)) { + return true; + } + + return typeof(o) == t; + } + + /** + * Converts the specified object into a real JavaScript array. + * + * @method toArray + * @param {Object} obj Object to convert into array. + * @return {Array} Array object based in input. + */ + function toArray(obj) { + var array = [], i, l; + + for (i = 0, l = obj.length; i < l; i++) { + array[i] = obj[i]; + } + + return array; + } + + /** + * Makes a name/object map out of an array with names. + * + * @method makeMap + * @param {Array/String} items Items to make map out of. + * @param {String} delim Optional delimiter to split string by. + * @param {Object} map Optional map to add items to. + * @return {Object} Name/value map of items. + */ + function makeMap(items, delim, map) { + var i; + + items = items || []; + delim = delim || ','; + + if (typeof(items) == "string") { + items = items.split(delim); + } + + map = map || {}; + + i = items.length; + while (i--) { + map[items[i]] = {}; + } + + return map; + } + + /** + * Performs an iteration of all items in a collection such as an object or array. This method will execure the + * callback function for each item in the collection, if the callback returns false the iteration will terminate. + * The callback has the following format: cb(value, key_or_index). + * + * @method each + * @param {Object} o Collection to iterate. + * @param {function} cb Callback function to execute for each item. + * @param {Object} s Optional scope to execute the callback in. + * @example + * // Iterate an array + * tinymce.each([1,2,3], function(v, i) { + * console.debug("Value: " + v + ", Index: " + i); + * }); + * + * // Iterate an object + * tinymce.each({a: 1, b: 2, c: 3], function(v, k) { + * console.debug("Value: " + v + ", Key: " + k); + * }); + */ + function each(o, cb, s) { + var n, l; + + if (!o) { + return 0; + } + + s = s || o; + + if (o.length !== undefined) { + // Indexed arrays, needed for Safari + for (n = 0, l = o.length; n < l; n++) { + if (cb.call(s, o[n], n, o) === false) { + return 0; + } + } + } else { + // Hashtables + for (n in o) { + if (o.hasOwnProperty(n)) { + if (cb.call(s, o[n], n, o) === false) { + return 0; + } + } + } + } + + return 1; + } + + /** + * Creates a new array by the return value of each iteration function call. This enables you to convert + * one array list into another. + * + * @method map + * @param {Array} a Array of items to iterate. + * @param {function} f Function to call for each item. It's return value will be the new value. + * @return {Array} Array with new values based on function return values. + */ + function map(a, f) { + var o = []; + + each(a, function(v) { + o.push(f(v)); + }); + + return o; + } + + /** + * Filters out items from the input array by calling the specified function for each item. + * If the function returns false the item will be excluded if it returns true it will be included. + * + * @method grep + * @param {Array} a Array of items to loop though. + * @param {function} f Function to call for each item. Include/exclude depends on it's return value. + * @return {Array} New array with values imported and filtered based in input. + * @example + * // Filter out some items, this will return an array with 4 and 5 + * var items = tinymce.grep([1,2,3,4,5], function(v) {return v > 3;}); + */ + function grep(a, f) { + var o = []; + + each(a, function(v) { + if (!f || f(v)) { + o.push(v); + } + }); + + return o; + } + + /** + * Creates a class, subclass or static singleton. + * More details on this method can be found in the Wiki. + * + * @method create + * @param {String} s Class name, inheritage and prefix. + * @param {Object} p Collection of methods to add to the class. + * @param {Object} root Optional root object defaults to the global window object. + * @example + * // Creates a basic class + * tinymce.create('tinymce.somepackage.SomeClass', { + * SomeClass: function() { + * // Class constructor + * }, + * + * method: function() { + * // Some method + * } + * }); + * + * // Creates a basic subclass class + * tinymce.create('tinymce.somepackage.SomeSubClass:tinymce.somepackage.SomeClass', { + * SomeSubClass: function() { + * // Class constructor + * this.parent(); // Call parent constructor + * }, + * + * method: function() { + * // Some method + * this.parent(); // Call parent method + * }, + * + * 'static': { + * staticMethod: function() { + * // Static method + * } + * } + * }); + * + * // Creates a singleton/static class + * tinymce.create('static tinymce.somepackage.SomeSingletonClass', { + * method: function() { + * // Some method + * } + * }); + */ + function create(s, p, root) { + var self = this, sp, ns, cn, scn, c, de = 0; + + // Parse : <prefix> <class>:<super class> + s = /^((static) )?([\w.]+)(:([\w.]+))?/.exec(s); + cn = s[3].match(/(^|\.)(\w+)$/i)[2]; // Class name + + // Create namespace for new class + ns = self.createNS(s[3].replace(/\.\w+$/, ''), root); + + // Class already exists + if (ns[cn]) { + return; + } + + // Make pure static class + if (s[2] == 'static') { + ns[cn] = p; + + if (this.onCreate) { + this.onCreate(s[2], s[3], ns[cn]); + } + + return; + } + + // Create default constructor + if (!p[cn]) { + p[cn] = function() {}; + de = 1; + } + + // Add constructor and methods + ns[cn] = p[cn]; + self.extend(ns[cn].prototype, p); + + // Extend + if (s[5]) { + sp = self.resolve(s[5]).prototype; + scn = s[5].match(/\.(\w+)$/i)[1]; // Class name + + // Extend constructor + c = ns[cn]; + if (de) { + // Add passthrough constructor + ns[cn] = function() { + return sp[scn].apply(this, arguments); + }; + } else { + // Add inherit constructor + ns[cn] = function() { + this.parent = sp[scn]; + return c.apply(this, arguments); + }; + } + ns[cn].prototype[cn] = ns[cn]; + + // Add super methods + self.each(sp, function(f, n) { + ns[cn].prototype[n] = sp[n]; + }); + + // Add overridden methods + self.each(p, function(f, n) { + // Extend methods if needed + if (sp[n]) { + ns[cn].prototype[n] = function() { + this.parent = sp[n]; + return f.apply(this, arguments); + }; + } else { + if (n != cn) { + ns[cn].prototype[n] = f; + } + } + }); + } + + // Add static methods + /*jshint sub:true*/ + self.each(p['static'], function(f, n) { + ns[cn][n] = f; + }); + } + + /** + * Returns the index of a value in an array, this method will return -1 if the item wasn't found. + * + * @method inArray + * @param {Array} a Array/Object to search for value in. + * @param {Object} v Value to check for inside the array. + * @return {Number/String} Index of item inside the array inside an object. Or -1 if it wasn't found. + * @example + * // Get index of value in array this will alert 1 since 2 is at that index + * alert(tinymce.inArray([1,2,3], 2)); + */ + function inArray(a, v) { + var i, l; + + if (a) { + for (i = 0, l = a.length; i < l; i++) { + if (a[i] === v) { + return i; + } + } + } + + return -1; + } + + function extend(obj, ext) { + var i, l, name, args = arguments, value; + + for (i = 1, l = args.length; i < l; i++) { + ext = args[i]; + for (name in ext) { + if (ext.hasOwnProperty(name)) { + value = ext[name]; + + if (value !== undefined) { + obj[name] = value; + } + } + } + } + + return obj; + } + + /** + * Executed the specified function for each item in a object tree. + * + * @method walk + * @param {Object} o Object tree to walk though. + * @param {function} f Function to call for each item. + * @param {String} n Optional name of collection inside the objects to walk for example childNodes. + * @param {String} s Optional scope to execute the function in. + */ + function walk(o, f, n, s) { + s = s || this; + + if (o) { + if (n) { + o = o[n]; + } + + each(o, function(o, i) { + if (f.call(s, o, i, n) === false) { + return false; + } + + walk(o, f, n, s); + }); + } + } + + /** + * Creates a namespace on a specific object. + * + * @method createNS + * @param {String} n Namespace to create for example a.b.c.d. + * @param {Object} o Optional object to add namespace to, defaults to window. + * @return {Object} New namespace object the last item in path. + * @example + * // Create some namespace + * tinymce.createNS('tinymce.somepackage.subpackage'); + * + * // Add a singleton + * var tinymce.somepackage.subpackage.SomeSingleton = { + * method: function() { + * // Some method + * } + * }; + */ + function createNS(n, o) { + var i, v; + + o = o || window; + + n = n.split('.'); + for (i = 0; i < n.length; i++) { + v = n[i]; + + if (!o[v]) { + o[v] = {}; + } + + o = o[v]; + } + + return o; + } + + /** + * Resolves a string and returns the object from a specific structure. + * + * @method resolve + * @param {String} n Path to resolve for example a.b.c.d. + * @param {Object} o Optional object to search though, defaults to window. + * @return {Object} Last object in path or null if it couldn't be resolved. + * @example + * // Resolve a path into an object reference + * var obj = tinymce.resolve('a.b.c.d'); + */ + function resolve(n, o) { + var i, l; + + o = o || window; + + n = n.split('.'); + for (i = 0, l = n.length; i < l; i++) { + o = o[n[i]]; + + if (!o) { + break; + } + } + + return o; + } + + /** + * Splits a string but removes the whitespace before and after each value. + * + * @method explode + * @param {string} s String to split. + * @param {string} d Delimiter to split by. + * @example + * // Split a string into an array with a,b,c + * var arr = tinymce.explode('a, b, c'); + */ + function explode(s, d) { + if (!s || is(s, 'array')) { + return s; + } + + return map(s.split(d || ','), trim); + } + + return { + trim: trim, + isArray: isArray, + is: is, + toArray: toArray, + makeMap: makeMap, + each: each, + map: map, + grep: grep, + inArray: inArray, + extend: extend, + create: create, + walk: walk, + createNS: createNS, + resolve: resolve, + explode: explode + }; +}); + +// Included from: js/tinymce/classes/dom/Range.js + +/** + * Range.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +define("tinymce/dom/Range", [ + "tinymce/util/Tools" +], function(Tools) { + // Range constructor + function Range(dom) { + var self = this, + doc = dom.doc, + EXTRACT = 0, + CLONE = 1, + DELETE = 2, + TRUE = true, + FALSE = false, + START_OFFSET = 'startOffset', + START_CONTAINER = 'startContainer', + END_CONTAINER = 'endContainer', + END_OFFSET = 'endOffset', + extend = Tools.extend, + nodeIndex = dom.nodeIndex; + + function createDocumentFragment() { + return doc.createDocumentFragment(); + } + + function setStart(n, o) { + _setEndPoint(TRUE, n, o); + } + + function setEnd(n, o) { + _setEndPoint(FALSE, n, o); + } + + function setStartBefore(n) { + setStart(n.parentNode, nodeIndex(n)); + } + + function setStartAfter(n) { + setStart(n.parentNode, nodeIndex(n) + 1); + } + + function setEndBefore(n) { + setEnd(n.parentNode, nodeIndex(n)); + } + + function setEndAfter(n) { + setEnd(n.parentNode, nodeIndex(n) + 1); + } + + function collapse(ts) { + if (ts) { + self[END_CONTAINER] = self[START_CONTAINER]; + self[END_OFFSET] = self[START_OFFSET]; + } else { + self[START_CONTAINER] = self[END_CONTAINER]; + self[START_OFFSET] = self[END_OFFSET]; + } + + self.collapsed = TRUE; + } + + function selectNode(n) { + setStartBefore(n); + setEndAfter(n); + } + + function selectNodeContents(n) { + setStart(n, 0); + setEnd(n, n.nodeType === 1 ? n.childNodes.length : n.nodeValue.length); + } + + function compareBoundaryPoints(h, r) { + var sc = self[START_CONTAINER], so = self[START_OFFSET], ec = self[END_CONTAINER], eo = self[END_OFFSET], + rsc = r.startContainer, rso = r.startOffset, rec = r.endContainer, reo = r.endOffset; + + // Check START_TO_START + if (h === 0) { + return _compareBoundaryPoints(sc, so, rsc, rso); + } + + // Check START_TO_END + if (h === 1) { + return _compareBoundaryPoints(ec, eo, rsc, rso); + } + + // Check END_TO_END + if (h === 2) { + return _compareBoundaryPoints(ec, eo, rec, reo); + } + + // Check END_TO_START + if (h === 3) { + return _compareBoundaryPoints(sc, so, rec, reo); + } + } + + function deleteContents() { + _traverse(DELETE); + } + + function extractContents() { + return _traverse(EXTRACT); + } + + function cloneContents() { + return _traverse(CLONE); + } + + function insertNode(n) { + var startContainer = this[START_CONTAINER], + startOffset = this[START_OFFSET], nn, o; + + // Node is TEXT_NODE or CDATA + if ((startContainer.nodeType === 3 || startContainer.nodeType === 4) && startContainer.nodeValue) { + if (!startOffset) { + // At the start of text + startContainer.parentNode.insertBefore(n, startContainer); + } else if (startOffset >= startContainer.nodeValue.length) { + // At the end of text + dom.insertAfter(n, startContainer); + } else { + // Middle, need to split + nn = startContainer.splitText(startOffset); + startContainer.parentNode.insertBefore(n, nn); + } + } else { + // Insert element node + if (startContainer.childNodes.length > 0) { + o = startContainer.childNodes[startOffset]; + } + + if (o) { + startContainer.insertBefore(n, o); + } else { + if (startContainer.nodeType == 3) { + dom.insertAfter(n, startContainer); + } else { + startContainer.appendChild(n); + } + } + } + } + + function surroundContents(n) { + var f = self.extractContents(); + + self.insertNode(n); + n.appendChild(f); + self.selectNode(n); + } + + function cloneRange() { + return extend(new Range(dom), { + startContainer: self[START_CONTAINER], + startOffset: self[START_OFFSET], + endContainer: self[END_CONTAINER], + endOffset: self[END_OFFSET], + collapsed: self.collapsed, + commonAncestorContainer: self.commonAncestorContainer + }); + } + + // Private methods + + function _getSelectedNode(container, offset) { + var child; + + if (container.nodeType == 3 /* TEXT_NODE */) { + return container; + } + + if (offset < 0) { + return container; + } + + child = container.firstChild; + while (child && offset > 0) { + --offset; + child = child.nextSibling; + } + + if (child) { + return child; + } + + return container; + } + + function _isCollapsed() { + return (self[START_CONTAINER] == self[END_CONTAINER] && self[START_OFFSET] == self[END_OFFSET]); + } + + function _compareBoundaryPoints(containerA, offsetA, containerB, offsetB) { + var c, offsetC, n, cmnRoot, childA, childB; + + // In the first case the boundary-points have the same container. A is before B + // if its offset is less than the offset of B, A is equal to B if its offset is + // equal to the offset of B, and A is after B if its offset is greater than the + // offset of B. + if (containerA == containerB) { + if (offsetA == offsetB) { + return 0; // equal + } + + if (offsetA < offsetB) { + return -1; // before + } + + return 1; // after + } + + // In the second case a child node C of the container of A is an ancestor + // container of B. In this case, A is before B if the offset of A is less than or + // equal to the index of the child node C and A is after B otherwise. + c = containerB; + while (c && c.parentNode != containerA) { + c = c.parentNode; + } + + if (c) { + offsetC = 0; + n = containerA.firstChild; + + while (n != c && offsetC < offsetA) { + offsetC++; + n = n.nextSibling; + } + + if (offsetA <= offsetC) { + return -1; // before + } + + return 1; // after + } + + // In the third case a child node C of the container of B is an ancestor container + // of A. In this case, A is before B if the index of the child node C is less than + // the offset of B and A is after B otherwise. + c = containerA; + while (c && c.parentNode != containerB) { + c = c.parentNode; + } + + if (c) { + offsetC = 0; + n = containerB.firstChild; + + while (n != c && offsetC < offsetB) { + offsetC++; + n = n.nextSibling; + } + + if (offsetC < offsetB) { + return -1; // before + } + + return 1; // after + } + + // In the fourth case, none of three other cases hold: the containers of A and B + // are siblings or descendants of sibling nodes. In this case, A is before B if + // the container of A is before the container of B in a pre-order traversal of the + // Ranges' context tree and A is after B otherwise. + cmnRoot = dom.findCommonAncestor(containerA, containerB); + childA = containerA; + + while (childA && childA.parentNode != cmnRoot) { + childA = childA.parentNode; + } + + if (!childA) { + childA = cmnRoot; + } + + childB = containerB; + while (childB && childB.parentNode != cmnRoot) { + childB = childB.parentNode; + } + + if (!childB) { + childB = cmnRoot; + } + + if (childA == childB) { + return 0; // equal + } + + n = cmnRoot.firstChild; + while (n) { + if (n == childA) { + return -1; // before + } + + if (n == childB) { + return 1; // after + } + + n = n.nextSibling; + } + } + + function _setEndPoint(st, n, o) { + var ec, sc; + + if (st) { + self[START_CONTAINER] = n; + self[START_OFFSET] = o; + } else { + self[END_CONTAINER] = n; + self[END_OFFSET] = o; + } + + // If one boundary-point of a Range is set to have a root container + // other than the current one for the Range, the Range is collapsed to + // the new position. This enforces the restriction that both boundary- + // points of a Range must have the same root container. + ec = self[END_CONTAINER]; + while (ec.parentNode) { + ec = ec.parentNode; + } + + sc = self[START_CONTAINER]; + while (sc.parentNode) { + sc = sc.parentNode; + } + + if (sc == ec) { + // The start position of a Range is guaranteed to never be after the + // end position. To enforce this restriction, if the start is set to + // be at a position after the end, the Range is collapsed to that + // position. + if (_compareBoundaryPoints(self[START_CONTAINER], self[START_OFFSET], self[END_CONTAINER], self[END_OFFSET]) > 0) { + self.collapse(st); + } + } else { + self.collapse(st); + } + + self.collapsed = _isCollapsed(); + self.commonAncestorContainer = dom.findCommonAncestor(self[START_CONTAINER], self[END_CONTAINER]); + } + + function _traverse(how) { + var c, endContainerDepth = 0, startContainerDepth = 0, p, depthDiff, startNode, endNode, sp, ep; + + if (self[START_CONTAINER] == self[END_CONTAINER]) { + return _traverseSameContainer(how); + } + + for (c = self[END_CONTAINER], p = c.parentNode; p; c = p, p = p.parentNode) { + if (p == self[START_CONTAINER]) { + return _traverseCommonStartContainer(c, how); + } + + ++endContainerDepth; + } + + for (c = self[START_CONTAINER], p = c.parentNode; p; c = p, p = p.parentNode) { + if (p == self[END_CONTAINER]) { + return _traverseCommonEndContainer(c, how); + } + + ++startContainerDepth; + } + + depthDiff = startContainerDepth - endContainerDepth; + + startNode = self[START_CONTAINER]; + while (depthDiff > 0) { + startNode = startNode.parentNode; + depthDiff--; + } + + endNode = self[END_CONTAINER]; + while (depthDiff < 0) { + endNode = endNode.parentNode; + depthDiff++; + } + + // ascend the ancestor hierarchy until we have a common parent. + for (sp = startNode.parentNode, ep = endNode.parentNode; sp != ep; sp = sp.parentNode, ep = ep.parentNode) { + startNode = sp; + endNode = ep; + } + + return _traverseCommonAncestors(startNode, endNode, how); + } + + function _traverseSameContainer(how) { + var frag, s, sub, n, cnt, sibling, xferNode, start, len; + + if (how != DELETE) { + frag = createDocumentFragment(); + } + + // If selection is empty, just return the fragment + if (self[START_OFFSET] == self[END_OFFSET]) { + return frag; + } + + // Text node needs special case handling + if (self[START_CONTAINER].nodeType == 3 /* TEXT_NODE */) { + // get the substring + s = self[START_CONTAINER].nodeValue; + sub = s.substring(self[START_OFFSET], self[END_OFFSET]); + + // set the original text node to its new value + if (how != CLONE) { + n = self[START_CONTAINER]; + start = self[START_OFFSET]; + len = self[END_OFFSET] - self[START_OFFSET]; + + if (start === 0 && len >= n.nodeValue.length - 1) { + n.parentNode.removeChild(n); + } else { + n.deleteData(start, len); + } + + // Nothing is partially selected, so collapse to start point + self.collapse(TRUE); + } + + if (how == DELETE) { + return; + } + + if (sub.length > 0) { + frag.appendChild(doc.createTextNode(sub)); + } + + return frag; + } + + // Copy nodes between the start/end offsets. + n = _getSelectedNode(self[START_CONTAINER], self[START_OFFSET]); + cnt = self[END_OFFSET] - self[START_OFFSET]; + + while (n && cnt > 0) { + sibling = n.nextSibling; + xferNode = _traverseFullySelected(n, how); + + if (frag) { + frag.appendChild(xferNode); + } + + --cnt; + n = sibling; + } + + // Nothing is partially selected, so collapse to start point + if (how != CLONE) { + self.collapse(TRUE); + } + + return frag; + } + + function _traverseCommonStartContainer(endAncestor, how) { + var frag, n, endIdx, cnt, sibling, xferNode; + + if (how != DELETE) { + frag = createDocumentFragment(); + } + + n = _traverseRightBoundary(endAncestor, how); + + if (frag) { + frag.appendChild(n); + } + + endIdx = nodeIndex(endAncestor); + cnt = endIdx - self[START_OFFSET]; + + if (cnt <= 0) { + // Collapse to just before the endAncestor, which + // is partially selected. + if (how != CLONE) { + self.setEndBefore(endAncestor); + self.collapse(FALSE); + } + + return frag; + } + + n = endAncestor.previousSibling; + while (cnt > 0) { + sibling = n.previousSibling; + xferNode = _traverseFullySelected(n, how); + + if (frag) { + frag.insertBefore(xferNode, frag.firstChild); + } + + --cnt; + n = sibling; + } + + // Collapse to just before the endAncestor, which + // is partially selected. + if (how != CLONE) { + self.setEndBefore(endAncestor); + self.collapse(FALSE); + } + + return frag; + } + + function _traverseCommonEndContainer(startAncestor, how) { + var frag, startIdx, n, cnt, sibling, xferNode; + + if (how != DELETE) { + frag = createDocumentFragment(); + } + + n = _traverseLeftBoundary(startAncestor, how); + if (frag) { + frag.appendChild(n); + } + + startIdx = nodeIndex(startAncestor); + ++startIdx; // Because we already traversed it + + cnt = self[END_OFFSET] - startIdx; + n = startAncestor.nextSibling; + while (n && cnt > 0) { + sibling = n.nextSibling; + xferNode = _traverseFullySelected(n, how); + + if (frag) { + frag.appendChild(xferNode); + } + + --cnt; + n = sibling; + } + + if (how != CLONE) { + self.setStartAfter(startAncestor); + self.collapse(TRUE); + } + + return frag; + } + + function _traverseCommonAncestors(startAncestor, endAncestor, how) { + var n, frag, startOffset, endOffset, cnt, sibling, nextSibling; + + if (how != DELETE) { + frag = createDocumentFragment(); + } + + n = _traverseLeftBoundary(startAncestor, how); + if (frag) { + frag.appendChild(n); + } + + startOffset = nodeIndex(startAncestor); + endOffset = nodeIndex(endAncestor); + ++startOffset; + + cnt = endOffset - startOffset; + sibling = startAncestor.nextSibling; + + while (cnt > 0) { + nextSibling = sibling.nextSibling; + n = _traverseFullySelected(sibling, how); + + if (frag) { + frag.appendChild(n); + } + + sibling = nextSibling; + --cnt; + } + + n = _traverseRightBoundary(endAncestor, how); + + if (frag) { + frag.appendChild(n); + } + + if (how != CLONE) { + self.setStartAfter(startAncestor); + self.collapse(TRUE); + } + + return frag; + } + + function _traverseRightBoundary(root, how) { + var next = _getSelectedNode(self[END_CONTAINER], self[END_OFFSET] - 1), parent, clonedParent; + var prevSibling, clonedChild, clonedGrandParent, isFullySelected = next != self[END_CONTAINER]; + + if (next == root) { + return _traverseNode(next, isFullySelected, FALSE, how); + } + + parent = next.parentNode; + clonedParent = _traverseNode(parent, FALSE, FALSE, how); + + while (parent) { + while (next) { + prevSibling = next.previousSibling; + clonedChild = _traverseNode(next, isFullySelected, FALSE, how); + + if (how != DELETE) { + clonedParent.insertBefore(clonedChild, clonedParent.firstChild); + } + + isFullySelected = TRUE; + next = prevSibling; + } + + if (parent == root) { + return clonedParent; + } + + next = parent.previousSibling; + parent = parent.parentNode; + + clonedGrandParent = _traverseNode(parent, FALSE, FALSE, how); + + if (how != DELETE) { + clonedGrandParent.appendChild(clonedParent); + } + + clonedParent = clonedGrandParent; + } + } + + function _traverseLeftBoundary(root, how) { + var next = _getSelectedNode(self[START_CONTAINER], self[START_OFFSET]), isFullySelected = next != self[START_CONTAINER]; + var parent, clonedParent, nextSibling, clonedChild, clonedGrandParent; + + if (next == root) { + return _traverseNode(next, isFullySelected, TRUE, how); + } + + parent = next.parentNode; + clonedParent = _traverseNode(parent, FALSE, TRUE, how); + + while (parent) { + while (next) { + nextSibling = next.nextSibling; + clonedChild = _traverseNode(next, isFullySelected, TRUE, how); + + if (how != DELETE) { + clonedParent.appendChild(clonedChild); + } + + isFullySelected = TRUE; + next = nextSibling; + } + + if (parent == root) { + return clonedParent; + } + + next = parent.nextSibling; + parent = parent.parentNode; + + clonedGrandParent = _traverseNode(parent, FALSE, TRUE, how); + + if (how != DELETE) { + clonedGrandParent.appendChild(clonedParent); + } + + clonedParent = clonedGrandParent; + } + } + + function _traverseNode(n, isFullySelected, isLeft, how) { + var txtValue, newNodeValue, oldNodeValue, offset, newNode; + + if (isFullySelected) { + return _traverseFullySelected(n, how); + } + + if (n.nodeType == 3 /* TEXT_NODE */) { + txtValue = n.nodeValue; + + if (isLeft) { + offset = self[START_OFFSET]; + newNodeValue = txtValue.substring(offset); + oldNodeValue = txtValue.substring(0, offset); + } else { + offset = self[END_OFFSET]; + newNodeValue = txtValue.substring(0, offset); + oldNodeValue = txtValue.substring(offset); + } + + if (how != CLONE) { + n.nodeValue = oldNodeValue; + } + + if (how == DELETE) { + return; + } + + newNode = dom.clone(n, FALSE); + newNode.nodeValue = newNodeValue; + + return newNode; + } + + if (how == DELETE) { + return; + } + + return dom.clone(n, FALSE); + } + + function _traverseFullySelected(n, how) { + if (how != DELETE) { + return how == CLONE ? dom.clone(n, TRUE) : n; + } + + n.parentNode.removeChild(n); + } + + function toStringIE() { + return dom.create('body', null, cloneContents()).outerText; + } + + extend(self, { + // Inital states + startContainer: doc, + startOffset: 0, + endContainer: doc, + endOffset: 0, + collapsed: TRUE, + commonAncestorContainer: doc, + + // Range constants + START_TO_START: 0, + START_TO_END: 1, + END_TO_END: 2, + END_TO_START: 3, + + // Public methods + setStart: setStart, + setEnd: setEnd, + setStartBefore: setStartBefore, + setStartAfter: setStartAfter, + setEndBefore: setEndBefore, + setEndAfter: setEndAfter, + collapse: collapse, + selectNode: selectNode, + selectNodeContents: selectNodeContents, + compareBoundaryPoints: compareBoundaryPoints, + deleteContents: deleteContents, + extractContents: extractContents, + cloneContents: cloneContents, + insertNode: insertNode, + surroundContents: surroundContents, + cloneRange: cloneRange, + toStringIE: toStringIE + }); + + return self; + } + + // Older IE versions doesn't let you override toString by it's constructor so we have to stick it in the prototype + Range.prototype.toString = function() { + return this.toStringIE(); + }; + + return Range; +}); + +// Included from: js/tinymce/classes/html/Entities.js + +/** + * Entities.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*jshint bitwise:false */ +/*eslint no-bitwise:0 */ + +/** + * Entity encoder class. + * + * @class tinymce.html.Entities + * @static + * @version 3.4 + */ +define("tinymce/html/Entities", [ + "tinymce/util/Tools" +], function(Tools) { + var makeMap = Tools.makeMap; + + var namedEntities, baseEntities, reverseEntities, + attrsCharsRegExp = /[&<>\"\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, + textCharsRegExp = /[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, + rawCharsRegExp = /[<>&\"\']/g, + entityRegExp = /&(#x|#)?([\w]+);/g, + asciiMap = { + 128: "\u20AC", 130: "\u201A", 131: "\u0192", 132: "\u201E", 133: "\u2026", 134: "\u2020", + 135: "\u2021", 136: "\u02C6", 137: "\u2030", 138: "\u0160", 139: "\u2039", 140: "\u0152", + 142: "\u017D", 145: "\u2018", 146: "\u2019", 147: "\u201C", 148: "\u201D", 149: "\u2022", + 150: "\u2013", 151: "\u2014", 152: "\u02DC", 153: "\u2122", 154: "\u0161", 155: "\u203A", + 156: "\u0153", 158: "\u017E", 159: "\u0178" + }; + + // Raw entities + baseEntities = { + '\"': '"', // Needs to be escaped since the YUI compressor would otherwise break the code + "'": ''', + '<': '<', + '>': '>', + '&': '&' + }; + + // Reverse lookup table for raw entities + reverseEntities = { + '<': '<', + '>': '>', + '&': '&', + '"': '"', + ''': "'" + }; + + // Decodes text by using the browser + function nativeDecode(text) { + var elm; + + elm = document.createElement("div"); + elm.innerHTML = text; + + return elm.textContent || elm.innerText || text; + } + + // Build a two way lookup table for the entities + function buildEntitiesLookup(items, radix) { + var i, chr, entity, lookup = {}; + + if (items) { + items = items.split(','); + radix = radix || 10; + + // Build entities lookup table + for (i = 0; i < items.length; i += 2) { + chr = String.fromCharCode(parseInt(items[i], radix)); + + // Only add non base entities + if (!baseEntities[chr]) { + entity = '&' + items[i + 1] + ';'; + lookup[chr] = entity; + lookup[entity] = chr; + } + } + + return lookup; + } + } + + // Unpack entities lookup where the numbers are in radix 32 to reduce the size + namedEntities = buildEntitiesLookup( + '50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,' + + '5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,' + + '5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,' + + '5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,' + + '68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,' + + '6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,' + + '6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,' + + '75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,' + + '7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,' + + '7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,' + + 'sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,' + + 'st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,' + + 't9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,' + + 'tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,' + + 'u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,' + + '81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,' + + '8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,' + + '8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,' + + '8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,' + + '8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,' + + 'nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,' + + 'rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,' + + 'Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,' + + '80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,' + + '811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro', 32); + + var Entities = { + /** + * Encodes the specified string using raw entities. This means only the required XML base entities will be endoded. + * + * @method encodeRaw + * @param {String} text Text to encode. + * @param {Boolean} attr Optional flag to specify if the text is attribute contents. + * @return {String} Entity encoded text. + */ + encodeRaw: function(text, attr) { + return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function(chr) { + return baseEntities[chr] || chr; + }); + }, + + /** + * Encoded the specified text with both the attributes and text entities. This function will produce larger text contents + * since it doesn't know if the context is within a attribute or text node. This was added for compatibility + * and is exposed as the DOMUtils.encode function. + * + * @method encodeAllRaw + * @param {String} text Text to encode. + * @return {String} Entity encoded text. + */ + encodeAllRaw: function(text) { + return ('' + text).replace(rawCharsRegExp, function(chr) { + return baseEntities[chr] || chr; + }); + }, + + /** + * Encodes the specified string using numeric entities. The core entities will be + * encoded as named ones but all non lower ascii characters will be encoded into numeric entities. + * + * @method encodeNumeric + * @param {String} text Text to encode. + * @param {Boolean} attr Optional flag to specify if the text is attribute contents. + * @return {String} Entity encoded text. + */ + encodeNumeric: function(text, attr) { + return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function(chr) { + // Multi byte sequence convert it to a single entity + if (chr.length > 1) { + return '&#' + (((chr.charCodeAt(0) - 0xD800) * 0x400) + (chr.charCodeAt(1) - 0xDC00) + 0x10000) + ';'; + } + + return baseEntities[chr] || '&#' + chr.charCodeAt(0) + ';'; + }); + }, + + /** + * Encodes the specified string using named entities. The core entities will be encoded + * as named ones but all non lower ascii characters will be encoded into named entities. + * + * @method encodeNamed + * @param {String} text Text to encode. + * @param {Boolean} attr Optional flag to specify if the text is attribute contents. + * @param {Object} entities Optional parameter with entities to use. + * @return {String} Entity encoded text. + */ + encodeNamed: function(text, attr, entities) { + entities = entities || namedEntities; + + return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function(chr) { + return baseEntities[chr] || entities[chr] || chr; + }); + }, + + /** + * Returns an encode function based on the name(s) and it's optional entities. + * + * @method getEncodeFunc + * @param {String} name Comma separated list of encoders for example named,numeric. + * @param {String} entities Optional parameter with entities to use instead of the built in set. + * @return {function} Encode function to be used. + */ + getEncodeFunc: function(name, entities) { + entities = buildEntitiesLookup(entities) || namedEntities; + + function encodeNamedAndNumeric(text, attr) { + return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function(chr) { + return baseEntities[chr] || entities[chr] || '&#' + chr.charCodeAt(0) + ';' || chr; + }); + } + + function encodeCustomNamed(text, attr) { + return Entities.encodeNamed(text, attr, entities); + } + + // Replace + with , to be compatible with previous TinyMCE versions + name = makeMap(name.replace(/\+/g, ',')); + + // Named and numeric encoder + if (name.named && name.numeric) { + return encodeNamedAndNumeric; + } + + // Named encoder + if (name.named) { + // Custom names + if (entities) { + return encodeCustomNamed; + } + + return Entities.encodeNamed; + } + + // Numeric + if (name.numeric) { + return Entities.encodeNumeric; + } + + // Raw encoder + return Entities.encodeRaw; + }, + + /** + * Decodes the specified string, this will replace entities with raw UTF characters. + * + * @method decode + * @param {String} text Text to entity decode. + * @return {String} Entity decoded string. + */ + decode: function(text) { + return text.replace(entityRegExp, function(all, numeric, value) { + if (numeric) { + value = parseInt(value, numeric.length === 2 ? 16 : 10); + + // Support upper UTF + if (value > 0xFFFF) { + value -= 0x10000; + + return String.fromCharCode(0xD800 + (value >> 10), 0xDC00 + (value & 0x3FF)); + } else { + return asciiMap[value] || String.fromCharCode(value); + } + } + + return reverseEntities[all] || namedEntities[all] || nativeDecode(all); + }); + } + }; + + return Entities; +}); + +// Included from: js/tinymce/classes/Env.js + +/** + * Env.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class contains various environment constants like browser versions etc. + * Normally you don't want to sniff specific browser versions but sometimes you have + * to when it's impossible to feature detect. So use this with care. + * + * @class tinymce.Env + * @static + */ +define("tinymce/Env", [], function() { + var nav = navigator, userAgent = nav.userAgent; + var opera, webkit, ie, ie11, gecko, mac, iDevice; + + opera = window.opera && window.opera.buildNumber; + webkit = /WebKit/.test(userAgent); + ie = !webkit && !opera && (/MSIE/gi).test(userAgent) && (/Explorer/gi).test(nav.appName); + ie = ie && /MSIE (\w+)\./.exec(userAgent)[1]; + ie11 = userAgent.indexOf('Trident/') != -1 && (userAgent.indexOf('rv:') != -1 || nav.appName.indexOf('Netscape') != -1) ? 11 : false; + ie = ie || ie11; + gecko = !webkit && !ie11 && /Gecko/.test(userAgent); + mac = userAgent.indexOf('Mac') != -1; + iDevice = /(iPad|iPhone)/.test(userAgent); + + // Is a iPad/iPhone and not on iOS5 sniff the WebKit version since older iOS WebKit versions + // says it has contentEditable support but there is no visible caret. + var contentEditable = !iDevice || userAgent.match(/AppleWebKit\/(\d*)/)[1] >= 534; + + return { + /** + * Constant that is true if the browser is Opera. + * + * @property opera + * @type Boolean + * @final + */ + opera: opera, + + /** + * Constant that is true if the browser is WebKit (Safari/Chrome). + * + * @property webKit + * @type Boolean + * @final + */ + webkit: webkit, + + /** + * Constant that is more than zero if the browser is IE. + * + * @property ie + * @type Boolean + * @final + */ + ie: ie, + + /** + * Constant that is true if the browser is Gecko. + * + * @property gecko + * @type Boolean + * @final + */ + gecko: gecko, + + /** + * Constant that is true if the os is Mac OS. + * + * @property mac + * @type Boolean + * @final + */ + mac: mac, + + /** + * Constant that is true if the os is iOS. + * + * @property iOS + * @type Boolean + * @final + */ + iOS: iDevice, + + /** + * Constant that is true if the browser supports editing. + * + * @property contentEditable + * @type Boolean + * @final + */ + contentEditable: contentEditable, + + /** + * Transparent image data url. + * + * @property transparentSrc + * @type Boolean + * @final + */ + transparentSrc: "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", + + /** + * Returns true/false if the browser can or can't place the caret after a inline block like an image. + * + * @property noCaretAfter + * @type Boolean + * @final + */ + caretAfter: ie != 8, + + /** + * Constant that is true if the browser supports native DOM Ranges. IE 9+. + * + * @property range + * @type Boolean + */ + range: window.getSelection && "Range" in window, + + /** + * Returns the IE document mode for non IE browsers this will fake IE 10. + * + * @property documentMode + * @type Number + */ + documentMode: ie ? (document.documentMode || 7) : 10 + }; +}); + +// Included from: js/tinymce/classes/dom/StyleSheetLoader.js + +/** + * StyleSheetLoader.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles loading of external stylesheets and fires events when these are loaded. + * + * @class tinymce.dom.StyleSheetLoader + * @private + */ +define("tinymce/dom/StyleSheetLoader", [], function() { + "use strict"; + + return function(document, settings) { + var idCount = 0, loadedStates = {}, maxLoadTime; + + settings = settings || {}; + maxLoadTime = settings.maxLoadTime || 5000; + + function appendToHead(node) { + document.getElementsByTagName('head')[0].appendChild(node); + } + + /** + * Loads the specified css style sheet file and call the loadedCallback once it's finished loading. + * + * @method load + * @param {String} url Url to be loaded. + * @param {Function} loadedCallback Callback to be executed when loaded. + * @param {Function} errorCallback Callback to be executed when failed loading. + */ + function load(url, loadedCallback, errorCallback) { + var link, style, startTime, state; + + function passed() { + var callbacks = state.passed, i = callbacks.length; + + while (i--) { + callbacks[i](); + } + + state.status = 2; + state.passed = []; + state.failed = []; + } + + function failed() { + var callbacks = state.failed, i = callbacks.length; + + while (i--) { + callbacks[i](); + } + + state.status = 3; + state.passed = []; + state.failed = []; + } + + // Sniffs for older WebKit versions that have the link.onload but a broken one + function isOldWebKit() { + var webKitChunks = navigator.userAgent.match(/WebKit\/(\d*)/); + return !!(webKitChunks && webKitChunks[1] < 536); + } + + // Calls the waitCallback until the test returns true or the timeout occurs + function wait(testCallback, waitCallback) { + if (!testCallback()) { + // Wait for timeout + if ((new Date().getTime()) - startTime < maxLoadTime) { + window.setTimeout(waitCallback, 0); + } else { + failed(); + } + } + } + + // Workaround for WebKit that doesn't properly support the onload event for link elements + // Or WebKit that fires the onload event before the StyleSheet is added to the document + function waitForWebKitLinkLoaded() { + wait(function() { + var styleSheets = document.styleSheets, styleSheet, i = styleSheets.length, owner; + + while (i--) { + styleSheet = styleSheets[i]; + owner = styleSheet.ownerNode ? styleSheet.ownerNode : styleSheet.owningElement; + if (owner && owner.id === link.id) { + passed(); + return true; + } + } + }, waitForWebKitLinkLoaded); + } + + // Workaround for older Geckos that doesn't have any onload event for StyleSheets + function waitForGeckoLinkLoaded() { + wait(function() { + try { + // Accessing the cssRules will throw an exception until the CSS file is loaded + var cssRules = style.sheet.cssRules; + passed(); + return !!cssRules; + } catch (ex) { + // Ignore + } + }, waitForGeckoLinkLoaded); + } + + if (!loadedStates[url]) { + state = { + passed: [], + failed: [] + }; + + loadedStates[url] = state; + } else { + state = loadedStates[url]; + } + + if (loadedCallback) { + state.passed.push(loadedCallback); + } + + if (errorCallback) { + state.failed.push(errorCallback); + } + + // Is loading wait for it to pass + if (state.status == 1) { + return; + } + + // Has finished loading and was success + if (state.status == 2) { + passed(); + return; + } + + // Has finished loading and was a failure + if (state.status == 3) { + failed(); + return; + } + + // Start loading + state.status = 1; + link = document.createElement('link'); + link.rel = 'stylesheet'; + link.type = 'text/css'; + link.id = 'u' + (idCount++); + link.async = false; + link.defer = false; + startTime = new Date().getTime(); + + // Feature detect onload on link element and sniff older webkits since it has an broken onload event + if ("onload" in link && !isOldWebKit()) { + link.onload = waitForWebKitLinkLoaded; + link.onerror = failed; + } else { + // Sniff for old Firefox that doesn't support the onload event on link elements + // TODO: Remove this in the future when everyone uses modern browsers + if (navigator.userAgent.indexOf("Firefox") > 0) { + style = document.createElement('style'); + style.textContent = '@import "' + url + '"'; + waitForGeckoLinkLoaded(); + appendToHead(style); + return; + } else { + // Use the id owner on older webkits + waitForWebKitLinkLoaded(); + } + } + + appendToHead(link); + link.href = url; + } + + this.load = load; + }; +}); + +// Included from: js/tinymce/classes/dom/DOMUtils.js + +/** + * DOMUtils.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Utility class for various DOM manipulation and retrieval functions. + * + * @class tinymce.dom.DOMUtils + * @example + * // Add a class to an element by id in the page + * tinymce.DOM.addClass('someid', 'someclass'); + * + * // Add a class to an element by id inside the editor + * tinymce.activeEditor.dom.addClass('someid', 'someclass'); + */ +define("tinymce/dom/DOMUtils", [ + "tinymce/dom/Sizzle", + "tinymce/html/Styles", + "tinymce/dom/EventUtils", + "tinymce/dom/TreeWalker", + "tinymce/dom/Range", + "tinymce/html/Entities", + "tinymce/Env", + "tinymce/util/Tools", + "tinymce/dom/StyleSheetLoader" +], function(Sizzle, Styles, EventUtils, TreeWalker, Range, Entities, Env, Tools, StyleSheetLoader) { + // Shorten names + var each = Tools.each, is = Tools.is, grep = Tools.grep, trim = Tools.trim, extend = Tools.extend; + var isWebKit = Env.webkit, isIE = Env.ie; + var simpleSelectorRe = /^([a-z0-9],?)+$/i; + var whiteSpaceRegExp = /^[ \t\r\n]*$/; + var numericCssMap = Tools.makeMap('fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom', ' '); + + /** + * Constructs a new DOMUtils instance. Consult the Wiki for more details on settings etc for this class. + * + * @constructor + * @method DOMUtils + * @param {Document} d Document reference to bind the utility class to. + * @param {settings} s Optional settings collection. + */ + function DOMUtils(doc, settings) { + var self = this, blockElementsMap; + + self.doc = doc; + self.win = window; + self.files = {}; + self.counter = 0; + self.stdMode = !isIE || doc.documentMode >= 8; + self.boxModel = !isIE || doc.compatMode == "CSS1Compat" || self.stdMode; + self.hasOuterHTML = "outerHTML" in doc.createElement("a"); + self.styleSheetLoader = new StyleSheetLoader(doc); + this.boundEvents = []; + + self.settings = settings = extend({ + keep_values: false, + hex_colors: 1 + }, settings); + + self.schema = settings.schema; + self.styles = new Styles({ + url_converter: settings.url_converter, + url_converter_scope: settings.url_converter_scope + }, settings.schema); + + self.fixDoc(doc); + self.events = settings.ownEvents ? new EventUtils(settings.proxy) : EventUtils.Event; + blockElementsMap = settings.schema ? settings.schema.getBlockElements() : {}; + + /** + * Returns true/false if the specified element is a block element or not. + * + * @method isBlock + * @param {Node/String} node Element/Node to check. + * @return {Boolean} True/False state if the node is a block element or not. + */ + self.isBlock = function(node) { + // Fix for #5446 + if (!node) { + return false; + } + + // This function is called in module pattern style since it might be executed with the wrong this scope + var type = node.nodeType; + + // If it's a node then check the type and use the nodeName + if (type) { + return !!(type === 1 && blockElementsMap[node.nodeName]); + } + + return !!blockElementsMap[node]; + }; + } + + DOMUtils.prototype = { + root: null, + props: { + "for": "htmlFor", + "class": "className", + className: "className", + checked: "checked", + disabled: "disabled", + maxlength: "maxLength", + readonly: "readOnly", + selected: "selected", + value: "value", + id: "id", + name: "name", + type: "type" + }, + + fixDoc: function(doc) { + var settings = this.settings, name; + + if (isIE && settings.schema) { + // Add missing HTML 4/5 elements to IE + ('abbr article aside audio canvas ' + + 'details figcaption figure footer ' + + 'header hgroup mark menu meter nav ' + + 'output progress section summary ' + + 'time video').replace(/\w+/g, function(name) { + doc.createElement(name); + }); + + // Create all custom elements + for (name in settings.schema.getCustomElements()) { + doc.createElement(name); + } + } + }, + + clone: function(node, deep) { + var self = this, clone, doc; + + // TODO: Add feature detection here in the future + if (!isIE || node.nodeType !== 1 || deep) { + return node.cloneNode(deep); + } + + doc = self.doc; + + // Make a HTML5 safe shallow copy + if (!deep) { + clone = doc.createElement(node.nodeName); + + // Copy attribs + each(self.getAttribs(node), function(attr) { + self.setAttrib(clone, attr.nodeName, self.getAttrib(node, attr.nodeName)); + }); + + return clone; + } +/* + // Setup HTML5 patched document fragment + if (!self.frag) { + self.frag = doc.createDocumentFragment(); + self.fixDoc(self.frag); + } + + // Make a deep copy by adding it to the document fragment then removing it this removed the :section + clone = doc.createElement('div'); + self.frag.appendChild(clone); + clone.innerHTML = node.outerHTML; + self.frag.removeChild(clone); +*/ + return clone.firstChild; + }, + + /** + * Returns the root node of the document. This is normally the body but might be a DIV. Parents like getParent will not + * go above the point of this root node. + * + * @method getRoot + * @return {Element} Root element for the utility class. + */ + getRoot: function() { + var self = this; + + return self.get(self.settings.root_element) || self.doc.body; + }, + + /** + * Returns the viewport of the window. + * + * @method getViewPort + * @param {Window} win Optional window to get viewport of. + * @return {Object} Viewport object with fields x, y, w and h. + */ + getViewPort: function(win) { + var doc, rootElm; + + win = !win ? this.win : win; + doc = win.document; + rootElm = this.boxModel ? doc.documentElement : doc.body; + + // Returns viewport size excluding scrollbars + return { + x: win.pageXOffset || rootElm.scrollLeft, + y: win.pageYOffset || rootElm.scrollTop, + w: win.innerWidth || rootElm.clientWidth, + h: win.innerHeight || rootElm.clientHeight + }; + }, + + /** + * Returns the rectangle for a specific element. + * + * @method getRect + * @param {Element/String} elm Element object or element ID to get rectangle from. + * @return {object} Rectangle for specified element object with x, y, w, h fields. + */ + getRect: function(elm) { + var self = this, pos, size; + + elm = self.get(elm); + pos = self.getPos(elm); + size = self.getSize(elm); + + return { + x: pos.x, y: pos.y, + w: size.w, h: size.h + }; + }, + + /** + * Returns the size dimensions of the specified element. + * + * @method getSize + * @param {Element/String} elm Element object or element ID to get rectangle from. + * @return {object} Rectangle for specified element object with w, h fields. + */ + getSize: function(elm) { + var self = this, w, h; + + elm = self.get(elm); + w = self.getStyle(elm, 'width'); + h = self.getStyle(elm, 'height'); + + // Non pixel value, then force offset/clientWidth + if (w.indexOf('px') === -1) { + w = 0; + } + + // Non pixel value, then force offset/clientWidth + if (h.indexOf('px') === -1) { + h = 0; + } + + return { + w: parseInt(w, 10) || elm.offsetWidth || elm.clientWidth, + h: parseInt(h, 10) || elm.offsetHeight || elm.clientHeight + }; + }, + + /** + * Returns a node by the specified selector function. This function will + * loop through all parent nodes and call the specified function for each node. + * If the function then returns true indicating that it has found what it was looking for, the loop execution will then end + * and the node it found will be returned. + * + * @method getParent + * @param {Node/String} node DOM node to search parents on or ID string. + * @param {function} selector Selection function or CSS selector to execute on each node. + * @param {Node} root Optional root element, never go below this point. + * @return {Node} DOM Node or null if it wasn't found. + */ + getParent: function(node, selector, root) { + return this.getParents(node, selector, root, false); + }, + + /** + * Returns a node list of all parents matching the specified selector function or pattern. + * If the function then returns true indicating that it has found what it was looking for and that node will be collected. + * + * @method getParents + * @param {Node/String} node DOM node to search parents on or ID string. + * @param {function} selector Selection function to execute on each node or CSS pattern. + * @param {Node} root Optional root element, never go below this point. + * @return {Array} Array of nodes or null if it wasn't found. + */ + getParents: function(node, selector, root, collect) { + var self = this, selectorVal, result = []; + + node = self.get(node); + collect = collect === undefined; + + // Default root on inline mode + root = root || (self.getRoot().nodeName != 'BODY' ? self.getRoot().parentNode : null); + + // Wrap node name as func + if (is(selector, 'string')) { + selectorVal = selector; + + if (selector === '*') { + selector = function(node) {return node.nodeType == 1;}; + } else { + selector = function(node) { + return self.is(node, selectorVal); + }; + } + } + + while (node) { + if (node == root || !node.nodeType || node.nodeType === 9) { + break; + } + + if (!selector || selector(node)) { + if (collect) { + result.push(node); + } else { + return node; + } + } + + node = node.parentNode; + } + + return collect ? result : null; + }, + + /** + * Returns the specified element by ID or the input element if it isn't a string. + * + * @method get + * @param {String/Element} n Element id to look for or element to just pass though. + * @return {Element} Element matching the specified id or null if it wasn't found. + */ + get: function(elm) { + var name; + + if (elm && this.doc && typeof(elm) == 'string') { + name = elm; + elm = this.doc.getElementById(elm); + + // IE and Opera returns meta elements when they match the specified input ID, but getElementsByName seems to do the trick + if (elm && elm.id !== name) { + return this.doc.getElementsByName(name)[1]; + } + } + + return elm; + }, + + /** + * Returns the next node that matches selector or function + * + * @method getNext + * @param {Node} node Node to find siblings from. + * @param {String/function} selector Selector CSS expression or function. + * @return {Node} Next node item matching the selector or null if it wasn't found. + */ + getNext: function(node, selector) { + return this._findSib(node, selector, 'nextSibling'); + }, + + /** + * Returns the previous node that matches selector or function + * + * @method getPrev + * @param {Node} node Node to find siblings from. + * @param {String/function} selector Selector CSS expression or function. + * @return {Node} Previous node item matching the selector or null if it wasn't found. + */ + getPrev: function(node, selector) { + return this._findSib(node, selector, 'previousSibling'); + }, + + // #ifndef jquery + + /** + * Selects specific elements by a CSS level 3 pattern. For example "div#a1 p.test". + * This function is optimized for the most common patterns needed in TinyMCE but it also performs well enough + * on more complex patterns. + * + * @method select + * @param {String} selector CSS level 3 pattern to select/find elements by. + * @param {Object} scope Optional root element/scope element to search in. + * @return {Array} Array with all matched elements. + * @example + * // Adds a class to all paragraphs in the currently active editor + * tinymce.activeEditor.dom.addClass(tinymce.activeEditor.dom.select('p'), 'someclass'); + * + * // Adds a class to all spans that have the test class in the currently active editor + * tinymce.activeEditor.dom.addClass(tinymce.activeEditor.dom.select('span.test'), 'someclass') + */ + select: function(selector, scope) { + var self = this; + + //Sizzle.selectors.cacheLength = 0; + return Sizzle(selector, self.get(scope) || self.get(self.settings.root_element) || self.doc, []); + }, + + /** + * Returns true/false if the specified element matches the specified css pattern. + * + * @method is + * @param {Node/NodeList} elm DOM node to match or an array of nodes to match. + * @param {String} selector CSS pattern to match the element against. + */ + is: function(elm, selector) { + var i; + + // If it isn't an array then try to do some simple selectors instead of Sizzle for to boost performance + if (elm.length === undefined) { + // Simple all selector + if (selector === '*') { + return elm.nodeType == 1; + } + + // Simple selector just elements + if (simpleSelectorRe.test(selector)) { + selector = selector.toLowerCase().split(/,/); + elm = elm.nodeName.toLowerCase(); + + for (i = selector.length - 1; i >= 0; i--) { + if (selector[i] == elm) { + return true; + } + } + + return false; + } + } + + // Is non element + if (elm.nodeType && elm.nodeType != 1) { + return false; + } + + var elms = elm.nodeType ? [elm] : elm; + return Sizzle(selector, elms[0].ownerDocument || elms[0], null, elms).length > 0; + }, + + // #endif + + /** + * Adds the specified element to another element or elements. + * + * @method add + * @param {String/Element/Array} parentElm Element id string, DOM node element or array of ids or elements to add to. + * @param {String/Element} name Name of new element to add or existing element to add. + * @param {Object} attrs Optional object collection with arguments to add to the new element(s). + * @param {String} html Optional inner HTML contents to add for each element. + * @return {Element/Array} Element that got created, or an array of created elements if multiple input elements + * were passed in. + * @example + * // Adds a new paragraph to the end of the active editor + * tinymce.activeEditor.dom.add(tinymce.activeEditor.getBody(), 'p', {title: 'my title'}, 'Some content'); + */ + add: function(parentElm, name, attrs, html, create) { + var self = this; + + return this.run(parentElm, function(parentElm) { + var newElm; + + newElm = is(name, 'string') ? self.doc.createElement(name) : name; + self.setAttribs(newElm, attrs); + + if (html) { + if (html.nodeType) { + newElm.appendChild(html); + } else { + self.setHTML(newElm, html); + } + } + + return !create ? parentElm.appendChild(newElm) : newElm; + }); + }, + + /** + * Creates a new element. + * + * @method create + * @param {String} name Name of new element. + * @param {Object} attrs Optional object name/value collection with element attributes. + * @param {String} html Optional HTML string to set as inner HTML of the element. + * @return {Element} HTML DOM node element that got created. + * @example + * // Adds an element where the caret/selection is in the active editor + * var el = tinymce.activeEditor.dom.create('div', {id: 'test', 'class': 'myclass'}, 'some content'); + * tinymce.activeEditor.selection.setNode(el); + */ + create: function(name, attrs, html) { + return this.add(this.doc.createElement(name), name, attrs, html, 1); + }, + + /** + * Creates HTML string for element. The element will be closed unless an empty inner HTML string is passed in. + * + * @method createHTML + * @param {String} name Name of new element. + * @param {Object} attrs Optional object name/value collection with element attributes. + * @param {String} html Optional HTML string to set as inner HTML of the element. + * @return {String} String with new HTML element, for example: <a href="#">test</a>. + * @example + * // Creates a html chunk and inserts it at the current selection/caret location + * tinymce.activeEditor.selection.setContent(tinymce.activeEditor.dom.createHTML('a', {href: 'test.html'}, 'some line')); + */ + createHTML: function(name, attrs, html) { + var outHtml = '', key; + + outHtml += '<' + name; + + for (key in attrs) { + if (attrs.hasOwnProperty(key) && attrs[key] !== null) { + outHtml += ' ' + key + '="' + this.encode(attrs[key]) + '"'; + } + } + + // A call to tinymce.is doesn't work for some odd reason on IE9 possible bug inside their JS runtime + if (typeof(html) != "undefined") { + return outHtml + '>' + html + '</' + name + '>'; + } + + return outHtml + ' />'; + }, + + /** + * Creates a document fragment out of the specified HTML string. + * + * @method createFragment + * @param {String} html Html string to create fragment from. + * @return {DocumentFragment} Document fragment node. + */ + createFragment: function(html) { + var frag, node, doc = this.doc, container; + + container = doc.createElement("div"); + frag = doc.createDocumentFragment(); + + if (html) { + container.innerHTML = html; + } + + while ((node = container.firstChild)) { + frag.appendChild(node); + } + + return frag; + }, + + /** + * Removes/deletes the specified element(s) from the DOM. + * + * @method remove + * @param {String/Element/Array} node ID of element or DOM element object or array containing multiple elements/ids. + * @param {Boolean} keep_children Optional state to keep children or not. If set to true all children will be + * placed at the location of the removed element. + * @return {Element/Array} HTML DOM element that got removed, or an array of removed elements if multiple input elements + * were passed in. + * @example + * // Removes all paragraphs in the active editor + * tinymce.activeEditor.dom.remove(tinymce.activeEditor.dom.select('p')); + * + * // Removes an element by id in the document + * tinymce.DOM.remove('mydiv'); + */ + remove: function(node, keep_children) { + return this.run(node, function(node) { + var child, parent = node.parentNode; + + if (!parent) { + return null; + } + + if (keep_children) { + while ((child = node.firstChild)) { + // IE 8 will crash if you don't remove completely empty text nodes + if (!isIE || child.nodeType !== 3 || child.nodeValue) { + parent.insertBefore(child, node); + } else { + node.removeChild(child); + } + } + } + + return parent.removeChild(node); + }); + }, + + /** + * Sets the CSS style value on a HTML element. The name can be a camelcase string + * or the CSS style name like background-color. + * + * @method setStyle + * @param {String/Element/Array} n HTML element/Element ID or Array of elements/ids to set CSS style value on. + * @param {String} na Name of the style value to set. + * @param {String} v Value to set on the style. + * @example + * // Sets a style value on all paragraphs in the currently active editor + * tinymce.activeEditor.dom.setStyle(tinymce.activeEditor.dom.select('p'), 'background-color', 'red'); + * + * // Sets a style value to an element by id in the current document + * tinymce.DOM.setStyle('mydiv', 'background-color', 'red'); + */ + setStyle: function(elm, name, value) { + return this.run(elm, function(elm) { + var self = this, style, key; + + if (name) { + if (typeof(name) === 'string') { + style = elm.style; + + // Camelcase it, if needed + name = name.replace(/-(\D)/g, function(a, b) { + return b.toUpperCase(); + }); + + // Default px suffix on these + if (typeof(value) === 'number' && !numericCssMap[name]) { + value += 'px'; + } + + // IE specific opacity + if (name === "opacity" && elm.runtimeStyle && typeof(elm.runtimeStyle.opacity) === "undefined") { + style.filter = value === '' ? '' : "alpha(opacity=" + (value * 100) + ")"; + } + + if (name == "float") { + // Old IE vs modern browsers + name = "cssFloat" in elm.style ? "cssFloat" : "styleFloat"; + } + + try { + style[name] = value; + } catch (ex) { + // Ignore IE errors + } + + // Force update of the style data + if (self.settings.update_styles) { + elm.removeAttribute('data-mce-style'); + } + } else { + for (key in name) { + self.setStyle(elm, key, name[key]); + } + } + } + }); + }, + + /** + * Returns the current style or runtime/computed value of an element. + * + * @method getStyle + * @param {String/Element} elm HTML element or element id string to get style from. + * @param {String} name Style name to return. + * @param {Boolean} computed Computed style. + * @return {String} Current style or computed style value of an element. + */ + getStyle: function(elm, name, computed) { + elm = this.get(elm); + + if (!elm) { + return; + } + + // W3C + if (this.doc.defaultView && computed) { + // Remove camelcase + name = name.replace(/[A-Z]/g, function(a){ + return '-' + a; + }); + + try { + return this.doc.defaultView.getComputedStyle(elm, null).getPropertyValue(name); + } catch (ex) { + // Old safari might fail + return null; + } + } + + // Camelcase it, if needed + name = name.replace(/-(\D)/g, function(a, b) { + return b.toUpperCase(); + }); + + if (name == 'float') { + name = isIE ? 'styleFloat' : 'cssFloat'; + } + + // IE & Opera + if (elm.currentStyle && computed) { + return elm.currentStyle[name]; + } + + return elm.style ? elm.style[name] : undefined; + }, + + /** + * Sets multiple styles on the specified element(s). + * + * @method setStyles + * @param {Element/String/Array} e DOM element, element id string or array of elements/ids to set styles on. + * @param {Object} o Name/Value collection of style items to add to the element(s). + * @example + * // Sets styles on all paragraphs in the currently active editor + * tinymce.activeEditor.dom.setStyles(tinymce.activeEditor.dom.select('p'), {'background-color': 'red', 'color': 'green'}); + * + * // Sets styles to an element by id in the current document + * tinymce.DOM.setStyles('mydiv', {'background-color': 'red', 'color': 'green'}); + */ + setStyles: function(elm, styles) { + this.setStyle(elm, styles); + }, + + css: function(elm, name, value) { + this.setStyle(elm, name, value); + }, + + /** + * Removes all attributes from an element or elements. + * + * @method removeAllAttribs + * @param {Element/String/Array} e DOM element, element id string or array of elements/ids to remove attributes from. + */ + removeAllAttribs: function(e) { + return this.run(e, function(e) { + var i, attrs = e.attributes; + for (i = attrs.length - 1; i >= 0; i--) { + e.removeAttributeNode(attrs.item(i)); + } + }); + }, + + /** + * Sets the specified attribute of an element or elements. + * + * @method setAttrib + * @param {Element/String/Array} e DOM element, element id string or array of elements/ids to set attribute on. + * @param {String} n Name of attribute to set. + * @param {String} v Value to set on the attribute - if this value is falsy like null, 0 or '' it will remove the attribute instead. + * @example + * // Sets class attribute on all paragraphs in the active editor + * tinymce.activeEditor.dom.setAttrib(tinymce.activeEditor.dom.select('p'), 'class', 'myclass'); + * + * // Sets class attribute on a specific element in the current page + * tinymce.dom.setAttrib('mydiv', 'class', 'myclass'); + */ + setAttrib: function(e, n, v) { + var self = this; + + // What's the point + if (!e || !n) { + return; + } + + return this.run(e, function(e) { + var s = self.settings; + var originalValue = e.getAttribute(n); + if (v !== null) { + switch (n) { + case "style": + if (!is(v, 'string')) { + each(v, function(v, n) { + self.setStyle(e, n, v); + }); + + return; + } + + // No mce_style for elements with these since they might get resized by the user + if (s.keep_values) { + if (v) { + e.setAttribute('data-mce-style', v, 2); + } else { + e.removeAttribute('data-mce-style', 2); + } + } + + e.style.cssText = v; + break; + + case "class": + e.className = v || ''; // Fix IE null bug + break; + + case "src": + case "href": + if (s.keep_values) { + if (s.url_converter) { + v = s.url_converter.call(s.url_converter_scope || self, v, n, e); + } + + self.setAttrib(e, 'data-mce-' + n, v, 2); + } + + break; + + case "shape": + e.setAttribute('data-mce-style', v); + break; + } + } + if (is(v) && v !== null && v.length !== 0) { + e.setAttribute(n, '' + v, 2); + } else { + e.removeAttribute(n, 2); + } + + // fire onChangeAttrib event for attributes that have changed + if (originalValue != v && s.onSetAttrib) { + s.onSetAttrib({attrElm: e, attrName: n, attrValue: v}); + } + }); + }, + + /** + * Sets two or more specified attributes of an element or elements. + * + * @method setAttribs + * @param {Element/String/Array} elm DOM element, element id string or array of elements/ids to set attributes on. + * @param {Object} attrs Name/Value collection of attribute items to add to the element(s). + * @example + * // Sets class and title attributes on all paragraphs in the active editor + * tinymce.activeEditor.dom.setAttribs(tinymce.activeEditor.dom.select('p'), {'class': 'myclass', title: 'some title'}); + * + * // Sets class and title attributes on a specific element in the current page + * tinymce.DOM.setAttribs('mydiv', {'class': 'myclass', title: 'some title'}); + */ + setAttribs: function(elm, attrs) { + var self = this; + + return this.run(elm, function(elm) { + each(attrs, function(value, name) { + self.setAttrib(elm, name, value); + }); + }); + }, + + /** + * Returns the specified attribute by name. + * + * @method getAttrib + * @param {String/Element} elm Element string id or DOM element to get attribute from. + * @param {String} name Name of attribute to get. + * @param {String} defaultVal Optional default value to return if the attribute didn't exist. + * @return {String} Attribute value string, default value or null if the attribute wasn't found. + */ + getAttrib: function(elm, name, defaultVal) { + var value, self = this, undef; + + elm = self.get(elm); + + if (!elm || elm.nodeType !== 1) { + return defaultVal === undef ? false : defaultVal; + } + + if (!is(defaultVal)) { + defaultVal = ''; + } + + // Try the mce variant for these + if (/^(src|href|style|coords|shape)$/.test(name)) { + value = elm.getAttribute("data-mce-" + name); + + if (value) { + return value; + } + } + + if (isIE && self.props[name]) { + value = elm[self.props[name]]; + value = value && value.nodeValue ? value.nodeValue : value; + } + + if (!value) { + value = elm.getAttribute(name, 2); + } + + // Check boolean attribs + if (/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(name)) { + if (elm[self.props[name]] === true && value === '') { + return name; + } + + return value ? name : ''; + } + + // Inner input elements will override attributes on form elements + if (elm.nodeName === "FORM" && elm.getAttributeNode(name)) { + return elm.getAttributeNode(name).nodeValue; + } + + if (name === 'style') { + value = value || elm.style.cssText; + + if (value) { + value = self.serializeStyle(self.parseStyle(value), elm.nodeName); + + if (self.settings.keep_values) { + elm.setAttribute('data-mce-style', value); + } + } + } + + // Remove Apple and WebKit stuff + if (isWebKit && name === "class" && value) { + value = value.replace(/(apple|webkit)\-[a-z\-]+/gi, ''); + } + + // Handle IE issues + if (isIE) { + switch (name) { + case 'rowspan': + case 'colspan': + // IE returns 1 as default value + if (value === 1) { + value = ''; + } + + break; + + case 'size': + // IE returns +0 as default value for size + if (value === '+0' || value === 20 || value === 0) { + value = ''; + } + + break; + + case 'width': + case 'height': + case 'vspace': + case 'checked': + case 'disabled': + case 'readonly': + if (value === 0) { + value = ''; + } + + break; + + case 'hspace': + // IE returns -1 as default value + if (value === -1) { + value = ''; + } + + break; + + case 'maxlength': + case 'tabindex': + // IE returns default value + if (value === 32768 || value === 2147483647 || value === '32768') { + value = ''; + } + + break; + + case 'multiple': + case 'compact': + case 'noshade': + case 'nowrap': + if (value === 65535) { + return name; + } + + return defaultVal; + + case 'shape': + value = value.toLowerCase(); + break; + + default: + // IE has odd anonymous function for event attributes + if (name.indexOf('on') === 0 && value) { + value = ('' + value).replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/, '$1'); + } + } + } + + return (value !== undef && value !== null && value !== '') ? '' + value : defaultVal; + }, + + /** + * Returns the absolute x, y position of a node. The position will be returned in an object with x, y fields. + * + * @method getPos + * @param {Element/String} elm HTML element or element id to get x, y position from. + * @param {Element} rootElm Optional root element to stop calculations at. + * @return {object} Absolute position of the specified element object with x, y fields. + */ + getPos: function(elm, rootElm) { + var self = this, x = 0, y = 0, offsetParent, doc = self.doc, pos; + + elm = self.get(elm); + rootElm = rootElm || doc.body; + + if (elm) { + // Use getBoundingClientRect if it exists since it's faster than looping offset nodes + if (rootElm === doc.body && elm.getBoundingClientRect) { + pos = elm.getBoundingClientRect(); + rootElm = self.boxModel ? doc.documentElement : doc.body; + + // Add scroll offsets from documentElement or body since IE with the wrong box model will use d.body and so do WebKit + // Also remove the body/documentelement clientTop/clientLeft on IE 6, 7 since they offset the position + x = pos.left + (doc.documentElement.scrollLeft || doc.body.scrollLeft) - rootElm.clientLeft; + y = pos.top + (doc.documentElement.scrollTop || doc.body.scrollTop) - rootElm.clientTop; + + return {x: x, y: y}; + } + + offsetParent = elm; + while (offsetParent && offsetParent != rootElm && offsetParent.nodeType) { + x += offsetParent.offsetLeft || 0; + y += offsetParent.offsetTop || 0; + offsetParent = offsetParent.offsetParent; + } + + offsetParent = elm.parentNode; + while (offsetParent && offsetParent != rootElm && offsetParent.nodeType) { + x -= offsetParent.scrollLeft || 0; + y -= offsetParent.scrollTop || 0; + offsetParent = offsetParent.parentNode; + } + } + + return {x: x, y: y}; + }, + + /** + * Parses the specified style value into an object collection. This parser will also + * merge and remove any redundant items that browsers might have added. It will also convert non-hex + * colors to hex values. Urls inside the styles will also be converted to absolute/relative based on settings. + * + * @method parseStyle + * @param {String} cssText Style value to parse, for example: border:1px solid red;. + * @return {Object} Object representation of that style, for example: {border: '1px solid red'} + */ + parseStyle: function(cssText) { + return this.styles.parse(cssText); + }, + + /** + * Serializes the specified style object into a string. + * + * @method serializeStyle + * @param {Object} styles Object to serialize as string, for example: {border: '1px solid red'} + * @param {String} name Optional element name. + * @return {String} String representation of the style object, for example: border: 1px solid red. + */ + serializeStyle: function(styles, name) { + return this.styles.serialize(styles, name); + }, + + /** + * Adds a style element at the top of the document with the specified cssText content. + * + * @method addStyle + * @param {String} cssText CSS Text style to add to top of head of document. + */ + addStyle: function(cssText) { + var self = this, doc = self.doc, head, styleElm; + + // Prevent inline from loading the same styles twice + if (self !== DOMUtils.DOM && doc === document) { + var addedStyles = DOMUtils.DOM.addedStyles; + + addedStyles = addedStyles || []; + if (addedStyles[cssText]) { + return; + } + + addedStyles[cssText] = true; + DOMUtils.DOM.addedStyles = addedStyles; + } + + // Create style element if needed + styleElm = doc.getElementById('mceDefaultStyles'); + if (!styleElm) { + styleElm = doc.createElement('style'); + styleElm.id = 'mceDefaultStyles'; + styleElm.type = 'text/css'; + + head = doc.getElementsByTagName('head')[0]; + if (head.firstChild) { + head.insertBefore(styleElm, head.firstChild); + } else { + head.appendChild(styleElm); + } + } + + // Append style data to old or new style element + if (styleElm.styleSheet) { + styleElm.styleSheet.cssText += cssText; + } else { + styleElm.appendChild(doc.createTextNode(cssText)); + } + }, + + /** + * Imports/loads the specified CSS file into the document bound to the class. + * + * @method loadCSS + * @param {String} u URL to CSS file to load. + * @example + * // Loads a CSS file dynamically into the current document + * tinymce.DOM.loadCSS('somepath/some.css'); + * + * // Loads a CSS file into the currently active editor instance + * tinymce.activeEditor.dom.loadCSS('somepath/some.css'); + * + * // Loads a CSS file into an editor instance by id + * tinymce.get('someid').dom.loadCSS('somepath/some.css'); + * + * // Loads multiple CSS files into the current document + * tinymce.DOM.loadCSS('somepath/some.css,somepath/someother.css'); + */ + loadCSS: function(url) { + var self = this, doc = self.doc, head; + + // Prevent inline from loading the same CSS file twice + if (self !== DOMUtils.DOM && doc === document) { + DOMUtils.DOM.loadCSS(url); + return; + } + + if (!url) { + url = ''; + } + + head = doc.getElementsByTagName('head')[0]; + + each(url.split(','), function(url) { + var link; + + if (self.files[url]) { + return; + } + + self.files[url] = true; + link = self.create('link', {rel: 'stylesheet', href: url}); + + // IE 8 has a bug where dynamically loading stylesheets would produce a 1 item remaining bug + // This fix seems to resolve that issue by recalcing the document once a stylesheet finishes loading + // It's ugly but it seems to work fine. + if (isIE && doc.documentMode && doc.recalc) { + link.onload = function() { + if (doc.recalc) { + doc.recalc(); + } + + link.onload = null; + }; + } + + head.appendChild(link); + }); + }, + + /** + * Adds a class to the specified element or elements. + * + * @method addClass + * @param {String/Element/Array} elm Element ID string or DOM element or array with elements or IDs. + * @param {String} cls Class name to add to each element. + * @return {String/Array} String with new class value or array with new class values for all elements. + * @example + * // Adds a class to all paragraphs in the active editor + * tinymce.activeEditor.dom.addClass(tinymce.activeEditor.dom.select('p'), 'myclass'); + * + * // Adds a class to a specific element in the current page + * tinymce.DOM.addClass('mydiv', 'myclass'); + */ + addClass: function(elm, cls) { + return this.run(elm, function(elm) { + var clsVal; + + if (!cls) { + return 0; + } + + if (this.hasClass(elm, cls)) { + return elm.className; + } + + clsVal = this.removeClass(elm, cls); + elm.className = clsVal = (clsVal !== '' ? (clsVal + ' ') : '') + cls; + + return clsVal; + }); + }, + + /** + * Removes a class from the specified element or elements. + * + * @method removeClass + * @param {String/Element/Array} elm Element ID string or DOM element or array with elements or IDs. + * @param {String} cls Class name to remove from each element. + * @return {String/Array} String of remaining class name(s), or an array of strings if multiple input elements + * were passed in. + * @example + * // Removes a class from all paragraphs in the active editor + * tinymce.activeEditor.dom.removeClass(tinymce.activeEditor.dom.select('p'), 'myclass'); + * + * // Removes a class from a specific element in the current page + * tinymce.DOM.removeClass('mydiv', 'myclass'); + */ + removeClass: function(elm, cls) { + var self = this, re; + + return self.run(elm, function(elm) { + var val; + + if (self.hasClass(elm, cls)) { + if (!re) { + re = new RegExp("(^|\\s+)" + cls + "(\\s+|$)", "g"); + } + + val = elm.className.replace(re, ' '); + val = trim(val != ' ' ? val : ''); + + elm.className = val; + + // Empty class attr + if (!val) { + elm.removeAttribute('class'); + elm.removeAttribute('className'); + } + + return val; + } + + return elm.className; + }); + }, + + /** + * Returns true if the specified element has the specified class. + * + * @method hasClass + * @param {String/Element} n HTML element or element id string to check CSS class on. + * @param {String} c CSS class to check for. + * @return {Boolean} true/false if the specified element has the specified class. + */ + hasClass: function(elm, cls) { + elm = this.get(elm); + + if (!elm || !cls) { + return false; + } + + return (' ' + elm.className + ' ').indexOf(' ' + cls + ' ') !== -1; + }, + + /** + * Toggles the specified class on/off. + * + * @method toggleClass + * @param {Element} elm Element to toggle class on. + * @param {[type]} cls Class to toggle on/off. + * @param {[type]} state Optional state to set. + */ + toggleClass: function(elm, cls, state) { + state = state === undefined ? !this.hasClass(elm, cls) : state; + + if (this.hasClass(elm, cls) !== state) { + if (state) { + this.addClass(elm, cls); + } else { + this.removeClass(elm, cls); + } + } + }, + + /** + * Shows the specified element(s) by ID by setting the "display" style. + * + * @method show + * @param {String/Element/Array} elm ID of DOM element or DOM element or array with elements or IDs to show. + */ + show: function(elm) { + return this.setStyle(elm, 'display', 'block'); + }, + + /** + * Hides the specified element(s) by ID by setting the "display" style. + * + * @method hide + * @param {String/Element/Array} e ID of DOM element or DOM element or array with elements or IDs to hide. + * @example + * // Hides an element by id in the document + * tinymce.DOM.hide('myid'); + */ + hide: function(elm) { + return this.setStyle(elm, 'display', 'none'); + }, + + /** + * Returns true/false if the element is hidden or not by checking the "display" style. + * + * @method isHidden + * @param {String/Element} e Id or element to check display state on. + * @return {Boolean} true/false if the element is hidden or not. + */ + isHidden: function(elm) { + elm = this.get(elm); + + return !elm || elm.style.display == 'none' || this.getStyle(elm, 'display') == 'none'; + }, + + /** + * Returns a unique id. This can be useful when generating elements on the fly. + * This method will not check if the element already exists. + * + * @method uniqueId + * @param {String} prefix Optional prefix to add in front of all ids - defaults to "mce_". + * @return {String} Unique id. + */ + uniqueId: function(prefix) { + return (!prefix ? 'mce_' : prefix) + (this.counter++); + }, + + /** + * Sets the specified HTML content inside the element or elements. The HTML will first be processed. This means + * URLs will get converted, hex color values fixed etc. Check processHTML for details. + * + * @method setHTML + * @param {Element/String/Array} e DOM element, element id string or array of elements/ids to set HTML inside of. + * @param {String} h HTML content to set as inner HTML of the element. + * @example + * // Sets the inner HTML of all paragraphs in the active editor + * tinymce.activeEditor.dom.setHTML(tinymce.activeEditor.dom.select('p'), 'some inner html'); + * + * // Sets the inner HTML of an element by id in the document + * tinymce.DOM.setHTML('mydiv', 'some inner html'); + */ + setHTML: function(element, html) { + var self = this; + + return self.run(element, function(element) { + if (isIE) { + // Remove all child nodes, IE keeps empty text nodes in DOM + while (element.firstChild) { + element.removeChild(element.firstChild); + } + + try { + // IE will remove comments from the beginning + // unless you padd the contents with something + element.innerHTML = '<br />' + html; + element.removeChild(element.firstChild); + } catch (ex) { + // IE sometimes produces an unknown runtime error on innerHTML if it's a block element + // within a block element for example a div inside a p + // This seems to fix this problem + + // Create new div with HTML contents and a BR in front to keep comments + var newElement = self.create('div'); + newElement.innerHTML = '<br />' + html; + + // Add all children from div to target + each(grep(newElement.childNodes), function(node, i) { + // Skip br element + if (i && element.canHaveHTML) { + element.appendChild(node); + } + }); + } + } else { + element.innerHTML = html; + } + + return html; + }); + }, + + /** + * Returns the outer HTML of an element. + * + * @method getOuterHTML + * @param {String/Element} elm Element ID or element object to get outer HTML from. + * @return {String} Outer HTML string. + * @example + * tinymce.DOM.getOuterHTML(editorElement); + * tinymce.activeEditor.getOuterHTML(tinymce.activeEditor.getBody()); + */ + getOuterHTML: function(elm) { + var doc, self = this; + + elm = self.get(elm); + + if (!elm) { + return null; + } + + if (elm.nodeType === 1 && self.hasOuterHTML) { + return elm.outerHTML; + } + + doc = (elm.ownerDocument || self.doc).createElement("body"); + doc.appendChild(elm.cloneNode(true)); + + return doc.innerHTML; + }, + + /** + * Sets the specified outer HTML on an element or elements. + * + * @method setOuterHTML + * @param {Element/String/Array} elm DOM element, element id string or array of elements/ids to set outer HTML on. + * @param {Object} html HTML code to set as outer value for the element. + * @param {Document} doc Optional document scope to use in this process - defaults to the document of the DOM class. + * @example + * // Sets the outer HTML of all paragraphs in the active editor + * tinymce.activeEditor.dom.setOuterHTML(tinymce.activeEditor.dom.select('p'), '<div>some html</div>'); + * + * // Sets the outer HTML of an element by id in the document + * tinymce.DOM.setOuterHTML('mydiv', '<div>some html</div>'); + */ + setOuterHTML: function(elm, html, doc) { + var self = this; + + return self.run(elm, function(elm) { + function set() { + var node, tempElm; + + tempElm = doc.createElement("body"); + tempElm.innerHTML = html; + + node = tempElm.lastChild; + while (node) { + self.insertAfter(node.cloneNode(true), elm); + node = node.previousSibling; + } + + self.remove(elm); + } + + // Only set HTML on elements + if (elm.nodeType == 1) { + doc = doc || elm.ownerDocument || self.doc; + + if (isIE) { + try { + // Try outerHTML for IE it sometimes produces an unknown runtime error + if (elm.nodeType == 1 && self.hasOuterHTML) { + elm.outerHTML = html; + } else { + set(); + } + } catch (ex) { + // Fix for unknown runtime error + set(); + } + } else { + set(); + } + } + }); + }, + + /** + * Entity decodes a string. This method decodes any HTML entities, such as å. + * + * @method decode + * @param {String} s String to decode entities on. + * @return {String} Entity decoded string. + */ + decode: Entities.decode, + + /** + * Entity encodes a string. This method encodes the most common entities, such as <>"&. + * + * @method encode + * @param {String} text String to encode with entities. + * @return {String} Entity encoded string. + */ + encode: Entities.encodeAllRaw, + + /** + * Inserts an element after the reference element. + * + * @method insertAfter + * @param {Element} node Element to insert after the reference. + * @param {Element/String/Array} reference_node Reference element, element id or array of elements to insert after. + * @return {Element/Array} Element that got added or an array with elements. + */ + insertAfter: function(node, reference_node) { + reference_node = this.get(reference_node); + + return this.run(node, function(node) { + var parent, nextSibling; + + parent = reference_node.parentNode; + nextSibling = reference_node.nextSibling; + + if (nextSibling) { + parent.insertBefore(node, nextSibling); + } else { + parent.appendChild(node); + } + + return node; + }); + }, + + /** + * Replaces the specified element or elements with the new element specified. The new element will + * be cloned if multiple input elements are passed in. + * + * @method replace + * @param {Element} newElm New element to replace old ones with. + * @param {Element/String/Array} oldELm Element DOM node, element id or array of elements or ids to replace. + * @param {Boolean} k Optional keep children state, if set to true child nodes from the old object will be added to new ones. + */ + replace: function(newElm, oldElm, keepChildren) { + var self = this; + + return self.run(oldElm, function(oldElm) { + if (is(oldElm, 'array')) { + newElm = newElm.cloneNode(true); + } + + if (keepChildren) { + each(grep(oldElm.childNodes), function(node) { + newElm.appendChild(node); + }); + } + + return oldElm.parentNode.replaceChild(newElm, oldElm); + }); + }, + + /** + * Renames the specified element and keeps its attributes and children. + * + * @method rename + * @param {Element} elm Element to rename. + * @param {String} name Name of the new element. + * @return {Element} New element or the old element if it needed renaming. + */ + rename: function(elm, name) { + var self = this, newElm; + + if (elm.nodeName != name.toUpperCase()) { + // Rename block element + newElm = self.create(name); + + // Copy attribs to new block + each(self.getAttribs(elm), function(attr_node) { + self.setAttrib(newElm, attr_node.nodeName, self.getAttrib(elm, attr_node.nodeName)); + }); + + // Replace block + self.replace(newElm, elm, 1); + } + + return newElm || elm; + }, + + /** + * Find the common ancestor of two elements. This is a shorter method than using the DOM Range logic. + * + * @method findCommonAncestor + * @param {Element} a Element to find common ancestor of. + * @param {Element} b Element to find common ancestor of. + * @return {Element} Common ancestor element of the two input elements. + */ + findCommonAncestor: function(a, b) { + var ps = a, pe; + + while (ps) { + pe = b; + + while (pe && ps != pe) { + pe = pe.parentNode; + } + + if (ps == pe) { + break; + } + + ps = ps.parentNode; + } + + if (!ps && a.ownerDocument) { + return a.ownerDocument.documentElement; + } + + return ps; + }, + + /** + * Parses the specified RGB color value and returns a hex version of that color. + * + * @method toHex + * @param {String} rgbVal RGB string value like rgb(1,2,3) + * @return {String} Hex version of that RGB value like #FF00FF. + */ + toHex: function(rgbVal) { + return this.styles.toHex(Tools.trim(rgbVal)); + }, + + /** + * Executes the specified function on the element by id or dom element node or array of elements/id. + * + * @method run + * @param {String/Element/Array} Element ID or DOM element object or array with ids or elements. + * @param {function} f Function to execute for each item. + * @param {Object} s Optional scope to execute the function in. + * @return {Object/Array} Single object, or an array of objects if multiple input elements were passed in. + */ + run: function(elm, func, scope) { + var self = this, result; + + if (typeof(elm) === 'string') { + elm = self.get(elm); + } + + if (!elm) { + return false; + } + + scope = scope || this; + if (!elm.nodeType && (elm.length || elm.length === 0)) { + result = []; + + each(elm, function(elm, i) { + if (elm) { + if (typeof(elm) == 'string') { + elm = self.get(elm); + } + + result.push(func.call(scope, elm, i)); + } + }); + + return result; + } + + return func.call(scope, elm); + }, + + /** + * Returns a NodeList with attributes for the element. + * + * @method getAttribs + * @param {HTMLElement/string} elm Element node or string id to get attributes from. + * @return {NodeList} NodeList with attributes. + */ + getAttribs: function(elm) { + var attrs; + + elm = this.get(elm); + + if (!elm) { + return []; + } + + if (isIE) { + attrs = []; + + // Object will throw exception in IE + if (elm.nodeName == 'OBJECT') { + return elm.attributes; + } + + // IE doesn't keep the selected attribute if you clone option elements + if (elm.nodeName === 'OPTION' && this.getAttrib(elm, 'selected')) { + attrs.push({specified: 1, nodeName: 'selected'}); + } + + // It's crazy that this is faster in IE but it's because it returns all attributes all the time + var attrRegExp = /<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi; + elm.cloneNode(false).outerHTML.replace(attrRegExp, '').replace(/[\w:\-]+/gi, function(a) { + attrs.push({specified: 1, nodeName: a}); + }); + + return attrs; + } + + return elm.attributes; + }, + + /** + * Returns true/false if the specified node is to be considered empty or not. + * + * @example + * tinymce.DOM.isEmpty(node, {img: true}); + * @method isEmpty + * @param {Object} elements Optional name/value object with elements that are automatically treated as non-empty elements. + * @return {Boolean} true/false if the node is empty or not. + */ + isEmpty: function(node, elements) { + var self = this, i, attributes, type, walker, name, brCount = 0; + + node = node.firstChild; + if (node) { + walker = new TreeWalker(node, node.parentNode); + elements = elements || self.schema ? self.schema.getNonEmptyElements() : null; + + do { + type = node.nodeType; + + if (type === 1) { + // Ignore bogus elements + if (node.getAttribute('data-mce-bogus')) { + continue; + } + + // Keep empty elements like <img /> + name = node.nodeName.toLowerCase(); + if (elements && elements[name]) { + // Ignore single BR elements in blocks like <p><br /></p> or <p><span><br /></span></p> + if (name === 'br') { + brCount++; + continue; + } + + return false; + } + + // Keep elements with data-bookmark attributes or name attribute like <a name="1"></a> + attributes = self.getAttribs(node); + i = node.attributes.length; + while (i--) { + name = node.attributes[i].nodeName; + if (name === "name" || name === 'data-mce-bookmark') { + return false; + } + } + } + + // Keep comment nodes + if (type == 8) { + return false; + } + + // Keep non whitespace text nodes + if ((type === 3 && !whiteSpaceRegExp.test(node.nodeValue))) { + return false; + } + } while ((node = walker.next())); + } + + return brCount <= 1; + }, + + /** + * Creates a new DOM Range object. This will use the native DOM Range API if it's + * available. If it's not, it will fall back to the custom TinyMCE implementation. + * + * @method createRng + * @return {DOMRange} DOM Range object. + * @example + * var rng = tinymce.DOM.createRng(); + * alert(rng.startContainer + "," + rng.startOffset); + */ + createRng: function() { + var doc = this.doc; + + return doc.createRange ? doc.createRange() : new Range(this); + }, + + /** + * Returns the index of the specified node within its parent. + * + * @method nodeIndex + * @param {Node} node Node to look for. + * @param {boolean} normalized Optional true/false state if the index is what it would be after a normalization. + * @return {Number} Index of the specified node. + */ + nodeIndex: function(node, normalized) { + var idx = 0, lastNodeType, nodeType; + + if (node) { + for (lastNodeType = node.nodeType, node = node.previousSibling; node; node = node.previousSibling) { + nodeType = node.nodeType; + + // Normalize text nodes + if (normalized && nodeType == 3) { + if (nodeType == lastNodeType || !node.nodeValue.length) { + continue; + } + } + idx++; + lastNodeType = nodeType; + } + } + + return idx; + }, + + /** + * Splits an element into two new elements and places the specified split + * element or elements between the new ones. For example splitting the paragraph at the bold element in + * this example <p>abc<b>abc</b>123</p> would produce <p>abc</p><b>abc</b><p>123</p>. + * + * @method split + * @param {Element} parentElm Parent element to split. + * @param {Element} splitElm Element to split at. + * @param {Element} replacementElm Optional replacement element to replace the split element with. + * @return {Element} Returns the split element or the replacement element if that is specified. + */ + split: function(parentElm, splitElm, replacementElm) { + var self = this, r = self.createRng(), bef, aft, pa; + + // W3C valid browsers tend to leave empty nodes to the left/right side of the contents - this makes sense + // but we don't want that in our code since it serves no purpose for the end user + // For example splitting this html at the bold element: + // <p>text 1<span><b>CHOP</b></span>text 2</p> + // would produce: + // <p>text 1<span></span></p><b>CHOP</b><p><span></span>text 2</p> + // this function will then trim off empty edges and produce: + // <p>text 1</p><b>CHOP</b><p>text 2</p> + function trimNode(node) { + var i, children = node.childNodes, type = node.nodeType; + + function surroundedBySpans(node) { + var previousIsSpan = node.previousSibling && node.previousSibling.nodeName == 'SPAN'; + var nextIsSpan = node.nextSibling && node.nextSibling.nodeName == 'SPAN'; + return previousIsSpan && nextIsSpan; + } + + if (type == 1 && node.getAttribute('data-mce-type') == 'bookmark') { + return; + } + + for (i = children.length - 1; i >= 0; i--) { + trimNode(children[i]); + } + + if (type != 9) { + // Keep non whitespace text nodes + if (type == 3 && node.nodeValue.length > 0) { + // If parent element isn't a block or there isn't any useful contents for example "<p> </p>" + // Also keep text nodes with only spaces if surrounded by spans. + // eg. "<p><span>a</span> <span>b</span></p>" should keep space between a and b + var trimmedLength = trim(node.nodeValue).length; + if (!self.isBlock(node.parentNode) || trimmedLength > 0 || trimmedLength === 0 && surroundedBySpans(node)) { + return; + } + } else if (type == 1) { + // If the only child is a bookmark then move it up + children = node.childNodes; + + // TODO fix this complex if + if (children.length == 1 && children[0] && children[0].nodeType == 1 && + children[0].getAttribute('data-mce-type') == 'bookmark') { + node.parentNode.insertBefore(children[0], node); + } + + // Keep non empty elements or img, hr etc + if (children.length || /^(br|hr|input|img)$/i.test(node.nodeName)) { + return; + } + } + + self.remove(node); + } + + return node; + } + + if (parentElm && splitElm) { + // Get before chunk + r.setStart(parentElm.parentNode, self.nodeIndex(parentElm)); + r.setEnd(splitElm.parentNode, self.nodeIndex(splitElm)); + bef = r.extractContents(); + + // Get after chunk + r = self.createRng(); + r.setStart(splitElm.parentNode, self.nodeIndex(splitElm) + 1); + r.setEnd(parentElm.parentNode, self.nodeIndex(parentElm) + 1); + aft = r.extractContents(); + + // Insert before chunk + pa = parentElm.parentNode; + pa.insertBefore(trimNode(bef), parentElm); + + // Insert middle chunk + if (replacementElm) { + pa.replaceChild(replacementElm, splitElm); + } else { + pa.insertBefore(splitElm, parentElm); + } + + // Insert after chunk + pa.insertBefore(trimNode(aft), parentElm); + self.remove(parentElm); + + return replacementElm || splitElm; + } + }, + + /** + * Adds an event handler to the specified object. + * + * @method bind + * @param {Element/Document/Window/Array} target Target element to bind events to. + * handler to or an array of elements/ids/documents. + * @param {String} name Name of event handler to add, for example: click. + * @param {function} func Function to execute when the event occurs. + * @param {Object} scope Optional scope to execute the function in. + * @return {function} Function callback handler the same as the one passed in. + */ + bind: function(target, name, func, scope) { + var self = this; + + if (Tools.isArray(target)) { + var i = target.length; + + while (i--) { + target[i] = self.bind(target[i], name, func, scope); + } + + return target; + } + + // Collect all window/document events bound by editor instance + if (self.settings.collect && (target === self.doc || target === self.win)) { + self.boundEvents.push([target, name, func, scope]); + } + + return self.events.bind(target, name, func, scope || self); + }, + + /** + * Removes the specified event handler by name and function from an element or collection of elements. + * + * @method unbind + * @param {Element/Document/Window/Array} target Target element to unbind events on. + * @param {String} name Event handler name, for example: "click" + * @param {function} func Function to remove. + * @return {bool/Array} Bool state of true if the handler was removed, or an array of states if multiple input elements + * were passed in. + */ + unbind: function(target, name, func) { + var self = this, i; + + if (Tools.isArray(target)) { + i = target.length; + + while (i--) { + target[i] = self.unbind(target[i], name, func); + } + + return target; + } + + // Remove any bound events matching the input + if (self.boundEvents && (target === self.doc || target === self.win)) { + i = self.boundEvents.length; + + while (i--) { + var item = self.boundEvents[i]; + + if (target == item[0] && (!name || name == item[1]) && (!func || func == item[2])) { + this.events.unbind(item[0], item[1], item[2]); + } + } + } + + return this.events.unbind(target, name, func); + }, + + /** + * Fires the specified event name with object on target. + * + * @method fire + * @param {Node/Document/Window} target Target element or object to fire event on. + * @param {String} name Name of the event to fire. + * @param {Object} evt Event object to send. + * @return {Event} Event object. + */ + fire: function(target, name, evt) { + return this.events.fire(target, name, evt); + }, + + // Returns the content editable state of a node + getContentEditable: function(node) { + var contentEditable; + + // Check type + if (node.nodeType != 1) { + return null; + } + + // Check for fake content editable + contentEditable = node.getAttribute("data-mce-contenteditable"); + if (contentEditable && contentEditable !== "inherit") { + return contentEditable; + } + + // Check for real content editable + return node.contentEditable !== "inherit" ? node.contentEditable : null; + }, + + /** + * Destroys all internal references to the DOM to solve IE leak issues. + * + * @method destroy + */ + destroy: function() { + var self = this; + + // Unbind all events bound to window/document by editor instance + if (self.boundEvents) { + var i = self.boundEvents.length; + + while (i--) { + var item = self.boundEvents[i]; + this.events.unbind(item[0], item[1], item[2]); + } + + self.boundEvents = null; + } + + // Restore sizzle document to window.document + // Since the current document might be removed producing "Permission denied" on IE see #6325 + if (Sizzle.setDocument) { + Sizzle.setDocument(); + } + + self.win = self.doc = self.root = self.events = self.frag = null; + }, + + // #ifdef debug + + dumpRng: function(r) { + return ( + 'startContainer: ' + r.startContainer.nodeName + + ', startOffset: ' + r.startOffset + + ', endContainer: ' + r.endContainer.nodeName + + ', endOffset: ' + r.endOffset + ); + }, + + // #endif + + _findSib: function(node, selector, name) { + var self = this, func = selector; + + if (node) { + // If expression make a function of it using is + if (typeof(func) == 'string') { + func = function(node) { + return self.is(node, selector); + }; + } + + // Loop all siblings + for (node = node[name]; node; node = node[name]) { + if (func(node)) { + return node; + } + } + } + + return null; + } + }; + + /** + * Instance of DOMUtils for the current document. + * + * @static + * @property DOM + * @type tinymce.dom.DOMUtils + * @example + * // Example of how to add a class to some element by id + * tinymce.DOM.addClass('someid', 'someclass'); + */ + DOMUtils.DOM = new DOMUtils(document); + + return DOMUtils; +}); + +// Included from: js/tinymce/classes/dom/ScriptLoader.js + +/** + * ScriptLoader.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*globals console*/ + +/** + * This class handles asynchronous/synchronous loading of JavaScript files it will execute callbacks + * when various items gets loaded. This class is useful to load external JavaScript files. + * + * @class tinymce.dom.ScriptLoader + * @example + * // Load a script from a specific URL using the global script loader + * tinymce.ScriptLoader.load('somescript.js'); + * + * // Load a script using a unique instance of the script loader + * var scriptLoader = new tinymce.dom.ScriptLoader(); + * + * scriptLoader.load('somescript.js'); + * + * // Load multiple scripts + * var scriptLoader = new tinymce.dom.ScriptLoader(); + * + * scriptLoader.add('somescript1.js'); + * scriptLoader.add('somescript2.js'); + * scriptLoader.add('somescript3.js'); + * + * scriptLoader.loadQueue(function() { + * alert('All scripts are now loaded.'); + * }); + */ +define("tinymce/dom/ScriptLoader", [ + "tinymce/dom/DOMUtils", + "tinymce/util/Tools" +], function(DOMUtils, Tools) { + var DOM = DOMUtils.DOM; + var each = Tools.each, grep = Tools.grep; + + function ScriptLoader() { + var QUEUED = 0, + LOADING = 1, + LOADED = 2, + states = {}, + queue = [], + scriptLoadedCallbacks = {}, + queueLoadedCallbacks = [], + loading = 0, + undef; + + /** + * Loads a specific script directly without adding it to the load queue. + * + * @method load + * @param {String} url Absolute URL to script to add. + * @param {function} callback Optional callback function to execute ones this script gets loaded. + * @param {Object} scope Optional scope to execute callback in. + */ + function loadScript(url, callback) { + var dom = DOM, elm, id; + + // Execute callback when script is loaded + function done() { + dom.remove(id); + + if (elm) { + elm.onreadystatechange = elm.onload = elm = null; + } + + callback(); + } + + function error() { + /*eslint no-console:0 */ + + // Report the error so it's easier for people to spot loading errors + if (typeof(console) !== "undefined" && console.log) { + console.log("Failed to load: " + url); + } + + // We can't mark it as done if there is a load error since + // A) We don't want to produce 404 errors on the server and + // B) the onerror event won't fire on all browsers. + // done(); + } + + id = dom.uniqueId(); + + // Create new script element + elm = document.createElement('script'); + elm.id = id; + elm.type = 'text/javascript'; + elm.src = url; + + // Seems that onreadystatechange works better on IE 10 onload seems to fire incorrectly + if ("onreadystatechange" in elm) { + elm.onreadystatechange = function() { + if (/loaded|complete/.test(elm.readyState)) { + done(); + } + }; + } else { + elm.onload = done; + } + + // Add onerror event will get fired on some browsers but not all of them + elm.onerror = error; + + // Add script to document + (document.getElementsByTagName('head')[0] || document.body).appendChild(elm); + } + + /** + * Returns true/false if a script has been loaded or not. + * + * @method isDone + * @param {String} url URL to check for. + * @return {Boolean} true/false if the URL is loaded. + */ + this.isDone = function(url) { + return states[url] == LOADED; + }; + + /** + * Marks a specific script to be loaded. This can be useful if a script got loaded outside + * the script loader or to skip it from loading some script. + * + * @method markDone + * @param {string} u Absolute URL to the script to mark as loaded. + */ + this.markDone = function(url) { + states[url] = LOADED; + }; + + /** + * Adds a specific script to the load queue of the script loader. + * + * @method add + * @param {String} url Absolute URL to script to add. + * @param {function} callback Optional callback function to execute ones this script gets loaded. + * @param {Object} scope Optional scope to execute callback in. + */ + this.add = this.load = function(url, callback, scope) { + var state = states[url]; + + // Add url to load queue + if (state == undef) { + queue.push(url); + states[url] = QUEUED; + } + + if (callback) { + // Store away callback for later execution + if (!scriptLoadedCallbacks[url]) { + scriptLoadedCallbacks[url] = []; + } + + scriptLoadedCallbacks[url].push({ + func: callback, + scope: scope || this + }); + } + }; + + /** + * Starts the loading of the queue. + * + * @method loadQueue + * @param {function} callback Optional callback to execute when all queued items are loaded. + * @param {Object} scope Optional scope to execute the callback in. + */ + this.loadQueue = function(callback, scope) { + this.loadScripts(queue, callback, scope); + }; + + /** + * Loads the specified queue of files and executes the callback ones they are loaded. + * This method is generally not used outside this class but it might be useful in some scenarios. + * + * @method loadScripts + * @param {Array} scripts Array of queue items to load. + * @param {function} callback Optional callback to execute ones all items are loaded. + * @param {Object} scope Optional scope to execute callback in. + */ + this.loadScripts = function(scripts, callback, scope) { + var loadScripts; + + function execScriptLoadedCallbacks(url) { + // Execute URL callback functions + each(scriptLoadedCallbacks[url], function(callback) { + callback.func.call(callback.scope); + }); + + scriptLoadedCallbacks[url] = undef; + } + + queueLoadedCallbacks.push({ + func: callback, + scope: scope || this + }); + + loadScripts = function() { + var loadingScripts = grep(scripts); + + // Current scripts has been handled + scripts.length = 0; + + // Load scripts that needs to be loaded + each(loadingScripts, function(url) { + // Script is already loaded then execute script callbacks directly + if (states[url] == LOADED) { + execScriptLoadedCallbacks(url); + return; + } + + // Is script not loading then start loading it + if (states[url] != LOADING) { + states[url] = LOADING; + loading++; + + loadScript(url, function() { + states[url] = LOADED; + loading--; + + execScriptLoadedCallbacks(url); + + // Load more scripts if they where added by the recently loaded script + loadScripts(); + }); + } + }); + + // No scripts are currently loading then execute all pending queue loaded callbacks + if (!loading) { + each(queueLoadedCallbacks, function(callback) { + callback.func.call(callback.scope); + }); + + queueLoadedCallbacks.length = 0; + } + }; + + loadScripts(); + }; + } + + ScriptLoader.ScriptLoader = new ScriptLoader(); + + return ScriptLoader; +}); + +// Included from: js/tinymce/classes/AddOnManager.js + +/** + * AddOnManager.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles the loading of themes/plugins or other add-ons and their language packs. + * + * @class tinymce.AddOnManager + */ +define("tinymce/AddOnManager", [ + "tinymce/dom/ScriptLoader", + "tinymce/util/Tools" +], function(ScriptLoader, Tools) { + var each = Tools.each; + + function AddOnManager() { + var self = this; + + self.items = []; + self.urls = {}; + self.lookup = {}; + } + + AddOnManager.prototype = { + /** + * Returns the specified add on by the short name. + * + * @method get + * @param {String} name Add-on to look for. + * @return {tinymce.Theme/tinymce.Plugin} Theme or plugin add-on instance or undefined. + */ + get: function(name) { + if (this.lookup[name]) { + return this.lookup[name].instance; + } else { + return undefined; + } + }, + + dependencies: function(name) { + var result; + + if (this.lookup[name]) { + result = this.lookup[name].dependencies; + } + + return result || []; + }, + + /** + * Loads a language pack for the specified add-on. + * + * @method requireLangPack + * @param {String} name Short name of the add-on. + * @param {String} languages Optional comma or space separated list of languages to check if it matches the name. + */ + requireLangPack: function(name, languages) { + if (AddOnManager.language && AddOnManager.languageLoad !== false) { + if (languages && new RegExp('([, ]|\\b)' + AddOnManager.language + '([, ]|\\b)').test(languages) === false) { + return; + } + + ScriptLoader.ScriptLoader.add(this.urls[name] + '/langs/' + AddOnManager.language + '.js'); + } + }, + + /** + * Adds a instance of the add-on by it's short name. + * + * @method add + * @param {String} id Short name/id for the add-on. + * @param {tinymce.Theme/tinymce.Plugin} addOn Theme or plugin to add. + * @return {tinymce.Theme/tinymce.Plugin} The same theme or plugin instance that got passed in. + * @example + * // Create a simple plugin + * tinymce.create('tinymce.plugins.TestPlugin', { + * TestPlugin: function(ed, url) { + * ed.on('click', function(e) { + * ed.windowManager.alert('Hello World!'); + * }); + * } + * }); + * + * // Register plugin using the add method + * tinymce.PluginManager.add('test', tinymce.plugins.TestPlugin); + * + * // Initialize TinyMCE + * tinymce.init({ + * ... + * plugins: '-test' // Init the plugin but don't try to load it + * }); + */ + add: function(id, addOn, dependencies) { + this.items.push(addOn); + this.lookup[id] = {instance: addOn, dependencies: dependencies}; + + return addOn; + }, + + createUrl: function(baseUrl, dep) { + if (typeof dep === "object") { + return dep; + } else { + return {prefix: baseUrl.prefix, resource: dep, suffix: baseUrl.suffix}; + } + }, + + /** + * Add a set of components that will make up the add-on. Using the url of the add-on name as the base url. + * This should be used in development mode. A new compressor/javascript munger process will ensure that the + * components are put together into the plugin.js file and compressed correctly. + * + * @method addComponents + * @param {String} pluginName name of the plugin to load scripts from (will be used to get the base url for the plugins). + * @param {Array} scripts Array containing the names of the scripts to load. + */ + addComponents: function(pluginName, scripts) { + var pluginUrl = this.urls[pluginName]; + + each(scripts, function(script) { + ScriptLoader.ScriptLoader.add(pluginUrl + "/" + script); + }); + }, + + /** + * Loads an add-on from a specific url. + * + * @method load + * @param {String} name Short name of the add-on that gets loaded. + * @param {String} addOnUrl URL to the add-on that will get loaded. + * @param {function} callback Optional callback to execute ones the add-on is loaded. + * @param {Object} scope Optional scope to execute the callback in. + * @example + * // Loads a plugin from an external URL + * tinymce.PluginManager.load('myplugin', '/some/dir/someplugin/plugin.js'); + * + * // Initialize TinyMCE + * tinymce.init({ + * ... + * plugins: '-myplugin' // Don't try to load it again + * }); + */ + load: function(name, addOnUrl, callback, scope) { + var self = this, url = addOnUrl; + + function loadDependencies() { + var dependencies = self.dependencies(name); + + each(dependencies, function(dep) { + var newUrl = self.createUrl(addOnUrl, dep); + + self.load(newUrl.resource, newUrl, undefined, undefined); + }); + + if (callback) { + if (scope) { + callback.call(scope); + } else { + callback.call(ScriptLoader); + } + } + } + + if (self.urls[name]) { + return; + } + + if (typeof addOnUrl === "object") { + url = addOnUrl.prefix + addOnUrl.resource + addOnUrl.suffix; + } + + if (url.indexOf('/') !== 0 && url.indexOf('://') == -1) { + url = AddOnManager.baseURL + '/' + url; + } + + self.urls[name] = url.substring(0, url.lastIndexOf('/')); + + if (self.lookup[name]) { + loadDependencies(); + } else { + ScriptLoader.ScriptLoader.add(url, loadDependencies, scope); + } + } + }; + + AddOnManager.PluginManager = new AddOnManager(); + AddOnManager.ThemeManager = new AddOnManager(); + + return AddOnManager; +}); + +/** + * TinyMCE theme class. + * + * @class tinymce.Theme + */ + +/** + * This method is responsible for rendering/generating the overall user interface with toolbars, buttons, iframe containers etc. + * + * @method renderUI + * @param {Object} obj Object parameter containing the targetNode DOM node that will be replaced visually with an editor instance. + * @return {Object} an object with items like iframeContainer, editorContainer, sizeContainer, deltaWidth, deltaHeight. + */ + +/** + * Plugin base class, this is a pseudo class that describes how a plugin is to be created for TinyMCE. The methods below are all optional. + * + * @class tinymce.Plugin + * @example + * tinymce.PluginManager.add('example', function(editor, url) { + * // Add a button that opens a window + * editor.addButton('example', { + * text: 'My button', + * icon: false, + * onclick: function() { + * // Open window + * editor.windowManager.open({ + * title: 'Example plugin', + * body: [ + * {type: 'textbox', name: 'title', label: 'Title'} + * ], + * onsubmit: function(e) { + * // Insert content when the window form is submitted + * editor.insertContent('Title: ' + e.data.title); + * } + * }); + * } + * }); + * + * // Adds a menu item to the tools menu + * editor.addMenuItem('example', { + * text: 'Example plugin', + * context: 'tools', + * onclick: function() { + * // Open window with a specific url + * editor.windowManager.open({ + * title: 'TinyMCE site', + * url: 'http://www.tinymce.com', + * width: 800, + * height: 600, + * buttons: [{ + * text: 'Close', + * onclick: 'close' + * }] + * }); + * } + * }); + * }); + */ + +// Included from: js/tinymce/classes/html/Node.js + +/** + * Node.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class is a minimalistic implementation of a DOM like node used by the DomParser class. + * + * @example + * var node = new tinymce.html.Node('strong', 1); + * someRoot.append(node); + * + * @class tinymce.html.Node + * @version 3.4 + */ +define("tinymce/html/Node", [], function() { + var whiteSpaceRegExp = /^[ \t\r\n]*$/, typeLookup = { + '#text': 3, + '#comment': 8, + '#cdata': 4, + '#pi': 7, + '#doctype': 10, + '#document-fragment': 11 + }; + + // Walks the tree left/right + function walk(node, root_node, prev) { + var sibling, parent, startName = prev ? 'lastChild' : 'firstChild', siblingName = prev ? 'prev' : 'next'; + + // Walk into nodes if it has a start + if (node[startName]) { + return node[startName]; + } + + // Return the sibling if it has one + if (node !== root_node) { + sibling = node[siblingName]; + + if (sibling) { + return sibling; + } + + // Walk up the parents to look for siblings + for (parent = node.parent; parent && parent !== root_node; parent = parent.parent) { + sibling = parent[siblingName]; + + if (sibling) { + return sibling; + } + } + } + } + + /** + * Constructs a new Node instance. + * + * @constructor + * @method Node + * @param {String} name Name of the node type. + * @param {Number} type Numeric type representing the node. + */ + function Node(name, type) { + this.name = name; + this.type = type; + + if (type === 1) { + this.attributes = []; + this.attributes.map = {}; + } + } + + Node.prototype = { + /** + * Replaces the current node with the specified one. + * + * @example + * someNode.replace(someNewNode); + * + * @method replace + * @param {tinymce.html.Node} node Node to replace the current node with. + * @return {tinymce.html.Node} The old node that got replaced. + */ + replace: function(node) { + var self = this; + + if (node.parent) { + node.remove(); + } + + self.insert(node, self); + self.remove(); + + return self; + }, + + /** + * Gets/sets or removes an attribute by name. + * + * @example + * someNode.attr("name", "value"); // Sets an attribute + * console.log(someNode.attr("name")); // Gets an attribute + * someNode.attr("name", null); // Removes an attribute + * + * @method attr + * @param {String} name Attribute name to set or get. + * @param {String} value Optional value to set. + * @return {String/tinymce.html.Node} String or undefined on a get operation or the current node on a set operation. + */ + attr: function(name, value) { + var self = this, attrs, i, undef; + + if (typeof name !== "string") { + for (i in name) { + self.attr(i, name[i]); + } + + return self; + } + + if ((attrs = self.attributes)) { + if (value !== undef) { + // Remove attribute + if (value === null) { + if (name in attrs.map) { + delete attrs.map[name]; + + i = attrs.length; + while (i--) { + if (attrs[i].name === name) { + attrs = attrs.splice(i, 1); + return self; + } + } + } + + return self; + } + + // Set attribute + if (name in attrs.map) { + // Set attribute + i = attrs.length; + while (i--) { + if (attrs[i].name === name) { + attrs[i].value = value; + break; + } + } + } else { + attrs.push({name: name, value: value}); + } + + attrs.map[name] = value; + + return self; + } else { + return attrs.map[name]; + } + } + }, + + /** + * Does a shallow clones the node into a new node. It will also exclude id attributes since + * there should only be one id per document. + * + * @example + * var clonedNode = node.clone(); + * + * @method clone + * @return {tinymce.html.Node} New copy of the original node. + */ + clone: function() { + var self = this, clone = new Node(self.name, self.type), i, l, selfAttrs, selfAttr, cloneAttrs; + + // Clone element attributes + if ((selfAttrs = self.attributes)) { + cloneAttrs = []; + cloneAttrs.map = {}; + + for (i = 0, l = selfAttrs.length; i < l; i++) { + selfAttr = selfAttrs[i]; + + // Clone everything except id + if (selfAttr.name !== 'id') { + cloneAttrs[cloneAttrs.length] = {name: selfAttr.name, value: selfAttr.value}; + cloneAttrs.map[selfAttr.name] = selfAttr.value; + } + } + + clone.attributes = cloneAttrs; + } + + clone.value = self.value; + clone.shortEnded = self.shortEnded; + + return clone; + }, + + /** + * Wraps the node in in another node. + * + * @example + * node.wrap(wrapperNode); + * + * @method wrap + */ + wrap: function(wrapper) { + var self = this; + + self.parent.insert(wrapper, self); + wrapper.append(self); + + return self; + }, + + /** + * Unwraps the node in other words it removes the node but keeps the children. + * + * @example + * node.unwrap(); + * + * @method unwrap + */ + unwrap: function() { + var self = this, node, next; + + for (node = self.firstChild; node; ) { + next = node.next; + self.insert(node, self, true); + node = next; + } + + self.remove(); + }, + + /** + * Removes the node from it's parent. + * + * @example + * node.remove(); + * + * @method remove + * @return {tinymce.html.Node} Current node that got removed. + */ + remove: function() { + var self = this, parent = self.parent, next = self.next, prev = self.prev; + + if (parent) { + if (parent.firstChild === self) { + parent.firstChild = next; + + if (next) { + next.prev = null; + } + } else { + prev.next = next; + } + + if (parent.lastChild === self) { + parent.lastChild = prev; + + if (prev) { + prev.next = null; + } + } else { + next.prev = prev; + } + + self.parent = self.next = self.prev = null; + } + + return self; + }, + + /** + * Appends a new node as a child of the current node. + * + * @example + * node.append(someNode); + * + * @method append + * @param {tinymce.html.Node} node Node to append as a child of the current one. + * @return {tinymce.html.Node} The node that got appended. + */ + append: function(node) { + var self = this, last; + + if (node.parent) { + node.remove(); + } + + last = self.lastChild; + if (last) { + last.next = node; + node.prev = last; + self.lastChild = node; + } else { + self.lastChild = self.firstChild = node; + } + + node.parent = self; + + return node; + }, + + /** + * Inserts a node at a specific position as a child of the current node. + * + * @example + * parentNode.insert(newChildNode, oldChildNode); + * + * @method insert + * @param {tinymce.html.Node} node Node to insert as a child of the current node. + * @param {tinymce.html.Node} ref_node Reference node to set node before/after. + * @param {Boolean} before Optional state to insert the node before the reference node. + * @return {tinymce.html.Node} The node that got inserted. + */ + insert: function(node, ref_node, before) { + var parent; + + if (node.parent) { + node.remove(); + } + + parent = ref_node.parent || this; + + if (before) { + if (ref_node === parent.firstChild) { + parent.firstChild = node; + } else { + ref_node.prev.next = node; + } + + node.prev = ref_node.prev; + node.next = ref_node; + ref_node.prev = node; + } else { + if (ref_node === parent.lastChild) { + parent.lastChild = node; + } else { + ref_node.next.prev = node; + } + + node.next = ref_node.next; + node.prev = ref_node; + ref_node.next = node; + } + + node.parent = parent; + + return node; + }, + + /** + * Get all children by name. + * + * @method getAll + * @param {String} name Name of the child nodes to collect. + * @return {Array} Array with child nodes matchin the specified name. + */ + getAll: function(name) { + var self = this, node, collection = []; + + for (node = self.firstChild; node; node = walk(node, self)) { + if (node.name === name) { + collection.push(node); + } + } + + return collection; + }, + + /** + * Removes all children of the current node. + * + * @method empty + * @return {tinymce.html.Node} The current node that got cleared. + */ + empty: function() { + var self = this, nodes, i, node; + + // Remove all children + if (self.firstChild) { + nodes = []; + + // Collect the children + for (node = self.firstChild; node; node = walk(node, self)) { + nodes.push(node); + } + + // Remove the children + i = nodes.length; + while (i--) { + node = nodes[i]; + node.parent = node.firstChild = node.lastChild = node.next = node.prev = null; + } + } + + self.firstChild = self.lastChild = null; + + return self; + }, + + /** + * Returns true/false if the node is to be considered empty or not. + * + * @example + * node.isEmpty({img: true}); + * @method isEmpty + * @param {Object} elements Name/value object with elements that are automatically treated as non empty elements. + * @return {Boolean} true/false if the node is empty or not. + */ + isEmpty: function(elements) { + var self = this, node = self.firstChild, i, name; + + if (node) { + do { + if (node.type === 1) { + // Ignore bogus elements + if (node.attributes.map['data-mce-bogus']) { + continue; + } + + // Keep empty elements like <img /> + if (elements[node.name]) { + return false; + } + + // Keep elements with data attributes or name attribute like <a name="1"></a> + i = node.attributes.length; + while (i--) { + name = node.attributes[i].name; + if (name === "name" || name.indexOf('data-mce-') === 0) { + return false; + } + } + } + + // Keep comments + if (node.type === 8) { + return false; + } + + // Keep non whitespace text nodes + if ((node.type === 3 && !whiteSpaceRegExp.test(node.value))) { + return false; + } + } while ((node = walk(node, self))); + } + + return true; + }, + + /** + * Walks to the next or previous node and returns that node or null if it wasn't found. + * + * @method walk + * @param {Boolean} prev Optional previous node state defaults to false. + * @return {tinymce.html.Node} Node that is next to or previous of the current node. + */ + walk: function(prev) { + return walk(this, null, prev); + } + }; + + /** + * Creates a node of a specific type. + * + * @static + * @method create + * @param {String} name Name of the node type to create for example "b" or "#text". + * @param {Object} attrs Name/value collection of attributes that will be applied to elements. + */ + Node.create = function(name, attrs) { + var node, attrName; + + // Create node + node = new Node(name, typeLookup[name] || 1); + + // Add attributes if needed + if (attrs) { + for (attrName in attrs) { + node.attr(attrName, attrs[attrName]); + } + } + + return node; + }; + + return Node; +}); + +// Included from: js/tinymce/classes/html/Schema.js + +/** + * Schema.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Schema validator class. + * + * @class tinymce.html.Schema + * @example + * if (tinymce.activeEditor.schema.isValidChild('p', 'span')) + * alert('span is valid child of p.'); + * + * if (tinymce.activeEditor.schema.getElementRule('p')) + * alert('P is a valid element.'); + * + * @class tinymce.html.Schema + * @version 3.4 + */ +define("tinymce/html/Schema", [ + "tinymce/util/Tools" +], function(Tools) { + var mapCache = {}; + var makeMap = Tools.makeMap, each = Tools.each, extend = Tools.extend, explode = Tools.explode, inArray = Tools.inArray; + + function split(items, delim) { + return items ? items.split(delim || ' ') : []; + } + + /** + * Builds a schema lookup table + * + * @private + * @param {String} type html4, html5 or html5-strict schema type. + * @return {Object} Schema lookup table. + */ + function compileSchema(type) { + var schema = {}, globalAttributes, blockContent; + var phrasingContent, flowContent, html4BlockContent, html4PhrasingContent; + + function add(name, attributes, children) { + var ni, i, attributesOrder, args = arguments; + + function arrayToMap(array) { + var map = {}, i, l; + + for (i = 0, l = array.length; i < l; i++) { + map[array[i]] = {}; + } + + return map; + } + + children = children || []; + attributes = attributes || ""; + + if (typeof(children) === "string") { + children = split(children); + } + + // Split string children + for (i = 3; i < args.length; i++) { + if (typeof(args[i]) === "string") { + args[i] = split(args[i]); + } + + children.push.apply(children, args[i]); + } + + name = split(name); + ni = name.length; + while (ni--) { + attributesOrder = [].concat(globalAttributes, split(attributes)); + schema[name[ni]] = { + attributes: arrayToMap(attributesOrder), + attributesOrder: attributesOrder, + children: arrayToMap(children) + }; + } + } + + function addAttrs(name, attributes) { + var ni, schemaItem, i, l; + + name = split(name); + ni = name.length; + attributes = split(attributes); + while (ni--) { + schemaItem = schema[name[ni]]; + for (i = 0, l = attributes.length; i < l; i++) { + schemaItem.attributes[attributes[i]] = {}; + schemaItem.attributesOrder.push(attributes[i]); + } + } + } + + // Use cached schema + if (mapCache[type]) { + return mapCache[type]; + } + + // Attributes present on all elements + globalAttributes = split("id accesskey class dir lang style tabindex title"); + + // Event attributes can be opt-in/opt-out + /*eventAttributes = split("onabort onblur oncancel oncanplay oncanplaythrough onchange onclick onclose oncontextmenu oncuechange " + + "ondblclick ondrag ondragend ondragenter ondragleave ondragover ondragstart ondrop ondurationchange onemptied onended " + + "onerror onfocus oninput oninvalid onkeydown onkeypress onkeyup onload onloadeddata onloadedmetadata onloadstart " + + "onmousedown onmousemove onmouseout onmouseover onmouseup onmousewheel onpause onplay onplaying onprogress onratechange " + + "onreset onscroll onseeked onseeking onseeking onselect onshow onstalled onsubmit onsuspend ontimeupdate onvolumechange " + + "onwaiting" + );*/ + + // Block content elements + blockContent = split( + "address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul" + ); + + // Phrasing content elements from the HTML5 spec (inline) + phrasingContent = split( + "a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd " + + "label map noscript object q s samp script select small span strong sub sup " + + "textarea u var #text #comment" + ); + + // Add HTML5 items to globalAttributes, blockContent, phrasingContent + if (type != "html4") { + globalAttributes.push.apply(globalAttributes, split("contenteditable contextmenu draggable dropzone " + + "hidden spellcheck translate")); + blockContent.push.apply(blockContent, split("article aside details dialog figure header footer hgroup section nav")); + phrasingContent.push.apply(phrasingContent, split("audio canvas command datalist mark meter output progress time wbr " + + "video ruby bdi keygen")); + } + + // Add HTML4 elements unless it's html5-strict + if (type != "html5-strict") { + globalAttributes.push("xml:lang"); + + html4PhrasingContent = split("acronym applet basefont big font strike tt"); + phrasingContent.push.apply(phrasingContent, html4PhrasingContent); + + each(html4PhrasingContent, function(name) { + add(name, "", phrasingContent); + }); + + html4BlockContent = split("center dir isindex noframes"); + blockContent.push.apply(blockContent, html4BlockContent); + + // Flow content elements from the HTML5 spec (block+inline) + flowContent = [].concat(blockContent, phrasingContent); + + each(html4BlockContent, function(name) { + add(name, "", flowContent); + }); + } + + // Flow content elements from the HTML5 spec (block+inline) + flowContent = flowContent || [].concat(blockContent, phrasingContent); + + // HTML4 base schema TODO: Move HTML5 specific attributes to HTML5 specific if statement + // Schema items <element name>, <specific attributes>, <children ..> + add("html", "manifest", "head body"); + add("head", "", "base command link meta noscript script style title"); + add("title hr noscript br"); + add("base", "href target"); + add("link", "href rel media hreflang type sizes hreflang"); + add("meta", "name http-equiv content charset"); + add("style", "media type scoped"); + add("script", "src async defer type charset"); + add("body", "onafterprint onbeforeprint onbeforeunload onblur onerror onfocus " + + "onhashchange onload onmessage onoffline ononline onpagehide onpageshow " + + "onpopstate onresize onscroll onstorage onunload", flowContent); + add("address dt dd div caption", "", flowContent); + add("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn", "", phrasingContent); + add("blockquote", "cite", flowContent); + add("ol", "reversed start type", "li"); + add("ul", "", "li"); + add("li", "value", flowContent); + add("dl", "", "dt dd"); + add("a", "href target rel media hreflang type", phrasingContent); + add("q", "cite", phrasingContent); + add("ins del", "cite datetime", flowContent); + add("img", "src alt usemap ismap width height"); + add("iframe", "src name width height", flowContent); + add("embed", "src type width height"); + add("object", "data type typemustmatch name usemap form width height", flowContent, "param"); + add("param", "name value"); + add("map", "name", flowContent, "area"); + add("area", "alt coords shape href target rel media hreflang type"); + add("table", "border", "caption colgroup thead tfoot tbody tr" + (type == "html4" ? " col" : "")); + add("colgroup", "span", "col"); + add("col", "span"); + add("tbody thead tfoot", "", "tr"); + add("tr", "", "td th"); + add("td", "colspan rowspan headers", flowContent); + add("th", "colspan rowspan headers scope abbr", flowContent); + add("form", "accept-charset action autocomplete enctype method name novalidate target", flowContent); + add("fieldset", "disabled form name", flowContent, "legend"); + add("label", "form for", phrasingContent); + add("input", "accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate " + + "formtarget height list max maxlength min multiple name pattern readonly required size src step type value width" + ); + add("button", "disabled form formaction formenctype formmethod formnovalidate formtarget name type value", + type == "html4" ? flowContent : phrasingContent); + add("select", "disabled form multiple name required size", "option optgroup"); + add("optgroup", "disabled label", "option"); + add("option", "disabled label selected value"); + add("textarea", "cols dirname disabled form maxlength name readonly required rows wrap"); + add("menu", "type label", flowContent, "li"); + add("noscript", "", flowContent); + + // Extend with HTML5 elements + if (type != "html4") { + add("wbr"); + add("ruby", "", phrasingContent, "rt rp"); + add("figcaption", "", flowContent); + add("mark rt rp summary bdi", "", phrasingContent); + add("canvas", "width height", flowContent); + add("video", "src crossorigin poster preload autoplay mediagroup loop " + + "muted controls width height", flowContent, "track source"); + add("audio", "src crossorigin preload autoplay mediagroup loop muted controls", flowContent, "track source"); + add("source", "src type media"); + add("track", "kind src srclang label default"); + add("datalist", "", phrasingContent, "option"); + add("article section nav aside header footer", "", flowContent); + add("hgroup", "", "h1 h2 h3 h4 h5 h6"); + add("figure", "", flowContent, "figcaption"); + add("time", "datetime", phrasingContent); + add("dialog", "open", flowContent); + add("command", "type label icon disabled checked radiogroup command"); + add("output", "for form name", phrasingContent); + add("progress", "value max", phrasingContent); + add("meter", "value min max low high optimum", phrasingContent); + add("details", "open", flowContent, "summary"); + add("keygen", "autofocus challenge disabled form keytype name"); + } + + // Extend with HTML4 attributes unless it's html5-strict + if (type != "html5-strict") { + addAttrs("script", "language xml:space"); + addAttrs("style", "xml:space"); + addAttrs("object", "declare classid codebase codetype archive standby align border hspace vspace"); + addAttrs("param", "valuetype type"); + addAttrs("a", "charset name rev shape coords"); + addAttrs("br", "clear"); + addAttrs("applet", "codebase archive code object alt name width height align hspace vspace"); + addAttrs("img", "name longdesc align border hspace vspace"); + addAttrs("iframe", "longdesc frameborder marginwidth marginheight scrolling align"); + addAttrs("font basefont", "size color face"); + addAttrs("input", "usemap align"); + addAttrs("select", "onchange"); + addAttrs("textarea"); + addAttrs("h1 h2 h3 h4 h5 h6 div p legend caption", "align"); + addAttrs("ul", "type compact"); + addAttrs("li", "type"); + addAttrs("ol dl menu dir", "compact"); + addAttrs("pre", "width xml:space"); + addAttrs("hr", "align noshade size width"); + addAttrs("isindex", "prompt"); + addAttrs("table", "summary width frame rules cellspacing cellpadding align bgcolor"); + addAttrs("col", "width align char charoff valign"); + addAttrs("colgroup", "width align char charoff valign"); + addAttrs("thead", "align char charoff valign"); + addAttrs("tr", "align char charoff valign bgcolor"); + addAttrs("th", "axis align char charoff valign nowrap bgcolor width height"); + addAttrs("form", "accept"); + addAttrs("td", "abbr axis scope align char charoff valign nowrap bgcolor width height"); + addAttrs("tfoot", "align char charoff valign"); + addAttrs("tbody", "align char charoff valign"); + addAttrs("area", "nohref"); + addAttrs("body", "background bgcolor text link vlink alink"); + } + + // Extend with HTML5 attributes unless it's html4 + if (type != "html4") { + addAttrs("input button select textarea", "autofocus"); + addAttrs("input textarea", "placeholder"); + addAttrs("a", "download"); + addAttrs("link script img", "crossorigin"); + addAttrs("iframe", "srcdoc sandbox seamless allowfullscreen"); + } + + // Special: iframe, ruby, video, audio, label + + // Delete children of the same name from it's parent + // For example: form can't have a child of the name form + each(split('a form meter progress dfn'), function(name) { + if (schema[name]) { + delete schema[name].children[name]; + } + }); + + // Delete header, footer, sectioning and heading content descendants + /*each('dt th address', function(name) { + delete schema[name].children[name]; + });*/ + + // Caption can't have tables + delete schema.caption.children.table; + + // TODO: LI:s can only have value if parent is OL + + // TODO: Handle transparent elements + // a ins del canvas map + + mapCache[type] = schema; + + return schema; + } + + /** + * Constructs a new Schema instance. + * + * @constructor + * @method Schema + * @param {Object} settings Name/value settings object. + */ + return function(settings) { + var self = this, elements = {}, children = {}, patternElements = [], validStyles, schemaItems; + var whiteSpaceElementsMap, selfClosingElementsMap, shortEndedElementsMap, boolAttrMap; + var blockElementsMap, nonEmptyElementsMap, textBlockElementsMap, customElementsMap = {}, specialElements = {}; + + // Creates an lookup table map object for the specified option or the default value + function createLookupTable(option, default_value, extendWith) { + var value = settings[option]; + + if (!value) { + // Get cached default map or make it if needed + value = mapCache[option]; + + if (!value) { + value = makeMap(default_value, ' ', makeMap(default_value.toUpperCase(), ' ')); + value = extend(value, extendWith); + + mapCache[option] = value; + } + } else { + // Create custom map + value = makeMap(value, ',', makeMap(value.toUpperCase(), ' ')); + } + + return value; + } + + settings = settings || {}; + schemaItems = compileSchema(settings.schema); + + // Allow all elements and attributes if verify_html is set to false + if (settings.verify_html === false) { + settings.valid_elements = '*[*]'; + } + + // Build styles list + if (settings.valid_styles) { + validStyles = {}; + + // Convert styles into a rule list + each(settings.valid_styles, function(value, key) { + validStyles[key] = explode(value); + }); + } + + // Setup map objects + whiteSpaceElementsMap = createLookupTable('whitespace_elements', 'pre script noscript style textarea video audio iframe object'); + selfClosingElementsMap = createLookupTable('self_closing_elements', 'colgroup dd dt li option p td tfoot th thead tr'); + shortEndedElementsMap = createLookupTable('short_ended_elements', 'area base basefont br col frame hr img input isindex link ' + + 'meta param embed source wbr track'); + boolAttrMap = createLookupTable('boolean_attributes', 'checked compact declare defer disabled ismap multiple nohref noresize ' + + 'noshade nowrap readonly selected autoplay loop controls'); + nonEmptyElementsMap = createLookupTable('non_empty_elements', 'td th iframe video audio object script', shortEndedElementsMap); + textBlockElementsMap = createLookupTable('text_block_elements', 'h1 h2 h3 h4 h5 h6 p div address pre form ' + + 'blockquote center dir fieldset header footer article section hgroup aside nav figure'); + blockElementsMap = createLookupTable('block_elements', 'hr table tbody thead tfoot ' + + 'th tr td li ol ul caption dl dt dd noscript menu isindex option ' + + 'datalist select optgroup', textBlockElementsMap); + + each((settings.special || 'script noscript style textarea').split(' '), function(name) { + specialElements[name] = new RegExp('<\/' + name + '[^>]*>','gi'); + }); + + // Converts a wildcard expression string to a regexp for example *a will become /.*a/. + function patternToRegExp(str) { + return new RegExp('^' + str.replace(/([?+*])/g, '.$1') + '$'); + } + + // Parses the specified valid_elements string and adds to the current rules + // This function is a bit hard to read since it's heavily optimized for speed + function addValidElements(valid_elements) { + var ei, el, ai, al, matches, element, attr, attrData, elementName, attrName, attrType, attributes, attributesOrder, + prefix, outputName, globalAttributes, globalAttributesOrder, key, value, + elementRuleRegExp = /^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/, + attrRuleRegExp = /^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/, + hasPatternsRegExp = /[*?+]/; + + if (valid_elements) { + // Split valid elements into an array with rules + valid_elements = split(valid_elements, ','); + + if (elements['@']) { + globalAttributes = elements['@'].attributes; + globalAttributesOrder = elements['@'].attributesOrder; + } + + // Loop all rules + for (ei = 0, el = valid_elements.length; ei < el; ei++) { + // Parse element rule + matches = elementRuleRegExp.exec(valid_elements[ei]); + if (matches) { + // Setup local names for matches + prefix = matches[1]; + elementName = matches[2]; + outputName = matches[3]; + attrData = matches[5]; + + // Create new attributes and attributesOrder + attributes = {}; + attributesOrder = []; + + // Create the new element + element = { + attributes: attributes, + attributesOrder: attributesOrder + }; + + // Padd empty elements prefix + if (prefix === '#') { + element.paddEmpty = true; + } + + // Remove empty elements prefix + if (prefix === '-') { + element.removeEmpty = true; + } + + if (matches[4] === '!') { + element.removeEmptyAttrs = true; + } + + // Copy attributes from global rule into current rule + if (globalAttributes) { + for (key in globalAttributes) { + attributes[key] = globalAttributes[key]; + } + + attributesOrder.push.apply(attributesOrder, globalAttributesOrder); + } + + // Attributes defined + if (attrData) { + attrData = split(attrData, '|'); + for (ai = 0, al = attrData.length; ai < al; ai++) { + matches = attrRuleRegExp.exec(attrData[ai]); + if (matches) { + attr = {}; + attrType = matches[1]; + attrName = matches[2].replace(/::/g, ':'); + prefix = matches[3]; + value = matches[4]; + + // Required + if (attrType === '!') { + element.attributesRequired = element.attributesRequired || []; + element.attributesRequired.push(attrName); + attr.required = true; + } + + // Denied from global + if (attrType === '-') { + delete attributes[attrName]; + attributesOrder.splice(inArray(attributesOrder, attrName), 1); + continue; + } + + // Default value + if (prefix) { + // Default value + if (prefix === '=') { + element.attributesDefault = element.attributesDefault || []; + element.attributesDefault.push({name: attrName, value: value}); + attr.defaultValue = value; + } + + // Forced value + if (prefix === ':') { + element.attributesForced = element.attributesForced || []; + element.attributesForced.push({name: attrName, value: value}); + attr.forcedValue = value; + } + + // Required values + if (prefix === '<') { + attr.validValues = makeMap(value, '?'); + } + } + + // Check for attribute patterns + if (hasPatternsRegExp.test(attrName)) { + element.attributePatterns = element.attributePatterns || []; + attr.pattern = patternToRegExp(attrName); + element.attributePatterns.push(attr); + } else { + // Add attribute to order list if it doesn't already exist + if (!attributes[attrName]) { + attributesOrder.push(attrName); + } + + attributes[attrName] = attr; + } + } + } + } + + // Global rule, store away these for later usage + if (!globalAttributes && elementName == '@') { + globalAttributes = attributes; + globalAttributesOrder = attributesOrder; + } + + // Handle substitute elements such as b/strong + if (outputName) { + element.outputName = elementName; + elements[outputName] = element; + } + + // Add pattern or exact element + if (hasPatternsRegExp.test(elementName)) { + element.pattern = patternToRegExp(elementName); + patternElements.push(element); + } else { + elements[elementName] = element; + } + } + } + } + } + + function setValidElements(valid_elements) { + elements = {}; + patternElements = []; + + addValidElements(valid_elements); + + each(schemaItems, function(element, name) { + children[name] = element.children; + }); + } + + // Adds custom non HTML elements to the schema + function addCustomElements(custom_elements) { + var customElementRegExp = /^(~)?(.+)$/; + + if (custom_elements) { + // Flush cached items since we are altering the default maps + mapCache.text_block_elements = mapCache.block_elements = null; + + each(split(custom_elements, ','), function(rule) { + var matches = customElementRegExp.exec(rule), + inline = matches[1] === '~', + cloneName = inline ? 'span' : 'div', + name = matches[2]; + + children[name] = children[cloneName]; + customElementsMap[name] = cloneName; + + // If it's not marked as inline then add it to valid block elements + if (!inline) { + blockElementsMap[name.toUpperCase()] = {}; + blockElementsMap[name] = {}; + } + + // Add elements clone if needed + if (!elements[name]) { + var customRule = elements[cloneName]; + + customRule = extend({}, customRule); + delete customRule.removeEmptyAttrs; + delete customRule.removeEmpty; + + elements[name] = customRule; + } + + // Add custom elements at span/div positions + each(children, function(element, elmName) { + if (element[cloneName]) { + children[elmName] = element = extend({}, children[elmName]); + element[name] = element[cloneName]; + } + }); + }); + } + } + + // Adds valid children to the schema object + function addValidChildren(valid_children) { + var childRuleRegExp = /^([+\-]?)(\w+)\[([^\]]+)\]$/; + + if (valid_children) { + each(split(valid_children, ','), function(rule) { + var matches = childRuleRegExp.exec(rule), parent, prefix; + + if (matches) { + prefix = matches[1]; + + // Add/remove items from default + if (prefix) { + parent = children[matches[2]]; + } else { + parent = children[matches[2]] = {'#comment': {}}; + } + + parent = children[matches[2]]; + + each(split(matches[3], '|'), function(child) { + if (prefix === '-') { + // Clone the element before we delete + // things in it to not mess up default schemas + children[matches[2]] = parent = extend({}, children[matches[2]]); + + delete parent[child]; + } else { + parent[child] = {}; + } + }); + } + }); + } + } + + function getElementRule(name) { + var element = elements[name], i; + + // Exact match found + if (element) { + return element; + } + + // No exact match then try the patterns + i = patternElements.length; + while (i--) { + element = patternElements[i]; + + if (element.pattern.test(name)) { + return element; + } + } + } + + if (!settings.valid_elements) { + // No valid elements defined then clone the elements from the schema spec + each(schemaItems, function(element, name) { + elements[name] = { + attributes: element.attributes, + attributesOrder: element.attributesOrder + }; + + children[name] = element.children; + }); + + // Switch these on HTML4 + if (settings.schema != "html5") { + each(split('strong/b em/i'), function(item) { + item = split(item, '/'); + elements[item[1]].outputName = item[0]; + }); + } + + // Add default alt attribute for images + elements.img.attributesDefault = [{name: 'alt', value: ''}]; + + // Remove these if they are empty by default + each(split('ol ul sub sup blockquote span font a table tbody tr strong em b i'), function(name) { + if (elements[name]) { + elements[name].removeEmpty = true; + } + }); + + // Padd these by default + each(split('p h1 h2 h3 h4 h5 h6 th td pre div address caption'), function(name) { + elements[name].paddEmpty = true; + }); + + // Remove these if they have no attributes + each(split('span'), function(name) { + elements[name].removeEmptyAttrs = true; + }); + + // Remove these by default + // TODO: Reenable in 4.1 + /*each(split('script style'), function(name) { + delete elements[name]; + });*/ + } else { + setValidElements(settings.valid_elements); + } + + addCustomElements(settings.custom_elements); + addValidChildren(settings.valid_children); + addValidElements(settings.extended_valid_elements); + + // Todo: Remove this when we fix list handling to be valid + addValidChildren('+ol[ul|ol],+ul[ul|ol]'); + + // Delete invalid elements + if (settings.invalid_elements) { + each(explode(settings.invalid_elements), function(item) { + if (elements[item]) { + delete elements[item]; + } + }); + } + + // If the user didn't allow span only allow internal spans + if (!getElementRule('span')) { + addValidElements('span[!data-mce-type|*]'); + } + + /** + * Name/value map object with valid parents and children to those parents. + * + * @example + * children = { + * div:{p:{}, h1:{}} + * }; + * @field children + * @type Object + */ + self.children = children; + + /** + * Name/value map object with valid styles for each element. + * + * @field styles + * @type Object + */ + self.styles = validStyles; + + /** + * Returns a map with boolean attributes. + * + * @method getBoolAttrs + * @return {Object} Name/value lookup map for boolean attributes. + */ + self.getBoolAttrs = function() { + return boolAttrMap; + }; + + /** + * Returns a map with block elements. + * + * @method getBlockElements + * @return {Object} Name/value lookup map for block elements. + */ + self.getBlockElements = function() { + return blockElementsMap; + }; + + /** + * Returns a map with text block elements. Such as: p,h1-h6,div,address + * + * @method getTextBlockElements + * @return {Object} Name/value lookup map for block elements. + */ + self.getTextBlockElements = function() { + return textBlockElementsMap; + }; + + /** + * Returns a map with short ended elements such as BR or IMG. + * + * @method getShortEndedElements + * @return {Object} Name/value lookup map for short ended elements. + */ + self.getShortEndedElements = function() { + return shortEndedElementsMap; + }; + + /** + * Returns a map with self closing tags such as <li>. + * + * @method getSelfClosingElements + * @return {Object} Name/value lookup map for self closing tags elements. + */ + self.getSelfClosingElements = function() { + return selfClosingElementsMap; + }; + + /** + * Returns a map with elements that should be treated as contents regardless if it has text + * content in them or not such as TD, VIDEO or IMG. + * + * @method getNonEmptyElements + * @return {Object} Name/value lookup map for non empty elements. + */ + self.getNonEmptyElements = function() { + return nonEmptyElementsMap; + }; + + /** + * Returns a map with elements where white space is to be preserved like PRE or SCRIPT. + * + * @method getWhiteSpaceElements + * @return {Object} Name/value lookup map for white space elements. + */ + self.getWhiteSpaceElements = function() { + return whiteSpaceElementsMap; + }; + + /** + * Returns a map with special elements. These are elements that needs to be parsed + * in a special way such as script, style, textarea etc. The map object values + * are regexps used to find the end of the element. + * + * @method getSpecialElements + * @return {Object} Name/value lookup map for special elements. + */ + self.getSpecialElements = function() { + return specialElements; + }; + + /** + * Returns true/false if the specified element and it's child is valid or not + * according to the schema. + * + * @method isValidChild + * @param {String} name Element name to check for. + * @param {String} child Element child to verify. + * @return {Boolean} True/false if the element is a valid child of the specified parent. + */ + self.isValidChild = function(name, child) { + var parent = children[name]; + + return !!(parent && parent[child]); + }; + + /** + * Returns true/false if the specified element name and optional attribute is + * valid according to the schema. + * + * @method isValid + * @param {String} name Name of element to check. + * @param {String} attr Optional attribute name to check for. + * @return {Boolean} True/false if the element and attribute is valid. + */ + self.isValid = function(name, attr) { + var attrPatterns, i, rule = getElementRule(name); + + // Check if it's a valid element + if (rule) { + if (attr) { + // Check if attribute name exists + if (rule.attributes[attr]) { + return true; + } + + // Check if attribute matches a regexp pattern + attrPatterns = rule.attributePatterns; + if (attrPatterns) { + i = attrPatterns.length; + while (i--) { + if (attrPatterns[i].pattern.test(name)) { + return true; + } + } + } + } else { + return true; + } + } + + // No match + return false; + }; + + /** + * Returns true/false if the specified element is valid or not + * according to the schema. + * + * @method getElementRule + * @param {String} name Element name to check for. + * @return {Object} Element object or undefined if the element isn't valid. + */ + self.getElementRule = getElementRule; + + /** + * Returns an map object of all custom elements. + * + * @method getCustomElements + * @return {Object} Name/value map object of all custom elements. + */ + self.getCustomElements = function() { + return customElementsMap; + }; + + /** + * Parses a valid elements string and adds it to the schema. The valid elements + * format is for example "element[attr=default|otherattr]". + * Existing rules will be replaced with the ones specified, so this extends the schema. + * + * @method addValidElements + * @param {String} valid_elements String in the valid elements format to be parsed. + */ + self.addValidElements = addValidElements; + + /** + * Parses a valid elements string and sets it to the schema. The valid elements + * format is for example "element[attr=default|otherattr]". + * Existing rules will be replaced with the ones specified, so this extends the schema. + * + * @method setValidElements + * @param {String} valid_elements String in the valid elements format to be parsed. + */ + self.setValidElements = setValidElements; + + /** + * Adds custom non HTML elements to the schema. + * + * @method addCustomElements + * @param {String} custom_elements Comma separated list of custom elements to add. + */ + self.addCustomElements = addCustomElements; + + /** + * Parses a valid children string and adds them to the schema structure. The valid children + * format is for example: "element[child1|child2]". + * + * @method addValidChildren + * @param {String} valid_children Valid children elements string to parse + */ + self.addValidChildren = addValidChildren; + + self.elements = elements; + }; +}); + +// Included from: js/tinymce/classes/html/SaxParser.js + +/** + * SaxParser.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*eslint max-depth:[2, 9] */ + +/** + * This class parses HTML code using pure JavaScript and executes various events for each item it finds. It will + * always execute the events in the right order for tag soup code like <b><p></b></p>. It will also remove elements + * and attributes that doesn't fit the schema if the validate setting is enabled. + * + * @example + * var parser = new tinymce.html.SaxParser({ + * validate: true, + * + * comment: function(text) { + * console.log('Comment:', text); + * }, + * + * cdata: function(text) { + * console.log('CDATA:', text); + * }, + * + * text: function(text, raw) { + * console.log('Text:', text, 'Raw:', raw); + * }, + * + * start: function(name, attrs, empty) { + * console.log('Start:', name, attrs, empty); + * }, + * + * end: function(name) { + * console.log('End:', name); + * }, + * + * pi: function(name, text) { + * console.log('PI:', name, text); + * }, + * + * doctype: function(text) { + * console.log('DocType:', text); + * } + * }, schema); + * @class tinymce.html.SaxParser + * @version 3.4 + */ +define("tinymce/html/SaxParser", [ + "tinymce/html/Schema", + "tinymce/html/Entities", + "tinymce/util/Tools" +], function(Schema, Entities, Tools) { + var each = Tools.each; + + /** + * Constructs a new SaxParser instance. + * + * @constructor + * @method SaxParser + * @param {Object} settings Name/value collection of settings. comment, cdata, text, start and end are callbacks. + * @param {tinymce.html.Schema} schema HTML Schema class to use when parsing. + */ + return function(settings, schema) { + var self = this; + + function noop() {} + + settings = settings || {}; + self.schema = schema = schema || new Schema(); + + if (settings.fix_self_closing !== false) { + settings.fix_self_closing = true; + } + + // Add handler functions from settings and setup default handlers + each('comment cdata text start end pi doctype'.split(' '), function(name) { + if (name) { + self[name] = settings[name] || noop; + } + }); + + /** + * Parses the specified HTML string and executes the callbacks for each item it finds. + * + * @example + * new SaxParser({...}).parse('<b>text</b>'); + * @method parse + * @param {String} html Html string to sax parse. + */ + self.parse = function(html) { + var self = this, matches, index = 0, value, endRegExp, stack = [], attrList, i, text, name; + var isInternalElement, removeInternalElements, shortEndedElements, fillAttrsMap, isShortEnded; + var validate, elementRule, isValidElement, attr, attribsValue, validAttributesMap, validAttributePatterns; + var attributesRequired, attributesDefault, attributesForced; + var anyAttributesRequired, selfClosing, tokenRegExp, attrRegExp, specialElements, attrValue, idCount = 0; + var decode = Entities.decode, fixSelfClosing, filteredUrlAttrs = Tools.makeMap('src,href'); + var scriptUriRegExp = /(java|vb)script:/i; + + function processEndTag(name) { + var pos, i; + + // Find position of parent of the same type + pos = stack.length; + while (pos--) { + if (stack[pos].name === name) { + break; + } + } + + // Found parent + if (pos >= 0) { + // Close all the open elements + for (i = stack.length - 1; i >= pos; i--) { + name = stack[i]; + + if (name.valid) { + self.end(name.name); + } + } + + // Remove the open elements from the stack + stack.length = pos; + } + } + + function parseAttribute(match, name, value, val2, val3) { + var attrRule, i, trimRegExp = /[\s\u0000-\u001F]+/g; + + name = name.toLowerCase(); + value = name in fillAttrsMap ? name : decode(value || val2 || val3 || ''); // Handle boolean attribute than value attribute + + // Validate name and value pass through all data- attributes + if (validate && !isInternalElement && name.indexOf('data-') !== 0) { + attrRule = validAttributesMap[name]; + + // Find rule by pattern matching + if (!attrRule && validAttributePatterns) { + i = validAttributePatterns.length; + while (i--) { + attrRule = validAttributePatterns[i]; + if (attrRule.pattern.test(name)) { + break; + } + } + + // No rule matched + if (i === -1) { + attrRule = null; + } + } + + // No attribute rule found + if (!attrRule) { + return; + } + + // Validate value + if (attrRule.validValues && !(value in attrRule.validValues)) { + return; + } + } + + // Block any javascript: urls + if (filteredUrlAttrs[name] && !settings.allow_script_urls) { + var uri = value.replace(trimRegExp, ''); + + try { + // Might throw malformed URI sequence + uri = decodeURIComponent(uri); + if (scriptUriRegExp.test(uri)) { + return; + } + } catch (ex) { + // Fallback to non UTF-8 decoder + uri = unescape(uri); + if (scriptUriRegExp.test(uri)) { + return; + } + } + } + + // Add attribute to list and map + attrList.map[name] = value; + attrList.push({ + name: name, + value: value + }); + } + + // Precompile RegExps and map objects + tokenRegExp = new RegExp('<(?:' + + '(?:!--([\\w\\W]*?)-->)|' + // Comment + '(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|' + // CDATA + '(?:!DOCTYPE([\\w\\W]*?)>)|' + // DOCTYPE + '(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|' + // PI + '(?:\\/([^>]+)>)|' + // End element + '(?:([A-Za-z0-9\\-\\:\\.]+)((?:\\s+[^"\'>]+(?:(?:"[^"]*")|(?:\'[^\']*\')|[^>]*))*|\\/|\\s+)>)' + // Start element + ')', 'g'); + + attrRegExp = /([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g; + + // Setup lookup tables for empty elements and boolean attributes + shortEndedElements = schema.getShortEndedElements(); + selfClosing = settings.self_closing_elements || schema.getSelfClosingElements(); + fillAttrsMap = schema.getBoolAttrs(); + validate = settings.validate; + removeInternalElements = settings.remove_internals; + fixSelfClosing = settings.fix_self_closing; + specialElements = schema.getSpecialElements(); + + while ((matches = tokenRegExp.exec(html))) { + // Text + if (index < matches.index) { + self.text(decode(html.substr(index, matches.index - index))); + } + + if ((value = matches[6])) { // End element + value = value.toLowerCase(); + + // IE will add a ":" in front of elements it doesn't understand like custom elements or HTML5 elements + if (value.charAt(0) === ':') { + value = value.substr(1); + } + + processEndTag(value); + } else if ((value = matches[7])) { // Start element + value = value.toLowerCase(); + + // IE will add a ":" in front of elements it doesn't understand like custom elements or HTML5 elements + if (value.charAt(0) === ':') { + value = value.substr(1); + } + + isShortEnded = value in shortEndedElements; + + // Is self closing tag for example an <li> after an open <li> + if (fixSelfClosing && selfClosing[value] && stack.length > 0 && stack[stack.length - 1].name === value) { + processEndTag(value); + } + + // Validate element + if (!validate || (elementRule = schema.getElementRule(value))) { + isValidElement = true; + + // Grab attributes map and patters when validation is enabled + if (validate) { + validAttributesMap = elementRule.attributes; + validAttributePatterns = elementRule.attributePatterns; + } + + // Parse attributes + if ((attribsValue = matches[8])) { + isInternalElement = attribsValue.indexOf('data-mce-type') !== -1; // Check if the element is an internal element + + // If the element has internal attributes then remove it if we are told to do so + if (isInternalElement && removeInternalElements) { + isValidElement = false; + } + + attrList = []; + attrList.map = {}; + + attribsValue.replace(attrRegExp, parseAttribute); + } else { + attrList = []; + attrList.map = {}; + } + + // Process attributes if validation is enabled + if (validate && !isInternalElement) { + attributesRequired = elementRule.attributesRequired; + attributesDefault = elementRule.attributesDefault; + attributesForced = elementRule.attributesForced; + anyAttributesRequired = elementRule.removeEmptyAttrs; + + // Check if any attribute exists + if (anyAttributesRequired && !attrList.length) { + isValidElement = false; + } + + // Handle forced attributes + if (attributesForced) { + i = attributesForced.length; + while (i--) { + attr = attributesForced[i]; + name = attr.name; + attrValue = attr.value; + + if (attrValue === '{$uid}') { + attrValue = 'mce_' + idCount++; + } + + attrList.map[name] = attrValue; + attrList.push({name: name, value: attrValue}); + } + } + + // Handle default attributes + if (attributesDefault) { + i = attributesDefault.length; + while (i--) { + attr = attributesDefault[i]; + name = attr.name; + + if (!(name in attrList.map)) { + attrValue = attr.value; + + if (attrValue === '{$uid}') { + attrValue = 'mce_' + idCount++; + } + + attrList.map[name] = attrValue; + attrList.push({name: name, value: attrValue}); + } + } + } + + // Handle required attributes + if (attributesRequired) { + i = attributesRequired.length; + while (i--) { + if (attributesRequired[i] in attrList.map) { + break; + } + } + + // None of the required attributes where found + if (i === -1) { + isValidElement = false; + } + } + + // Invalidate element if it's marked as bogus + if (attrList.map['data-mce-bogus']) { + isValidElement = false; + } + } + + if (isValidElement) { + self.start(value, attrList, isShortEnded); + } + } else { + isValidElement = false; + } + + // Treat script, noscript and style a bit different since they may include code that looks like elements + if ((endRegExp = specialElements[value])) { + endRegExp.lastIndex = index = matches.index + matches[0].length; + + if ((matches = endRegExp.exec(html))) { + if (isValidElement) { + text = html.substr(index, matches.index - index); + } + + index = matches.index + matches[0].length; + } else { + text = html.substr(index); + index = html.length; + } + + if (isValidElement) { + if (text.length > 0) { + self.text(text, true); + } + + self.end(value); + } + + tokenRegExp.lastIndex = index; + continue; + } + + // Push value on to stack + if (!isShortEnded) { + if (!attribsValue || attribsValue.indexOf('/') != attribsValue.length - 1) { + stack.push({name: value, valid: isValidElement}); + } else if (isValidElement) { + self.end(value); + } + } + } else if ((value = matches[1])) { // Comment + // Padd comment value to avoid browsers from parsing invalid comments as HTML + if (value.charAt(0) === '>') { + value = ' ' + value; + } + + if (!settings.allow_conditional_comments && value.substr(0, 3) === '[if') { + value = ' ' + value; + } + + self.comment(value); + } else if ((value = matches[2])) { // CDATA + self.cdata(value); + } else if ((value = matches[3])) { // DOCTYPE + self.doctype(value); + } else if ((value = matches[4])) { // PI + self.pi(value, matches[5]); + } + + index = matches.index + matches[0].length; + } + + // Text + if (index < html.length) { + self.text(decode(html.substr(index))); + } + + // Close any open elements + for (i = stack.length - 1; i >= 0; i--) { + value = stack[i]; + + if (value.valid) { + self.end(value.name); + } + } + }; + }; +}); + +// Included from: js/tinymce/classes/html/DomParser.js + +/** + * DomParser.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class parses HTML code into a DOM like structure of nodes it will remove redundant whitespace and make + * sure that the node tree is valid according to the specified schema. + * So for example: <p>a<p>b</p>c</p> will become <p>a</p><p>b</p><p>c</p> + * + * @example + * var parser = new tinymce.html.DomParser({validate: true}, schema); + * var rootNode = parser.parse('<h1>content</h1>'); + * + * @class tinymce.html.DomParser + * @version 3.4 + */ +define("tinymce/html/DomParser", [ + "tinymce/html/Node", + "tinymce/html/Schema", + "tinymce/html/SaxParser", + "tinymce/util/Tools" +], function(Node, Schema, SaxParser, Tools) { + var makeMap = Tools.makeMap, each = Tools.each, explode = Tools.explode, extend = Tools.extend; + + /** + * Constructs a new DomParser instance. + * + * @constructor + * @method DomParser + * @param {Object} settings Name/value collection of settings. comment, cdata, text, start and end are callbacks. + * @param {tinymce.html.Schema} schema HTML Schema class to use when parsing. + */ + return function(settings, schema) { + var self = this, nodeFilters = {}, attributeFilters = [], matchedNodes = {}, matchedAttributes = {}; + + settings = settings || {}; + settings.validate = "validate" in settings ? settings.validate : true; + settings.root_name = settings.root_name || 'body'; + self.schema = schema = schema || new Schema(); + + function fixInvalidChildren(nodes) { + var ni, node, parent, parents, newParent, currentNode, tempNode, childNode, i; + var nonEmptyElements, nonSplitableElements, textBlockElements, sibling, nextNode; + + nonSplitableElements = makeMap('tr,td,th,tbody,thead,tfoot,table'); + nonEmptyElements = schema.getNonEmptyElements(); + textBlockElements = schema.getTextBlockElements(); + + for (ni = 0; ni < nodes.length; ni++) { + node = nodes[ni]; + + // Already removed or fixed + if (!node.parent || node.fixed) { + continue; + } + + // If the invalid element is a text block and the text block is within a parent LI element + // Then unwrap the first text block and convert other sibling text blocks to LI elements similar to Word/Open Office + if (textBlockElements[node.name] && node.parent.name == 'li') { + // Move sibling text blocks after LI element + sibling = node.next; + while (sibling) { + if (textBlockElements[sibling.name]) { + sibling.name = 'li'; + sibling.fixed = true; + node.parent.insert(sibling, node.parent); + } else { + break; + } + + sibling = sibling.next; + } + + // Unwrap current text block + node.unwrap(node); + continue; + } + + // Get list of all parent nodes until we find a valid parent to stick the child into + parents = [node]; + for (parent = node.parent; parent && !schema.isValidChild(parent.name, node.name) && + !nonSplitableElements[parent.name]; parent = parent.parent) { + parents.push(parent); + } + + // Found a suitable parent + if (parent && parents.length > 1) { + // Reverse the array since it makes looping easier + parents.reverse(); + + // Clone the related parent and insert that after the moved node + newParent = currentNode = self.filterNode(parents[0].clone()); + + // Start cloning and moving children on the left side of the target node + for (i = 0; i < parents.length - 1; i++) { + if (schema.isValidChild(currentNode.name, parents[i].name)) { + tempNode = self.filterNode(parents[i].clone()); + currentNode.append(tempNode); + } else { + tempNode = currentNode; + } + + for (childNode = parents[i].firstChild; childNode && childNode != parents[i + 1]; ) { + nextNode = childNode.next; + tempNode.append(childNode); + childNode = nextNode; + } + + currentNode = tempNode; + } + + if (!newParent.isEmpty(nonEmptyElements)) { + parent.insert(newParent, parents[0], true); + parent.insert(node, newParent); + } else { + parent.insert(node, parents[0], true); + } + + // Check if the element is empty by looking through it's contents and special treatment for <p><br /></p> + parent = parents[0]; + if (parent.isEmpty(nonEmptyElements) || parent.firstChild === parent.lastChild && parent.firstChild.name === 'br') { + parent.empty().remove(); + } + } else if (node.parent) { + // If it's an LI try to find a UL/OL for it or wrap it + if (node.name === 'li') { + sibling = node.prev; + if (sibling && (sibling.name === 'ul' || sibling.name === 'ul')) { + sibling.append(node); + continue; + } + + sibling = node.next; + if (sibling && (sibling.name === 'ul' || sibling.name === 'ul')) { + sibling.insert(node, sibling.firstChild, true); + continue; + } + + node.wrap(self.filterNode(new Node('ul', 1))); + continue; + } + + // Try wrapping the element in a DIV + if (schema.isValidChild(node.parent.name, 'div') && schema.isValidChild('div', node.name)) { + node.wrap(self.filterNode(new Node('div', 1))); + } else { + // We failed wrapping it, then remove or unwrap it + if (node.name === 'style' || node.name === 'script') { + node.empty().remove(); + } else { + node.unwrap(); + } + } + } + } + } + + /** + * Runs the specified node though the element and attributes filters. + * + * @method filterNode + * @param {tinymce.html.Node} Node the node to run filters on. + * @return {tinymce.html.Node} The passed in node. + */ + self.filterNode = function(node) { + var i, name, list; + + // Run element filters + if (name in nodeFilters) { + list = matchedNodes[name]; + + if (list) { + list.push(node); + } else { + matchedNodes[name] = [node]; + } + } + + // Run attribute filters + i = attributeFilters.length; + while (i--) { + name = attributeFilters[i].name; + + if (name in node.attributes.map) { + list = matchedAttributes[name]; + + if (list) { + list.push(node); + } else { + matchedAttributes[name] = [node]; + } + } + } + + return node; + }; + + /** + * Adds a node filter function to the parser, the parser will collect the specified nodes by name + * and then execute the callback ones it has finished parsing the document. + * + * @example + * parser.addNodeFilter('p,h1', function(nodes, name) { + * for (var i = 0; i < nodes.length; i++) { + * console.log(nodes[i].name); + * } + * }); + * @method addNodeFilter + * @method {String} name Comma separated list of nodes to collect. + * @param {function} callback Callback function to execute once it has collected nodes. + */ + self.addNodeFilter = function(name, callback) { + each(explode(name), function(name) { + var list = nodeFilters[name]; + + if (!list) { + nodeFilters[name] = list = []; + } + + list.push(callback); + }); + }; + + /** + * Adds a attribute filter function to the parser, the parser will collect nodes that has the specified attributes + * and then execute the callback ones it has finished parsing the document. + * + * @example + * parser.addAttributeFilter('src,href', function(nodes, name) { + * for (var i = 0; i < nodes.length; i++) { + * console.log(nodes[i].name); + * } + * }); + * @method addAttributeFilter + * @method {String} name Comma separated list of nodes to collect. + * @param {function} callback Callback function to execute once it has collected nodes. + */ + self.addAttributeFilter = function(name, callback) { + each(explode(name), function(name) { + var i; + + for (i = 0; i < attributeFilters.length; i++) { + if (attributeFilters[i].name === name) { + attributeFilters[i].callbacks.push(callback); + return; + } + } + + attributeFilters.push({name: name, callbacks: [callback]}); + }); + }; + + /** + * Parses the specified HTML string into a DOM like node tree and returns the result. + * + * @example + * var rootNode = new DomParser({...}).parse('<b>text</b>'); + * @method parse + * @param {String} html Html string to sax parse. + * @param {Object} args Optional args object that gets passed to all filter functions. + * @return {tinymce.html.Node} Root node containing the tree. + */ + self.parse = function(html, args) { + var parser, rootNode, node, nodes, i, l, fi, fl, list, name, validate; + var blockElements, startWhiteSpaceRegExp, invalidChildren = [], isInWhiteSpacePreservedElement; + var endWhiteSpaceRegExp, allWhiteSpaceRegExp, isAllWhiteSpaceRegExp, whiteSpaceElements; + var children, nonEmptyElements, rootBlockName; + + args = args || {}; + matchedNodes = {}; + matchedAttributes = {}; + blockElements = extend(makeMap('script,style,head,html,body,title,meta,param'), schema.getBlockElements()); + nonEmptyElements = schema.getNonEmptyElements(); + children = schema.children; + validate = settings.validate; + rootBlockName = "forced_root_block" in args ? args.forced_root_block : settings.forced_root_block; + + whiteSpaceElements = schema.getWhiteSpaceElements(); + startWhiteSpaceRegExp = /^[ \t\r\n]+/; + endWhiteSpaceRegExp = /[ \t\r\n]+$/; + allWhiteSpaceRegExp = /[ \t\r\n]+/g; + isAllWhiteSpaceRegExp = /^[ \t\r\n]+$/; + + function addRootBlocks() { + var node = rootNode.firstChild, next, rootBlockNode; + + // Removes whitespace at beginning and end of block so: + // <p> x </p> -> <p>x</p> + function trim(rootBlockNode) { + if (rootBlockNode) { + node = rootBlockNode.firstChild; + if (node && node.type == 3) { + node.value = node.value.replace(startWhiteSpaceRegExp, ''); + } + + node = rootBlockNode.lastChild; + if (node && node.type == 3) { + node.value = node.value.replace(endWhiteSpaceRegExp, ''); + } + } + } + + // Check if rootBlock is valid within rootNode for example if P is valid in H1 if H1 is the contentEditabe root + if (!schema.isValidChild(rootNode.name, rootBlockName.toLowerCase())) { + return; + } + + while (node) { + next = node.next; + + if (node.type == 3 || (node.type == 1 && node.name !== 'p' && + !blockElements[node.name] && !node.attr('data-mce-type'))) { + if (!rootBlockNode) { + // Create a new root block element + rootBlockNode = createNode(rootBlockName, 1); + rootBlockNode.attr(settings.forced_root_block_attrs); + rootNode.insert(rootBlockNode, node); + rootBlockNode.append(node); + } else { + rootBlockNode.append(node); + } + } else { + trim(rootBlockNode); + rootBlockNode = null; + } + + node = next; + } + + trim(rootBlockNode); + } + + function createNode(name, type) { + var node = new Node(name, type), list; + + if (name in nodeFilters) { + list = matchedNodes[name]; + + if (list) { + list.push(node); + } else { + matchedNodes[name] = [node]; + } + } + + return node; + } + + function removeWhitespaceBefore(node) { + var textNode, textVal, sibling; + + for (textNode = node.prev; textNode && textNode.type === 3; ) { + textVal = textNode.value.replace(endWhiteSpaceRegExp, ''); + + if (textVal.length > 0) { + textNode.value = textVal; + textNode = textNode.prev; + } else { + sibling = textNode.prev; + textNode.remove(); + textNode = sibling; + } + } + } + + function cloneAndExcludeBlocks(input) { + var name, output = {}; + + for (name in input) { + if (name !== 'li' && name != 'p') { + output[name] = input[name]; + } + } + + return output; + } + + parser = new SaxParser({ + validate: validate, + allow_script_urls: settings.allow_script_urls, + allow_conditional_comments: settings.allow_conditional_comments, + + // Exclude P and LI from DOM parsing since it's treated better by the DOM parser + self_closing_elements: cloneAndExcludeBlocks(schema.getSelfClosingElements()), + + cdata: function(text) { + node.append(createNode('#cdata', 4)).value = text; + }, + + text: function(text, raw) { + var textNode; + + // Trim all redundant whitespace on non white space elements + if (!isInWhiteSpacePreservedElement) { + text = text.replace(allWhiteSpaceRegExp, ' '); + + if (node.lastChild && blockElements[node.lastChild.name]) { + text = text.replace(startWhiteSpaceRegExp, ''); + } + } + + // Do we need to create the node + if (text.length !== 0) { + textNode = createNode('#text', 3); + textNode.raw = !!raw; + node.append(textNode).value = text; + } + }, + + comment: function(text) { + node.append(createNode('#comment', 8)).value = text; + }, + + pi: function(name, text) { + node.append(createNode(name, 7)).value = text; + removeWhitespaceBefore(node); + }, + + doctype: function(text) { + var newNode; + + newNode = node.append(createNode('#doctype', 10)); + newNode.value = text; + removeWhitespaceBefore(node); + }, + + start: function(name, attrs, empty) { + var newNode, attrFiltersLen, elementRule, attrName, parent; + + elementRule = validate ? schema.getElementRule(name) : {}; + if (elementRule) { + newNode = createNode(elementRule.outputName || name, 1); + newNode.attributes = attrs; + newNode.shortEnded = empty; + + node.append(newNode); + + // Check if node is valid child of the parent node is the child is + // unknown we don't collect it since it's probably a custom element + parent = children[node.name]; + if (parent && children[newNode.name] && !parent[newNode.name]) { + invalidChildren.push(newNode); + } + + attrFiltersLen = attributeFilters.length; + while (attrFiltersLen--) { + attrName = attributeFilters[attrFiltersLen].name; + + if (attrName in attrs.map) { + list = matchedAttributes[attrName]; + + if (list) { + list.push(newNode); + } else { + matchedAttributes[attrName] = [newNode]; + } + } + } + + // Trim whitespace before block + if (blockElements[name]) { + removeWhitespaceBefore(newNode); + } + + // Change current node if the element wasn't empty i.e not <br /> or <img /> + if (!empty) { + node = newNode; + } + + // Check if we are inside a whitespace preserved element + if (!isInWhiteSpacePreservedElement && whiteSpaceElements[name]) { + isInWhiteSpacePreservedElement = true; + } + } + }, + + end: function(name) { + var textNode, elementRule, text, sibling, tempNode; + + elementRule = validate ? schema.getElementRule(name) : {}; + if (elementRule) { + if (blockElements[name]) { + if (!isInWhiteSpacePreservedElement) { + // Trim whitespace of the first node in a block + textNode = node.firstChild; + if (textNode && textNode.type === 3) { + text = textNode.value.replace(startWhiteSpaceRegExp, ''); + + // Any characters left after trim or should we remove it + if (text.length > 0) { + textNode.value = text; + textNode = textNode.next; + } else { + sibling = textNode.next; + textNode.remove(); + textNode = sibling; + + // Remove any pure whitespace siblings + while (textNode && textNode.type === 3) { + text = textNode.value; + sibling = textNode.next; + + if (text.length === 0 || isAllWhiteSpaceRegExp.test(text)) { + textNode.remove(); + textNode = sibling; + } + + textNode = sibling; + } + } + } + + // Trim whitespace of the last node in a block + textNode = node.lastChild; + if (textNode && textNode.type === 3) { + text = textNode.value.replace(endWhiteSpaceRegExp, ''); + + // Any characters left after trim or should we remove it + if (text.length > 0) { + textNode.value = text; + textNode = textNode.prev; + } else { + sibling = textNode.prev; + textNode.remove(); + textNode = sibling; + + // Remove any pure whitespace siblings + while (textNode && textNode.type === 3) { + text = textNode.value; + sibling = textNode.prev; + + if (text.length === 0 || isAllWhiteSpaceRegExp.test(text)) { + textNode.remove(); + textNode = sibling; + } + + textNode = sibling; + } + } + } + } + + // Trim start white space + // Removed due to: #5424 + /*textNode = node.prev; + if (textNode && textNode.type === 3) { + text = textNode.value.replace(startWhiteSpaceRegExp, ''); + + if (text.length > 0) + textNode.value = text; + else + textNode.remove(); + }*/ + } + + // Check if we exited a whitespace preserved element + if (isInWhiteSpacePreservedElement && whiteSpaceElements[name]) { + isInWhiteSpacePreservedElement = false; + } + + // Handle empty nodes + if (elementRule.removeEmpty || elementRule.paddEmpty) { + if (node.isEmpty(nonEmptyElements)) { + if (elementRule.paddEmpty) { + node.empty().append(new Node('#text', '3')).value = '\u00a0'; + } else { + // Leave nodes that have a name like <a name="name"> + if (!node.attributes.map.name && !node.attributes.map.id) { + tempNode = node.parent; + node.empty().remove(); + node = tempNode; + return; + } + } + } + } + + node = node.parent; + } + } + }, schema); + + rootNode = node = new Node(args.context || settings.root_name, 11); + + parser.parse(html); + + // Fix invalid children or report invalid children in a contextual parsing + if (validate && invalidChildren.length) { + if (!args.context) { + fixInvalidChildren(invalidChildren); + } else { + args.invalid = true; + } + } + + // Wrap nodes in the root into block elements if the root is body + if (rootBlockName && (rootNode.name == 'body' || args.isRootContent)) { + addRootBlocks(); + } + + // Run filters only when the contents is valid + if (!args.invalid) { + // Run node filters + for (name in matchedNodes) { + list = nodeFilters[name]; + nodes = matchedNodes[name]; + + // Remove already removed children + fi = nodes.length; + while (fi--) { + if (!nodes[fi].parent) { + nodes.splice(fi, 1); + } + } + + for (i = 0, l = list.length; i < l; i++) { + list[i](nodes, name, args); + } + } + + // Run attribute filters + for (i = 0, l = attributeFilters.length; i < l; i++) { + list = attributeFilters[i]; + + if (list.name in matchedAttributes) { + nodes = matchedAttributes[list.name]; + + // Remove already removed children + fi = nodes.length; + while (fi--) { + if (!nodes[fi].parent) { + nodes.splice(fi, 1); + } + } + + for (fi = 0, fl = list.callbacks.length; fi < fl; fi++) { + list.callbacks[fi](nodes, list.name, args); + } + } + } + } + + return rootNode; + }; + + // Remove <br> at end of block elements Gecko and WebKit injects BR elements to + // make it possible to place the caret inside empty blocks. This logic tries to remove + // these elements and keep br elements that where intended to be there intact + if (settings.remove_trailing_brs) { + self.addNodeFilter('br', function(nodes) { + var i, l = nodes.length, node, blockElements = extend({}, schema.getBlockElements()); + var nonEmptyElements = schema.getNonEmptyElements(), parent, lastParent, prev, prevName; + var elementRule, textNode; + + // Remove brs from body element as well + blockElements.body = 1; + + // Must loop forwards since it will otherwise remove all brs in <p>a<br><br><br></p> + for (i = 0; i < l; i++) { + node = nodes[i]; + parent = node.parent; + + if (blockElements[node.parent.name] && node === parent.lastChild) { + // Loop all nodes to the left of the current node and check for other BR elements + // excluding bookmarks since they are invisible + prev = node.prev; + while (prev) { + prevName = prev.name; + + // Ignore bookmarks + if (prevName !== "span" || prev.attr('data-mce-type') !== 'bookmark') { + // Found a non BR element + if (prevName !== "br") { + break; + } + + // Found another br it's a <br><br> structure then don't remove anything + if (prevName === 'br') { + node = null; + break; + } + } + + prev = prev.prev; + } + + if (node) { + node.remove(); + + // Is the parent to be considered empty after we removed the BR + if (parent.isEmpty(nonEmptyElements)) { + elementRule = schema.getElementRule(parent.name); + + // Remove or padd the element depending on schema rule + if (elementRule) { + if (elementRule.removeEmpty) { + parent.remove(); + } else if (elementRule.paddEmpty) { + parent.empty().append(new Node('#text', 3)).value = '\u00a0'; + } + } + } + } + } else { + // Replaces BR elements inside inline elements like <p><b><i><br></i></b></p> + // so they become <p><b><i> </i></b></p> + lastParent = node; + while (parent && parent.firstChild === lastParent && parent.lastChild === lastParent) { + lastParent = parent; + + if (blockElements[parent.name]) { + break; + } + + parent = parent.parent; + } + + if (lastParent === parent) { + textNode = new Node('#text', 3); + textNode.value = '\u00a0'; + node.replace(textNode); + } + } + } + }); + } + + // Force anchor names closed, unless the setting "allow_html_in_named_anchor" is explicitly included. + if (!settings.allow_html_in_named_anchor) { + self.addAttributeFilter('id,name', function(nodes) { + var i = nodes.length, sibling, prevSibling, parent, node; + + while (i--) { + node = nodes[i]; + if (node.name === 'a' && node.firstChild && !node.attr('href')) { + parent = node.parent; + + // Move children after current node + sibling = node.lastChild; + do { + prevSibling = sibling.prev; + parent.insert(sibling, node); + sibling = prevSibling; + } while (sibling); + } + } + }); + } + }; +}); + +// Included from: js/tinymce/classes/html/Writer.js + +/** + * Writer.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class is used to write HTML tags out it can be used with the Serializer or the SaxParser. + * + * @class tinymce.html.Writer + * @example + * var writer = new tinymce.html.Writer({indent: true}); + * var parser = new tinymce.html.SaxParser(writer).parse('<p><br></p>'); + * console.log(writer.getContent()); + * + * @class tinymce.html.Writer + * @version 3.4 + */ +define("tinymce/html/Writer", [ + "tinymce/html/Entities", + "tinymce/util/Tools" +], function(Entities, Tools) { + var makeMap = Tools.makeMap; + + /** + * Constructs a new Writer instance. + * + * @constructor + * @method Writer + * @param {Object} settings Name/value settings object. + */ + return function(settings) { + var html = [], indent, indentBefore, indentAfter, encode, htmlOutput; + + settings = settings || {}; + indent = settings.indent; + indentBefore = makeMap(settings.indent_before || ''); + indentAfter = makeMap(settings.indent_after || ''); + encode = Entities.getEncodeFunc(settings.entity_encoding || 'raw', settings.entities); + htmlOutput = settings.element_format == "html"; + + return { + /** + * Writes the a start element such as <p id="a">. + * + * @method start + * @param {String} name Name of the element. + * @param {Array} attrs Optional attribute array or undefined if it hasn't any. + * @param {Boolean} empty Optional empty state if the tag should end like <br />. + */ + start: function(name, attrs, empty) { + var i, l, attr, value; + + if (indent && indentBefore[name] && html.length > 0) { + value = html[html.length - 1]; + + if (value.length > 0 && value !== '\n') { + html.push('\n'); + } + } + + html.push('<', name); + + if (attrs) { + for (i = 0, l = attrs.length; i < l; i++) { + attr = attrs[i]; + html.push(' ', attr.name, '="', encode(attr.value, true), '"'); + } + } + + if (!empty || htmlOutput) { + html[html.length] = '>'; + } else { + html[html.length] = ' />'; + } + + if (empty && indent && indentAfter[name] && html.length > 0) { + value = html[html.length - 1]; + + if (value.length > 0 && value !== '\n') { + html.push('\n'); + } + } + }, + + /** + * Writes the a end element such as </p>. + * + * @method end + * @param {String} name Name of the element. + */ + end: function(name) { + var value; + + /*if (indent && indentBefore[name] && html.length > 0) { + value = html[html.length - 1]; + + if (value.length > 0 && value !== '\n') + html.push('\n'); + }*/ + + html.push('</', name, '>'); + + if (indent && indentAfter[name] && html.length > 0) { + value = html[html.length - 1]; + + if (value.length > 0 && value !== '\n') { + html.push('\n'); + } + } + }, + + /** + * Writes a text node. + * + * @method text + * @param {String} text String to write out. + * @param {Boolean} raw Optional raw state if true the contents wont get encoded. + */ + text: function(text, raw) { + if (text.length > 0) { + html[html.length] = raw ? text : encode(text); + } + }, + + /** + * Writes a cdata node such as <![CDATA[data]]>. + * + * @method cdata + * @param {String} text String to write out inside the cdata. + */ + cdata: function(text) { + html.push('<![CDATA[', text, ']]>'); + }, + + /** + * Writes a comment node such as <!-- Comment -->. + * + * @method cdata + * @param {String} text String to write out inside the comment. + */ + comment: function(text) { + html.push('<!--', text, '-->'); + }, + + /** + * Writes a PI node such as <?xml attr="value" ?>. + * + * @method pi + * @param {String} name Name of the pi. + * @param {String} text String to write out inside the pi. + */ + pi: function(name, text) { + if (text) { + html.push('<?', name, ' ', text, '?>'); + } else { + html.push('<?', name, '?>'); + } + + if (indent) { + html.push('\n'); + } + }, + + /** + * Writes a doctype node such as <!DOCTYPE data>. + * + * @method doctype + * @param {String} text String to write out inside the doctype. + */ + doctype: function(text) { + html.push('<!DOCTYPE', text, '>', indent ? '\n' : ''); + }, + + /** + * Resets the internal buffer if one wants to reuse the writer. + * + * @method reset + */ + reset: function() { + html.length = 0; + }, + + /** + * Returns the contents that got serialized. + * + * @method getContent + * @return {String} HTML contents that got written down. + */ + getContent: function() { + return html.join('').replace(/\n$/, ''); + } + }; + }; +}); + +// Included from: js/tinymce/classes/html/Serializer.js + +/** + * Serializer.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class is used to serialize down the DOM tree into a string using a Writer instance. + * + * + * @example + * new tinymce.html.Serializer().serialize(new tinymce.html.DomParser().parse('<p>text</p>')); + * @class tinymce.html.Serializer + * @version 3.4 + */ +define("tinymce/html/Serializer", [ + "tinymce/html/Writer", + "tinymce/html/Schema" +], function(Writer, Schema) { + /** + * Constructs a new Serializer instance. + * + * @constructor + * @method Serializer + * @param {Object} settings Name/value settings object. + * @param {tinymce.html.Schema} schema Schema instance to use. + */ + return function(settings, schema) { + var self = this, writer = new Writer(settings); + + settings = settings || {}; + settings.validate = "validate" in settings ? settings.validate : true; + + self.schema = schema = schema || new Schema(); + self.writer = writer; + + /** + * Serializes the specified node into a string. + * + * @example + * new tinymce.html.Serializer().serialize(new tinymce.html.DomParser().parse('<p>text</p>')); + * @method serialize + * @param {tinymce.html.Node} node Node instance to serialize. + * @return {String} String with HTML based on DOM tree. + */ + self.serialize = function(node) { + var handlers, validate; + + validate = settings.validate; + + handlers = { + // #text + 3: function(node) { + writer.text(node.value, node.raw); + }, + + // #comment + 8: function(node) { + writer.comment(node.value); + }, + + // Processing instruction + 7: function(node) { + writer.pi(node.name, node.value); + }, + + // Doctype + 10: function(node) { + writer.doctype(node.value); + }, + + // CDATA + 4: function(node) { + writer.cdata(node.value); + }, + + // Document fragment + 11: function(node) { + if ((node = node.firstChild)) { + do { + walk(node); + } while ((node = node.next)); + } + } + }; + + writer.reset(); + + function walk(node) { + var handler = handlers[node.type], name, isEmpty, attrs, attrName, attrValue, sortedAttrs, i, l, elementRule; + + if (!handler) { + name = node.name; + isEmpty = node.shortEnded; + attrs = node.attributes; + + // Sort attributes + if (validate && attrs && attrs.length > 1) { + sortedAttrs = []; + sortedAttrs.map = {}; + + elementRule = schema.getElementRule(node.name); + for (i = 0, l = elementRule.attributesOrder.length; i < l; i++) { + attrName = elementRule.attributesOrder[i]; + + if (attrName in attrs.map) { + attrValue = attrs.map[attrName]; + sortedAttrs.map[attrName] = attrValue; + sortedAttrs.push({name: attrName, value: attrValue}); + } + } + + for (i = 0, l = attrs.length; i < l; i++) { + attrName = attrs[i].name; + + if (!(attrName in sortedAttrs.map)) { + attrValue = attrs.map[attrName]; + sortedAttrs.map[attrName] = attrValue; + sortedAttrs.push({name: attrName, value: attrValue}); + } + } + + attrs = sortedAttrs; + } + + writer.start(node.name, attrs, isEmpty); + + if (!isEmpty) { + if ((node = node.firstChild)) { + do { + walk(node); + } while ((node = node.next)); + } + + writer.end(name); + } + } else { + handler(node); + } + } + + // Serialize element and treat all non elements as fragments + if (node.type == 1 && !settings.inner) { + walk(node); + } else { + handlers[11](node); + } + + return writer.getContent(); + }; + }; +}); + +// Included from: js/tinymce/classes/dom/Serializer.js + +/** + * Serializer.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class is used to serialize DOM trees into a string. Consult the TinyMCE Wiki API for + * more details and examples on how to use this class. + * + * @class tinymce.dom.Serializer + */ +define("tinymce/dom/Serializer", [ + "tinymce/dom/DOMUtils", + "tinymce/html/DomParser", + "tinymce/html/Entities", + "tinymce/html/Serializer", + "tinymce/html/Node", + "tinymce/html/Schema", + "tinymce/Env", + "tinymce/util/Tools" +], function(DOMUtils, DomParser, Entities, Serializer, Node, Schema, Env, Tools) { + var each = Tools.each, trim = Tools.trim; + var DOM = DOMUtils.DOM; + + /** + * Constructs a new DOM serializer class. + * + * @constructor + * @method Serializer + * @param {Object} settings Serializer settings object. + * @param {tinymce.Editor} editor Optional editor to bind events to and get schema/dom from. + */ + return function(settings, editor) { + var dom, schema, htmlParser; + + if (editor) { + dom = editor.dom; + schema = editor.schema; + } + + // Default DOM and Schema if they are undefined + dom = dom || DOM; + schema = schema || new Schema(settings); + settings.entity_encoding = settings.entity_encoding || 'named'; + settings.remove_trailing_brs = "remove_trailing_brs" in settings ? settings.remove_trailing_brs : true; + + htmlParser = new DomParser(settings, schema); + + // Convert move data-mce-src, data-mce-href and data-mce-style into nodes or process them if needed + htmlParser.addAttributeFilter('src,href,style', function(nodes, name) { + var i = nodes.length, node, value, internalName = 'data-mce-' + name; + var urlConverter = settings.url_converter, urlConverterScope = settings.url_converter_scope, undef; + + while (i--) { + node = nodes[i]; + + value = node.attributes.map[internalName]; + if (value !== undef) { + // Set external name to internal value and remove internal + node.attr(name, value.length > 0 ? value : null); + node.attr(internalName, null); + } else { + // No internal attribute found then convert the value we have in the DOM + value = node.attributes.map[name]; + + if (name === "style") { + value = dom.serializeStyle(dom.parseStyle(value), node.name); + } else if (urlConverter) { + value = urlConverter.call(urlConverterScope, value, name, node.name); + } + + node.attr(name, value.length > 0 ? value : null); + } + } + }); + + // Remove internal classes mceItem<..> or mceSelected + htmlParser.addAttributeFilter('class', function(nodes) { + var i = nodes.length, node, value; + + while (i--) { + node = nodes[i]; + value = node.attr('class').replace(/(?:^|\s)mce-item-\w+(?!\S)/g, ''); + node.attr('class', value.length > 0 ? value : null); + } + }); + + // Remove bookmark elements + htmlParser.addAttributeFilter('data-mce-type', function(nodes, name, args) { + var i = nodes.length, node; + + while (i--) { + node = nodes[i]; + + if (node.attributes.map['data-mce-type'] === 'bookmark' && !args.cleanup) { + node.remove(); + } + } + }); + + // Remove expando attributes + htmlParser.addAttributeFilter('data-mce-expando', function(nodes, name) { + var i = nodes.length; + + while (i--) { + nodes[i].attr(name, null); + } + }); + + htmlParser.addNodeFilter('noscript', function(nodes) { + var i = nodes.length, node; + + while (i--) { + node = nodes[i].firstChild; + + if (node) { + node.value = Entities.decode(node.value); + } + } + }); + + // Force script into CDATA sections and remove the mce- prefix also add comments around styles + htmlParser.addNodeFilter('script,style', function(nodes, name) { + var i = nodes.length, node, value; + + function trim(value) { + /*jshint maxlen:255 */ + /*eslint max-len:0 */ + return value.replace(/(<!--\[CDATA\[|\]\]-->)/g, '\n') + .replace(/^[\r\n]*|[\r\n]*$/g, '') + .replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi, '') + .replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g, ''); + } + + while (i--) { + node = nodes[i]; + value = node.firstChild ? node.firstChild.value : ''; + + if (name === "script") { + // Remove mce- prefix from script elements and remove default text/javascript mime type (HTML5) + var type = (node.attr('type') || 'text/javascript').replace(/^mce\-/, ''); + node.attr('type', type === 'text/javascript' ? null : type); + + if (value.length > 0) { + node.firstChild.value = '// <![CDATA[\n' + trim(value) + '\n// ]]>'; + } + } else { + if (value.length > 0) { + node.firstChild.value = '<!--\n' + trim(value) + '\n-->'; + } + } + } + }); + + // Convert comments to cdata and handle protected comments + htmlParser.addNodeFilter('#comment', function(nodes) { + var i = nodes.length, node; + + while (i--) { + node = nodes[i]; + + if (node.value.indexOf('[CDATA[') === 0) { + node.name = '#cdata'; + node.type = 4; + node.value = node.value.replace(/^\[CDATA\[|\]\]$/g, ''); + } else if (node.value.indexOf('mce:protected ') === 0) { + node.name = "#text"; + node.type = 3; + node.raw = true; + node.value = unescape(node.value).substr(14); + } + } + }); + + htmlParser.addNodeFilter('xml:namespace,input', function(nodes, name) { + var i = nodes.length, node; + + while (i--) { + node = nodes[i]; + if (node.type === 7) { + node.remove(); + } else if (node.type === 1) { + if (name === "input" && !("type" in node.attributes.map)) { + node.attr('type', 'text'); + } + } + } + }); + + // Fix list elements, TODO: Replace this later + if (settings.fix_list_elements) { + htmlParser.addNodeFilter('ul,ol', function(nodes) { + var i = nodes.length, node, parentNode; + + while (i--) { + node = nodes[i]; + parentNode = node.parent; + + if (parentNode.name === 'ul' || parentNode.name === 'ol') { + if (node.prev && node.prev.name === 'li') { + node.prev.append(node); + } + } + } + }); + } + + // Remove internal data attributes + htmlParser.addAttributeFilter('data-mce-src,data-mce-href,data-mce-style,data-mce-selected', function(nodes, name) { + var i = nodes.length; + + while (i--) { + nodes[i].attr(name, null); + } + }); + + // Return public methods + return { + /** + * Schema instance that was used to when the Serializer was constructed. + * + * @field {tinymce.html.Schema} schema + */ + schema: schema, + + /** + * Adds a node filter function to the parser used by the serializer, the parser will collect the specified nodes by name + * and then execute the callback ones it has finished parsing the document. + * + * @example + * parser.addNodeFilter('p,h1', function(nodes, name) { + * for (var i = 0; i < nodes.length; i++) { + * console.log(nodes[i].name); + * } + * }); + * @method addNodeFilter + * @method {String} name Comma separated list of nodes to collect. + * @param {function} callback Callback function to execute once it has collected nodes. + */ + addNodeFilter: htmlParser.addNodeFilter, + + /** + * Adds a attribute filter function to the parser used by the serializer, the parser will + * collect nodes that has the specified attributes + * and then execute the callback ones it has finished parsing the document. + * + * @example + * parser.addAttributeFilter('src,href', function(nodes, name) { + * for (var i = 0; i < nodes.length; i++) { + * console.log(nodes[i].name); + * } + * }); + * @method addAttributeFilter + * @method {String} name Comma separated list of nodes to collect. + * @param {function} callback Callback function to execute once it has collected nodes. + */ + addAttributeFilter: htmlParser.addAttributeFilter, + + /** + * Serializes the specified browser DOM node into a HTML string. + * + * @method serialize + * @param {DOMNode} node DOM node to serialize. + * @param {Object} args Arguments option that gets passed to event handlers. + */ + serialize: function(node, args) { + var self = this, impl, doc, oldDoc, htmlSerializer, content; + + // Explorer won't clone contents of script and style and the + // selected index of select elements are cleared on a clone operation. + if (Env.ie && dom.select('script,style,select,map').length > 0) { + content = node.innerHTML; + node = node.cloneNode(false); + dom.setHTML(node, content); + } else { + node = node.cloneNode(true); + } + + // Nodes needs to be attached to something in WebKit/Opera + // This fix will make DOM ranges and make Sizzle happy! + impl = node.ownerDocument.implementation; + if (impl.createHTMLDocument) { + // Create an empty HTML document + doc = impl.createHTMLDocument(""); + + // Add the element or it's children if it's a body element to the new document + each(node.nodeName == 'BODY' ? node.childNodes : [node], function(node) { + doc.body.appendChild(doc.importNode(node, true)); + }); + + // Grab first child or body element for serialization + if (node.nodeName != 'BODY') { + node = doc.body.firstChild; + } else { + node = doc.body; + } + + // set the new document in DOMUtils so createElement etc works + oldDoc = dom.doc; + dom.doc = doc; + } + + args = args || {}; + args.format = args.format || 'html'; + + // Don't wrap content if we want selected html + if (args.selection) { + args.forced_root_block = ''; + } + + // Pre process + if (!args.no_events) { + args.node = node; + self.onPreProcess(args); + } + + // Setup serializer + htmlSerializer = new Serializer(settings, schema); + + // Parse and serialize HTML + args.content = htmlSerializer.serialize( + htmlParser.parse(trim(args.getInner ? node.innerHTML : dom.getOuterHTML(node)), args) + ); + + // Replace all BOM characters for now until we can find a better solution + if (!args.cleanup) { + args.content = args.content.replace(/\uFEFF/g, ''); + } + + // Post process + if (!args.no_events) { + self.onPostProcess(args); + } + + // Restore the old document if it was changed + if (oldDoc) { + dom.doc = oldDoc; + } + + args.node = null; + + return args.content; + }, + + /** + * Adds valid elements rules to the serializers schema instance this enables you to specify things + * like what elements should be outputted and what attributes specific elements might have. + * Consult the Wiki for more details on this format. + * + * @method addRules + * @param {String} rules Valid elements rules string to add to schema. + */ + addRules: function(rules) { + schema.addValidElements(rules); + }, + + /** + * Sets the valid elements rules to the serializers schema instance this enables you to specify things + * like what elements should be outputted and what attributes specific elements might have. + * Consult the Wiki for more details on this format. + * + * @method setRules + * @param {String} rules Valid elements rules string. + */ + setRules: function(rules) { + schema.setValidElements(rules); + }, + + onPreProcess: function(args) { + if (editor) { + editor.fire('PreProcess', args); + } + }, + + onPostProcess: function(args) { + if (editor) { + editor.fire('PostProcess', args); + } + } + }; + }; +}); + +// Included from: js/tinymce/classes/dom/TridentSelection.js + +/** + * TridentSelection.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Selection class for old explorer versions. This one fakes the + * native selection object available on modern browsers. + * + * @class tinymce.dom.TridentSelection + */ +define("tinymce/dom/TridentSelection", [], function() { + function Selection(selection) { + var self = this, dom = selection.dom, FALSE = false; + + function getPosition(rng, start) { + var checkRng, startIndex = 0, endIndex, inside, + children, child, offset, index, position = -1, parent; + + // Setup test range, collapse it and get the parent + checkRng = rng.duplicate(); + checkRng.collapse(start); + parent = checkRng.parentElement(); + + // Check if the selection is within the right document + if (parent.ownerDocument !== selection.dom.doc) { + return; + } + + // IE will report non editable elements as it's parent so look for an editable one + while (parent.contentEditable === "false") { + parent = parent.parentNode; + } + + // If parent doesn't have any children then return that we are inside the element + if (!parent.hasChildNodes()) { + return {node: parent, inside: 1}; + } + + // Setup node list and endIndex + children = parent.children; + endIndex = children.length - 1; + + // Perform a binary search for the position + while (startIndex <= endIndex) { + index = Math.floor((startIndex + endIndex) / 2); + + // Move selection to node and compare the ranges + child = children[index]; + checkRng.moveToElementText(child); + position = checkRng.compareEndPoints(start ? 'StartToStart' : 'EndToEnd', rng); + + // Before/after or an exact match + if (position > 0) { + endIndex = index - 1; + } else if (position < 0) { + startIndex = index + 1; + } else { + return {node: child}; + } + } + + // Check if child position is before or we didn't find a position + if (position < 0) { + // No element child was found use the parent element and the offset inside that + if (!child) { + checkRng.moveToElementText(parent); + checkRng.collapse(true); + child = parent; + inside = true; + } else { + checkRng.collapse(false); + } + + // Walk character by character in text node until we hit the selected range endpoint, + // hit the end of document or parent isn't the right one + // We need to walk char by char since rng.text or rng.htmlText will trim line endings + offset = 0; + while (checkRng.compareEndPoints(start ? 'StartToStart' : 'StartToEnd', rng) !== 0) { + if (checkRng.move('character', 1) === 0 || parent != checkRng.parentElement()) { + break; + } + + offset++; + } + } else { + // Child position is after the selection endpoint + checkRng.collapse(true); + + // Walk character by character in text node until we hit the selected range endpoint, hit + // the end of document or parent isn't the right one + offset = 0; + while (checkRng.compareEndPoints(start ? 'StartToStart' : 'StartToEnd', rng) !== 0) { + if (checkRng.move('character', -1) === 0 || parent != checkRng.parentElement()) { + break; + } + + offset++; + } + } + + return {node: child, position: position, offset: offset, inside: inside}; + } + + // Returns a W3C DOM compatible range object by using the IE Range API + function getRange() { + var ieRange = selection.getRng(), domRange = dom.createRng(), element, collapsed, tmpRange, element2, bookmark; + + // If selection is outside the current document just return an empty range + element = ieRange.item ? ieRange.item(0) : ieRange.parentElement(); + if (element.ownerDocument != dom.doc) { + return domRange; + } + + collapsed = selection.isCollapsed(); + + // Handle control selection + if (ieRange.item) { + domRange.setStart(element.parentNode, dom.nodeIndex(element)); + domRange.setEnd(domRange.startContainer, domRange.startOffset + 1); + + return domRange; + } + + function findEndPoint(start) { + var endPoint = getPosition(ieRange, start), container, offset, textNodeOffset = 0, sibling, undef, nodeValue; + + container = endPoint.node; + offset = endPoint.offset; + + if (endPoint.inside && !container.hasChildNodes()) { + domRange[start ? 'setStart' : 'setEnd'](container, 0); + return; + } + + if (offset === undef) { + domRange[start ? 'setStartBefore' : 'setEndAfter'](container); + return; + } + + if (endPoint.position < 0) { + sibling = endPoint.inside ? container.firstChild : container.nextSibling; + + if (!sibling) { + domRange[start ? 'setStartAfter' : 'setEndAfter'](container); + return; + } + + if (!offset) { + if (sibling.nodeType == 3) { + domRange[start ? 'setStart' : 'setEnd'](sibling, 0); + } else { + domRange[start ? 'setStartBefore' : 'setEndBefore'](sibling); + } + + return; + } + + // Find the text node and offset + while (sibling) { + nodeValue = sibling.nodeValue; + textNodeOffset += nodeValue.length; + + // We are at or passed the position we where looking for + if (textNodeOffset >= offset) { + container = sibling; + textNodeOffset -= offset; + textNodeOffset = nodeValue.length - textNodeOffset; + break; + } + + sibling = sibling.nextSibling; + } + } else { + // Find the text node and offset + sibling = container.previousSibling; + + if (!sibling) { + return domRange[start ? 'setStartBefore' : 'setEndBefore'](container); + } + + // If there isn't any text to loop then use the first position + if (!offset) { + if (container.nodeType == 3) { + domRange[start ? 'setStart' : 'setEnd'](sibling, container.nodeValue.length); + } else { + domRange[start ? 'setStartAfter' : 'setEndAfter'](sibling); + } + + return; + } + + while (sibling) { + textNodeOffset += sibling.nodeValue.length; + + // We are at or passed the position we where looking for + if (textNodeOffset >= offset) { + container = sibling; + textNodeOffset -= offset; + break; + } + + sibling = sibling.previousSibling; + } + } + + domRange[start ? 'setStart' : 'setEnd'](container, textNodeOffset); + } + + try { + // Find start point + findEndPoint(true); + + // Find end point if needed + if (!collapsed) { + findEndPoint(); + } + } catch (ex) { + // IE has a nasty bug where text nodes might throw "invalid argument" when you + // access the nodeValue or other properties of text nodes. This seems to happend when + // text nodes are split into two nodes by a delete/backspace call. So lets detect it and try to fix it. + if (ex.number == -2147024809) { + // Get the current selection + bookmark = self.getBookmark(2); + + // Get start element + tmpRange = ieRange.duplicate(); + tmpRange.collapse(true); + element = tmpRange.parentElement(); + + // Get end element + if (!collapsed) { + tmpRange = ieRange.duplicate(); + tmpRange.collapse(false); + element2 = tmpRange.parentElement(); + element2.innerHTML = element2.innerHTML; + } + + // Remove the broken elements + element.innerHTML = element.innerHTML; + + // Restore the selection + self.moveToBookmark(bookmark); + + // Since the range has moved we need to re-get it + ieRange = selection.getRng(); + + // Find start point + findEndPoint(true); + + // Find end point if needed + if (!collapsed) { + findEndPoint(); + } + } else { + throw ex; // Throw other errors + } + } + + return domRange; + } + + this.getBookmark = function(type) { + var rng = selection.getRng(), bookmark = {}; + + function getIndexes(node) { + var parent, root, children, i, indexes = []; + + parent = node.parentNode; + root = dom.getRoot().parentNode; + + while (parent != root && parent.nodeType !== 9) { + children = parent.children; + + i = children.length; + while (i--) { + if (node === children[i]) { + indexes.push(i); + break; + } + } + + node = parent; + parent = parent.parentNode; + } + + return indexes; + } + + function getBookmarkEndPoint(start) { + var position; + + position = getPosition(rng, start); + if (position) { + return { + position: position.position, + offset: position.offset, + indexes: getIndexes(position.node), + inside: position.inside + }; + } + } + + // Non ubstructive bookmark + if (type === 2) { + // Handle text selection + if (!rng.item) { + bookmark.start = getBookmarkEndPoint(true); + + if (!selection.isCollapsed()) { + bookmark.end = getBookmarkEndPoint(); + } + } else { + bookmark.start = {ctrl: true, indexes: getIndexes(rng.item(0))}; + } + } + + return bookmark; + }; + + this.moveToBookmark = function(bookmark) { + var rng, body = dom.doc.body; + + function resolveIndexes(indexes) { + var node, i, idx, children; + + node = dom.getRoot(); + for (i = indexes.length - 1; i >= 0; i--) { + children = node.children; + idx = indexes[i]; + + if (idx <= children.length - 1) { + node = children[idx]; + } + } + + return node; + } + + function setBookmarkEndPoint(start) { + var endPoint = bookmark[start ? 'start' : 'end'], moveLeft, moveRng, undef, offset; + + if (endPoint) { + moveLeft = endPoint.position > 0; + + moveRng = body.createTextRange(); + moveRng.moveToElementText(resolveIndexes(endPoint.indexes)); + + offset = endPoint.offset; + if (offset !== undef) { + moveRng.collapse(endPoint.inside || moveLeft); + moveRng.moveStart('character', moveLeft ? -offset : offset); + } else { + moveRng.collapse(start); + } + + rng.setEndPoint(start ? 'StartToStart' : 'EndToStart', moveRng); + + if (start) { + rng.collapse(true); + } + } + } + + if (bookmark.start) { + if (bookmark.start.ctrl) { + rng = body.createControlRange(); + rng.addElement(resolveIndexes(bookmark.start.indexes)); + rng.select(); + } else { + rng = body.createTextRange(); + setBookmarkEndPoint(true); + setBookmarkEndPoint(); + rng.select(); + } + } + }; + + this.addRange = function(rng) { + var ieRng, ctrlRng, startContainer, startOffset, endContainer, endOffset, sibling, + doc = selection.dom.doc, body = doc.body, nativeRng, ctrlElm; + + function setEndPoint(start) { + var container, offset, marker, tmpRng, nodes; + + marker = dom.create('a'); + container = start ? startContainer : endContainer; + offset = start ? startOffset : endOffset; + tmpRng = ieRng.duplicate(); + + if (container == doc || container == doc.documentElement) { + container = body; + offset = 0; + } + + if (container.nodeType == 3) { + container.parentNode.insertBefore(marker, container); + tmpRng.moveToElementText(marker); + tmpRng.moveStart('character', offset); + dom.remove(marker); + ieRng.setEndPoint(start ? 'StartToStart' : 'EndToEnd', tmpRng); + } else { + nodes = container.childNodes; + + if (nodes.length) { + if (offset >= nodes.length) { + dom.insertAfter(marker, nodes[nodes.length - 1]); + } else { + container.insertBefore(marker, nodes[offset]); + } + + tmpRng.moveToElementText(marker); + } else if (container.canHaveHTML) { + // Empty node selection for example <div>|</div> + // Setting innerHTML with a span marker then remove that marker seems to keep empty block elements open + container.innerHTML = '<span></span>'; + marker = container.firstChild; + tmpRng.moveToElementText(marker); + tmpRng.collapse(FALSE); // Collapse false works better than true for some odd reason + } + + ieRng.setEndPoint(start ? 'StartToStart' : 'EndToEnd', tmpRng); + dom.remove(marker); + } + } + + // Setup some shorter versions + startContainer = rng.startContainer; + startOffset = rng.startOffset; + endContainer = rng.endContainer; + endOffset = rng.endOffset; + ieRng = body.createTextRange(); + + // If single element selection then try making a control selection out of it + if (startContainer == endContainer && startContainer.nodeType == 1) { + // Trick to place the caret inside an empty block element like <p></p> + if (startOffset == endOffset && !startContainer.hasChildNodes()) { + if (startContainer.canHaveHTML) { + // Check if previous sibling is an empty block if it is then we need to render it + // IE would otherwise move the caret into the sibling instead of the empty startContainer see: #5236 + // Example this: <p></p><p>|</p> would become this: <p>|</p><p></p> + sibling = startContainer.previousSibling; + if (sibling && !sibling.hasChildNodes() && dom.isBlock(sibling)) { + sibling.innerHTML = ''; + } else { + sibling = null; + } + + startContainer.innerHTML = '<span></span><span></span>'; + ieRng.moveToElementText(startContainer.lastChild); + ieRng.select(); + dom.doc.selection.clear(); + startContainer.innerHTML = ''; + + if (sibling) { + sibling.innerHTML = ''; + } + return; + } else { + startOffset = dom.nodeIndex(startContainer); + startContainer = startContainer.parentNode; + } + } + + if (startOffset == endOffset - 1) { + try { + ctrlElm = startContainer.childNodes[startOffset]; + ctrlRng = body.createControlRange(); + ctrlRng.addElement(ctrlElm); + ctrlRng.select(); + + // Check if the range produced is on the correct element and is a control range + // On IE 8 it will select the parent contentEditable container if you select an inner element see: #5398 + nativeRng = selection.getRng(); + if (nativeRng.item && ctrlElm === nativeRng.item(0)) { + return; + } + } catch (ex) { + // Ignore + } + } + } + + // Set start/end point of selection + setEndPoint(true); + setEndPoint(); + + // Select the new range and scroll it into view + ieRng.select(); + }; + + // Expose range method + this.getRangeAt = getRange; + } + + return Selection; +}); + +// Included from: js/tinymce/classes/util/VK.js + +/** + * VK.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This file exposes a set of the common KeyCodes for use. Please grow it as needed. + */ +define("tinymce/util/VK", [ + "tinymce/Env" +], function(Env) { + return { + BACKSPACE: 8, + DELETE: 46, + DOWN: 40, + ENTER: 13, + LEFT: 37, + RIGHT: 39, + SPACEBAR: 32, + TAB: 9, + UP: 38, + + modifierPressed: function(e) { + return e.shiftKey || e.ctrlKey || e.altKey; + }, + + metaKeyPressed: function(e) { + // Check if ctrl or meta key is pressed also check if alt is false for Polish users + return (Env.mac ? e.metaKey : e.ctrlKey) && !e.altKey; + } + }; +}); + +// Included from: js/tinymce/classes/dom/ControlSelection.js + +/** + * ControlSelection.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles control selection of elements. Controls are elements + * that can be resized and needs to be selected as a whole. It adds custom resize handles + * to all browser engines that support properly disabling the built in resize logic. + * + * @class tinymce.dom.ControlSelection + */ +define("tinymce/dom/ControlSelection", [ + "tinymce/util/VK", + "tinymce/util/Tools", + "tinymce/Env" +], function(VK, Tools, Env) { + return function(selection, editor) { + var dom = editor.dom, each = Tools.each; + var selectedElm, selectedElmGhost, resizeHandles, selectedHandle, lastMouseDownEvent; + var startX, startY, selectedElmX, selectedElmY, startW, startH, ratio, resizeStarted; + var width, height, editableDoc = editor.getDoc(), rootDocument = document, isIE = Env.ie && Env.ie < 11; + + // Details about each resize handle how to scale etc + resizeHandles = { + // Name: x multiplier, y multiplier, delta size x, delta size y + n: [0.5, 0, 0, -1], + e: [1, 0.5, 1, 0], + s: [0.5, 1, 0, 1], + w: [0, 0.5, -1, 0], + nw: [0, 0, -1, -1], + ne: [1, 0, 1, -1], + se: [1, 1, 1, 1], + sw: [0, 1, -1, 1] + }; + + // Add CSS for resize handles, cloned element and selected + var rootClass = '.mce-content-body'; + editor.contentStyles.push( + rootClass + ' div.mce-resizehandle {' + + 'position: absolute;' + + 'border: 1px solid black;' + + 'background: #FFF;' + + 'width: 5px;' + + 'height: 5px;' + + 'z-index: 10000' + + '}' + + rootClass + ' .mce-resizehandle:hover {' + + 'background: #000' + + '}' + + rootClass + ' img[data-mce-selected], hr[data-mce-selected] {' + + 'outline: 1px solid black;' + + 'resize: none' + // Have been talks about implementing this in browsers + '}' + + rootClass + ' .mce-clonedresizable {' + + 'position: absolute;' + + (Env.gecko ? '' : 'outline: 1px dashed black;') + // Gecko produces trails while resizing + 'opacity: .5;' + + 'filter: alpha(opacity=50);' + + 'z-index: 10000' + + '}' + ); + + function isResizable(elm) { + var selector = editor.settings.object_resizing; + + if (selector === false || Env.iOS) { + return false; + } + + if (typeof selector != 'string') { + selector = 'table,img,div'; + } + + if (elm.getAttribute('data-mce-resize') === 'false') { + return false; + } + + return editor.dom.is(elm, selector); + } + + function resizeGhostElement(e) { + var deltaX, deltaY; + + // Calc new width/height + deltaX = e.screenX - startX; + deltaY = e.screenY - startY; + + // Calc new size + width = deltaX * selectedHandle[2] + startW; + height = deltaY * selectedHandle[3] + startH; + + // Never scale down lower than 5 pixels + width = width < 5 ? 5 : width; + height = height < 5 ? 5 : height; + + // Constrain proportions when modifier key is pressed or if the nw, ne, sw, se corners are moved on an image + if (VK.modifierPressed(e) || (selectedElm.nodeName == "IMG" && selectedHandle[2] * selectedHandle[3] !== 0)) { + width = Math.round(height / ratio); + height = Math.round(width * ratio); + } + + // Update ghost size + dom.setStyles(selectedElmGhost, { + width: width, + height: height + }); + + // Update ghost X position if needed + if (selectedHandle[2] < 0 && selectedElmGhost.clientWidth <= width) { + dom.setStyle(selectedElmGhost, 'left', selectedElmX + (startW - width)); + } + + // Update ghost Y position if needed + if (selectedHandle[3] < 0 && selectedElmGhost.clientHeight <= height) { + dom.setStyle(selectedElmGhost, 'top', selectedElmY + (startH - height)); + } + + if (!resizeStarted) { + editor.fire('ObjectResizeStart', {target: selectedElm, width: startW, height: startH}); + resizeStarted = true; + } + } + + function endGhostResize() { + resizeStarted = false; + + function setSizeProp(name, value) { + if (value) { + // Resize by using style or attribute + if (selectedElm.style[name] || !editor.schema.isValid(selectedElm.nodeName.toLowerCase(), name)) { + dom.setStyle(selectedElm, name, value); + } else { + dom.setAttrib(selectedElm, name, value); + } + } + } + + // Set width/height properties + setSizeProp('width', width); + setSizeProp('height', height); + + dom.unbind(editableDoc, 'mousemove', resizeGhostElement); + dom.unbind(editableDoc, 'mouseup', endGhostResize); + + if (rootDocument != editableDoc) { + dom.unbind(rootDocument, 'mousemove', resizeGhostElement); + dom.unbind(rootDocument, 'mouseup', endGhostResize); + } + + // Remove ghost and update resize handle positions + dom.remove(selectedElmGhost); + + if (!isIE || selectedElm.nodeName == "TABLE") { + showResizeRect(selectedElm); + } + + editor.fire('ObjectResized', {target: selectedElm, width: width, height: height}); + editor.nodeChanged(); + } + + function showResizeRect(targetElm, mouseDownHandleName, mouseDownEvent) { + var position, targetWidth, targetHeight, e, rect, offsetParent = editor.getBody(); + + unbindResizeHandleEvents(); + + // Get position and size of target + position = dom.getPos(targetElm, offsetParent); + selectedElmX = position.x; + selectedElmY = position.y; + rect = targetElm.getBoundingClientRect(); // Fix for Gecko offsetHeight for table with caption + targetWidth = rect.width || (rect.right - rect.left); + targetHeight = rect.height || (rect.bottom - rect.top); + + // Reset width/height if user selects a new image/table + if (selectedElm != targetElm) { + detachResizeStartListener(); + selectedElm = targetElm; + width = height = 0; + } + + // Makes it possible to disable resizing + e = editor.fire('ObjectSelected', {target: targetElm}); + + if (isResizable(targetElm) && !e.isDefaultPrevented()) { + each(resizeHandles, function(handle, name) { + var handleElm, handlerContainerElm; + + function startDrag(e) { + startX = e.screenX; + startY = e.screenY; + startW = selectedElm.clientWidth; + startH = selectedElm.clientHeight; + ratio = startH / startW; + selectedHandle = handle; + + selectedElmGhost = selectedElm.cloneNode(true); + dom.addClass(selectedElmGhost, 'mce-clonedresizable'); + selectedElmGhost.contentEditable = false; // Hides IE move layer cursor + selectedElmGhost.unSelectabe = true; + dom.setStyles(selectedElmGhost, { + left: selectedElmX, + top: selectedElmY, + margin: 0 + }); + + selectedElmGhost.removeAttribute('data-mce-selected'); + editor.getBody().appendChild(selectedElmGhost); + + dom.bind(editableDoc, 'mousemove', resizeGhostElement); + dom.bind(editableDoc, 'mouseup', endGhostResize); + + if (rootDocument != editableDoc) { + dom.bind(rootDocument, 'mousemove', resizeGhostElement); + dom.bind(rootDocument, 'mouseup', endGhostResize); + } + } + + if (mouseDownHandleName) { + // Drag started by IE native resizestart + if (name == mouseDownHandleName) { + startDrag(mouseDownEvent); + } + + return; + } + + // Get existing or render resize handle + handleElm = dom.get('mceResizeHandle' + name); + if (!handleElm) { + handlerContainerElm = editor.getBody(); + + handleElm = dom.add(handlerContainerElm, 'div', { + id: 'mceResizeHandle' + name, + 'data-mce-bogus': true, + 'class': 'mce-resizehandle', + unselectable: true, + style: 'cursor:' + name + '-resize; margin:0; padding:0' + }); + + // Hides IE move layer cursor + // If we set it on Chrome we get this wounderful bug: #6725 + if (Env.ie) { + handleElm.contentEditable = false; + } + } else { + dom.show(handleElm); + } + + if (!handle.elm) { + dom.bind(handleElm, 'mousedown', function(e) { + e.stopImmediatePropagation(); + e.preventDefault(); + startDrag(e); + }); + + handle.elm = handleElm; + } + + /* + var halfHandleW = handleElm.offsetWidth / 2; + var halfHandleH = handleElm.offsetHeight / 2; + + // Position element + dom.setStyles(handleElm, { + left: Math.floor((targetWidth * handle[0] + selectedElmX) - halfHandleW + (handle[2] * halfHandleW)), + top: Math.floor((targetHeight * handle[1] + selectedElmY) - halfHandleH + (handle[3] * halfHandleH)) + }); + */ + + // Position element + dom.setStyles(handleElm, { + left: (targetWidth * handle[0] + selectedElmX) - (handleElm.offsetWidth / 2), + top: (targetHeight * handle[1] + selectedElmY) - (handleElm.offsetHeight / 2) + }); + }); + } else { + hideResizeRect(); + } + + selectedElm.setAttribute('data-mce-selected', '1'); + } + + function hideResizeRect() { + var name, handleElm; + + unbindResizeHandleEvents(); + + if (selectedElm) { + selectedElm.removeAttribute('data-mce-selected'); + } + + for (name in resizeHandles) { + handleElm = dom.get('mceResizeHandle' + name); + if (handleElm) { + dom.unbind(handleElm); + dom.remove(handleElm); + } + } + } + + function updateResizeRect(e) { + var controlElm; + + function isChildOrEqual(node, parent) { + if (node) { + do { + if (node === parent) { + return true; + } + } while ((node = node.parentNode)); + } + } + + // Remove data-mce-selected from all elements since they might have been copied using Ctrl+c/v + each(dom.select('img[data-mce-selected],hr[data-mce-selected]'), function(img) { + img.removeAttribute('data-mce-selected'); + }); + + controlElm = e.type == 'mousedown' ? e.target : selection.getNode(); + controlElm = dom.getParent(controlElm, isIE ? 'table' : 'table,img,hr'); + + if (isChildOrEqual(controlElm, editor.getBody())) { + disableGeckoResize(); + + if (isChildOrEqual(selection.getStart(), controlElm) && isChildOrEqual(selection.getEnd(), controlElm)) { + if (!isIE || (controlElm != selection.getStart() && selection.getStart().nodeName !== 'IMG')) { + showResizeRect(controlElm); + return; + } + } + } + + hideResizeRect(); + } + + function attachEvent(elm, name, func) { + if (elm && elm.attachEvent) { + elm.attachEvent('on' + name, func); + } + } + + function detachEvent(elm, name, func) { + if (elm && elm.detachEvent) { + elm.detachEvent('on' + name, func); + } + } + + function resizeNativeStart(e) { + var target = e.srcElement, pos, name, corner, cornerX, cornerY, relativeX, relativeY; + + pos = target.getBoundingClientRect(); + relativeX = lastMouseDownEvent.clientX - pos.left; + relativeY = lastMouseDownEvent.clientY - pos.top; + + // Figure out what corner we are draging on + for (name in resizeHandles) { + corner = resizeHandles[name]; + + cornerX = target.offsetWidth * corner[0]; + cornerY = target.offsetHeight * corner[1]; + + if (Math.abs(cornerX - relativeX) < 8 && Math.abs(cornerY - relativeY) < 8) { + selectedHandle = corner; + break; + } + } + + // Remove native selection and let the magic begin + resizeStarted = true; + editor.getDoc().selection.empty(); + showResizeRect(target, name, lastMouseDownEvent); + } + + function nativeControlSelect(e) { + var target = e.srcElement; + + if (target != selectedElm) { + detachResizeStartListener(); + + if (target.id.indexOf('mceResizeHandle') === 0) { + e.returnValue = false; + return; + } + + if (target.nodeName == 'IMG' || target.nodeName == 'TABLE') { + hideResizeRect(); + selectedElm = target; + attachEvent(target, 'resizestart', resizeNativeStart); + } + } + } + + function detachResizeStartListener() { + detachEvent(selectedElm, 'resizestart', resizeNativeStart); + } + + function unbindResizeHandleEvents() { + for (var name in resizeHandles) { + var handle = resizeHandles[name]; + + if (handle.elm) { + dom.unbind(handle.elm); + delete handle.elm; + } + } + } + + function disableGeckoResize() { + try { + // Disable object resizing on Gecko + editor.getDoc().execCommand('enableObjectResizing', false, false); + } catch (ex) { + // Ignore + } + } + + function controlSelect(elm) { + var ctrlRng; + + if (!isIE) { + return; + } + + ctrlRng = editableDoc.body.createControlRange(); + + try { + ctrlRng.addElement(elm); + ctrlRng.select(); + return true; + } catch (ex) { + // Ignore since the element can't be control selected for example a P tag + } + } + + editor.on('init', function() { + if (isIE) { + // Hide the resize rect on resize and reselect the image + editor.on('ObjectResized', function(e) { + if (e.target.nodeName != 'TABLE') { + hideResizeRect(); + controlSelect(e.target); + } + }); + + attachEvent(editor.getBody(), 'controlselect', nativeControlSelect); + + editor.on('mousedown', function(e) { + lastMouseDownEvent = e; + }); + } else { + disableGeckoResize(); + + if (Env.ie >= 11) { + // TODO: Drag/drop doesn't work + editor.on('mouseup', function(e) { + var nodeName = e.target.nodeName; + + if (/^(TABLE|IMG|HR)$/.test(nodeName)) { + editor.selection.select(e.target, nodeName == 'TABLE'); + editor.nodeChanged(); + } + }); + + editor.dom.bind(editor.getBody(), 'mscontrolselect', function(e) { + if (/^(TABLE|IMG|HR)$/.test(e.target.nodeName)) { + e.preventDefault(); + + // This moves the selection from being a control selection to a text like selection like in WebKit #6753 + // TODO: Fix this the day IE works like other browsers without this nasty native ugly control selections. + if (e.target.tagName == 'IMG') { + window.setTimeout(function() { + editor.selection.select(e.target); + }, 0); + } + } + }); + } + } + + editor.on('nodechange mousedown mouseup ResizeEditor', updateResizeRect); + + // Update resize rect while typing in a table + editor.on('keydown keyup', function(e) { + if (selectedElm && selectedElm.nodeName == "TABLE") { + updateResizeRect(e); + } + }); + + // Hide rect on focusout since it would float on top of windows otherwise + //editor.on('focusout', hideResizeRect); + }); + + editor.on('remove', unbindResizeHandleEvents); + + function destroy() { + selectedElm = selectedElmGhost = null; + + if (isIE) { + detachResizeStartListener(); + detachEvent(editor.getBody(), 'controlselect', nativeControlSelect); + } + } + + return { + isResizable: isResizable, + showResizeRect: showResizeRect, + hideResizeRect: hideResizeRect, + updateResizeRect: updateResizeRect, + controlSelect: controlSelect, + destroy: destroy + }; + }; +}); + +// Included from: js/tinymce/classes/dom/RangeUtils.js + +/** + * Range.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * RangeUtils + * + * @class tinymce.dom.RangeUtils + * @private + */ +define("tinymce/dom/RangeUtils", [ + "tinymce/util/Tools", + "tinymce/dom/TreeWalker" +], function(Tools, TreeWalker) { + var each = Tools.each; + + function RangeUtils(dom) { + /** + * Walks the specified range like object and executes the callback for each sibling collection it finds. + * + * @method walk + * @param {Object} rng Range like object. + * @param {function} callback Callback function to execute for each sibling collection. + */ + this.walk = function(rng, callback) { + var startContainer = rng.startContainer, + startOffset = rng.startOffset, + endContainer = rng.endContainer, + endOffset = rng.endOffset, + ancestor, startPoint, + endPoint, node, parent, siblings, nodes; + + // Handle table cell selection the table plugin enables + // you to fake select table cells and perform formatting actions on them + nodes = dom.select('td.mce-item-selected,th.mce-item-selected'); + if (nodes.length > 0) { + each(nodes, function(node) { + callback([node]); + }); + + return; + } + + /** + * Excludes start/end text node if they are out side the range + * + * @private + * @param {Array} nodes Nodes to exclude items from. + * @return {Array} Array with nodes excluding the start/end container if needed. + */ + function exclude(nodes) { + var node; + + // First node is excluded + node = nodes[0]; + if (node.nodeType === 3 && node === startContainer && startOffset >= node.nodeValue.length) { + nodes.splice(0, 1); + } + + // Last node is excluded + node = nodes[nodes.length - 1]; + if (endOffset === 0 && nodes.length > 0 && node === endContainer && node.nodeType === 3) { + nodes.splice(nodes.length - 1, 1); + } + + return nodes; + } + + /** + * Collects siblings + * + * @private + * @param {Node} node Node to collect siblings from. + * @param {String} name Name of the sibling to check for. + * @return {Array} Array of collected siblings. + */ + function collectSiblings(node, name, end_node) { + var siblings = []; + + for (; node && node != end_node; node = node[name]) { + siblings.push(node); + } + + return siblings; + } + + /** + * Find an end point this is the node just before the common ancestor root. + * + * @private + * @param {Node} node Node to start at. + * @param {Node} root Root/ancestor element to stop just before. + * @return {Node} Node just before the root element. + */ + function findEndPoint(node, root) { + do { + if (node.parentNode == root) { + return node; + } + + node = node.parentNode; + } while(node); + } + + function walkBoundary(start_node, end_node, next) { + var siblingName = next ? 'nextSibling' : 'previousSibling'; + + for (node = start_node, parent = node.parentNode; node && node != end_node; node = parent) { + parent = node.parentNode; + siblings = collectSiblings(node == start_node ? node : node[siblingName], siblingName); + + if (siblings.length) { + if (!next) { + siblings.reverse(); + } + + callback(exclude(siblings)); + } + } + } + + // If index based start position then resolve it + if (startContainer.nodeType == 1 && startContainer.hasChildNodes()) { + startContainer = startContainer.childNodes[startOffset]; + } + + // If index based end position then resolve it + if (endContainer.nodeType == 1 && endContainer.hasChildNodes()) { + endContainer = endContainer.childNodes[Math.min(endOffset - 1, endContainer.childNodes.length - 1)]; + } + + // Same container + if (startContainer == endContainer) { + return callback(exclude([startContainer])); + } + + // Find common ancestor and end points + ancestor = dom.findCommonAncestor(startContainer, endContainer); + + // Process left side + for (node = startContainer; node; node = node.parentNode) { + if (node === endContainer) { + return walkBoundary(startContainer, ancestor, true); + } + + if (node === ancestor) { + break; + } + } + + // Process right side + for (node = endContainer; node; node = node.parentNode) { + if (node === startContainer) { + return walkBoundary(endContainer, ancestor); + } + + if (node === ancestor) { + break; + } + } + + // Find start/end point + startPoint = findEndPoint(startContainer, ancestor) || startContainer; + endPoint = findEndPoint(endContainer, ancestor) || endContainer; + + // Walk left leaf + walkBoundary(startContainer, startPoint, true); + + // Walk the middle from start to end point + siblings = collectSiblings( + startPoint == startContainer ? startPoint : startPoint.nextSibling, + 'nextSibling', + endPoint == endContainer ? endPoint.nextSibling : endPoint + ); + + if (siblings.length) { + callback(exclude(siblings)); + } + + // Walk right leaf + walkBoundary(endContainer, endPoint); + }; + + /** + * Splits the specified range at it's start/end points. + * + * @private + * @param {Range/RangeObject} rng Range to split. + * @return {Object} Range position object. + */ + this.split = function(rng) { + var startContainer = rng.startContainer, + startOffset = rng.startOffset, + endContainer = rng.endContainer, + endOffset = rng.endOffset; + + function splitText(node, offset) { + return node.splitText(offset); + } + + // Handle single text node + if (startContainer == endContainer && startContainer.nodeType == 3) { + if (startOffset > 0 && startOffset < startContainer.nodeValue.length) { + endContainer = splitText(startContainer, startOffset); + startContainer = endContainer.previousSibling; + + if (endOffset > startOffset) { + endOffset = endOffset - startOffset; + startContainer = endContainer = splitText(endContainer, endOffset).previousSibling; + endOffset = endContainer.nodeValue.length; + startOffset = 0; + } else { + endOffset = 0; + } + } + } else { + // Split startContainer text node if needed + if (startContainer.nodeType == 3 && startOffset > 0 && startOffset < startContainer.nodeValue.length) { + startContainer = splitText(startContainer, startOffset); + startOffset = 0; + } + + // Split endContainer text node if needed + if (endContainer.nodeType == 3 && endOffset > 0 && endOffset < endContainer.nodeValue.length) { + endContainer = splitText(endContainer, endOffset).previousSibling; + endOffset = endContainer.nodeValue.length; + } + } + + return { + startContainer: startContainer, + startOffset: startOffset, + endContainer: endContainer, + endOffset: endOffset + }; + }; + + /** + * Normalizes the specified range by finding the closest best suitable caret location. + * + * @private + * @param {Range} rng Range to normalize. + * @return {Boolean} True/false if the specified range was normalized or not. + */ + this.normalize = function(rng) { + var normalized, collapsed; + + function normalizeEndPoint(start) { + var container, offset, walker, body = dom.getRoot(), node, nonEmptyElementsMap, nodeName; + var directionLeft, isAfterNode; + + function hasBrBeforeAfter(node, left) { + var walker = new TreeWalker(node, dom.getParent(node.parentNode, dom.isBlock) || body); + + while ((node = walker[left ? 'prev' : 'next']())) { + if (node.nodeName === "BR") { + return true; + } + } + } + + function isPrevNode(node, name) { + return node.previousSibling && node.previousSibling.nodeName == name; + } + + // Walks the dom left/right to find a suitable text node to move the endpoint into + // It will only walk within the current parent block or body and will stop if it hits a block or a BR/IMG + function findTextNodeRelative(left, startNode) { + var walker, lastInlineElement, parentBlockContainer; + + startNode = startNode || container; + parentBlockContainer = dom.getParent(startNode.parentNode, dom.isBlock) || body; + + // Lean left before the BR element if it's the only BR within a block element. Gecko bug: #6680 + // This: <p><br>|</p> becomes <p>|<br></p> + if (left && startNode.nodeName == 'BR' && isAfterNode && dom.isEmpty(parentBlockContainer)) { + container = startNode.parentNode; + offset = dom.nodeIndex(startNode); + normalized = true; + return; + } + + // Walk left until we hit a text node we can move to or a block/br/img + walker = new TreeWalker(startNode, parentBlockContainer); + while ((node = walker[left ? 'prev' : 'next']())) { + // Found text node that has a length + if (node.nodeType === 3 && node.nodeValue.length > 0) { + container = node; + offset = left ? node.nodeValue.length : 0; + normalized = true; + return; + } + + // Break if we find a block or a BR/IMG/INPUT etc + if (dom.isBlock(node) || nonEmptyElementsMap[node.nodeName.toLowerCase()]) { + return; + } + + lastInlineElement = node; + } + + // Only fetch the last inline element when in caret mode for now + if (collapsed && lastInlineElement) { + container = lastInlineElement; + normalized = true; + offset = 0; + } + } + + container = rng[(start ? 'start' : 'end') + 'Container']; + offset = rng[(start ? 'start' : 'end') + 'Offset']; + isAfterNode = container.nodeType == 1 && offset === container.childNodes.length; + nonEmptyElementsMap = dom.schema.getNonEmptyElements(); + directionLeft = start; + + if (container.nodeType == 1 && offset > container.childNodes.length - 1) { + directionLeft = false; + } + + // If the container is a document move it to the body element + if (container.nodeType === 9) { + container = dom.getRoot(); + offset = 0; + } + + // If the container is body try move it into the closest text node or position + if (container === body) { + // If start is before/after a image, table etc + if (directionLeft) { + node = container.childNodes[offset > 0 ? offset - 1 : 0]; + if (node) { + nodeName = node.nodeName.toLowerCase(); + if (nonEmptyElementsMap[node.nodeName] || node.nodeName == "TABLE") { + return; + } + } + } + + // Resolve the index + if (container.hasChildNodes()) { + offset = Math.min(!directionLeft && offset > 0 ? offset - 1 : offset, container.childNodes.length - 1); + container = container.childNodes[offset]; + offset = 0; + + // Don't walk into elements that doesn't have any child nodes like a IMG + if (container.hasChildNodes() && !/TABLE/.test(container.nodeName)) { + // Walk the DOM to find a text node to place the caret at or a BR + node = container; + walker = new TreeWalker(container, body); + + do { + // Found a text node use that position + if (node.nodeType === 3 && node.nodeValue.length > 0) { + offset = directionLeft ? 0 : node.nodeValue.length; + container = node; + normalized = true; + break; + } + + // Found a BR/IMG element that we can place the caret before + if (nonEmptyElementsMap[node.nodeName.toLowerCase()]) { + offset = dom.nodeIndex(node); + container = node.parentNode; + + // Put caret after image when moving the end point + if (node.nodeName == "IMG" && !directionLeft) { + offset++; + } + + normalized = true; + break; + } + } while ((node = (directionLeft ? walker.next() : walker.prev()))); + } + } + } + + // Lean the caret to the left if possible + if (collapsed) { + // So this: <b>x</b><i>|x</i> + // Becomes: <b>x|</b><i>x</i> + // Seems that only gecko has issues with this + if (container.nodeType === 3 && offset === 0) { + findTextNodeRelative(true); + } + + // Lean left into empty inline elements when the caret is before a BR + // So this: <i><b></b><i>|<br></i> + // Becomes: <i><b>|</b><i><br></i> + // Seems that only gecko has issues with this. + // Special edge case for <p><a>x</a>|<br></p> since we don't want <p><a>x|</a><br></p> + if (container.nodeType === 1) { + node = container.childNodes[offset]; + + // Offset is after the containers last child + // then use the previous child for normalization + if (!node) { + node = container.childNodes[offset - 1]; + } + + if (node && node.nodeName === 'BR' && !isPrevNode(node, 'A') && + !hasBrBeforeAfter(node) && !hasBrBeforeAfter(node, true)) { + findTextNodeRelative(true, node); + } + } + } + + // Lean the start of the selection right if possible + // So this: x[<b>x]</b> + // Becomes: x<b>[x]</b> + if (directionLeft && !collapsed && container.nodeType === 3 && offset === container.nodeValue.length) { + findTextNodeRelative(false); + } + + // Set endpoint if it was normalized + if (normalized) { + rng['set' + (start ? 'Start' : 'End')](container, offset); + } + } + + collapsed = rng.collapsed; + + normalizeEndPoint(true); + + if (!collapsed) { + normalizeEndPoint(); + } + + // If it was collapsed then make sure it still is + if (normalized && collapsed) { + rng.collapse(true); + } + + return normalized; + }; + } + + /** + * Compares two ranges and checks if they are equal. + * + * @static + * @method compareRanges + * @param {DOMRange} rng1 First range to compare. + * @param {DOMRange} rng2 First range to compare. + * @return {Boolean} true/false if the ranges are equal. + */ + RangeUtils.compareRanges = function(rng1, rng2) { + if (rng1 && rng2) { + // Compare native IE ranges + if (rng1.item || rng1.duplicate) { + // Both are control ranges and the selected element matches + if (rng1.item && rng2.item && rng1.item(0) === rng2.item(0)) { + return true; + } + + // Both are text ranges and the range matches + if (rng1.isEqual && rng2.isEqual && rng2.isEqual(rng1)) { + return true; + } + } else { + // Compare w3c ranges + return rng1.startContainer == rng2.startContainer && rng1.startOffset == rng2.startOffset; + } + } + + return false; + }; + + return RangeUtils; +}); + +// Included from: js/tinymce/classes/dom/Selection.js + +/** + * Selection.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles text and control selection it's an crossbrowser utility class. + * Consult the TinyMCE Wiki API for more details and examples on how to use this class. + * + * @class tinymce.dom.Selection + * @example + * // Getting the currently selected node for the active editor + * alert(tinymce.activeEditor.selection.getNode().nodeName); + */ +define("tinymce/dom/Selection", [ + "tinymce/dom/TreeWalker", + "tinymce/dom/TridentSelection", + "tinymce/dom/ControlSelection", + "tinymce/dom/RangeUtils", + "tinymce/Env", + "tinymce/util/Tools" +], function(TreeWalker, TridentSelection, ControlSelection, RangeUtils, Env, Tools) { + var each = Tools.each, grep = Tools.grep, trim = Tools.trim; + var isIE = Env.ie, isOpera = Env.opera; + + /** + * Constructs a new selection instance. + * + * @constructor + * @method Selection + * @param {tinymce.dom.DOMUtils} dom DOMUtils object reference. + * @param {Window} win Window to bind the selection object to. + * @param {tinymce.dom.Serializer} serializer DOM serialization class to use for getContent. + */ + function Selection(dom, win, serializer, editor) { + var self = this; + + self.dom = dom; + self.win = win; + self.serializer = serializer; + self.editor = editor; + + self.controlSelection = new ControlSelection(self, editor); + + // No W3C Range support + if (!self.win.getSelection) { + self.tridentSel = new TridentSelection(self); + } + } + + Selection.prototype = { + /** + * Move the selection cursor range to the specified node and offset. + * If there is no node specified it will move it to the first suitable location within the body. + * + * @method setCursorLocation + * @param {Node} node Optional node to put the cursor in. + * @param {Number} offset Optional offset from the start of the node to put the cursor at. + */ + setCursorLocation: function(node, offset) { + var self = this, rng = self.dom.createRng(); + + if (!node) { + self._moveEndPoint(rng, self.editor.getBody(), true); + self.setRng(rng); + } else { + rng.setStart(node, offset); + rng.setEnd(node, offset); + self.setRng(rng); + self.collapse(false); + } + }, + + /** + * Returns the selected contents using the DOM serializer passed in to this class. + * + * @method getContent + * @param {Object} s Optional settings class with for example output format text or html. + * @return {String} Selected contents in for example HTML format. + * @example + * // Alerts the currently selected contents + * alert(tinymce.activeEditor.selection.getContent()); + * + * // Alerts the currently selected contents as plain text + * alert(tinymce.activeEditor.selection.getContent({format: 'text'})); + */ + getContent: function(args) { + var self = this, rng = self.getRng(), tmpElm = self.dom.create("body"); + var se = self.getSel(), whiteSpaceBefore, whiteSpaceAfter, fragment; + + args = args || {}; + whiteSpaceBefore = whiteSpaceAfter = ''; + args.get = true; + args.format = args.format || 'html'; + args.selection = true; + self.editor.fire('BeforeGetContent', args); + + if (args.format == 'text') { + return self.isCollapsed() ? '' : (rng.text || (se.toString ? se.toString() : '')); + } + + if (rng.cloneContents) { + fragment = rng.cloneContents(); + + if (fragment) { + tmpElm.appendChild(fragment); + } + } else if (rng.item !== undefined || rng.htmlText !== undefined) { + // IE will produce invalid markup if elements are present that + // it doesn't understand like custom elements or HTML5 elements. + // Adding a BR in front of the contents and then remoiving it seems to fix it though. + tmpElm.innerHTML = '<br>' + (rng.item ? rng.item(0).outerHTML : rng.htmlText); + tmpElm.removeChild(tmpElm.firstChild); + } else { + tmpElm.innerHTML = rng.toString(); + } + + // Keep whitespace before and after + if (/^\s/.test(tmpElm.innerHTML)) { + whiteSpaceBefore = ' '; + } + + if (/\s+$/.test(tmpElm.innerHTML)) { + whiteSpaceAfter = ' '; + } + + args.getInner = true; + + args.content = self.isCollapsed() ? '' : whiteSpaceBefore + self.serializer.serialize(tmpElm, args) + whiteSpaceAfter; + self.editor.fire('GetContent', args); + + return args.content; + }, + + /** + * Sets the current selection to the specified content. If any contents is selected it will be replaced + * with the contents passed in to this function. If there is no selection the contents will be inserted + * where the caret is placed in the editor/page. + * + * @method setContent + * @param {String} content HTML contents to set could also be other formats depending on settings. + * @param {Object} args Optional settings object with for example data format. + * @example + * // Inserts some HTML contents at the current selection + * tinymce.activeEditor.selection.setContent('<strong>Some contents</strong>'); + */ + setContent: function(content, args) { + var self = this, rng = self.getRng(), caretNode, doc = self.win.document, frag, temp; + + args = args || {format: 'html'}; + args.set = true; + args.selection = true; + content = args.content = content; + + // Dispatch before set content event + if (!args.no_events) { + self.editor.fire('BeforeSetContent', args); + } + + content = args.content; + + if (rng.insertNode) { + // Make caret marker since insertNode places the caret in the beginning of text after insert + content += '<span id="__caret">_</span>'; + + // Delete and insert new node + if (rng.startContainer == doc && rng.endContainer == doc) { + // WebKit will fail if the body is empty since the range is then invalid and it can't insert contents + doc.body.innerHTML = content; + } else { + rng.deleteContents(); + + if (doc.body.childNodes.length === 0) { + doc.body.innerHTML = content; + } else { + // createContextualFragment doesn't exists in IE 9 DOMRanges + if (rng.createContextualFragment) { + rng.insertNode(rng.createContextualFragment(content)); + } else { + // Fake createContextualFragment call in IE 9 + frag = doc.createDocumentFragment(); + temp = doc.createElement('div'); + + frag.appendChild(temp); + temp.outerHTML = content; + + rng.insertNode(frag); + } + } + } + + // Move to caret marker + caretNode = self.dom.get('__caret'); + + // Make sure we wrap it compleatly, Opera fails with a simple select call + rng = doc.createRange(); + rng.setStartBefore(caretNode); + rng.setEndBefore(caretNode); + self.setRng(rng); + + // Remove the caret position + self.dom.remove('__caret'); + + try { + self.setRng(rng); + } catch (ex) { + // Might fail on Opera for some odd reason + } + } else { + if (rng.item) { + // Delete content and get caret text selection + doc.execCommand('Delete', false, null); + rng = self.getRng(); + } + + // Explorer removes spaces from the beginning of pasted contents + if (/^\s+/.test(content)) { + rng.pasteHTML('<span id="__mce_tmp">_</span>' + content); + self.dom.remove('__mce_tmp'); + } else { + rng.pasteHTML(content); + } + } + + // Dispatch set content event + if (!args.no_events) { + self.editor.fire('SetContent', args); + } + }, + + /** + * Returns the start element of a selection range. If the start is in a text + * node the parent element will be returned. + * + * @method getStart + * @return {Element} Start element of selection range. + */ + getStart: function() { + var self = this, rng = self.getRng(), startElement, parentElement, checkRng, node; + + if (rng.duplicate || rng.item) { + // Control selection, return first item + if (rng.item) { + return rng.item(0); + } + + // Get start element + checkRng = rng.duplicate(); + checkRng.collapse(1); + startElement = checkRng.parentElement(); + if (startElement.ownerDocument !== self.dom.doc) { + startElement = self.dom.getRoot(); + } + + // Check if range parent is inside the start element, then return the inner parent element + // This will fix issues when a single element is selected, IE would otherwise return the wrong start element + parentElement = node = rng.parentElement(); + while ((node = node.parentNode)) { + if (node == startElement) { + startElement = parentElement; + break; + } + } + + return startElement; + } else { + startElement = rng.startContainer; + + if (startElement.nodeType == 1 && startElement.hasChildNodes()) { + startElement = startElement.childNodes[Math.min(startElement.childNodes.length - 1, rng.startOffset)]; + } + + if (startElement && startElement.nodeType == 3) { + return startElement.parentNode; + } + + return startElement; + } + }, + + /** + * Returns the end element of a selection range. If the end is in a text + * node the parent element will be returned. + * + * @method getEnd + * @return {Element} End element of selection range. + */ + getEnd: function() { + var self = this, rng = self.getRng(), endElement, endOffset; + + if (rng.duplicate || rng.item) { + if (rng.item) { + return rng.item(0); + } + + rng = rng.duplicate(); + rng.collapse(0); + endElement = rng.parentElement(); + if (endElement.ownerDocument !== self.dom.doc) { + endElement = self.dom.getRoot(); + } + + if (endElement && endElement.nodeName == 'BODY') { + return endElement.lastChild || endElement; + } + + return endElement; + } else { + endElement = rng.endContainer; + endOffset = rng.endOffset; + + if (endElement.nodeType == 1 && endElement.hasChildNodes()) { + endElement = endElement.childNodes[endOffset > 0 ? endOffset - 1 : endOffset]; + } + + if (endElement && endElement.nodeType == 3) { + return endElement.parentNode; + } + + return endElement; + } + }, + + /** + * Returns a bookmark location for the current selection. This bookmark object + * can then be used to restore the selection after some content modification to the document. + * + * @method getBookmark + * @param {Number} type Optional state if the bookmark should be simple or not. Default is complex. + * @param {Boolean} normalized Optional state that enables you to get a position that it would be after normalization. + * @return {Object} Bookmark object, use moveToBookmark with this object to restore the selection. + * @example + * // Stores a bookmark of the current selection + * var bm = tinymce.activeEditor.selection.getBookmark(); + * + * tinymce.activeEditor.setContent(tinymce.activeEditor.getContent() + 'Some new content'); + * + * // Restore the selection bookmark + * tinymce.activeEditor.selection.moveToBookmark(bm); + */ + getBookmark: function(type, normalized) { + var self = this, dom = self.dom, rng, rng2, id, collapsed, name, element, chr = '', styles; + + function findIndex(name, element) { + var index = 0; + + each(dom.select(name), function(node, i) { + if (node == element) { + index = i; + } + }); + + return index; + } + + function normalizeTableCellSelection(rng) { + function moveEndPoint(start) { + var container, offset, childNodes, prefix = start ? 'start' : 'end'; + + container = rng[prefix + 'Container']; + offset = rng[prefix + 'Offset']; + + if (container.nodeType == 1 && container.nodeName == "TR") { + childNodes = container.childNodes; + container = childNodes[Math.min(start ? offset : offset - 1, childNodes.length - 1)]; + if (container) { + offset = start ? 0 : container.childNodes.length; + rng['set' + (start ? 'Start' : 'End')](container, offset); + } + } + } + + moveEndPoint(true); + moveEndPoint(); + + return rng; + } + + function getLocation() { + var rng = self.getRng(true), root = dom.getRoot(), bookmark = {}; + + function getPoint(rng, start) { + var container = rng[start ? 'startContainer' : 'endContainer'], + offset = rng[start ? 'startOffset' : 'endOffset'], point = [], node, childNodes, after = 0; + + if (container.nodeType == 3) { + if (normalized) { + for (node = container.previousSibling; node && node.nodeType == 3; node = node.previousSibling) { + offset += node.nodeValue.length; + } + } + + point.push(offset); + } else { + childNodes = container.childNodes; + + if (offset >= childNodes.length && childNodes.length) { + after = 1; + offset = Math.max(0, childNodes.length - 1); + } + + point.push(self.dom.nodeIndex(childNodes[offset], normalized) + after); + } + + for (; container && container != root; container = container.parentNode) { + point.push(self.dom.nodeIndex(container, normalized)); + } + + return point; + } + + bookmark.start = getPoint(rng, true); + + if (!self.isCollapsed()) { + bookmark.end = getPoint(rng); + } + + return bookmark; + } + + if (type == 2) { + element = self.getNode(); + name = element ? element.nodeName : null; + + if (name == 'IMG') { + return {name: name, index: findIndex(name, element)}; + } + + if (self.tridentSel) { + return self.tridentSel.getBookmark(type); + } + + return getLocation(); + } + + // Handle simple range + if (type) { + return {rng: self.getRng()}; + } + + rng = self.getRng(); + id = dom.uniqueId(); + collapsed = self.isCollapsed(); + styles = 'overflow:hidden;line-height:0px'; + + // Explorer method + if (rng.duplicate || rng.item) { + // Text selection + if (!rng.item) { + rng2 = rng.duplicate(); + + try { + // Insert start marker + rng.collapse(); + rng.pasteHTML('<span data-mce-type="bookmark" id="' + id + '_start" style="' + styles + '">' + chr + '</span>'); + + // Insert end marker + if (!collapsed) { + rng2.collapse(false); + + // Detect the empty space after block elements in IE and move the + // end back one character <p></p>] becomes <p>]</p> + rng.moveToElementText(rng2.parentElement()); + if (rng.compareEndPoints('StartToEnd', rng2) === 0) { + rng2.move('character', -1); + } + + rng2.pasteHTML('<span data-mce-type="bookmark" id="' + id + '_end" style="' + styles + '">' + chr + '</span>'); + } + } catch (ex) { + // IE might throw unspecified error so lets ignore it + return null; + } + } else { + // Control selection + element = rng.item(0); + name = element.nodeName; + + return {name: name, index: findIndex(name, element)}; + } + } else { + element = self.getNode(); + name = element.nodeName; + if (name == 'IMG') { + return {name: name, index: findIndex(name, element)}; + } + + // W3C method + rng2 = normalizeTableCellSelection(rng.cloneRange()); + + // Insert end marker + if (!collapsed) { + rng2.collapse(false); + rng2.insertNode(dom.create('span', {'data-mce-type': "bookmark", id: id + '_end', style: styles}, chr)); + } + + rng = normalizeTableCellSelection(rng); + rng.collapse(true); + rng.insertNode(dom.create('span', {'data-mce-type': "bookmark", id: id + '_start', style: styles}, chr)); + } + + self.moveToBookmark({id: id, keep: 1}); + + return {id: id}; + }, + + /** + * Restores the selection to the specified bookmark. + * + * @method moveToBookmark + * @param {Object} bookmark Bookmark to restore selection from. + * @return {Boolean} true/false if it was successful or not. + * @example + * // Stores a bookmark of the current selection + * var bm = tinymce.activeEditor.selection.getBookmark(); + * + * tinymce.activeEditor.setContent(tinymce.activeEditor.getContent() + 'Some new content'); + * + * // Restore the selection bookmark + * tinymce.activeEditor.selection.moveToBookmark(bm); + */ + moveToBookmark: function(bookmark) { + var self = this, dom = self.dom, rng, root, startContainer, endContainer, startOffset, endOffset; + + function setEndPoint(start) { + var point = bookmark[start ? 'start' : 'end'], i, node, offset, children; + + if (point) { + offset = point[0]; + + // Find container node + for (node = root, i = point.length - 1; i >= 1; i--) { + children = node.childNodes; + + if (point[i] > children.length - 1) { + return; + } + + node = children[point[i]]; + } + + // Move text offset to best suitable location + if (node.nodeType === 3) { + offset = Math.min(point[0], node.nodeValue.length); + } + + // Move element offset to best suitable location + if (node.nodeType === 1) { + offset = Math.min(point[0], node.childNodes.length); + } + + // Set offset within container node + if (start) { + rng.setStart(node, offset); + } else { + rng.setEnd(node, offset); + } + } + + return true; + } + + function restoreEndPoint(suffix) { + var marker = dom.get(bookmark.id + '_' + suffix), node, idx, next, prev, keep = bookmark.keep; + + if (marker) { + node = marker.parentNode; + + if (suffix == 'start') { + if (!keep) { + idx = dom.nodeIndex(marker); + } else { + node = marker.firstChild; + idx = 1; + } + + startContainer = endContainer = node; + startOffset = endOffset = idx; + } else { + if (!keep) { + idx = dom.nodeIndex(marker); + } else { + node = marker.firstChild; + idx = 1; + } + + endContainer = node; + endOffset = idx; + } + + if (!keep) { + prev = marker.previousSibling; + next = marker.nextSibling; + + // Remove all marker text nodes + each(grep(marker.childNodes), function(node) { + if (node.nodeType == 3) { + node.nodeValue = node.nodeValue.replace(/\uFEFF/g, ''); + } + }); + + // Remove marker but keep children if for example contents where inserted into the marker + // Also remove duplicated instances of the marker for example by a + // split operation or by WebKit auto split on paste feature + while ((marker = dom.get(bookmark.id + '_' + suffix))) { + dom.remove(marker, 1); + } + + // If siblings are text nodes then merge them unless it's Opera since it some how removes the node + // and we are sniffing since adding a lot of detection code for a browser with 3% of the market + // isn't worth the effort. Sorry, Opera but it's just a fact + if (prev && next && prev.nodeType == next.nodeType && prev.nodeType == 3 && !isOpera) { + idx = prev.nodeValue.length; + prev.appendData(next.nodeValue); + dom.remove(next); + + if (suffix == 'start') { + startContainer = endContainer = prev; + startOffset = endOffset = idx; + } else { + endContainer = prev; + endOffset = idx; + } + } + } + } + } + + function addBogus(node) { + // Adds a bogus BR element for empty block elements + if (dom.isBlock(node) && !node.innerHTML && !isIE) { + node.innerHTML = '<br data-mce-bogus="1" />'; + } + + return node; + } + + if (bookmark) { + if (bookmark.start) { + rng = dom.createRng(); + root = dom.getRoot(); + + if (self.tridentSel) { + return self.tridentSel.moveToBookmark(bookmark); + } + + if (setEndPoint(true) && setEndPoint()) { + self.setRng(rng); + } + } else if (bookmark.id) { + // Restore start/end points + restoreEndPoint('start'); + restoreEndPoint('end'); + + if (startContainer) { + rng = dom.createRng(); + rng.setStart(addBogus(startContainer), startOffset); + rng.setEnd(addBogus(endContainer), endOffset); + self.setRng(rng); + } + } else if (bookmark.name) { + self.select(dom.select(bookmark.name)[bookmark.index]); + } else if (bookmark.rng) { + self.setRng(bookmark.rng); + } + } + }, + + /** + * Selects the specified element. This will place the start and end of the selection range around the element. + * + * @method select + * @param {Element} node HMTL DOM element to select. + * @param {Boolean} content Optional bool state if the contents should be selected or not on non IE browser. + * @return {Element} Selected element the same element as the one that got passed in. + * @example + * // Select the first paragraph in the active editor + * tinymce.activeEditor.selection.select(tinymce.activeEditor.dom.select('p')[0]); + */ + select: function(node, content) { + var self = this, dom = self.dom, rng = dom.createRng(), idx; + + // Clear stored range set by FocusManager + self.lastFocusBookmark = null; + + if (node) { + if (!content && self.controlSelection.controlSelect(node)) { + return; + } + + idx = dom.nodeIndex(node); + rng.setStart(node.parentNode, idx); + rng.setEnd(node.parentNode, idx + 1); + + // Find first/last text node or BR element + if (content) { + self._moveEndPoint(rng, node, true); + self._moveEndPoint(rng, node); + } + + self.setRng(rng); + } + + return node; + }, + + /** + * Returns true/false if the selection range is collapsed or not. Collapsed means if it's a caret or a larger selection. + * + * @method isCollapsed + * @return {Boolean} true/false state if the selection range is collapsed or not. + * Collapsed means if it's a caret or a larger selection. + */ + isCollapsed: function() { + var self = this, rng = self.getRng(), sel = self.getSel(); + + if (!rng || rng.item) { + return false; + } + + if (rng.compareEndPoints) { + return rng.compareEndPoints('StartToEnd', rng) === 0; + } + + return !sel || rng.collapsed; + }, + + /** + * Collapse the selection to start or end of range. + * + * @method collapse + * @param {Boolean} to_start Optional boolean state if to collapse to end or not. Defaults to start. + */ + collapse: function(to_start) { + var self = this, rng = self.getRng(), node; + + // Control range on IE + if (rng.item) { + node = rng.item(0); + rng = self.win.document.body.createTextRange(); + rng.moveToElementText(node); + } + + rng.collapse(!!to_start); + self.setRng(rng); + }, + + /** + * Returns the browsers internal selection object. + * + * @method getSel + * @return {Selection} Internal browser selection object. + */ + getSel: function() { + var win = this.win; + + return win.getSelection ? win.getSelection() : win.document.selection; + }, + + /** + * Returns the browsers internal range object. + * + * @method getRng + * @param {Boolean} w3c Forces a compatible W3C range on IE. + * @return {Range} Internal browser range object. + * @see http://www.quirksmode.org/dom/range_intro.html + * @see http://www.dotvoid.com/2001/03/using-the-range-object-in-mozilla/ + */ + getRng: function(w3c) { + var self = this, selection, rng, elm, doc = self.win.document, ieRng; + + function tryCompareBounderyPoints(how, sourceRange, destinationRange) { + try { + return sourceRange.compareBoundaryPoints(how, destinationRange); + } catch (ex) { + // Gecko throws wrong document exception if the range points + // to nodes that where removed from the dom #6690 + // Browsers should mutate existing DOMRange instances so that they always point + // to something in the document this is not the case in Gecko works fine in IE/WebKit/Blink + // For performance reasons just return -1 + return -1; + } + } + + // Use last rng passed from FocusManager if it's available this enables + // calls to editor.selection.getStart() to work when caret focus is lost on IE + if (!w3c && self.lastFocusBookmark) { + var bookmark = self.lastFocusBookmark; + + // Convert bookmark to range IE 11 fix + if (bookmark.startContainer) { + rng = doc.createRange(); + rng.setStart(bookmark.startContainer, bookmark.startOffset); + rng.setEnd(bookmark.endContainer, bookmark.endOffset); + } else { + rng = bookmark; + } + + return rng; + } + + // Found tridentSel object then we need to use that one + if (w3c && self.tridentSel) { + return self.tridentSel.getRangeAt(0); + } + + try { + if ((selection = self.getSel())) { + if (selection.rangeCount > 0) { + rng = selection.getRangeAt(0); + } else { + rng = selection.createRange ? selection.createRange() : doc.createRange(); + } + } + } catch (ex) { + // IE throws unspecified error here if TinyMCE is placed in a frame/iframe + } + + // We have W3C ranges and it's IE then fake control selection since IE9 doesn't handle that correctly yet + // IE 11 doesn't support the selection object so we check for that as well + if (isIE && rng && rng.setStart && doc.selection) { + try { + // IE will sometimes throw an exception here + ieRng = doc.selection.createRange(); + } catch (ex) { + + } + + if (ieRng && ieRng.item) { + elm = ieRng.item(0); + rng = doc.createRange(); + rng.setStartBefore(elm); + rng.setEndAfter(elm); + } + } + + // No range found then create an empty one + // This can occur when the editor is placed in a hidden container element on Gecko + // Or on IE when there was an exception + if (!rng) { + rng = doc.createRange ? doc.createRange() : doc.body.createTextRange(); + } + + // If range is at start of document then move it to start of body + if (rng.setStart && rng.startContainer.nodeType === 9 && rng.collapsed) { + elm = self.dom.getRoot(); + rng.setStart(elm, 0); + rng.setEnd(elm, 0); + } + + if (self.selectedRange && self.explicitRange) { + if (tryCompareBounderyPoints(rng.START_TO_START, rng, self.selectedRange) === 0 && + tryCompareBounderyPoints(rng.END_TO_END, rng, self.selectedRange) === 0) { + // Safari, Opera and Chrome only ever select text which causes the range to change. + // This lets us use the originally set range if the selection hasn't been changed by the user. + rng = self.explicitRange; + } else { + self.selectedRange = null; + self.explicitRange = null; + } + } + + return rng; + }, + + /** + * Changes the selection to the specified DOM range. + * + * @method setRng + * @param {Range} rng Range to select. + */ + setRng: function(rng, forward) { + var self = this, sel; + + // Is IE specific range + if (rng.select) { + try { + rng.select(); + } catch (ex) { + // Needed for some odd IE bug #1843306 + } + + return; + } + + if (!self.tridentSel) { + sel = self.getSel(); + + if (sel) { + self.explicitRange = rng; + + try { + sel.removeAllRanges(); + sel.addRange(rng); + } catch (ex) { + // IE might throw errors here if the editor is within a hidden container and selection is changed + } + + // Forward is set to false and we have an extend function + if (forward === false && sel.extend) { + sel.collapse(rng.endContainer, rng.endOffset); + sel.extend(rng.startContainer, rng.startOffset); + } + + // adding range isn't always successful so we need to check range count otherwise an exception can occur + self.selectedRange = sel.rangeCount > 0 ? sel.getRangeAt(0) : null; + } + } else { + // Is W3C Range fake range on IE + if (rng.cloneRange) { + try { + self.tridentSel.addRange(rng); + return; + } catch (ex) { + //IE9 throws an error here if called before selection is placed in the editor + } + } + } + }, + + /** + * Sets the current selection to the specified DOM element. + * + * @method setNode + * @param {Element} elm Element to set as the contents of the selection. + * @return {Element} Returns the element that got passed in. + * @example + * // Inserts a DOM node at current selection/caret location + * tinymce.activeEditor.selection.setNode(tinymce.activeEditor.dom.create('img', {src: 'some.gif', title: 'some title'})); + */ + setNode: function(elm) { + var self = this; + + self.setContent(self.dom.getOuterHTML(elm)); + + return elm; + }, + + /** + * Returns the currently selected element or the common ancestor element for both start and end of the selection. + * + * @method getNode + * @return {Element} Currently selected element or common ancestor element. + * @example + * // Alerts the currently selected elements node name + * alert(tinymce.activeEditor.selection.getNode().nodeName); + */ + getNode: function() { + var self = this, rng = self.getRng(), elm; + var startContainer = rng.startContainer, endContainer = rng.endContainer; + var startOffset = rng.startOffset, endOffset = rng.endOffset, root = self.dom.getRoot(); + + function skipEmptyTextNodes(node, forwards) { + var orig = node; + + while (node && node.nodeType === 3 && node.length === 0) { + node = forwards ? node.nextSibling : node.previousSibling; + } + + return node || orig; + } + + // Range maybe lost after the editor is made visible again + if (!rng) { + return root; + } + + if (rng.setStart) { + elm = rng.commonAncestorContainer; + + // Handle selection a image or other control like element such as anchors + if (!rng.collapsed) { + if (startContainer == endContainer) { + if (endOffset - startOffset < 2) { + if (startContainer.hasChildNodes()) { + elm = startContainer.childNodes[startOffset]; + } + } + } + + // If the anchor node is a element instead of a text node then return this element + //if (tinymce.isWebKit && sel.anchorNode && sel.anchorNode.nodeType == 1) + // return sel.anchorNode.childNodes[sel.anchorOffset]; + + // Handle cases where the selection is immediately wrapped around a node and return that node instead of it's parent. + // This happens when you double click an underlined word in FireFox. + if (startContainer.nodeType === 3 && endContainer.nodeType === 3) { + if (startContainer.length === startOffset) { + startContainer = skipEmptyTextNodes(startContainer.nextSibling, true); + } else { + startContainer = startContainer.parentNode; + } + + if (endOffset === 0) { + endContainer = skipEmptyTextNodes(endContainer.previousSibling, false); + } else { + endContainer = endContainer.parentNode; + } + + if (startContainer && startContainer === endContainer) { + return startContainer; + } + } + } + + if (elm && elm.nodeType == 3) { + return elm.parentNode; + } + + return elm; + } + + elm = rng.item ? rng.item(0) : rng.parentElement(); + + // IE 7 might return elements outside the iframe + if (elm.ownerDocument !== self.win.document) { + elm = root; + } + + return elm; + }, + + getSelectedBlocks: function(startElm, endElm) { + var self = this, dom = self.dom, node, root, selectedBlocks = []; + + root = dom.getRoot(); + startElm = dom.getParent(startElm || self.getStart(), dom.isBlock); + endElm = dom.getParent(endElm || self.getEnd(), dom.isBlock); + + if (startElm && startElm != root) { + selectedBlocks.push(startElm); + } + + if (startElm && endElm && startElm != endElm) { + node = startElm; + + var walker = new TreeWalker(startElm, root); + while ((node = walker.next()) && node != endElm) { + if (dom.isBlock(node)) { + selectedBlocks.push(node); + } + } + } + + if (endElm && startElm != endElm && endElm != root) { + selectedBlocks.push(endElm); + } + + return selectedBlocks; + }, + + isForward: function() { + var dom = this.dom, sel = this.getSel(), anchorRange, focusRange; + + // No support for selection direction then always return true + if (!sel || !sel.anchorNode || !sel.focusNode) { + return true; + } + + anchorRange = dom.createRng(); + anchorRange.setStart(sel.anchorNode, sel.anchorOffset); + anchorRange.collapse(true); + + focusRange = dom.createRng(); + focusRange.setStart(sel.focusNode, sel.focusOffset); + focusRange.collapse(true); + + return anchorRange.compareBoundaryPoints(anchorRange.START_TO_START, focusRange) <= 0; + }, + + normalize: function() { + var self = this, rng = self.getRng(); + + if (!isIE && new RangeUtils(self.dom).normalize(rng)) { + self.setRng(rng, self.isForward()); + } + + return rng; + }, + + /** + * Executes callback of the current selection matches the specified selector or not and passes the state and args to the callback. + * + * @method selectorChanged + * @param {String} selector CSS selector to check for. + * @param {function} callback Callback with state and args when the selector is matches or not. + */ + selectorChanged: function(selector, callback) { + var self = this, currentSelectors; + + if (!self.selectorChangedData) { + self.selectorChangedData = {}; + currentSelectors = {}; + + self.editor.on('NodeChange', function(e) { + var node = e.element, dom = self.dom, parents = dom.getParents(node, null, dom.getRoot()), matchedSelectors = {}; + + // Check for new matching selectors + each(self.selectorChangedData, function(callbacks, selector) { + each(parents, function(node) { + if (dom.is(node, selector)) { + if (!currentSelectors[selector]) { + // Execute callbacks + each(callbacks, function(callback) { + callback(true, {node: node, selector: selector, parents: parents}); + }); + + currentSelectors[selector] = callbacks; + } + + matchedSelectors[selector] = callbacks; + return false; + } + }); + }); + + // Check if current selectors still match + each(currentSelectors, function(callbacks, selector) { + if (!matchedSelectors[selector]) { + delete currentSelectors[selector]; + + each(callbacks, function(callback) { + callback(false, {node: node, selector: selector, parents: parents}); + }); + } + }); + }); + } + + // Add selector listeners + if (!self.selectorChangedData[selector]) { + self.selectorChangedData[selector] = []; + } + + self.selectorChangedData[selector].push(callback); + + return self; + }, + + getScrollContainer: function() { + var scrollContainer, node = this.dom.getRoot(); + + while (node && node.nodeName != 'BODY') { + if (node.scrollHeight > node.clientHeight) { + scrollContainer = node; + break; + } + + node = node.parentNode; + } + + return scrollContainer; + }, + + scrollIntoView: function(elm) { + var y, viewPort, self = this, dom = self.dom, root = dom.getRoot(), viewPortY, viewPortH; + + function getPos(elm) { + var x = 0, y = 0; + + var offsetParent = elm; + while (offsetParent && offsetParent.nodeType) { + x += offsetParent.offsetLeft || 0; + y += offsetParent.offsetTop || 0; + offsetParent = offsetParent.offsetParent; + } + + return {x: x, y: y}; + } + + if (root.nodeName != 'BODY') { + var scrollContainer = self.getScrollContainer(); + if (scrollContainer) { + y = getPos(elm).y - getPos(scrollContainer).y; + viewPortH = scrollContainer.clientHeight; + viewPortY = scrollContainer.scrollTop; + if (y < viewPortY || y + 25 > viewPortY + viewPortH) { + scrollContainer.scrollTop = y < viewPortY ? y : y - viewPortH + 25; + } + + return; + } + } + + viewPort = dom.getViewPort(self.editor.getWin()); + y = dom.getPos(elm).y; + viewPortY = viewPort.y; + viewPortH = viewPort.h; + if (y < viewPort.y || y + 25 > viewPortY + viewPortH) { + self.editor.getWin().scrollTo(0, y < viewPortY ? y : y - viewPortH + 25); + } + }, + + _moveEndPoint: function(rng, node, start) { + var root = node, walker = new TreeWalker(node, root); + var nonEmptyElementsMap = this.dom.schema.getNonEmptyElements(); + + do { + // Text node + if (node.nodeType == 3 && trim(node.nodeValue).length !== 0) { + if (start) { + rng.setStart(node, 0); + } else { + rng.setEnd(node, node.nodeValue.length); + } + + return; + } + + // BR/IMG/INPUT elements + if (nonEmptyElementsMap[node.nodeName]) { + if (start) { + rng.setStartBefore(node); + } else { + if (node.nodeName == 'BR') { + rng.setEndBefore(node); + } else { + rng.setEndAfter(node); + } + } + + return; + } + + // Found empty text block old IE can place the selection inside those + if (Env.ie && Env.ie < 11 && this.dom.isBlock(node) && this.dom.isEmpty(node)) { + if (start) { + rng.setStart(node, 0); + } else { + rng.setEnd(node, 0); + } + + return; + } + } while ((node = (start ? walker.next() : walker.prev()))); + + // Failed to find any text node or other suitable location then move to the root of body + if (root.nodeName == 'BODY') { + if (start) { + rng.setStart(root, 0); + } else { + rng.setEnd(root, root.childNodes.length); + } + } + }, + + destroy: function() { + this.win = null; + this.controlSelection.destroy(); + } + }; + + return Selection; +}); + +// Included from: js/tinymce/classes/Formatter.js + +/** + * Formatter.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Text formatter engine class. This class is used to apply formats like bold, italic, font size + * etc to the current selection or specific nodes. This engine was build to replace the browsers + * default formatting logic for execCommand due to it's inconsistent and buggy behavior. + * + * @class tinymce.Formatter + * @example + * tinymce.activeEditor.formatter.register('mycustomformat', { + * inline: 'span', + * styles: {color: '#ff0000'} + * }); + * + * tinymce.activeEditor.formatter.apply('mycustomformat'); + */ +define("tinymce/Formatter", [ + "tinymce/dom/TreeWalker", + "tinymce/dom/RangeUtils", + "tinymce/util/Tools" +], function(TreeWalker, RangeUtils, Tools) { + /** + * Constructs a new formatter instance. + * + * @constructor Formatter + * @param {tinymce.Editor} ed Editor instance to construct the formatter engine to. + */ + return function(ed) { + var formats = {}, + dom = ed.dom, + selection = ed.selection, + rangeUtils = new RangeUtils(dom), + isValid = ed.schema.isValidChild, + isBlock = dom.isBlock, + forcedRootBlock = ed.settings.forced_root_block, + nodeIndex = dom.nodeIndex, + INVISIBLE_CHAR = '\uFEFF', + MCE_ATTR_RE = /^(src|href|style)$/, + FALSE = false, + TRUE = true, + formatChangeData, + undef, + getContentEditable = dom.getContentEditable, + disableCaretContainer, + markCaretContainersBogus; + + var each = Tools.each, + grep = Tools.grep, + walk = Tools.walk, + extend = Tools.extend; + + function isTextBlock(name) { + if (name.nodeType) { + name = name.nodeName; + } + + return !!ed.schema.getTextBlockElements()[name.toLowerCase()]; + } + + function getParents(node, selector) { + return dom.getParents(node, selector, dom.getRoot()); + } + + function isCaretNode(node) { + return node.nodeType === 1 && node.id === '_mce_caret'; + } + + function defaultFormats() { + register({ + alignleft: [ + {selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li', styles: {textAlign: 'left'}, defaultBlock: 'div'}, + {selector: 'img,table', collapsed: false, styles: {'float': 'left'}} + ], + + aligncenter: [ + {selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li', styles: {textAlign: 'center'}, defaultBlock: 'div'}, + {selector: 'img', collapsed: false, styles: {display: 'block', marginLeft: 'auto', marginRight: 'auto'}}, + {selector: 'table', collapsed: false, styles: {marginLeft: 'auto', marginRight: 'auto'}} + ], + + alignright: [ + {selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li', styles: {textAlign: 'right'}, defaultBlock: 'div'}, + {selector: 'img,table', collapsed: false, styles: {'float': 'right'}} + ], + + alignjustify: [ + {selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li', styles: {textAlign: 'justify'}, defaultBlock: 'div'} + ], + + bold: [ + {inline: 'strong', remove: 'all'}, + {inline: 'span', styles: {fontWeight: 'bold'}}, + {inline: 'b', remove: 'all'} + ], + + italic: [ + {inline: 'em', remove: 'all'}, + {inline: 'span', styles: {fontStyle: 'italic'}}, + {inline: 'i', remove: 'all'} + ], + + underline: [ + {inline: 'span', styles: {textDecoration: 'underline'}, exact: true}, + {inline: 'u', remove: 'all'} + ], + + strikethrough: [ + {inline: 'span', styles: {textDecoration: 'line-through'}, exact: true}, + {inline: 'strike', remove: 'all'} + ], + + forecolor: {inline: 'span', styles: {color: '%value'}, wrap_links: false}, + hilitecolor: {inline: 'span', styles: {backgroundColor: '%value'}, wrap_links: false}, + fontname: {inline: 'span', styles: {fontFamily: '%value'}}, + fontsize: {inline: 'span', styles: {fontSize: '%value'}}, + fontsize_class: {inline: 'span', attributes: {'class': '%value'}}, + blockquote: {block: 'blockquote', wrapper: 1, remove: 'all'}, + subscript: {inline: 'sub'}, + superscript: {inline: 'sup'}, + code: {inline: 'code'}, + + link: {inline: 'a', selector: 'a', remove: 'all', split: true, deep: true, + onmatch: function() { + return true; + }, + + onformat: function(elm, fmt, vars) { + each(vars, function(value, key) { + dom.setAttrib(elm, key, value); + }); + } + }, + + removeformat: [ + { + selector: 'b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q', + remove: 'all', + split: true, + expand: false, + block_expand: true, + deep: true + }, + {selector: 'span', attributes: ['style', 'class'], remove: 'empty', split: true, expand: false, deep: true}, + {selector: '*', attributes: ['style', 'class'], split: false, expand: false, deep: true} + ] + }); + + // Register default block formats + each('p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp'.split(/\s/), function(name) { + register(name, {block: name, remove: 'all'}); + }); + + // Register user defined formats + register(ed.settings.formats); + } + + function addKeyboardShortcuts() { + // Add some inline shortcuts + ed.addShortcut('ctrl+b', 'bold_desc', 'Bold'); + ed.addShortcut('ctrl+i', 'italic_desc', 'Italic'); + ed.addShortcut('ctrl+u', 'underline_desc', 'Underline'); + + // BlockFormat shortcuts keys + for (var i = 1; i <= 6; i++) { + ed.addShortcut('ctrl+' + i, '', ['FormatBlock', false, 'h' + i]); + } + + ed.addShortcut('ctrl+7', '', ['FormatBlock', false, 'p']); + ed.addShortcut('ctrl+8', '', ['FormatBlock', false, 'div']); + ed.addShortcut('ctrl+9', '', ['FormatBlock', false, 'address']); + } + + // Public functions + + /** + * Returns the format by name or all formats if no name is specified. + * + * @method get + * @param {String} name Optional name to retrive by. + * @return {Array/Object} Array/Object with all registred formats or a specific format. + */ + function get(name) { + return name ? formats[name] : formats; + } + + /** + * Registers a specific format by name. + * + * @method register + * @param {Object/String} name Name of the format for example "bold". + * @param {Object/Array} format Optional format object or array of format variants + * can only be omitted if the first arg is an object. + */ + function register(name, format) { + if (name) { + if (typeof(name) !== 'string') { + each(name, function(format, name) { + register(name, format); + }); + } else { + // Force format into array and add it to internal collection + format = format.length ? format : [format]; + + each(format, function(format) { + // Set deep to false by default on selector formats this to avoid removing + // alignment on images inside paragraphs when alignment is changed on paragraphs + if (format.deep === undef) { + format.deep = !format.selector; + } + + // Default to true + if (format.split === undef) { + format.split = !format.selector || format.inline; + } + + // Default to true + if (format.remove === undef && format.selector && !format.inline) { + format.remove = 'none'; + } + + // Mark format as a mixed format inline + block level + if (format.selector && format.inline) { + format.mixed = true; + format.block_expand = true; + } + + // Split classes if needed + if (typeof(format.classes) === 'string') { + format.classes = format.classes.split(/\s+/); + } + }); + + formats[name] = format; + } + } + } + + function getTextDecoration(node) { + var decoration; + + ed.dom.getParent(node, function(n) { + decoration = ed.dom.getStyle(n, 'text-decoration'); + return decoration && decoration !== 'none'; + }); + + return decoration; + } + + function processUnderlineAndColor(node) { + var textDecoration; + if (node.nodeType === 1 && node.parentNode && node.parentNode.nodeType === 1) { + textDecoration = getTextDecoration(node.parentNode); + if (ed.dom.getStyle(node, 'color') && textDecoration) { + ed.dom.setStyle(node, 'text-decoration', textDecoration); + } else if (ed.dom.getStyle(node, 'textdecoration') === textDecoration) { + ed.dom.setStyle(node, 'text-decoration', null); + } + } + } + + /** + * Applies the specified format to the current selection or specified node. + * + * @method apply + * @param {String} name Name of format to apply. + * @param {Object} vars Optional list of variables to replace within format before applying it. + * @param {Node} node Optional node to apply the format to defaults to current selection. + */ + function apply(name, vars, node) { + var formatList = get(name), format = formatList[0], bookmark, rng, isCollapsed = !node && selection.isCollapsed(); + + function setElementFormat(elm, fmt) { + fmt = fmt || format; + + if (elm) { + if (fmt.onformat) { + fmt.onformat(elm, fmt, vars, node); + } + + each(fmt.styles, function(value, name) { + dom.setStyle(elm, name, replaceVars(value, vars)); + }); + + each(fmt.attributes, function(value, name) { + dom.setAttrib(elm, name, replaceVars(value, vars)); + }); + + each(fmt.classes, function(value) { + value = replaceVars(value, vars); + + if (!dom.hasClass(elm, value)) { + dom.addClass(elm, value); + } + }); + } + } + + function adjustSelectionToVisibleSelection() { + function findSelectionEnd(start, end) { + var walker = new TreeWalker(end); + for (node = walker.current(); node; node = walker.prev()) { + if (node.childNodes.length > 1 || node == start || node.tagName == 'BR') { + return node; + } + } + } + + // Adjust selection so that a end container with a end offset of zero is not included in the selection + // as this isn't visible to the user. + var rng = ed.selection.getRng(); + var start = rng.startContainer; + var end = rng.endContainer; + + if (start != end && rng.endOffset === 0) { + var newEnd = findSelectionEnd(start, end); + var endOffset = newEnd.nodeType == 3 ? newEnd.length : newEnd.childNodes.length; + + rng.setEnd(newEnd, endOffset); + } + + return rng; + } + + function applyStyleToList(node, bookmark, wrapElm, newWrappers, process){ + var nodes = [], listIndex = -1, list, startIndex = -1, endIndex = -1, currentWrapElm; + + // find the index of the first child list. + each(node.childNodes, function(n, index) { + if (n.nodeName === "UL" || n.nodeName === "OL") { + listIndex = index; + list = n; + return false; + } + }); + + // get the index of the bookmarks + each(node.childNodes, function(n, index) { + if (n.nodeName === "SPAN" && dom.getAttrib(n, "data-mce-type") == "bookmark") { + if (n.id == bookmark.id + "_start") { + startIndex = index; + } else if (n.id == bookmark.id + "_end") { + endIndex = index; + } + } + }); + + // if the selection spans across an embedded list, or there isn't an embedded list - handle processing normally + if (listIndex <= 0 || (startIndex < listIndex && endIndex > listIndex)) { + each(grep(node.childNodes), process); + return 0; + } else { + currentWrapElm = dom.clone(wrapElm, FALSE); + + // create a list of the nodes on the same side of the list as the selection + each(grep(node.childNodes), function(n, index) { + if ((startIndex < listIndex && index < listIndex) || (startIndex > listIndex && index > listIndex)) { + nodes.push(n); + n.parentNode.removeChild(n); + } + }); + + // insert the wrapping element either before or after the list. + if (startIndex < listIndex) { + node.insertBefore(currentWrapElm, list); + } else if (startIndex > listIndex) { + node.insertBefore(currentWrapElm, list.nextSibling); + } + + // add the new nodes to the list. + newWrappers.push(currentWrapElm); + + each(nodes, function(node) { + currentWrapElm.appendChild(node); + }); + + return currentWrapElm; + } + } + + function applyRngStyle(rng, bookmark, node_specific) { + var newWrappers = [], wrapName, wrapElm, contentEditable = true; + + // Setup wrapper element + wrapName = format.inline || format.block; + wrapElm = dom.create(wrapName); + setElementFormat(wrapElm); + + rangeUtils.walk(rng, function(nodes) { + var currentWrapElm; + + /** + * Process a list of nodes wrap them. + */ + function process(node) { + var nodeName, parentName, found, hasContentEditableState, lastContentEditable; + + lastContentEditable = contentEditable; + nodeName = node.nodeName.toLowerCase(); + parentName = node.parentNode.nodeName.toLowerCase(); + + // Node has a contentEditable value + if (node.nodeType === 1 && getContentEditable(node)) { + lastContentEditable = contentEditable; + contentEditable = getContentEditable(node) === "true"; + hasContentEditableState = true; // We don't want to wrap the container only it's children + } + + // Stop wrapping on br elements + if (isEq(nodeName, 'br')) { + currentWrapElm = 0; + + // Remove any br elements when we wrap things + if (format.block) { + dom.remove(node); + } + + return; + } + + // If node is wrapper type + if (format.wrapper && matchNode(node, name, vars)) { + currentWrapElm = 0; + return; + } + + // Can we rename the block + // TODO: Break this if up, too complex + if (contentEditable && !hasContentEditableState && format.block && + !format.wrapper && isTextBlock(nodeName) && isValid(parentName, wrapName)) { + node = dom.rename(node, wrapName); + setElementFormat(node); + newWrappers.push(node); + currentWrapElm = 0; + return; + } + + // Handle selector patterns + if (format.selector) { + // Look for matching formats + each(formatList, function(format) { + // Check collapsed state if it exists + if ('collapsed' in format && format.collapsed !== isCollapsed) { + return; + } + + if (dom.is(node, format.selector) && !isCaretNode(node)) { + setElementFormat(node, format); + found = true; + } + }); + + // Continue processing if a selector match wasn't found and a inline element is defined + if (!format.inline || found) { + currentWrapElm = 0; + return; + } + } + + // Is it valid to wrap this item + // TODO: Break this if up, too complex + if (contentEditable && !hasContentEditableState && isValid(wrapName, nodeName) && isValid(parentName, wrapName) && + !(!node_specific && node.nodeType === 3 && + node.nodeValue.length === 1 && + node.nodeValue.charCodeAt(0) === 65279) && + !isCaretNode(node) && + (!format.inline || !isBlock(node))) { + // Start wrapping + if (!currentWrapElm) { + // Wrap the node + currentWrapElm = dom.clone(wrapElm, FALSE); + node.parentNode.insertBefore(currentWrapElm, node); + newWrappers.push(currentWrapElm); + } + + currentWrapElm.appendChild(node); + } else if (nodeName == 'li' && bookmark) { + // Start wrapping - if we are in a list node and have a bookmark, then + // we will always begin by wrapping in a new element. + currentWrapElm = applyStyleToList(node, bookmark, wrapElm, newWrappers, process); + } else { + // Start a new wrapper for possible children + currentWrapElm = 0; + + each(grep(node.childNodes), process); + + if (hasContentEditableState) { + contentEditable = lastContentEditable; // Restore last contentEditable state from stack + } + + // End the last wrapper + currentWrapElm = 0; + } + } + + // Process siblings from range + each(nodes, process); + }); + + // Wrap links inside as well, for example color inside a link when the wrapper is around the link + if (format.wrap_links === false) { + each(newWrappers, function(node) { + function process(node) { + var i, currentWrapElm, children; + + if (node.nodeName === 'A') { + currentWrapElm = dom.clone(wrapElm, FALSE); + newWrappers.push(currentWrapElm); + + children = grep(node.childNodes); + for (i = 0; i < children.length; i++) { + currentWrapElm.appendChild(children[i]); + } + + node.appendChild(currentWrapElm); + } + + each(grep(node.childNodes), process); + } + + process(node); + }); + } + + // Cleanup + each(newWrappers, function(node) { + var childCount; + + function getChildCount(node) { + var count = 0; + + each(node.childNodes, function(node) { + if (!isWhiteSpaceNode(node) && !isBookmarkNode(node)) { + count++; + } + }); + + return count; + } + + function mergeStyles(node) { + var child, clone; + + each(node.childNodes, function(node) { + if (node.nodeType == 1 && !isBookmarkNode(node) && !isCaretNode(node)) { + child = node; + return FALSE; // break loop + } + }); + + // If child was found and of the same type as the current node + if (child && !isBookmarkNode(child) && matchName(child, format)) { + clone = dom.clone(child, FALSE); + setElementFormat(clone); + + dom.replace(clone, node, TRUE); + dom.remove(child, 1); + } + + return clone || node; + } + + childCount = getChildCount(node); + + // Remove empty nodes but only if there is multiple wrappers and they are not block + // elements so never remove single <h1></h1> since that would remove the + // currrent empty block element where the caret is at + if ((newWrappers.length > 1 || !isBlock(node)) && childCount === 0) { + dom.remove(node, 1); + return; + } + + if (format.inline || format.wrapper) { + // Merges the current node with it's children of similar type to reduce the number of elements + if (!format.exact && childCount === 1) { + node = mergeStyles(node); + } + + // Remove/merge children + each(formatList, function(format) { + // Merge all children of similar type will move styles from child to parent + // this: <span style="color:red"><b><span style="color:red; font-size:10px">text</span></b></span> + // will become: <span style="color:red"><b><span style="font-size:10px">text</span></b></span> + each(dom.select(format.inline, node), function(child) { + var parent; + + if (isBookmarkNode(child)) { + return; + } + + // When wrap_links is set to false we don't want + // to remove the format on children within links + if (format.wrap_links === false) { + parent = child.parentNode; + + do { + if (parent.nodeName === 'A') { + return; + } + } while ((parent = parent.parentNode)); + } + + removeFormat(format, vars, child, format.exact ? child : null); + }); + }); + + // Remove child if direct parent is of same type + if (matchNode(node.parentNode, name, vars)) { + dom.remove(node, 1); + node = 0; + return TRUE; + } + + // Look for parent with similar style format + if (format.merge_with_parents) { + dom.getParent(node.parentNode, function(parent) { + if (matchNode(parent, name, vars)) { + dom.remove(node, 1); + node = 0; + return TRUE; + } + }); + } + + // Merge next and previous siblings if they are similar <b>text</b><b>text</b> becomes <b>texttext</b> + if (node && format.merge_siblings !== false) { + node = mergeSiblings(getNonWhiteSpaceSibling(node), node); + node = mergeSiblings(node, getNonWhiteSpaceSibling(node, TRUE)); + } + } + }); + } + + if (format) { + if (node) { + if (node.nodeType) { + rng = dom.createRng(); + rng.setStartBefore(node); + rng.setEndAfter(node); + applyRngStyle(expandRng(rng, formatList), null, true); + } else { + applyRngStyle(node, null, true); + } + } else { + if (!isCollapsed || !format.inline || dom.select('td.mce-item-selected,th.mce-item-selected').length) { + // Obtain selection node before selection is unselected by applyRngStyle() + var curSelNode = ed.selection.getNode(); + + // If the formats have a default block and we can't find a parent block then + // start wrapping it with a DIV this is for forced_root_blocks: false + // It's kind of a hack but people should be using the default block type P since all desktop editors work that way + if (!forcedRootBlock && formatList[0].defaultBlock && !dom.getParent(curSelNode, dom.isBlock)) { + apply(formatList[0].defaultBlock); + } + + // Apply formatting to selection + ed.selection.setRng(adjustSelectionToVisibleSelection()); + bookmark = selection.getBookmark(); + applyRngStyle(expandRng(selection.getRng(TRUE), formatList), bookmark); + + // Colored nodes should be underlined so that the color of the underline matches the text color. + if (format.styles && (format.styles.color || format.styles.textDecoration)) { + walk(curSelNode, processUnderlineAndColor, 'childNodes'); + processUnderlineAndColor(curSelNode); + } + + selection.moveToBookmark(bookmark); + moveStart(selection.getRng(TRUE)); + ed.nodeChanged(); + } else { + performCaretAction('apply', name, vars); + } + } + } + } + + /** + * Removes the specified format from the current selection or specified node. + * + * @method remove + * @param {String} name Name of format to remove. + * @param {Object} vars Optional list of variables to replace within format before removing it. + * @param {Node/Range} node Optional node or DOM range to remove the format from defaults to current selection. + */ + function remove(name, vars, node) { + var formatList = get(name), format = formatList[0], bookmark, rng, contentEditable = true; + + // Merges the styles for each node + function process(node) { + var children, i, l, lastContentEditable, hasContentEditableState; + + // Node has a contentEditable value + if (node.nodeType === 1 && getContentEditable(node)) { + lastContentEditable = contentEditable; + contentEditable = getContentEditable(node) === "true"; + hasContentEditableState = true; // We don't want to wrap the container only it's children + } + + // Grab the children first since the nodelist might be changed + children = grep(node.childNodes); + + // Process current node + if (contentEditable && !hasContentEditableState) { + for (i = 0, l = formatList.length; i < l; i++) { + if (removeFormat(formatList[i], vars, node, node)) { + break; + } + } + } + + // Process the children + if (format.deep) { + if (children.length) { + for (i = 0, l = children.length; i < l; i++) { + process(children[i]); + } + + if (hasContentEditableState) { + contentEditable = lastContentEditable; // Restore last contentEditable state from stack + } + } + } + } + + function findFormatRoot(container) { + var formatRoot; + + // Find format root + each(getParents(container.parentNode).reverse(), function(parent) { + var format; + + // Find format root element + if (!formatRoot && parent.id != '_start' && parent.id != '_end') { + // Is the node matching the format we are looking for + format = matchNode(parent, name, vars); + if (format && format.split !== false) { + formatRoot = parent; + } + } + }); + + return formatRoot; + } + + function wrapAndSplit(format_root, container, target, split) { + var parent, clone, lastClone, firstClone, i, formatRootParent; + + // Format root found then clone formats and split it + if (format_root) { + formatRootParent = format_root.parentNode; + + for (parent = container.parentNode; parent && parent != formatRootParent; parent = parent.parentNode) { + clone = dom.clone(parent, FALSE); + + for (i = 0; i < formatList.length; i++) { + if (removeFormat(formatList[i], vars, clone, clone)) { + clone = 0; + break; + } + } + + // Build wrapper node + if (clone) { + if (lastClone) { + clone.appendChild(lastClone); + } + + if (!firstClone) { + firstClone = clone; + } + + lastClone = clone; + } + } + + // Never split block elements if the format is mixed + if (split && (!format.mixed || !isBlock(format_root))) { + container = dom.split(format_root, container); + } + + // Wrap container in cloned formats + if (lastClone) { + target.parentNode.insertBefore(lastClone, target); + firstClone.appendChild(target); + } + } + + return container; + } + + function splitToFormatRoot(container) { + return wrapAndSplit(findFormatRoot(container), container, container, true); + } + + function unwrap(start) { + var node = dom.get(start ? '_start' : '_end'), + out = node[start ? 'firstChild' : 'lastChild']; + + // If the end is placed within the start the result will be removed + // So this checks if the out node is a bookmark node if it is it + // checks for another more suitable node + if (isBookmarkNode(out)) { + out = out[start ? 'firstChild' : 'lastChild']; + } + + dom.remove(node, true); + + return out; + } + + function removeRngStyle(rng) { + var startContainer, endContainer; + var commonAncestorContainer = rng.commonAncestorContainer; + + rng = expandRng(rng, formatList, TRUE); + + if (format.split) { + startContainer = getContainer(rng, TRUE); + endContainer = getContainer(rng); + + if (startContainer != endContainer) { + // WebKit will render the table incorrectly if we wrap a TH or TD in a SPAN + // so let's see if we can use the first child instead + // This will happen if you triple click a table cell and use remove formatting + if (/^(TR|TH|TD)$/.test(startContainer.nodeName) && startContainer.firstChild) { + if (startContainer.nodeName == "TR") { + startContainer = startContainer.firstChild.firstChild || startContainer; + } else { + startContainer = startContainer.firstChild || startContainer; + } + } + + // Try to adjust endContainer as well if cells on the same row were selected - bug #6410 + if (commonAncestorContainer && + /^T(HEAD|BODY|FOOT|R)$/.test(commonAncestorContainer.nodeName) && + /^(TH|TD)$/.test(endContainer.nodeName) && endContainer.firstChild) { + endContainer = endContainer.firstChild || endContainer; + } + + // Wrap start/end nodes in span element since these might be cloned/moved + startContainer = wrap(startContainer, 'span', {id: '_start', 'data-mce-type': 'bookmark'}); + endContainer = wrap(endContainer, 'span', {id: '_end', 'data-mce-type': 'bookmark'}); + + // Split start/end + splitToFormatRoot(startContainer); + splitToFormatRoot(endContainer); + + // Unwrap start/end to get real elements again + startContainer = unwrap(TRUE); + endContainer = unwrap(); + } else { + startContainer = endContainer = splitToFormatRoot(startContainer); + } + + // Update range positions since they might have changed after the split operations + rng.startContainer = startContainer.parentNode; + rng.startOffset = nodeIndex(startContainer); + rng.endContainer = endContainer.parentNode; + rng.endOffset = nodeIndex(endContainer) + 1; + } + + // Remove items between start/end + rangeUtils.walk(rng, function(nodes) { + each(nodes, function(node) { + process(node); + + // Remove parent span if it only contains text-decoration: underline, yet a parent node is also underlined. + if (node.nodeType === 1 && ed.dom.getStyle(node, 'text-decoration') === 'underline' && + node.parentNode && getTextDecoration(node.parentNode) === 'underline') { + removeFormat({ + 'deep': false, + 'exact': true, + 'inline': 'span', + 'styles': { + 'textDecoration': 'underline' + } + }, null, node); + } + }); + }); + } + + // Handle node + if (node) { + if (node.nodeType) { + rng = dom.createRng(); + rng.setStartBefore(node); + rng.setEndAfter(node); + removeRngStyle(rng); + } else { + removeRngStyle(node); + } + + return; + } + + if (!selection.isCollapsed() || !format.inline || dom.select('td.mce-item-selected,th.mce-item-selected').length) { + bookmark = selection.getBookmark(); + removeRngStyle(selection.getRng(TRUE)); + selection.moveToBookmark(bookmark); + + // Check if start element still has formatting then we are at: "<b>text|</b>text" + // and need to move the start into the next text node + if (format.inline && match(name, vars, selection.getStart())) { + moveStart(selection.getRng(true)); + } + + ed.nodeChanged(); + } else { + performCaretAction('remove', name, vars); + } + } + + /** + * Toggles the specified format on/off. + * + * @method toggle + * @param {String} name Name of format to apply/remove. + * @param {Object} vars Optional list of variables to replace within format before applying/removing it. + * @param {Node} node Optional node to apply the format to or remove from. Defaults to current selection. + */ + function toggle(name, vars, node) { + var fmt = get(name); + + if (match(name, vars, node) && (!('toggle' in fmt[0]) || fmt[0].toggle)) { + remove(name, vars, node); + } else { + apply(name, vars, node); + } + } + + /** + * Return true/false if the specified node has the specified format. + * + * @method matchNode + * @param {Node} node Node to check the format on. + * @param {String} name Format name to check. + * @param {Object} vars Optional list of variables to replace before checking it. + * @param {Boolean} similar Match format that has similar properties. + * @return {Object} Returns the format object it matches or undefined if it doesn't match. + */ + function matchNode(node, name, vars, similar) { + var formatList = get(name), format, i, classes; + + function matchItems(node, format, item_name) { + var key, value, items = format[item_name], i; + + // Custom match + if (format.onmatch) { + return format.onmatch(node, format, item_name); + } + + // Check all items + if (items) { + // Non indexed object + if (items.length === undef) { + for (key in items) { + if (items.hasOwnProperty(key)) { + if (item_name === 'attributes') { + value = dom.getAttrib(node, key); + } else { + value = getStyle(node, key); + } + + if (similar && !value && !format.exact) { + return; + } + + if ((!similar || format.exact) && !isEq(value, normalizeStyleValue(replaceVars(items[key], vars), key))) { + return; + } + } + } + } else { + // Only one match needed for indexed arrays + for (i = 0; i < items.length; i++) { + if (item_name === 'attributes' ? dom.getAttrib(node, items[i]) : getStyle(node, items[i])) { + return format; + } + } + } + } + + return format; + } + + if (formatList && node) { + // Check each format in list + for (i = 0; i < formatList.length; i++) { + format = formatList[i]; + + // Name name, attributes, styles and classes + if (matchName(node, format) && matchItems(node, format, 'attributes') && matchItems(node, format, 'styles')) { + // Match classes + if ((classes = format.classes)) { + for (i = 0; i < classes.length; i++) { + if (!dom.hasClass(node, classes[i])) { + return; + } + } + } + + return format; + } + } + } + } + + /** + * Matches the current selection or specified node against the specified format name. + * + * @method match + * @param {String} name Name of format to match. + * @param {Object} vars Optional list of variables to replace before checking it. + * @param {Node} node Optional node to check. + * @return {boolean} true/false if the specified selection/node matches the format. + */ + function match(name, vars, node) { + var startNode; + + function matchParents(node) { + var root = dom.getRoot(); + + if (node === root) { + return false; + } + + // Find first node with similar format settings + node = dom.getParent(node, function(node) { + return node.parentNode === root || !!matchNode(node, name, vars, true); + }); + + // Do an exact check on the similar format element + return matchNode(node, name, vars); + } + + // Check specified node + if (node) { + return matchParents(node); + } + + // Check selected node + node = selection.getNode(); + if (matchParents(node)) { + return TRUE; + } + + // Check start node if it's different + startNode = selection.getStart(); + if (startNode != node) { + if (matchParents(startNode)) { + return TRUE; + } + } + + return FALSE; + } + + /** + * Matches the current selection against the array of formats and returns a new array with matching formats. + * + * @method matchAll + * @param {Array} names Name of format to match. + * @param {Object} vars Optional list of variables to replace before checking it. + * @return {Array} Array with matched formats. + */ + function matchAll(names, vars) { + var startElement, matchedFormatNames = [], checkedMap = {}; + + // Check start of selection for formats + startElement = selection.getStart(); + dom.getParent(startElement, function(node) { + var i, name; + + for (i = 0; i < names.length; i++) { + name = names[i]; + + if (!checkedMap[name] && matchNode(node, name, vars)) { + checkedMap[name] = true; + matchedFormatNames.push(name); + } + } + }, dom.getRoot()); + + return matchedFormatNames; + } + + /** + * Returns true/false if the specified format can be applied to the current selection or not. It + * will currently only check the state for selector formats, it returns true on all other format types. + * + * @method canApply + * @param {String} name Name of format to check. + * @return {boolean} true/false if the specified format can be applied to the current selection/node. + */ + function canApply(name) { + var formatList = get(name), startNode, parents, i, x, selector; + + if (formatList) { + startNode = selection.getStart(); + parents = getParents(startNode); + + for (x = formatList.length - 1; x >= 0; x--) { + selector = formatList[x].selector; + + // Format is not selector based then always return TRUE + // Is it has a defaultBlock then it's likely it can be applied for example align on a non block element line + if (!selector || formatList[x].defaultBlock) { + return TRUE; + } + + for (i = parents.length - 1; i >= 0; i--) { + if (dom.is(parents[i], selector)) { + return TRUE; + } + } + } + } + + return FALSE; + } + + /** + * Executes the specified callback when the current selection matches the formats or not. + * + * @method formatChanged + * @param {String} formats Comma separated list of formats to check for. + * @param {function} callback Callback with state and args when the format is changed/toggled on/off. + * @param {Boolean} similar True/false state if the match should handle similar or exact formats. + */ + function formatChanged(formats, callback, similar) { + var currentFormats; + + // Setup format node change logic + if (!formatChangeData) { + formatChangeData = {}; + currentFormats = {}; + + ed.on('NodeChange', function(e) { + var parents = getParents(e.element), matchedFormats = {}; + + // Check for new formats + each(formatChangeData, function(callbacks, format) { + each(parents, function(node) { + if (matchNode(node, format, {}, callbacks.similar)) { + if (!currentFormats[format]) { + // Execute callbacks + each(callbacks, function(callback) { + callback(true, {node: node, format: format, parents: parents}); + }); + + currentFormats[format] = callbacks; + } + + matchedFormats[format] = callbacks; + return false; + } + }); + }); + + // Check if current formats still match + each(currentFormats, function(callbacks, format) { + if (!matchedFormats[format]) { + delete currentFormats[format]; + + each(callbacks, function(callback) { + callback(false, {node: e.element, format: format, parents: parents}); + }); + } + }); + }); + } + + // Add format listeners + each(formats.split(','), function(format) { + if (!formatChangeData[format]) { + formatChangeData[format] = []; + formatChangeData[format].similar = similar; + } + + formatChangeData[format].push(callback); + }); + + return this; + } + + // Expose to public + extend(this, { + get: get, + register: register, + apply: apply, + remove: remove, + toggle: toggle, + match: match, + matchAll: matchAll, + matchNode: matchNode, + canApply: canApply, + formatChanged: formatChanged + }); + + // Initialize + defaultFormats(); + addKeyboardShortcuts(); + ed.on('BeforeGetContent', function() { + if (markCaretContainersBogus) { + markCaretContainersBogus(); + } + }); + ed.on('mouseup keydown', function(e) { + if (disableCaretContainer) { + disableCaretContainer(e); + } + }); + + // Private functions + + /** + * Checks if the specified nodes name matches the format inline/block or selector. + * + * @private + * @param {Node} node Node to match against the specified format. + * @param {Object} format Format object o match with. + * @return {boolean} true/false if the format matches. + */ + function matchName(node, format) { + // Check for inline match + if (isEq(node, format.inline)) { + return TRUE; + } + + // Check for block match + if (isEq(node, format.block)) { + return TRUE; + } + + // Check for selector match + if (format.selector) { + return node.nodeType == 1 && dom.is(node, format.selector); + } + } + + /** + * Compares two string/nodes regardless of their case. + * + * @private + * @param {String/Node} Node or string to compare. + * @param {String/Node} Node or string to compare. + * @return {boolean} True/false if they match. + */ + function isEq(str1, str2) { + str1 = str1 || ''; + str2 = str2 || ''; + + str1 = '' + (str1.nodeName || str1); + str2 = '' + (str2.nodeName || str2); + + return str1.toLowerCase() == str2.toLowerCase(); + } + + /** + * Returns the style by name on the specified node. This method modifies the style + * contents to make it more easy to match. This will resolve a few browser issues. + * + * @private + * @param {Node} node to get style from. + * @param {String} name Style name to get. + * @return {String} Style item value. + */ + function getStyle(node, name) { + return normalizeStyleValue(dom.getStyle(node, name), name); + } + + /** + * Normalize style value by name. This method modifies the style contents + * to make it more easy to match. This will resolve a few browser issues. + * + * @private + * @param {Node} node to get style from. + * @param {String} name Style name to get. + * @return {String} Style item value. + */ + function normalizeStyleValue(value, name) { + // Force the format to hex + if (name == 'color' || name == 'backgroundColor') { + value = dom.toHex(value); + } + + // Opera will return bold as 700 + if (name == 'fontWeight' && value == 700) { + value = 'bold'; + } + + // Normalize fontFamily so "'Font name', Font" becomes: "Font name,Font" + if (name == 'fontFamily') { + value = value.replace(/[\'\"]/g, '').replace(/,\s+/g, ','); + } + + return '' + value; + } + + /** + * Replaces variables in the value. The variable format is %var. + * + * @private + * @param {String} value Value to replace variables in. + * @param {Object} vars Name/value array with variables to replace. + * @return {String} New value with replaced variables. + */ + function replaceVars(value, vars) { + if (typeof(value) != "string") { + value = value(vars); + } else if (vars) { + value = value.replace(/%(\w+)/g, function(str, name) { + return vars[name] || str; + }); + } + + return value; + } + + function isWhiteSpaceNode(node) { + return node && node.nodeType === 3 && /^([\t \r\n]+|)$/.test(node.nodeValue); + } + + function wrap(node, name, attrs) { + var wrapper = dom.create(name, attrs); + + node.parentNode.insertBefore(wrapper, node); + wrapper.appendChild(node); + + return wrapper; + } + + /** + * Expands the specified range like object to depending on format. + * + * For example on block formats it will move the start/end position + * to the beginning of the current block. + * + * @private + * @param {Object} rng Range like object. + * @param {Array} formats Array with formats to expand by. + * @return {Object} Expanded range like object. + */ + function expandRng(rng, format, remove) { + var lastIdx, leaf, endPoint, + startContainer = rng.startContainer, + startOffset = rng.startOffset, + endContainer = rng.endContainer, + endOffset = rng.endOffset; + + // This function walks up the tree if there is no siblings before/after the node + function findParentContainer(start) { + var container, parent, sibling, siblingName, root; + + container = parent = start ? startContainer : endContainer; + siblingName = start ? 'previousSibling' : 'nextSibling'; + root = dom.getRoot(); + + function isBogusBr(node) { + return node.nodeName == "BR" && node.getAttribute('data-mce-bogus') && !node.nextSibling; + } + + // If it's a text node and the offset is inside the text + if (container.nodeType == 3 && !isWhiteSpaceNode(container)) { + if (start ? startOffset > 0 : endOffset < container.nodeValue.length) { + return container; + } + } + + /*eslint no-constant-condition:0 */ + while (true) { + // Stop expanding on block elements + if (!format[0].block_expand && isBlock(parent)) { + return parent; + } + + // Walk left/right + for (sibling = parent[siblingName]; sibling; sibling = sibling[siblingName]) { + if (!isBookmarkNode(sibling) && !isWhiteSpaceNode(sibling) && !isBogusBr(sibling)) { + return parent; + } + } + + // Check if we can move up are we at root level or body level + if (parent.parentNode == root) { + container = parent; + break; + } + + parent = parent.parentNode; + } + + return container; + } + + // This function walks down the tree to find the leaf at the selection. + // The offset is also returned as if node initially a leaf, the offset may be in the middle of the text node. + function findLeaf(node, offset) { + if (offset === undef) { + offset = node.nodeType === 3 ? node.length : node.childNodes.length; + } + + while (node && node.hasChildNodes()) { + node = node.childNodes[offset]; + if (node) { + offset = node.nodeType === 3 ? node.length : node.childNodes.length; + } + } + return { node: node, offset: offset }; + } + + // If index based start position then resolve it + if (startContainer.nodeType == 1 && startContainer.hasChildNodes()) { + lastIdx = startContainer.childNodes.length - 1; + startContainer = startContainer.childNodes[startOffset > lastIdx ? lastIdx : startOffset]; + + if (startContainer.nodeType == 3) { + startOffset = 0; + } + } + + // If index based end position then resolve it + if (endContainer.nodeType == 1 && endContainer.hasChildNodes()) { + lastIdx = endContainer.childNodes.length - 1; + endContainer = endContainer.childNodes[endOffset > lastIdx ? lastIdx : endOffset - 1]; + + if (endContainer.nodeType == 3) { + endOffset = endContainer.nodeValue.length; + } + } + + // Expands the node to the closes contentEditable false element if it exists + function findParentContentEditable(node) { + var parent = node; + + while (parent) { + if (parent.nodeType === 1 && getContentEditable(parent)) { + return getContentEditable(parent) === "false" ? parent : node; + } + + parent = parent.parentNode; + } + + return node; + } + + function findWordEndPoint(container, offset, start) { + var walker, node, pos, lastTextNode; + + function findSpace(node, offset) { + var pos, pos2, str = node.nodeValue; + + if (typeof(offset) == "undefined") { + offset = start ? str.length : 0; + } + + if (start) { + pos = str.lastIndexOf(' ', offset); + pos2 = str.lastIndexOf('\u00a0', offset); + pos = pos > pos2 ? pos : pos2; + + // Include the space on remove to avoid tag soup + if (pos !== -1 && !remove) { + pos++; + } + } else { + pos = str.indexOf(' ', offset); + pos2 = str.indexOf('\u00a0', offset); + pos = pos !== -1 && (pos2 === -1 || pos < pos2) ? pos : pos2; + } + + return pos; + } + + if (container.nodeType === 3) { + pos = findSpace(container, offset); + + if (pos !== -1) { + return {container: container, offset: pos}; + } + + lastTextNode = container; + } + + // Walk the nodes inside the block + walker = new TreeWalker(container, dom.getParent(container, isBlock) || ed.getBody()); + while ((node = walker[start ? 'prev' : 'next']())) { + if (node.nodeType === 3) { + lastTextNode = node; + pos = findSpace(node); + + if (pos !== -1) { + return {container: node, offset: pos}; + } + } else if (isBlock(node)) { + break; + } + } + + if (lastTextNode) { + if (start) { + offset = 0; + } else { + offset = lastTextNode.length; + } + + return {container: lastTextNode, offset: offset}; + } + } + + function findSelectorEndPoint(container, sibling_name) { + var parents, i, y, curFormat; + + if (container.nodeType == 3 && container.nodeValue.length === 0 && container[sibling_name]) { + container = container[sibling_name]; + } + + parents = getParents(container); + for (i = 0; i < parents.length; i++) { + for (y = 0; y < format.length; y++) { + curFormat = format[y]; + + // If collapsed state is set then skip formats that doesn't match that + if ("collapsed" in curFormat && curFormat.collapsed !== rng.collapsed) { + continue; + } + + if (dom.is(parents[i], curFormat.selector)) { + return parents[i]; + } + } + } + + return container; + } + + function findBlockEndPoint(container, sibling_name) { + var node, root = dom.getRoot(); + + // Expand to block of similar type + if (!format[0].wrapper) { + node = dom.getParent(container, format[0].block, root); + } + + // Expand to first wrappable block element or any block element + if (!node) { + node = dom.getParent(container.nodeType == 3 ? container.parentNode : container, function(node) { + // Fixes #6183 where it would expand to editable parent element in inline mode + return node != root && isTextBlock(node); + }); + } + + // Exclude inner lists from wrapping + if (node && format[0].wrapper) { + node = getParents(node, 'ul,ol').reverse()[0] || node; + } + + // Didn't find a block element look for first/last wrappable element + if (!node) { + node = container; + + while (node[sibling_name] && !isBlock(node[sibling_name])) { + node = node[sibling_name]; + + // Break on BR but include it will be removed later on + // we can't remove it now since we need to check if it can be wrapped + if (isEq(node, 'br')) { + break; + } + } + } + + return node || container; + } + + // Expand to closest contentEditable element + startContainer = findParentContentEditable(startContainer); + endContainer = findParentContentEditable(endContainer); + + // Exclude bookmark nodes if possible + if (isBookmarkNode(startContainer.parentNode) || isBookmarkNode(startContainer)) { + startContainer = isBookmarkNode(startContainer) ? startContainer : startContainer.parentNode; + startContainer = startContainer.nextSibling || startContainer; + + if (startContainer.nodeType == 3) { + startOffset = 0; + } + } + + if (isBookmarkNode(endContainer.parentNode) || isBookmarkNode(endContainer)) { + endContainer = isBookmarkNode(endContainer) ? endContainer : endContainer.parentNode; + endContainer = endContainer.previousSibling || endContainer; + + if (endContainer.nodeType == 3) { + endOffset = endContainer.length; + } + } + + if (format[0].inline) { + if (rng.collapsed) { + // Expand left to closest word boundary + endPoint = findWordEndPoint(startContainer, startOffset, true); + if (endPoint) { + startContainer = endPoint.container; + startOffset = endPoint.offset; + } + + // Expand right to closest word boundary + endPoint = findWordEndPoint(endContainer, endOffset); + if (endPoint) { + endContainer = endPoint.container; + endOffset = endPoint.offset; + } + } + + // Avoid applying formatting to a trailing space. + leaf = findLeaf(endContainer, endOffset); + if (leaf.node) { + while (leaf.node && leaf.offset === 0 && leaf.node.previousSibling) { + leaf = findLeaf(leaf.node.previousSibling); + } + + if (leaf.node && leaf.offset > 0 && leaf.node.nodeType === 3 && + leaf.node.nodeValue.charAt(leaf.offset - 1) === ' ') { + + if (leaf.offset > 1) { + endContainer = leaf.node; + endContainer.splitText(leaf.offset - 1); + } + } + } + } + + // Move start/end point up the tree if the leaves are sharp and if we are in different containers + // Example * becomes !: !<p><b><i>*text</i><i>text*</i></b></p>! + // This will reduce the number of wrapper elements that needs to be created + // Move start point up the tree + if (format[0].inline || format[0].block_expand) { + if (!format[0].inline || (startContainer.nodeType != 3 || startOffset === 0)) { + startContainer = findParentContainer(true); + } + + if (!format[0].inline || (endContainer.nodeType != 3 || endOffset === endContainer.nodeValue.length)) { + endContainer = findParentContainer(); + } + } + + // Expand start/end container to matching selector + if (format[0].selector && format[0].expand !== FALSE && !format[0].inline) { + // Find new startContainer/endContainer if there is better one + startContainer = findSelectorEndPoint(startContainer, 'previousSibling'); + endContainer = findSelectorEndPoint(endContainer, 'nextSibling'); + } + + // Expand start/end container to matching block element or text node + if (format[0].block || format[0].selector) { + // Find new startContainer/endContainer if there is better one + startContainer = findBlockEndPoint(startContainer, 'previousSibling'); + endContainer = findBlockEndPoint(endContainer, 'nextSibling'); + + // Non block element then try to expand up the leaf + if (format[0].block) { + if (!isBlock(startContainer)) { + startContainer = findParentContainer(true); + } + + if (!isBlock(endContainer)) { + endContainer = findParentContainer(); + } + } + } + + // Setup index for startContainer + if (startContainer.nodeType == 1) { + startOffset = nodeIndex(startContainer); + startContainer = startContainer.parentNode; + } + + // Setup index for endContainer + if (endContainer.nodeType == 1) { + endOffset = nodeIndex(endContainer) + 1; + endContainer = endContainer.parentNode; + } + + // Return new range like object + return { + startContainer: startContainer, + startOffset: startOffset, + endContainer: endContainer, + endOffset: endOffset + }; + } + + /** + * Removes the specified format for the specified node. It will also remove the node if it doesn't have + * any attributes if the format specifies it to do so. + * + * @private + * @param {Object} format Format object with items to remove from node. + * @param {Object} vars Name/value object with variables to apply to format. + * @param {Node} node Node to remove the format styles on. + * @param {Node} compare_node Optional compare node, if specified the styles will be compared to that node. + * @return {Boolean} True/false if the node was removed or not. + */ + function removeFormat(format, vars, node, compare_node) { + var i, attrs, stylesModified; + + // Check if node matches format + if (!matchName(node, format)) { + return FALSE; + } + + // Should we compare with format attribs and styles + if (format.remove != 'all') { + // Remove styles + each(format.styles, function(value, name) { + value = normalizeStyleValue(replaceVars(value, vars), name); + + // Indexed array + if (typeof(name) === 'number') { + name = value; + compare_node = 0; + } + + if (!compare_node || isEq(getStyle(compare_node, name), value)) { + dom.setStyle(node, name, ''); + } + + stylesModified = 1; + }); + + // Remove style attribute if it's empty + if (stylesModified && dom.getAttrib(node, 'style') === '') { + node.removeAttribute('style'); + node.removeAttribute('data-mce-style'); + } + + // Remove attributes + each(format.attributes, function(value, name) { + var valueOut; + + value = replaceVars(value, vars); + + // Indexed array + if (typeof(name) === 'number') { + name = value; + compare_node = 0; + } + + if (!compare_node || isEq(dom.getAttrib(compare_node, name), value)) { + // Keep internal classes + if (name == 'class') { + value = dom.getAttrib(node, name); + if (value) { + // Build new class value where everything is removed except the internal prefixed classes + valueOut = ''; + each(value.split(/\s+/), function(cls) { + if (/mce\w+/.test(cls)) { + valueOut += (valueOut ? ' ' : '') + cls; + } + }); + + // We got some internal classes left + if (valueOut) { + dom.setAttrib(node, name, valueOut); + return; + } + } + } + + // IE6 has a bug where the attribute doesn't get removed correctly + if (name == "class") { + node.removeAttribute('className'); + } + + // Remove mce prefixed attributes + if (MCE_ATTR_RE.test(name)) { + node.removeAttribute('data-mce-' + name); + } + + node.removeAttribute(name); + } + }); + + // Remove classes + each(format.classes, function(value) { + value = replaceVars(value, vars); + + if (!compare_node || dom.hasClass(compare_node, value)) { + dom.removeClass(node, value); + } + }); + + // Check for non internal attributes + attrs = dom.getAttribs(node); + for (i = 0; i < attrs.length; i++) { + if (attrs[i].nodeName.indexOf('_') !== 0) { + return FALSE; + } + } + } + + // Remove the inline child if it's empty for example <b> or <span> + if (format.remove != 'none') { + removeNode(node, format); + return TRUE; + } + } + + /** + * Removes the node and wrap it's children in paragraphs before doing so or + * appends BR elements to the beginning/end of the block element if forcedRootBlocks is disabled. + * + * If the div in the node below gets removed: + * text<div>text</div>text + * + * Output becomes: + * text<div><br />text<br /></div>text + * + * So when the div is removed the result is: + * text<br />text<br />text + * + * @private + * @param {Node} node Node to remove + apply BR/P elements to. + * @param {Object} format Format rule. + * @return {Node} Input node. + */ + function removeNode(node, format) { + var parentNode = node.parentNode, rootBlockElm; + + function find(node, next, inc) { + node = getNonWhiteSpaceSibling(node, next, inc); + + return !node || (node.nodeName == 'BR' || isBlock(node)); + } + + if (format.block) { + if (!forcedRootBlock) { + // Append BR elements if needed before we remove the block + if (isBlock(node) && !isBlock(parentNode)) { + if (!find(node, FALSE) && !find(node.firstChild, TRUE, 1)) { + node.insertBefore(dom.create('br'), node.firstChild); + } + + if (!find(node, TRUE) && !find(node.lastChild, FALSE, 1)) { + node.appendChild(dom.create('br')); + } + } + } else { + // Wrap the block in a forcedRootBlock if we are at the root of document + if (parentNode == dom.getRoot()) { + if (!format.list_block || !isEq(node, format.list_block)) { + each(grep(node.childNodes), function(node) { + if (isValid(forcedRootBlock, node.nodeName.toLowerCase())) { + if (!rootBlockElm) { + rootBlockElm = wrap(node, forcedRootBlock); + dom.setAttribs(rootBlockElm, ed.settings.forced_root_block_attrs); + } else { + rootBlockElm.appendChild(node); + } + } else { + rootBlockElm = 0; + } + }); + } + } + } + } + + // Never remove nodes that isn't the specified inline element if a selector is specified too + if (format.selector && format.inline && !isEq(format.inline, node)) { + return; + } + + dom.remove(node, 1); + } + + /** + * Returns the next/previous non whitespace node. + * + * @private + * @param {Node} node Node to start at. + * @param {boolean} next (Optional) Include next or previous node defaults to previous. + * @param {boolean} inc (Optional) Include the current node in checking. Defaults to false. + * @return {Node} Next or previous node or undefined if it wasn't found. + */ + function getNonWhiteSpaceSibling(node, next, inc) { + if (node) { + next = next ? 'nextSibling' : 'previousSibling'; + + for (node = inc ? node : node[next]; node; node = node[next]) { + if (node.nodeType == 1 || !isWhiteSpaceNode(node)) { + return node; + } + } + } + } + + /** + * Checks if the specified node is a bookmark node or not. + * + * @private + * @param {Node} node Node to check if it's a bookmark node or not. + * @return {Boolean} true/false if the node is a bookmark node. + */ + function isBookmarkNode(node) { + return node && node.nodeType == 1 && node.getAttribute('data-mce-type') == 'bookmark'; + } + + /** + * Merges the next/previous sibling element if they match. + * + * @private + * @param {Node} prev Previous node to compare/merge. + * @param {Node} next Next node to compare/merge. + * @return {Node} Next node if we didn't merge and prev node if we did. + */ + function mergeSiblings(prev, next) { + var sibling, tmpSibling; + + /** + * Compares two nodes and checks if it's attributes and styles matches. + * This doesn't compare classes as items since their order is significant. + * + * @private + * @param {Node} node1 First node to compare with. + * @param {Node} node2 Second node to compare with. + * @return {boolean} True/false if the nodes are the same or not. + */ + function compareElements(node1, node2) { + // Not the same name + if (node1.nodeName != node2.nodeName) { + return FALSE; + } + + /** + * Returns all the nodes attributes excluding internal ones, styles and classes. + * + * @private + * @param {Node} node Node to get attributes from. + * @return {Object} Name/value object with attributes and attribute values. + */ + function getAttribs(node) { + var attribs = {}; + + each(dom.getAttribs(node), function(attr) { + var name = attr.nodeName.toLowerCase(); + + // Don't compare internal attributes or style + if (name.indexOf('_') !== 0 && name !== 'style' && name !== 'data-mce-style') { + attribs[name] = dom.getAttrib(node, name); + } + }); + + return attribs; + } + + /** + * Compares two objects checks if it's key + value exists in the other one. + * + * @private + * @param {Object} obj1 First object to compare. + * @param {Object} obj2 Second object to compare. + * @return {boolean} True/false if the objects matches or not. + */ + function compareObjects(obj1, obj2) { + var value, name; + + for (name in obj1) { + // Obj1 has item obj2 doesn't have + if (obj1.hasOwnProperty(name)) { + value = obj2[name]; + + // Obj2 doesn't have obj1 item + if (value === undef) { + return FALSE; + } + + // Obj2 item has a different value + if (obj1[name] != value) { + return FALSE; + } + + // Delete similar value + delete obj2[name]; + } + } + + // Check if obj 2 has something obj 1 doesn't have + for (name in obj2) { + // Obj2 has item obj1 doesn't have + if (obj2.hasOwnProperty(name)) { + return FALSE; + } + } + + return TRUE; + } + + // Attribs are not the same + if (!compareObjects(getAttribs(node1), getAttribs(node2))) { + return FALSE; + } + + // Styles are not the same + if (!compareObjects(dom.parseStyle(dom.getAttrib(node1, 'style')), dom.parseStyle(dom.getAttrib(node2, 'style')))) { + return FALSE; + } + + return !isBookmarkNode(node1) && !isBookmarkNode(node2); + } + + function findElementSibling(node, sibling_name) { + for (sibling = node; sibling; sibling = sibling[sibling_name]) { + if (sibling.nodeType == 3 && sibling.nodeValue.length !== 0) { + return node; + } + + if (sibling.nodeType == 1 && !isBookmarkNode(sibling)) { + return sibling; + } + } + + return node; + } + + // Check if next/prev exists and that they are elements + if (prev && next) { + // If previous sibling is empty then jump over it + prev = findElementSibling(prev, 'previousSibling'); + next = findElementSibling(next, 'nextSibling'); + + // Compare next and previous nodes + if (compareElements(prev, next)) { + // Append nodes between + for (sibling = prev.nextSibling; sibling && sibling != next;) { + tmpSibling = sibling; + sibling = sibling.nextSibling; + prev.appendChild(tmpSibling); + } + + // Remove next node + dom.remove(next); + + // Move children into prev node + each(grep(next.childNodes), function(node) { + prev.appendChild(node); + }); + + return prev; + } + } + + return next; + } + + function getContainer(rng, start) { + var container, offset, lastIdx; + + container = rng[start ? 'startContainer' : 'endContainer']; + offset = rng[start ? 'startOffset' : 'endOffset']; + + if (container.nodeType == 1) { + lastIdx = container.childNodes.length - 1; + + if (!start && offset) { + offset--; + } + + container = container.childNodes[offset > lastIdx ? lastIdx : offset]; + } + + // If start text node is excluded then walk to the next node + if (container.nodeType === 3 && start && offset >= container.nodeValue.length) { + container = new TreeWalker(container, ed.getBody()).next() || container; + } + + // If end text node is excluded then walk to the previous node + if (container.nodeType === 3 && !start && offset === 0) { + container = new TreeWalker(container, ed.getBody()).prev() || container; + } + + return container; + } + + function performCaretAction(type, name, vars) { + var caretContainerId = '_mce_caret', debug = ed.settings.caret_debug; + + // Creates a caret container bogus element + function createCaretContainer(fill) { + var caretContainer = dom.create('span', {id: caretContainerId, 'data-mce-bogus': true, style: debug ? 'color:red' : ''}); + + if (fill) { + caretContainer.appendChild(ed.getDoc().createTextNode(INVISIBLE_CHAR)); + } + + return caretContainer; + } + + function isCaretContainerEmpty(node, nodes) { + while (node) { + if ((node.nodeType === 3 && node.nodeValue !== INVISIBLE_CHAR) || node.childNodes.length > 1) { + return false; + } + + // Collect nodes + if (nodes && node.nodeType === 1) { + nodes.push(node); + } + + node = node.firstChild; + } + + return true; + } + + // Returns any parent caret container element + function getParentCaretContainer(node) { + while (node) { + if (node.id === caretContainerId) { + return node; + } + + node = node.parentNode; + } + } + + // Finds the first text node in the specified node + function findFirstTextNode(node) { + var walker; + + if (node) { + walker = new TreeWalker(node, node); + + for (node = walker.current(); node; node = walker.next()) { + if (node.nodeType === 3) { + return node; + } + } + } + } + + // Removes the caret container for the specified node or all on the current document + function removeCaretContainer(node, move_caret) { + var child, rng; + + if (!node) { + node = getParentCaretContainer(selection.getStart()); + + if (!node) { + while ((node = dom.get(caretContainerId))) { + removeCaretContainer(node, false); + } + } + } else { + rng = selection.getRng(true); + + if (isCaretContainerEmpty(node)) { + if (move_caret !== false) { + rng.setStartBefore(node); + rng.setEndBefore(node); + } + + dom.remove(node); + } else { + child = findFirstTextNode(node); + + if (child.nodeValue.charAt(0) === INVISIBLE_CHAR) { + child = child.deleteData(0, 1); + } + + dom.remove(node, 1); + } + + selection.setRng(rng); + } + } + + // Applies formatting to the caret postion + function applyCaretFormat() { + var rng, caretContainer, textNode, offset, bookmark, container, text; + + rng = selection.getRng(true); + offset = rng.startOffset; + container = rng.startContainer; + text = container.nodeValue; + + caretContainer = getParentCaretContainer(selection.getStart()); + if (caretContainer) { + textNode = findFirstTextNode(caretContainer); + } + + // Expand to word is caret is in the middle of a text node and the char before/after is a alpha numeric character + if (text && offset > 0 && offset < text.length && /\w/.test(text.charAt(offset)) && /\w/.test(text.charAt(offset - 1))) { + // Get bookmark of caret position + bookmark = selection.getBookmark(); + + // Collapse bookmark range (WebKit) + rng.collapse(true); + + // Expand the range to the closest word and split it at those points + rng = expandRng(rng, get(name)); + rng = rangeUtils.split(rng); + + // Apply the format to the range + apply(name, vars, rng); + + // Move selection back to caret position + selection.moveToBookmark(bookmark); + } else { + if (!caretContainer || textNode.nodeValue !== INVISIBLE_CHAR) { + caretContainer = createCaretContainer(true); + textNode = caretContainer.firstChild; + + rng.insertNode(caretContainer); + offset = 1; + + apply(name, vars, caretContainer); + } else { + apply(name, vars, caretContainer); + } + + // Move selection to text node + selection.setCursorLocation(textNode, offset); + } + } + + function removeCaretFormat() { + var rng = selection.getRng(true), container, offset, bookmark, + hasContentAfter, node, formatNode, parents = [], i, caretContainer; + + container = rng.startContainer; + offset = rng.startOffset; + node = container; + + if (container.nodeType == 3) { + if (offset != container.nodeValue.length || container.nodeValue === INVISIBLE_CHAR) { + hasContentAfter = true; + } + + node = node.parentNode; + } + + while (node) { + if (matchNode(node, name, vars)) { + formatNode = node; + break; + } + + if (node.nextSibling) { + hasContentAfter = true; + } + + parents.push(node); + node = node.parentNode; + } + + // Node doesn't have the specified format + if (!formatNode) { + return; + } + + // Is there contents after the caret then remove the format on the element + if (hasContentAfter) { + // Get bookmark of caret position + bookmark = selection.getBookmark(); + + // Collapse bookmark range (WebKit) + rng.collapse(true); + + // Expand the range to the closest word and split it at those points + rng = expandRng(rng, get(name), true); + rng = rangeUtils.split(rng); + + // Remove the format from the range + remove(name, vars, rng); + + // Move selection back to caret position + selection.moveToBookmark(bookmark); + } else { + caretContainer = createCaretContainer(); + + node = caretContainer; + for (i = parents.length - 1; i >= 0; i--) { + node.appendChild(dom.clone(parents[i], false)); + node = node.firstChild; + } + + // Insert invisible character into inner most format element + node.appendChild(dom.doc.createTextNode(INVISIBLE_CHAR)); + node = node.firstChild; + + var block = dom.getParent(formatNode, isTextBlock); + + if (block && dom.isEmpty(block)) { + // Replace formatNode with caretContainer when removing format from empty block like <p><b>|</b></p> + formatNode.parentNode.replaceChild(caretContainer, formatNode); + } else { + // Insert caret container after the formated node + dom.insertAfter(caretContainer, formatNode); + } + + // Move selection to text node + selection.setCursorLocation(node, 1); + + // If the formatNode is empty, we can remove it safely. + if (dom.isEmpty(formatNode)) { + dom.remove(formatNode); + } + } + } + + // Checks if the parent caret container node isn't empty if that is the case it + // will remove the bogus state on all children that isn't empty + function unmarkBogusCaretParents() { + var caretContainer; + + caretContainer = getParentCaretContainer(selection.getStart()); + if (caretContainer && !dom.isEmpty(caretContainer)) { + walk(caretContainer, function(node) { + if (node.nodeType == 1 && node.id !== caretContainerId && !dom.isEmpty(node)) { + dom.setAttrib(node, 'data-mce-bogus', null); + } + }, 'childNodes'); + } + } + + // Only bind the caret events once + if (!ed._hasCaretEvents) { + // Mark current caret container elements as bogus when getting the contents so we don't end up with empty elements + markCaretContainersBogus = function() { + var nodes = [], i; + + if (isCaretContainerEmpty(getParentCaretContainer(selection.getStart()), nodes)) { + // Mark children + i = nodes.length; + while (i--) { + dom.setAttrib(nodes[i], 'data-mce-bogus', '1'); + } + } + }; + + disableCaretContainer = function(e) { + var keyCode = e.keyCode; + + removeCaretContainer(); + + // Remove caret container on keydown and it's a backspace, enter or left/right arrow keys + if (keyCode == 8 || keyCode == 37 || keyCode == 39) { + removeCaretContainer(getParentCaretContainer(selection.getStart())); + } + + unmarkBogusCaretParents(); + }; + + // Remove bogus state if they got filled by contents using editor.selection.setContent + ed.on('SetContent', function(e) { + if (e.selection) { + unmarkBogusCaretParents(); + } + }); + ed._hasCaretEvents = true; + } + + // Do apply or remove caret format + if (type == "apply") { + applyCaretFormat(); + } else { + removeCaretFormat(); + } + } + + /** + * Moves the start to the first suitable text node. + */ + function moveStart(rng) { + var container = rng.startContainer, + offset = rng.startOffset, isAtEndOfText, + walker, node, nodes, tmpNode; + + // Convert text node into index if possible + if (container.nodeType == 3 && offset >= container.nodeValue.length) { + // Get the parent container location and walk from there + offset = nodeIndex(container); + container = container.parentNode; + isAtEndOfText = true; + } + + // Move startContainer/startOffset in to a suitable node + if (container.nodeType == 1) { + nodes = container.childNodes; + container = nodes[Math.min(offset, nodes.length - 1)]; + walker = new TreeWalker(container, dom.getParent(container, dom.isBlock)); + + // If offset is at end of the parent node walk to the next one + if (offset > nodes.length - 1 || isAtEndOfText) { + walker.next(); + } + + for (node = walker.current(); node; node = walker.next()) { + if (node.nodeType == 3 && !isWhiteSpaceNode(node)) { + // IE has a "neat" feature where it moves the start node into the closest element + // we can avoid this by inserting an element before it and then remove it after we set the selection + tmpNode = dom.create('a', null, INVISIBLE_CHAR); + node.parentNode.insertBefore(tmpNode, node); + + // Set selection and remove tmpNode + rng.setStart(node, 0); + selection.setRng(rng); + dom.remove(tmpNode); + + return; + } + } + } + } + }; +}); + +// Included from: js/tinymce/classes/UndoManager.js + +/** + * UndoManager.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles the undo/redo history levels for the editor. Since the build in undo/redo has major drawbacks a custom one was needed. + * + * @class tinymce.UndoManager + */ +define("tinymce/UndoManager", [ + "tinymce/Env", + "tinymce/util/Tools" +], function(Env, Tools) { + var trim = Tools.trim, trimContentRegExp; + + trimContentRegExp = new RegExp([ + '<span[^>]+data-mce-bogus[^>]+>[\u200B\uFEFF]+<\\/span>', // Trim bogus spans like caret containers + '<div[^>]+data-mce-bogus[^>]+><\\/div>', // Trim bogus divs like resize handles + '\\s?data-mce-selected="[^"]+"' // Trim temporaty data-mce prefixed attributes like data-mce-selected + ].join('|'), 'gi'); + + return function(editor) { + var self = this, index = 0, data = [], beforeBookmark, isFirstTypedCharacter, lock; + + // Returns a trimmed version of the current editor contents + function getContent() { + return trim(editor.getContent({format: 'raw', no_events: 1}).replace(trimContentRegExp, '')); + } + + function addNonTypingUndoLevel(e) { + self.typing = false; + self.add({}, e); + } + + // Add initial undo level when the editor is initialized + editor.on('init', function() { + self.add(); + }); + + // Get position before an execCommand is processed + editor.on('BeforeExecCommand', function(e) { + var cmd = e.command; + + if (cmd != 'Undo' && cmd != 'Redo' && cmd != 'mceRepaint') { + self.beforeChange(); + } + }); + + // Add undo level after an execCommand call was made + editor.on('ExecCommand', function(e) { + var cmd = e.command; + + if (cmd != 'Undo' && cmd != 'Redo' && cmd != 'mceRepaint') { + addNonTypingUndoLevel(e); + } + }); + + editor.on('ObjectResizeStart', function() { + self.beforeChange(); + }); + + editor.on('SaveContent ObjectResized blur', addNonTypingUndoLevel); + editor.dom.bind(editor.dom.getRoot(), 'dragend', addNonTypingUndoLevel); + + editor.on('KeyUp', function(e) { + var keyCode = e.keyCode; + + if ((keyCode >= 33 && keyCode <= 36) || (keyCode >= 37 && keyCode <= 40) || keyCode == 45 || keyCode == 13 || e.ctrlKey) { + addNonTypingUndoLevel(); + editor.nodeChanged(); + } + + if (keyCode == 46 || keyCode == 8 || (Env.mac && (keyCode == 91 || keyCode == 93))) { + editor.nodeChanged(); + } + + // Fire a TypingUndo event on the first character entered + if (isFirstTypedCharacter && self.typing) { + // Make the it dirty if the content was changed after typing the first character + if (!editor.isDirty()) { + editor.isNotDirty = !data[0] || getContent() == data[0].content; + + // Fire initial change event + if (!editor.isNotDirty) { + editor.fire('change', {level: data[0], lastLevel: null}); + } + } + + editor.fire('TypingUndo'); + isFirstTypedCharacter = false; + editor.nodeChanged(); + } + }); + + editor.on('KeyDown', function(e) { + var keyCode = e.keyCode; + + // Is caracter positon keys left,right,up,down,home,end,pgdown,pgup,enter + if ((keyCode >= 33 && keyCode <= 36) || (keyCode >= 37 && keyCode <= 40) || keyCode == 45) { + if (self.typing) { + addNonTypingUndoLevel(e); + } + + return; + } + + // If key isn't shift,ctrl,alt,capslock,metakey + if ((keyCode < 16 || keyCode > 20) && keyCode != 224 && keyCode != 91 && !self.typing) { + self.beforeChange(); + self.typing = true; + self.add({}, e); + isFirstTypedCharacter = true; + } + }); + + editor.on('MouseDown', function(e) { + if (self.typing) { + addNonTypingUndoLevel(e); + } + }); + + // Add keyboard shortcuts for undo/redo keys + editor.addShortcut('ctrl+z', '', 'Undo'); + editor.addShortcut('ctrl+y,ctrl+shift+z', '', 'Redo'); + + editor.on('AddUndo Undo Redo ClearUndos MouseUp', function(e) { + if (!e.isDefaultPrevented()) { + editor.nodeChanged(); + } + }); + + self = { + // Explose for debugging reasons + data: data, + + /** + * State if the user is currently typing or not. This will add a typing operation into one undo + * level instead of one new level for each keystroke. + * + * @field {Boolean} typing + */ + typing: false, + + /** + * Stores away a bookmark to be used when performing an undo action so that the selection is before + * the change has been made. + * + * @method beforeChange + */ + beforeChange: function() { + if (!lock) { + beforeBookmark = editor.selection.getBookmark(2, true); + } + }, + + /** + * Adds a new undo level/snapshot to the undo list. + * + * @method add + * @param {Object} level Optional undo level object to add. + * @param {DOMEvent} Event Optional event responsible for the creation of the undo level. + * @return {Object} Undo level that got added or null it a level wasn't needed. + */ + add: function(level, event) { + var i, settings = editor.settings, lastLevel; + + level = level || {}; + level.content = getContent(); + + if (lock || editor.removed) { + return null; + } + + if (editor.fire('BeforeAddUndo', {level: level, originalEvent: event}).isDefaultPrevented()) { + return null; + } + + // Add undo level if needed + lastLevel = data[index]; + if (lastLevel && lastLevel.content == level.content) { + return null; + } + + // Set before bookmark on previous level + if (data[index]) { + data[index].beforeBookmark = beforeBookmark; + } + + // Time to compress + if (settings.custom_undo_redo_levels) { + if (data.length > settings.custom_undo_redo_levels) { + for (i = 0; i < data.length - 1; i++) { + data[i] = data[i + 1]; + } + + data.length--; + index = data.length; + } + } + + // Get a non intrusive normalized bookmark + level.bookmark = editor.selection.getBookmark(2, true); + + // Crop array if needed + if (index < data.length - 1) { + data.length = index + 1; + } + + data.push(level); + index = data.length - 1; + + var args = {level: level, lastLevel: lastLevel, originalEvent: event}; + + editor.fire('AddUndo', args); + + if (index > 0) { + editor.isNotDirty = false; + editor.fire('change', args); + } + + return level; + }, + + /** + * Undoes the last action. + * + * @method undo + * @return {Object} Undo level or null if no undo was performed. + */ + undo: function() { + var level; + + if (self.typing) { + self.add(); + self.typing = false; + } + + if (index > 0) { + level = data[--index]; + + // Undo to first index then set dirty state to false + if (index === 0) { + editor.isNotDirty = true; + } + + editor.setContent(level.content, {format: 'raw'}); + editor.selection.moveToBookmark(level.beforeBookmark); + + editor.fire('undo', {level: level}); + } + + return level; + }, + + /** + * Redoes the last action. + * + * @method redo + * @return {Object} Redo level or null if no redo was performed. + */ + redo: function() { + var level; + + if (index < data.length - 1) { + level = data[++index]; + + editor.setContent(level.content, {format: 'raw'}); + editor.selection.moveToBookmark(level.bookmark); + + editor.fire('redo', {level: level}); + } + + return level; + }, + + /** + * Removes all undo levels. + * + * @method clear + */ + clear: function() { + data = []; + index = 0; + self.typing = false; + editor.fire('ClearUndos'); + }, + + /** + * Returns true/false if the undo manager has any undo levels. + * + * @method hasUndo + * @return {Boolean} true/false if the undo manager has any undo levels. + */ + hasUndo: function() { + // Has undo levels or typing and content isn't the same as the initial level + return index > 0 || (self.typing && data[0] && getContent() != data[0].content); + }, + + /** + * Returns true/false if the undo manager has any redo levels. + * + * @method hasRedo + * @return {Boolean} true/false if the undo manager has any redo levels. + */ + hasRedo: function() { + return index < data.length - 1 && !this.typing; + }, + + /** + * Executes the specified function in an undo transation. The selection + * before the modification will be stored to the undo stack and if the DOM changes + * it will add a new undo level. Any methods within the transation that adds undo levels will + * be ignored. So a transation can include calls to execCommand or editor.insertContent. + * + * @method transact + * @param {function} callback Function to execute dom manipulation logic in. + */ + transact: function(callback) { + self.beforeChange(); + + lock = true; + callback(); + lock = false; + + self.add(); + } + }; + + return self; + }; +}); + +// Included from: js/tinymce/classes/EnterKey.js + +/** + * EnterKey.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Contains logic for handling the enter key to split/generate block elements. + */ +define("tinymce/EnterKey", [ + "tinymce/dom/TreeWalker", + "tinymce/dom/RangeUtils", + "tinymce/Env" +], function(TreeWalker, RangeUtils, Env) { + var isIE = Env.ie && Env.ie < 11; + + return function(editor) { + var dom = editor.dom, selection = editor.selection, settings = editor.settings; + var undoManager = editor.undoManager, schema = editor.schema, nonEmptyElementsMap = schema.getNonEmptyElements(); + + function handleEnterKey(evt) { + var rng, tmpRng, editableRoot, container, offset, parentBlock, documentMode, shiftKey, + newBlock, fragment, containerBlock, parentBlockName, containerBlockName, newBlockName, isAfterLastNodeInContainer; + + // Returns true if the block can be split into two blocks or not + function canSplitBlock(node) { + return node && + dom.isBlock(node) && + !/^(TD|TH|CAPTION|FORM)$/.test(node.nodeName) && + !/^(fixed|absolute)/i.test(node.style.position) && + dom.getContentEditable(node) !== "true"; + } + + // Renders empty block on IE + function renderBlockOnIE(block) { + var oldRng; + + if (dom.isBlock(block)) { + oldRng = selection.getRng(); + block.appendChild(dom.create('span', null, '\u00a0')); + selection.select(block); + block.lastChild.outerHTML = ''; + selection.setRng(oldRng); + } + } + + // Remove the first empty inline element of the block so this: <p><b><em></em></b>x</p> becomes this: <p>x</p> + function trimInlineElementsOnLeftSideOfBlock(block) { + var node = block, firstChilds = [], i; + + // Find inner most first child ex: <p><i><b>*</b></i></p> + while ((node = node.firstChild)) { + if (dom.isBlock(node)) { + return; + } + + if (node.nodeType == 1 && !nonEmptyElementsMap[node.nodeName.toLowerCase()]) { + firstChilds.push(node); + } + } + + i = firstChilds.length; + while (i--) { + node = firstChilds[i]; + if (!node.hasChildNodes() || (node.firstChild == node.lastChild && node.firstChild.nodeValue === '')) { + dom.remove(node); + } else { + // Remove <a> </a> see #5381 + if (node.nodeName == "A" && (node.innerText || node.textContent) === ' ') { + dom.remove(node); + } + } + } + } + + // Moves the caret to a suitable position within the root for example in the first non + // pure whitespace text node or before an image + function moveToCaretPosition(root) { + var walker, node, rng, lastNode = root, tempElm; + + function firstNonWhiteSpaceNodeSibling(node) { + while (node) { + if (node.nodeType == 1 || (node.nodeType == 3 && node.data && /[\r\n\s]/.test(node.data))) { + return node; + } + + node = node.nextSibling; + } + } + + // Old IE versions doesn't properly render blocks with br elements in them + // For example <p><br></p> wont be rendered correctly in a contentEditable area + // until you remove the br producing <p></p> + if (Env.ie && Env.ie < 9 && parentBlock && parentBlock.firstChild) { + if (parentBlock.firstChild == parentBlock.lastChild && parentBlock.firstChild.tagName == 'BR') { + dom.remove(parentBlock.firstChild); + } + } + + if (root.nodeName == 'LI') { + var firstChild = firstNonWhiteSpaceNodeSibling(root.firstChild); + + if (firstChild && /^(UL|OL)$/.test(firstChild.nodeName)) { + root.insertBefore(dom.doc.createTextNode('\u00a0'), root.firstChild); + } + } + + rng = dom.createRng(); + + if (root.hasChildNodes()) { + walker = new TreeWalker(root, root); + + while ((node = walker.current())) { + if (node.nodeType == 3) { + rng.setStart(node, 0); + rng.setEnd(node, 0); + break; + } + + if (nonEmptyElementsMap[node.nodeName.toLowerCase()]) { + rng.setStartBefore(node); + rng.setEndBefore(node); + break; + } + + lastNode = node; + node = walker.next(); + } + + if (!node) { + rng.setStart(lastNode, 0); + rng.setEnd(lastNode, 0); + } + } else { + if (root.nodeName == 'BR') { + if (root.nextSibling && dom.isBlock(root.nextSibling)) { + // Trick on older IE versions to render the caret before the BR between two lists + if (!documentMode || documentMode < 9) { + tempElm = dom.create('br'); + root.parentNode.insertBefore(tempElm, root); + } + + rng.setStartBefore(root); + rng.setEndBefore(root); + } else { + rng.setStartAfter(root); + rng.setEndAfter(root); + } + } else { + rng.setStart(root, 0); + rng.setEnd(root, 0); + } + } + + selection.setRng(rng); + + // Remove tempElm created for old IE:s + dom.remove(tempElm); + selection.scrollIntoView(root); + } + + function setForcedBlockAttrs(node) { + var forcedRootBlockName = settings.forced_root_block; + + if (forcedRootBlockName && forcedRootBlockName.toLowerCase() === node.tagName.toLowerCase()) { + dom.setAttribs(node, settings.forced_root_block_attrs); + } + } + + // Creates a new block element by cloning the current one or creating a new one if the name is specified + // This function will also copy any text formatting from the parent block and add it to the new one + function createNewBlock(name) { + var node = container, block, clonedNode, caretNode; + + if (name || parentBlockName == "TABLE") { + block = dom.create(name || newBlockName); + setForcedBlockAttrs(block); + } else { + block = parentBlock.cloneNode(false); + } + + caretNode = block; + + // Clone any parent styles + if (settings.keep_styles !== false) { + do { + if (/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U|VAR|CITE|DFN|CODE|MARK|Q|SUP|SUB|SAMP)$/.test(node.nodeName)) { + // Never clone a caret containers + if (node.id == '_mce_caret') { + continue; + } + + clonedNode = node.cloneNode(false); + dom.setAttrib(clonedNode, 'id', ''); // Remove ID since it needs to be document unique + + if (block.hasChildNodes()) { + clonedNode.appendChild(block.firstChild); + block.appendChild(clonedNode); + } else { + caretNode = clonedNode; + block.appendChild(clonedNode); + } + } + } while ((node = node.parentNode)); + } + + // BR is needed in empty blocks on non IE browsers + if (!isIE) { + caretNode.innerHTML = '<br data-mce-bogus="1">'; + } + + return block; + } + + // Returns true/false if the caret is at the start/end of the parent block element + function isCaretAtStartOrEndOfBlock(start) { + var walker, node, name; + + // Caret is in the middle of a text node like "a|b" + if (container.nodeType == 3 && (start ? offset > 0 : offset < container.nodeValue.length)) { + return false; + } + + // If after the last element in block node edge case for #5091 + if (container.parentNode == parentBlock && isAfterLastNodeInContainer && !start) { + return true; + } + + // If the caret if before the first element in parentBlock + if (start && container.nodeType == 1 && container == parentBlock.firstChild) { + return true; + } + + // Caret can be before/after a table + if (container.nodeName === "TABLE" || (container.previousSibling && container.previousSibling.nodeName == "TABLE")) { + return (isAfterLastNodeInContainer && !start) || (!isAfterLastNodeInContainer && start); + } + + // Walk the DOM and look for text nodes or non empty elements + walker = new TreeWalker(container, parentBlock); + + // If caret is in beginning or end of a text block then jump to the next/previous node + if (container.nodeType == 3) { + if (start && offset === 0) { + walker.prev(); + } else if (!start && offset == container.nodeValue.length) { + walker.next(); + } + } + + while ((node = walker.current())) { + if (node.nodeType === 1) { + // Ignore bogus elements + if (!node.getAttribute('data-mce-bogus')) { + // Keep empty elements like <img /> <input /> but not trailing br:s like <p>text|<br></p> + name = node.nodeName.toLowerCase(); + if (nonEmptyElementsMap[name] && name !== 'br') { + return false; + } + } + } else if (node.nodeType === 3 && !/^[ \t\r\n]*$/.test(node.nodeValue)) { + return false; + } + + if (start) { + walker.prev(); + } else { + walker.next(); + } + } + + return true; + } + + // Wraps any text nodes or inline elements in the specified forced root block name + function wrapSelfAndSiblingsInDefaultBlock(container, offset) { + var newBlock, parentBlock, startNode, node, next, rootBlockName, blockName = newBlockName || 'P'; + + // Not in a block element or in a table cell or caption + parentBlock = dom.getParent(container, dom.isBlock); + rootBlockName = editor.getBody().nodeName.toLowerCase(); + if (!parentBlock || !canSplitBlock(parentBlock)) { + parentBlock = parentBlock || editableRoot; + + if (!parentBlock.hasChildNodes()) { + newBlock = dom.create(blockName); + setForcedBlockAttrs(newBlock); + parentBlock.appendChild(newBlock); + rng.setStart(newBlock, 0); + rng.setEnd(newBlock, 0); + return newBlock; + } + + // Find parent that is the first child of parentBlock + node = container; + while (node.parentNode != parentBlock) { + node = node.parentNode; + } + + // Loop left to find start node start wrapping at + while (node && !dom.isBlock(node)) { + startNode = node; + node = node.previousSibling; + } + + if (startNode && schema.isValidChild(rootBlockName, blockName.toLowerCase())) { + newBlock = dom.create(blockName); + setForcedBlockAttrs(newBlock); + startNode.parentNode.insertBefore(newBlock, startNode); + + // Start wrapping until we hit a block + node = startNode; + while (node && !dom.isBlock(node)) { + next = node.nextSibling; + newBlock.appendChild(node); + node = next; + } + + // Restore range to it's past location + rng.setStart(container, offset); + rng.setEnd(container, offset); + } + } + + return container; + } + + // Inserts a block or br before/after or in the middle of a split list of the LI is empty + function handleEmptyListItem() { + function isFirstOrLastLi(first) { + var node = containerBlock[first ? 'firstChild' : 'lastChild']; + + // Find first/last element since there might be whitespace there + while (node) { + if (node.nodeType == 1) { + break; + } + + node = node[first ? 'nextSibling' : 'previousSibling']; + } + + return node === parentBlock; + } + + function getContainerBlock() { + var containerBlockParent = containerBlock.parentNode; + + if (containerBlockParent.nodeName == 'LI') { + return containerBlockParent; + } + + return containerBlock; + } + + // Check if we are in an nested list + var containerBlockParentName = containerBlock.parentNode.nodeName; + if (/^(OL|UL|LI)$/.test(containerBlockParentName)) { + newBlockName = 'LI'; + } + + newBlock = newBlockName ? createNewBlock(newBlockName) : dom.create('BR'); + + if (isFirstOrLastLi(true) && isFirstOrLastLi()) { + if (containerBlockParentName == 'LI') { + // Nested list is inside a LI + dom.insertAfter(newBlock, getContainerBlock()); + } else { + // Is first and last list item then replace the OL/UL with a text block + dom.replace(newBlock, containerBlock); + } + } else if (isFirstOrLastLi(true)) { + if (containerBlockParentName == 'LI') { + // List nested in an LI then move the list to a new sibling LI + dom.insertAfter(newBlock, getContainerBlock()); + newBlock.appendChild(dom.doc.createTextNode(' ')); // Needed for IE so the caret can be placed + newBlock.appendChild(containerBlock); + } else { + // First LI in list then remove LI and add text block before list + containerBlock.parentNode.insertBefore(newBlock, containerBlock); + } + } else if (isFirstOrLastLi()) { + // Last LI in list then remove LI and add text block after list + dom.insertAfter(newBlock, getContainerBlock()); + renderBlockOnIE(newBlock); + } else { + // Middle LI in list the split the list and insert a text block in the middle + // Extract after fragment and insert it after the current block + containerBlock = getContainerBlock(); + tmpRng = rng.cloneRange(); + tmpRng.setStartAfter(parentBlock); + tmpRng.setEndAfter(containerBlock); + fragment = tmpRng.extractContents(); + + if (newBlockName == 'LI' && fragment.firstChild.nodeName == 'LI') { + newBlock = fragment.firstChild; + dom.insertAfter(fragment, containerBlock); + } else { + dom.insertAfter(fragment, containerBlock); + dom.insertAfter(newBlock, containerBlock); + } + } + + dom.remove(parentBlock); + moveToCaretPosition(newBlock); + undoManager.add(); + } + + // Walks the parent block to the right and look for BR elements + function hasRightSideContent() { + var walker = new TreeWalker(container, parentBlock), node; + + while ((node = walker.next())) { + if (nonEmptyElementsMap[node.nodeName.toLowerCase()] || node.length > 0) { + return true; + } + } + } + + // Inserts a BR element if the forced_root_block option is set to false or empty string + function insertBr() { + var brElm, extraBr, marker; + + if (container && container.nodeType == 3 && offset >= container.nodeValue.length) { + // Insert extra BR element at the end block elements + if (!isIE && !hasRightSideContent()) { + brElm = dom.create('br'); + rng.insertNode(brElm); + rng.setStartAfter(brElm); + rng.setEndAfter(brElm); + extraBr = true; + } + } + + brElm = dom.create('br'); + rng.insertNode(brElm); + + // Rendering modes below IE8 doesn't display BR elements in PRE unless we have a \n before it + if (isIE && parentBlockName == 'PRE' && (!documentMode || documentMode < 8)) { + brElm.parentNode.insertBefore(dom.doc.createTextNode('\r'), brElm); + } + + // Insert temp marker and scroll to that + marker = dom.create('span', {}, ' '); + brElm.parentNode.insertBefore(marker, brElm); + selection.scrollIntoView(marker); + dom.remove(marker); + + if (!extraBr) { + rng.setStartAfter(brElm); + rng.setEndAfter(brElm); + } else { + rng.setStartBefore(brElm); + rng.setEndBefore(brElm); + } + + selection.setRng(rng); + undoManager.add(); + } + + // Trims any linebreaks at the beginning of node user for example when pressing enter in a PRE element + function trimLeadingLineBreaks(node) { + do { + if (node.nodeType === 3) { + node.nodeValue = node.nodeValue.replace(/^[\r\n]+/, ''); + } + + node = node.firstChild; + } while (node); + } + + function getEditableRoot(node) { + var root = dom.getRoot(), parent, editableRoot; + + // Get all parents until we hit a non editable parent or the root + parent = node; + while (parent !== root && dom.getContentEditable(parent) !== "false") { + if (dom.getContentEditable(parent) === "true") { + editableRoot = parent; + } + + parent = parent.parentNode; + } + + return parent !== root ? editableRoot : root; + } + + // Adds a BR at the end of blocks that only contains an IMG or INPUT since + // these might be floated and then they won't expand the block + function addBrToBlockIfNeeded(block) { + var lastChild; + + // IE will render the blocks correctly other browsers needs a BR + if (!isIE) { + block.normalize(); // Remove empty text nodes that got left behind by the extract + + // Check if the block is empty or contains a floated last child + lastChild = block.lastChild; + if (!lastChild || (/^(left|right)$/gi.test(dom.getStyle(lastChild, 'float', true)))) { + dom.add(block, 'br'); + } + } + } + + rng = selection.getRng(true); + + // Event is blocked by some other handler for example the lists plugin + if (evt.isDefaultPrevented()) { + return; + } + + // Delete any selected contents + if (!rng.collapsed) { + editor.execCommand('Delete'); + return; + } + + // Setup range items and newBlockName + new RangeUtils(dom).normalize(rng); + container = rng.startContainer; + offset = rng.startOffset; + newBlockName = (settings.force_p_newlines ? 'p' : '') || settings.forced_root_block; + newBlockName = newBlockName ? newBlockName.toUpperCase() : ''; + documentMode = dom.doc.documentMode; + shiftKey = evt.shiftKey; + + // Resolve node index + if (container.nodeType == 1 && container.hasChildNodes()) { + isAfterLastNodeInContainer = offset > container.childNodes.length - 1; + + container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container; + if (isAfterLastNodeInContainer && container.nodeType == 3) { + offset = container.nodeValue.length; + } else { + offset = 0; + } + } + + // Get editable root node normaly the body element but sometimes a div or span + editableRoot = getEditableRoot(container); + + // If there is no editable root then enter is done inside a contentEditable false element + if (!editableRoot) { + return; + } + + undoManager.beforeChange(); + + // If editable root isn't block nor the root of the editor + if (!dom.isBlock(editableRoot) && editableRoot != dom.getRoot()) { + if (!newBlockName || shiftKey) { + insertBr(); + } + + return; + } + + // Wrap the current node and it's sibling in a default block if it's needed. + // for example this <td>text|<b>text2</b></td> will become this <td><p>text|<b>text2</p></b></td> + // This won't happen if root blocks are disabled or the shiftKey is pressed + if ((newBlockName && !shiftKey) || (!newBlockName && shiftKey)) { + container = wrapSelfAndSiblingsInDefaultBlock(container, offset); + } + + // Find parent block and setup empty block paddings + parentBlock = dom.getParent(container, dom.isBlock); + containerBlock = parentBlock ? dom.getParent(parentBlock.parentNode, dom.isBlock) : null; + + // Setup block names + parentBlockName = parentBlock ? parentBlock.nodeName.toUpperCase() : ''; // IE < 9 & HTML5 + containerBlockName = containerBlock ? containerBlock.nodeName.toUpperCase() : ''; // IE < 9 & HTML5 + + // Enter inside block contained within a LI then split or insert before/after LI + if (containerBlockName == 'LI' && !evt.ctrlKey) { + parentBlock = containerBlock; + parentBlockName = containerBlockName; + } + + // Handle enter in LI + if (parentBlockName == 'LI') { + if (!newBlockName && shiftKey) { + insertBr(); + return; + } + + // Handle enter inside an empty list item + if (dom.isEmpty(parentBlock)) { + handleEmptyListItem(); + return; + } + } + + // Don't split PRE tags but insert a BR instead easier when writing code samples etc + if (parentBlockName == 'PRE' && settings.br_in_pre !== false) { + if (!shiftKey) { + insertBr(); + return; + } + } else { + // If no root block is configured then insert a BR by default or if the shiftKey is pressed + if ((!newBlockName && !shiftKey && parentBlockName != 'LI') || (newBlockName && shiftKey)) { + insertBr(); + return; + } + } + + // If parent block is root then never insert new blocks + if (newBlockName && parentBlock === editor.getBody()) { + return; + } + + // Default block name if it's not configured + newBlockName = newBlockName || 'P'; + + // Insert new block before/after the parent block depending on caret location + if (isCaretAtStartOrEndOfBlock()) { + // If the caret is at the end of a header we produce a P tag after it similar to Word unless we are in a hgroup + if (/^(H[1-6]|PRE|FIGURE)$/.test(parentBlockName) && containerBlockName != 'HGROUP') { + newBlock = createNewBlock(newBlockName); + } else { + newBlock = createNewBlock(); + } + + // Split the current container block element if enter is pressed inside an empty inner block element + if (settings.end_container_on_empty_block && canSplitBlock(containerBlock) && dom.isEmpty(parentBlock)) { + // Split container block for example a BLOCKQUOTE at the current blockParent location for example a P + newBlock = dom.split(containerBlock, parentBlock); + } else { + dom.insertAfter(newBlock, parentBlock); + } + + moveToCaretPosition(newBlock); + } else if (isCaretAtStartOrEndOfBlock(true)) { + // Insert new block before + newBlock = parentBlock.parentNode.insertBefore(createNewBlock(), parentBlock); + renderBlockOnIE(newBlock); + moveToCaretPosition(parentBlock); + } else { + // Extract after fragment and insert it after the current block + tmpRng = rng.cloneRange(); + tmpRng.setEndAfter(parentBlock); + fragment = tmpRng.extractContents(); + trimLeadingLineBreaks(fragment); + newBlock = fragment.firstChild; + dom.insertAfter(fragment, parentBlock); + trimInlineElementsOnLeftSideOfBlock(newBlock); + addBrToBlockIfNeeded(parentBlock); + moveToCaretPosition(newBlock); + } + + dom.setAttrib(newBlock, 'id', ''); // Remove ID since it needs to be document unique + + // Allow custom handling of new blocks + editor.fire('NewBlock', { newBlock: newBlock }); + + undoManager.add(); + } + + editor.on('keydown', function(evt) { + if (evt.keyCode == 13) { + if (handleEnterKey(evt) !== false) { + evt.preventDefault(); + } + } + }); + }; +}); + +// Included from: js/tinymce/classes/ForceBlocks.js + +/** + * ForceBlocks.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +define("tinymce/ForceBlocks", [], function() { + return function(editor) { + var settings = editor.settings, dom = editor.dom, selection = editor.selection; + var schema = editor.schema, blockElements = schema.getBlockElements(); + + function addRootBlocks() { + var node = selection.getStart(), rootNode = editor.getBody(), rng; + var startContainer, startOffset, endContainer, endOffset, rootBlockNode; + var tempNode, offset = -0xFFFFFF, wrapped, restoreSelection; + var tmpRng, rootNodeName, forcedRootBlock; + + forcedRootBlock = settings.forced_root_block; + + if (!node || node.nodeType !== 1 || !forcedRootBlock) { + return; + } + + // Check if node is wrapped in block + while (node && node != rootNode) { + if (blockElements[node.nodeName]) { + return; + } + + node = node.parentNode; + } + + // Get current selection + rng = selection.getRng(); + if (rng.setStart) { + startContainer = rng.startContainer; + startOffset = rng.startOffset; + endContainer = rng.endContainer; + endOffset = rng.endOffset; + + try { + restoreSelection = editor.getDoc().activeElement === rootNode; + } catch (ex) { + // IE throws unspecified error here sometimes + } + } else { + // Force control range into text range + if (rng.item) { + node = rng.item(0); + rng = editor.getDoc().body.createTextRange(); + rng.moveToElementText(node); + } + + restoreSelection = rng.parentElement().ownerDocument === editor.getDoc(); + tmpRng = rng.duplicate(); + tmpRng.collapse(true); + startOffset = tmpRng.move('character', offset) * -1; + + if (!tmpRng.collapsed) { + tmpRng = rng.duplicate(); + tmpRng.collapse(false); + endOffset = (tmpRng.move('character', offset) * -1) - startOffset; + } + } + + // Wrap non block elements and text nodes + node = rootNode.firstChild; + rootNodeName = rootNode.nodeName.toLowerCase(); + while (node) { + // TODO: Break this up, too complex + if (((node.nodeType === 3 || (node.nodeType == 1 && !blockElements[node.nodeName]))) && + schema.isValidChild(rootNodeName, forcedRootBlock.toLowerCase())) { + // Remove empty text nodes + if (node.nodeType === 3 && node.nodeValue.length === 0) { + tempNode = node; + node = node.nextSibling; + dom.remove(tempNode); + continue; + } + + if (!rootBlockNode) { + rootBlockNode = dom.create(forcedRootBlock, editor.settings.forced_root_block_attrs); + node.parentNode.insertBefore(rootBlockNode, node); + wrapped = true; + } + + tempNode = node; + node = node.nextSibling; + rootBlockNode.appendChild(tempNode); + } else { + rootBlockNode = null; + node = node.nextSibling; + } + } + + if (wrapped && restoreSelection) { + if (rng.setStart) { + rng.setStart(startContainer, startOffset); + rng.setEnd(endContainer, endOffset); + selection.setRng(rng); + } else { + // Only select if the previous selection was inside the document to prevent auto focus in quirks mode + try { + rng = editor.getDoc().body.createTextRange(); + rng.moveToElementText(rootNode); + rng.collapse(true); + rng.moveStart('character', startOffset); + + if (endOffset > 0) { + rng.moveEnd('character', endOffset); + } + + rng.select(); + } catch (ex) { + // Ignore + } + } + + editor.nodeChanged(); + } + } + + // Force root blocks + if (settings.forced_root_block) { + editor.on('NodeChange', addRootBlocks); + } + }; +}); + +// Included from: js/tinymce/classes/EditorCommands.js + +/** + * EditorCommands.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class enables you to add custom editor commands and it contains + * overrides for native browser commands to address various bugs and issues. + * + * @class tinymce.EditorCommands + */ +define("tinymce/EditorCommands", [ + "tinymce/html/Serializer", + "tinymce/Env", + "tinymce/util/Tools" +], function(Serializer, Env, Tools) { + // Added for compression purposes + var each = Tools.each, extend = Tools.extend; + var map = Tools.map, inArray = Tools.inArray, explode = Tools.explode; + var isGecko = Env.gecko, isIE = Env.ie; + var TRUE = true, FALSE = false; + + return function(editor) { + var dom = editor.dom, + selection = editor.selection, + commands = {state: {}, exec: {}, value: {}}, + settings = editor.settings, + formatter = editor.formatter, + bookmark; + + /** + * Executes the specified command. + * + * @method execCommand + * @param {String} command Command to execute. + * @param {Boolean} ui Optional user interface state. + * @param {Object} value Optional value for command. + * @return {Boolean} true/false if the command was found or not. + */ + function execCommand(command, ui, value) { + var func; + + command = command.toLowerCase(); + if ((func = commands.exec[command])) { + func(command, ui, value); + return TRUE; + } + + return FALSE; + } + + /** + * Queries the current state for a command for example if the current selection is "bold". + * + * @method queryCommandState + * @param {String} command Command to check the state of. + * @return {Boolean/Number} true/false if the selected contents is bold or not, -1 if it's not found. + */ + function queryCommandState(command) { + var func; + + command = command.toLowerCase(); + if ((func = commands.state[command])) { + return func(command); + } + + return -1; + } + + /** + * Queries the command value for example the current fontsize. + * + * @method queryCommandValue + * @param {String} command Command to check the value of. + * @return {Object} Command value of false if it's not found. + */ + function queryCommandValue(command) { + var func; + + command = command.toLowerCase(); + if ((func = commands.value[command])) { + return func(command); + } + + return FALSE; + } + + /** + * Adds commands to the command collection. + * + * @method addCommands + * @param {Object} command_list Name/value collection with commands to add, the names can also be comma separated. + * @param {String} type Optional type to add, defaults to exec. Can be value or state as well. + */ + function addCommands(command_list, type) { + type = type || 'exec'; + + each(command_list, function(callback, command) { + each(command.toLowerCase().split(','), function(command) { + commands[type][command] = callback; + }); + }); + } + + // Expose public methods + extend(this, { + execCommand: execCommand, + queryCommandState: queryCommandState, + queryCommandValue: queryCommandValue, + addCommands: addCommands + }); + + // Private methods + + function execNativeCommand(command, ui, value) { + if (ui === undefined) { + ui = FALSE; + } + + if (value === undefined) { + value = null; + } + + return editor.getDoc().execCommand(command, ui, value); + } + + function isFormatMatch(name) { + return formatter.match(name); + } + + function toggleFormat(name, value) { + formatter.toggle(name, value ? {value: value} : undefined); + editor.nodeChanged(); + } + + function storeSelection(type) { + bookmark = selection.getBookmark(type); + } + + function restoreSelection() { + selection.moveToBookmark(bookmark); + } + + // Add execCommand overrides + addCommands({ + // Ignore these, added for compatibility + 'mceResetDesignMode,mceBeginUndoLevel': function() {}, + + // Add undo manager logic + 'mceEndUndoLevel,mceAddUndoLevel': function() { + editor.undoManager.add(); + }, + + 'Cut,Copy,Paste': function(command) { + var doc = editor.getDoc(), failed; + + // Try executing the native command + try { + execNativeCommand(command); + } catch (ex) { + // Command failed + failed = TRUE; + } + + // Present alert message about clipboard access not being available + if (failed || !doc.queryCommandSupported(command)) { + var msg = editor.translate( + "Your browser doesn't support direct access to the clipboard. " + + "Please use the Ctrl+X/C/V keyboard shortcuts instead." + ); + + if (Env.mac) { + msg = msg.replace(/Ctrl\+/g, '\u2318+'); + } + + editor.windowManager.alert(msg); + } + }, + + // Override unlink command + unlink: function() { + if (selection.isCollapsed()) { + var elm = selection.getNode(); + if (elm.tagName == 'A') { + editor.dom.remove(elm, true); + } + + return; + } + + formatter.remove("link"); + }, + + // Override justify commands to use the text formatter engine + 'JustifyLeft,JustifyCenter,JustifyRight,JustifyFull': function(command) { + var align = command.substring(7); + + if (align == 'full') { + align = 'justify'; + } + + // Remove all other alignments first + each('left,center,right,justify'.split(','), function(name) { + if (align != name) { + formatter.remove('align' + name); + } + }); + + toggleFormat('align' + align); + execCommand('mceRepaint'); + }, + + // Override list commands to fix WebKit bug + 'InsertUnorderedList,InsertOrderedList': function(command) { + var listElm, listParent; + + execNativeCommand(command); + + // WebKit produces lists within block elements so we need to split them + // we will replace the native list creation logic to custom logic later on + // TODO: Remove this when the list creation logic is removed + listElm = dom.getParent(selection.getNode(), 'ol,ul'); + if (listElm) { + listParent = listElm.parentNode; + + // If list is within a text block then split that block + if (/^(H[1-6]|P|ADDRESS|PRE)$/.test(listParent.nodeName)) { + storeSelection(); + dom.split(listParent, listElm); + restoreSelection(); + } + } + }, + + // Override commands to use the text formatter engine + 'Bold,Italic,Underline,Strikethrough,Superscript,Subscript': function(command) { + toggleFormat(command); + }, + + // Override commands to use the text formatter engine + 'ForeColor,HiliteColor,FontName': function(command, ui, value) { + toggleFormat(command, value); + }, + + FontSize: function(command, ui, value) { + var fontClasses, fontSizes; + + // Convert font size 1-7 to styles + if (value >= 1 && value <= 7) { + fontSizes = explode(settings.font_size_style_values); + fontClasses = explode(settings.font_size_classes); + + if (fontClasses) { + value = fontClasses[value - 1] || value; + } else { + value = fontSizes[value - 1] || value; + } + } + + toggleFormat(command, value); + }, + + RemoveFormat: function(command) { + formatter.remove(command); + }, + + mceBlockQuote: function() { + toggleFormat('blockquote'); + }, + + FormatBlock: function(command, ui, value) { + return toggleFormat(value || 'p'); + }, + + mceCleanup: function() { + var bookmark = selection.getBookmark(); + + editor.setContent(editor.getContent({cleanup: TRUE}), {cleanup: TRUE}); + + selection.moveToBookmark(bookmark); + }, + + mceRemoveNode: function(command, ui, value) { + var node = value || selection.getNode(); + + // Make sure that the body node isn't removed + if (node != editor.getBody()) { + storeSelection(); + editor.dom.remove(node, TRUE); + restoreSelection(); + } + }, + + mceSelectNodeDepth: function(command, ui, value) { + var counter = 0; + + dom.getParent(selection.getNode(), function(node) { + if (node.nodeType == 1 && counter++ == value) { + selection.select(node); + return FALSE; + } + }, editor.getBody()); + }, + + mceSelectNode: function(command, ui, value) { + selection.select(value); + }, + + mceInsertContent: function(command, ui, value) { + var parser, serializer, parentNode, rootNode, fragment, args; + var marker, rng, node, node2, bookmarkHtml; + + function trimOrPaddLeftRight(html) { + var rng, container, offset; + + rng = selection.getRng(true); + container = rng.startContainer; + offset = rng.startOffset; + + function hasSiblingText(siblingName) { + return container[siblingName] && container[siblingName].nodeType == 3; + } + + if (container.nodeType == 3) { + if (offset > 0) { + html = html.replace(/^ /, ' '); + } else if (!hasSiblingText('previousSibling')) { + html = html.replace(/^ /, ' '); + } + + if (offset < container.length) { + html = html.replace(/ (<br>|)$/, ' '); + } else if (!hasSiblingText('nextSibling')) { + html = html.replace(/( | )(<br>|)$/, ' '); + } + } + + return html; + } + + // Check for whitespace before/after value + if (/^ | $/.test(value)) { + value = trimOrPaddLeftRight(value); + } + + // Setup parser and serializer + parser = editor.parser; + serializer = new Serializer({}, editor.schema); + bookmarkHtml = '<span id="mce_marker" data-mce-type="bookmark">ÈB;</span>'; + + // Run beforeSetContent handlers on the HTML to be inserted + args = {content: value, format: 'html', selection: true}; + editor.fire('BeforeSetContent', args); + value = args.content; + + // Add caret at end of contents if it's missing + if (value.indexOf('{$caret}') == -1) { + value += '{$caret}'; + } + + // Replace the caret marker with a span bookmark element + value = value.replace(/\{\$caret\}/, bookmarkHtml); + + // If selection is at <body>|<p></p> then move it into <body><p>|</p> + rng = selection.getRng(); + var caretElement = rng.startContainer || (rng.parentElement ? rng.parentElement() : null); + var body = editor.getBody(); + if (caretElement === body && selection.isCollapsed()) { + if (dom.isBlock(body.firstChild) && dom.isEmpty(body.firstChild)) { + rng = dom.createRng(); + rng.setStart(body.firstChild, 0); + rng.setEnd(body.firstChild, 0); + selection.setRng(rng); + } + } + + // Insert node maker where we will insert the new HTML and get it's parent + if (!selection.isCollapsed()) { + editor.getDoc().execCommand('Delete', false, null); + } + + parentNode = selection.getNode(); + + // Parse the fragment within the context of the parent node + var parserArgs = {context: parentNode.nodeName.toLowerCase()}; + fragment = parser.parse(value, parserArgs); + + // Move the caret to a more suitable location + node = fragment.lastChild; + if (node.attr('id') == 'mce_marker') { + marker = node; + + for (node = node.prev; node; node = node.walk(true)) { + if (node.type == 3 || !dom.isBlock(node.name)) { + node.parent.insert(marker, node, node.name === 'br'); + break; + } + } + } + + // If parser says valid we can insert the contents into that parent + if (!parserArgs.invalid) { + value = serializer.serialize(fragment); + + // Check if parent is empty or only has one BR element then set the innerHTML of that parent + node = parentNode.firstChild; + node2 = parentNode.lastChild; + if (!node || (node === node2 && node.nodeName === 'BR')) { + dom.setHTML(parentNode, value); + } else { + selection.setContent(value); + } + } else { + // If the fragment was invalid within that context then we need + // to parse and process the parent it's inserted into + + // Insert bookmark node and get the parent + selection.setContent(bookmarkHtml); + parentNode = selection.getNode(); + rootNode = editor.getBody(); + + // Opera will return the document node when selection is in root + if (parentNode.nodeType == 9) { + parentNode = node = rootNode; + } else { + node = parentNode; + } + + // Find the ancestor just before the root element + while (node !== rootNode) { + parentNode = node; + node = node.parentNode; + } + + // Get the outer/inner HTML depending on if we are in the root and parser and serialize that + value = parentNode == rootNode ? rootNode.innerHTML : dom.getOuterHTML(parentNode); + value = serializer.serialize( + parser.parse( + // Need to replace by using a function since $ in the contents would otherwise be a problem + value.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i, function() { + return serializer.serialize(fragment); + }) + ) + ); + + // Set the inner/outer HTML depending on if we are in the root or not + if (parentNode == rootNode) { + dom.setHTML(rootNode, value); + } else { + dom.setOuterHTML(parentNode, value); + } + } + + marker = dom.get('mce_marker'); + selection.scrollIntoView(marker); + + // Move selection before marker and remove it + rng = dom.createRng(); + + // If previous sibling is a text node set the selection to the end of that node + node = marker.previousSibling; + if (node && node.nodeType == 3) { + rng.setStart(node, node.nodeValue.length); + + // TODO: Why can't we normalize on IE + if (!isIE) { + node2 = marker.nextSibling; + if (node2 && node2.nodeType == 3) { + node.appendData(node2.data); + node2.parentNode.removeChild(node2); + } + } + } else { + // If the previous sibling isn't a text node or doesn't exist set the selection before the marker node + rng.setStartBefore(marker); + rng.setEndBefore(marker); + } + + // Remove the marker node and set the new range + dom.remove(marker); + selection.setRng(rng); + + // Dispatch after event and add any visual elements needed + editor.fire('SetContent', args); + editor.addVisual(); + }, + + mceInsertRawHTML: function(command, ui, value) { + selection.setContent('tiny_mce_marker'); + editor.setContent( + editor.getContent().replace(/tiny_mce_marker/g, function() { + return value; + }) + ); + }, + + mceToggleFormat: function(command, ui, value) { + toggleFormat(value); + }, + + mceSetContent: function(command, ui, value) { + editor.setContent(value); + }, + + 'Indent,Outdent': function(command) { + var intentValue, indentUnit, value; + + // Setup indent level + intentValue = settings.indentation; + indentUnit = /[a-z%]+$/i.exec(intentValue); + intentValue = parseInt(intentValue, 10); + + if (!queryCommandState('InsertUnorderedList') && !queryCommandState('InsertOrderedList')) { + // If forced_root_blocks is set to false we don't have a block to indent so lets create a div + if (!settings.forced_root_block && !dom.getParent(selection.getNode(), dom.isBlock)) { + formatter.apply('div'); + } + + each(selection.getSelectedBlocks(), function(element) { + if (element.nodeName != "LI") { + var indentStyleName = editor.getParam('indent_use_margin', false) ? 'margin' : 'padding'; + + indentStyleName += dom.getStyle(element, 'direction', true) == 'rtl' ? 'Right' : 'Left'; + + if (command == 'outdent') { + value = Math.max(0, parseInt(element.style[indentStyleName] || 0, 10) - intentValue); + dom.setStyle(element, indentStyleName, value ? value + indentUnit : ''); + } else { + value = (parseInt(element.style[indentStyleName] || 0, 10) + intentValue) + indentUnit; + dom.setStyle(element, indentStyleName, value); + } + } + }); + } else { + execNativeCommand(command); + } + }, + + mceRepaint: function() { + if (isGecko) { + try { + storeSelection(TRUE); + + if (selection.getSel()) { + selection.getSel().selectAllChildren(editor.getBody()); + } + + selection.collapse(TRUE); + restoreSelection(); + } catch (ex) { + // Ignore + } + } + }, + + InsertHorizontalRule: function() { + editor.execCommand('mceInsertContent', false, '<hr />'); + }, + + mceToggleVisualAid: function() { + editor.hasVisual = !editor.hasVisual; + editor.addVisual(); + }, + + mceReplaceContent: function(command, ui, value) { + editor.execCommand('mceInsertContent', false, value.replace(/\{\$selection\}/g, selection.getContent({format: 'text'}))); + }, + + mceInsertLink: function(command, ui, value) { + var anchor; + + if (typeof(value) == 'string') { + value = {href: value}; + } + + anchor = dom.getParent(selection.getNode(), 'a'); + + // Spaces are never valid in URLs and it's a very common mistake for people to make so we fix it here. + value.href = value.href.replace(' ', '%20'); + + // Remove existing links if there could be child links or that the href isn't specified + if (!anchor || !value.href) { + formatter.remove('link'); + } + + // Apply new link to selection + if (value.href) { + formatter.apply('link', value, anchor); + } + }, + + selectAll: function() { + var root = dom.getRoot(), rng; + + if (selection.getRng().setStart) { + rng = dom.createRng(); + rng.setStart(root, 0); + rng.setEnd(root, root.childNodes.length); + selection.setRng(rng); + } else { + // IE will render it's own root level block elements and sometimes + // even put font elements in them when the user starts typing. So we need to + // move the selection to a more suitable element from this: + // <body>|<p></p></body> to this: <body><p>|</p></body> + rng = selection.getRng(); + if (!rng.item) { + rng.moveToElementText(root); + rng.select(); + } + } + }, + + "delete": function() { + execNativeCommand("Delete"); + + // Check if body is empty after the delete call if so then set the contents + // to an empty string and move the caret to any block produced by that operation + // this fixes the issue with root blocks not being properly produced after a delete call on IE + var body = editor.getBody(); + + if (dom.isEmpty(body)) { + editor.setContent(''); + + if (body.firstChild && dom.isBlock(body.firstChild)) { + editor.selection.setCursorLocation(body.firstChild, 0); + } else { + editor.selection.setCursorLocation(body, 0); + } + } + }, + + mceNewDocument: function() { + editor.setContent(''); + } + }); + + // Add queryCommandState overrides + addCommands({ + // Override justify commands + 'JustifyLeft,JustifyCenter,JustifyRight,JustifyFull': function(command) { + var name = 'align' + command.substring(7); + var nodes = selection.isCollapsed() ? [dom.getParent(selection.getNode(), dom.isBlock)] : selection.getSelectedBlocks(); + var matches = map(nodes, function(node) { + return !!formatter.matchNode(node, name); + }); + return inArray(matches, TRUE) !== -1; + }, + + 'Bold,Italic,Underline,Strikethrough,Superscript,Subscript': function(command) { + return isFormatMatch(command); + }, + + mceBlockQuote: function() { + return isFormatMatch('blockquote'); + }, + + Outdent: function() { + var node; + + if (settings.inline_styles) { + if ((node = dom.getParent(selection.getStart(), dom.isBlock)) && parseInt(node.style.paddingLeft, 10) > 0) { + return TRUE; + } + + if ((node = dom.getParent(selection.getEnd(), dom.isBlock)) && parseInt(node.style.paddingLeft, 10) > 0) { + return TRUE; + } + } + + return ( + queryCommandState('InsertUnorderedList') || + queryCommandState('InsertOrderedList') || + (!settings.inline_styles && !!dom.getParent(selection.getNode(), 'BLOCKQUOTE')) + ); + }, + + 'InsertUnorderedList,InsertOrderedList': function(command) { + var list = dom.getParent(selection.getNode(), 'ul,ol'); + + return list && + ( + command === 'insertunorderedlist' && list.tagName === 'UL' || + command === 'insertorderedlist' && list.tagName === 'OL' + ); + } + }, 'state'); + + // Add queryCommandValue overrides + addCommands({ + 'FontSize,FontName': function(command) { + var value = 0, parent; + + if ((parent = dom.getParent(selection.getNode(), 'span'))) { + if (command == 'fontsize') { + value = parent.style.fontSize; + } else { + value = parent.style.fontFamily.replace(/, /g, ',').replace(/[\'\"]/g, '').toLowerCase(); + } + } + + return value; + } + }, 'value'); + + // Add undo manager logic + addCommands({ + Undo: function() { + editor.undoManager.undo(); + }, + + Redo: function() { + editor.undoManager.redo(); + } + }); + }; +}); + +// Included from: js/tinymce/classes/util/URI.js + +/** + * URI.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles parsing, modification and serialization of URI/URL strings. + * @class tinymce.util.URI + */ +define("tinymce/util/URI", [ + "tinymce/util/Tools" +], function(Tools) { + var each = Tools.each, trim = Tools.trim; + + /** + * Constructs a new URI instance. + * + * @constructor + * @method URI + * @param {String} url URI string to parse. + * @param {Object} settings Optional settings object. + */ + function URI(url, settings) { + var self = this, baseUri, base_url; + + // Trim whitespace + url = trim(url); + + // Default settings + settings = self.settings = settings || {}; + + // Strange app protocol that isn't http/https or local anchor + // For example: mailto,skype,tel etc. + if (/^([\w\-]+):([^\/]{2})/i.test(url) || /^\s*#/.test(url)) { + self.source = url; + return; + } + + var isProtocolRelative = url.indexOf('//') === 0; + + // Absolute path with no host, fake host and protocol + if (url.indexOf('/') === 0 && !isProtocolRelative) { + url = (settings.base_uri ? settings.base_uri.protocol || 'http' : 'http') + '://mce_host' + url; + } + + // Relative path http:// or protocol relative //path + if (!/^[\w\-]*:?\/\//.test(url)) { + base_url = settings.base_uri ? settings.base_uri.path : new URI(location.href).directory; + if (settings.base_uri.protocol === "") { + url = '//mce_host' + self.toAbsPath(base_url, url); + } else { + url = ((settings.base_uri && settings.base_uri.protocol) || 'http') + '://mce_host' + self.toAbsPath(base_url, url); + } + } + + // Parse URL (Credits goes to Steave, http://blog.stevenlevithan.com/archives/parseuri) + url = url.replace(/@@/g, '(mce_at)'); // Zope 3 workaround, they use @@something + + /*jshint maxlen: 255 */ + /*eslint max-len: 0 */ + url = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(url); + + each(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], function(v, i) { + var part = url[i]; + + // Zope 3 workaround, they use @@something + if (part) { + part = part.replace(/\(mce_at\)/g, '@@'); + } + + self[v] = part; + }); + + baseUri = settings.base_uri; + if (baseUri) { + if (!self.protocol) { + self.protocol = baseUri.protocol; + } + + if (!self.userInfo) { + self.userInfo = baseUri.userInfo; + } + + if (!self.port && self.host === 'mce_host') { + self.port = baseUri.port; + } + + if (!self.host || self.host === 'mce_host') { + self.host = baseUri.host; + } + + self.source = ''; + } + + if (isProtocolRelative) { + self.protocol = ''; + } + + //t.path = t.path || '/'; + } + + URI.prototype = { + /** + * Sets the internal path part of the URI. + * + * @method setPath + * @param {string} path Path string to set. + */ + setPath: function(path) { + var self = this; + + path = /^(.*?)\/?(\w+)?$/.exec(path); + + // Update path parts + self.path = path[0]; + self.directory = path[1]; + self.file = path[2]; + + // Rebuild source + self.source = ''; + self.getURI(); + }, + + /** + * Converts the specified URI into a relative URI based on the current URI instance location. + * + * @method toRelative + * @param {String} uri URI to convert into a relative path/URI. + * @return {String} Relative URI from the point specified in the current URI instance. + * @example + * // Converts an absolute URL to an relative URL url will be somedir/somefile.htm + * var url = new tinymce.util.URI('http://www.site.com/dir/').toRelative('http://www.site.com/dir/somedir/somefile.htm'); + */ + toRelative: function(uri) { + var self = this, output; + + if (uri === "./") { + return uri; + } + + uri = new URI(uri, {base_uri: self}); + + // Not on same domain/port or protocol + if ((uri.host != 'mce_host' && self.host != uri.host && uri.host) || self.port != uri.port || + (self.protocol != uri.protocol && uri.protocol !== "")) { + return uri.getURI(); + } + + var tu = self.getURI(), uu = uri.getURI(); + + // Allow usage of the base_uri when relative_urls = true + if (tu == uu || (tu.charAt(tu.length - 1) == "/" && tu.substr(0, tu.length - 1) == uu)) { + return tu; + } + + output = self.toRelPath(self.path, uri.path); + + // Add query + if (uri.query) { + output += '?' + uri.query; + } + + // Add anchor + if (uri.anchor) { + output += '#' + uri.anchor; + } + + return output; + }, + + /** + * Converts the specified URI into a absolute URI based on the current URI instance location. + * + * @method toAbsolute + * @param {String} uri URI to convert into a relative path/URI. + * @param {Boolean} noHost No host and protocol prefix. + * @return {String} Absolute URI from the point specified in the current URI instance. + * @example + * // Converts an relative URL to an absolute URL url will be http://www.site.com/dir/somedir/somefile.htm + * var url = new tinymce.util.URI('http://www.site.com/dir/').toAbsolute('somedir/somefile.htm'); + */ + toAbsolute: function(uri, noHost) { + uri = new URI(uri, {base_uri: this}); + + return uri.getURI(this.host == uri.host && this.protocol == uri.protocol ? noHost : 0); + }, + + /** + * Converts a absolute path into a relative path. + * + * @method toRelPath + * @param {String} base Base point to convert the path from. + * @param {String} path Absolute path to convert into a relative path. + */ + toRelPath: function(base, path) { + var items, breakPoint = 0, out = '', i, l; + + // Split the paths + base = base.substring(0, base.lastIndexOf('/')); + base = base.split('/'); + items = path.split('/'); + + if (base.length >= items.length) { + for (i = 0, l = base.length; i < l; i++) { + if (i >= items.length || base[i] != items[i]) { + breakPoint = i + 1; + break; + } + } + } + + if (base.length < items.length) { + for (i = 0, l = items.length; i < l; i++) { + if (i >= base.length || base[i] != items[i]) { + breakPoint = i + 1; + break; + } + } + } + + if (breakPoint === 1) { + return path; + } + + for (i = 0, l = base.length - (breakPoint - 1); i < l; i++) { + out += "../"; + } + + for (i = breakPoint - 1, l = items.length; i < l; i++) { + if (i != breakPoint - 1) { + out += "/" + items[i]; + } else { + out += items[i]; + } + } + + return out; + }, + + /** + * Converts a relative path into a absolute path. + * + * @method toAbsPath + * @param {String} base Base point to convert the path from. + * @param {String} path Relative path to convert into an absolute path. + */ + toAbsPath: function(base, path) { + var i, nb = 0, o = [], tr, outPath; + + // Split paths + tr = /\/$/.test(path) ? '/' : ''; + base = base.split('/'); + path = path.split('/'); + + // Remove empty chunks + each(base, function(k) { + if (k) { + o.push(k); + } + }); + + base = o; + + // Merge relURLParts chunks + for (i = path.length - 1, o = []; i >= 0; i--) { + // Ignore empty or . + if (path[i].length === 0 || path[i] === ".") { + continue; + } + + // Is parent + if (path[i] === '..') { + nb++; + continue; + } + + // Move up + if (nb > 0) { + nb--; + continue; + } + + o.push(path[i]); + } + + i = base.length - nb; + + // If /a/b/c or / + if (i <= 0) { + outPath = o.reverse().join('/'); + } else { + outPath = base.slice(0, i).join('/') + '/' + o.reverse().join('/'); + } + + // Add front / if it's needed + if (outPath.indexOf('/') !== 0) { + outPath = '/' + outPath; + } + + // Add traling / if it's needed + if (tr && outPath.lastIndexOf('/') !== outPath.length - 1) { + outPath += tr; + } + + return outPath; + }, + + /** + * Returns the full URI of the internal structure. + * + * @method getURI + * @param {Boolean} noProtoHost Optional no host and protocol part. Defaults to false. + */ + getURI: function(noProtoHost) { + var s, self = this; + + // Rebuild source + if (!self.source || noProtoHost) { + s = ''; + + if (!noProtoHost) { + if (self.protocol) { + s += self.protocol + '://'; + } else { + s += '//'; + } + + if (self.userInfo) { + s += self.userInfo + '@'; + } + + if (self.host) { + s += self.host; + } + + if (self.port) { + s += ':' + self.port; + } + } + + if (self.path) { + s += self.path; + } + + if (self.query) { + s += '?' + self.query; + } + + if (self.anchor) { + s += '#' + self.anchor; + } + + self.source = s; + } + + return self.source; + } + }; + + return URI; +}); + +// Included from: js/tinymce/classes/util/Class.js + +/** + * Class.js + * + * Copyright 2003-2012, Moxiecode Systems AB, All rights reserved. + */ + +/** + * This utilitiy class is used for easier inheritage. + * + * Features: + * * Exposed super functions: this._super(); + * * Mixins + * * Dummy functions + * * Property functions: var value = object.value(); and object.value(newValue); + * * Static functions + * * Defaults settings + */ +define("tinymce/util/Class", [ + "tinymce/util/Tools" +], function(Tools) { + var each = Tools.each, extend = Tools.extend; + + var extendClass, initializing; + + function Class() { + } + + // Provides classical inheritance, based on code made by John Resig + Class.extend = extendClass = function(prop) { + var self = this, _super = self.prototype, prototype, name, member; + + // The dummy class constructor + function Class() { + var i, mixins, mixin, self = this; + + // All construction is actually done in the init method + if (!initializing) { + // Run class constuctor + if (self.init) { + self.init.apply(self, arguments); + } + + // Run mixin constructors + mixins = self.Mixins; + if (mixins) { + i = mixins.length; + while (i--) { + mixin = mixins[i]; + if (mixin.init) { + mixin.init.apply(self, arguments); + } + } + } + } + } + + // Dummy function, needs to be extended in order to provide functionality + function dummy() { + return this; + } + + // Creates a overloaded method for the class + // this enables you to use this._super(); to call the super function + function createMethod(name, fn) { + return function(){ + var self = this, tmp = self._super, ret; + + self._super = _super[name]; + ret = fn.apply(self, arguments); + self._super = tmp; + + return ret; + }; + } + + // Instantiate a base class (but only create the instance, + // don't run the init constructor) + initializing = true; + prototype = new self(); + initializing = false; + + // Add mixins + if (prop.Mixins) { + each(prop.Mixins, function(mixin) { + mixin = mixin; + + for (var name in mixin) { + if (name !== "init") { + prop[name] = mixin[name]; + } + } + }); + + if (_super.Mixins) { + prop.Mixins = _super.Mixins.concat(prop.Mixins); + } + } + + // Generate dummy methods + if (prop.Methods) { + each(prop.Methods.split(','), function(name) { + prop[name] = dummy; + }); + } + + // Generate property methods + if (prop.Properties) { + each(prop.Properties.split(','), function(name) { + var fieldName = '_' + name; + + prop[name] = function(value) { + var self = this, undef; + + // Set value + if (value !== undef) { + self[fieldName] = value; + + return self; + } + + // Get value + return self[fieldName]; + }; + }); + } + + // Static functions + if (prop.Statics) { + each(prop.Statics, function(func, name) { + Class[name] = func; + }); + } + + // Default settings + if (prop.Defaults && _super.Defaults) { + prop.Defaults = extend({}, _super.Defaults, prop.Defaults); + } + + // Copy the properties over onto the new prototype + for (name in prop) { + member = prop[name]; + + if (typeof member == "function" && _super[name]) { + prototype[name] = createMethod(name, member); + } else { + prototype[name] = member; + } + } + + // Populate our constructed prototype object + Class.prototype = prototype; + + // Enforce the constructor to be what we expect + Class.constructor = Class; + + // And make this class extendible + Class.extend = extendClass; + + return Class; + }; + + return Class; +}); + +// Included from: js/tinymce/classes/ui/Selector.js + +/** + * Selector.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*eslint no-nested-ternary:0 */ + +/** + * Selector engine, enables you to select controls by using CSS like expressions. + * We currently only support basic CSS expressions to reduce the size of the core + * and the ones we support should be enough for most cases. + * + * @example + * Supported expressions: + * element + * element#name + * element.class + * element[attr] + * element[attr*=value] + * element[attr~=value] + * element[attr!=value] + * element[attr^=value] + * element[attr$=value] + * element:<state> + * element:not(<expression>) + * element:first + * element:last + * element:odd + * element:even + * element element + * element > element + * + * @class tinymce.ui.Selector + */ +define("tinymce/ui/Selector", [ + "tinymce/util/Class" +], function(Class) { + "use strict"; + + /** + * Produces an array with a unique set of objects. It will not compare the values + * but the references of the objects. + * + * @private + * @method unqiue + * @param {Array} array Array to make into an array with unique items. + * @return {Array} Array with unique items. + */ + function unique(array) { + var uniqueItems = [], i = array.length, item; + + while (i--) { + item = array[i]; + + if (!item.__checked) { + uniqueItems.push(item); + item.__checked = 1; + } + } + + i = uniqueItems.length; + while (i--) { + delete uniqueItems[i].__checked; + } + + return uniqueItems; + } + + var expression = /^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i; + + /*jshint maxlen:255 */ + /*eslint max-len:0 */ + var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, + whiteSpace = /^\s*|\s*$/g, + Collection; + + var Selector = Class.extend({ + /** + * Constructs a new Selector instance. + * + * @constructor + * @method init + * @param {String} selector CSS like selector expression. + */ + init: function(selector) { + var match = this.match; + + function compileNameFilter(name) { + if (name) { + name = name.toLowerCase(); + + return function(item) { + return name === '*' || item.type === name; + }; + } + } + + function compileIdFilter(id) { + if (id) { + return function(item) { + return item._name === id; + }; + } + } + + function compileClassesFilter(classes) { + if (classes) { + classes = classes.split('.'); + + return function(item) { + var i = classes.length; + + while (i--) { + if (!item.hasClass(classes[i])) { + return false; + } + } + + return true; + }; + } + } + + function compileAttrFilter(name, cmp, check) { + if (name) { + return function(item) { + var value = item[name] ? item[name]() : ''; + + return !cmp ? !!check : + cmp === "=" ? value === check : + cmp === "*=" ? value.indexOf(check) >= 0 : + cmp === "~=" ? (" " + value + " ").indexOf(" " + check + " ") >= 0 : + cmp === "!=" ? value != check : + cmp === "^=" ? value.indexOf(check) === 0 : + cmp === "$=" ? value.substr(value.length - check.length) === check : + false; + }; + } + } + + function compilePsuedoFilter(name) { + var notSelectors; + + if (name) { + name = /(?:not\((.+)\))|(.+)/i.exec(name); + + if (!name[1]) { + name = name[2]; + + return function(item, index, length) { + return name === 'first' ? index === 0 : + name === 'last' ? index === length - 1 : + name === 'even' ? index % 2 === 0 : + name === 'odd' ? index % 2 === 1 : + item[name] ? item[name]() : + false; + }; + } else { + // Compile not expression + notSelectors = parseChunks(name[1], []); + + return function(item) { + return !match(item, notSelectors); + }; + } + } + } + + function compile(selector, filters, direct) { + var parts; + + function add(filter) { + if (filter) { + filters.push(filter); + } + } + + // Parse expression into parts + parts = expression.exec(selector.replace(whiteSpace, '')); + + add(compileNameFilter(parts[1])); + add(compileIdFilter(parts[2])); + add(compileClassesFilter(parts[3])); + add(compileAttrFilter(parts[4], parts[5], parts[6])); + add(compilePsuedoFilter(parts[7])); + + // Mark the filter with psuedo for performance + filters.psuedo = !!parts[7]; + filters.direct = direct; + + return filters; + } + + // Parser logic based on Sizzle by John Resig + function parseChunks(selector, selectors) { + var parts = [], extra, matches, i; + + do { + chunker.exec(""); + matches = chunker.exec(selector); + + if (matches) { + selector = matches[3]; + parts.push(matches[1]); + + if (matches[2]) { + extra = matches[3]; + break; + } + } + } while (matches); + + if (extra) { + parseChunks(extra, selectors); + } + + selector = []; + for (i = 0; i < parts.length; i++) { + if (parts[i] != '>') { + selector.push(compile(parts[i], [], parts[i - 1] === '>')); + } + } + + selectors.push(selector); + + return selectors; + } + + this._selectors = parseChunks(selector, []); + }, + + /** + * Returns true/false if the selector matches the specified control. + * + * @method match + * @param {tinymce.ui.Control} control Control to match agains the selector. + * @param {Array} selectors Optional array of selectors, mostly used internally. + * @return {Boolean} true/false state if the control matches or not. + */ + match: function(control, selectors) { + var i, l, si, sl, selector, fi, fl, filters, index, length, siblings, count, item; + + selectors = selectors || this._selectors; + for (i = 0, l = selectors.length; i < l; i++) { + selector = selectors[i]; + sl = selector.length; + item = control; + count = 0; + + for (si = sl - 1; si >= 0; si--) { + filters = selector[si]; + + while (item) { + // Find the index and length since a psuedo filter like :first needs it + if (filters.psuedo) { + siblings = item.parent().items(); + index = length = siblings.length; + while (index--) { + if (siblings[index] === item) { + break; + } + } + } + + for (fi = 0, fl = filters.length; fi < fl; fi++) { + if (!filters[fi](item, index, length)) { + fi = fl + 1; + break; + } + } + + if (fi === fl) { + count++; + break; + } else { + // If it didn't match the right most expression then + // break since it's no point looking at the parents + if (si === sl - 1) { + break; + } + } + + item = item.parent(); + } + } + + // If we found all selectors then return true otherwise continue looking + if (count === sl) { + return true; + } + } + + return false; + }, + + /** + * Returns a tinymce.ui.Collection with matches of the specified selector inside the specified container. + * + * @method find + * @param {tinymce.ui.Control} container Container to look for items in. + * @return {tinymce.ui.Collection} Collection with matched elements. + */ + find: function(container) { + var matches = [], i, l, selectors = this._selectors; + + function collect(items, selector, index) { + var i, l, fi, fl, item, filters = selector[index]; + + for (i = 0, l = items.length; i < l; i++) { + item = items[i]; + + // Run each filter agains the item + for (fi = 0, fl = filters.length; fi < fl; fi++) { + if (!filters[fi](item, i, l)) { + fi = fl + 1; + break; + } + } + + // All filters matched the item + if (fi === fl) { + // Matched item is on the last expression like: panel toolbar [button] + if (index == selector.length - 1) { + matches.push(item); + } else { + // Collect next expression type + if (item.items) { + collect(item.items(), selector, index + 1); + } + } + } else if (filters.direct) { + return; + } + + // Collect child items + if (item.items) { + collect(item.items(), selector, index); + } + } + } + + if (container.items) { + for (i = 0, l = selectors.length; i < l; i++) { + collect(container.items(), selectors[i], 0); + } + + // Unique the matches if needed + if (l > 1) { + matches = unique(matches); + } + } + + // Fix for circular reference + if (!Collection) { + // TODO: Fix me! + Collection = Selector.Collection; + } + + return new Collection(matches); + } + }); + + return Selector; +}); + +// Included from: js/tinymce/classes/ui/Collection.js + +/** + * Collection.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Control collection, this class contains control instances and it enables you to + * perform actions on all the contained items. This is very similar to how jQuery works. + * + * @example + * someCollection.show().disabled(true); + * + * @class tinymce.ui.Collection + */ +define("tinymce/ui/Collection", [ + "tinymce/util/Tools", + "tinymce/ui/Selector", + "tinymce/util/Class" +], function(Tools, Selector, Class) { + "use strict"; + + var Collection, proto, push = Array.prototype.push, slice = Array.prototype.slice; + + proto = { + /** + * Current number of contained control instances. + * + * @field length + * @type Number + */ + length: 0, + + /** + * Constructor for the collection. + * + * @constructor + * @method init + * @param {Array} items Optional array with items to add. + */ + init: function(items) { + if (items) { + this.add(items); + } + }, + + /** + * Adds new items to the control collection. + * + * @method add + * @param {Array} items Array if items to add to collection. + * @return {tinymce.ui.Collection} Current collection instance. + */ + add: function(items) { + var self = this; + + // Force single item into array + if (!Tools.isArray(items)) { + if (items instanceof Collection) { + self.add(items.toArray()); + } else { + push.call(self, items); + } + } else { + push.apply(self, items); + } + + return self; + }, + + /** + * Sets the contents of the collection. This will remove any existing items + * and replace them with the ones specified in the input array. + * + * @method set + * @param {Array} items Array with items to set into the Collection. + * @return {tinymce.ui.Collection} Collection instance. + */ + set: function(items) { + var self = this, len = self.length, i; + + self.length = 0; + self.add(items); + + // Remove old entries + for (i = self.length; i < len; i++) { + delete self[i]; + } + + return self; + }, + + /** + * Filters the collection item based on the specified selector expression or selector function. + * + * @method filter + * @param {String} selector Selector expression to filter items by. + * @return {tinymce.ui.Collection} Collection containing the filtered items. + */ + filter: function(selector) { + var self = this, i, l, matches = [], item, match; + + // Compile string into selector expression + if (typeof(selector) === "string") { + selector = new Selector(selector); + + match = function(item) { + return selector.match(item); + }; + } else { + // Use selector as matching function + match = selector; + } + + for (i = 0, l = self.length; i < l; i++) { + item = self[i]; + + if (match(item)) { + matches.push(item); + } + } + + return new Collection(matches); + }, + + /** + * Slices the items within the collection. + * + * @method slice + * @param {Number} index Index to slice at. + * @param {Number} len Optional length to slice. + * @return {tinymce.ui.Collection} Current collection. + */ + slice: function() { + return new Collection(slice.apply(this, arguments)); + }, + + /** + * Makes the current collection equal to the specified index. + * + * @method eq + * @param {Number} index Index of the item to set the collection to. + * @return {tinymce.ui.Collection} Current collection. + */ + eq: function(index) { + return index === -1 ? this.slice(index) : this.slice(index, +index + 1); + }, + + /** + * Executes the specified callback on each item in collection. + * + * @method each + * @param {function} callback Callback to execute for each item in collection. + * @return {tinymce.ui.Collection} Current collection instance. + */ + each: function(callback) { + Tools.each(this, callback); + + return this; + }, + + /** + * Returns an JavaScript array object of the contents inside the collection. + * + * @method toArray + * @return {Array} Array with all items from collection. + */ + toArray: function() { + return Tools.toArray(this); + }, + + /** + * Finds the index of the specified control or return -1 if it isn't in the collection. + * + * @method indexOf + * @param {Control} ctrl Control instance to look for. + * @return {Number} Index of the specified control or -1. + */ + indexOf: function(ctrl) { + var self = this, i = self.length; + + while (i--) { + if (self[i] === ctrl) { + break; + } + } + + return i; + }, + + /** + * Returns a new collection of the contents in reverse order. + * + * @method reverse + * @return {tinymce.ui.Collection} Collection instance with reversed items. + */ + reverse: function() { + return new Collection(Tools.toArray(this).reverse()); + }, + + /** + * Returns true/false if the class exists or not. + * + * @method hasClass + * @param {String} cls Class to check for. + * @return {Boolean} true/false state if the class exists or not. + */ + hasClass: function(cls) { + return this[0] ? this[0].hasClass(cls) : false; + }, + + /** + * Sets/gets the specific property on the items in the collection. The same as executing control.<property>(<value>); + * + * @method prop + * @param {String} name Property name to get/set. + * @param {Object} value Optional object value to set. + * @return {tinymce.ui.Collection} Current collection instance or value of the first item on a get operation. + */ + prop: function(name, value) { + var self = this, undef, item; + + if (value !== undef) { + self.each(function(item) { + if (item[name]) { + item[name](value); + } + }); + + return self; + } + + item = self[0]; + + if (item && item[name]) { + return item[name](); + } + }, + + /** + * Executes the specific function name with optional arguments an all items in collection if it exists. + * + * @example collection.exec("myMethod", arg1, arg2, arg3); + * @method exec + * @param {String} name Name of the function to execute. + * @param {Object} ... Multiple arguments to pass to each function. + * @return {tinymce.ui.Collection} Current collection. + */ + exec: function(name) { + var self = this, args = Tools.toArray(arguments).slice(1); + + self.each(function(item) { + if (item[name]) { + item[name].apply(item, args); + } + }); + + return self; + }, + + /** + * Remove all items from collection and DOM. + * + * @method remove + * @return {tinymce.ui.Collection} Current collection. + */ + remove: function() { + var i = this.length; + + while (i--) { + this[i].remove(); + } + + return this; + } + + /** + * Fires the specified event by name and arguments on the control. This will execute all + * bound event handlers. + * + * @method fire + * @param {String} name Name of the event to fire. + * @param {Object} args Optional arguments to pass to the event. + * @return {tinymce.ui.Collection} Current collection instance. + */ + // fire: function(event, args) {}, -- Generated by code below + + /** + * Binds a callback to the specified event. This event can both be + * native browser events like "click" or custom ones like PostRender. + * + * The callback function will have two parameters the first one being the control that received the event + * the second one will be the event object either the browsers native event object or a custom JS object. + * + * @method on + * @param {String} name Name of the event to bind. For example "click". + * @param {String/function} callback Callback function to execute ones the event occurs. + * @return {tinymce.ui.Collection} Current collection instance. + */ + // on: function(name, callback) {}, -- Generated by code below + + /** + * Unbinds the specified event and optionally a specific callback. If you omit the name + * parameter all event handlers will be removed. If you omit the callback all event handles + * by the specified name will be removed. + * + * @method off + * @param {String} name Optional name for the event to unbind. + * @param {function} callback Optional callback function to unbind. + * @return {tinymce.ui.Collection} Current collection instance. + */ + // off: function(name, callback) {}, -- Generated by code below + + /** + * Shows the items in the current collection. + * + * @method show + * @return {tinymce.ui.Collection} Current collection instance. + */ + // show: function() {}, -- Generated by code below + + /** + * Hides the items in the current collection. + * + * @method hide + * @return {tinymce.ui.Collection} Current collection instance. + */ + // hide: function() {}, -- Generated by code below + + /** + * Sets/gets the text contents of the items in the current collection. + * + * @method text + * @return {tinymce.ui.Collection} Current collection instance or text value of the first item on a get operation. + */ + // text: function(value) {}, -- Generated by code below + + /** + * Sets/gets the name contents of the items in the current collection. + * + * @method name + * @return {tinymce.ui.Collection} Current collection instance or name value of the first item on a get operation. + */ + // name: function(value) {}, -- Generated by code below + + /** + * Sets/gets the disabled state on the items in the current collection. + * + * @method disabled + * @return {tinymce.ui.Collection} Current collection instance or disabled state of the first item on a get operation. + */ + // disabled: function(state) {}, -- Generated by code below + + /** + * Sets/gets the active state on the items in the current collection. + * + * @method active + * @return {tinymce.ui.Collection} Current collection instance or active state of the first item on a get operation. + */ + // active: function(state) {}, -- Generated by code below + + /** + * Sets/gets the selected state on the items in the current collection. + * + * @method selected + * @return {tinymce.ui.Collection} Current collection instance or selected state of the first item on a get operation. + */ + // selected: function(state) {}, -- Generated by code below + + /** + * Sets/gets the selected state on the items in the current collection. + * + * @method visible + * @return {tinymce.ui.Collection} Current collection instance or visible state of the first item on a get operation. + */ + // visible: function(state) {}, -- Generated by code below + + /** + * Adds a class to all items in the collection. + * + * @method addClass + * @param {String} cls Class to add to each item. + * @return {tinymce.ui.Collection} Current collection instance. + */ + // addClass: function(cls) {}, -- Generated by code below + + /** + * Removes the specified class from all items in collection. + * + * @method removeClass + * @param {String} cls Class to remove from each item. + * @return {tinymce.ui.Collection} Current collection instance. + */ + // removeClass: function(cls) {}, -- Generated by code below + }; + + // Extend tinymce.ui.Collection prototype with some generated control specific methods + Tools.each('fire on off show hide addClass removeClass append prepend before after reflow'.split(' '), function(name) { + proto[name] = function() { + var args = Tools.toArray(arguments); + + this.each(function(ctrl) { + if (name in ctrl) { + ctrl[name].apply(ctrl, args); + } + }); + + return this; + }; + }); + + // Extend tinymce.ui.Collection prototype with some property methods + Tools.each('text name disabled active selected checked visible parent value data'.split(' '), function(name) { + proto[name] = function(value) { + return this.prop(name, value); + }; + }); + + // Create class based on the new prototype + Collection = Class.extend(proto); + + // Stick Collection into Selector to prevent circual references + Selector.Collection = Collection; + + return Collection; +}); + +// Included from: js/tinymce/classes/ui/DomUtils.js + +/** + * DOMUtils.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +define("tinymce/ui/DomUtils", [ + "tinymce/util/Tools", + "tinymce/dom/DOMUtils" +], function(Tools, DOMUtils) { + "use strict"; + + return { + id: function() { + return DOMUtils.DOM.uniqueId(); + }, + + createFragment: function(html) { + return DOMUtils.DOM.createFragment(html); + }, + + getWindowSize: function() { + return DOMUtils.DOM.getViewPort(); + }, + + getSize: function(elm) { + var width, height; + + if (elm.getBoundingClientRect) { + var rect = elm.getBoundingClientRect(); + + width = Math.max(rect.width || (rect.right - rect.left), elm.offsetWidth); + height = Math.max(rect.height || (rect.bottom - rect.bottom), elm.offsetHeight); + } else { + width = elm.offsetWidth; + height = elm.offsetHeight; + } + + return {width: width, height: height}; + }, + + getPos: function(elm, root) { + return DOMUtils.DOM.getPos(elm, root); + }, + + getViewPort: function(win) { + return DOMUtils.DOM.getViewPort(win); + }, + + get: function(id) { + return document.getElementById(id); + }, + + addClass : function(elm, cls) { + return DOMUtils.DOM.addClass(elm, cls); + }, + + removeClass : function(elm, cls) { + return DOMUtils.DOM.removeClass(elm, cls); + }, + + hasClass : function(elm, cls) { + return DOMUtils.DOM.hasClass(elm, cls); + }, + + toggleClass: function(elm, cls, state) { + return DOMUtils.DOM.toggleClass(elm, cls, state); + }, + + css: function(elm, name, value) { + return DOMUtils.DOM.setStyle(elm, name, value); + }, + + on: function(target, name, callback, scope) { + return DOMUtils.DOM.bind(target, name, callback, scope); + }, + + off: function(target, name, callback) { + return DOMUtils.DOM.unbind(target, name, callback); + }, + + fire: function(target, name, args) { + return DOMUtils.DOM.fire(target, name, args); + }, + + innerHtml: function(elm, html) { + // Workaround for <div> in <p> bug on IE 8 #6178 + DOMUtils.DOM.setHTML(elm, html); + } + }; +}); + +// Included from: js/tinymce/classes/ui/Control.js + +/** + * Control.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*eslint consistent-this:0 */ + +/** + * This is the base class for all controls and containers. All UI control instances inherit + * from this one as it has the base logic needed by all of them. + * + * @class tinymce.ui.Control + */ +define("tinymce/ui/Control", [ + "tinymce/util/Class", + "tinymce/util/Tools", + "tinymce/ui/Collection", + "tinymce/ui/DomUtils" +], function(Class, Tools, Collection, DomUtils) { + "use strict"; + + var nativeEvents = Tools.makeMap("focusin focusout scroll click dblclick mousedown mouseup mousemove mouseover" + + " mouseout mouseenter mouseleave wheel keydown keypress keyup contextmenu", " "); + + var elementIdCache = {}; + var hasMouseWheelEventSupport = "onmousewheel" in document; + var hasWheelEventSupport = false; + + var Control = Class.extend({ + Statics: { + elementIdCache: elementIdCache + }, + + isRtl: function() { + return Control.rtl; + }, + + /** + * Class/id prefix to use for all controls. + * + * @final + * @field {String} classPrefix + */ + classPrefix: "mce-", + + /** + * Constructs a new control instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {String} style Style CSS properties to add. + * @setting {String} border Border box values example: 1 1 1 1 + * @setting {String} padding Padding box values example: 1 1 1 1 + * @setting {String} margin Margin box values example: 1 1 1 1 + * @setting {Number} minWidth Minimal width for the control. + * @setting {Number} minHeight Minimal height for the control. + * @setting {String} classes Space separated list of classes to add. + * @setting {String} role WAI-ARIA role to use for control. + * @setting {Boolean} hidden Is the control hidden by default. + * @setting {Boolean} disabled Is the control disabled by default. + * @setting {String} name Name of the control instance. + */ + init: function(settings) { + var self = this, classes, i; + + self.settings = settings = Tools.extend({}, self.Defaults, settings); + + // Initial states + self._id = settings.id || DomUtils.id(); + self._text = self._name = ''; + self._width = self._height = 0; + self._aria = {role: settings.role}; + + // Setup classes + classes = settings.classes; + if (classes) { + classes = classes.split(' '); + classes.map = {}; + i = classes.length; + while (i--) { + classes.map[classes[i]] = true; + } + } + + self._classes = classes || []; + self.visible(true); + + // Set some properties + Tools.each('title text width height name classes visible disabled active value'.split(' '), function(name) { + var value = settings[name], undef; + + if (value !== undef) { + self[name](value); + } else if (self['_' + name] === undef) { + self['_' + name] = false; + } + }); + + self.on('click', function() { + if (self.disabled()) { + return false; + } + }); + + // TODO: Is this needed duplicate code see above? + if (settings.classes) { + Tools.each(settings.classes.split(' '), function(cls) { + self.addClass(cls); + }); + } + + /** + * Name/value object with settings for the current control. + * + * @field {Object} settings + */ + self.settings = settings; + + self._borderBox = self.parseBox(settings.border); + self._paddingBox = self.parseBox(settings.padding); + self._marginBox = self.parseBox(settings.margin); + + if (settings.hidden) { + self.hide(); + } + }, + + // Will generate getter/setter methods for these properties + Properties: 'parent,title,text,width,height,disabled,active,name,value', + + // Will generate empty dummy functions for these + Methods: 'renderHtml', + + /** + * Returns the root element to render controls into. + * + * @method getContainerElm + * @return {Element} HTML DOM element to render into. + */ + getContainerElm: function() { + return document.body; + }, + + /** + * Returns a control instance for the current DOM element. + * + * @method getParentCtrl + * @param {Element} elm HTML dom element to get parent control from. + * @return {tinymce.ui.Control} Control instance or undefined. + */ + getParentCtrl: function(elm) { + var ctrl, lookup = this.getRoot().controlIdLookup; + + while (elm && lookup) { + ctrl = lookup[elm.id]; + if (ctrl) { + break; + } + + elm = elm.parentNode; + } + + return ctrl; + }, + + /** + * Parses the specified box value. A box value contains 1-4 properties in clockwise order. + * + * @method parseBox + * @param {String/Number} value Box value "0 1 2 3" or "0" etc. + * @return {Object} Object with top/right/bottom/left properties. + * @private + */ + parseBox: function(value) { + var len, radix = 10; + + if (!value) { + return; + } + + if (typeof(value) === "number") { + value = value || 0; + + return { + top: value, + left: value, + bottom: value, + right: value + }; + } + + value = value.split(' '); + len = value.length; + + if (len === 1) { + value[1] = value[2] = value[3] = value[0]; + } else if (len === 2) { + value[2] = value[0]; + value[3] = value[1]; + } else if (len === 3) { + value[3] = value[1]; + } + + return { + top: parseInt(value[0], radix) || 0, + right: parseInt(value[1], radix) || 0, + bottom: parseInt(value[2], radix) || 0, + left: parseInt(value[3], radix) || 0 + }; + }, + + borderBox: function() { + return this._borderBox; + }, + + paddingBox: function() { + return this._paddingBox; + }, + + marginBox: function() { + return this._marginBox; + }, + + measureBox: function(elm, prefix) { + function getStyle(name) { + var defaultView = document.defaultView; + + if (defaultView) { + // Remove camelcase + name = name.replace(/[A-Z]/g, function(a) { + return '-' + a; + }); + + return defaultView.getComputedStyle(elm, null).getPropertyValue(name); + } + + return elm.currentStyle[name]; + } + + function getSide(name) { + var val = parseFloat(getStyle(name), 10); + + return isNaN(val) ? 0 : val; + } + + return { + top: getSide(prefix + "TopWidth"), + right: getSide(prefix + "RightWidth"), + bottom: getSide(prefix + "BottomWidth"), + left: getSide(prefix + "LeftWidth") + }; + }, + + /** + * Initializes the current controls layout rect. + * This will be executed by the layout managers to determine the + * default minWidth/minHeight etc. + * + * @method initLayoutRect + * @return {Object} Layout rect instance. + */ + initLayoutRect: function() { + var self = this, settings = self.settings, borderBox, layoutRect; + var elm = self.getEl(), width, height, minWidth, minHeight, autoResize; + var startMinWidth, startMinHeight, initialSize; + + // Measure the current element + borderBox = self._borderBox = self._borderBox || self.measureBox(elm, 'border'); + self._paddingBox = self._paddingBox || self.measureBox(elm, 'padding'); + self._marginBox = self._marginBox || self.measureBox(elm, 'margin'); + initialSize = DomUtils.getSize(elm); + + // Setup minWidth/minHeight and width/height + startMinWidth = settings.minWidth; + startMinHeight = settings.minHeight; + minWidth = startMinWidth || initialSize.width; + minHeight = startMinHeight || initialSize.height; + width = settings.width; + height = settings.height; + autoResize = settings.autoResize; + autoResize = typeof(autoResize) != "undefined" ? autoResize : !width && !height; + + width = width || minWidth; + height = height || minHeight; + + var deltaW = borderBox.left + borderBox.right; + var deltaH = borderBox.top + borderBox.bottom; + + var maxW = settings.maxWidth || 0xFFFF; + var maxH = settings.maxHeight || 0xFFFF; + + // Setup initial layout rect + self._layoutRect = layoutRect = { + x: settings.x || 0, + y: settings.y || 0, + w: width, + h: height, + deltaW: deltaW, + deltaH: deltaH, + contentW: width - deltaW, + contentH: height - deltaH, + innerW: width - deltaW, + innerH: height - deltaH, + startMinWidth: startMinWidth || 0, + startMinHeight: startMinHeight || 0, + minW: Math.min(minWidth, maxW), + minH: Math.min(minHeight, maxH), + maxW: maxW, + maxH: maxH, + autoResize: autoResize, + scrollW: 0 + }; + + self._lastLayoutRect = {}; + + return layoutRect; + }, + + /** + * Getter/setter for the current layout rect. + * + * @method layoutRect + * @param {Object} [newRect] Optional new layout rect. + * @return {tinymce.ui.Control/Object} Current control or rect object. + */ + layoutRect: function(newRect) { + var self = this, curRect = self._layoutRect, lastLayoutRect, size, deltaWidth, deltaHeight, undef, repaintControls; + + // Initialize default layout rect + if (!curRect) { + curRect = self.initLayoutRect(); + } + + // Set new rect values + if (newRect) { + // Calc deltas between inner and outer sizes + deltaWidth = curRect.deltaW; + deltaHeight = curRect.deltaH; + + // Set x position + if (newRect.x !== undef) { + curRect.x = newRect.x; + } + + // Set y position + if (newRect.y !== undef) { + curRect.y = newRect.y; + } + + // Set minW + if (newRect.minW !== undef) { + curRect.minW = newRect.minW; + } + + // Set minH + if (newRect.minH !== undef) { + curRect.minH = newRect.minH; + } + + // Set new width and calculate inner width + size = newRect.w; + if (size !== undef) { + size = size < curRect.minW ? curRect.minW : size; + size = size > curRect.maxW ? curRect.maxW : size; + curRect.w = size; + curRect.innerW = size - deltaWidth; + } + + // Set new height and calculate inner height + size = newRect.h; + if (size !== undef) { + size = size < curRect.minH ? curRect.minH : size; + size = size > curRect.maxH ? curRect.maxH : size; + curRect.h = size; + curRect.innerH = size - deltaHeight; + } + + // Set new inner width and calculate width + size = newRect.innerW; + if (size !== undef) { + size = size < curRect.minW - deltaWidth ? curRect.minW - deltaWidth : size; + size = size > curRect.maxW - deltaWidth ? curRect.maxW - deltaWidth : size; + curRect.innerW = size; + curRect.w = size + deltaWidth; + } + + // Set new height and calculate inner height + size = newRect.innerH; + if (size !== undef) { + size = size < curRect.minH - deltaHeight ? curRect.minH - deltaHeight : size; + size = size > curRect.maxH - deltaHeight ? curRect.maxH - deltaHeight : size; + curRect.innerH = size; + curRect.h = size + deltaHeight; + } + + // Set new contentW + if (newRect.contentW !== undef) { + curRect.contentW = newRect.contentW; + } + + // Set new contentH + if (newRect.contentH !== undef) { + curRect.contentH = newRect.contentH; + } + + // Compare last layout rect with the current one to see if we need to repaint or not + lastLayoutRect = self._lastLayoutRect; + if (lastLayoutRect.x !== curRect.x || lastLayoutRect.y !== curRect.y || + lastLayoutRect.w !== curRect.w || lastLayoutRect.h !== curRect.h) { + repaintControls = Control.repaintControls; + + if (repaintControls) { + if (repaintControls.map && !repaintControls.map[self._id]) { + repaintControls.push(self); + repaintControls.map[self._id] = true; + } + } + + lastLayoutRect.x = curRect.x; + lastLayoutRect.y = curRect.y; + lastLayoutRect.w = curRect.w; + lastLayoutRect.h = curRect.h; + } + + return self; + } + + return curRect; + }, + + /** + * Repaints the control after a layout operation. + * + * @method repaint + */ + repaint: function() { + var self = this, style, bodyStyle, rect, borderBox, borderW = 0, borderH = 0, lastRepaintRect, round; + + // Use Math.round on all values on IE < 9 + round = !document.createRange ? Math.round : function(value) { + return value; + }; + + style = self.getEl().style; + rect = self._layoutRect; + lastRepaintRect = self._lastRepaintRect || {}; + + borderBox = self._borderBox; + borderW = borderBox.left + borderBox.right; + borderH = borderBox.top + borderBox.bottom; + + if (rect.x !== lastRepaintRect.x) { + style.left = round(rect.x) + 'px'; + lastRepaintRect.x = rect.x; + } + + if (rect.y !== lastRepaintRect.y) { + style.top = round(rect.y) + 'px'; + lastRepaintRect.y = rect.y; + } + + if (rect.w !== lastRepaintRect.w) { + style.width = round(rect.w - borderW) + 'px'; + lastRepaintRect.w = rect.w; + } + + if (rect.h !== lastRepaintRect.h) { + style.height = round(rect.h - borderH) + 'px'; + lastRepaintRect.h = rect.h; + } + + // Update body if needed + if (self._hasBody && rect.innerW !== lastRepaintRect.innerW) { + bodyStyle = self.getEl('body').style; + bodyStyle.width = round(rect.innerW) + 'px'; + lastRepaintRect.innerW = rect.innerW; + } + + if (self._hasBody && rect.innerH !== lastRepaintRect.innerH) { + bodyStyle = bodyStyle || self.getEl('body').style; + bodyStyle.height = round(rect.innerH) + 'px'; + lastRepaintRect.innerH = rect.innerH; + } + + self._lastRepaintRect = lastRepaintRect; + self.fire('repaint', {}, false); + }, + + /** + * Binds a callback to the specified event. This event can both be + * native browser events like "click" or custom ones like PostRender. + * + * The callback function will be passed a DOM event like object that enables yout do stop propagation. + * + * @method on + * @param {String} name Name of the event to bind. For example "click". + * @param {String/function} callback Callback function to execute ones the event occurs. + * @return {tinymce.ui.Control} Current control object. + */ + on: function(name, callback) { + var self = this, bindings, handlers, names, i; + + function resolveCallbackName(name) { + var callback, scope; + + return function(e) { + if (!callback) { + self.parents().each(function(ctrl) { + var callbacks = ctrl.settings.callbacks; + + if (callbacks && (callback = callbacks[name])) { + scope = ctrl; + return false; + } + }); + } + + return callback.call(scope, e); + }; + } + + if (callback) { + if (typeof(callback) == 'string') { + callback = resolveCallbackName(callback); + } + + names = name.toLowerCase().split(' '); + i = names.length; + while (i--) { + name = names[i]; + + bindings = self._bindings; + if (!bindings) { + bindings = self._bindings = {}; + } + + handlers = bindings[name]; + if (!handlers) { + handlers = bindings[name] = []; + } + + handlers.push(callback); + + if (nativeEvents[name]) { + if (!self._nativeEvents) { + self._nativeEvents = {name: true}; + } else { + self._nativeEvents[name] = true; + } + + if (self._rendered) { + self.bindPendingEvents(); + } + } + } + } + + return self; + }, + + /** + * Unbinds the specified event and optionally a specific callback. If you omit the name + * parameter all event handlers will be removed. If you omit the callback all event handles + * by the specified name will be removed. + * + * @method off + * @param {String} [name] Name for the event to unbind. + * @param {function} [callback] Callback function to unbind. + * @return {mxex.ui.Control} Current control object. + */ + off: function(name, callback) { + var self = this, i, bindings = self._bindings, handlers, bindingName, names, hi; + + if (bindings) { + if (name) { + names = name.toLowerCase().split(' '); + i = names.length; + while (i--) { + name = names[i]; + handlers = bindings[name]; + + // Unbind all handlers + if (!name) { + for (bindingName in bindings) { + bindings[bindingName].length = 0; + } + + return self; + } + + if (handlers) { + // Unbind all by name + if (!callback) { + handlers.length = 0; + } else { + // Unbind specific ones + hi = handlers.length; + while (hi--) { + if (handlers[hi] === callback) { + handlers.splice(hi, 1); + } + } + } + } + } + } else { + self._bindings = []; + } + } + + return self; + }, + + /** + * Fires the specified event by name and arguments on the control. This will execute all + * bound event handlers. + * + * @method fire + * @param {String} name Name of the event to fire. + * @param {Object} [args] Arguments to pass to the event. + * @param {Boolean} [bubble] Value to control bubbeling. Defaults to true. + * @return {Object} Current arguments object. + */ + fire: function(name, args, bubble) { + var self = this, i, l, handlers, parentCtrl; + + name = name.toLowerCase(); + + // Dummy function that gets replaced on the delegation state functions + function returnFalse() { + return false; + } + + // Dummy function that gets replaced on the delegation state functions + function returnTrue() { + return true; + } + + // Setup empty object if args is omited + args = args || {}; + + // Stick type into event object + if (!args.type) { + args.type = name; + } + + // Stick control into event + if (!args.control) { + args.control = self; + } + + // Add event delegation methods if they are missing + if (!args.preventDefault) { + // Add preventDefault method + args.preventDefault = function() { + args.isDefaultPrevented = returnTrue; + }; + + // Add stopPropagation + args.stopPropagation = function() { + args.isPropagationStopped = returnTrue; + }; + + // Add stopImmediatePropagation + args.stopImmediatePropagation = function() { + args.isImmediatePropagationStopped = returnTrue; + }; + + // Add event delegation states + args.isDefaultPrevented = returnFalse; + args.isPropagationStopped = returnFalse; + args.isImmediatePropagationStopped = returnFalse; + } + + if (self._bindings) { + handlers = self._bindings[name]; + + if (handlers) { + for (i = 0, l = handlers.length; i < l; i++) { + // Execute callback and break if the callback returns a false + if (!args.isImmediatePropagationStopped() && handlers[i].call(self, args) === false) { + break; + } + } + } + } + + // Bubble event up to parent controls + if (bubble !== false) { + parentCtrl = self.parent(); + while (parentCtrl && !args.isPropagationStopped()) { + parentCtrl.fire(name, args, false); + parentCtrl = parentCtrl.parent(); + } + } + + return args; + }, + + /** + * Returns true/false if the specified event has any listeners. + * + * @method hasEventListeners + * @param {String} name Name of the event to check for. + * @return {Boolean} True/false state if the event has listeners. + */ + hasEventListeners: function(name) { + return name in this._bindings; + }, + + /** + * Returns a control collection with all parent controls. + * + * @method parents + * @param {String} selector Optional selector expression to find parents. + * @return {tinymce.ui.Collection} Collection with all parent controls. + */ + parents: function(selector) { + var self = this, ctrl, parents = new Collection(); + + // Add each parent to collection + for (ctrl = self.parent(); ctrl; ctrl = ctrl.parent()) { + parents.add(ctrl); + } + + // Filter away everything that doesn't match the selector + if (selector) { + parents = parents.filter(selector); + } + + return parents; + }, + + /** + * Returns the control next to the current control. + * + * @method next + * @return {tinymce.ui.Control} Next control instance. + */ + next: function() { + var parentControls = this.parent().items(); + + return parentControls[parentControls.indexOf(this) + 1]; + }, + + /** + * Returns the control previous to the current control. + * + * @method prev + * @return {tinymce.ui.Control} Previous control instance. + */ + prev: function() { + var parentControls = this.parent().items(); + + return parentControls[parentControls.indexOf(this) - 1]; + }, + + /** + * Find the common ancestor for two control instances. + * + * @method findCommonAncestor + * @param {tinymce.ui.Control} ctrl1 First control. + * @param {tinymce.ui.Control} ctrl2 Second control. + * @return {tinymce.ui.Control} Ancestor control instance. + */ + findCommonAncestor: function(ctrl1, ctrl2) { + var parentCtrl; + + while (ctrl1) { + parentCtrl = ctrl2; + + while (parentCtrl && ctrl1 != parentCtrl) { + parentCtrl = parentCtrl.parent(); + } + + if (ctrl1 == parentCtrl) { + break; + } + + ctrl1 = ctrl1.parent(); + } + + return ctrl1; + }, + + /** + * Returns true/false if the specific control has the specific class. + * + * @method hasClass + * @param {String} cls Class to check for. + * @param {String} [group] Sub element group name. + * @return {Boolean} True/false if the control has the specified class. + */ + hasClass: function(cls, group) { + var classes = this._classes[group || 'control']; + + cls = this.classPrefix + cls; + + return classes && !!classes.map[cls]; + }, + + /** + * Adds the specified class to the control + * + * @method addClass + * @param {String} cls Class to check for. + * @param {String} [group] Sub element group name. + * @return {tinymce.ui.Control} Current control object. + */ + addClass: function(cls, group) { + var self = this, classes, elm; + + cls = this.classPrefix + cls; + classes = self._classes[group || 'control']; + + if (!classes) { + classes = []; + classes.map = {}; + self._classes[group || 'control'] = classes; + } + + if (!classes.map[cls]) { + classes.map[cls] = cls; + classes.push(cls); + + if (self._rendered) { + elm = self.getEl(group); + + if (elm) { + elm.className = classes.join(' '); + } + } + } + + return self; + }, + + /** + * Removes the specified class from the control. + * + * @method removeClass + * @param {String} cls Class to remove. + * @param {String} [group] Sub element group name. + * @return {tinymce.ui.Control} Current control object. + */ + removeClass: function(cls, group) { + var self = this, classes, i, elm; + + cls = this.classPrefix + cls; + classes = self._classes[group || 'control']; + if (classes && classes.map[cls]) { + delete classes.map[cls]; + + i = classes.length; + while (i--) { + if (classes[i] === cls) { + classes.splice(i, 1); + } + } + } + + if (self._rendered) { + elm = self.getEl(group); + + if (elm) { + elm.className = classes.join(' '); + } + } + + return self; + }, + + /** + * Toggles the specified class on the control. + * + * @method toggleClass + * @param {String} cls Class to remove. + * @param {Boolean} state True/false state to add/remove class. + * @param {String} [group] Sub element group name. + * @return {tinymce.ui.Control} Current control object. + */ + toggleClass: function(cls, state, group) { + var self = this; + + if (state) { + self.addClass(cls, group); + } else { + self.removeClass(cls, group); + } + + return self; + }, + + /** + * Returns the class string for the specified group name. + * + * @method classes + * @param {String} [group] Group to get clases by. + * @return {String} Classes for the specified group. + */ + classes: function(group) { + var classes = this._classes[group || 'control']; + + return classes ? classes.join(' ') : ''; + }, + + /** + * Sets the inner HTML of the control element. + * + * @method innerHtml + * @param {String} html Html string to set as inner html. + * @return {tinymce.ui.Control} Current control object. + */ + innerHtml: function(html) { + DomUtils.innerHtml(this.getEl(), html); + return this; + }, + + /** + * Returns the control DOM element or sub element. + * + * @method getEl + * @param {String} [suffix] Suffix to get element by. + * @param {Boolean} [dropCache] True if the cache for the element should be dropped. + * @return {Element} HTML DOM element for the current control or it's children. + */ + getEl: function(suffix, dropCache) { + var elm, id = suffix ? this._id + '-' + suffix : this._id; + + elm = elementIdCache[id] = (dropCache === true ? null : elementIdCache[id]) || DomUtils.get(id); + + return elm; + }, + + /** + * Sets/gets the visible for the control. + * + * @method visible + * @param {Boolean} state Value to set to control. + * @return {Boolean/tinymce.ui.Control} Current control on a set operation or current state on a get. + */ + visible: function(state) { + var self = this, parentCtrl; + + if (typeof(state) !== "undefined") { + if (self._visible !== state) { + if (self._rendered) { + self.getEl().style.display = state ? '' : 'none'; + } + + self._visible = state; + + // Parent container needs to reflow + parentCtrl = self.parent(); + if (parentCtrl) { + parentCtrl._lastRect = null; + } + + self.fire(state ? 'show' : 'hide'); + } + + return self; + } + + return self._visible; + }, + + /** + * Sets the visible state to true. + * + * @method show + * @return {tinymce.ui.Control} Current control instance. + */ + show: function() { + return this.visible(true); + }, + + /** + * Sets the visible state to false. + * + * @method hide + * @return {tinymce.ui.Control} Current control instance. + */ + hide: function() { + return this.visible(false); + }, + + /** + * Focuses the current control. + * + * @method focus + * @return {tinymce.ui.Control} Current control instance. + */ + focus: function() { + try { + this.getEl().focus(); + } catch (ex) { + // Ignore IE error + } + + return this; + }, + + /** + * Blurs the current control. + * + * @method blur + * @return {tinymce.ui.Control} Current control instance. + */ + blur: function() { + this.getEl().blur(); + + return this; + }, + + /** + * Sets the specified aria property. + * + * @method aria + * @param {String} name Name of the aria property to set. + * @param {String} value Value of the aria property. + * @return {tinymce.ui.Control} Current control instance. + */ + aria: function(name, value) { + var self = this, elm = self.getEl(self.ariaTarget); + + if (typeof(value) === "undefined") { + return self._aria[name]; + } else { + self._aria[name] = value; + } + + if (self._rendered) { + elm.setAttribute(name == 'role' ? name : 'aria-' + name, value); + } + + return self; + }, + + /** + * Encodes the specified string with HTML entities. It will also + * translate the string to different languages. + * + * @method encode + * @param {String/Object/Array} text Text to entity encode. + * @param {Boolean} [translate=true] False if the contents shouldn't be translated. + * @return {String} Encoded and possible traslated string. + */ + encode: function(text, translate) { + if (translate !== false && Control.translate) { + text = Control.translate(text); + } + + return (text || '').replace(/[&<>"]/g, function(match) { + return '&#' + match.charCodeAt(0) + ';'; + }); + }, + + /** + * Adds items before the current control. + * + * @method before + * @param {Array/tinymce.ui.Collection} items Array of items to prepend before this control. + * @return {tinymce.ui.Control} Current control instance. + */ + before: function(items) { + var self = this, parent = self.parent(); + + if (parent) { + parent.insert(items, parent.items().indexOf(self), true); + } + + return self; + }, + + /** + * Adds items after the current control. + * + * @method after + * @param {Array/tinymce.ui.Collection} items Array of items to append after this control. + * @return {tinymce.ui.Control} Current control instance. + */ + after: function(items) { + var self = this, parent = self.parent(); + + if (parent) { + parent.insert(items, parent.items().indexOf(self)); + } + + return self; + }, + + /** + * Removes the current control from DOM and from UI collections. + * + * @method remove + * @return {tinymce.ui.Control} Current control instance. + */ + remove: function() { + var self = this, elm = self.getEl(), parent = self.parent(), newItems, i; + + if (self.items) { + var controls = self.items().toArray(); + i = controls.length; + while (i--) { + controls[i].remove(); + } + } + + if (parent && parent.items) { + newItems = []; + + parent.items().each(function(item) { + if (item !== self) { + newItems.push(item); + } + }); + + parent.items().set(newItems); + parent._lastRect = null; + } + + if (self._eventsRoot && self._eventsRoot == self) { + DomUtils.off(elm); + } + + var lookup = self.getRoot().controlIdLookup; + if (lookup) { + delete lookup[self._id]; + } + + delete elementIdCache[self._id]; + + if (elm && elm.parentNode) { + var nodes = elm.getElementsByTagName('*'); + + i = nodes.length; + while (i--) { + delete elementIdCache[nodes[i].id]; + } + + elm.parentNode.removeChild(elm); + } + + self._rendered = false; + + return self; + }, + + /** + * Renders the control before the specified element. + * + * @method renderBefore + * @param {Element} elm Element to render before. + * @return {tinymce.ui.Control} Current control instance. + */ + renderBefore: function(elm) { + var self = this; + + elm.parentNode.insertBefore(DomUtils.createFragment(self.renderHtml()), elm); + self.postRender(); + + return self; + }, + + /** + * Renders the control to the specified element. + * + * @method renderBefore + * @param {Element} elm Element to render to. + * @return {tinymce.ui.Control} Current control instance. + */ + renderTo: function(elm) { + var self = this; + + elm = elm || self.getContainerElm(); + elm.appendChild(DomUtils.createFragment(self.renderHtml())); + self.postRender(); + + return self; + }, + + /** + * Post render method. Called after the control has been rendered to the target. + * + * @method postRender + * @return {tinymce.ui.Control} Current control instance. + */ + postRender: function() { + var self = this, settings = self.settings, elm, box, parent, name, parentEventsRoot; + + // Bind on<event> settings + for (name in settings) { + if (name.indexOf("on") === 0) { + self.on(name.substr(2), settings[name]); + } + } + + if (self._eventsRoot) { + for (parent = self.parent(); !parentEventsRoot && parent; parent = parent.parent()) { + parentEventsRoot = parent._eventsRoot; + } + + if (parentEventsRoot) { + for (name in parentEventsRoot._nativeEvents) { + self._nativeEvents[name] = true; + } + } + } + + self.bindPendingEvents(); + + if (settings.style) { + elm = self.getEl(); + if (elm) { + elm.setAttribute('style', settings.style); + elm.style.cssText = settings.style; + } + } + + if (!self._visible) { + DomUtils.css(self.getEl(), 'display', 'none'); + } + + if (self.settings.border) { + box = self.borderBox(); + DomUtils.css(self.getEl(), { + 'border-top-width': box.top, + 'border-right-width': box.right, + 'border-bottom-width': box.bottom, + 'border-left-width': box.left + }); + } + + // Add instance to lookup + var root = self.getRoot(); + if (!root.controlIdLookup) { + root.controlIdLookup = {}; + } + + root.controlIdLookup[self._id] = self; + + for (var key in self._aria) { + self.aria(key, self._aria[key]); + } + + self.fire('postrender', {}, false); + }, + + /** + * Scrolls the current control into view. + * + * @method scrollIntoView + * @param {String} align Alignment in view top|center|bottom. + * @return {tinymce.ui.Control} Current control instance. + */ + scrollIntoView: function(align) { + function getOffset(elm, rootElm) { + var x, y, parent = elm; + + x = y = 0; + while (parent && parent != rootElm && parent.nodeType) { + x += parent.offsetLeft || 0; + y += parent.offsetTop || 0; + parent = parent.offsetParent; + } + + return {x: x, y: y}; + } + + var elm = this.getEl(), parentElm = elm.parentNode; + var x, y, width, height, parentWidth, parentHeight; + var pos = getOffset(elm, parentElm); + + x = pos.x; + y = pos.y; + width = elm.offsetWidth; + height = elm.offsetHeight; + parentWidth = parentElm.clientWidth; + parentHeight = parentElm.clientHeight; + + if (align == "end") { + x -= parentWidth - width; + y -= parentHeight - height; + } else if (align == "center") { + x -= (parentWidth / 2) - (width / 2); + y -= (parentHeight / 2) - (height / 2); + } + + parentElm.scrollLeft = x; + parentElm.scrollTop = y; + + return this; + }, + + /** + * Binds pending DOM events. + * + * @private + */ + bindPendingEvents: function() { + var self = this, i, l, parents, eventRootCtrl, nativeEvents, name; + + function delegate(e) { + var control = self.getParentCtrl(e.target); + + if (control) { + control.fire(e.type, e); + } + } + + function mouseLeaveHandler() { + var ctrl = eventRootCtrl._lastHoverCtrl; + + if (ctrl) { + ctrl.fire("mouseleave", {target: ctrl.getEl()}); + + ctrl.parents().each(function(ctrl) { + ctrl.fire("mouseleave", {target: ctrl.getEl()}); + }); + + eventRootCtrl._lastHoverCtrl = null; + } + } + + function mouseEnterHandler(e) { + var ctrl = self.getParentCtrl(e.target), lastCtrl = eventRootCtrl._lastHoverCtrl, idx = 0, i, parents, lastParents; + + // Over on a new control + if (ctrl !== lastCtrl) { + eventRootCtrl._lastHoverCtrl = ctrl; + + parents = ctrl.parents().toArray().reverse(); + parents.push(ctrl); + + if (lastCtrl) { + lastParents = lastCtrl.parents().toArray().reverse(); + lastParents.push(lastCtrl); + + for (idx = 0; idx < lastParents.length; idx++) { + if (parents[idx] !== lastParents[idx]) { + break; + } + } + + for (i = lastParents.length - 1; i >= idx; i--) { + lastCtrl = lastParents[i]; + lastCtrl.fire("mouseleave", { + target : lastCtrl.getEl() + }); + } + } + + for (i = idx; i < parents.length; i++) { + ctrl = parents[i]; + ctrl.fire("mouseenter", { + target : ctrl.getEl() + }); + } + } + } + + function fixWheelEvent(e) { + e.preventDefault(); + + if (e.type == "mousewheel") { + e.deltaY = -1 / 40 * e.wheelDelta; + + if (e.wheelDeltaX) { + e.deltaX = -1 / 40 * e.wheelDeltaX; + } + } else { + e.deltaX = 0; + e.deltaY = e.detail; + } + + e = self.fire("wheel", e); + } + + self._rendered = true; + + nativeEvents = self._nativeEvents; + if (nativeEvents) { + // Find event root element if it exists + parents = self.parents().toArray(); + parents.unshift(self); + for (i = 0, l = parents.length; !eventRootCtrl && i < l; i++) { + eventRootCtrl = parents[i]._eventsRoot; + } + + // Event root wasn't found the use the root control + if (!eventRootCtrl) { + eventRootCtrl = parents[parents.length - 1] || self; + } + + // Set the eventsRoot property on children that didn't have it + self._eventsRoot = eventRootCtrl; + for (l = i, i = 0; i < l; i++) { + parents[i]._eventsRoot = eventRootCtrl; + } + + // Bind native event delegates + for (name in nativeEvents) { + if (!nativeEvents) { + return false; + } + + if (name === "wheel" && !hasWheelEventSupport) { + if (hasMouseWheelEventSupport) { + DomUtils.on(self.getEl(), "mousewheel", fixWheelEvent); + } else { + DomUtils.on(self.getEl(), "DOMMouseScroll", fixWheelEvent); + } + + continue; + } + + // Special treatment for mousenter/mouseleave since these doesn't bubble + if (name === "mouseenter" || name === "mouseleave") { + // Fake mousenter/mouseleave + if (!eventRootCtrl._hasMouseEnter) { + DomUtils.on(eventRootCtrl.getEl(), "mouseleave", mouseLeaveHandler); + DomUtils.on(eventRootCtrl.getEl(), "mouseover", mouseEnterHandler); + eventRootCtrl._hasMouseEnter = 1; + } + } else if (!eventRootCtrl[name]) { + DomUtils.on(eventRootCtrl.getEl(), name, delegate); + eventRootCtrl[name] = true; + } + + // Remove the event once it's bound + nativeEvents[name] = false; + } + } + }, + + getRoot: function() { + var ctrl = this, rootControl, parents = []; + + while (ctrl) { + if (ctrl.rootControl) { + rootControl = ctrl.rootControl; + break; + } + + parents.push(ctrl); + rootControl = ctrl; + ctrl = ctrl.parent(); + } + + if (!rootControl) { + rootControl = this; + } + + var i = parents.length; + while (i--) { + parents[i].rootControl = rootControl; + } + + return rootControl; + }, + + /** + * Reflows the current control and it's parents. + * This should be used after you for example append children to the current control so + * that the layout managers know that they need to reposition everything. + * + * @example + * container.append({type: 'button', text: 'My button'}).reflow(); + * + * @method reflow + * @return {tinymce.ui.Control} Current control instance. + */ + reflow: function() { + this.repaint(); + + return this; + } + + /** + * Sets/gets the parent container for the control. + * + * @method parent + * @param {tinymce.ui.Container} parent Optional parent to set. + * @return {tinymce.ui.Control} Parent control or the current control on a set action. + */ + // parent: function(parent) {} -- Generated + + /** + * Sets/gets the text for the control. + * + * @method text + * @param {String} value Value to set to control. + * @return {String/tinymce.ui.Control} Current control on a set operation or current value on a get. + */ + // text: function(value) {} -- Generated + + /** + * Sets/gets the width for the control. + * + * @method width + * @param {Number} value Value to set to control. + * @return {Number/tinymce.ui.Control} Current control on a set operation or current value on a get. + */ + // width: function(value) {} -- Generated + + /** + * Sets/gets the height for the control. + * + * @method height + * @param {Number} value Value to set to control. + * @return {Number/tinymce.ui.Control} Current control on a set operation or current value on a get. + */ + // height: function(value) {} -- Generated + + /** + * Sets/gets the disabled state on the control. + * + * @method disabled + * @param {Boolean} state Value to set to control. + * @return {Boolean/tinymce.ui.Control} Current control on a set operation or current state on a get. + */ + // disabled: function(state) {} -- Generated + + /** + * Sets/gets the active for the control. + * + * @method active + * @param {Boolean} state Value to set to control. + * @return {Boolean/tinymce.ui.Control} Current control on a set operation or current state on a get. + */ + // active: function(state) {} -- Generated + + /** + * Sets/gets the name for the control. + * + * @method name + * @param {String} value Value to set to control. + * @return {String/tinymce.ui.Control} Current control on a set operation or current value on a get. + */ + // name: function(value) {} -- Generated + + /** + * Sets/gets the title for the control. + * + * @method title + * @param {String} value Value to set to control. + * @return {String/tinymce.ui.Control} Current control on a set operation or current value on a get. + */ + // title: function(value) {} -- Generated + }); + + return Control; +}); + +// Included from: js/tinymce/classes/ui/Factory.js + +/** + * Factory.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*global tinymce:true */ + +/** + * This class is a factory for control instances. This enables you + * to create instances of controls without having to require the UI controls directly. + * + * It also allow you to override or add new control types. + * + * @class tinymce.ui.Factory + */ +define("tinymce/ui/Factory", [], function() { + "use strict"; + + var types = {}, namespaceInit; + + return { + /** + * Adds a new control instance type to the factory. + * + * @method add + * @param {String} type Type name for example "button". + * @param {function} typeClass Class type function. + */ + add: function(type, typeClass) { + types[type.toLowerCase()] = typeClass; + }, + + /** + * Returns true/false if the specified type exists or not. + * + * @method has + * @param {String} type Type to look for. + * @return {Boolean} true/false if the control by name exists. + */ + has: function(type) { + return !!types[type.toLowerCase()]; + }, + + /** + * Creates a new control instance based on the settings provided. The instance created will be + * based on the specified type property it can also create whole structures of components out of + * the specified JSON object. + * + * @example + * tinymce.ui.Factory.create({ + * type: 'button', + * text: 'Hello world!' + * }); + * + * @method create + * @param {Object/String} settings Name/Value object with items used to create the type. + * @return {tinymce.ui.Control} Control instance based on the specified type. + */ + create: function(type, settings) { + var ControlType, name, namespace; + + // Build type lookup + if (!namespaceInit) { + namespace = tinymce.ui; + + for (name in namespace) { + types[name.toLowerCase()] = namespace[name]; + } + + namespaceInit = true; + } + + // If string is specified then use it as the type + if (typeof(type) == 'string') { + settings = settings || {}; + settings.type = type; + } else { + settings = type; + type = settings.type; + } + + // Find control type + type = type.toLowerCase(); + ControlType = types[type]; + + // #if debug + + if (!ControlType) { + throw new Error("Could not find control by type: " + type); + } + + // #endif + + ControlType = new ControlType(settings); + ControlType.type = type; // Set the type on the instance, this will be used by the Selector engine + + return ControlType; + } + }; +}); + +// Included from: js/tinymce/classes/ui/KeyboardNavigation.js + +/** + * KeyboardNavigation.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles keyboard navigation of controls and elements. + * + * @class tinymce.ui.KeyboardNavigation + */ +define("tinymce/ui/KeyboardNavigation", [ +], function() { + "use strict"; + + /** + * This class handles all keyboard navigation for WAI-ARIA support. Each root container + * gets an instance of this class. + * + * @constructor + */ + return function(settings) { + var root = settings.root, focusedElement, focusedControl; + + focusedElement = document.activeElement; + focusedControl = root.getParentCtrl(focusedElement); + + /** + * Returns the currently focused elements wai aria role of the currently + * focused element or specified element. + * + * @private + * @param {Element} elm Optional element to get role from. + * @return {String} Role of specified element. + */ + function getRole(elm) { + elm = elm || focusedElement; + + return elm && elm.getAttribute('role'); + } + + /** + * Returns the wai role of the parent element of the currently + * focused element or specified element. + * + * @private + * @param {Element} elm Optional element to get parent role from. + * @return {String} Role of the first parent that has a role. + */ + function getParentRole(elm) { + var role, parent = elm || focusedElement; + + while ((parent = parent.parentNode)) { + if ((role = getRole(parent))) { + return role; + } + } + } + + /** + * Returns a wai aria property by name for example aria-selected. + * + * @private + * @param {String} name Name of the aria property to get for example "disabled". + * @return {String} Aria property value. + */ + function getAriaProp(name) { + var elm = focusedElement; + + if (elm) { + return elm.getAttribute('aria-' + name); + } + } + + /** + * Is the element a text input element or not. + * + * @private + * @param {Element} elm Element to check if it's an text input element or not. + * @return {Boolean} True/false if the element is a text element or not. + */ + function isTextInputElement(elm) { + // Notice: since type can be "email" etc we don't check the type + // So all input elements gets treated as text input elements + return elm.tagName == "INPUT" || elm.tagName == "TEXTAREA"; + } + + /** + * Returns true/false if the specified element can be focused or not. + * + * @private + * @param {Element} elm DOM element to check if it can be focused or not. + * @return {Boolean} True/false if the element can have focus. + */ + function canFocus(elm) { + if (isTextInputElement(elm) && !elm.hidden) { + return true; + } + + if (/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell)$/.test(getRole(elm))) { + return true; + } + + return false; + } + + /** + * Returns an array of focusable visible elements within the specified container element. + * + * @private + * @param {Element} elm DOM element to find focusable elements within. + * @return {Array} Array of focusable elements. + */ + function getFocusElements(elm) { + var elements = []; + + function collect(elm) { + if (elm.nodeType != 1 || elm.style.display == 'none') { + return; + } + + if (canFocus(elm)) { + elements.push(elm); + } + + for (var i = 0; i < elm.childNodes.length; i++) { + collect(elm.childNodes[i]); + } + } + + collect(elm || root.getEl()); + + return elements; + } + + /** + * Returns the navigation root control for the specified control. The navigation root + * is the control that the keyboard navigation gets scoped to for example a menubar or toolbar group. + * It will look for parents of the specified target control or the currenty focused control if this option is omitted. + * + * @private + * @param {tinymce.ui.Control} targetControl Optional target control to find root of. + * @return {tinymce.ui.Control} Navigation root control. + */ + function getNavigationRoot(targetControl) { + var navigationRoot, controls; + + targetControl = targetControl || focusedControl; + controls = targetControl.parents().toArray(); + controls.unshift(targetControl); + + for (var i = 0; i < controls.length; i++) { + navigationRoot = controls[i]; + + if (navigationRoot.settings.ariaRoot) { + break; + } + } + + return navigationRoot; + } + + /** + * Focuses the first item in the specified targetControl element or the last aria index if the + * navigation root has the ariaRemember option enabled. + * + * @private + * @param {tinymce.ui.Control} targetControl Target control to focus the first item in. + */ + function focusFirst(targetControl) { + var navigationRoot = getNavigationRoot(targetControl); + var focusElements = getFocusElements(navigationRoot.getEl()); + + if (navigationRoot.settings.ariaRemember && "lastAriaIndex" in navigationRoot) { + moveFocusToIndex(navigationRoot.lastAriaIndex, focusElements); + } else { + moveFocusToIndex(0, focusElements); + } + } + + /** + * Moves the focus to the specified index within the elements list. + * This will scope the index to the size of the element list if it changed. + * + * @private + * @param {Number} idx Specified index to move to. + * @param {Array} elements Array with dom elements to move focus within. + * @return {Number} Input index or a changed index if it was out of range. + */ + function moveFocusToIndex(idx, elements) { + if (idx < 0) { + idx = elements.length - 1; + } else if (idx >= elements.length) { + idx = 0; + } + + if (elements[idx]) { + elements[idx].focus(); + } + + return idx; + } + + /** + * Moves the focus forwards or backwards. + * + * @private + * @param {Number} dir Direction to move in positive means forward, negative means backwards. + * @param {Array} elements Optional array of elements to move within defaults to the current navigation roots elements. + */ + function moveFocus(dir, elements) { + var idx = -1, navigationRoot = getNavigationRoot(); + + elements = elements || getFocusElements(navigationRoot.getEl()); + + for (var i = 0; i < elements.length; i++) { + if (elements[i] === focusedElement) { + idx = i; + } + } + + idx += dir; + navigationRoot.lastAriaIndex = moveFocusToIndex(idx, elements); + } + + /** + * Moves the focus to the left this is called by the left key. + * + * @private + */ + function left() { + var parentRole = getParentRole(); + + if (parentRole == "tablist") { + moveFocus(-1, getFocusElements(focusedElement.parentNode)); + } else if (focusedControl.parent().submenu) { + cancel(); + } else { + moveFocus(-1); + } + } + + /** + * Moves the focus to the right this is called by the right key. + * + * @private + */ + function right() { + var role = getRole(), parentRole = getParentRole(); + + if (parentRole == "tablist") { + moveFocus(1, getFocusElements(focusedElement.parentNode)); + } else if (role == "menuitem" && parentRole == "menu" && getAriaProp('haspopup')) { + enter(); + } else { + moveFocus(1); + } + } + + /** + * Moves the focus to the up this is called by the up key. + * + * @private + */ + function up() { + moveFocus(-1); + } + + /** + * Moves the focus to the up this is called by the down key. + * + * @private + */ + function down() { + var role = getRole(), parentRole = getParentRole(); + + if (role == "menuitem" && parentRole == "menubar") { + enter(); + } else if (role == "button" && getAriaProp('haspopup')) { + enter({key: 'down'}); + } else { + moveFocus(1); + } + } + + /** + * Moves the focus to the next item or previous item depending on shift key. + * + * @private + * @param {DOMEvent} e DOM event object. + */ + function tab(e) { + var parentRole = getParentRole(); + + if (parentRole == "tablist") { + var elm = getFocusElements(focusedControl.getEl('body'))[0]; + + if (elm) { + elm.focus(); + } + } else { + moveFocus(e.shiftKey ? -1 : 1); + } + } + + /** + * Calls the cancel event on the currently focused control. This is normally done using the Esc key. + * + * @private + */ + function cancel() { + focusedControl.fire('cancel'); + } + + /** + * Calls the click event on the currently focused control. This is normally done using the Enter/Space keys. + * + * @private + * @param {Object} aria Optional aria data to pass along with the enter event. + */ + function enter(aria) { + aria = aria || {}; + focusedControl.fire('click', {target: focusedElement, aria: aria}); + } + + root.on('keydown', function(e) { + function handleNonTabEvent(e, handler) { + // Ignore non tab keys for text elements + if (isTextInputElement(focusedElement)) { + return; + } + + if (handler(e) !== false) { + e.preventDefault(); + } + } + + if (e.isDefaultPrevented()) { + return; + } + + switch (e.keyCode) { + case 37: // DOM_VK_LEFT + handleNonTabEvent(e, left); + break; + + case 39: // DOM_VK_RIGHT + handleNonTabEvent(e, right); + break; + + case 38: // DOM_VK_UP + handleNonTabEvent(e, up); + break; + + case 40: // DOM_VK_DOWN + handleNonTabEvent(e, down); + break; + + case 27: // DOM_VK_ESCAPE + handleNonTabEvent(e, cancel); + break; + + case 14: // DOM_VK_ENTER + case 13: // DOM_VK_RETURN + case 32: // DOM_VK_SPACE + handleNonTabEvent(e, enter); + break; + + case 9: // DOM_VK_TAB + if (tab(e) !== false) { + e.preventDefault(); + } + break; + } + }); + + root.on('focusin', function(e) { + focusedElement = e.target; + focusedControl = e.control; + }); + + return { + focusFirst: focusFirst + }; + }; +}); + +// Included from: js/tinymce/classes/ui/Container.js + +/** + * Container.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Container control. This is extended by all controls that can have + * children such as panels etc. You can also use this class directly as an + * generic container instance. The container doesn't have any specific role or style. + * + * @-x-less Container.less + * @class tinymce.ui.Container + * @extends tinymce.ui.Control + */ +define("tinymce/ui/Container", [ + "tinymce/ui/Control", + "tinymce/ui/Collection", + "tinymce/ui/Selector", + "tinymce/ui/Factory", + "tinymce/ui/KeyboardNavigation", + "tinymce/util/Tools", + "tinymce/ui/DomUtils" +], function(Control, Collection, Selector, Factory, KeyboardNavigation, Tools, DomUtils) { + "use strict"; + + var selectorCache = {}; + + return Control.extend({ + layout: '', + innerClass: 'container-inner', + + /** + * Constructs a new control instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {Array} items Items to add to container in JSON format or control instances. + * @setting {String} layout Layout manager by name to use. + * @setting {Object} defaults Default settings to apply to all items. + */ + init: function(settings) { + var self = this; + + self._super(settings); + settings = self.settings; + self._fixed = settings.fixed; + self._items = new Collection(); + + if (self.isRtl()) { + self.addClass('rtl'); + } + + self.addClass('container'); + self.addClass('container-body', 'body'); + + if (settings.containerCls) { + self.addClass(settings.containerCls); + } + + self._layout = Factory.create((settings.layout || self.layout) + 'layout'); + + if (self.settings.items) { + self.add(self.settings.items); + } + + // TODO: Fix this! + self._hasBody = true; + }, + + /** + * Returns a collection of child items that the container currently have. + * + * @method items + * @return {tinymce.ui.Collection} Control collection direct child controls. + */ + items: function() { + return this._items; + }, + + /** + * Find child controls by selector. + * + * @method find + * @param {String} selector Selector CSS pattern to find children by. + * @return {tinymce.ui.Collection} Control collection with child controls. + */ + find: function(selector) { + selector = selectorCache[selector] = selectorCache[selector] || new Selector(selector); + + return selector.find(this); + }, + + /** + * Adds one or many items to the current container. This will create instances of + * the object representations if needed. + * + * @method add + * @param {Array/Object/tinymce.ui.Control} items Array or item that will be added to the container. + * @return {tinymce.ui.Collection} Current collection control. + */ + add: function(items) { + var self = this; + + self.items().add(self.create(items)).parent(self); + + return self; + }, + + /** + * Focuses the current container instance. This will look + * for the first control in the container and focus that. + * + * @method focus + * @param {Boolean} keyboard Optional true/false if the focus was a keyboard focus or not. + * @return {tinymce.ui.Collection} Current instance. + */ + focus: function(keyboard) { + var self = this, focusCtrl, keyboardNav, items; + + if (keyboard) { + keyboardNav = self.keyboardNav || self.parents().eq(-1)[0].keyboardNav; + + if (keyboardNav) { + keyboardNav.focusFirst(self); + return; + } + } + + items = self.find('*'); + + // TODO: Figure out a better way to auto focus alert dialog buttons + if (self.statusbar) { + items.add(self.statusbar.items()); + } + + items.each(function(ctrl) { + if (ctrl.settings.autofocus) { + focusCtrl = null; + return false; + } + + if (ctrl.canFocus) { + focusCtrl = focusCtrl || ctrl; + } + }); + + if (focusCtrl) { + focusCtrl.focus(); + } + + return self; + }, + + /** + * Replaces the specified child control with a new control. + * + * @method replace + * @param {tinymce.ui.Control} oldItem Old item to be replaced. + * @param {tinymce.ui.Control} newItem New item to be inserted. + */ + replace: function(oldItem, newItem) { + var ctrlElm, items = this.items(), i = items.length; + + // Replace the item in collection + while (i--) { + if (items[i] === oldItem) { + items[i] = newItem; + break; + } + } + + if (i >= 0) { + // Remove new item from DOM + ctrlElm = newItem.getEl(); + if (ctrlElm) { + ctrlElm.parentNode.removeChild(ctrlElm); + } + + // Remove old item from DOM + ctrlElm = oldItem.getEl(); + if (ctrlElm) { + ctrlElm.parentNode.removeChild(ctrlElm); + } + } + + // Adopt the item + newItem.parent(this); + }, + + /** + * Creates the specified items. If any of the items is plain JSON style objects + * it will convert these into real tinymce.ui.Control instances. + * + * @method create + * @param {Array} items Array of items to convert into control instances. + * @return {Array} Array with control instances. + */ + create: function(items) { + var self = this, settings, ctrlItems = []; + + // Non array structure, then force it into an array + if (!Tools.isArray(items)) { + items = [items]; + } + + // Add default type to each child control + Tools.each(items, function(item) { + if (item) { + // Construct item if needed + if (!(item instanceof Control)) { + // Name only then convert it to an object + if (typeof(item) == "string") { + item = {type: item}; + } + + // Create control instance based on input settings and default settings + settings = Tools.extend({}, self.settings.defaults, item); + item.type = settings.type = settings.type || item.type || self.settings.defaultType || + (settings.defaults ? settings.defaults.type : null); + item = Factory.create(settings); + } + + ctrlItems.push(item); + } + }); + + return ctrlItems; + }, + + /** + * Renders new control instances. + * + * @private + */ + renderNew: function() { + var self = this; + + // Render any new items + self.items().each(function(ctrl, index) { + var containerElm, fragment; + + ctrl.parent(self); + + if (!ctrl._rendered) { + containerElm = self.getEl('body'); + fragment = DomUtils.createFragment(ctrl.renderHtml()); + + // Insert or append the item + if (containerElm.hasChildNodes() && index <= containerElm.childNodes.length - 1) { + containerElm.insertBefore(fragment, containerElm.childNodes[index]); + } else { + containerElm.appendChild(fragment); + } + + ctrl.postRender(); + } + }); + + self._layout.applyClasses(self); + self._lastRect = null; + + return self; + }, + + /** + * Appends new instances to the current container. + * + * @method append + * @param {Array/tinymce.ui.Collection} items Array if controls to append. + * @return {tinymce.ui.Container} Current container instance. + */ + append: function(items) { + return this.add(items).renderNew(); + }, + + /** + * Prepends new instances to the current container. + * + * @method prepend + * @param {Array/tinymce.ui.Collection} items Array if controls to prepend. + * @return {tinymce.ui.Container} Current container instance. + */ + prepend: function(items) { + var self = this; + + self.items().set(self.create(items).concat(self.items().toArray())); + + return self.renderNew(); + }, + + /** + * Inserts an control at a specific index. + * + * @method insert + * @param {Array/tinymce.ui.Collection} items Array if controls to insert. + * @param {Number} index Index to insert controls at. + * @param {Boolean} [before=false] Inserts controls before the index. + */ + insert: function(items, index, before) { + var self = this, curItems, beforeItems, afterItems; + + items = self.create(items); + curItems = self.items(); + + if (!before && index < curItems.length - 1) { + index += 1; + } + + if (index >= 0 && index < curItems.length) { + beforeItems = curItems.slice(0, index).toArray(); + afterItems = curItems.slice(index).toArray(); + curItems.set(beforeItems.concat(items, afterItems)); + } + + return self.renderNew(); + }, + + /** + * Populates the form fields from the specified JSON data object. + * + * Control items in the form that matches the data will have it's value set. + * + * @method fromJSON + * @param {Object} data JSON data object to set control values by. + * @return {tinymce.ui.Container} Current form instance. + */ + fromJSON: function(data) { + var self = this; + + for (var name in data) { + self.find('#' + name).value(data[name]); + } + + return self; + }, + + /** + * Serializes the form into a JSON object by getting all items + * that has a name and a value. + * + * @method toJSON + * @return {Object} JSON object with form data. + */ + toJSON: function() { + var self = this, data = {}; + + self.find('*').each(function(ctrl) { + var name = ctrl.name(), value = ctrl.value(); + + if (name && typeof(value) != "undefined") { + data[name] = value; + } + }); + + return data; + }, + + preRender: function() { + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, layout = self._layout, role = this.settings.role; + + self.preRender(); + layout.preRender(self); + + return ( + '<div id="' + self._id + '" class="' + self.classes() + '"' + (role ? ' role="' + this.settings.role + '"' : '') + '>' + + '<div id="' + self._id + '-body" class="' + self.classes('body') + '">' + + (self.settings.html || '') + layout.renderHtml(self) + + '</div>' + + '</div>' + ); + }, + + /** + * Post render method. Called after the control has been rendered to the target. + * + * @method postRender + * @return {tinymce.ui.Container} Current combobox instance. + */ + postRender: function() { + var self = this, box; + + self.items().exec('postRender'); + self._super(); + + self._layout.postRender(self); + self._rendered = true; + + if (self.settings.style) { + DomUtils.css(self.getEl(), self.settings.style); + } + + if (self.settings.border) { + box = self.borderBox(); + DomUtils.css(self.getEl(), { + 'border-top-width': box.top, + 'border-right-width': box.right, + 'border-bottom-width': box.bottom, + 'border-left-width': box.left + }); + } + + if (!self.parent()) { + self.keyboardNav = new KeyboardNavigation({ + root: self + }); + } + + return self; + }, + + /** + * Initializes the current controls layout rect. + * This will be executed by the layout managers to determine the + * default minWidth/minHeight etc. + * + * @method initLayoutRect + * @return {Object} Layout rect instance. + */ + initLayoutRect: function() { + var self = this, layoutRect = self._super(); + + // Recalc container size by asking layout manager + self._layout.recalc(self); + + return layoutRect; + }, + + /** + * Recalculates the positions of the controls in the current container. + * This is invoked by the reflow method and shouldn't be called directly. + * + * @method recalc + */ + recalc: function() { + var self = this, rect = self._layoutRect, lastRect = self._lastRect; + + if (!lastRect || lastRect.w != rect.w || lastRect.h != rect.h) { + self._layout.recalc(self); + rect = self.layoutRect(); + self._lastRect = {x: rect.x, y: rect.y, w: rect.w, h: rect.h}; + return true; + } + }, + + /** + * Reflows the current container and it's children and possible parents. + * This should be used after you for example append children to the current control so + * that the layout managers know that they need to reposition everything. + * + * @example + * container.append({type: 'button', text: 'My button'}).reflow(); + * + * @method reflow + * @return {tinymce.ui.Container} Current container instance. + */ + reflow: function() { + var i; + + if (this.visible()) { + Control.repaintControls = []; + Control.repaintControls.map = {}; + + this.recalc(); + i = Control.repaintControls.length; + + while (i--) { + Control.repaintControls[i].repaint(); + } + + // TODO: Fix me! + if (this.settings.layout !== "flow" && this.settings.layout !== "stack") { + this.repaint(); + } + + Control.repaintControls = []; + } + + return this; + } + }); +}); + +// Included from: js/tinymce/classes/ui/DragHelper.js + +/** + * DragHelper.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Drag/drop helper class. + * + * @example + * var dragHelper = new tinymce.ui.DragHelper('mydiv', { + * start: function(evt) { + * }, + * + * drag: function(evt) { + * }, + * + * end: function(evt) { + * } + * }); + * + * @class tinymce.ui.DragHelper + */ +define("tinymce/ui/DragHelper", [ + "tinymce/ui/DomUtils" +], function(DomUtils) { + "use strict"; + + function getDocumentSize() { + var doc = document, documentElement, body, scrollWidth, clientWidth; + var offsetWidth, scrollHeight, clientHeight, offsetHeight, max = Math.max; + + documentElement = doc.documentElement; + body = doc.body; + + scrollWidth = max(documentElement.scrollWidth, body.scrollWidth); + clientWidth = max(documentElement.clientWidth, body.clientWidth); + offsetWidth = max(documentElement.offsetWidth, body.offsetWidth); + + scrollHeight = max(documentElement.scrollHeight, body.scrollHeight); + clientHeight = max(documentElement.clientHeight, body.clientHeight); + offsetHeight = max(documentElement.offsetHeight, body.offsetHeight); + + return { + width: scrollWidth < offsetWidth ? clientWidth : scrollWidth, + height: scrollHeight < offsetHeight ? clientHeight : scrollHeight + }; + } + + return function(id, settings) { + var eventOverlayElm, doc = document, downButton, start, stop, drag, startX, startY; + + settings = settings || {}; + + function getHandleElm() { + return doc.getElementById(settings.handle || id); + } + + start = function(e) { + var docSize = getDocumentSize(), handleElm, cursor; + + e.preventDefault(); + downButton = e.button; + handleElm = getHandleElm(); + startX = e.screenX; + startY = e.screenY; + + // Grab cursor from handle + if (window.getComputedStyle) { + cursor = window.getComputedStyle(handleElm, null).getPropertyValue("cursor"); + } else { + cursor = handleElm.runtimeStyle.cursor; + } + + // Create event overlay and add it to document + eventOverlayElm = doc.createElement('div'); + DomUtils.css(eventOverlayElm, { + position: "absolute", + top: 0, left: 0, + width: docSize.width, + height: docSize.height, + zIndex: 0x7FFFFFFF, + opacity: 0.0001, + background: 'red', + cursor: cursor + }); + + doc.body.appendChild(eventOverlayElm); + + // Bind mouse events + DomUtils.on(doc, 'mousemove', drag); + DomUtils.on(doc, 'mouseup', stop); + + // Begin drag + settings.start(e); + }; + + drag = function(e) { + if (e.button !== downButton) { + return stop(e); + } + + e.deltaX = e.screenX - startX; + e.deltaY = e.screenY - startY; + + e.preventDefault(); + settings.drag(e); + }; + + stop = function(e) { + DomUtils.off(doc, 'mousemove', drag); + DomUtils.off(doc, 'mouseup', stop); + + eventOverlayElm.parentNode.removeChild(eventOverlayElm); + + if (settings.stop) { + settings.stop(e); + } + }; + + /** + * Destroys the drag/drop helper instance. + * + * @method destroy + */ + this.destroy = function() { + DomUtils.off(getHandleElm()); + }; + + DomUtils.on(getHandleElm(), 'mousedown', start); + }; +}); + +// Included from: js/tinymce/classes/ui/Scrollable.js + +/** + * Scrollable.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This mixin makes controls scrollable using custom scrollbars. + * + * @-x-less Scrollable.less + * @mixin tinymce.ui.Scrollable + */ +define("tinymce/ui/Scrollable", [ + "tinymce/ui/DomUtils", + "tinymce/ui/DragHelper" +], function(DomUtils, DragHelper) { + "use strict"; + + return { + init: function() { + var self = this; + self.on('repaint', self.renderScroll); + }, + + renderScroll: function() { + var self = this, margin = 2; + + function repaintScroll() { + var hasScrollH, hasScrollV, bodyElm; + + function repaintAxis(axisName, posName, sizeName, contentSizeName, hasScroll, ax) { + var containerElm, scrollBarElm, scrollThumbElm; + var containerSize, scrollSize, ratio, rect; + var posNameLower, sizeNameLower; + + scrollBarElm = self.getEl('scroll' + axisName); + if (scrollBarElm) { + posNameLower = posName.toLowerCase(); + sizeNameLower = sizeName.toLowerCase(); + + if (self.getEl('absend')) { + DomUtils.css(self.getEl('absend'), posNameLower, self.layoutRect()[contentSizeName] - 1); + } + + if (!hasScroll) { + DomUtils.css(scrollBarElm, 'display', 'none'); + return; + } + + DomUtils.css(scrollBarElm, 'display', 'block'); + containerElm = self.getEl('body'); + scrollThumbElm = self.getEl('scroll' + axisName + "t"); + containerSize = containerElm["client" + sizeName] - (margin * 2); + containerSize -= hasScrollH && hasScrollV ? scrollBarElm["client" + ax] : 0; + scrollSize = containerElm["scroll" + sizeName]; + ratio = containerSize / scrollSize; + + rect = {}; + rect[posNameLower] = containerElm["offset" + posName] + margin; + rect[sizeNameLower] = containerSize; + DomUtils.css(scrollBarElm, rect); + + rect = {}; + rect[posNameLower] = containerElm["scroll" + posName] * ratio; + rect[sizeNameLower] = containerSize * ratio; + DomUtils.css(scrollThumbElm, rect); + } + } + + bodyElm = self.getEl('body'); + hasScrollH = bodyElm.scrollWidth > bodyElm.clientWidth; + hasScrollV = bodyElm.scrollHeight > bodyElm.clientHeight; + + repaintAxis("h", "Left", "Width", "contentW", hasScrollH, "Height"); + repaintAxis("v", "Top", "Height", "contentH", hasScrollV, "Width"); + } + + function addScroll() { + function addScrollAxis(axisName, posName, sizeName, deltaPosName, ax) { + var scrollStart, axisId = self._id + '-scroll' + axisName, prefix = self.classPrefix; + + self.getEl().appendChild(DomUtils.createFragment( + '<div id="' + axisId + '" class="' + prefix + 'scrollbar ' + prefix + 'scrollbar-' + axisName + '">' + + '<div id="' + axisId + 't" class="' + prefix + 'scrollbar-thumb"></div>' + + '</div>' + )); + + self.draghelper = new DragHelper(axisId + 't', { + start: function() { + scrollStart = self.getEl('body')["scroll" + posName]; + DomUtils.addClass(DomUtils.get(axisId), prefix + 'active'); + }, + + drag: function(e) { + var ratio, hasScrollH, hasScrollV, containerSize, layoutRect = self.layoutRect(); + + hasScrollH = layoutRect.contentW > layoutRect.innerW; + hasScrollV = layoutRect.contentH > layoutRect.innerH; + containerSize = self.getEl('body')["client" + sizeName] - (margin * 2); + containerSize -= hasScrollH && hasScrollV ? self.getEl('scroll' + axisName)["client" + ax] : 0; + + ratio = containerSize / self.getEl('body')["scroll" + sizeName]; + self.getEl('body')["scroll" + posName] = scrollStart + (e["delta" + deltaPosName] / ratio); + }, + + stop: function() { + DomUtils.removeClass(DomUtils.get(axisId), prefix + 'active'); + } + }); +/* + self.on('click', function(e) { + if (e.target.id == self._id + '-scrollv') { + + } + });*/ + } + + self.addClass('scroll'); + + addScrollAxis("v", "Top", "Height", "Y", "Width"); + addScrollAxis("h", "Left", "Width", "X", "Height"); + } + + if (self.settings.autoScroll) { + if (!self._hasScroll) { + self._hasScroll = true; + addScroll(); + + self.on('wheel', function(e) { + var bodyEl = self.getEl('body'); + + bodyEl.scrollLeft += (e.deltaX || 0) * 10; + bodyEl.scrollTop += e.deltaY * 10; + + repaintScroll(); + }); + + DomUtils.on(self.getEl('body'), "scroll", repaintScroll); + } + + repaintScroll(); + } + } + }; +}); + +// Included from: js/tinymce/classes/ui/Panel.js + +/** + * Panel.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new panel. + * + * @-x-less Panel.less + * @class tinymce.ui.Panel + * @extends tinymce.ui.Container + * @mixes tinymce.ui.Scrollable + */ +define("tinymce/ui/Panel", [ + "tinymce/ui/Container", + "tinymce/ui/Scrollable" +], function(Container, Scrollable) { + "use strict"; + + return Container.extend({ + Defaults: { + layout: 'fit', + containerCls: 'panel' + }, + + Mixins: [Scrollable], + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, layout = self._layout, innerHtml = self.settings.html; + + self.preRender(); + layout.preRender(self); + + if (typeof(innerHtml) == "undefined") { + innerHtml = ( + '<div id="' + self._id + '-body" class="' + self.classes('body') + '">' + + layout.renderHtml(self) + + '</div>' + ); + } else { + if (typeof(innerHtml) == 'function') { + innerHtml = innerHtml.call(self); + } + + self._hasBody = false; + } + + return ( + '<div id="' + self._id + '" class="' + self.classes() + '" hideFocus="1" tabIndex="-1" role="group">' + + (self._preBodyHtml || '') + + innerHtml + + '</div>' + ); + } + }); +}); + +// Included from: js/tinymce/classes/ui/Movable.js + +/** + * Movable.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Movable mixin. Makes controls movable absolute and relative to other elements. + * + * @mixin tinymce.ui.Movable + */ +define("tinymce/ui/Movable", [ + "tinymce/ui/DomUtils" +], function(DomUtils) { + "use strict"; + + function calculateRelativePosition(ctrl, targetElm, rel) { + var ctrlElm, pos, x, y, selfW, selfH, targetW, targetH, viewport, size; + + viewport = DomUtils.getViewPort(); + + // Get pos of target + pos = DomUtils.getPos(targetElm); + x = pos.x; + y = pos.y; + + if (ctrl._fixed) { + x -= viewport.x; + y -= viewport.y; + } + + // Get size of self + ctrlElm = ctrl.getEl(); + size = DomUtils.getSize(ctrlElm); + selfW = size.width; + selfH = size.height; + + // Get size of target + size = DomUtils.getSize(targetElm); + targetW = size.width; + targetH = size.height; + + // Parse align string + rel = (rel || '').split(''); + + // Target corners + if (rel[0] === 'b') { + y += targetH; + } + + if (rel[1] === 'r') { + x += targetW; + } + + if (rel[0] === 'c') { + y += Math.round(targetH / 2); + } + + if (rel[1] === 'c') { + x += Math.round(targetW / 2); + } + + // Self corners + if (rel[3] === 'b') { + y -= selfH; + } + + if (rel[4] === 'r') { + x -= selfW; + } + + if (rel[3] === 'c') { + y -= Math.round(selfH / 2); + } + + if (rel[4] === 'c') { + x -= Math.round(selfW / 2); + } + + return { + x: x, + y: y, + w: selfW, + h: selfH + }; + } + + return { + /** + * Tests various positions to get the most suitable one. + * + * @method testMoveRel + * @param {DOMElement} elm Element to position against. + * @param {Array} rels Array with relative positions. + * @return {String} Best suitable relative position. + */ + testMoveRel: function(elm, rels) { + var viewPortRect = DomUtils.getViewPort(); + + for (var i = 0; i < rels.length; i++) { + var pos = calculateRelativePosition(this, elm, rels[i]); + + if (this._fixed) { + if (pos.x > 0 && pos.x + pos.w < viewPortRect.w && pos.y > 0 && pos.y + pos.h < viewPortRect.h) { + return rels[i]; + } + } else { + if (pos.x > viewPortRect.x && pos.x + pos.w < viewPortRect.w + viewPortRect.x && + pos.y > viewPortRect.y && pos.y + pos.h < viewPortRect.h + viewPortRect.y) { + return rels[i]; + } + } + } + + return rels[0]; + }, + + /** + * Move relative to the specified element. + * + * @method moveRel + * @param {Element} elm Element to move relative to. + * @param {String} rel Relative mode. For example: br-tl. + * @return {tinymce.ui.Control} Current control instance. + */ + moveRel: function(elm, rel) { + if (typeof(rel) != 'string') { + rel = this.testMoveRel(elm, rel); + } + + var pos = calculateRelativePosition(this, elm, rel); + return this.moveTo(pos.x, pos.y); + }, + + /** + * Move by a relative x, y values. + * + * @method moveBy + * @param {Number} dx Relative x position. + * @param {Number} dy Relative y position. + * @return {tinymce.ui.Control} Current control instance. + */ + moveBy: function(dx, dy) { + var self = this, rect = self.layoutRect(); + + self.moveTo(rect.x + dx, rect.y + dy); + + return self; + }, + + /** + * Move to absolute position. + * + * @method moveTo + * @param {Number} x Absolute x position. + * @param {Number} y Absolute y position. + * @return {tinymce.ui.Control} Current control instance. + */ + moveTo: function(x, y) { + var self = this; + + // TODO: Move this to some global class + function contrain(value, max, size) { + if (value < 0) { + return 0; + } + + if (value + size > max) { + value = max - size; + return value < 0 ? 0 : value; + } + + return value; + } + + if (self.settings.constrainToViewport) { + var viewPortRect = DomUtils.getViewPort(window); + var layoutRect = self.layoutRect(); + + x = contrain(x, viewPortRect.w + viewPortRect.x, layoutRect.w); + y = contrain(y, viewPortRect.h + viewPortRect.y, layoutRect.h); + } + + if (self._rendered) { + self.layoutRect({x: x, y: y}).repaint(); + } else { + self.settings.x = x; + self.settings.y = y; + } + + self.fire('move', {x: x, y: y}); + + return self; + } + }; +}); + +// Included from: js/tinymce/classes/ui/Resizable.js + +/** + * Resizable.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Resizable mixin. Enables controls to be resized. + * + * @mixin tinymce.ui.Resizable + */ +define("tinymce/ui/Resizable", [ + "tinymce/ui/DomUtils" +], function(DomUtils) { + "use strict"; + + return { + /** + * Resizes the control to contents. + * + * @method resizeToContent + */ + resizeToContent: function() { + this._layoutRect.autoResize = true; + this._lastRect = null; + this.reflow(); + }, + + /** + * Resizes the control to a specific width/height. + * + * @method resizeTo + * @param {Number} w Control width. + * @param {Number} h Control height. + * @return {tinymce.ui.Control} Current control instance. + */ + resizeTo: function(w, h) { + // TODO: Fix hack + if (w <= 1 || h <= 1) { + var rect = DomUtils.getWindowSize(); + + w = w <= 1 ? w * rect.w : w; + h = h <= 1 ? h * rect.h : h; + } + + this._layoutRect.autoResize = false; + return this.layoutRect({minW: w, minH: h, w: w, h: h}).reflow(); + }, + + /** + * Resizes the control to a specific relative width/height. + * + * @method resizeBy + * @param {Number} dw Relative control width. + * @param {Number} dh Relative control height. + * @return {tinymce.ui.Control} Current control instance. + */ + resizeBy: function(dw, dh) { + var self = this, rect = self.layoutRect(); + + return self.resizeTo(rect.w + dw, rect.h + dh); + } + }; +}); + +// Included from: js/tinymce/classes/ui/FloatPanel.js + +/** + * FloatPanel.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class creates a floating panel. + * + * @-x-less FloatPanel.less + * @class tinymce.ui.FloatPanel + * @extends tinymce.ui.Panel + * @mixes tinymce.ui.Movable + * @mixes tinymce.ui.Resizable + */ +define("tinymce/ui/FloatPanel", [ + "tinymce/ui/Panel", + "tinymce/ui/Movable", + "tinymce/ui/Resizable", + "tinymce/ui/DomUtils" +], function(Panel, Movable, Resizable, DomUtils) { + "use strict"; + + var documentClickHandler, documentScrollHandler, visiblePanels = []; + var zOrder = [], hasModal; + + var FloatPanel = Panel.extend({ + Mixins: [Movable, Resizable], + + /** + * Constructs a new control instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {Boolean} autohide Automatically hide the panel. + */ + init: function(settings) { + var self = this; + + function reorder() { + var i, zIndex = FloatPanel.zIndex || 0xFFFF, topModal; + + if (zOrder.length) { + for (i = 0; i < zOrder.length; i++) { + if (zOrder[i].modal) { + zIndex++; + topModal = zOrder[i]; + } + + zOrder[i].getEl().style.zIndex = zIndex; + zOrder[i].zIndex = zIndex; + zIndex++; + } + } + + var modalBlockEl = document.getElementById(self.classPrefix + 'modal-block'); + + if (topModal) { + DomUtils.css(modalBlockEl, 'z-index', topModal.zIndex - 1); + } else if (modalBlockEl) { + modalBlockEl.parentNode.removeChild(modalBlockEl); + hasModal = false; + } + + FloatPanel.currentZIndex = zIndex; + } + + function isChildOf(ctrl, parent) { + while (ctrl) { + if (ctrl == parent) { + return true; + } + + ctrl = ctrl.parent(); + } + } + + /** + * Repositions the panel to the top of page if the panel is outside of the visual viewport. It will + * also reposition all child panels of the current panel. + */ + function repositionPanel(panel) { + var scrollY = DomUtils.getViewPort().y; + + function toggleFixedChildPanels(fixed, deltaY) { + var parent; + + for (var i = 0; i < visiblePanels.length; i++) { + if (visiblePanels[i] != panel) { + parent = visiblePanels[i].parent(); + + while (parent && (parent = parent.parent())) { + if (parent == panel) { + visiblePanels[i].fixed(fixed).moveBy(0, deltaY).repaint(); + } + } + } + } + } + + if (panel.settings.autofix) { + if (!panel._fixed) { + panel._autoFixY = panel.layoutRect().y; + + if (panel._autoFixY < scrollY) { + panel.fixed(true).layoutRect({y: 0}).repaint(); + toggleFixedChildPanels(true, scrollY - panel._autoFixY); + } + } else { + if (panel._autoFixY > scrollY) { + panel.fixed(false).layoutRect({y: panel._autoFixY}).repaint(); + toggleFixedChildPanels(false, panel._autoFixY - scrollY); + } + } + } + } + + self._super(settings); + self._eventsRoot = self; + + self.addClass('floatpanel'); + + // Hide floatpanes on click out side the root button + if (settings.autohide) { + if (!documentClickHandler) { + documentClickHandler = function(e) { + // Hide any float panel when a click is out side that float panel and the + // float panels direct parent for example a click on a menu button + var i = visiblePanels.length; + while (i--) { + var panel = visiblePanels[i], clickCtrl = panel.getParentCtrl(e.target); + + if (panel.settings.autohide) { + if (clickCtrl) { + if (isChildOf(clickCtrl, panel) || panel.parent() === clickCtrl) { + continue; + } + } + + e = panel.fire('autohide', {target: e.target}); + if (!e.isDefaultPrevented()) { + panel.hide(); + } + } + } + }; + + DomUtils.on(document, 'click', documentClickHandler); + } + + visiblePanels.push(self); + } + + if (settings.autofix) { + if (!documentScrollHandler) { + documentScrollHandler = function() { + var i; + + i = visiblePanels.length; + while (i--) { + repositionPanel(visiblePanels[i]); + } + }; + + DomUtils.on(window, 'scroll', documentScrollHandler); + } + + self.on('move', function() { + repositionPanel(this); + }); + } + + self.on('postrender show', function(e) { + if (e.control == self) { + var modalBlockEl, prefix = self.classPrefix; + + if (self.modal && !hasModal) { + modalBlockEl = DomUtils.createFragment('<div id="' + prefix + 'modal-block" class="' + + prefix + 'reset ' + prefix + 'fade"></div>'); + modalBlockEl = modalBlockEl.firstChild; + + self.getContainerElm().appendChild(modalBlockEl); + + setTimeout(function() { + DomUtils.addClass(modalBlockEl, prefix + 'in'); + DomUtils.addClass(self.getEl(), prefix + 'in'); + }, 0); + + hasModal = true; + } + + zOrder.push(self); + reorder(); + } + }); + + self.on('close hide', function(e) { + if (e.control == self) { + var i = zOrder.length; + + while (i--) { + if (zOrder[i] === self) { + zOrder.splice(i, 1); + } + } + + reorder(); + } + }); + + self.on('show', function() { + self.parents().each(function(ctrl) { + if (ctrl._fixed) { + self.fixed(true); + return false; + } + }); + }); + + if (settings.popover) { + self._preBodyHtml = '<div class="' + self.classPrefix + 'arrow"></div>'; + self.addClass('popover').addClass('bottom').addClass(self.isRtl() ? 'end' : 'start'); + } + }, + + fixed: function(state) { + var self = this; + + if (self._fixed != state) { + if (self._rendered) { + var viewport = DomUtils.getViewPort(); + + if (state) { + self.layoutRect().y -= viewport.y; + } else { + self.layoutRect().y += viewport.y; + } + } + + self.toggleClass('fixed', state); + self._fixed = state; + } + + return self; + }, + + /** + * Shows the current float panel. + * + * @method show + * @return {tinymce.ui.FloatPanel} Current floatpanel instance. + */ + show: function() { + var self = this, i, state = self._super(); + + i = visiblePanels.length; + while (i--) { + if (visiblePanels[i] === self) { + break; + } + } + + if (i === -1) { + visiblePanels.push(self); + } + + return state; + }, + + /** + * Hides the current float panel. + * + * @method hide + * @return {tinymce.ui.FloatPanel} Current floatpanel instance. + */ + hide: function() { + removeVisiblePanel(this); + return this._super(); + }, + + /** + * Hides all visible the float panels. + * + * @method hideAll + */ + hideAll: function() { + FloatPanel.hideAll(); + }, + + /** + * Closes the float panel. This will remove the float panel from page and fire the close event. + * + * @method close + */ + close: function() { + var self = this; + + self.fire('close'); + + return self.remove(); + }, + + /** + * Removes the float panel from page. + * + * @method remove + */ + remove: function() { + removeVisiblePanel(this); + this._super(); + }, + + postRender: function() { + var self = this; + + if (self.settings.bodyRole) { + this.getEl('body').setAttribute('role', self.settings.bodyRole); + } + + return self._super(); + } + }); + + /** + * Hides all visible the float panels. + * + * @static + * @method hideAll + */ + FloatPanel.hideAll = function() { + var i = visiblePanels.length; + + while (i--) { + var panel = visiblePanels[i]; + + if (panel && panel.settings.autohide) { + panel.hide(); + visiblePanels.splice(i, 1); + } + } + }; + + function removeVisiblePanel(panel) { + var i; + + i = visiblePanels.length; + while (i--) { + if (visiblePanels[i] === panel) { + visiblePanels.splice(i, 1); + } + } + + i = zOrder.length; + while (i--) { + if (zOrder[i] === panel) { + zOrder.splice(i, 1); + } + } + } + + return FloatPanel; +}); + +// Included from: js/tinymce/classes/ui/Window.js + +/** + * Window.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new window. + * + * @-x-less Window.less + * @class tinymce.ui.Window + * @extends tinymce.ui.FloatPanel + */ +define("tinymce/ui/Window", [ + "tinymce/ui/FloatPanel", + "tinymce/ui/Panel", + "tinymce/ui/DomUtils", + "tinymce/ui/DragHelper" +], function(FloatPanel, Panel, DomUtils, DragHelper) { + "use strict"; + + var Window = FloatPanel.extend({ + modal: true, + + Defaults: { + border: 1, + layout: 'flex', + containerCls: 'panel', + role: 'dialog', + callbacks: { + submit: function() { + this.fire('submit', {data: this.toJSON()}); + }, + + close: function() { + this.close(); + } + } + }, + + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + */ + init: function(settings) { + var self = this; + + self._super(settings); + + if (self.isRtl()) { + self.addClass('rtl'); + } + + self.addClass('window'); + self._fixed = true; + + // Create statusbar + if (settings.buttons) { + self.statusbar = new Panel({ + layout: 'flex', + border: '1 0 0 0', + spacing: 3, + padding: 10, + align: 'center', + pack: self.isRtl() ? 'start' : 'end', + defaults: { + type: 'button' + }, + items: settings.buttons + }); + + self.statusbar.addClass('foot'); + self.statusbar.parent(self); + } + + self.on('click', function(e) { + if (e.target.className.indexOf(self.classPrefix + 'close') != -1) { + self.close(); + } + }); + + self.on('cancel', function() { + self.close(); + }); + + self.aria('describedby', self.describedBy || self._id + '-none'); + self.aria('label', settings.title); + self._fullscreen = false; + }, + + /** + * Recalculates the positions of the controls in the current container. + * This is invoked by the reflow method and shouldn't be called directly. + * + * @method recalc + */ + recalc: function() { + var self = this, statusbar = self.statusbar, layoutRect, width, x, needsRecalc; + + if (self._fullscreen) { + self.layoutRect(DomUtils.getWindowSize()); + self.layoutRect().contentH = self.layoutRect().innerH; + } + + self._super(); + + layoutRect = self.layoutRect(); + + // Resize window based on title width + if (self.settings.title && !self._fullscreen) { + width = layoutRect.headerW; + if (width > layoutRect.w) { + x = layoutRect.x - Math.max(0, width / 2); + self.layoutRect({w: width, x: x}); + needsRecalc = true; + } + } + + // Resize window based on statusbar width + if (statusbar) { + statusbar.layoutRect({w: self.layoutRect().innerW}).recalc(); + + width = statusbar.layoutRect().minW + layoutRect.deltaW; + if (width > layoutRect.w) { + x = layoutRect.x - Math.max(0, width - layoutRect.w); + self.layoutRect({w: width, x: x}); + needsRecalc = true; + } + } + + // Recalc body and disable auto resize + if (needsRecalc) { + self.recalc(); + } + }, + + /** + * Initializes the current controls layout rect. + * This will be executed by the layout managers to determine the + * default minWidth/minHeight etc. + * + * @method initLayoutRect + * @return {Object} Layout rect instance. + */ + initLayoutRect: function() { + var self = this, layoutRect = self._super(), deltaH = 0, headEl; + + // Reserve vertical space for title + if (self.settings.title && !self._fullscreen) { + headEl = self.getEl('head'); + + var size = DomUtils.getSize(headEl); + + layoutRect.headerW = size.width; + layoutRect.headerH = size.height; + + deltaH += layoutRect.headerH; + } + + // Reserve vertical space for statusbar + if (self.statusbar) { + deltaH += self.statusbar.layoutRect().h; + } + + layoutRect.deltaH += deltaH; + layoutRect.minH += deltaH; + //layoutRect.innerH -= deltaH; + layoutRect.h += deltaH; + + var rect = DomUtils.getWindowSize(); + + layoutRect.x = Math.max(0, rect.w / 2 - layoutRect.w / 2); + layoutRect.y = Math.max(0, rect.h / 2 - layoutRect.h / 2); + + return layoutRect; + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, layout = self._layout, id = self._id, prefix = self.classPrefix; + var settings = self.settings, headerHtml = '', footerHtml = '', html = settings.html; + + self.preRender(); + layout.preRender(self); + + if (settings.title) { + headerHtml = ( + '<div id="' + id + '-head" class="' + prefix + 'window-head">' + + '<div id="' + id + '-title" class="' + prefix + 'title">' + self.encode(settings.title) + '</div>' + + '<button type="button" class="' + prefix + 'close" aria-hidden="true">×</button>' + + '<div id="' + id + '-dragh" class="' + prefix + 'dragh"></div>' + + '</div>' + ); + } + + if (settings.url) { + html = '<iframe src="' + settings.url + '" tabindex="-1"></iframe>'; + } + + if (typeof(html) == "undefined") { + html = layout.renderHtml(self); + } + + if (self.statusbar) { + footerHtml = self.statusbar.renderHtml(); + } + + return ( + '<div id="' + id + '" class="' + self.classes() + '" hideFocus="1">' + + '<div class="' + self.classPrefix + 'reset" role="application">' + + headerHtml + + '<div id="' + id + '-body" class="' + self.classes('body') + '">' + + html + + '</div>' + + footerHtml + + '</div>' + + '</div>' + ); + }, + + /** + * Switches the window fullscreen mode. + * + * @method fullscreen + * @param {Boolean} state True/false state. + * @return {tinymce.ui.Window} Current window instance. + */ + fullscreen: function(state) { + var self = this, documentElement = document.documentElement, slowRendering, prefix = self.classPrefix, layoutRect; + + if (state != self._fullscreen) { + DomUtils.on(window, 'resize', function() { + var time; + + if (self._fullscreen) { + // Time the layout time if it's to slow use a timeout to not hog the CPU + if (!slowRendering) { + time = new Date().getTime(); + + var rect = DomUtils.getWindowSize(); + self.moveTo(0, 0).resizeTo(rect.w, rect.h); + + if ((new Date().getTime()) - time > 50) { + slowRendering = true; + } + } else { + if (!self._timer) { + self._timer = setTimeout(function() { + var rect = DomUtils.getWindowSize(); + self.moveTo(0, 0).resizeTo(rect.w, rect.h); + + self._timer = 0; + }, 50); + } + } + } + }); + + layoutRect = self.layoutRect(); + self._fullscreen = state; + + if (!state) { + self._borderBox = self.parseBox(self.settings.border); + self.getEl('head').style.display = ''; + layoutRect.deltaH += layoutRect.headerH; + DomUtils.removeClass(documentElement, prefix + 'fullscreen'); + DomUtils.removeClass(document.body, prefix + 'fullscreen'); + self.removeClass('fullscreen'); + self.moveTo(self._initial.x, self._initial.y).resizeTo(self._initial.w, self._initial.h); + } else { + self._initial = {x: layoutRect.x, y: layoutRect.y, w: layoutRect.w, h: layoutRect.h}; + + self._borderBox = self.parseBox('0'); + self.getEl('head').style.display = 'none'; + layoutRect.deltaH -= layoutRect.headerH + 2; + DomUtils.addClass(documentElement, prefix + 'fullscreen'); + DomUtils.addClass(document.body, prefix + 'fullscreen'); + self.addClass('fullscreen'); + + var rect = DomUtils.getWindowSize(); + self.moveTo(0, 0).resizeTo(rect.w, rect.h); + } + } + + return self.reflow(); + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this, startPos; + + setTimeout(function() { + self.addClass('in'); + }, 0); + + self._super(); + + if (self.statusbar) { + self.statusbar.postRender(); + } + + self.focus(); + + this.dragHelper = new DragHelper(self._id + '-dragh', { + start: function() { + startPos = { + x: self.layoutRect().x, + y: self.layoutRect().y + }; + }, + + drag: function(e) { + self.moveTo(startPos.x + e.deltaX, startPos.y + e.deltaY); + } + }); + + self.on('submit', function(e) { + if (!e.isDefaultPrevented()) { + self.close(); + } + }); + }, + + /** + * Fires a submit event with the serialized form. + * + * @method submit + * @return {Object} Event arguments object. + */ + submit: function() { + return this.fire('submit', {data: this.toJSON()}); + }, + + /** + * Removes the current control from DOM and from UI collections. + * + * @method remove + * @return {tinymce.ui.Control} Current control instance. + */ + remove: function() { + var self = this, prefix = self.classPrefix; + + self.dragHelper.destroy(); + self._super(); + + if (self.statusbar) { + this.statusbar.remove(); + } + + if (self._fullscreen) { + DomUtils.removeClass(document.documentElement, prefix + 'fullscreen'); + DomUtils.removeClass(document.body, prefix + 'fullscreen'); + } + } + }); + + return Window; +}); + +// Included from: js/tinymce/classes/ui/MessageBox.js + +/** + * MessageBox.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class is used to create MessageBoxes like alerts/confirms etc. + * + * @class tinymce.ui.Window + * @extends tinymce.ui.FloatPanel + */ +define("tinymce/ui/MessageBox", [ + "tinymce/ui/Window" +], function(Window) { + "use strict"; + + var MessageBox = Window.extend({ + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + */ + init: function(settings) { + settings = { + border: 1, + padding: 20, + layout: 'flex', + pack: "center", + align: "center", + containerCls: 'panel', + autoScroll: true, + buttons: {type: "button", text: "Ok", action: "ok"}, + items: { + type: "label", + multiline: true, + maxWidth: 500, + maxHeight: 200 + } + }; + + this._super(settings); + }, + + Statics: { + /** + * Ok buttons constant. + * + * @static + * @final + * @field {Number} OK + */ + OK: 1, + + /** + * Ok/cancel buttons constant. + * + * @static + * @final + * @field {Number} OK_CANCEL + */ + OK_CANCEL: 2, + + /** + * yes/no buttons constant. + * + * @static + * @final + * @field {Number} YES_NO + */ + YES_NO: 3, + + /** + * yes/no/cancel buttons constant. + * + * @static + * @final + * @field {Number} YES_NO_CANCEL + */ + YES_NO_CANCEL: 4, + + /** + * Constructs a new message box and renders it to the body element. + * + * @static + * @method msgBox + * @param {Object} settings Name/value object with settings. + */ + msgBox: function(settings) { + var buttons, callback = settings.callback || function() {}; + + switch (settings.buttons) { + case MessageBox.OK_CANCEL: + buttons = [ + {type: "button", text: "Ok", subtype: "primary", onClick: function(e) { + e.control.parents()[1].close(); + callback(true); + }}, + + {type: "button", text: "Cancel", onClick: function(e) { + e.control.parents()[1].close(); + callback(false); + }} + ]; + break; + + case MessageBox.YES_NO: + buttons = [ + {type: "button", text: "Ok", subtype: "primary", onClick: function(e) { + e.control.parents()[1].close(); + callback(true); + }} + ]; + break; + + case MessageBox.YES_NO_CANCEL: + buttons = [ + {type: "button", text: "Ok", subtype: "primary", onClick: function(e) { + e.control.parents()[1].close(); + }} + ]; + break; + + default: + buttons = [ + {type: "button", text: "Ok", subtype: "primary", onClick: function(e) { + e.control.parents()[1].close(); + callback(true); + }} + ]; + break; + } + + return new Window({ + padding: 20, + x: settings.x, + y: settings.y, + minWidth: 300, + minHeight: 100, + layout: "flex", + pack: "center", + align: "center", + buttons: buttons, + title: settings.title, + role: 'alertdialog', + items: { + type: "label", + multiline: true, + maxWidth: 500, + maxHeight: 200, + text: settings.text + }, + onPostRender: function() { + this.aria('describedby', this.items()[0]._id); + }, + onClose: settings.onClose, + onCancel: function() { + callback(false); + } + }).renderTo(document.body).reflow(); + }, + + /** + * Creates a new alert dialog. + * + * @method alert + * @param {Object} settings Settings for the alert dialog. + * @param {function} [callback] Callback to execute when the user makes a choice. + */ + alert: function(settings, callback) { + if (typeof(settings) == "string") { + settings = {text: settings}; + } + + settings.callback = callback; + return MessageBox.msgBox(settings); + }, + + /** + * Creates a new confirm dialog. + * + * @method confirm + * @param {Object} settings Settings for the confirm dialog. + * @param {function} [callback] Callback to execute when the user makes a choice. + */ + confirm: function(settings, callback) { + if (typeof(settings) == "string") { + settings = {text: settings}; + } + + settings.callback = callback; + settings.buttons = MessageBox.OK_CANCEL; + + return MessageBox.msgBox(settings); + } + } + }); + + return MessageBox; +}); + +// Included from: js/tinymce/classes/WindowManager.js + +/** + * WindowManager.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles the creation of native windows and dialogs. This class can be extended to provide for example inline dialogs. + * + * @class tinymce.WindowManager + * @example + * // Opens a new dialog with the file.htm file and the size 320x240 + * // It also adds a custom parameter this can be retrieved by using tinyMCEPopup.getWindowArg inside the dialog. + * tinymce.activeEditor.windowManager.open({ + * url: 'file.htm', + * width: 320, + * height: 240 + * }, { + * custom_param: 1 + * }); + * + * // Displays an alert box using the active editors window manager instance + * tinymce.activeEditor.windowManager.alert('Hello world!'); + * + * // Displays an confirm box and an alert message will be displayed depending on what you choose in the confirm + * tinymce.activeEditor.windowManager.confirm("Do you want to do something", function(s) { + * if (s) + * tinymce.activeEditor.windowManager.alert("Ok"); + * else + * tinymce.activeEditor.windowManager.alert("Cancel"); + * }); + */ +define("tinymce/WindowManager", [ + "tinymce/ui/Window", + "tinymce/ui/MessageBox" +], function(Window, MessageBox) { + return function(editor) { + var self = this, windows = []; + + function getTopMostWindow() { + if (windows.length) { + return windows[windows.length - 1]; + } + } + + self.windows = windows; + + /** + * Opens a new window. + * + * @method open + * @param {Object} args Optional name/value settings collection contains things like width/height/url etc. + * @option {String} title Window title. + * @option {String} file URL of the file to open in the window. + * @option {Number} width Width in pixels. + * @option {Number} height Height in pixels. + * @option {Boolean} resizable Specifies whether the popup window is resizable or not. + * @option {Boolean} maximizable Specifies whether the popup window has a "maximize" button and can get maximized or not. + * @option {String/Boolean} scrollbars Specifies whether the popup window can have scrollbars if required (i.e. content + * larger than the popup size specified). + */ + self.open = function(args, params) { + var win; + + editor.editorManager.activeEditor = editor; + + args.title = args.title || ' '; + + // Handle URL + args.url = args.url || args.file; // Legacy + if (args.url) { + args.width = parseInt(args.width || 320, 10); + args.height = parseInt(args.height || 240, 10); + } + + // Handle body + if (args.body) { + args.items = { + defaults: args.defaults, + type: args.bodyType || 'form', + items: args.body + }; + } + + if (!args.url && !args.buttons) { + args.buttons = [ + {text: 'Ok', subtype: 'primary', onclick: function() { + win.find('form')[0].submit(); + }}, + + {text: 'Cancel', onclick: function() { + win.close(); + }} + ]; + } + + win = new Window(args); + windows.push(win); + + win.on('close', function() { + var i = windows.length; + + while (i--) { + if (windows[i] === win) { + windows.splice(i, 1); + } + } + + editor.focus(); + }); + + // Handle data + if (args.data) { + win.on('postRender', function() { + this.find('*').each(function(ctrl) { + var name = ctrl.name(); + + if (name in args.data) { + ctrl.value(args.data[name]); + } + }); + }); + } + + // store args and parameters + win.features = args || {}; + win.params = params || {}; + + // Takes a snapshot in the FocusManager of the selection before focus is lost to dialog + editor.nodeChanged(); + + return win.renderTo(document.body).reflow(); + }; + + /** + * Creates a alert dialog. Please don't use the blocking behavior of this + * native version use the callback method instead then it can be extended. + * + * @method alert + * @param {String} message Text to display in the new alert dialog. + * @param {function} callback Callback function to be executed after the user has selected ok. + * @param {Object} scope Optional scope to execute the callback in. + * @example + * // Displays an alert box using the active editors window manager instance + * tinymce.activeEditor.windowManager.alert('Hello world!'); + */ + self.alert = function(message, callback, scope) { + MessageBox.alert(message, function() { + if (callback) { + callback.call(scope || this); + } else { + editor.focus(); + } + }); + }; + + /** + * Creates a confirm dialog. Please don't use the blocking behavior of this + * native version use the callback method instead then it can be extended. + * + * @method confirm + * @param {String} messageText to display in the new confirm dialog. + * @param {function} callback Callback function to be executed after the user has selected ok or cancel. + * @param {Object} scope Optional scope to execute the callback in. + * @example + * // Displays an confirm box and an alert message will be displayed depending on what you choose in the confirm + * tinymce.activeEditor.windowManager.confirm("Do you want to do something", function(s) { + * if (s) + * tinymce.activeEditor.windowManager.alert("Ok"); + * else + * tinymce.activeEditor.windowManager.alert("Cancel"); + * }); + */ + self.confirm = function(message, callback, scope) { + MessageBox.confirm(message, function(state) { + callback.call(scope || this, state); + }); + }; + + /** + * Closes the top most window. + * + * @method close + */ + self.close = function() { + if (getTopMostWindow()) { + getTopMostWindow().close(); + } + }; + + /** + * Returns the params of the last window open call. This can be used in iframe based + * dialog to get params passed from the tinymce plugin. + * + * @example + * var dialogArguments = top.tinymce.activeEditor.windowManager.getParams(); + * + * @method getParams + * @return {Object} Name/value object with parameters passed from windowManager.open call. + */ + self.getParams = function() { + return getTopMostWindow() ? getTopMostWindow().params : null; + }; + + /** + * Sets the params of the last opened window. + * + * @method setParams + * @param {Object} params Params object to set for the last opened window. + */ + self.setParams = function(params) { + if (getTopMostWindow()) { + getTopMostWindow().params = params; + } + }; + }; +}); + +// Included from: js/tinymce/classes/util/Quirks.js + +/** + * Quirks.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + * + * @ignore-file + */ + +/** + * This file includes fixes for various browser quirks it's made to make it easy to add/remove browser specific fixes. + * + * @class tinymce.util.Quirks + */ +define("tinymce/util/Quirks", [ + "tinymce/util/VK", + "tinymce/dom/RangeUtils", + "tinymce/html/Node", + "tinymce/html/Entities", + "tinymce/Env", + "tinymce/util/Tools" +], function(VK, RangeUtils, Node, Entities, Env, Tools) { + return function(editor) { + var each = Tools.each; + var BACKSPACE = VK.BACKSPACE, DELETE = VK.DELETE, dom = editor.dom, selection = editor.selection, + settings = editor.settings, parser = editor.parser, serializer = editor.serializer; + var isGecko = Env.gecko, isIE = Env.ie, isWebKit = Env.webkit; + + /** + * Executes a command with a specific state this can be to enable/disable browser editing features. + */ + function setEditorCommandState(cmd, state) { + try { + editor.getDoc().execCommand(cmd, false, state); + } catch (ex) { + // Ignore + } + } + + /** + * Returns current IE document mode. + */ + function getDocumentMode() { + var documentMode = editor.getDoc().documentMode; + + return documentMode ? documentMode : 6; + } + + /** + * Returns true/false if the event is prevented or not. + * + * @private + * @param {Event} e Event object. + * @return {Boolean} true/false if the event is prevented or not. + */ + function isDefaultPrevented(e) { + return e.isDefaultPrevented(); + } + + /** + * Fixes a WebKit bug when deleting contents using backspace or delete key. + * WebKit will produce a span element if you delete across two block elements. + * + * Example: + * <h1>a</h1><p>|b</p> + * + * Will produce this on backspace: + * <h1>a<span style="<all runtime styles>">b</span></p> + * + * This fixes the backspace to produce: + * <h1>a|b</p> + * + * See bug: https://bugs.webkit.org/show_bug.cgi?id=45784 + * + * This fixes the following delete scenarios: + * 1. Delete by pressing backspace key. + * 2. Delete by pressing delete key. + * 3. Delete by pressing backspace key with ctrl/cmd (Word delete). + * 4. Delete by pressing delete key with ctrl/cmd (Word delete). + * 5. Delete by drag/dropping contents inside the editor. + * 6. Delete by using Cut Ctrl+X/Cmd+X. + * 7. Delete by selecting contents and writing a character.' + * + * This code is a ugly hack since writing full custom delete logic for just this bug + * fix seemed like a huge task. I hope we can remove this before the year 2030. + */ + function cleanupStylesWhenDeleting() { + var doc = editor.getDoc(), urlPrefix = 'data:text/mce-internal,'; + var MutationObserver = window.MutationObserver, olderWebKit; + + // Add mini polyfill for older WebKits + // TODO: Remove this when old Safari versions gets updated + if (!MutationObserver) { + olderWebKit = true; + + MutationObserver = function() { + var records = [], target; + + function nodeInsert(e) { + var target = e.relatedNode || e.target; + records.push({target: target, addedNodes: [target]}); + } + + function attrModified(e) { + var target = e.relatedNode || e.target; + records.push({target: target, attributeName: e.attrName}); + } + + this.observe = function(node) { + target = node; + target.addEventListener('DOMSubtreeModified', nodeInsert, false); + target.addEventListener('DOMNodeInsertedIntoDocument', nodeInsert, false); + target.addEventListener('DOMNodeInserted', nodeInsert, false); + target.addEventListener('DOMAttrModified', attrModified, false); + }; + + this.disconnect = function() { + target.removeEventListener('DOMNodeInserted', nodeInsert); + target.removeEventListener('DOMAttrModified', attrModified); + target.removeEventListener('DOMSubtreeModified', nodeInsert, false); + }; + + this.takeRecords = function() { + return records; + }; + }; + } + + function customDelete(isForward) { + var mutationObserver = new MutationObserver(function() {}); + + Tools.each(editor.getBody().getElementsByTagName('*'), function(elm) { + // Mark existing spans + if (elm.tagName == 'SPAN') { + elm.setAttribute('mce-data-marked', 1); + } + + // Make sure all elements has a data-mce-style attribute + if (!elm.hasAttribute('data-mce-style') && elm.hasAttribute('style')) { + editor.dom.setAttrib(elm, 'style', elm.getAttribute('style')); + } + }); + + // Observe added nodes and style attribute changes + mutationObserver.observe(editor.getDoc(), { + childList: true, + attributes: true, + subtree: true, + attributeFilter: ['style'] + }); + + editor.getDoc().execCommand(isForward ? 'ForwardDelete' : 'Delete', false, null); + + var rng = editor.selection.getRng(); + var caretElement = rng.startContainer.parentNode; + + Tools.each(mutationObserver.takeRecords(), function(record) { + // Restore style attribute to previous value + if (record.attributeName == "style") { + var oldValue = record.target.getAttribute('data-mce-style'); + + if (oldValue) { + record.target.setAttribute("style", oldValue); + } else { + record.target.removeAttribute("style"); + } + } + + // Remove all spans that isn't maked and retain selection + Tools.each(record.addedNodes, function(node) { + if (node.nodeName == "SPAN" && !node.getAttribute('mce-data-marked')) { + var offset, container; + + if (node == caretElement) { + offset = rng.startOffset; + container = node.firstChild; + } + + dom.remove(node, true); + + if (container) { + rng.setStart(container, offset); + rng.setEnd(container, offset); + editor.selection.setRng(rng); + } + } + }); + }); + + mutationObserver.disconnect(); + + // Remove any left over marks + Tools.each(editor.dom.select('span[mce-data-marked]'), function(span) { + span.removeAttribute('mce-data-marked'); + }); + } + + editor.on('keydown', function(e) { + var isForward = e.keyCode == DELETE, isMeta = VK.metaKeyPressed(e); + + if (!isDefaultPrevented(e) && (isForward || e.keyCode == BACKSPACE)) { + var rng = editor.selection.getRng(), container = rng.startContainer, offset = rng.startOffset; + + // Ignore non meta delete in the where there is text before/after the caret + if (!isMeta && rng.collapsed && container.nodeType == 3) { + if (isForward ? offset < container.data.length : offset > 0) { + return; + } + } + + e.preventDefault(); + + if (isMeta) { + editor.selection.getSel().modify("extend", isForward ? "forward" : "backward", "word"); + } + + customDelete(isForward); + } + }); + + editor.on('keypress', function(e) { + if (!isDefaultPrevented(e) && !selection.isCollapsed() && e.charCode && !VK.metaKeyPressed(e)) { + e.preventDefault(); + customDelete(true); + editor.selection.setContent(String.fromCharCode(e.charCode)); + } + }); + + editor.addCommand('Delete', function() { + customDelete(); + }); + + editor.addCommand('ForwardDelete', function() { + customDelete(true); + }); + + // Older WebKits doesn't properly handle the clipboard so we can't add the rest + if (olderWebKit) { + return; + } + + editor.on('dragstart', function(e) { + // Safari doesn't support custom dataTransfer items so we can only use URL and Text + e.dataTransfer.setData('URL', 'data:text/mce-internal,' + escape(editor.selection.getContent())); + }); + + editor.on('drop', function(e) { + if (!isDefaultPrevented(e)) { + var internalContent = e.dataTransfer.getData('URL'); + + if (!internalContent || internalContent.indexOf(urlPrefix) == -1 || !doc.caretRangeFromPoint) { + return; + } + + internalContent = unescape(internalContent.substr(urlPrefix.length)); + if (doc.caretRangeFromPoint) { + e.preventDefault(); + customDelete(); + editor.selection.setRng(doc.caretRangeFromPoint(e.x, e.y)); + editor.insertContent(internalContent); + } + } + }); + + editor.on('cut', function(e) { + if (!isDefaultPrevented(e) && e.clipboardData) { + e.preventDefault(); + e.clipboardData.clearData(); + e.clipboardData.setData('text/html', editor.selection.getContent()); + e.clipboardData.setData('text/plain', editor.selection.getContent({format: 'text'})); + customDelete(true); + } + }); + } + + /** + * Makes sure that the editor body becomes empty when backspace or delete is pressed in empty editors. + * + * For example: + * <p><b>|</b></p> + * + * Or: + * <h1>|</h1> + * + * Or: + * [<h1></h1>] + */ + function emptyEditorWhenDeleting() { + function serializeRng(rng) { + var body = dom.create("body"); + var contents = rng.cloneContents(); + body.appendChild(contents); + return selection.serializer.serialize(body, {format: 'html'}); + } + + function allContentsSelected(rng) { + if (!rng.setStart) { + if (rng.item) { + return false; + } + + var bodyRng = rng.duplicate(); + bodyRng.moveToElementText(editor.getBody()); + return RangeUtils.compareRanges(rng, bodyRng); + } + + var selection = serializeRng(rng); + + var allRng = dom.createRng(); + allRng.selectNode(editor.getBody()); + + var allSelection = serializeRng(allRng); + return selection === allSelection; + } + + editor.on('keydown', function(e) { + var keyCode = e.keyCode, isCollapsed, body; + + // Empty the editor if it's needed for example backspace at <p><b>|</b></p> + if (!isDefaultPrevented(e) && (keyCode == DELETE || keyCode == BACKSPACE)) { + isCollapsed = editor.selection.isCollapsed(); + body = editor.getBody(); + + // Selection is collapsed but the editor isn't empty + if (isCollapsed && !dom.isEmpty(body)) { + return; + } + + // Selection isn't collapsed but not all the contents is selected + if (!isCollapsed && !allContentsSelected(editor.selection.getRng())) { + return; + } + + // Manually empty the editor + e.preventDefault(); + editor.setContent(''); + + if (body.firstChild && dom.isBlock(body.firstChild)) { + editor.selection.setCursorLocation(body.firstChild, 0); + } else { + editor.selection.setCursorLocation(body, 0); + } + + editor.nodeChanged(); + } + }); + } + + /** + * WebKit doesn't select all the nodes in the body when you press Ctrl+A. + * IE selects more than the contents <body>[<p>a</p>]</body> instead of <body><p>[a]</p]</body> see bug #6438 + * This selects the whole body so that backspace/delete logic will delete everything + */ + function selectAll() { + editor.on('keydown', function(e) { + if (!isDefaultPrevented(e) && e.keyCode == 65 && VK.metaKeyPressed(e)) { + e.preventDefault(); + editor.execCommand('SelectAll'); + } + }); + } + + /** + * WebKit has a weird issue where it some times fails to properly convert keypresses to input method keystrokes. + * The IME on Mac doesn't initialize when it doesn't fire a proper focus event. + * + * This seems to happen when the user manages to click the documentElement element then the window doesn't get proper focus until + * you enter a character into the editor. + * + * It also happens when the first focus in made to the body. + * + * See: https://bugs.webkit.org/show_bug.cgi?id=83566 + */ + function inputMethodFocus() { + if (!editor.settings.content_editable) { + // Case 1 IME doesn't initialize if you focus the document + dom.bind(editor.getDoc(), 'focusin', function() { + selection.setRng(selection.getRng()); + }); + + // Case 2 IME doesn't initialize if you click the documentElement it also doesn't properly fire the focusin event + dom.bind(editor.getDoc(), 'mousedown', function(e) { + if (e.target == editor.getDoc().documentElement) { + editor.getBody().focus(); + selection.setRng(selection.getRng()); + } + }); + } + } + + /** + * Backspacing in FireFox/IE from a paragraph into a horizontal rule results in a floating text node because the + * browser just deletes the paragraph - the browser fails to merge the text node with a horizontal rule so it is + * left there. TinyMCE sees a floating text node and wraps it in a paragraph on the key up event (ForceBlocks.js + * addRootBlocks), meaning the action does nothing. With this code, FireFox/IE matche the behaviour of other + * browsers. + * + * It also fixes a bug on Firefox where it's impossible to delete HR elements. + */ + function removeHrOnBackspace() { + editor.on('keydown', function(e) { + if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) { + if (selection.isCollapsed() && selection.getRng(true).startOffset === 0) { + var node = selection.getNode(); + var previousSibling = node.previousSibling; + + if (node.nodeName == 'HR') { + dom.remove(node); + e.preventDefault(); + return; + } + + if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === "hr") { + dom.remove(previousSibling); + e.preventDefault(); + } + } + } + }); + } + + /** + * Firefox 3.x has an issue where the body element won't get proper focus if you click out + * side it's rectangle. + */ + function focusBody() { + // Fix for a focus bug in FF 3.x where the body element + // wouldn't get proper focus if the user clicked on the HTML element + if (!window.Range.prototype.getClientRects) { // Detect getClientRects got introduced in FF 4 + editor.on('mousedown', function(e) { + if (!isDefaultPrevented(e) && e.target.nodeName === "HTML") { + var body = editor.getBody(); + + // Blur the body it's focused but not correctly focused + body.blur(); + + // Refocus the body after a little while + setTimeout(function() { + body.focus(); + }, 0); + } + }); + } + } + + /** + * WebKit has a bug where it isn't possible to select image, hr or anchor elements + * by clicking on them so we need to fake that. + */ + function selectControlElements() { + editor.on('click', function(e) { + e = e.target; + + // Workaround for bug, http://bugs.webkit.org/show_bug.cgi?id=12250 + // WebKit can't even do simple things like selecting an image + // Needs tobe the setBaseAndExtend or it will fail to select floated images + if (/^(IMG|HR)$/.test(e.nodeName)) { + selection.getSel().setBaseAndExtent(e, 0, e, 1); + } + + if (e.nodeName == 'A' && dom.hasClass(e, 'mce-item-anchor')) { + selection.select(e); + } + + editor.nodeChanged(); + }); + } + + /** + * Fixes a Gecko bug where the style attribute gets added to the wrong element when deleting between two block elements. + * + * Fixes do backspace/delete on this: + * <p>bla[ck</p><p style="color:red">r]ed</p> + * + * Would become: + * <p>bla|ed</p> + * + * Instead of: + * <p style="color:red">bla|ed</p> + */ + function removeStylesWhenDeletingAcrossBlockElements() { + function getAttributeApplyFunction() { + var template = dom.getAttribs(selection.getStart().cloneNode(false)); + + return function() { + var target = selection.getStart(); + + if (target !== editor.getBody()) { + dom.setAttrib(target, "style", null); + + each(template, function(attr) { + target.setAttributeNode(attr.cloneNode(true)); + }); + } + }; + } + + function isSelectionAcrossElements() { + return !selection.isCollapsed() && + dom.getParent(selection.getStart(), dom.isBlock) != dom.getParent(selection.getEnd(), dom.isBlock); + } + + editor.on('keypress', function(e) { + var applyAttributes; + + if (!isDefaultPrevented(e) && (e.keyCode == 8 || e.keyCode == 46) && isSelectionAcrossElements()) { + applyAttributes = getAttributeApplyFunction(); + editor.getDoc().execCommand('delete', false, null); + applyAttributes(); + e.preventDefault(); + return false; + } + }); + + dom.bind(editor.getDoc(), 'cut', function(e) { + var applyAttributes; + + if (!isDefaultPrevented(e) && isSelectionAcrossElements()) { + applyAttributes = getAttributeApplyFunction(); + + setTimeout(function() { + applyAttributes(); + }, 0); + } + }); + } + + /** + * Fire a nodeChanged when the selection is changed on WebKit this fixes selection issues on iOS5. It only fires the nodeChange + * event every 50ms since it would other wise update the UI when you type and it hogs the CPU. + */ + function selectionChangeNodeChanged() { + var lastRng, selectionTimer; + + editor.on('selectionchange', function() { + if (selectionTimer) { + clearTimeout(selectionTimer); + selectionTimer = 0; + } + + selectionTimer = window.setTimeout(function() { + if (editor.removed) { + return; + } + + var rng = selection.getRng(); + + // Compare the ranges to see if it was a real change or not + if (!lastRng || !RangeUtils.compareRanges(rng, lastRng)) { + editor.nodeChanged(); + lastRng = rng; + } + }, 50); + }); + } + + /** + * Screen readers on IE needs to have the role application set on the body. + */ + function ensureBodyHasRoleApplication() { + document.body.setAttribute("role", "application"); + } + + /** + * Backspacing into a table behaves differently depending upon browser type. + * Therefore, disable Backspace when cursor immediately follows a table. + */ + function disableBackspaceIntoATable() { + editor.on('keydown', function(e) { + if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) { + if (selection.isCollapsed() && selection.getRng(true).startOffset === 0) { + var previousSibling = selection.getNode().previousSibling; + if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === "table") { + e.preventDefault(); + return false; + } + } + } + }); + } + + /** + * Old IE versions can't properly render BR elements in PRE tags white in contentEditable mode. So this + * logic adds a \n before the BR so that it will get rendered. + */ + function addNewLinesBeforeBrInPre() { + // IE8+ rendering mode does the right thing with BR in PRE + if (getDocumentMode() > 7) { + return; + } + + // Enable display: none in area and add a specific class that hides all BR elements in PRE to + // avoid the caret from getting stuck at the BR elements while pressing the right arrow key + setEditorCommandState('RespectVisibilityInDesign', true); + editor.contentStyles.push('.mceHideBrInPre pre br {display: none}'); + dom.addClass(editor.getBody(), 'mceHideBrInPre'); + + // Adds a \n before all BR elements in PRE to get them visual + parser.addNodeFilter('pre', function(nodes) { + var i = nodes.length, brNodes, j, brElm, sibling; + + while (i--) { + brNodes = nodes[i].getAll('br'); + j = brNodes.length; + while (j--) { + brElm = brNodes[j]; + + // Add \n before BR in PRE elements on older IE:s so the new lines get rendered + sibling = brElm.prev; + if (sibling && sibling.type === 3 && sibling.value.charAt(sibling.value - 1) != '\n') { + sibling.value += '\n'; + } else { + brElm.parent.insert(new Node('#text', 3), brElm, true).value = '\n'; + } + } + } + }); + + // Removes any \n before BR elements in PRE since other browsers and in contentEditable=false mode they will be visible + serializer.addNodeFilter('pre', function(nodes) { + var i = nodes.length, brNodes, j, brElm, sibling; + + while (i--) { + brNodes = nodes[i].getAll('br'); + j = brNodes.length; + while (j--) { + brElm = brNodes[j]; + sibling = brElm.prev; + if (sibling && sibling.type == 3) { + sibling.value = sibling.value.replace(/\r?\n$/, ''); + } + } + } + }); + } + + /** + * Moves style width/height to attribute width/height when the user resizes an image on IE. + */ + function removePreSerializedStylesWhenSelectingControls() { + dom.bind(editor.getBody(), 'mouseup', function() { + var value, node = selection.getNode(); + + // Moved styles to attributes on IMG eements + if (node.nodeName == 'IMG') { + // Convert style width to width attribute + if ((value = dom.getStyle(node, 'width'))) { + dom.setAttrib(node, 'width', value.replace(/[^0-9%]+/g, '')); + dom.setStyle(node, 'width', ''); + } + + // Convert style height to height attribute + if ((value = dom.getStyle(node, 'height'))) { + dom.setAttrib(node, 'height', value.replace(/[^0-9%]+/g, '')); + dom.setStyle(node, 'height', ''); + } + } + }); + } + + /** + * Removes a blockquote when backspace is pressed at the beginning of it. + * + * For example: + * <blockquote><p>|x</p></blockquote> + * + * Becomes: + * <p>|x</p> + */ + function removeBlockQuoteOnBackSpace() { + // Add block quote deletion handler + editor.on('keydown', function(e) { + var rng, container, offset, root, parent; + + if (isDefaultPrevented(e) || e.keyCode != VK.BACKSPACE) { + return; + } + + rng = selection.getRng(); + container = rng.startContainer; + offset = rng.startOffset; + root = dom.getRoot(); + parent = container; + + if (!rng.collapsed || offset !== 0) { + return; + } + + while (parent && parent.parentNode && parent.parentNode.firstChild == parent && parent.parentNode != root) { + parent = parent.parentNode; + } + + // Is the cursor at the beginning of a blockquote? + if (parent.tagName === 'BLOCKQUOTE') { + // Remove the blockquote + editor.formatter.toggle('blockquote', null, parent); + + // Move the caret to the beginning of container + rng = dom.createRng(); + rng.setStart(container, 0); + rng.setEnd(container, 0); + selection.setRng(rng); + } + }); + } + + /** + * Sets various Gecko editing options on mouse down and before a execCommand to disable inline table editing that is broken etc. + */ + function setGeckoEditingOptions() { + function setOpts() { + editor._refreshContentEditable(); + + setEditorCommandState("StyleWithCSS", false); + setEditorCommandState("enableInlineTableEditing", false); + + if (!settings.object_resizing) { + setEditorCommandState("enableObjectResizing", false); + } + } + + if (!settings.readonly) { + editor.on('BeforeExecCommand MouseDown', setOpts); + } + } + + /** + * Fixes a gecko link bug, when a link is placed at the end of block elements there is + * no way to move the caret behind the link. This fix adds a bogus br element after the link. + * + * For example this: + * <p><b><a href="#">x</a></b></p> + * + * Becomes this: + * <p><b><a href="#">x</a></b><br></p> + */ + function addBrAfterLastLinks() { + function fixLinks() { + each(dom.select('a'), function(node) { + var parentNode = node.parentNode, root = dom.getRoot(); + + if (parentNode.lastChild === node) { + while (parentNode && !dom.isBlock(parentNode)) { + if (parentNode.parentNode.lastChild !== parentNode || parentNode === root) { + return; + } + + parentNode = parentNode.parentNode; + } + + dom.add(parentNode, 'br', {'data-mce-bogus': 1}); + } + }); + } + + editor.on('SetContent ExecCommand', function(e) { + if (e.type == "setcontent" || e.command === 'mceInsertLink') { + fixLinks(); + } + }); + } + + /** + * WebKit will produce DIV elements here and there by default. But since TinyMCE uses paragraphs by + * default we want to change that behavior. + */ + function setDefaultBlockType() { + if (settings.forced_root_block) { + editor.on('init', function() { + setEditorCommandState('DefaultParagraphSeparator', settings.forced_root_block); + }); + } + } + + /** + * Removes ghost selections from images/tables on Gecko. + */ + function removeGhostSelection() { + editor.on('Undo Redo SetContent', function(e) { + if (!e.initial) { + editor.execCommand('mceRepaint'); + } + }); + } + + /** + * Deletes the selected image on IE instead of navigating to previous page. + */ + function deleteControlItemOnBackSpace() { + editor.on('keydown', function(e) { + var rng; + + if (!isDefaultPrevented(e) && e.keyCode == BACKSPACE) { + rng = editor.getDoc().selection.createRange(); + if (rng && rng.item) { + e.preventDefault(); + editor.undoManager.beforeChange(); + dom.remove(rng.item(0)); + editor.undoManager.add(); + } + } + }); + } + + /** + * IE10 doesn't properly render block elements with the right height until you add contents to them. + * This fixes that by adding a padding-right to all empty text block elements. + * See: https://connect.microsoft.com/IE/feedback/details/743881 + */ + function renderEmptyBlocksFix() { + var emptyBlocksCSS; + + // IE10+ + if (getDocumentMode() >= 10) { + emptyBlocksCSS = ''; + each('p div h1 h2 h3 h4 h5 h6'.split(' '), function(name, i) { + emptyBlocksCSS += (i > 0 ? ',' : '') + name + ':empty'; + }); + + editor.contentStyles.push(emptyBlocksCSS + '{padding-right: 1px !important}'); + } + } + + /** + * Old IE versions can't retain contents within noscript elements so this logic will store the contents + * as a attribute and the insert that value as it's raw text when the DOM is serialized. + */ + function keepNoScriptContents() { + if (getDocumentMode() < 9) { + parser.addNodeFilter('noscript', function(nodes) { + var i = nodes.length, node, textNode; + + while (i--) { + node = nodes[i]; + textNode = node.firstChild; + + if (textNode) { + node.attr('data-mce-innertext', textNode.value); + } + } + }); + + serializer.addNodeFilter('noscript', function(nodes) { + var i = nodes.length, node, textNode, value; + + while (i--) { + node = nodes[i]; + textNode = nodes[i].firstChild; + + if (textNode) { + textNode.value = Entities.decode(textNode.value); + } else { + // Old IE can't retain noscript value so an attribute is used to store it + value = node.attributes.map['data-mce-innertext']; + if (value) { + node.attr('data-mce-innertext', null); + textNode = new Node('#text', 3); + textNode.value = value; + textNode.raw = true; + node.append(textNode); + } + } + } + }); + } + } + + /** + * IE has an issue where you can't select/move the caret by clicking outside the body if the document is in standards mode. + */ + function fixCaretSelectionOfDocumentElementOnIe() { + var doc = dom.doc, body = doc.body, started, startRng, htmlElm; + + // Return range from point or null if it failed + function rngFromPoint(x, y) { + var rng = body.createTextRange(); + + try { + rng.moveToPoint(x, y); + } catch (ex) { + // IE sometimes throws and exception, so lets just ignore it + rng = null; + } + + return rng; + } + + // Fires while the selection is changing + function selectionChange(e) { + var pointRng; + + // Check if the button is down or not + if (e.button) { + // Create range from mouse position + pointRng = rngFromPoint(e.x, e.y); + + if (pointRng) { + // Check if pointRange is before/after selection then change the endPoint + if (pointRng.compareEndPoints('StartToStart', startRng) > 0) { + pointRng.setEndPoint('StartToStart', startRng); + } else { + pointRng.setEndPoint('EndToEnd', startRng); + } + + pointRng.select(); + } + } else { + endSelection(); + } + } + + // Removes listeners + function endSelection() { + var rng = doc.selection.createRange(); + + // If the range is collapsed then use the last start range + if (startRng && !rng.item && rng.compareEndPoints('StartToEnd', rng) === 0) { + startRng.select(); + } + + dom.unbind(doc, 'mouseup', endSelection); + dom.unbind(doc, 'mousemove', selectionChange); + startRng = started = 0; + } + + // Make HTML element unselectable since we are going to handle selection by hand + doc.documentElement.unselectable = true; + + // Detect when user selects outside BODY + dom.bind(doc, 'mousedown contextmenu', function(e) { + if (e.target.nodeName === 'HTML') { + if (started) { + endSelection(); + } + + // Detect vertical scrollbar, since IE will fire a mousedown on the scrollbar and have target set as HTML + htmlElm = doc.documentElement; + if (htmlElm.scrollHeight > htmlElm.clientHeight) { + return; + } + + started = 1; + // Setup start position + startRng = rngFromPoint(e.x, e.y); + if (startRng) { + // Listen for selection change events + dom.bind(doc, 'mouseup', endSelection); + dom.bind(doc, 'mousemove', selectionChange); + + dom.getRoot().focus(); + startRng.select(); + } + } + }); + } + + /** + * Fixes selection issues where the caret can be placed between two inline elements like <b>a</b>|<b>b</b> + * this fix will lean the caret right into the closest inline element. + */ + function normalizeSelection() { + // Normalize selection for example <b>a</b><i>|a</i> becomes <b>a|</b><i>a</i> except for Ctrl+A since it selects everything + editor.on('keyup focusin mouseup', function(e) { + if (e.keyCode != 65 || !VK.metaKeyPressed(e)) { + selection.normalize(); + } + }, true); + } + + /** + * Forces Gecko to render a broken image icon if it fails to load an image. + */ + function showBrokenImageIcon() { + editor.contentStyles.push( + 'img:-moz-broken {' + + '-moz-force-broken-image-icon:1;' + + 'min-width:24px;' + + 'min-height:24px' + + '}' + ); + } + + /** + * iOS has a bug where it's impossible to type if the document has a touchstart event + * bound and the user touches the document while having the on screen keyboard visible. + * + * The touch event moves the focus to the parent document while having the caret inside the iframe + * this fix moves the focus back into the iframe document. + */ + function restoreFocusOnKeyDown() { + if (!editor.inline) { + editor.on('keydown', function() { + if (document.activeElement == document.body) { + editor.getWin().focus(); + } + }); + } + } + + /** + * IE 11 has an annoying issue where you can't move focus into the editor + * by clicking on the white area HTML element. We used to be able to to fix this with + * the fixCaretSelectionOfDocumentElementOnIe fix. But since M$ removed the selection + * object it's not possible anymore. So we need to hack in a ungly CSS to force the + * body to be at least 150px. If the user clicks the HTML element out side this 150px region + * we simply move the focus into the first paragraph. Not ideal since you loose the + * positioning of the caret but goot enough for most cases. + */ + function bodyHeight() { + if (!editor.inline) { + editor.contentStyles.push('body {min-height: 150px}'); + editor.on('click', function(e) { + if (e.target.nodeName == 'HTML') { + editor.getBody().focus(); + editor.selection.normalize(); + editor.nodeChanged(); + } + }); + } + } + + /** + * Firefox on Mac OS will move the browser back to the previous page if you press CMD+Left arrow. + * You might then loose all your work so we need to block that behavior and replace it with our own. + */ + function blockCmdArrowNavigation() { + if (Env.mac) { + editor.on('keydown', function(e) { + if (VK.metaKeyPressed(e) && (e.keyCode == 37 || e.keyCode == 39)) { + e.preventDefault(); + editor.selection.getSel().modify('move', e.keyCode == 37 ? 'backward' : 'forward', 'word'); + } + }); + } + } + + /** + * Disables the autolinking in IE 9+ this is then re-enabled by the autolink plugin. + */ + function disableAutoUrlDetect() { + setEditorCommandState("AutoUrlDetect", false); + } + + /** + * IE 11 has a fantastic bug where it will produce two trailing BR elements to iframe bodies when + * the iframe is hidden by display: none on a parent container. The DOM is actually out of sync + * with innerHTML in this case. It's like IE adds shadow DOM BR elements that appears on innerHTML + * but not as the lastChild of the body. However is we add a BR element to the body then remove it + * it doesn't seem to add these BR elements makes sence right?! + * + * Example of what happens: <body>text</body> becomes <body>text<br><br></body> + */ + function doubleTrailingBrElements() { + if (!editor.inline) { + editor.on('focus blur', function() { + var br = editor.dom.create('br'); + editor.getBody().appendChild(br); + br.parentNode.removeChild(br); + }, true); + } + } + + /** + * iOS 7.1 introduced two new bugs: + * 1) It's possible to open links within a contentEditable area by clicking on them. + * 2) If you hold down the finger it will display the link/image touch callout menu. + */ + function tapLinksAndImages() { + editor.on('click', function(e) { + if (e.target.tagName === 'A') { + e.preventDefault(); + } + }); + + editor.contentStyles.push('.mce-content-body {-webkit-touch-callout: none}'); + } + + // All browsers + disableBackspaceIntoATable(); + removeBlockQuoteOnBackSpace(); + emptyEditorWhenDeleting(); + normalizeSelection(); + + // WebKit + if (isWebKit) { + cleanupStylesWhenDeleting(); + inputMethodFocus(); + selectControlElements(); + setDefaultBlockType(); + + // iOS + if (Env.iOS) { + selectionChangeNodeChanged(); + restoreFocusOnKeyDown(); + bodyHeight(); + tapLinksAndImages(); + } else { + selectAll(); + } + } + + // IE + if (isIE && Env.ie < 11) { + removeHrOnBackspace(); + ensureBodyHasRoleApplication(); + addNewLinesBeforeBrInPre(); + removePreSerializedStylesWhenSelectingControls(); + deleteControlItemOnBackSpace(); + renderEmptyBlocksFix(); + keepNoScriptContents(); + fixCaretSelectionOfDocumentElementOnIe(); + } + + if (Env.ie >= 11) { + bodyHeight(); + doubleTrailingBrElements(); + } + + if (Env.ie) { + selectAll(); + disableAutoUrlDetect(); + } + + // Gecko + if (isGecko) { + removeHrOnBackspace(); + focusBody(); + removeStylesWhenDeletingAcrossBlockElements(); + setGeckoEditingOptions(); + addBrAfterLastLinks(); + removeGhostSelection(); + showBrokenImageIcon(); + blockCmdArrowNavigation(); + } + }; +}); + +// Included from: js/tinymce/classes/util/Observable.js + +/** + * Observable.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This mixin will add event binding logic to classes. + * + * @mixin tinymce.util.Observable + */ +define("tinymce/util/Observable", [ + "tinymce/util/Tools" +], function(Tools) { + var bindingsName = "__bindings"; + var nativeEvents = Tools.makeMap( + "focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange" + + " mouseout mouseenter mouseleave keydown keypress keyup contextmenu dragstart dragend dragover draggesture dragdrop drop drag", ' ' + ); + + function returnFalse() { + return false; + } + + function returnTrue() { + return true; + } + + return { + /** + * Fires the specified event by name. + * + * @method fire + * @param {String} name Name of the event to fire. + * @param {tinymce.Event/Object?} args Event arguments. + * @param {Boolean?} bubble True/false if the event is to be bubbled. + * @return {tinymce.Event} Event instance passed in converted into tinymce.Event instance. + * @example + * instance.fire('event', {...}); + */ + fire: function(name, args, bubble) { + var self = this, handlers, i, l, callback, parent; + + if (self.removed) { + return; + } + + name = name.toLowerCase(); + args = args || {}; + args.type = name; + + // Setup target is there isn't one + if (!args.target) { + args.target = self; + } + + // Add event delegation methods if they are missing + if (!args.preventDefault) { + // Add preventDefault method + args.preventDefault = function() { + args.isDefaultPrevented = returnTrue; + }; + + // Add stopPropagation + args.stopPropagation = function() { + args.isPropagationStopped = returnTrue; + }; + + // Add stopImmediatePropagation + args.stopImmediatePropagation = function() { + args.isImmediatePropagationStopped = returnTrue; + }; + + // Add event delegation states + args.isDefaultPrevented = returnFalse; + args.isPropagationStopped = returnFalse; + args.isImmediatePropagationStopped = returnFalse; + } + + //console.log(name, args); + + if (self[bindingsName]) { + handlers = self[bindingsName][name]; + + if (handlers) { + for (i = 0, l = handlers.length; i < l; i++) { + handlers[i] = callback = handlers[i]; + + // Stop immediate propagation if needed + if (args.isImmediatePropagationStopped()) { + break; + } + + // If callback returns false then prevent default and stop all propagation + if (callback.call(self, args) === false) { + args.preventDefault(); + return args; + } + } + } + } + + // Bubble event up to parents + if (bubble !== false && self.parent) { + parent = self.parent(); + while (parent && !args.isPropagationStopped()) { + parent.fire(name, args, false); + parent = parent.parent(); + } + } + + return args; + }, + + /** + * Binds an event listener to a specific event by name. + * + * @method on + * @param {String} name Event name or space separated list of events to bind. + * @param {callback} callback Callback to be executed when the event occurs. + * @param {Boolean} first Optional flag if the event should be prepended. Use this with care. + * @return {Object} Current class instance. + * @example + * instance.on('event', function(e) { + * // Callback logic + * }); + */ + on: function(name, callback, prepend) { + var self = this, bindings, handlers, names, i; + + if (callback === false) { + callback = function() { + return false; + }; + } + + if (callback) { + names = name.toLowerCase().split(' '); + i = names.length; + while (i--) { + name = names[i]; + + bindings = self[bindingsName]; + if (!bindings) { + bindings = self[bindingsName] = {}; + } + + handlers = bindings[name]; + if (!handlers) { + handlers = bindings[name] = []; + if (self.bindNative && nativeEvents[name]) { + self.bindNative(name); + } + } + + if (prepend) { + handlers.unshift(callback); + } else { + handlers.push(callback); + } + } + } + + return self; + }, + + /** + * Unbinds an event listener to a specific event by name. + * + * @method off + * @param {String?} name Name of the event to unbind. + * @param {callback?} callback Callback to unbind. + * @return {Object} Current class instance. + * @example + * // Unbind specific callback + * instance.off('event', handler); + * + * // Unbind all listeners by name + * instance.off('event'); + * + * // Unbind all events + * instance.off(); + */ + off: function(name, callback) { + var self = this, i, bindings = self[bindingsName], handlers, bindingName, names, hi; + + if (bindings) { + if (name) { + names = name.toLowerCase().split(' '); + i = names.length; + while (i--) { + name = names[i]; + handlers = bindings[name]; + + // Unbind all handlers + if (!name) { + for (bindingName in bindings) { + bindings[name].length = 0; + } + + return self; + } + + if (handlers) { + // Unbind all by name + if (!callback) { + handlers.length = 0; + } else { + // Unbind specific ones + hi = handlers.length; + while (hi--) { + if (handlers[hi] === callback) { + handlers.splice(hi, 1); + } + } + } + + if (!handlers.length && self.unbindNative && nativeEvents[name]) { + self.unbindNative(name); + delete bindings[name]; + } + } + } + } else { + if (self.unbindNative) { + for (name in bindings) { + self.unbindNative(name); + } + } + + self[bindingsName] = []; + } + } + + return self; + }, + + hasEventListeners: function(name) { + var bindings = this[bindingsName]; + + name = name.toLowerCase(); + + return !(!bindings || !bindings[name] || bindings[name].length === 0); + } + }; +}); + +// Included from: js/tinymce/classes/Shortcuts.js + +/** + * Shortcuts.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Contains all logic for handling of keyboard shortcuts. + */ +define("tinymce/Shortcuts", [ + "tinymce/util/Tools", + "tinymce/Env" +], function(Tools, Env) { + var each = Tools.each, explode = Tools.explode; + + var keyCodeLookup = { + "f9": 120, + "f10": 121, + "f11": 122 + }; + + return function(editor) { + var self = this, shortcuts = {}; + + editor.on('keyup keypress keydown', function(e) { + if (e.altKey || e.ctrlKey || e.metaKey) { + each(shortcuts, function(shortcut) { + var ctrlKey = Env.mac ? e.metaKey : e.ctrlKey; + + if (shortcut.ctrl != ctrlKey || shortcut.alt != e.altKey || shortcut.shift != e.shiftKey) { + return; + } + + if (e.keyCode == shortcut.keyCode || (e.charCode && e.charCode == shortcut.charCode)) { + e.preventDefault(); + + if (e.type == "keydown") { + shortcut.func.call(shortcut.scope); + } + + return true; + } + }); + } + }); + + /** + * Adds a keyboard shortcut for some command or function. + * + * @method addShortcut + * @param {String} pattern Shortcut pattern. Like for example: ctrl+alt+o. + * @param {String} desc Text description for the command. + * @param {String/Function} cmdFunc Command name string or function to execute when the key is pressed. + * @param {Object} sc Optional scope to execute the function in. + * @return {Boolean} true/false state if the shortcut was added or not. + */ + self.add = function(pattern, desc, cmdFunc, scope) { + var cmd; + + cmd = cmdFunc; + + if (typeof(cmdFunc) === 'string') { + cmdFunc = function() { + editor.execCommand(cmd, false, null); + }; + } else if (Tools.isArray(cmd)) { + cmdFunc = function() { + editor.execCommand(cmd[0], cmd[1], cmd[2]); + }; + } + + each(explode(pattern.toLowerCase()), function(pattern) { + var shortcut = { + func: cmdFunc, + scope: scope || editor, + desc: editor.translate(desc), + alt: false, + ctrl: false, + shift: false + }; + + each(explode(pattern, '+'), function(value) { + switch (value) { + case 'alt': + case 'ctrl': + case 'shift': + shortcut[value] = true; + break; + + default: + shortcut.charCode = value.charCodeAt(0); + shortcut.keyCode = keyCodeLookup[value] || value.toUpperCase().charCodeAt(0); + } + }); + + shortcuts[ + (shortcut.ctrl ? 'ctrl' : '') + ',' + + (shortcut.alt ? 'alt' : '') + ',' + + (shortcut.shift ? 'shift' : '') + ',' + + shortcut.keyCode + ] = shortcut; + }); + + return true; + }; + }; +}); + +// Included from: js/tinymce/classes/Editor.js + +/** + * Editor.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*jshint scripturl:true */ + +/** + * Include the base event class documentation. + * + * @include ../../../tools/docs/tinymce.Event.js + */ + +/** + * This class contains the core logic for a TinyMCE editor. + * + * @class tinymce.Editor + * @mixes tinymce.util.Observable + * @example + * // Add a class to all paragraphs in the editor. + * tinymce.activeEditor.dom.addClass(tinymce.activeEditor.dom.select('p'), 'someclass'); + * + * // Gets the current editors selection as text + * tinymce.activeEditor.selection.getContent({format: 'text'}); + * + * // Creates a new editor instance + * var ed = new tinymce.Editor('textareaid', { + * some_setting: 1 + * }, tinymce.EditorManager); + * + * // Select each item the user clicks on + * ed.on('click', function(e) { + * ed.selection.select(e.target); + * }); + * + * ed.render(); + */ +define("tinymce/Editor", [ + "tinymce/dom/DOMUtils", + "tinymce/AddOnManager", + "tinymce/html/Node", + "tinymce/dom/Serializer", + "tinymce/html/Serializer", + "tinymce/dom/Selection", + "tinymce/Formatter", + "tinymce/UndoManager", + "tinymce/EnterKey", + "tinymce/ForceBlocks", + "tinymce/EditorCommands", + "tinymce/util/URI", + "tinymce/dom/ScriptLoader", + "tinymce/dom/EventUtils", + "tinymce/WindowManager", + "tinymce/html/Schema", + "tinymce/html/DomParser", + "tinymce/util/Quirks", + "tinymce/Env", + "tinymce/util/Tools", + "tinymce/util/Observable", + "tinymce/Shortcuts" +], function( + DOMUtils, AddOnManager, Node, DomSerializer, Serializer, + Selection, Formatter, UndoManager, EnterKey, ForceBlocks, EditorCommands, + URI, ScriptLoader, EventUtils, WindowManager, + Schema, DomParser, Quirks, Env, Tools, Observable, Shortcuts +) { + // Shorten these names + var DOM = DOMUtils.DOM, ThemeManager = AddOnManager.ThemeManager, PluginManager = AddOnManager.PluginManager; + var extend = Tools.extend, each = Tools.each, explode = Tools.explode; + var inArray = Tools.inArray, trim = Tools.trim, resolve = Tools.resolve; + var Event = EventUtils.Event; + var isGecko = Env.gecko, ie = Env.ie; + + function getEventTarget(editor, eventName) { + if (eventName == 'selectionchange') { + return editor.getDoc(); + } + + // Need to bind mousedown/mouseup etc to document not body in iframe mode + // Since the user might click on the HTML element not the BODY + if (!editor.inline && /^mouse|click|contextmenu|drop/.test(eventName)) { + return editor.getDoc(); + } + + return editor.getBody(); + } + + /** + * Include documentation for all the events. + * + * @include ../../../tools/docs/tinymce.Editor.js + */ + + /** + * Constructs a editor instance by id. + * + * @constructor + * @method Editor + * @param {String} id Unique id for the editor. + * @param {Object} settings Settings for the editor. + * @param {tinymce.EditorManager} editorManager EditorManager instance. + * @author Moxiecode + */ + function Editor(id, settings, editorManager) { + var self = this, documentBaseUrl, baseUri; + + documentBaseUrl = self.documentBaseUrl = editorManager.documentBaseURL; + baseUri = editorManager.baseURI; + + /** + * Name/value collection with editor settings. + * + * @property settings + * @type Object + * @example + * // Get the value of the theme setting + * tinymce.activeEditor.windowManager.alert("You are using the " + tinymce.activeEditor.settings.theme + " theme"); + */ + self.settings = settings = extend({ + id: id, + theme: 'modern', + delta_width: 0, + delta_height: 0, + popup_css: '', + plugins: '', + document_base_url: documentBaseUrl, + add_form_submit_trigger: true, + submit_patch: true, + add_unload_trigger: true, + convert_urls: true, + relative_urls: true, + remove_script_host: true, + object_resizing: true, + doctype: '<!DOCTYPE html>', + visual: true, + font_size_style_values: 'xx-small,x-small,small,medium,large,x-large,xx-large', + + // See: http://www.w3.org/TR/CSS2/fonts.html#propdef-font-size + font_size_legacy_values: 'xx-small,small,medium,large,x-large,xx-large,300%', + forced_root_block: 'p', + hidden_input: true, + padd_empty_editor: true, + render_ui: true, + indentation: '30px', + inline_styles: true, + convert_fonts_to_spans: true, + indent: 'simple', + indent_before: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,' + + 'tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist', + indent_after: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,' + + 'tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist', + validate: true, + entity_encoding: 'named', + url_converter: self.convertURL, + url_converter_scope: self, + ie7_compat: true + }, settings); + + AddOnManager.language = settings.language || 'en'; + AddOnManager.languageLoad = settings.language_load; + + AddOnManager.baseURL = editorManager.baseURL; + + /** + * Editor instance id, normally the same as the div/textarea that was replaced. + * + * @property id + * @type String + */ + self.id = settings.id = id; + + /** + * State to force the editor to return false on a isDirty call. + * + * @property isNotDirty + * @type Boolean + * @example + * function ajaxSave() { + * var ed = tinymce.get('elm1'); + * + * // Save contents using some XHR call + * alert(ed.getContent()); + * + * ed.isNotDirty = true; // Force not dirty state + * } + */ + self.isNotDirty = true; + + /** + * Name/Value object containting plugin instances. + * + * @property plugins + * @type Object + * @example + * // Execute a method inside a plugin directly + * tinymce.activeEditor.plugins.someplugin.someMethod(); + */ + self.plugins = {}; + + /** + * URI object to document configured for the TinyMCE instance. + * + * @property documentBaseURI + * @type tinymce.util.URI + * @example + * // Get relative URL from the location of document_base_url + * tinymce.activeEditor.documentBaseURI.toRelative('/somedir/somefile.htm'); + * + * // Get absolute URL from the location of document_base_url + * tinymce.activeEditor.documentBaseURI.toAbsolute('somefile.htm'); + */ + self.documentBaseURI = new URI(settings.document_base_url || documentBaseUrl, { + base_uri: baseUri + }); + + /** + * URI object to current document that holds the TinyMCE editor instance. + * + * @property baseURI + * @type tinymce.util.URI + * @example + * // Get relative URL from the location of the API + * tinymce.activeEditor.baseURI.toRelative('/somedir/somefile.htm'); + * + * // Get absolute URL from the location of the API + * tinymce.activeEditor.baseURI.toAbsolute('somefile.htm'); + */ + self.baseURI = baseUri; + + /** + * Array with CSS files to load into the iframe. + * + * @property contentCSS + * @type Array + */ + self.contentCSS = []; + + /** + * Array of CSS styles to add to head of document when the editor loads. + * + * @property contentStyles + * @type Array + */ + self.contentStyles = []; + + // Creates all events like onClick, onSetContent etc see Editor.Events.js for the actual logic + self.shortcuts = new Shortcuts(self); + + // Internal command handler objects + self.execCommands = {}; + self.queryStateCommands = {}; + self.queryValueCommands = {}; + self.loadedCSS = {}; + + self.suffix = editorManager.suffix; + self.editorManager = editorManager; + self.inline = settings.inline; + + // Call setup + editorManager.fire('SetupEditor', self); + self.execCallback('setup', self); + } + + Editor.prototype = { + /** + * Renderes the editor/adds it to the page. + * + * @method render + */ + render: function() { + var self = this, settings = self.settings, id = self.id, suffix = self.suffix; + + function readyHandler() { + DOM.unbind(window, 'ready', readyHandler); + self.render(); + } + + // Page is not loaded yet, wait for it + if (!Event.domLoaded) { + DOM.bind(window, 'ready', readyHandler); + return; + } + + // Element not found, then skip initialization + if (!self.getElement()) { + return; + } + + // No editable support old iOS versions etc + if (!Env.contentEditable) { + return; + } + + // Hide target element early to prevent content flashing + if (!settings.inline) { + self.orgVisibility = self.getElement().style.visibility; + self.getElement().style.visibility = 'hidden'; + } else { + self.inline = true; + } + + var form = self.getElement().form || DOM.getParent(id, 'form'); + if (form) { + self.formElement = form; + + // Add hidden input for non input elements inside form elements + if (settings.hidden_input && !/TEXTAREA|INPUT/i.test(self.getElement().nodeName)) { + DOM.insertAfter(DOM.create('input', {type: 'hidden', name: id}), id); + self.hasHiddenInput = true; + } + + // Pass submit/reset from form to editor instance + self.formEventDelegate = function(e) { + self.fire(e.type, e); + }; + + DOM.bind(form, 'submit reset', self.formEventDelegate); + + // Reset contents in editor when the form is reset + self.on('reset', function() { + self.setContent(self.startContent, {format: 'raw'}); + }); + + // Check page uses id="submit" or name="submit" for it's submit button + if (settings.submit_patch && !form.submit.nodeType && !form.submit.length && !form._mceOldSubmit) { + form._mceOldSubmit = form.submit; + form.submit = function() { + self.editorManager.triggerSave(); + self.isNotDirty = true; + + return form._mceOldSubmit(form); + }; + } + } + + /** + * Window manager reference, use this to open new windows and dialogs. + * + * @property windowManager + * @type tinymce.WindowManager + * @example + * // Shows an alert message + * tinymce.activeEditor.windowManager.alert('Hello world!'); + * + * // Opens a new dialog with the file.htm file and the size 320x240 + * // It also adds a custom parameter this can be retrieved by using tinyMCEPopup.getWindowArg inside the dialog. + * tinymce.activeEditor.windowManager.open({ + * url: 'file.htm', + * width: 320, + * height: 240 + * }, { + * custom_param: 1 + * }); + */ + self.windowManager = new WindowManager(self); + + if (settings.encoding == 'xml') { + self.on('GetContent', function(e) { + if (e.save) { + e.content = DOM.encode(e.content); + } + }); + } + + if (settings.add_form_submit_trigger) { + self.on('submit', function() { + if (self.initialized) { + self.save(); + } + }); + } + + if (settings.add_unload_trigger) { + self._beforeUnload = function() { + if (self.initialized && !self.destroyed && !self.isHidden()) { + self.save({format: 'raw', no_events: true, set_dirty: false}); + } + }; + + self.editorManager.on('BeforeUnload', self._beforeUnload); + } + + // Load scripts + function loadScripts() { + var scriptLoader = ScriptLoader.ScriptLoader; + + if (settings.language && settings.language != 'en' && !settings.language_url) { + settings.language_url = self.editorManager.baseURL + '/langs/' + settings.language + '.js'; + } + + if (settings.language_url) { + scriptLoader.add(settings.language_url); + } + + if (settings.theme && typeof settings.theme != "function" && + settings.theme.charAt(0) != '-' && !ThemeManager.urls[settings.theme]) { + var themeUrl = settings.theme_url; + + if (themeUrl) { + themeUrl = self.documentBaseURI.toAbsolute(themeUrl); + } else { + themeUrl = 'themes/' + settings.theme + '/theme' + suffix + '.js'; + } + + ThemeManager.load(settings.theme, themeUrl); + } + + if (Tools.isArray(settings.plugins)) { + settings.plugins = settings.plugins.join(' '); + } + + each(settings.external_plugins, function(url, name) { + PluginManager.load(name, url); + settings.plugins += ' ' + name; + }); + + each(settings.plugins.split(/[ ,]/), function(plugin) { + plugin = trim(plugin); + + if (plugin && !PluginManager.urls[plugin]) { + if (plugin.charAt(0) == '-') { + plugin = plugin.substr(1, plugin.length); + + var dependencies = PluginManager.dependencies(plugin); + + each(dependencies, function(dep) { + var defaultSettings = { + prefix:'plugins/', + resource: dep, + suffix:'/plugin' + suffix + '.js' + }; + + dep = PluginManager.createUrl(defaultSettings, dep); + PluginManager.load(dep.resource, dep); + }); + } else { + PluginManager.load(plugin, { + prefix: 'plugins/', + resource: plugin, + suffix: '/plugin' + suffix + '.js' + }); + } + } + }); + + scriptLoader.loadQueue(function() { + if (!self.removed) { + self.init(); + } + }); + } + + loadScripts(); + }, + + /** + * Initializes the editor this will be called automatically when + * all plugins/themes and language packs are loaded by the rendered method. + * This method will setup the iframe and create the theme and plugin instances. + * + * @method init + */ + init: function() { + var self = this, settings = self.settings, elm = self.getElement(); + var w, h, minHeight, n, o, Theme, url, bodyId, bodyClass, re, i, initializedPlugins = []; + + self.rtl = this.editorManager.i18n.rtl; + self.editorManager.add(self); + + settings.aria_label = settings.aria_label || DOM.getAttrib(elm, 'aria-label', self.getLang('aria.rich_text_area')); + + /** + * Reference to the theme instance that was used to generate the UI. + * + * @property theme + * @type tinymce.Theme + * @example + * // Executes a method on the theme directly + * tinymce.activeEditor.theme.someMethod(); + */ + if (settings.theme) { + if (typeof settings.theme != "function") { + settings.theme = settings.theme.replace(/-/, ''); + Theme = ThemeManager.get(settings.theme); + self.theme = new Theme(self, ThemeManager.urls[settings.theme]); + + if (self.theme.init) { + self.theme.init(self, ThemeManager.urls[settings.theme] || self.documentBaseUrl.replace(/\/$/, '')); + } + } else { + self.theme = settings.theme; + } + } + + function initPlugin(plugin) { + var Plugin = PluginManager.get(plugin), pluginUrl, pluginInstance; + + pluginUrl = PluginManager.urls[plugin] || self.documentBaseUrl.replace(/\/$/, ''); + plugin = trim(plugin); + if (Plugin && inArray(initializedPlugins, plugin) === -1) { + each(PluginManager.dependencies(plugin), function(dep){ + initPlugin(dep); + }); + + pluginInstance = new Plugin(self, pluginUrl); + + self.plugins[plugin] = pluginInstance; + + if (pluginInstance.init) { + pluginInstance.init(self, pluginUrl); + initializedPlugins.push(plugin); + } + } + } + + // Create all plugins + each(settings.plugins.replace(/\-/g, '').split(/[ ,]/), initPlugin); + + // Measure box + if (settings.render_ui && self.theme) { + self.orgDisplay = elm.style.display; + + if (typeof settings.theme != "function") { + w = settings.width || elm.style.width || elm.offsetWidth; + h = settings.height || elm.style.height || elm.offsetHeight; + minHeight = settings.min_height || 100; + re = /^[0-9\.]+(|px)$/i; + + if (re.test('' + w)) { + w = Math.max(parseInt(w, 10), 100); + } + + if (re.test('' + h)) { + h = Math.max(parseInt(h, 10), minHeight); + } + + // Render UI + o = self.theme.renderUI({ + targetNode: elm, + width: w, + height: h, + deltaWidth: settings.delta_width, + deltaHeight: settings.delta_height + }); + + // Resize editor + if (!settings.content_editable) { + DOM.setStyles(o.sizeContainer || o.editorContainer, { + wi2dth: w, + // TODO: Fix this + h2eight: h + }); + + h = (o.iframeHeight || h) + (typeof(h) == 'number' ? (o.deltaHeight || 0) : ''); + if (h < minHeight) { + h = minHeight; + } + } + } else { + o = settings.theme(self, elm); + + // Convert element type to id:s + if (o.editorContainer.nodeType) { + o.editorContainer = o.editorContainer.id = o.editorContainer.id || self.id + "_parent"; + } + + // Convert element type to id:s + if (o.iframeContainer.nodeType) { + o.iframeContainer = o.iframeContainer.id = o.iframeContainer.id || self.id + "_iframecontainer"; + } + + // Use specified iframe height or the targets offsetHeight + h = o.iframeHeight || elm.offsetHeight; + } + + self.editorContainer = o.editorContainer; + } + + // Load specified content CSS last + if (settings.content_css) { + each(explode(settings.content_css), function(u) { + self.contentCSS.push(self.documentBaseURI.toAbsolute(u)); + }); + } + + // Load specified content CSS last + if (settings.content_style) { + self.contentStyles.push(settings.content_style); + } + + // Content editable mode ends here + if (settings.content_editable) { + elm = n = o = null; // Fix IE leak + return self.initContentBody(); + } + + self.iframeHTML = settings.doctype + '<html><head>'; + + // We only need to override paths if we have to + // IE has a bug where it remove site absolute urls to relative ones if this is specified + if (settings.document_base_url != self.documentBaseUrl) { + self.iframeHTML += '<base href="' + self.documentBaseURI.getURI() + '" />'; + } + + // IE8 doesn't support carets behind images setting ie7_compat would force IE8+ to run in IE7 compat mode. + if (!Env.caretAfter && settings.ie7_compat) { + self.iframeHTML += '<meta http-equiv="X-UA-Compatible" content="IE=7" />'; + } + + self.iframeHTML += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'; + + // Load the CSS by injecting them into the HTML this will reduce "flicker" + for (i = 0; i < self.contentCSS.length; i++) { + var cssUrl = self.contentCSS[i]; + self.iframeHTML += '<link type="text/css" rel="stylesheet" href="' + cssUrl + '" />'; + self.loadedCSS[cssUrl] = true; + } + + bodyId = settings.body_id || 'tinymce'; + if (bodyId.indexOf('=') != -1) { + bodyId = self.getParam('body_id', '', 'hash'); + bodyId = bodyId[self.id] || bodyId; + } + + bodyClass = settings.body_class || ''; + if (bodyClass.indexOf('=') != -1) { + bodyClass = self.getParam('body_class', '', 'hash'); + bodyClass = bodyClass[self.id] || ''; + } + + self.iframeHTML += '</head><body id="' + bodyId + '" class="mce-content-body ' + bodyClass + '" ' + + 'onload="window.parent.tinymce.get(\'' + self.id + '\').fire(\'load\');"><br></body></html>'; + + /*eslint no-script-url:0 */ + var domainRelaxUrl = 'javascript:(function(){' + + 'document.open();document.domain="' + document.domain + '";' + + 'var ed = window.parent.tinymce.get("' + self.id + '");document.write(ed.iframeHTML);' + + 'document.close();ed.initContentBody(true);})()'; + + // Domain relaxing is required since the user has messed around with document.domain + if (document.domain != location.hostname) { + url = domainRelaxUrl; + } + + // Create iframe + // TODO: ACC add the appropriate description on this. + n = DOM.add(o.iframeContainer, 'iframe', { + id: self.id + "_ifr", + src: url || 'javascript:""', // Workaround for HTTPS warning in IE6/7 + frameBorder: '0', + allowTransparency: "true", + title: self.editorManager.translate( + "Rich Text Area. Press ALT-F9 for menu. " + + "Press ALT-F10 for toolbar. Press ALT-0 for help" + ), + style: { + width: '100%', + height: h, + display: 'block' // Important for Gecko to render the iframe correctly + } + }); + + // Try accessing the document this will fail on IE when document.domain is set to the same as location.hostname + // Then we have to force domain relaxing using the domainRelaxUrl approach very ugly!! + if (ie) { + try { + self.getDoc(); + } catch (e) { + n.src = url = domainRelaxUrl; + } + } + + self.contentAreaContainer = o.iframeContainer; + + if (o.editorContainer) { + DOM.get(o.editorContainer).style.display = self.orgDisplay; + } + + DOM.get(self.id).style.display = 'none'; + DOM.setAttrib(self.id, 'aria-hidden', true); + + if (!url) { + self.initContentBody(); + } + + elm = n = o = null; // Cleanup + }, + + /** + * This method get called by the init method ones the iframe is loaded. + * It will fill the iframe with contents, setups DOM and selection objects for the iframe. + * + * @method initContentBody + * @private + */ + initContentBody: function(skipWrite) { + var self = this, settings = self.settings, targetElm = DOM.get(self.id), doc = self.getDoc(), body, contentCssText; + + // Restore visibility on target element + if (!settings.inline) { + self.getElement().style.visibility = self.orgVisibility; + } + + // Setup iframe body + if (!skipWrite && !settings.content_editable) { + doc.open(); + doc.write(self.iframeHTML); + doc.close(); + } + + if (settings.content_editable) { + self.on('remove', function() { + var bodyEl = this.getBody(); + + DOM.removeClass(bodyEl, 'mce-content-body'); + DOM.removeClass(bodyEl, 'mce-edit-focus'); + DOM.setAttrib(bodyEl, 'tabIndex', null); + DOM.setAttrib(bodyEl, 'contentEditable', null); + }); + + DOM.addClass(targetElm, 'mce-content-body'); + targetElm.tabIndex = -1; + self.contentDocument = doc = settings.content_document || document; + self.contentWindow = settings.content_window || window; + self.bodyElement = targetElm; + + // Prevent leak in IE + settings.content_document = settings.content_window = null; + + // TODO: Fix this + settings.root_name = targetElm.nodeName.toLowerCase(); + } + + // It will not steal focus while setting contentEditable + body = self.getBody(); + body.disabled = true; + + if (!settings.readonly) { + if (self.inline && DOM.getStyle(body, 'position', true) == 'static') { + body.style.position = 'relative'; + } + + body.contentEditable = self.getParam('content_editable_state', true); + } + + body.disabled = false; + + /** + * Schema instance, enables you to validate elements and it's children. + * + * @property schema + * @type tinymce.html.Schema + */ + self.schema = new Schema(settings); + + /** + * DOM instance for the editor. + * + * @property dom + * @type tinymce.dom.DOMUtils + * @example + * // Adds a class to all paragraphs within the editor + * tinymce.activeEditor.dom.addClass(tinymce.activeEditor.dom.select('p'), 'someclass'); + */ + self.dom = new DOMUtils(doc, { + keep_values: true, + url_converter: self.convertURL, + url_converter_scope: self, + hex_colors: settings.force_hex_style_colors, + class_filter: settings.class_filter, + update_styles: true, + root_element: settings.content_editable ? self.id : null, + collect: settings.content_editable, + schema: self.schema, + onSetAttrib: function(e) { + self.fire('SetAttrib', e); + } + }); + + /** + * HTML parser will be used when contents is inserted into the editor. + * + * @property parser + * @type tinymce.html.DomParser + */ + self.parser = new DomParser(settings, self.schema); + + // Convert src and href into data-mce-src, data-mce-href and data-mce-style + self.parser.addAttributeFilter('src,href,style', function(nodes, name) { + var i = nodes.length, node, dom = self.dom, value, internalName; + + while (i--) { + node = nodes[i]; + value = node.attr(name); + internalName = 'data-mce-' + name; + + // Add internal attribute if we need to we don't on a refresh of the document + if (!node.attributes.map[internalName]) { + if (name === "style") { + node.attr(internalName, dom.serializeStyle(dom.parseStyle(value), node.name)); + } else { + node.attr(internalName, self.convertURL(value, name, node.name)); + } + } + } + }); + + // Keep scripts from executing + self.parser.addNodeFilter('script', function(nodes) { + var i = nodes.length, node; + + while (i--) { + node = nodes[i]; + node.attr('type', 'mce-' + (node.attr('type') || 'text/javascript')); + } + }); + + self.parser.addNodeFilter('#cdata', function(nodes) { + var i = nodes.length, node; + + while (i--) { + node = nodes[i]; + node.type = 8; + node.name = '#comment'; + node.value = '[CDATA[' + node.value + ']]'; + } + }); + + self.parser.addNodeFilter('p,h1,h2,h3,h4,h5,h6,div', function(nodes) { + var i = nodes.length, node, nonEmptyElements = self.schema.getNonEmptyElements(); + + while (i--) { + node = nodes[i]; + + if (node.isEmpty(nonEmptyElements)) { + node.empty().append(new Node('br', 1)).shortEnded = true; + } + } + }); + + /** + * DOM serializer for the editor. Will be used when contents is extracted from the editor. + * + * @property serializer + * @type tinymce.dom.Serializer + * @example + * // Serializes the first paragraph in the editor into a string + * tinymce.activeEditor.serializer.serialize(tinymce.activeEditor.dom.select('p')[0]); + */ + self.serializer = new DomSerializer(settings, self); + + /** + * Selection instance for the editor. + * + * @property selection + * @type tinymce.dom.Selection + * @example + * // Sets some contents to the current selection in the editor + * tinymce.activeEditor.selection.setContent('Some contents'); + * + * // Gets the current selection + * alert(tinymce.activeEditor.selection.getContent()); + * + * // Selects the first paragraph found + * tinymce.activeEditor.selection.select(tinymce.activeEditor.dom.select('p')[0]); + */ + self.selection = new Selection(self.dom, self.getWin(), self.serializer, self); + + /** + * Formatter instance. + * + * @property formatter + * @type tinymce.Formatter + */ + self.formatter = new Formatter(self); + + /** + * Undo manager instance, responsible for handling undo levels. + * + * @property undoManager + * @type tinymce.UndoManager + * @example + * // Undoes the last modification to the editor + * tinymce.activeEditor.undoManager.undo(); + */ + self.undoManager = new UndoManager(self); + + self.forceBlocks = new ForceBlocks(self); + self.enterKey = new EnterKey(self); + self.editorCommands = new EditorCommands(self); + + self.fire('PreInit'); + + if (!settings.browser_spellcheck && !settings.gecko_spellcheck) { + doc.body.spellcheck = false; // Gecko + DOM.setAttrib(body, "spellcheck", "false"); + } + + self.fire('PostRender'); + + self.quirks = Quirks(self); + + if (settings.directionality) { + body.dir = settings.directionality; + } + + if (settings.nowrap) { + body.style.whiteSpace = "nowrap"; + } + + if (settings.protect) { + self.on('BeforeSetContent', function(e) { + each(settings.protect, function(pattern) { + e.content = e.content.replace(pattern, function(str) { + return '<!--mce:protected ' + escape(str) + '-->'; + }); + }); + }); + } + + self.on('SetContent', function() { + self.addVisual(self.getBody()); + }); + + // Remove empty contents + if (settings.padd_empty_editor) { + self.on('PostProcess', function(e) { + e.content = e.content.replace(/^(<p[^>]*>( | |\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/, ''); + }); + } + + self.load({initial: true, format: 'html'}); + self.startContent = self.getContent({format: 'raw'}); + + /** + * Is set to true after the editor instance has been initialized + * + * @property initialized + * @type Boolean + * @example + * function isEditorInitialized(editor) { + * return editor && editor.initialized; + * } + */ + self.initialized = true; + + each(self._pendingNativeEvents, function(name) { + self.dom.bind(getEventTarget(self, name), name, function(e) { + self.fire(e.type, e); + }); + }); + + self.fire('init'); + self.focus(true); + self.nodeChanged({initial: true}); + self.execCallback('init_instance_callback', self); + + // Add editor specific CSS styles + if (self.contentStyles.length > 0) { + contentCssText = ''; + + each(self.contentStyles, function(style) { + contentCssText += style + "\r\n"; + }); + + self.dom.addStyle(contentCssText); + } + + // Load specified content CSS last + each(self.contentCSS, function(cssUrl) { + if (!self.loadedCSS[cssUrl]) { + self.dom.loadCSS(cssUrl); + self.loadedCSS[cssUrl] = true; + } + }); + + // Handle auto focus + if (settings.auto_focus) { + setTimeout(function () { + var ed = self.editorManager.get(settings.auto_focus); + + ed.selection.select(ed.getBody(), 1); + ed.selection.collapse(1); + ed.getBody().focus(); + ed.getWin().focus(); + }, 100); + } + + // Clean up references for IE + targetElm = doc = body = null; + }, + + /** + * Focuses/activates the editor. This will set this editor as the activeEditor in the tinymce collection + * it will also place DOM focus inside the editor. + * + * @method focus + * @param {Boolean} skip_focus Skip DOM focus. Just set is as the active editor. + */ + focus: function(skip_focus) { + var oed, self = this, selection = self.selection, contentEditable = self.settings.content_editable, rng; + var controlElm, doc = self.getDoc(), body; + + if (!skip_focus) { + // Get selected control element + rng = selection.getRng(); + if (rng.item) { + controlElm = rng.item(0); + } + + self._refreshContentEditable(); + + // Focus the window iframe + if (!contentEditable) { + // WebKit needs this call to fire focusin event properly see #5948 + // But Opera pre Blink engine will produce an empty selection so skip Opera + if (!Env.opera) { + self.getBody().focus(); + } + + self.getWin().focus(); + } + + // Focus the body as well since it's contentEditable + if (isGecko || contentEditable) { + body = self.getBody(); + + // Check for setActive since it doesn't scroll to the element + if (body.setActive && Env.ie < 11) { + body.setActive(); + } else { + body.focus(); + } + + if (contentEditable) { + selection.normalize(); + } + } + + // Restore selected control element + // This is needed when for example an image is selected within a + // layer a call to focus will then remove the control selection + if (controlElm && controlElm.ownerDocument == doc) { + rng = doc.body.createControlRange(); + rng.addElement(controlElm); + rng.select(); + } + } + + if (self.editorManager.activeEditor != self) { + if ((oed = self.editorManager.activeEditor)) { + oed.fire('deactivate', {relatedTarget: self}); + } + + self.fire('activate', {relatedTarget: oed}); + } + + self.editorManager.activeEditor = self; + }, + + /** + * Executes a legacy callback. This method is useful to call old 2.x option callbacks. + * There new event model is a better way to add callback so this method might be removed in the future. + * + * @method execCallback + * @param {String} name Name of the callback to execute. + * @return {Object} Return value passed from callback function. + */ + execCallback: function(name) { + var self = this, callback = self.settings[name], scope; + + if (!callback) { + return; + } + + // Look through lookup + if (self.callbackLookup && (scope = self.callbackLookup[name])) { + callback = scope.func; + scope = scope.scope; + } + + if (typeof(callback) === 'string') { + scope = callback.replace(/\.\w+$/, ''); + scope = scope ? resolve(scope) : 0; + callback = resolve(callback); + self.callbackLookup = self.callbackLookup || {}; + self.callbackLookup[name] = {func: callback, scope: scope}; + } + + return callback.apply(scope || self, Array.prototype.slice.call(arguments, 1)); + }, + + /** + * Translates the specified string by replacing variables with language pack items it will also check if there is + * a key mathcin the input. + * + * @method translate + * @param {String} text String to translate by the language pack data. + * @return {String} Translated string. + */ + translate: function(text) { + var lang = this.settings.language || 'en', i18n = this.editorManager.i18n; + + if (!text) { + return ''; + } + + return i18n.data[lang + '.' + text] || text.replace(/\{\#([^\}]+)\}/g, function(a, b) { + return i18n.data[lang + '.' + b] || '{#' + b + '}'; + }); + }, + + /** + * Returns a language pack item by name/key. + * + * @method getLang + * @param {String} name Name/key to get from the language pack. + * @param {String} defaultVal Optional default value to retrive. + */ + getLang: function(name, defaultVal) { + return ( + this.editorManager.i18n.data[(this.settings.language || 'en') + '.' + name] || + (defaultVal !== undefined ? defaultVal : '{#' + name + '}') + ); + }, + + /** + * Returns a configuration parameter by name. + * + * @method getParam + * @param {String} name Configruation parameter to retrive. + * @param {String} defaultVal Optional default value to return. + * @param {String} type Optional type parameter. + * @return {String} Configuration parameter value or default value. + * @example + * // Returns a specific config value from the currently active editor + * var someval = tinymce.activeEditor.getParam('myvalue'); + * + * // Returns a specific config value from a specific editor instance by id + * var someval2 = tinymce.get('my_editor').getParam('myvalue'); + */ + getParam: function(name, defaultVal, type) { + var value = name in this.settings ? this.settings[name] : defaultVal, output; + + if (type === 'hash') { + output = {}; + + if (typeof(value) === 'string') { + each(value.indexOf('=') > 0 ? value.split(/[;,](?![^=;,]*(?:[;,]|$))/) : value.split(','), function(value) { + value = value.split('='); + + if (value.length > 1) { + output[trim(value[0])] = trim(value[1]); + } else { + output[trim(value[0])] = trim(value); + } + }); + } else { + output = value; + } + + return output; + } + + return value; + }, + + /** + * Distpaches out a onNodeChange event to all observers. This method should be called when you + * need to update the UI states or element path etc. + * + * @method nodeChanged + */ + nodeChanged: function() { + var self = this, selection = self.selection, node, parents, root; + + // Fix for bug #1896577 it seems that this can not be fired while the editor is loading + if (self.initialized && !self.settings.disable_nodechange && !self.settings.readonly) { + // Get start node + root = self.getBody(); + node = selection.getStart() || root; + node = ie && node.ownerDocument != self.getDoc() ? self.getBody() : node; // Fix for IE initial state + + // Edge case for <p>|<img></p> + if (node.nodeName == 'IMG' && selection.isCollapsed()) { + node = node.parentNode; + } + + // Get parents and add them to object + parents = []; + self.dom.getParent(node, function(node) { + if (node === root) { + return true; + } + + parents.push(node); + }); + + self.fire('NodeChange', {element: node, parents: parents}); + } + }, + + /** + * Adds a button that later gets created by the theme in the editors toolbars. + * + * @method addButton + * @param {String} name Button name to add. + * @param {Object} settings Settings object with title, cmd etc. + * @example + * // Adds a custom button to the editor that inserts contents when clicked + * tinymce.init({ + * ... + * + * toolbar: 'example' + * + * setup: function(ed) { + * ed.addButton('example', { + * title: 'My title', + * image: '../js/tinymce/plugins/example/img/example.gif', + * onclick: function() { + * ed.insertContent('Hello world!!'); + * } + * }); + * } + * }); + */ + addButton: function(name, settings) { + var self = this; + + if (settings.cmd) { + settings.onclick = function() { + self.execCommand(settings.cmd); + }; + } + + if (!settings.text && !settings.icon) { + settings.icon = name; + } + + self.buttons = self.buttons || {}; + settings.tooltip = settings.tooltip || settings.title; + self.buttons[name] = settings; + }, + + /** + * Adds a menu item to be used in the menus of the theme. There might be multiple instances + * of this menu item for example it might be used in the main menus of the theme but also in + * the context menu so make sure that it's self contained and supports multiple instances. + * + * @method addMenuItem + * @param {String} name Menu item name to add. + * @param {Object} settings Settings object with title, cmd etc. + * @example + * // Adds a custom menu item to the editor that inserts contents when clicked + * // The context option allows you to add the menu item to an existing default menu + * tinymce.init({ + * ... + * + * setup: function(ed) { + * ed.addMenuItem('example', { + * text: 'My menu item', + * context: 'tools', + * onclick: function() { + * ed.insertContent('Hello world!!'); + * } + * }); + * } + * }); + */ + addMenuItem: function(name, settings) { + var self = this; + + if (settings.cmd) { + settings.onclick = function() { + self.execCommand(settings.cmd); + }; + } + + self.menuItems = self.menuItems || {}; + self.menuItems[name] = settings; + }, + + /** + * Adds a custom command to the editor, you can also override existing commands with this method. + * The command that you add can be executed with execCommand. + * + * @method addCommand + * @param {String} name Command name to add/override. + * @param {addCommandCallback} callback Function to execute when the command occurs. + * @param {Object} scope Optional scope to execute the function in. + * @example + * // Adds a custom command that later can be executed using execCommand + * tinymce.init({ + * ... + * + * setup: function(ed) { + * // Register example command + * ed.addCommand('mycommand', function(ui, v) { + * ed.windowManager.alert('Hello world!! Selection: ' + ed.selection.getContent({format: 'text'})); + * }); + * } + * }); + */ + addCommand: function(name, callback, scope) { + /** + * Callback function that gets called when a command is executed. + * + * @callback addCommandCallback + * @param {Boolean} ui Display UI state true/false. + * @param {Object} value Optional value for command. + * @return {Boolean} True/false state if the command was handled or not. + */ + this.execCommands[name] = {func: callback, scope: scope || this}; + }, + + /** + * Adds a custom query state command to the editor, you can also override existing commands with this method. + * The command that you add can be executed with queryCommandState function. + * + * @method addQueryStateHandler + * @param {String} name Command name to add/override. + * @param {addQueryStateHandlerCallback} callback Function to execute when the command state retrival occurs. + * @param {Object} scope Optional scope to execute the function in. + */ + addQueryStateHandler: function(name, callback, scope) { + /** + * Callback function that gets called when a queryCommandState is executed. + * + * @callback addQueryStateHandlerCallback + * @return {Boolean} True/false state if the command is enabled or not like is it bold. + */ + this.queryStateCommands[name] = {func: callback, scope: scope || this}; + }, + + /** + * Adds a custom query value command to the editor, you can also override existing commands with this method. + * The command that you add can be executed with queryCommandValue function. + * + * @method addQueryValueHandler + * @param {String} name Command name to add/override. + * @param {addQueryValueHandlerCallback} callback Function to execute when the command value retrival occurs. + * @param {Object} scope Optional scope to execute the function in. + */ + addQueryValueHandler: function(name, callback, scope) { + /** + * Callback function that gets called when a queryCommandValue is executed. + * + * @callback addQueryValueHandlerCallback + * @return {Object} Value of the command or undefined. + */ + this.queryValueCommands[name] = {func: callback, scope: scope || this}; + }, + + /** + * Adds a keyboard shortcut for some command or function. + * + * @method addShortcut + * @param {String} pattern Shortcut pattern. Like for example: ctrl+alt+o. + * @param {String} desc Text description for the command. + * @param {String/Function} cmdFunc Command name string or function to execute when the key is pressed. + * @param {Object} sc Optional scope to execute the function in. + * @return {Boolean} true/false state if the shortcut was added or not. + */ + addShortcut: function(pattern, desc, cmdFunc, scope) { + this.shortcuts.add(pattern, desc, cmdFunc, scope); + }, + + /** + * Executes a command on the current instance. These commands can be TinyMCE internal commands prefixed with "mce" or + * they can be build in browser commands such as "Bold". A compleate list of browser commands is available on MSDN or Mozilla.org. + * This function will dispatch the execCommand function on each plugin, theme or the execcommand_callback option if none of these + * return true it will handle the command as a internal browser command. + * + * @method execCommand + * @param {String} cmd Command name to execute, for example mceLink or Bold. + * @param {Boolean} ui True/false state if a UI (dialog) should be presented or not. + * @param {mixed} value Optional command value, this can be anything. + * @param {Object} a Optional arguments object. + */ + execCommand: function(cmd, ui, value, args) { + var self = this, state = 0, cmdItem; + + if (!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(cmd) && (!args || !args.skip_focus)) { + self.focus(); + } + + args = extend({}, args); + args = self.fire('BeforeExecCommand', {command: cmd, ui: ui, value: value}); + if (args.isDefaultPrevented()) { + return false; + } + + // Registred commands + if ((cmdItem = self.execCommands[cmd])) { + // Fall through on true + if (cmdItem.func.call(cmdItem.scope, ui, value) !== true) { + self.fire('ExecCommand', {command: cmd, ui: ui, value: value}); + return true; + } + } + + // Plugin commands + each(self.plugins, function(p) { + if (p.execCommand && p.execCommand(cmd, ui, value)) { + self.fire('ExecCommand', {command: cmd, ui: ui, value: value}); + state = true; + return false; + } + }); + + if (state) { + return state; + } + + // Theme commands + if (self.theme && self.theme.execCommand && self.theme.execCommand(cmd, ui, value)) { + self.fire('ExecCommand', {command: cmd, ui: ui, value: value}); + return true; + } + + // Editor commands + if (self.editorCommands.execCommand(cmd, ui, value)) { + self.fire('ExecCommand', {command: cmd, ui: ui, value: value}); + return true; + } + + // Browser commands + self.getDoc().execCommand(cmd, ui, value); + self.fire('ExecCommand', {command: cmd, ui: ui, value: value}); + }, + + /** + * Returns a command specific state, for example if bold is enabled or not. + * + * @method queryCommandState + * @param {string} cmd Command to query state from. + * @return {Boolean} Command specific state, for example if bold is enabled or not. + */ + queryCommandState: function(cmd) { + var self = this, queryItem, returnVal; + + // Is hidden then return undefined + if (self._isHidden()) { + return; + } + + // Registred commands + if ((queryItem = self.queryStateCommands[cmd])) { + returnVal = queryItem.func.call(queryItem.scope); + + // Fall though on true + if (returnVal !== true) { + return returnVal; + } + } + + // Editor commands + returnVal = self.editorCommands.queryCommandState(cmd); + if (returnVal !== -1) { + return returnVal; + } + + // Browser commands + try { + return self.getDoc().queryCommandState(cmd); + } catch (ex) { + // Fails sometimes see bug: 1896577 + } + }, + + /** + * Returns a command specific value, for example the current font size. + * + * @method queryCommandValue + * @param {string} cmd Command to query value from. + * @return {Object} Command specific value, for example the current font size. + */ + queryCommandValue: function(cmd) { + var self = this, queryItem, returnVal; + + // Is hidden then return undefined + if (self._isHidden()) { + return; + } + + // Registred commands + if ((queryItem = self.queryValueCommands[cmd])) { + returnVal = queryItem.func.call(queryItem.scope); + + // Fall though on true + if (returnVal !== true) { + return returnVal; + } + } + + // Editor commands + returnVal = self.editorCommands.queryCommandValue(cmd); + if (returnVal !== undefined) { + return returnVal; + } + + // Browser commands + try { + return self.getDoc().queryCommandValue(cmd); + } catch (ex) { + // Fails sometimes see bug: 1896577 + } + }, + + /** + * Shows the editor and hides any textarea/div that the editor is supposed to replace. + * + * @method show + */ + show: function() { + var self = this; + + DOM.show(self.getContainer()); + DOM.hide(self.id); + self.load(); + self.fire('show'); + }, + + /** + * Hides the editor and shows any textarea/div that the editor is supposed to replace. + * + * @method hide + */ + hide: function() { + var self = this, doc = self.getDoc(); + + // Fixed bug where IE has a blinking cursor left from the editor + if (ie && doc && !self.inline) { + doc.execCommand('SelectAll'); + } + + // We must save before we hide so Safari doesn't crash + self.save(); + + // defer the call to hide to prevent an IE9 crash #4921 + DOM.hide(self.getContainer()); + DOM.setStyle(self.id, 'display', self.orgDisplay); + self.fire('hide'); + }, + + /** + * Returns true/false if the editor is hidden or not. + * + * @method isHidden + * @return {Boolean} True/false if the editor is hidden or not. + */ + isHidden: function() { + return !DOM.isHidden(this.id); + }, + + /** + * Sets the progress state, this will display a throbber/progess for the editor. + * This is ideal for asycronous operations like an AJAX save call. + * + * @method setProgressState + * @param {Boolean} state Boolean state if the progress should be shown or hidden. + * @param {Number} time Optional time to wait before the progress gets shown. + * @return {Boolean} Same as the input state. + * @example + * // Show progress for the active editor + * tinymce.activeEditor.setProgressState(true); + * + * // Hide progress for the active editor + * tinymce.activeEditor.setProgressState(false); + * + * // Show progress after 3 seconds + * tinymce.activeEditor.setProgressState(true, 3000); + */ + setProgressState: function(state, time) { + this.fire('ProgressState', {state: state, time: time}); + }, + + /** + * Loads contents from the textarea or div element that got converted into an editor instance. + * This method will move the contents from that textarea or div into the editor by using setContent + * so all events etc that method has will get dispatched as well. + * + * @method load + * @param {Object} args Optional content object, this gets passed around through the whole load process. + * @return {String} HTML string that got set into the editor. + */ + load: function(args) { + var self = this, elm = self.getElement(), html; + + if (elm) { + args = args || {}; + args.load = true; + + html = self.setContent(elm.value !== undefined ? elm.value : elm.innerHTML, args); + args.element = elm; + + if (!args.no_events) { + self.fire('LoadContent', args); + } + + args.element = elm = null; + + return html; + } + }, + + /** + * Saves the contents from a editor out to the textarea or div element that got converted into an editor instance. + * This method will move the HTML contents from the editor into that textarea or div by getContent + * so all events etc that method has will get dispatched as well. + * + * @method save + * @param {Object} args Optional content object, this gets passed around through the whole save process. + * @return {String} HTML string that got set into the textarea/div. + */ + save: function(args) { + var self = this, elm = self.getElement(), html, form; + + if (!elm || !self.initialized) { + return; + } + + args = args || {}; + args.save = true; + + args.element = elm; + html = args.content = self.getContent(args); + + if (!args.no_events) { + self.fire('SaveContent', args); + } + + html = args.content; + + if (!/TEXTAREA|INPUT/i.test(elm.nodeName)) { + // Update DIV element when not in inline mode + if (!self.inline) { + elm.innerHTML = html; + } + + // Update hidden form element + if ((form = DOM.getParent(self.id, 'form'))) { + each(form.elements, function(elm) { + if (elm.name == self.id) { + elm.value = html; + return false; + } + }); + } + } else { + elm.value = html; + } + + args.element = elm = null; + + if (args.set_dirty !== false) { + self.isNotDirty = true; + } + + return html; + }, + + /** + * Sets the specified content to the editor instance, this will cleanup the content before it gets set using + * the different cleanup rules options. + * + * @method setContent + * @param {String} content Content to set to editor, normally HTML contents but can be other formats as well. + * @param {Object} args Optional content object, this gets passed around through the whole set process. + * @return {String} HTML string that got set into the editor. + * @example + * // Sets the HTML contents of the activeEditor editor + * tinymce.activeEditor.setContent('<span>some</span> html'); + * + * // Sets the raw contents of the activeEditor editor + * tinymce.activeEditor.setContent('<span>some</span> html', {format: 'raw'}); + * + * // Sets the content of a specific editor (my_editor in this example) + * tinymce.get('my_editor').setContent(data); + * + * // Sets the bbcode contents of the activeEditor editor if the bbcode plugin was added + * tinymce.activeEditor.setContent('[b]some[/b] html', {format: 'bbcode'}); + */ + setContent: function(content, args) { + var self = this, body = self.getBody(), forcedRootBlockName; + + // Setup args object + args = args || {}; + args.format = args.format || 'html'; + args.set = true; + args.content = content; + + // Do preprocessing + if (!args.no_events) { + self.fire('BeforeSetContent', args); + } + + content = args.content; + + // Padd empty content in Gecko and Safari. Commands will otherwise fail on the content + // It will also be impossible to place the caret in the editor unless there is a BR element present + if (content.length === 0 || /^\s+$/.test(content)) { + forcedRootBlockName = self.settings.forced_root_block; + + // Check if forcedRootBlock is configured and that the block is a valid child of the body + if (forcedRootBlockName && self.schema.isValidChild(body.nodeName.toLowerCase(), forcedRootBlockName.toLowerCase())) { + // Padd with bogus BR elements on modern browsers and IE 7 and 8 since they don't render empty P tags properly + content = ie && ie < 11 ? '' : '<br data-mce-bogus="1">'; + content = self.dom.createHTML(forcedRootBlockName, self.settings.forced_root_block_attrs, content); + } else if (!ie) { + // We need to add a BR when forced_root_block is disabled on non IE browsers to place the caret + content = '<br data-mce-bogus="1">'; + } + + body.innerHTML = content; + + self.fire('SetContent', args); + } else { + // Parse and serialize the html + if (args.format !== 'raw') { + content = new Serializer({}, self.schema).serialize( + self.parser.parse(content, {isRootContent: true}) + ); + } + + // Set the new cleaned contents to the editor + args.content = trim(content); + self.dom.setHTML(body, args.content); + + // Do post processing + if (!args.no_events) { + self.fire('SetContent', args); + } + + // Don't normalize selection if the focused element isn't the body in + // content editable mode since it will steal focus otherwise + /*if (!self.settings.content_editable || document.activeElement === self.getBody()) { + self.selection.normalize(); + }*/ + } + + return args.content; + }, + + /** + * Gets the content from the editor instance, this will cleanup the content before it gets returned using + * the different cleanup rules options. + * + * @method getContent + * @param {Object} args Optional content object, this gets passed around through the whole get process. + * @return {String} Cleaned content string, normally HTML contents. + * @example + * // Get the HTML contents of the currently active editor + * console.debug(tinymce.activeEditor.getContent()); + * + * // Get the raw contents of the currently active editor + * tinymce.activeEditor.getContent({format: 'raw'}); + * + * // Get content of a specific editor: + * tinymce.get('content id').getContent() + */ + getContent: function(args) { + var self = this, content, body = self.getBody(); + + // Setup args object + args = args || {}; + args.format = args.format || 'html'; + args.get = true; + args.getInner = true; + + // Do preprocessing + if (!args.no_events) { + self.fire('BeforeGetContent', args); + } + + // Get raw contents or by default the cleaned contents + if (args.format == 'raw') { + content = body.innerHTML; + } else if (args.format == 'text') { + content = body.innerText || body.textContent; + } else { + content = self.serializer.serialize(body, args); + } + + // Trim whitespace in beginning/end of HTML + if (args.format != 'text') { + args.content = trim(content); + } else { + args.content = content; + } + + // Do post processing + if (!args.no_events) { + self.fire('GetContent', args); + } + + return args.content; + }, + + /** + * Inserts content at caret position. + * + * @method insertContent + * @param {String} content Content to insert. + */ + insertContent: function(content) { + this.execCommand('mceInsertContent', false, content); + }, + + /** + * Returns true/false if the editor is dirty or not. It will get dirty if the user has made modifications to the contents. + * + * @method isDirty + * @return {Boolean} True/false if the editor is dirty or not. It will get dirty if the user has made modifications to the contents. + * @example + * if (tinymce.activeEditor.isDirty()) + * alert("You must save your contents."); + */ + isDirty: function() { + return !this.isNotDirty; + }, + + /** + * Returns the editors container element. The container element wrappes in + * all the elements added to the page for the editor. Such as UI, iframe etc. + * + * @method getContainer + * @return {Element} HTML DOM element for the editor container. + */ + getContainer: function() { + var self = this; + + if (!self.container) { + self.container = DOM.get(self.editorContainer || self.id + '_parent'); + } + + return self.container; + }, + + /** + * Returns the editors content area container element. The this element is the one who + * holds the iframe or the editable element. + * + * @method getContentAreaContainer + * @return {Element} HTML DOM element for the editor area container. + */ + getContentAreaContainer: function() { + return this.contentAreaContainer; + }, + + /** + * Returns the target element/textarea that got replaced with a TinyMCE editor instance. + * + * @method getElement + * @return {Element} HTML DOM element for the replaced element. + */ + getElement: function() { + return DOM.get(this.settings.content_element || this.id); + }, + + /** + * Returns the iframes window object. + * + * @method getWin + * @return {Window} Iframe DOM window object. + */ + getWin: function() { + var self = this, elm; + + if (!self.contentWindow) { + elm = DOM.get(self.id + "_ifr"); + + if (elm) { + self.contentWindow = elm.contentWindow; + } + } + + return self.contentWindow; + }, + + /** + * Returns the iframes document object. + * + * @method getDoc + * @return {Document} Iframe DOM document object. + */ + getDoc: function() { + var self = this, win; + + if (!self.contentDocument) { + win = self.getWin(); + + if (win) { + self.contentDocument = win.document; + } + } + + return self.contentDocument; + }, + + /** + * Returns the iframes body element. + * + * @method getBody + * @return {Element} Iframe body element. + */ + getBody: function() { + return this.bodyElement || this.getDoc().body; + }, + + /** + * URL converter function this gets executed each time a user adds an img, a or + * any other element that has a URL in it. This will be called both by the DOM and HTML + * manipulation functions. + * + * @method convertURL + * @param {string} url URL to convert. + * @param {string} name Attribute name src, href etc. + * @param {string/HTMLElement} elm Tag name or HTML DOM element depending on HTML or DOM insert. + * @return {string} Converted URL string. + */ + convertURL: function(url, name, elm) { + var self = this, settings = self.settings; + + // Use callback instead + if (settings.urlconverter_callback) { + return self.execCallback('urlconverter_callback', url, elm, true, name); + } + + // Don't convert link href since thats the CSS files that gets loaded into the editor also skip local file URLs + if (!settings.convert_urls || (elm && elm.nodeName == 'LINK') || url.indexOf('file:') === 0 || url.length === 0) { + return url; + } + + // Convert to relative + if (settings.relative_urls) { + return self.documentBaseURI.toRelative(url); + } + + // Convert to absolute + url = self.documentBaseURI.toAbsolute(url, settings.remove_script_host); + + return url; + }, + + /** + * Adds visual aid for tables, anchors etc so they can be more easily edited inside the editor. + * + * @method addVisual + * @param {Element} elm Optional root element to loop though to find tables etc that needs the visual aid. + */ + addVisual: function(elm) { + var self = this, settings = self.settings, dom = self.dom, cls; + + elm = elm || self.getBody(); + + if (self.hasVisual === undefined) { + self.hasVisual = settings.visual; + } + + each(dom.select('table,a', elm), function(elm) { + var value; + + switch (elm.nodeName) { + case 'TABLE': + cls = settings.visual_table_class || 'mce-item-table'; + value = dom.getAttrib(elm, 'border'); + + if (!value || value == '0') { + if (self.hasVisual) { + dom.addClass(elm, cls); + } else { + dom.removeClass(elm, cls); + } + } + + return; + + case 'A': + if (!dom.getAttrib(elm, 'href', false)) { + value = dom.getAttrib(elm, 'name') || elm.id; + cls = settings.visual_anchor_class || 'mce-item-anchor'; + + if (value) { + if (self.hasVisual) { + dom.addClass(elm, cls); + } else { + dom.removeClass(elm, cls); + } + } + } + + return; + } + }); + + self.fire('VisualAid', {element: elm, hasVisual: self.hasVisual}); + }, + + /** + * Removes the editor from the dom and tinymce collection. + * + * @method remove + */ + remove: function() { + var self = this; + + if (!self.removed) { + self.save(); + self.fire('remove'); + self.off(); + self.removed = 1; // Cancels post remove event execution + + // Remove any hidden input + if (self.hasHiddenInput) { + DOM.remove(self.getElement().nextSibling); + } + + DOM.setStyle(self.id, 'display', self.orgDisplay); + + // Don't clear the window or document if content editable + // is enabled since other instances might still be present + if (!self.settings.content_editable) { + Event.unbind(self.getWin()); + Event.unbind(self.getDoc()); + } + + var elm = self.getContainer(); + Event.unbind(self.getBody()); + Event.unbind(elm); + + self.editorManager.remove(self); + DOM.remove(elm); + self.destroy(); + } + }, + + bindNative: function(name) { + var self = this; + + if (self.settings.readonly) { + return; + } + + if (self.initialized) { + self.dom.bind(getEventTarget(self, name), name, function(e) { + self.fire(name, e); + }); + } else { + if (!self._pendingNativeEvents) { + self._pendingNativeEvents = [name]; + } else { + self._pendingNativeEvents.push(name); + } + } + }, + + unbindNative: function(name) { + var self = this; + + if (self.initialized) { + self.dom.unbind(name); + } + }, + + /** + * Destroys the editor instance by removing all events, element references or other resources + * that could leak memory. This method will be called automatically when the page is unloaded + * but you can also call it directly if you know what you are doing. + * + * @method destroy + * @param {Boolean} automatic Optional state if the destroy is an automatic destroy or user called one. + */ + destroy: function(automatic) { + var self = this, form; + + // One time is enough + if (self.destroyed) { + return; + } + + // If user manually calls destroy and not remove + // Users seems to have logic that calls destroy instead of remove + if (!automatic && !self.removed) { + self.remove(); + return; + } + + // We must unbind on Gecko since it would otherwise produce the pesky "attempt + // to run compile-and-go script on a cleared scope" message + if (automatic && isGecko) { + Event.unbind(self.getDoc()); + Event.unbind(self.getWin()); + Event.unbind(self.getBody()); + } + + if (!automatic) { + self.editorManager.off('beforeunload', self._beforeUnload); + + // Manual destroy + if (self.theme && self.theme.destroy) { + self.theme.destroy(); + } + + // Destroy controls, selection and dom + self.selection.destroy(); + self.dom.destroy(); + } + + form = self.formElement; + if (form) { + if (form._mceOldSubmit) { + form.submit = form._mceOldSubmit; + form._mceOldSubmit = null; + } + + DOM.unbind(form, 'submit reset', self.formEventDelegate); + } + + self.contentAreaContainer = self.formElement = self.container = self.editorContainer = null; + self.settings.content_element = self.bodyElement = self.contentDocument = self.contentWindow = null; + + if (self.selection) { + self.selection = self.selection.win = self.selection.dom = self.selection.dom.doc = null; + } + + self.destroyed = 1; + }, + + // Internal functions + + _refreshContentEditable: function() { + var self = this, body, parent; + + // Check if the editor was hidden and the re-initalize contentEditable mode by removing and adding the body again + if (self._isHidden()) { + body = self.getBody(); + parent = body.parentNode; + + parent.removeChild(body); + parent.appendChild(body); + + body.focus(); + } + }, + + _isHidden: function() { + var sel; + + if (!isGecko) { + return 0; + } + + // Weird, wheres that cursor selection? + sel = this.selection.getSel(); + return (!sel || !sel.rangeCount || sel.rangeCount === 0); + } + }; + + extend(Editor.prototype, Observable); + + return Editor; +}); + +// Included from: js/tinymce/classes/util/I18n.js + +/** + * I18n.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * I18n class that handles translation of TinyMCE UI. + * Uses po style with csharp style parameters. + * + * @class tinymce.util.I18n + */ +define("tinymce/util/I18n", [], function() { + "use strict"; + + var data = {}; + + return { + /** + * Property gets set to true if a RTL language pack was loaded. + * + * @property rtl + * @type Boolean + */ + rtl: false, + + /** + * Adds translations for a specific language code. + * + * @method add + * @param {String} code Language code like sv_SE. + * @param {Array} items Name/value array with English en_US to sv_SE. + */ + add: function(code, items) { + for (var name in items) { + data[name] = items[name]; + } + + this.rtl = this.rtl || data._dir === 'rtl'; + }, + + /** + * Translates the specified text. + * + * It has a few formats: + * I18n.translate("Text"); + * I18n.translate(["Text {0}/{1}", 0, 1]); + * I18n.translate({raw: "Raw string"}); + * + * @method translate + * @param {String/Object/Array} text Text to translate. + * @return {String} String that got translated. + */ + translate: function(text) { + if (typeof(text) == "undefined") { + return text; + } + + if (typeof(text) != "string" && text.raw) { + return text.raw; + } + + if (text.push) { + var values = text.slice(1); + + text = (data[text[0]] || text[0]).replace(/\{([^\}]+)\}/g, function(match1, match2) { + return values[match2]; + }); + } + + return data[text] || text; + }, + + data: data + }; +}); + +// Included from: js/tinymce/classes/FocusManager.js + +/** + * FocusManager.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class manages the focus/blur state of the editor. This class is needed since some + * browsers fire false focus/blur states when the selection is moved to a UI dialog or similar. + * + * This class will fire two events focus and blur on the editor instances that got affected. + * It will also handle the restore of selection when the focus is lost and returned. + * + * @class tinymce.FocusManager + */ +define("tinymce/FocusManager", [ + "tinymce/dom/DOMUtils", + "tinymce/Env" +], function(DOMUtils, Env) { + var selectionChangeHandler, documentFocusInHandler, DOM = DOMUtils.DOM; + + /** + * Constructs a new focus manager instance. + * + * @constructor FocusManager + * @param {tinymce.EditorManager} editorManager Editor manager instance to handle focus for. + */ + function FocusManager(editorManager) { + function getActiveElement() { + try { + return document.activeElement; + } catch (ex) { + // IE sometimes fails to get the activeElement when resizing table + // TODO: Investigate this + return document.body; + } + } + + // We can't store a real range on IE 11 since it gets mutated so we need to use a bookmark object + // TODO: Move this to a separate range utils class since it's it's logic is present in Selection as well. + function createBookmark(rng) { + if (rng && rng.startContainer) { + return { + startContainer: rng.startContainer, + startOffset: rng.startOffset, + endContainer: rng.endContainer, + endOffset: rng.endOffset + }; + } + + return rng; + } + + function bookmarkToRng(editor, bookmark) { + var rng; + + if (bookmark.startContainer) { + rng = editor.getDoc().createRange(); + rng.setStart(bookmark.startContainer, bookmark.startOffset); + rng.setEnd(bookmark.endContainer, bookmark.endOffset); + } else { + rng = bookmark; + } + + return rng; + } + + function isUIElement(elm) { + return !!DOM.getParent(elm, FocusManager.isEditorUIElement); + } + + function isNodeInBodyOfEditor(node, editor) { + var body = editor.getBody(); + + while (node) { + if (node == body) { + return true; + } + + node = node.parentNode; + } + } + + function registerEvents(e) { + var editor = e.editor; + + editor.on('init', function() { + // Gecko/WebKit has ghost selections in iframes and IE only has one selection per browser tab + if (editor.inline || Env.ie) { + // On other browsers take snapshot on nodechange in inline mode since they have Ghost selections for iframes + editor.on('nodechange keyup', function() { + var node = document.activeElement; + + // IE 11 reports active element as iframe not body of iframe + if (node && node.id == editor.id + '_ifr') { + node = editor.getBody(); + } + + if (isNodeInBodyOfEditor(node, editor)) { + editor.lastRng = editor.selection.getRng(); + } + }); + + // Handles the issue with WebKit not retaining selection within inline document + // If the user releases the mouse out side the body since a mouse up event wont occur on the body + if (Env.webkit && !selectionChangeHandler) { + selectionChangeHandler = function() { + var activeEditor = editorManager.activeEditor; + + if (activeEditor && activeEditor.selection) { + var rng = activeEditor.selection.getRng(); + + // Store when it's non collapsed + if (rng && !rng.collapsed) { + editor.lastRng = rng; + } + } + }; + + DOM.bind(document, 'selectionchange', selectionChangeHandler); + } + } + }); + + editor.on('setcontent', function() { + editor.lastRng = null; + }); + + // Remove last selection bookmark on mousedown see #6305 + editor.on('mousedown', function() { + editor.selection.lastFocusBookmark = null; + }); + + editor.on('focusin', function() { + var focusedEditor = editorManager.focusedEditor; + + if (editor.selection.lastFocusBookmark) { + editor.selection.setRng(bookmarkToRng(editor, editor.selection.lastFocusBookmark)); + editor.selection.lastFocusBookmark = null; + } + + if (focusedEditor != editor) { + if (focusedEditor) { + focusedEditor.fire('blur', {focusedEditor: editor}); + } + + editorManager.activeEditor = editor; + editorManager.focusedEditor = editor; + editor.fire('focus', {blurredEditor: focusedEditor}); + editor.focus(true); + } + + editor.lastRng = null; + }); + + editor.on('focusout', function() { + window.setTimeout(function() { + var focusedEditor = editorManager.focusedEditor; + + // Still the same editor the the blur was outside any editor UI + if (!isUIElement(getActiveElement()) && focusedEditor == editor) { + editor.fire('blur', {focusedEditor: null}); + editorManager.focusedEditor = null; + + // Make sure selection is valid could be invalid if the editor is blured and removed before the timeout occurs + if (editor.selection) { + editor.selection.lastFocusBookmark = null; + } + } + }, 0); + }); + + if (!documentFocusInHandler) { + documentFocusInHandler = function(e) { + var activeEditor = editorManager.activeEditor; + + if (activeEditor && e.target.ownerDocument == document) { + // Check to make sure we have a valid selection + if (activeEditor.selection) { + activeEditor.selection.lastFocusBookmark = createBookmark(activeEditor.lastRng); + } + + // Fire a blur event if the element isn't a UI element + if (!isUIElement(e.target) && editorManager.focusedEditor == activeEditor) { + activeEditor.fire('blur', {focusedEditor: null}); + editorManager.focusedEditor = null; + } + } + }; + + // Check if focus is moved to an element outside the active editor by checking if the target node + // isn't within the body of the activeEditor nor a UI element such as a dialog child control + DOM.bind(document, 'focusin', documentFocusInHandler); + } + } + + function unregisterDocumentEvents(e) { + if (editorManager.focusedEditor == e.editor) { + editorManager.focusedEditor = null; + } + + if (!editorManager.activeEditor) { + DOM.unbind(document, 'selectionchange', selectionChangeHandler); + DOM.unbind(document, 'focusin', documentFocusInHandler); + selectionChangeHandler = documentFocusInHandler = null; + } + } + + editorManager.on('AddEditor', registerEvents); + editorManager.on('RemoveEditor', unregisterDocumentEvents); + } + + /** + * Returns true if the specified element is part of the UI for example an button or text input. + * + * @method isEditorUIElement + * @param {Element} elm Element to check if it's part of the UI or not. + * @return {Boolean} True/false state if the element is part of the UI or not. + */ + FocusManager.isEditorUIElement = function(elm) { + // Needs to be converted to string since svg can have focus: #6776 + return elm.className.toString().indexOf('mce-') !== -1; + }; + + return FocusManager; +}); + +// Included from: js/tinymce/classes/EditorManager.js + +/** + * EditorManager.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class used as a factory for manager for tinymce.Editor instances. + * + * @example + * tinymce.EditorManager.init({}); + * + * @class tinymce.EditorManager + * @mixes tinymce.util.Observable + * @static + */ +define("tinymce/EditorManager", [ + "tinymce/Editor", + "tinymce/dom/DOMUtils", + "tinymce/util/URI", + "tinymce/Env", + "tinymce/util/Tools", + "tinymce/util/Observable", + "tinymce/util/I18n", + "tinymce/FocusManager" +], function(Editor, DOMUtils, URI, Env, Tools, Observable, I18n, FocusManager) { + var DOM = DOMUtils.DOM; + var explode = Tools.explode, each = Tools.each, extend = Tools.extend; + var instanceCounter = 0, beforeUnloadDelegate; + + var EditorManager = { + /** + * Major version of TinyMCE build. + * + * @property majorVersion + * @type String + */ + majorVersion : '4', + + /** + * Minor version of TinyMCE build. + * + * @property minorVersion + * @type String + */ + minorVersion : '0.20', + + /** + * Release date of TinyMCE build. + * + * @property releaseDate + * @type String + */ + releaseDate: '2014-03-18', + + /** + * Collection of editor instances. + * + * @property editors + * @type Object + * @example + * for (edId in tinymce.editors) + * tinymce.editors[edId].save(); + */ + editors: [], + + /** + * Collection of language pack data. + * + * @property i18n + * @type Object + */ + i18n: I18n, + + /** + * Currently active editor instance. + * + * @property activeEditor + * @type tinymce.Editor + * @example + * tinyMCE.activeEditor.selection.getContent(); + * tinymce.EditorManager.activeEditor.selection.getContent(); + */ + activeEditor: null, + + setup: function() { + var self = this, baseURL, documentBaseURL, suffix = "", preInit; + + // Get base URL for the current document + documentBaseURL = document.location.href.replace(/[\?#].*$/, '').replace(/[\/\\][^\/]+$/, ''); + if (!/[\/\\]$/.test(documentBaseURL)) { + documentBaseURL += '/'; + } + + // If tinymce is defined and has a base use that or use the old tinyMCEPreInit + preInit = window.tinymce || window.tinyMCEPreInit; + if (preInit) { + baseURL = preInit.base || preInit.baseURL; + suffix = preInit.suffix; + } else { + // Get base where the tinymce script is located + var scripts = document.getElementsByTagName('script'); + for (var i = 0; i < scripts.length; i++) { + var src = scripts[i].src; + + // Script types supported: + // tinymce.js tinymce.min.js tinymce.dev.js + // tinymce.jquery.js tinymce.jquery.min.js tinymce.jquery.dev.js + // tinymce.full.js tinymce.full.min.js tinymce.full.dev.js + if (/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(src)) { + if (src.indexOf('.min') != -1) { + suffix = '.min'; + } + + baseURL = src.substring(0, src.lastIndexOf('/')); + break; + } + } + } + + /** + * Base URL where the root directory if TinyMCE is located. + * + * @property baseURL + * @type String + */ + self.baseURL = new URI(documentBaseURL).toAbsolute(baseURL); + + /** + * Document base URL where the current document is located. + * + * @property documentBaseURL + * @type String + */ + self.documentBaseURL = documentBaseURL; + + /** + * Absolute baseURI for the installation path of TinyMCE. + * + * @property baseURI + * @type tinymce.util.URI + */ + self.baseURI = new URI(self.baseURL); + + /** + * Current suffix to add to each plugin/theme that gets loaded for example ".min". + * + * @property suffix + * @type String + */ + self.suffix = suffix; + + self.focusManager = new FocusManager(self); + }, + + /** + * Initializes a set of editors. This method will create editors based on various settings. + * + * @method init + * @param {Object} settings Settings object to be passed to each editor instance. + * @example + * // Initializes a editor using the longer method + * tinymce.EditorManager.init({ + * some_settings : 'some value' + * }); + * + * // Initializes a editor instance using the shorter version + * tinyMCE.init({ + * some_settings : 'some value' + * }); + */ + init: function(settings) { + var self = this, editors = [], editor; + + function createId(elm) { + var id = elm.id; + + // Use element id, or unique name or generate a unique id + if (!id) { + id = elm.name; + + if (id && !DOM.get(id)) { + id = elm.name; + } else { + // Generate unique name + id = DOM.uniqueId(); + } + + elm.setAttribute('id', id); + } + + return id; + } + + function execCallback(se, n, s) { + var f = se[n]; + + if (!f) { + return; + } + + return f.apply(s || this, Array.prototype.slice.call(arguments, 2)); + } + + function hasClass(n, c) { + return c.constructor === RegExp ? c.test(n.className) : DOM.hasClass(n, c); + } + + function readyHandler() { + var l, co; + + DOM.unbind(window, 'ready', readyHandler); + + execCallback(settings, 'onpageload'); + + if (settings.types) { + // Process type specific selector + each(settings.types, function(type) { + each(DOM.select(type.selector), function(elm) { + var editor = new Editor(createId(elm), extend({}, settings, type), self); + editors.push(editor); + editor.render(1); + }); + }); + + return; + } else if (settings.selector) { + // Process global selector + each(DOM.select(settings.selector), function(elm) { + var editor = new Editor(createId(elm), settings, self); + editors.push(editor); + editor.render(1); + }); + + return; + } + + // Fallback to old setting + switch (settings.mode) { + case "exact": + l = settings.elements || ''; + + if(l.length > 0) { + each(explode(l), function(v) { + if (DOM.get(v)) { + editor = new Editor(v, settings, self); + editors.push(editor); + editor.render(true); + } else { + each(document.forms, function(f) { + each(f.elements, function(e) { + if (e.name === v) { + v = 'mce_editor_' + instanceCounter++; + DOM.setAttrib(e, 'id', v); + + editor = new Editor(v, settings, self); + editors.push(editor); + editor.render(1); + } + }); + }); + } + }); + } + break; + + case "textareas": + case "specific_textareas": + each(DOM.select('textarea'), function(elm) { + if (settings.editor_deselector && hasClass(elm, settings.editor_deselector)) { + return; + } + + if (!settings.editor_selector || hasClass(elm, settings.editor_selector)) { + editor = new Editor(createId(elm), settings, self); + editors.push(editor); + editor.render(true); + } + }); + break; + } + + // Call onInit when all editors are initialized + if (settings.oninit) { + l = co = 0; + + each(editors, function(ed) { + co++; + + if (!ed.initialized) { + // Wait for it + ed.on('init', function() { + l++; + + // All done + if (l == co) { + execCallback(settings, 'oninit'); + } + }); + } else { + l++; + } + + // All done + if (l == co) { + execCallback(settings, 'oninit'); + } + }); + } + } + + self.settings = settings; + + DOM.bind(window, 'ready', readyHandler); + }, + + /** + * Returns a editor instance by id. + * + * @method get + * @param {String/Number} id Editor instance id or index to return. + * @return {tinymce.Editor} Editor instance to return. + * @example + * // Adds an onclick event to an editor by id (shorter version) + * tinymce.get('mytextbox').on('click', function(e) { + * ed.windowManager.alert('Hello world!'); + * }); + * + * // Adds an onclick event to an editor by id (longer version) + * tinymce.EditorManager.get('mytextbox').on('click', function(e) { + * ed.windowManager.alert('Hello world!'); + * }); + */ + get: function(id) { + if (id === undefined) { + return this.editors; + } + + return this.editors[id]; + }, + + /** + * Adds an editor instance to the editor collection. This will also set it as the active editor. + * + * @method add + * @param {tinymce.Editor} editor Editor instance to add to the collection. + * @return {tinymce.Editor} The same instance that got passed in. + */ + add: function(editor) { + var self = this, editors = self.editors; + + // Add named and index editor instance + editors[editor.id] = editor; + editors.push(editor); + + self.activeEditor = editor; + + /** + * Fires when an editor is added to the EditorManager collection. + * + * @event AddEditor + * @param {Object} e Event arguments. + */ + self.fire('AddEditor', {editor: editor}); + + if (!beforeUnloadDelegate) { + beforeUnloadDelegate = function() { + self.fire('BeforeUnload'); + }; + + DOM.bind(window, 'beforeunload', beforeUnloadDelegate); + } + + return editor; + }, + + /** + * Creates an editor instance and adds it to the EditorManager collection. + * + * @method createEditor + * @param {String} id Instance id to use for editor. + * @param {Object} settings Editor instance settings. + * @return {tinymce.Editor} Editor instance that got created. + */ + createEditor: function(id, settings) { + return this.add(new Editor(id, settings, this)); + }, + + /** + * Removes a editor or editors form page. + * + * @example + * // Remove all editors bound to divs + * tinymce.remove('div'); + * + * // Remove all editors bound to textareas + * tinymce.remove('textarea'); + * + * // Remove all editors + * tinymce.remove(); + * + * // Remove specific instance by id + * tinymce.remove('#id'); + * + * @method remove + * @param {tinymce.Editor/String/Object} [selector] CSS selector or editor instance to remove. + * @return {tinymce.Editor} The editor that got passed in will be return if it was found otherwise null. + */ + remove: function(selector) { + var self = this, i, editors = self.editors, editor, removedFromList; + + // Remove all editors + if (!selector) { + for (i = editors.length - 1; i >= 0; i--) { + self.remove(editors[i]); + } + + return; + } + + // Remove editors by selector + if (typeof(selector) == "string") { + selector = selector.selector || selector; + + each(DOM.select(selector), function(elm) { + self.remove(editors[elm.id]); + }); + + return; + } + + // Remove specific editor + editor = selector; + + // Not in the collection + if (!editors[editor.id]) { + return null; + } + + delete editors[editor.id]; + + for (i = 0; i < editors.length; i++) { + if (editors[i] == editor) { + editors.splice(i, 1); + removedFromList = true; + break; + } + } + + // Select another editor since the active one was removed + if (self.activeEditor == editor) { + self.activeEditor = editors[0]; + } + + /** + * Fires when an editor is removed from EditorManager collection. + * + * @event RemoveEditor + * @param {Object} e Event arguments. + */ + if (removedFromList) { + self.fire('RemoveEditor', {editor: editor}); + } + + if (!editors.length) { + DOM.unbind(window, 'beforeunload', beforeUnloadDelegate); + } + + editor.remove(); + + return editor; + }, + + /** + * Executes a specific command on the currently active editor. + * + * @method execCommand + * @param {String} c Command to perform for example Bold. + * @param {Boolean} u Optional boolean state if a UI should be presented for the command or not. + * @param {String} v Optional value parameter like for example an URL to a link. + * @return {Boolean} true/false if the command was executed or not. + */ + execCommand: function(cmd, ui, value) { + var self = this, editor = self.get(value); + + // Manager commands + switch (cmd) { + case "mceAddEditor": + if (!self.get(value)) { + new Editor(value, self.settings, self).render(); + } + + return true; + + case "mceRemoveEditor": + if (editor) { + editor.remove(); + } + + return true; + + case 'mceToggleEditor': + if (!editor) { + self.execCommand('mceAddEditor', 0, value); + return true; + } + + if (editor.isHidden()) { + editor.show(); + } else { + editor.hide(); + } + + return true; + } + + // Run command on active editor + if (self.activeEditor) { + return self.activeEditor.execCommand(cmd, ui, value); + } + + return false; + }, + + /** + * Calls the save method on all editor instances in the collection. This can be useful when a form is to be submitted. + * + * @method triggerSave + * @example + * // Saves all contents + * tinyMCE.triggerSave(); + */ + triggerSave: function() { + each(this.editors, function(editor) { + editor.save(); + }); + }, + + /** + * Adds a language pack, this gets called by the loaded language files like en.js. + * + * @method addI18n + * @param {String} code Optional language code. + * @param {Object} items Name/value object with translations. + */ + addI18n: function(code, items) { + I18n.add(code, items); + }, + + /** + * Translates the specified string using the language pack items. + * + * @method translate + * @param {String/Array/Object} text String to translate + * @return {String} Translated string. + */ + translate: function(text) { + return I18n.translate(text); + } + }; + + extend(EditorManager, Observable); + + EditorManager.setup(); + + // Export EditorManager as tinymce/tinymce in global namespace + window.tinymce = window.tinyMCE = EditorManager; + + return EditorManager; +}); + +// Included from: js/tinymce/classes/LegacyInput.js + +/** + * LegacyInput.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +define("tinymce/LegacyInput", [ + "tinymce/EditorManager", + "tinymce/util/Tools" +], function(EditorManager, Tools) { + var each = Tools.each, explode = Tools.explode; + + EditorManager.on('AddEditor', function(e) { + var editor = e.editor; + + editor.on('preInit', function() { + var filters, fontSizes, dom, settings = editor.settings; + + function replaceWithSpan(node, styles) { + each(styles, function(value, name) { + if (value) { + dom.setStyle(node, name, value); + } + }); + + dom.rename(node, 'span'); + } + + function convert(e) { + dom = editor.dom; + + if (settings.convert_fonts_to_spans) { + each(dom.select('font,u,strike', e.node), function(node) { + filters[node.nodeName.toLowerCase()](dom, node); + }); + } + } + + if (settings.inline_styles) { + fontSizes = explode(settings.font_size_legacy_values); + + filters = { + font: function(dom, node) { + replaceWithSpan(node, { + backgroundColor: node.style.backgroundColor, + color: node.color, + fontFamily: node.face, + fontSize: fontSizes[parseInt(node.size, 10) - 1] + }); + }, + + u: function(dom, node) { + replaceWithSpan(node, { + textDecoration: 'underline' + }); + }, + + strike: function(dom, node) { + replaceWithSpan(node, { + textDecoration: 'line-through' + }); + } + }; + + editor.on('PreProcess SetContent', convert); + } + }); + }); +}); + +// Included from: js/tinymce/classes/util/XHR.js + +/** + * XHR.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class enables you to send XMLHTTPRequests cross browser. + * @class tinymce.util.XHR + * @static + * @example + * // Sends a low level Ajax request + * tinymce.util.XHR.send({ + * url: 'someurl', + * success: function(text) { + * console.debug(text); + * } + * }); + */ +define("tinymce/util/XHR", [], function() { + return { + /** + * Sends a XMLHTTPRequest. + * Consult the Wiki for details on what settings this method takes. + * + * @method send + * @param {Object} settings Object will target URL, callbacks and other info needed to make the request. + */ + send: function(settings) { + var xhr, count = 0; + + function ready() { + if (!settings.async || xhr.readyState == 4 || count++ > 10000) { + if (settings.success && count < 10000 && xhr.status == 200) { + settings.success.call(settings.success_scope, '' + xhr.responseText, xhr, settings); + } else if (settings.error) { + settings.error.call(settings.error_scope, count > 10000 ? 'TIMED_OUT' : 'GENERAL', xhr, settings); + } + + xhr = null; + } else { + setTimeout(ready, 10); + } + } + + // Default settings + settings.scope = settings.scope || this; + settings.success_scope = settings.success_scope || settings.scope; + settings.error_scope = settings.error_scope || settings.scope; + settings.async = settings.async === false ? false : true; + settings.data = settings.data || ''; + + xhr = new XMLHttpRequest(); + + if (xhr) { + if (xhr.overrideMimeType) { + xhr.overrideMimeType(settings.content_type); + } + + xhr.open(settings.type || (settings.data ? 'POST' : 'GET'), settings.url, settings.async); + + if (settings.content_type) { + xhr.setRequestHeader('Content-Type', settings.content_type); + } + + xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); + + xhr.send(settings.data); + + // Syncronous request + if (!settings.async) { + return ready(); + } + + // Wait for response, onReadyStateChange can not be used since it leaks memory in IE + setTimeout(ready, 10); + } + } + }; +}); + +// Included from: js/tinymce/classes/util/JSON.js + +/** + * JSON.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * JSON parser and serializer class. + * + * @class tinymce.util.JSON + * @static + * @example + * // JSON parse a string into an object + * var obj = tinymce.util.JSON.parse(somestring); + * + * // JSON serialize a object into an string + * var str = tinymce.util.JSON.serialize(obj); + */ +define("tinymce/util/JSON", [], function() { + function serialize(o, quote) { + var i, v, t, name; + + quote = quote || '"'; + + if (o === null) { + return 'null'; + } + + t = typeof o; + + if (t == 'string') { + v = '\bb\tt\nn\ff\rr\""\'\'\\\\'; + + return quote + o.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g, function(a, b) { + // Make sure single quotes never get encoded inside double quotes for JSON compatibility + if (quote === '"' && a === "'") { + return a; + } + + i = v.indexOf(b); + + if (i + 1) { + return '\\' + v.charAt(i + 1); + } + + a = b.charCodeAt().toString(16); + + return '\\u' + '0000'.substring(a.length) + a; + }) + quote; + } + + if (t == 'object') { + if (o.hasOwnProperty && Object.prototype.toString.call(o) === '[object Array]') { + for (i = 0, v = '['; i < o.length; i++) { + v += (i > 0 ? ',' : '') + serialize(o[i], quote); + } + + return v + ']'; + } + + v = '{'; + + for (name in o) { + if (o.hasOwnProperty(name)) { + v += typeof o[name] != 'function' ? (v.length > 1 ? ',' + quote : quote) + name + + quote + ':' + serialize(o[name], quote) : ''; + } + } + + return v + '}'; + } + + return '' + o; + } + + return { + /** + * Serializes the specified object as a JSON string. + * + * @method serialize + * @param {Object} obj Object to serialize as a JSON string. + * @param {String} quote Optional quote string defaults to ". + * @return {string} JSON string serialized from input. + */ + serialize: serialize, + + /** + * Unserializes/parses the specified JSON string into a object. + * + * @method parse + * @param {string} s JSON String to parse into a JavaScript object. + * @return {Object} Object from input JSON string or undefined if it failed. + */ + parse: function(text) { + try { + // Trick uglify JS + return window[String.fromCharCode(101) + 'val']('(' + text + ')'); + } catch (ex) { + // Ignore + } + } + + /**#@-*/ + }; +}); + +// Included from: js/tinymce/classes/util/JSONRequest.js + +/** + * JSONRequest.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class enables you to use JSON-RPC to call backend methods. + * + * @class tinymce.util.JSONRequest + * @example + * var json = new tinymce.util.JSONRequest({ + * url: 'somebackend.php' + * }); + * + * // Send RPC call 1 + * json.send({ + * method: 'someMethod1', + * params: ['a', 'b'], + * success: function(result) { + * console.dir(result); + * } + * }); + * + * // Send RPC call 2 + * json.send({ + * method: 'someMethod2', + * params: ['a', 'b'], + * success: function(result) { + * console.dir(result); + * } + * }); + */ +define("tinymce/util/JSONRequest", [ + "tinymce/util/JSON", + "tinymce/util/XHR", + "tinymce/util/Tools" +], function(JSON, XHR, Tools) { + var extend = Tools.extend; + + function JSONRequest(settings) { + this.settings = extend({}, settings); + this.count = 0; + } + + /** + * Simple helper function to send a JSON-RPC request without the need to initialize an object. + * Consult the Wiki API documentation for more details on what you can pass to this function. + * + * @method sendRPC + * @static + * @param {Object} o Call object where there are three field id, method and params this object should also contain callbacks etc. + */ + JSONRequest.sendRPC = function(o) { + return new JSONRequest().send(o); + }; + + JSONRequest.prototype = { + /** + * Sends a JSON-RPC call. Consult the Wiki API documentation for more details on what you can pass to this function. + * + * @method send + * @param {Object} args Call object where there are three field id, method and params this object should also contain callbacks etc. + */ + send: function(args) { + var ecb = args.error, scb = args.success; + + args = extend(this.settings, args); + + args.success = function(c, x) { + c = JSON.parse(c); + + if (typeof(c) == 'undefined') { + c = { + error : 'JSON Parse error.' + }; + } + + if (c.error) { + ecb.call(args.error_scope || args.scope, c.error, x); + } else { + scb.call(args.success_scope || args.scope, c.result); + } + }; + + args.error = function(ty, x) { + if (ecb) { + ecb.call(args.error_scope || args.scope, ty, x); + } + }; + + args.data = JSON.serialize({ + id: args.id || 'c' + (this.count++), + method: args.method, + params: args.params + }); + + // JSON content type for Ruby on rails. Bug: #1883287 + args.content_type = 'application/json'; + + XHR.send(args); + } + }; + + return JSONRequest; +}); + +// Included from: js/tinymce/classes/util/JSONP.js + +/** + * JSONP.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +define("tinymce/util/JSONP", [ + "tinymce/dom/DOMUtils" +], function(DOMUtils) { + return { + callbacks: {}, + count: 0, + + send: function(settings) { + var self = this, dom = DOMUtils.DOM, count = settings.count !== undefined ? settings.count : self.count; + var id = 'tinymce_jsonp_' + count; + + self.callbacks[count] = function(json) { + dom.remove(id); + delete self.callbacks[count]; + + settings.callback(json); + }; + + dom.add(dom.doc.body, 'script', { + id: id, + src: settings.url, + type: 'text/javascript' + }); + + self.count++; + } + }; +}); + +// Included from: js/tinymce/classes/util/LocalStorage.js + +/** + * LocalStorage.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class will simulate LocalStorage on IE 7 and return the native version on modern browsers. + * Storage is done using userData on IE 7 and a special serialization format. The format is designed + * to be as small as possible by making sure that the keys and values doesn't need to be encoded. This + * makes it possible to store for example HTML data. + * + * Storage format for userData: + * <base 32 key length>,<key string>,<base 32 value length>,<value>,... + * + * For example this data key1=value1,key2=value2 would be: + * 4,key1,6,value1,4,key2,6,value2 + * + * @class tinymce.util.LocalStorage + * @static + * @version 4.0 + * @example + * tinymce.util.LocalStorage.setItem('key', 'value'); + * var value = tinymce.util.LocalStorage.getItem('key'); + */ +define("tinymce/util/LocalStorage", [], function() { + var LocalStorage, storageElm, items, keys, userDataKey, hasOldIEDataSupport; + + // Check for native support + try { + if (window.localStorage) { + return localStorage; + } + } catch (ex) { + // Ignore + } + + userDataKey = "tinymce"; + storageElm = document.documentElement; + hasOldIEDataSupport = !!storageElm.addBehavior; + + if (hasOldIEDataSupport) { + storageElm.addBehavior('#default#userData'); + } + + /** + * Gets the keys names and updates LocalStorage.length property. Since IE7 doesn't have any getters/setters. + */ + function updateKeys() { + keys = []; + + for (var key in items) { + keys.push(key); + } + + LocalStorage.length = keys.length; + } + + /** + * Loads the userData string and parses it into the items structure. + */ + function load() { + var key, data, value, pos = 0; + + items = {}; + + // localStorage can be disabled on WebKit/Gecko so make a dummy storage + if (!hasOldIEDataSupport) { + return; + } + + function next(end) { + var value, nextPos; + + nextPos = end !== undefined ? pos + end : data.indexOf(',', pos); + if (nextPos === -1 || nextPos > data.length) { + return null; + } + + value = data.substring(pos, nextPos); + pos = nextPos + 1; + + return value; + } + + storageElm.load(userDataKey); + data = storageElm.getAttribute(userDataKey) || ''; + + do { + var offset = next(); + if (offset === null) { + break; + } + + key = next(parseInt(offset, 32) || 0); + if (key !== null) { + offset = next(); + if (offset === null) { + break; + } + + value = next(parseInt(offset, 32) || 0); + + if (key) { + items[key] = value; + } + } + } while (key !== null); + + updateKeys(); + } + + /** + * Saves the items structure into a the userData format. + */ + function save() { + var value, data = ''; + + // localStorage can be disabled on WebKit/Gecko so make a dummy storage + if (!hasOldIEDataSupport) { + return; + } + + for (var key in items) { + value = items[key]; + data += (data ? ',' : '') + key.length.toString(32) + ',' + key + ',' + value.length.toString(32) + ',' + value; + } + + storageElm.setAttribute(userDataKey, data); + + try { + storageElm.save(userDataKey); + } catch (ex) { + // Ignore disk full + } + + updateKeys(); + } + + LocalStorage = { + /** + * Length of the number of items in storage. + * + * @property length + * @type Number + * @return {Number} Number of items in storage. + */ + //length:0, + + /** + * Returns the key name by index. + * + * @method key + * @param {Number} index Index of key to return. + * @return {String} Key value or null if it wasn't found. + */ + key: function(index) { + return keys[index]; + }, + + /** + * Returns the value if the specified key or null if it wasn't found. + * + * @method getItem + * @param {String} key Key of item to retrive. + * @return {String} Value of the specified item or null if it wasn't found. + */ + getItem: function(key) { + return key in items ? items[key] : null; + }, + + /** + * Sets the value of the specified item by it's key. + * + * @method setItem + * @param {String} key Key of the item to set. + * @param {String} value Value of the item to set. + */ + setItem: function(key, value) { + items[key] = "" + value; + save(); + }, + + /** + * Removes the specified item by key. + * + * @method removeItem + * @param {String} key Key of item to remove. + */ + removeItem: function(key) { + delete items[key]; + save(); + }, + + /** + * Removes all items. + * + * @method clear + */ + clear: function() { + items = {}; + save(); + } + }; + + load(); + + return LocalStorage; +}); + +// Included from: js/tinymce/classes/Compat.js + +/** + * Compat.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * TinyMCE core class. + * + * @static + * @class tinymce + * @borrow-members tinymce.EditorManager + * @borrow-members tinymce.util.Tools + */ +define("tinymce/Compat", [ + "tinymce/dom/DOMUtils", + "tinymce/dom/EventUtils", + "tinymce/dom/ScriptLoader", + "tinymce/AddOnManager", + "tinymce/util/Tools", + "tinymce/Env" +], function(DOMUtils, EventUtils, ScriptLoader, AddOnManager, Tools, Env) { + var tinymce = window.tinymce; + + /** + * @property {tinymce.dom.DOMUtils} DOM Global DOM instance. + * @property {tinymce.dom.ScriptLoader} ScriptLoader Global ScriptLoader instance. + * @property {tinymce.AddOnManager} PluginManager Global PluginManager instance. + * @property {tinymce.AddOnManager} ThemeManager Global ThemeManager instance. + */ + tinymce.DOM = DOMUtils.DOM; + tinymce.ScriptLoader = ScriptLoader.ScriptLoader; + tinymce.PluginManager = AddOnManager.PluginManager; + tinymce.ThemeManager = AddOnManager.ThemeManager; + + tinymce.dom = tinymce.dom || {}; + tinymce.dom.Event = EventUtils.Event; + + Tools.each(Tools, function(func, key) { + tinymce[key] = func; + }); + + Tools.each('isOpera isWebKit isIE isGecko isMac'.split(' '), function(name) { + tinymce[name] = Env[name.substr(2).toLowerCase()]; + }); + + return {}; +}); + +// Describe the different namespaces + +/** + * Root level namespace this contains classes directly releated to the TinyMCE editor. + * + * @namespace tinymce + */ + +/** + * Contains classes for handling the browsers DOM. + * + * @namespace tinymce.dom + */ + +/** + * Contains html parser and serializer logic. + * + * @namespace tinymce.html + */ + +/** + * Contains the different UI types such as buttons, listboxes etc. + * + * @namespace tinymce.ui + */ + +/** + * Contains various utility classes such as json parser, cookies etc. + * + * @namespace tinymce.util + */ + +// Included from: js/tinymce/classes/ui/Layout.js + +/** + * Layout.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Base layout manager class. + * + * @class tinymce.ui.Layout + */ +define("tinymce/ui/Layout", [ + "tinymce/util/Class", + "tinymce/util/Tools" +], function(Class, Tools) { + "use strict"; + + return Class.extend({ + Defaults: { + firstControlClass: 'first', + lastControlClass: 'last' + }, + + /** + * Constructs a layout instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + */ + init: function(settings) { + this.settings = Tools.extend({}, this.Defaults, settings); + }, + + /** + * This method gets invoked before the layout renders the controls. + * + * @method preRender + * @param {tinymce.ui.Container} container Container instance to preRender. + */ + preRender: function(container) { + container.addClass(this.settings.containerClass, 'body'); + }, + + /** + * Applies layout classes to the container. + * + * @private + */ + applyClasses: function(container) { + var self = this, settings = self.settings, items, firstClass, lastClass; + + items = container.items().filter(':visible'); + firstClass = settings.firstControlClass; + lastClass = settings.lastControlClass; + + items.each(function(item) { + item.removeClass(firstClass).removeClass(lastClass); + + if (settings.controlClass) { + item.addClass(settings.controlClass); + } + }); + + items.eq(0).addClass(firstClass); + items.eq(-1).addClass(lastClass); + }, + + /** + * Renders the specified container and any layout specific HTML. + * + * @method renderHtml + * @param {tinymce.ui.Container} container Container to render HTML for. + */ + renderHtml: function(container) { + var self = this, settings = self.settings, items, html = ''; + + items = container.items(); + items.eq(0).addClass(settings.firstControlClass); + items.eq(-1).addClass(settings.lastControlClass); + + items.each(function(item) { + if (settings.controlClass) { + item.addClass(settings.controlClass); + } + + html += item.renderHtml(); + }); + + return html; + }, + + /** + * Recalculates the positions of the controls in the specified container. + * + * @method recalc + * @param {tinymce.ui.Container} container Container instance to recalc. + */ + recalc: function() { + }, + + /** + * This method gets invoked after the layout renders the controls. + * + * @method postRender + * @param {tinymce.ui.Container} container Container instance to postRender. + */ + postRender: function() { + } + }); +}); + +// Included from: js/tinymce/classes/ui/AbsoluteLayout.js + +/** + * AbsoluteLayout.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * LayoutManager for absolute positioning. This layout manager is more of + * a base class for other layouts but can be created and used directly. + * + * @-x-less AbsoluteLayout.less + * @class tinymce.ui.AbsoluteLayout + * @extends tinymce.ui.Layout + */ +define("tinymce/ui/AbsoluteLayout", [ + "tinymce/ui/Layout" +], function(Layout) { + "use strict"; + + return Layout.extend({ + Defaults: { + containerClass: 'abs-layout', + controlClass: 'abs-layout-item' + }, + + /** + * Recalculates the positions of the controls in the specified container. + * + * @method recalc + * @param {tinymce.ui.Container} container Container instance to recalc. + */ + recalc: function(container) { + container.items().filter(':visible').each(function(ctrl) { + var settings = ctrl.settings; + + ctrl.layoutRect({ + x: settings.x, + y: settings.y, + w: settings.w, + h: settings.h + }); + + if (ctrl.recalc) { + ctrl.recalc(); + } + }); + }, + + /** + * Renders the specified container and any layout specific HTML. + * + * @method renderHtml + * @param {tinymce.ui.Container} container Container to render HTML for. + */ + renderHtml: function(container) { + return '<div id="' + container._id + '-absend" class="' + container.classPrefix + 'abs-end"></div>' + this._super(container); + } + }); +}); + +// Included from: js/tinymce/classes/ui/Tooltip.js + +/** + * Tooltip.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a tooltip instance. + * + * @-x-less ToolTip.less + * @class tinymce.ui.ToolTip + * @extends tinymce.ui.Control + * @mixes tinymce.ui.Movable + */ +define("tinymce/ui/Tooltip", [ + "tinymce/ui/Control", + "tinymce/ui/Movable" +], function(Control, Movable) { + return Control.extend({ + Mixins: [Movable], + + Defaults: { + classes: 'widget tooltip tooltip-n' + }, + + /** + * Sets/gets the current label text. + * + * @method text + * @param {String} [text] New label text. + * @return {String|tinymce.ui.Tooltip} Current text or current label instance. + */ + text: function(value) { + var self = this; + + if (typeof(value) != "undefined") { + self._value = value; + + if (self._rendered) { + self.getEl().lastChild.innerHTML = self.encode(value); + } + + return self; + } + + return self._value; + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, prefix = self.classPrefix; + + return ( + '<div id="' + self._id + '" class="' + self.classes() + '" role="presentation">' + + '<div class="' + prefix + 'tooltip-arrow"></div>' + + '<div class="' + prefix + 'tooltip-inner">' + self.encode(self._text) + '</div>' + + '</div>' + ); + }, + + /** + * Repaints the control after a layout operation. + * + * @method repaint + */ + repaint: function() { + var self = this, style, rect; + + style = self.getEl().style; + rect = self._layoutRect; + + style.left = rect.x + 'px'; + style.top = rect.y + 'px'; + style.zIndex = 0xFFFF + 0xFFFF; + } + }); +}); + +// Included from: js/tinymce/classes/ui/Widget.js + +/** + * Widget.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Widget base class a widget is a control that has a tooltip and some basic states. + * + * @class tinymce.ui.Widget + * @extends tinymce.ui.Control + */ +define("tinymce/ui/Widget", [ + "tinymce/ui/Control", + "tinymce/ui/Tooltip" +], function(Control, Tooltip) { + "use strict"; + + var tooltip; + + var Widget = Control.extend({ + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {String} tooltip Tooltip text to display when hovering. + * @setting {Boolean} autofocus True if the control should be focused when rendered. + * @setting {String} text Text to display inside widget. + */ + init: function(settings) { + var self = this; + + self._super(settings); + self.canFocus = true; + + if (settings.tooltip && Widget.tooltips !== false) { + self.on('mouseenter', function(e) { + var tooltip = self.tooltip().moveTo(-0xFFFF); + + if (e.control == self) { + var rel = tooltip.text(settings.tooltip).show().testMoveRel(self.getEl(), ['bc-tc', 'bc-tl', 'bc-tr']); + + tooltip.toggleClass('tooltip-n', rel == 'bc-tc'); + tooltip.toggleClass('tooltip-nw', rel == 'bc-tl'); + tooltip.toggleClass('tooltip-ne', rel == 'bc-tr'); + + tooltip.moveRel(self.getEl(), rel); + } else { + tooltip.hide(); + } + }); + + self.on('mouseleave mousedown click', function() { + self.tooltip().hide(); + }); + } + + self.aria('label', settings.ariaLabel || settings.tooltip); + }, + + /** + * Returns the current tooltip instance. + * + * @method tooltip + * @return {tinymce.ui.Tooltip} Tooltip instance. + */ + tooltip: function() { + if (!tooltip) { + tooltip = new Tooltip({type: 'tooltip'}); + tooltip.renderTo(); + } + + return tooltip; + }, + + /** + * Sets/gets the active state of the widget. + * + * @method active + * @param {Boolean} [state] State if the control is active. + * @return {Boolean|tinymce.ui.Widget} True/false or current widget instance. + */ + active: function(state) { + var self = this, undef; + + if (state !== undef) { + self.aria('pressed', state); + self.toggleClass('active', state); + } + + return self._super(state); + }, + + /** + * Sets/gets the disabled state of the widget. + * + * @method disabled + * @param {Boolean} [state] State if the control is disabled. + * @return {Boolean|tinymce.ui.Widget} True/false or current widget instance. + */ + disabled: function(state) { + var self = this, undef; + + if (state !== undef) { + self.aria('disabled', state); + self.toggleClass('disabled', state); + } + + return self._super(state); + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this, settings = self.settings; + + self._rendered = true; + + self._super(); + + if (!self.parent() && (settings.width || settings.height)) { + self.initLayoutRect(); + self.repaint(); + } + + if (settings.autofocus) { + self.focus(); + } + }, + + /** + * Removes the current control from DOM and from UI collections. + * + * @method remove + * @return {tinymce.ui.Control} Current control instance. + */ + remove: function() { + this._super(); + + if (tooltip) { + tooltip.remove(); + tooltip = null; + } + } + }); + + return Widget; +}); + +// Included from: js/tinymce/classes/ui/Button.js + +/** + * Button.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class is used to create buttons. You can create them directly or through the Factory. + * + * @example + * // Create and render a button to the body element + * tinymce.ui.Factory.create({ + * type: 'button', + * text: 'My button' + * }).renderTo(document.body); + * + * @-x-less Button.less + * @class tinymce.ui.Button + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/Button", [ + "tinymce/ui/Widget" +], function(Widget) { + "use strict"; + + return Widget.extend({ + Defaults: { + classes: "widget btn", + role: "button" + }, + + /** + * Constructs a new button instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {String} size Size of the button small|medium|large. + * @setting {String} image Image to use for icon. + * @setting {String} icon Icon to use for button. + */ + init: function(settings) { + var self = this, size; + + self.on('click mousedown', function(e) { + e.preventDefault(); + }); + + self._super(settings); + size = settings.size; + + if (settings.subtype) { + self.addClass(settings.subtype); + } + + if (size) { + self.addClass('btn-' + size); + } + }, + + /** + * Sets/gets the current button icon. + * + * @method icon + * @param {String} [icon] New icon identifier. + * @return {String|tinymce.ui.MenuButton} Current icon or current MenuButton instance. + */ + icon: function(icon) { + var self = this, prefix = self.classPrefix; + + if (typeof(icon) == 'undefined') { + return self.settings.icon; + } + + self.settings.icon = icon; + icon = icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : ''; + + if (self._rendered) { + var btnElm = self.getEl().firstChild, iconElm = btnElm.getElementsByTagName('i')[0]; + + if (icon) { + if (!iconElm || iconElm != btnElm.firstChild) { + iconElm = document.createElement('i'); + btnElm.insertBefore(iconElm, btnElm.firstChild); + } + + iconElm.className = icon; + } else if (iconElm) { + btnElm.removeChild(iconElm); + } + + self.text(self._text); // Set text again to fix whitespace between icon + text + } + + return self; + }, + + /** + * Repaints the button for example after it's been resizes by a layout engine. + * + * @method repaint + */ + repaint: function() { + var btnStyle = this.getEl().firstChild.style; + + btnStyle.width = btnStyle.height = "100%"; + + this._super(); + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, id = self._id, prefix = self.classPrefix; + var icon = self.settings.icon, image = ''; + + if (self.settings.image) { + icon = 'none'; + image = ' style="background-image: url(\'' + self.settings.image + '\')"'; + } + + icon = self.settings.icon ? prefix + 'ico ' + prefix + 'i-' + icon : ''; + + return ( + '<div id="' + id + '" class="' + self.classes() + '" tabindex="-1" aria-labelledby="' + id + '">' + + '<button role="presentation" type="button" tabindex="-1">' + + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + + (self._text ? (icon ? '\u00a0' : '') + self.encode(self._text) : '') + + '</button>' + + '</div>' + ); + } + }); +}); + +// Included from: js/tinymce/classes/ui/ButtonGroup.js + +/** + * ButtonGroup.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This control enables you to put multiple buttons into a group. This is + * useful when you want to combine similar toolbar buttons into a group. + * + * @example + * // Create and render a buttongroup with two buttons to the body element + * tinymce.ui.Factory.create({ + * type: 'buttongroup', + * items: [ + * {text: 'Button A'}, + * {text: 'Button B'} + * ] + * }).renderTo(document.body); + * + * @-x-less ButtonGroup.less + * @class tinymce.ui.ButtonGroup + * @extends tinymce.ui.Container + */ +define("tinymce/ui/ButtonGroup", [ + "tinymce/ui/Container" +], function(Container) { + "use strict"; + + return Container.extend({ + Defaults: { + defaultType: 'button', + role: 'group' + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, layout = self._layout; + + self.addClass('btn-group'); + self.preRender(); + layout.preRender(self); + + return ( + '<div id="' + self._id + '" class="' + self.classes() + '">' + + '<div id="' + self._id + '-body">' + + (self.settings.html || '') + layout.renderHtml(self) + + '</div>' + + '</div>' + ); + } + }); +}); + +// Included from: js/tinymce/classes/ui/Checkbox.js + +/** + * Checkbox.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This control creates a custom checkbox. + * + * @example + * // Create and render a checkbox to the body element + * tinymce.ui.Factory.create({ + * type: 'checkbox', + * checked: true, + * text: 'My checkbox' + * }).renderTo(document.body); + * + * @-x-less Checkbox.less + * @class tinymce.ui.Checkbox + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/Checkbox", [ + "tinymce/ui/Widget" +], function(Widget) { + "use strict"; + + return Widget.extend({ + Defaults: { + classes: "checkbox", + role: "checkbox", + checked: false + }, + + /** + * Constructs a new Checkbox instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {Boolean} checked True if the checkbox should be checked by default. + */ + init: function(settings) { + var self = this; + + self._super(settings); + + self.on('click mousedown', function(e) { + e.preventDefault(); + }); + + self.on('click', function(e) { + e.preventDefault(); + + if (!self.disabled()) { + self.checked(!self.checked()); + } + }); + + self.checked(self.settings.checked); + }, + + /** + * Getter/setter function for the checked state. + * + * @method checked + * @param {Boolean} [state] State to be set. + * @return {Boolean|tinymce.ui.Checkbox} True/false or checkbox if it's a set operation. + */ + checked: function(state) { + var self = this; + + if (typeof state != "undefined") { + if (state) { + self.addClass('checked'); + } else { + self.removeClass('checked'); + } + + self._checked = state; + self.aria('checked', state); + + return self; + } + + return self._checked; + }, + + /** + * Getter/setter function for the value state. + * + * @method value + * @param {Boolean} [state] State to be set. + * @return {Boolean|tinymce.ui.Checkbox} True/false or checkbox if it's a set operation. + */ + value: function(state) { + return this.checked(state); + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, id = self._id, prefix = self.classPrefix; + + return ( + '<div id="' + id + '" class="' + self.classes() + '" unselectable="on" aria-labelledby="' + id + '-al" tabindex="-1">' + + '<i class="' + prefix + 'ico ' + prefix + 'i-checkbox"></i>' + + '<span id="' + id + '-al" class="' + prefix + 'label">' + self.encode(self._text) + '</span>' + + '</div>' + ); + } + }); +}); + +// Included from: js/tinymce/classes/ui/PanelButton.js + +/** + * PanelButton.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new panel button. + * + * @class tinymce.ui.PanelButton + * @extends tinymce.ui.Button + */ +define("tinymce/ui/PanelButton", [ + "tinymce/ui/Button", + "tinymce/ui/FloatPanel" +], function(Button, FloatPanel) { + "use strict"; + + return Button.extend({ + /** + * Shows the panel for the button. + * + * @method showPanel + */ + showPanel: function() { + var self = this, settings = self.settings; + + self.active(true); + + if (!self.panel) { + var panelSettings = settings.panel; + + // Wrap panel in grid layout if type if specified + // This makes it possible to add forms or other containers directly in the panel option + if (panelSettings.type) { + panelSettings = { + layout: 'grid', + items: panelSettings + }; + } + + panelSettings.role = panelSettings.role || 'dialog'; + panelSettings.popover = true; + panelSettings.autohide = true; + panelSettings.ariaRoot = true; + + self.panel = new FloatPanel(panelSettings).on('hide', function() { + self.active(false); + }).on('cancel', function(e) { + e.stopPropagation(); + self.focus(); + self.hidePanel(); + }).parent(self).renderTo(self.getContainerElm()); + + self.panel.fire('show'); + self.panel.reflow(); + } else { + self.panel.show(); + } + + self.panel.moveRel(self.getEl(), settings.popoverAlign || (self.isRtl() ? ['bc-tr', 'bc-tc'] : ['bc-tl', 'bc-tc'])); + }, + + /** + * Hides the panel for the button. + * + * @method hidePanel + */ + hidePanel: function() { + var self = this; + + if (self.panel) { + self.panel.hide(); + } + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this; + + self.aria('haspopup', true); + + self.on('click', function(e) { + if (e.control === self) { + if (self.panel && self.panel.visible()) { + self.hidePanel(); + } else { + self.showPanel(); + self.panel.focus(!!e.aria); + } + } + }); + + return self._super(); + } + }); +}); + +// Included from: js/tinymce/classes/ui/ColorButton.js + +/** + * ColorButton.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class creates a color button control. This is a split button in which the main + * button has a visual representation of the currently selected color. When clicked + * the caret button displays a color picker, allowing the user to select a new color. + * + * @-x-less ColorButton.less + * @class tinymce.ui.ColorButton + * @extends tinymce.ui.PanelButton + */ +define("tinymce/ui/ColorButton", [ + "tinymce/ui/PanelButton", + "tinymce/dom/DOMUtils" +], function(PanelButton, DomUtils) { + "use strict"; + + var DOM = DomUtils.DOM; + + return PanelButton.extend({ + /** + * Constructs a new ColorButton instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + */ + init: function(settings) { + this._super(settings); + this.addClass('colorbutton'); + }, + + /** + * Getter/setter for the current color. + * + * @method color + * @param {String} [color] Color to set. + * @return {String|tinymce.ui.ColorButton} Current color or current instance. + */ + color: function(color) { + if (color) { + this._color = color; + this.getEl('preview').style.backgroundColor = color; + return this; + } + + return this._color; + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, id = self._id, prefix = self.classPrefix; + var icon = self.settings.icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : ''; + var image = self.settings.image ? ' style="background-image: url(\'' + self.settings.image + '\')"' : ''; + + return ( + '<div id="' + id + '" class="' + self.classes() + '" role="button" tabindex="-1" aria-haspopup="true">' + + '<button role="presentation" hidefocus type="button" tabindex="-1">' + + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + + '<span id="' + id + '-preview" class="' + prefix + 'preview"></span>' + + (self._text ? (icon ? ' ' : '') + (self._text) : '') + + '</button>' + + '<button type="button" class="' + prefix + 'open" hidefocus tabindex="-1">' + + ' <i class="' + prefix + 'caret"></i>' + + '</button>' + + '</div>' + ); + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this, onClickHandler = self.settings.onclick; + + self.on('click', function(e) { + if (e.aria && e.aria.key == 'down') { + return; + } + + if (e.control == self && !DOM.getParent(e.target, '.' + self.classPrefix + 'open')) { + e.stopImmediatePropagation(); + onClickHandler.call(self, e); + } + }); + + delete self.settings.onclick; + + return self._super(); + } + + }); +}); + +// Included from: js/tinymce/classes/ui/ComboBox.js + +/** + * ComboBox.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class creates a combobox control. Select box that you select a value from or + * type a value into. + * + * @-x-less ComboBox.less + * @class tinymce.ui.ComboBox + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/ComboBox", [ + "tinymce/ui/Widget", + "tinymce/ui/Factory", + "tinymce/ui/DomUtils" +], function(Widget, Factory, DomUtils) { + "use strict"; + + return Widget.extend({ + /** + * Constructs a new control instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {String} placeholder Placeholder text to display. + */ + init: function(settings) { + var self = this; + + self._super(settings); + self.addClass('combobox'); + self.subinput = true; + self.ariaTarget = 'inp'; // TODO: Figure out a better way + + settings = self.settings; + settings.menu = settings.menu || settings.values; + + if (settings.menu) { + settings.icon = 'caret'; + } + + self.on('click', function(e) { + var elm = e.target, root = self.getEl(); + + while (elm && elm != root) { + if (elm.id && elm.id.indexOf('-open') != -1) { + self.fire('action'); + + if (settings.menu) { + self.showMenu(); + + if (e.aria) { + self.menu.items()[0].focus(); + } + } + } + + elm = elm.parentNode; + } + }); + + // TODO: Rework this + self.on('keydown', function(e) { + if (e.target.nodeName == "INPUT" && e.keyCode == 13) { + self.parents().reverse().each(function(ctrl) { + e.preventDefault(); + self.fire('change'); + + if (ctrl.hasEventListeners('submit') && ctrl.toJSON) { + ctrl.fire('submit', {data: ctrl.toJSON()}); + return false; + } + }); + } + }); + + if (settings.placeholder) { + self.addClass('placeholder'); + + self.on('focusin', function() { + if (!self._hasOnChange) { + DomUtils.on(self.getEl('inp'), 'change', function() { + self.fire('change'); + }); + + self._hasOnChange = true; + } + + if (self.hasClass('placeholder')) { + self.getEl('inp').value = ''; + self.removeClass('placeholder'); + } + }); + + self.on('focusout', function() { + if (self.value().length === 0) { + self.getEl('inp').value = settings.placeholder; + self.addClass('placeholder'); + } + }); + } + }, + + showMenu: function() { + var self = this, settings = self.settings, menu; + + if (!self.menu) { + menu = settings.menu || []; + + // Is menu array then auto constuct menu control + if (menu.length) { + menu = { + type: 'menu', + items: menu + }; + } else { + menu.type = menu.type || 'menu'; + } + + self.menu = Factory.create(menu).parent(self).renderTo(self.getContainerElm()); + self.fire('createmenu'); + self.menu.reflow(); + self.menu.on('cancel', function(e) { + if (e.control === self.menu) { + self.focus(); + } + }); + + self.menu.on('show hide', function(e) { + e.control.items().each(function(ctrl) { + ctrl.active(ctrl.value() == self.value()); + }); + }).fire('show'); + + self.menu.on('select', function(e) { + self.value(e.control.value()); + }); + + self.on('focusin', function(e) { + if (e.target.tagName == 'INPUT') { + self.menu.hide(); + } + }); + + self.aria('expanded', true); + } + + self.menu.show(); + self.menu.layoutRect({w: self.layoutRect().w}); + self.menu.moveRel(self.getEl(), self.isRtl() ? ['br-tr', 'tr-br'] : ['bl-tl', 'tl-bl']); + }, + + /** + * Getter/setter function for the control value. + * + * @method value + * @param {String} [value] Value to be set. + * @return {String|tinymce.ui.ComboBox} Value or self if it's a set operation. + */ + value: function(value) { + var self = this; + + if (typeof(value) != "undefined") { + self._value = value; + self.removeClass('placeholder'); + + if (self._rendered) { + self.getEl('inp').value = value; + } + + return self; + } + + if (self._rendered) { + value = self.getEl('inp').value; + + if (value != self.settings.placeholder) { + return value; + } + + return ''; + } + + return self._value; + }, + + /** + * Getter/setter function for the disabled state. + * + * @method value + * @param {Boolean} [state] State to be set. + * @return {Boolean|tinymce.ui.ComboBox} True/false or self if it's a set operation. + */ + disabled: function(state) { + var self = this; + + if (self._rendered && typeof(state) != 'undefined') { + self.getEl('inp').disabled = state; + } + + return self._super(state); + }, + + /** + * Focuses the input area of the control. + * + * @method focus + */ + focus: function() { + this.getEl('inp').focus(); + }, + + /** + * Repaints the control after a layout operation. + * + * @method repaint + */ + repaint: function() { + var self = this, elm = self.getEl(), openElm = self.getEl('open'), rect = self.layoutRect(); + var width, lineHeight; + + if (openElm) { + width = rect.w - DomUtils.getSize(openElm).width - 10; + } else { + width = rect.w - 10; + } + + // Detect old IE 7+8 add lineHeight to align caret vertically in the middle + var doc = document; + if (doc.all && (!doc.documentMode || doc.documentMode <= 8)) { + lineHeight = (self.layoutRect().h - 2) + 'px'; + } + + DomUtils.css(elm.firstChild, { + width: width, + lineHeight: lineHeight + }); + + self._super(); + + return self; + }, + + /** + * Post render method. Called after the control has been rendered to the target. + * + * @method postRender + * @return {tinymce.ui.ComboBox} Current combobox instance. + */ + postRender: function() { + var self = this; + + DomUtils.on(this.getEl('inp'), 'change', function() { + self.fire('change'); + }); + + return self._super(); + }, + + remove: function() { + DomUtils.off(this.getEl('inp')); + this._super(); + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, id = self._id, settings = self.settings, prefix = self.classPrefix; + var value = settings.value || settings.placeholder || ''; + var icon, text, openBtnHtml = '', extraAttrs = ''; + + if ("spellcheck" in settings) { + extraAttrs += ' spellcheck="' + settings.spellcheck + '"'; + } + + if (settings.maxLength) { + extraAttrs += ' maxlength="' + settings.maxLength + '"'; + } + + if (settings.size) { + extraAttrs += ' size="' + settings.size + '"'; + } + + if (settings.subtype) { + extraAttrs += ' type="' + settings.subtype + '"'; + } + + if (self.disabled()) { + extraAttrs += ' disabled="disabled"'; + } + + icon = settings.icon; + if (icon && icon != 'caret') { + icon = prefix + 'ico ' + prefix + 'i-' + settings.icon; + } + + text = self._text; + + if (icon || text) { + openBtnHtml = ( + '<div id="' + id + '-open" class="' + prefix + 'btn ' + prefix + 'open" tabIndex="-1" role="button">' + + '<button id="' + id + '-action" type="button" hidefocus tabindex="-1">' + + (icon != 'caret' ? '<i class="' + icon + '"></i>' : '<i class="' + prefix + 'caret"></i>') + + (text ? (icon ? ' ' : '') + text : '') + + '</button>' + + '</div>' + ); + + self.addClass('has-open'); + } + + return ( + '<div id="' + id + '" class="' + self.classes() + '">' + + '<input id="' + id + '-inp" class="' + prefix + 'textbox ' + prefix + 'placeholder" value="' + + value + '" hidefocus="true"' + extraAttrs + '>' + + openBtnHtml + + '</div>' + ); + } + }); +}); + +// Included from: js/tinymce/classes/ui/Path.js + +/** + * Path.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new path control. + * + * @-x-less Path.less + * @class tinymce.ui.Path + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/Path", [ + "tinymce/ui/Widget" +], function(Widget) { + "use strict"; + + return Widget.extend({ + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {String} delimiter Delimiter to display between items in path. + */ + init: function(settings) { + var self = this; + + if (!settings.delimiter) { + settings.delimiter = '\u00BB'; + } + + self._super(settings); + self.addClass('path'); + self.canFocus = true; + + self.on('click', function(e) { + var index, target = e.target; + + if ((index = target.getAttribute('data-index'))) { + self.fire('select', {value: self.data()[index], index: index}); + } + }); + }, + + /** + * Focuses the current control. + * + * @method focus + * @return {tinymce.ui.Control} Current control instance. + */ + focus: function() { + var self = this; + + self.getEl().firstChild.focus(); + + return self; + }, + + /** + * Sets/gets the data to be used for the path. + * + * @method data + * @param {Array} data Array with items name is rendered to path. + */ + data: function(data) { + var self = this; + + if (typeof(data) !== "undefined") { + self._data = data; + self.update(); + + return self; + } + + return self._data; + }, + + /** + * Updated the path. + * + * @private + */ + update: function() { + this.innerHtml(this._getPathHtml()); + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this; + + self._super(); + + self.data(self.settings.data); + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this; + + return ( + '<div id="' + self._id + '" class="' + self.classes() + '">' + + self._getPathHtml() + + '</div>' + ); + }, + + _getPathHtml: function() { + var self = this, parts = self._data || [], i, l, html = '', prefix = self.classPrefix; + + for (i = 0, l = parts.length; i < l; i++) { + html += ( + (i > 0 ? '<div class="' + prefix + 'divider" aria-hidden="true"> ' + self.settings.delimiter + ' </div>' : '') + + '<div role="button" class="' + prefix + 'path-item' + (i == l - 1 ? ' ' + prefix + 'last' : '') + '" data-index="' + + i + '" tabindex="-1" id="' + self._id + '-' + i + '" aria-level="' + i + '">' + parts[i].name + '</div>' + ); + } + + if (!html) { + html = '<div class="' + prefix + 'path-item"> </div>'; + } + + return html; + } + }); +}); + +// Included from: js/tinymce/classes/ui/ElementPath.js + +/** + * ElementPath.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This control creates an path for the current selections parent elements in TinyMCE. + * + * @class tinymce.ui.ElementPath + * @extends tinymce.ui.Path + */ +define("tinymce/ui/ElementPath", [ + "tinymce/ui/Path", + "tinymce/EditorManager" +], function(Path, EditorManager) { + return Path.extend({ + /** + * Post render method. Called after the control has been rendered to the target. + * + * @method postRender + * @return {tinymce.ui.ElementPath} Current combobox instance. + */ + postRender: function() { + var self = this, editor = EditorManager.activeEditor; + + function isHidden(elm) { + if (elm.nodeType === 1) { + if (elm.nodeName == "BR" || !!elm.getAttribute('data-mce-bogus')) { + return true; + } + + if (elm.getAttribute('data-mce-type') === 'bookmark') { + return true; + } + } + + return false; + } + + self.on('select', function(e) { + var parents = [], node, body = editor.getBody(); + + editor.focus(); + + node = editor.selection.getStart(); + while (node && node != body) { + if (!isHidden(node)) { + parents.push(node); + } + + node = node.parentNode; + } + + editor.selection.select(parents[parents.length - 1 - e.index]); + editor.nodeChanged(); + }); + + editor.on('nodeChange', function(e) { + var parents = [], selectionParents = e.parents, i = selectionParents.length; + + while (i--) { + if (selectionParents[i].nodeType == 1 && !isHidden(selectionParents[i])) { + var args = editor.fire('ResolveName', { + name: selectionParents[i].nodeName.toLowerCase(), + target: selectionParents[i] + }); + + parents.push({name: args.name}); + } + } + + self.data(parents); + }); + + return self._super(); + } + }); +}); + +// Included from: js/tinymce/classes/ui/FormItem.js + +/** + * FormItem.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class is a container created by the form element with + * a label and control item. + * + * @class tinymce.ui.FormItem + * @extends tinymce.ui.Container + * @setting {String} label Label to display for the form item. + */ +define("tinymce/ui/FormItem", [ + "tinymce/ui/Container" +], function(Container) { + "use strict"; + + return Container.extend({ + Defaults: { + layout: 'flex', + align: 'center', + defaults: { + flex: 1 + } + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, layout = self._layout, prefix = self.classPrefix; + + self.addClass('formitem'); + layout.preRender(self); + + return ( + '<div id="' + self._id + '" class="' + self.classes() + '" hideFocus="1" tabIndex="-1">' + + (self.settings.title ? ('<div id="' + self._id + '-title" class="' + prefix + 'title">' + + self.settings.title + '</div>') : '') + + '<div id="' + self._id + '-body" class="' + self.classes('body') + '">' + + (self.settings.html || '') + layout.renderHtml(self) + + '</div>' + + '</div>' + ); + } + }); +}); + +// Included from: js/tinymce/classes/ui/Form.js + +/** + * Form.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class creates a form container. A form container has the ability + * to automatically wrap items in tinymce.ui.FormItem instances. + * + * Each FormItem instance is a container for the label and the item. + * + * @example + * tinymce.ui.Factory.create({ + * type: 'form', + * items: [ + * {type: 'textbox', label: 'My text box'} + * ] + * }).renderTo(document.body); + * + * @class tinymce.ui.Form + * @extends tinymce.ui.Container + */ +define("tinymce/ui/Form", [ + "tinymce/ui/Container", + "tinymce/ui/FormItem" +], function(Container, FormItem) { + "use strict"; + + return Container.extend({ + Defaults: { + containerCls: 'form', + layout: 'flex', + direction: 'column', + align: 'stretch', + flex: 1, + padding: 20, + labelGap: 30, + spacing: 10, + callbacks: { + submit: function() { + this.submit(); + } + } + }, + + /** + * This method gets invoked before the control is rendered. + * + * @method preRender + */ + preRender: function() { + var self = this, items = self.items(); + + // Wrap any labeled items in FormItems + items.each(function(ctrl) { + var formItem, label = ctrl.settings.label; + + if (label) { + formItem = new FormItem({ + layout: 'flex', + autoResize: "overflow", + defaults: {flex: 1}, + items: [ + {type: 'label', id: ctrl._id + '-l', text: label, flex: 0, forId: ctrl._id, disabled: ctrl.disabled()} + ] + }); + + formItem.type = 'formitem'; + ctrl.aria('labelledby', ctrl._id + '-l'); + + if (typeof(ctrl.settings.flex) == "undefined") { + ctrl.settings.flex = 1; + } + + self.replace(ctrl, formItem); + formItem.add(ctrl); + } + }); + }, + + /** + * Recalcs label widths. + * + * @private + */ + recalcLabels: function() { + var self = this, maxLabelWidth = 0, labels = [], i, labelGap; + + if (self.settings.labelGapCalc === false) { + return; + } + + self.items().filter('formitem').each(function(item) { + var labelCtrl = item.items()[0], labelWidth = labelCtrl.getEl().clientWidth; + + maxLabelWidth = labelWidth > maxLabelWidth ? labelWidth : maxLabelWidth; + labels.push(labelCtrl); + }); + + labelGap = self.settings.labelGap || 0; + + i = labels.length; + while (i--) { + labels[i].settings.minWidth = maxLabelWidth + labelGap; + } + }, + + /** + * Getter/setter for the visibility state. + * + * @method visible + * @param {Boolean} [state] True/false state to show/hide. + * @return {tinymce.ui.Form|Boolean} True/false state or current control. + */ + visible: function(state) { + var val = this._super(state); + + if (state === true && this._rendered) { + this.recalcLabels(); + } + + return val; + }, + + /** + * Fires a submit event with the serialized form. + * + * @method submit + * @return {Object} Event arguments object. + */ + submit: function() { + return this.fire('submit', {data: this.toJSON()}); + }, + + /** + * Post render method. Called after the control has been rendered to the target. + * + * @method postRender + * @return {tinymce.ui.ComboBox} Current combobox instance. + */ + postRender: function() { + var self = this; + + self._super(); + self.recalcLabels(); + self.fromJSON(self.settings.data); + } + }); +}); + +// Included from: js/tinymce/classes/ui/FieldSet.js + +/** + * FieldSet.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class creates fieldset containers. + * + * @-x-less FieldSet.less + * @class tinymce.ui.FieldSet + * @extends tinymce.ui.Form + */ +define("tinymce/ui/FieldSet", [ + "tinymce/ui/Form" +], function(Form) { + "use strict"; + + return Form.extend({ + Defaults: { + containerCls: 'fieldset', + layout: 'flex', + direction: 'column', + align: 'stretch', + flex: 1, + padding: "25 15 5 15", + labelGap: 30, + spacing: 10, + border: 1 + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, layout = self._layout, prefix = self.classPrefix; + + self.preRender(); + layout.preRender(self); + + return ( + '<fieldset id="' + self._id + '" class="' + self.classes() + '" hideFocus="1" tabIndex="-1">' + + (self.settings.title ? ('<legend id="' + self._id + '-title" class="' + prefix + 'fieldset-title">' + + self.settings.title + '</legend>') : '') + + '<div id="' + self._id + '-body" class="' + self.classes('body') + '">' + + (self.settings.html || '') + layout.renderHtml(self) + + '</div>' + + '</fieldset>' + ); + } + }); +}); + +// Included from: js/tinymce/classes/ui/FilePicker.js + +/** + * FilePicker.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*global tinymce:true */ + +/** + * This class creates a file picker control. + * + * @class tinymce.ui.FilePicker + * @extends tinymce.ui.ComboBox + */ +define("tinymce/ui/FilePicker", [ + "tinymce/ui/ComboBox" +], function(ComboBox) { + "use strict"; + + return ComboBox.extend({ + /** + * Constructs a new control instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + */ + init: function(settings) { + var self = this, editor = tinymce.activeEditor, fileBrowserCallback; + + settings.spellcheck = false; + + fileBrowserCallback = editor.settings.file_browser_callback; + if (fileBrowserCallback) { + settings.icon = 'browse'; + + settings.onaction = function() { + fileBrowserCallback( + self.getEl('inp').id, + self.getEl('inp').value, + settings.filetype, + window + ); + }; + } + + self._super(settings); + } + }); +}); + +// Included from: js/tinymce/classes/ui/FitLayout.js + +/** + * FitLayout.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This layout manager will resize the control to be the size of it's parent container. + * In other words width: 100% and height: 100%. + * + * @-x-less FitLayout.less + * @class tinymce.ui.FitLayout + * @extends tinymce.ui.AbsoluteLayout + */ +define("tinymce/ui/FitLayout", [ + "tinymce/ui/AbsoluteLayout" +], function(AbsoluteLayout) { + "use strict"; + + return AbsoluteLayout.extend({ + /** + * Recalculates the positions of the controls in the specified container. + * + * @method recalc + * @param {tinymce.ui.Container} container Container instance to recalc. + */ + recalc: function(container) { + var contLayoutRect = container.layoutRect(), paddingBox = container.paddingBox(); + + container.items().filter(':visible').each(function(ctrl) { + ctrl.layoutRect({ + x: paddingBox.left, + y: paddingBox.top, + w: contLayoutRect.innerW - paddingBox.right - paddingBox.left, + h: contLayoutRect.innerH - paddingBox.top - paddingBox.bottom + }); + + if (ctrl.recalc) { + ctrl.recalc(); + } + }); + } + }); +}); + +// Included from: js/tinymce/classes/ui/FlexLayout.js + +/** + * FlexLayout.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This layout manager works similar to the CSS flex box. + * + * @setting {String} direction row|row-reverse|column|column-reverse + * @setting {Number} flex A positive-number to flex by. + * @setting {String} align start|end|center|stretch + * @setting {String} pack start|end|justify + * + * @class tinymce.ui.FlexLayout + * @extends tinymce.ui.AbsoluteLayout + */ +define("tinymce/ui/FlexLayout", [ + "tinymce/ui/AbsoluteLayout" +], function(AbsoluteLayout) { + "use strict"; + + return AbsoluteLayout.extend({ + /** + * Recalculates the positions of the controls in the specified container. + * + * @method recalc + * @param {tinymce.ui.Container} container Container instance to recalc. + */ + recalc: function(container) { + // A ton of variables, needs to be in the same scope for performance + var i, l, items, contLayoutRect, contPaddingBox, contSettings, align, pack, spacing, totalFlex, availableSpace, direction; + var ctrl, ctrlLayoutRect, ctrlSettings, flex, maxSizeItems = [], size, maxSize, ratio, rect, pos, maxAlignEndPos; + var sizeName, minSizeName, posName, maxSizeName, beforeName, innerSizeName, deltaSizeName, contentSizeName; + var alignAxisName, alignInnerSizeName, alignSizeName, alignMinSizeName, alignBeforeName, alignAfterName; + var alignDeltaSizeName, alignContentSizeName; + var max = Math.max, min = Math.min; + + // Get container items, properties and settings + items = container.items().filter(':visible'); + contLayoutRect = container.layoutRect(); + contPaddingBox = container._paddingBox; + contSettings = container.settings; + direction = container.isRtl() ? (contSettings.direction || 'row-reversed') : contSettings.direction; + align = contSettings.align; + pack = container.isRtl() ? (contSettings.pack || 'end') : contSettings.pack; + spacing = contSettings.spacing || 0; + + if (direction == "row-reversed" || direction == "column-reverse") { + items = items.set(items.toArray().reverse()); + direction = direction.split('-')[0]; + } + + // Setup axis variable name for row/column direction since the calculations is the same + if (direction == "column") { + posName = "y"; + sizeName = "h"; + minSizeName = "minH"; + maxSizeName = "maxH"; + innerSizeName = "innerH"; + beforeName = 'top'; + deltaSizeName = "deltaH"; + contentSizeName = "contentH"; + + alignBeforeName = "left"; + alignSizeName = "w"; + alignAxisName = "x"; + alignInnerSizeName = "innerW"; + alignMinSizeName = "minW"; + alignAfterName = "right"; + alignDeltaSizeName = "deltaW"; + alignContentSizeName = "contentW"; + } else { + posName = "x"; + sizeName = "w"; + minSizeName = "minW"; + maxSizeName = "maxW"; + innerSizeName = "innerW"; + beforeName = 'left'; + deltaSizeName = "deltaW"; + contentSizeName = "contentW"; + + alignBeforeName = "top"; + alignSizeName = "h"; + alignAxisName = "y"; + alignInnerSizeName = "innerH"; + alignMinSizeName = "minH"; + alignAfterName = "bottom"; + alignDeltaSizeName = "deltaH"; + alignContentSizeName = "contentH"; + } + + // Figure out total flex, availableSpace and collect any max size elements + availableSpace = contLayoutRect[innerSizeName] - contPaddingBox[beforeName] - contPaddingBox[beforeName]; + maxAlignEndPos = totalFlex = 0; + for (i = 0, l = items.length; i < l; i++) { + ctrl = items[i]; + ctrlLayoutRect = ctrl.layoutRect(); + ctrlSettings = ctrl.settings; + flex = ctrlSettings.flex; + availableSpace -= (i < l - 1 ? spacing : 0); + + if (flex > 0) { + totalFlex += flex; + + // Flexed item has a max size then we need to check if we will hit that size + if (ctrlLayoutRect[maxSizeName]) { + maxSizeItems.push(ctrl); + } + + ctrlLayoutRect.flex = flex; + } + + availableSpace -= ctrlLayoutRect[minSizeName]; + + // Calculate the align end position to be used to check for overflow/underflow + size = contPaddingBox[alignBeforeName] + ctrlLayoutRect[alignMinSizeName] + contPaddingBox[alignAfterName]; + if (size > maxAlignEndPos) { + maxAlignEndPos = size; + } + } + + // Calculate minW/minH + rect = {}; + if (availableSpace < 0) { + rect[minSizeName] = contLayoutRect[minSizeName] - availableSpace + contLayoutRect[deltaSizeName]; + } else { + rect[minSizeName] = contLayoutRect[innerSizeName] - availableSpace + contLayoutRect[deltaSizeName]; + } + + rect[alignMinSizeName] = maxAlignEndPos + contLayoutRect[alignDeltaSizeName]; + + rect[contentSizeName] = contLayoutRect[innerSizeName] - availableSpace; + rect[alignContentSizeName] = maxAlignEndPos; + rect.minW = min(rect.minW, contLayoutRect.maxW); + rect.minH = min(rect.minH, contLayoutRect.maxH); + rect.minW = max(rect.minW, contLayoutRect.startMinWidth); + rect.minH = max(rect.minH, contLayoutRect.startMinHeight); + + // Resize container container if minSize was changed + if (contLayoutRect.autoResize && (rect.minW != contLayoutRect.minW || rect.minH != contLayoutRect.minH)) { + rect.w = rect.minW; + rect.h = rect.minH; + + container.layoutRect(rect); + this.recalc(container); + + // Forced recalc for example if items are hidden/shown + if (container._lastRect === null) { + var parentCtrl = container.parent(); + if (parentCtrl) { + parentCtrl._lastRect = null; + parentCtrl.recalc(); + } + } + + return; + } + + // Handle max size elements, check if they will become to wide with current options + ratio = availableSpace / totalFlex; + for (i = 0, l = maxSizeItems.length; i < l; i++) { + ctrl = maxSizeItems[i]; + ctrlLayoutRect = ctrl.layoutRect(); + maxSize = ctrlLayoutRect[maxSizeName]; + size = ctrlLayoutRect[minSizeName] + ctrlLayoutRect.flex * ratio; + + if (size > maxSize) { + availableSpace -= (ctrlLayoutRect[maxSizeName] - ctrlLayoutRect[minSizeName]); + totalFlex -= ctrlLayoutRect.flex; + ctrlLayoutRect.flex = 0; + ctrlLayoutRect.maxFlexSize = maxSize; + } else { + ctrlLayoutRect.maxFlexSize = 0; + } + } + + // Setup new ratio, target layout rect, start position + ratio = availableSpace / totalFlex; + pos = contPaddingBox[beforeName]; + rect = {}; + + // Handle pack setting moves the start position to end, center + if (totalFlex === 0) { + if (pack == "end") { + pos = availableSpace + contPaddingBox[beforeName]; + } else if (pack == "center") { + pos = Math.round( + (contLayoutRect[innerSizeName] / 2) - ((contLayoutRect[innerSizeName] - availableSpace) / 2) + ) + contPaddingBox[beforeName]; + + if (pos < 0) { + pos = contPaddingBox[beforeName]; + } + } else if (pack == "justify") { + pos = contPaddingBox[beforeName]; + spacing = Math.floor(availableSpace / (items.length - 1)); + } + } + + // Default aligning (start) the other ones needs to be calculated while doing the layout + rect[alignAxisName] = contPaddingBox[alignBeforeName]; + + // Start laying out controls + for (i = 0, l = items.length; i < l; i++) { + ctrl = items[i]; + ctrlLayoutRect = ctrl.layoutRect(); + size = ctrlLayoutRect.maxFlexSize || ctrlLayoutRect[minSizeName]; + + // Align the control on the other axis + if (align === "center") { + rect[alignAxisName] = Math.round((contLayoutRect[alignInnerSizeName] / 2) - (ctrlLayoutRect[alignSizeName] / 2)); + } else if (align === "stretch") { + rect[alignSizeName] = max( + ctrlLayoutRect[alignMinSizeName] || 0, + contLayoutRect[alignInnerSizeName] - contPaddingBox[alignBeforeName] - contPaddingBox[alignAfterName] + ); + rect[alignAxisName] = contPaddingBox[alignBeforeName]; + } else if (align === "end") { + rect[alignAxisName] = contLayoutRect[alignInnerSizeName] - ctrlLayoutRect[alignSizeName] - contPaddingBox.top; + } + + // Calculate new size based on flex + if (ctrlLayoutRect.flex > 0) { + size += ctrlLayoutRect.flex * ratio; + } + + rect[sizeName] = size; + rect[posName] = pos; + ctrl.layoutRect(rect); + + // Recalculate containers + if (ctrl.recalc) { + ctrl.recalc(); + } + + // Move x/y position + pos += size + spacing; + } + } + }); +}); + +// Included from: js/tinymce/classes/ui/FlowLayout.js + +/** + * FlowLayout.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This layout manager will place the controls by using the browsers native layout. + * + * @-x-less FlowLayout.less + * @class tinymce.ui.FlowLayout + * @extends tinymce.ui.Layout + */ +define("tinymce/ui/FlowLayout", [ + "tinymce/ui/Layout" +], function(Layout) { + return Layout.extend({ + Defaults: { + containerClass: 'flow-layout', + controlClass: 'flow-layout-item', + endClass : 'break' + }, + + /** + * Recalculates the positions of the controls in the specified container. + * + * @method recalc + * @param {tinymce.ui.Container} container Container instance to recalc. + */ + recalc: function(container) { + container.items().filter(':visible').each(function(ctrl) { + if (ctrl.recalc) { + ctrl.recalc(); + } + }); + } + }); +}); + +// Included from: js/tinymce/classes/ui/FormatControls.js + +/** + * FormatControls.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Internal class containing all TinyMCE specific control types such as + * format listboxes, fontlist boxes, toolbar buttons etc. + * + * @class tinymce.ui.FormatControls + */ +define("tinymce/ui/FormatControls", [ + "tinymce/ui/Control", + "tinymce/ui/Widget", + "tinymce/ui/FloatPanel", + "tinymce/util/Tools", + "tinymce/EditorManager", + "tinymce/Env" +], function(Control, Widget, FloatPanel, Tools, EditorManager, Env) { + var each = Tools.each; + + EditorManager.on('AddEditor', function(e) { + if (e.editor.rtl) { + Control.rtl = true; + } + + registerControls(e.editor); + }); + + Control.translate = function(text) { + return EditorManager.translate(text); + }; + + Widget.tooltips = !Env.iOS; + + function registerControls(editor) { + var formatMenu; + + // Generates a preview for a format + function getPreviewCss(format) { + var name, previewElm, dom = editor.dom; + var previewCss = '', parentFontSize, previewStyles; + + previewStyles = editor.settings.preview_styles; + + // No preview forced + if (previewStyles === false) { + return ''; + } + + // Default preview + if (!previewStyles) { + previewStyles = 'font-family font-size font-weight font-style text-decoration ' + + 'text-transform color background-color border border-radius outline text-shadow'; + } + + // Removes any variables since these can't be previewed + function removeVars(val) { + return val.replace(/%(\w+)/g, ''); + } + + // Create block/inline element to use for preview + format = editor.formatter.get(format); + if (!format) { + return; + } + + format = format[0]; + name = format.block || format.inline || 'span'; + previewElm = dom.create(name); + + // Add format styles to preview element + each(format.styles, function(value, name) { + value = removeVars(value); + + if (value) { + dom.setStyle(previewElm, name, value); + } + }); + + // Add attributes to preview element + each(format.attributes, function(value, name) { + value = removeVars(value); + + if (value) { + dom.setAttrib(previewElm, name, value); + } + }); + + // Add classes to preview element + each(format.classes, function(value) { + value = removeVars(value); + + if (!dom.hasClass(previewElm, value)) { + dom.addClass(previewElm, value); + } + }); + + editor.fire('PreviewFormats'); + + // Add the previewElm outside the visual area + dom.setStyles(previewElm, {position: 'absolute', left: -0xFFFF}); + editor.getBody().appendChild(previewElm); + + // Get parent container font size so we can compute px values out of em/% for older IE:s + parentFontSize = dom.getStyle(editor.getBody(), 'fontSize', true); + parentFontSize = /px$/.test(parentFontSize) ? parseInt(parentFontSize, 10) : 0; + + each(previewStyles.split(' '), function(name) { + var value = dom.getStyle(previewElm, name, true); + + // If background is transparent then check if the body has a background color we can use + if (name == 'background-color' && /transparent|rgba\s*\([^)]+,\s*0\)/.test(value)) { + value = dom.getStyle(editor.getBody(), name, true); + + // Ignore white since it's the default color, not the nicest fix + // TODO: Fix this by detecting runtime style + if (dom.toHex(value).toLowerCase() == '#ffffff') { + return; + } + } + + if (name == 'color') { + // Ignore black since it's the default color, not the nicest fix + // TODO: Fix this by detecting runtime style + if (dom.toHex(value).toLowerCase() == '#000000') { + return; + } + } + + // Old IE won't calculate the font size so we need to do that manually + if (name == 'font-size') { + if (/em|%$/.test(value)) { + if (parentFontSize === 0) { + return; + } + + // Convert font size from em/% to px + value = parseFloat(value, 10) / (/%$/.test(value) ? 100 : 1); + value = (value * parentFontSize) + 'px'; + } + } + + if (name == "border" && value) { + previewCss += 'padding:0 2px;'; + } + + previewCss += name + ':' + value + ';'; + }); + + editor.fire('AfterPreviewFormats'); + + //previewCss += 'line-height:normal'; + + dom.remove(previewElm); + + return previewCss; + } + + function createListBoxChangeHandler(items, formatName) { + return function() { + var self = this; + + editor.on('nodeChange', function(e) { + var formatter = editor.formatter; + var value = null; + + each(e.parents, function(node) { + each(items, function(item) { + if (formatName) { + if (formatter.matchNode(node, formatName, {value: item.value})) { + value = item.value; + } + } else { + if (formatter.matchNode(node, item.value)) { + value = item.value; + } + } + + if (value) { + return false; + } + }); + + if (value) { + return false; + } + }); + + self.value(value); + }); + }; + } + + function createFormats(formats) { + formats = formats.split(';'); + + var i = formats.length; + while (i--) { + formats[i] = formats[i].split('='); + } + + return formats; + } + + function createFormatMenu() { + var count = 0, newFormats = []; + + var defaultStyleFormats = [ + {title: 'Headers', items: [ + {title: 'Header 1', format: 'h1'}, + {title: 'Header 2', format: 'h2'}, + {title: 'Header 3', format: 'h3'}, + {title: 'Header 4', format: 'h4'}, + {title: 'Header 5', format: 'h5'}, + {title: 'Header 6', format: 'h6'} + ]}, + + {title: 'Inline', items: [ + {title: 'Bold', icon: 'bold', format: 'bold'}, + {title: 'Italic', icon: 'italic', format: 'italic'}, + {title: 'Underline', icon: 'underline', format: 'underline'}, + {title: 'Strikethrough', icon: 'strikethrough', format: 'strikethrough'}, + {title: 'Superscript', icon: 'superscript', format: 'superscript'}, + {title: 'Subscript', icon: 'subscript', format: 'subscript'}, + {title: 'Code', icon: 'code', format: 'code'} + ]}, + + {title: 'Blocks', items: [ + {title: 'Paragraph', format: 'p'}, + {title: 'Blockquote', format: 'blockquote'}, + {title: 'Div', format: 'div'}, + {title: 'Pre', format: 'pre'} + ]}, + + {title: 'Alignment', items: [ + {title: 'Left', icon: 'alignleft', format: 'alignleft'}, + {title: 'Center', icon: 'aligncenter', format: 'aligncenter'}, + {title: 'Right', icon: 'alignright', format: 'alignright'}, + {title: 'Justify', icon: 'alignjustify', format: 'alignjustify'} + ]} + ]; + + function createMenu(formats) { + var menu = []; + + if (!formats) { + return; + } + + each(formats, function(format) { + var menuItem = { + text: format.title, + icon: format.icon + }; + + if (format.items) { + menuItem.menu = createMenu(format.items); + } else { + var formatName = format.format || "custom" + count++; + + if (!format.format) { + format.name = formatName; + newFormats.push(format); + } + + menuItem.format = formatName; + } + + menu.push(menuItem); + }); + + return menu; + } + + function createStylesMenu() { + var menu; + + if (editor.settings.style_formats_merge) { + if (editor.settings.style_formats) { + menu = createMenu(defaultStyleFormats.concat(editor.settings.style_formats)); + } else { + menu = createMenu(defaultStyleFormats); + } + } else { + menu = createMenu(editor.settings.style_formats || defaultStyleFormats); + } + + return menu; + } + + editor.on('init', function() { + each(newFormats, function(format) { + editor.formatter.register(format.name, format); + }); + }); + + return { + type: 'menu', + items: createStylesMenu(), + onPostRender: function(e) { + editor.fire('renderFormatsMenu', {control: e.control}); + }, + itemDefaults: { + preview: true, + + textStyle: function() { + if (this.settings.format) { + return getPreviewCss(this.settings.format); + } + }, + + onPostRender: function() { + var self = this, formatName = this.settings.format; + + if (formatName) { + self.parent().on('show', function() { + self.disabled(!editor.formatter.canApply(formatName)); + self.active(editor.formatter.match(formatName)); + }); + } + }, + + onclick: function() { + if (this.settings.format) { + toggleFormat(this.settings.format); + } + } + } + }; + } + + formatMenu = createFormatMenu(); + + // Simple format controls <control/format>:<UI text> + each({ + bold: 'Bold', + italic: 'Italic', + underline: 'Underline', + strikethrough: 'Strikethrough', + subscript: 'Subscript', + superscript: 'Superscript' + }, function(text, name) { + editor.addButton(name, { + tooltip: text, + onPostRender: function() { + var self = this; + + // TODO: Fix this + if (editor.formatter) { + editor.formatter.formatChanged(name, function(state) { + self.active(state); + }); + } else { + editor.on('init', function() { + editor.formatter.formatChanged(name, function(state) { + self.active(state); + }); + }); + } + }, + onclick: function() { + toggleFormat(name); + } + }); + }); + + // Simple command controls <control>:[<UI text>,<Command>] + each({ + outdent: ['Decrease indent', 'Outdent'], + indent: ['Increase indent', 'Indent'], + cut: ['Cut', 'Cut'], + copy: ['Copy', 'Copy'], + paste: ['Paste', 'Paste'], + help: ['Help', 'mceHelp'], + selectall: ['Select all', 'SelectAll'], + hr: ['Insert horizontal rule', 'InsertHorizontalRule'], + removeformat: ['Clear formatting', 'RemoveFormat'], + visualaid: ['Visual aids', 'mceToggleVisualAid'], + newdocument: ['New document', 'mceNewDocument'] + }, function(item, name) { + editor.addButton(name, { + tooltip: item[0], + cmd: item[1] + }); + }); + + // Simple command controls with format state + each({ + blockquote: ['Blockquote', 'mceBlockQuote'], + numlist: ['Numbered list', 'InsertOrderedList'], + bullist: ['Bullet list', 'InsertUnorderedList'], + subscript: ['Subscript', 'Subscript'], + superscript: ['Superscript', 'Superscript'], + alignleft: ['Align left', 'JustifyLeft'], + aligncenter: ['Align center', 'JustifyCenter'], + alignright: ['Align right', 'JustifyRight'], + alignjustify: ['Justify', 'JustifyFull'] + }, function(item, name) { + editor.addButton(name, { + tooltip: item[0], + cmd: item[1], + onPostRender: function() { + var self = this; + + // TODO: Fix this + if (editor.formatter) { + editor.formatter.formatChanged(name, function(state) { + self.active(state); + }); + } else { + editor.on('init', function() { + editor.formatter.formatChanged(name, function(state) { + self.active(state); + }); + }); + } + } + }); + }); + + function hasUndo() { + return editor.undoManager ? editor.undoManager.hasUndo() : false; + } + + function hasRedo() { + return editor.undoManager ? editor.undoManager.hasRedo() : false; + } + + function toggleUndoState() { + var self = this; + + self.disabled(!hasUndo()); + editor.on('Undo Redo AddUndo TypingUndo', function() { + self.disabled(!hasUndo()); + }); + } + + function toggleRedoState() { + var self = this; + + self.disabled(!hasRedo()); + editor.on('Undo Redo AddUndo TypingUndo', function() { + self.disabled(!hasRedo()); + }); + } + + function toggleVisualAidState() { + var self = this; + + editor.on('VisualAid', function(e) { + self.active(e.hasVisual); + }); + + self.active(editor.hasVisual); + } + + editor.addButton('undo', { + tooltip: 'Undo', + onPostRender: toggleUndoState, + cmd: 'undo' + }); + + editor.addButton('redo', { + tooltip: 'Redo', + onPostRender: toggleRedoState, + cmd: 'redo' + }); + + editor.addMenuItem('newdocument', { + text: 'New document', + shortcut: 'Ctrl+N', + icon: 'newdocument', + cmd: 'mceNewDocument' + }); + + editor.addMenuItem('undo', { + text: 'Undo', + icon: 'undo', + shortcut: 'Ctrl+Z', + onPostRender: toggleUndoState, + cmd: 'undo' + }); + + editor.addMenuItem('redo', { + text: 'Redo', + icon: 'redo', + shortcut: 'Ctrl+Y', + onPostRender: toggleRedoState, + cmd: 'redo' + }); + + editor.addMenuItem('visualaid', { + text: 'Visual aids', + selectable: true, + onPostRender: toggleVisualAidState, + cmd: 'mceToggleVisualAid' + }); + + each({ + cut: ['Cut', 'Cut', 'Ctrl+X'], + copy: ['Copy', 'Copy', 'Ctrl+C'], + paste: ['Paste', 'Paste', 'Ctrl+V'], + selectall: ['Select all', 'SelectAll', 'Ctrl+A'], + bold: ['Bold', 'Bold', 'Ctrl+B'], + italic: ['Italic', 'Italic', 'Ctrl+I'], + underline: ['Underline', 'Underline'], + strikethrough: ['Strikethrough', 'Strikethrough'], + subscript: ['Subscript', 'Subscript'], + superscript: ['Superscript', 'Superscript'], + removeformat: ['Clear formatting', 'RemoveFormat'] + }, function(item, name) { + editor.addMenuItem(name, { + text: item[0], + icon: name, + shortcut: item[2], + cmd: item[1] + }); + }); + + editor.on('mousedown', function() { + FloatPanel.hideAll(); + }); + + function toggleFormat(fmt) { + if (fmt.control) { + fmt = fmt.control.value(); + } + + if (fmt) { + editor.execCommand('mceToggleFormat', false, fmt); + } + } + + editor.addButton('styleselect', { + type: 'menubutton', + text: 'Formats', + menu: formatMenu + }); + + editor.addButton('formatselect', function() { + var items = [], blocks = createFormats(editor.settings.block_formats || + 'Paragraph=p;' + + 'Address=address;' + + 'Pre=pre;' + + 'Header 1=h1;' + + 'Header 2=h2;' + + 'Header 3=h3;' + + 'Header 4=h4;' + + 'Header 5=h5;' + + 'Header 6=h6' + ); + + each(blocks, function(block) { + items.push({ + text: block[0], + value: block[1], + textStyle: function() { + return getPreviewCss(block[1]); + } + }); + }); + + return { + type: 'listbox', + text: blocks[0][0], + values: items, + fixedWidth: true, + onselect: toggleFormat, + onPostRender: createListBoxChangeHandler(items) + }; + }); + + editor.addButton('fontselect', function() { + var defaultFontsFormats = + 'Andale Mono=andale mono,times;' + + 'Arial=arial,helvetica,sans-serif;' + + 'Arial Black=arial black,avant garde;' + + 'Book Antiqua=book antiqua,palatino;' + + 'Comic Sans MS=comic sans ms,sans-serif;' + + 'Courier New=courier new,courier;' + + 'Georgia=georgia,palatino;' + + 'Helvetica=helvetica;' + + 'Impact=impact,chicago;' + + 'Symbol=symbol;' + + 'Tahoma=tahoma,arial,helvetica,sans-serif;' + + 'Terminal=terminal,monaco;' + + 'Times New Roman=times new roman,times;' + + 'Trebuchet MS=trebuchet ms,geneva;' + + 'Verdana=verdana,geneva;' + + 'Webdings=webdings;' + + 'Wingdings=wingdings,zapf dingbats'; + + var items = [], fonts = createFormats(editor.settings.font_formats || defaultFontsFormats); + + each(fonts, function(font) { + items.push({ + text: {raw: font[0]}, + value: font[1], + textStyle: font[1].indexOf('dings') == -1 ? 'font-family:' + font[1] : '' + }); + }); + + return { + type: 'listbox', + text: 'Font Family', + tooltip: 'Font Family', + values: items, + fixedWidth: true, + onPostRender: createListBoxChangeHandler(items, 'fontname'), + onselect: function(e) { + if (e.control.settings.value) { + editor.execCommand('FontName', false, e.control.settings.value); + } + } + }; + }); + + editor.addButton('fontsizeselect', function() { + var items = [], defaultFontsizeFormats = '8pt 10pt 12pt 14pt 18pt 24pt 36pt'; + var fontsize_formats = editor.settings.fontsize_formats || defaultFontsizeFormats; + + each(fontsize_formats.split(' '), function(item) { + items.push({text: item, value: item}); + }); + + return { + type: 'listbox', + text: 'Font Sizes', + tooltip: 'Font Sizes', + values: items, + fixedWidth: true, + onPostRender: createListBoxChangeHandler(items, 'fontsize'), + onclick: function(e) { + if (e.control.settings.value) { + editor.execCommand('FontSize', false, e.control.settings.value); + } + } + }; + }); + + editor.addMenuItem('formats', { + text: 'Formats', + menu: formatMenu + }); + } +}); + +// Included from: js/tinymce/classes/ui/GridLayout.js + +/** + * GridLayout.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This layout manager places controls in a grid. + * + * @setting {Number} spacing Spacing between controls. + * @setting {Number} spacingH Horizontal spacing between controls. + * @setting {Number} spacingV Vertical spacing between controls. + * @setting {Number} columns Number of columns to use. + * @setting {String/Array} alignH start|end|center|stretch or array of values for each column. + * @setting {String/Array} alignV start|end|center|stretch or array of values for each column. + * @setting {String} pack start|end + * + * @class tinymce.ui.GridLayout + * @extends tinymce.ui.AbsoluteLayout + */ +define("tinymce/ui/GridLayout", [ + "tinymce/ui/AbsoluteLayout" +], function(AbsoluteLayout) { + "use strict"; + + return AbsoluteLayout.extend({ + /** + * Recalculates the positions of the controls in the specified container. + * + * @method recalc + * @param {tinymce.ui.Container} container Container instance to recalc. + */ + recalc: function(container) { + var settings = container.settings, rows, cols, items, contLayoutRect, width, height, rect, + ctrlLayoutRect, ctrl, x, y, posX, posY, ctrlSettings, contPaddingBox, align, spacingH, spacingV, alignH, alignV, maxX, maxY, + colWidths = [], rowHeights = [], ctrlMinWidth, ctrlMinHeight, availableWidth, availableHeight; + + // Get layout settings + settings = container.settings; + items = container.items().filter(':visible'); + contLayoutRect = container.layoutRect(); + cols = settings.columns || Math.ceil(Math.sqrt(items.length)); + rows = Math.ceil(items.length / cols); + spacingH = settings.spacingH || settings.spacing || 0; + spacingV = settings.spacingV || settings.spacing || 0; + alignH = settings.alignH || settings.align; + alignV = settings.alignV || settings.align; + contPaddingBox = container._paddingBox; + + if (alignH && typeof(alignH) == "string") { + alignH = [alignH]; + } + + if (alignV && typeof(alignV) == "string") { + alignV = [alignV]; + } + + // Zero padd columnWidths + for (x = 0; x < cols; x++) { + colWidths.push(0); + } + + // Zero padd rowHeights + for (y = 0; y < rows; y++) { + rowHeights.push(0); + } + + // Calculate columnWidths and rowHeights + for (y = 0; y < rows; y++) { + for (x = 0; x < cols; x++) { + ctrl = items[y * cols + x]; + + // Out of bounds + if (!ctrl) { + break; + } + + ctrlLayoutRect = ctrl.layoutRect(); + ctrlMinWidth = ctrlLayoutRect.minW; + ctrlMinHeight = ctrlLayoutRect.minH; + + colWidths[x] = ctrlMinWidth > colWidths[x] ? ctrlMinWidth : colWidths[x]; + rowHeights[y] = ctrlMinHeight > rowHeights[y] ? ctrlMinHeight : rowHeights[y]; + } + } + + // Calculate maxX + availableWidth = contLayoutRect.innerW - contPaddingBox.left - contPaddingBox.right; + for (maxX = 0, x = 0; x < cols; x++) { + maxX += colWidths[x] + (x > 0 ? spacingH : 0); + availableWidth -= (x > 0 ? spacingH : 0) + colWidths[x]; + } + + // Calculate maxY + availableHeight = contLayoutRect.innerH - contPaddingBox.top - contPaddingBox.bottom; + for (maxY = 0, y = 0; y < rows; y++) { + maxY += rowHeights[y] + (y > 0 ? spacingV : 0); + availableHeight -= (y > 0 ? spacingV : 0) + rowHeights[y]; + } + + maxX += contPaddingBox.left + contPaddingBox.right; + maxY += contPaddingBox.top + contPaddingBox.bottom; + + // Calculate minW/minH + rect = {}; + rect.minW = maxX + (contLayoutRect.w - contLayoutRect.innerW); + rect.minH = maxY + (contLayoutRect.h - contLayoutRect.innerH); + + rect.contentW = rect.minW - contLayoutRect.deltaW; + rect.contentH = rect.minH - contLayoutRect.deltaH; + rect.minW = Math.min(rect.minW, contLayoutRect.maxW); + rect.minH = Math.min(rect.minH, contLayoutRect.maxH); + rect.minW = Math.max(rect.minW, contLayoutRect.startMinWidth); + rect.minH = Math.max(rect.minH, contLayoutRect.startMinHeight); + + // Resize container container if minSize was changed + if (contLayoutRect.autoResize && (rect.minW != contLayoutRect.minW || rect.minH != contLayoutRect.minH)) { + rect.w = rect.minW; + rect.h = rect.minH; + + container.layoutRect(rect); + this.recalc(container); + + // Forced recalc for example if items are hidden/shown + if (container._lastRect === null) { + var parentCtrl = container.parent(); + if (parentCtrl) { + parentCtrl._lastRect = null; + parentCtrl.recalc(); + } + } + + return; + } + + // Update contentW/contentH so absEnd moves correctly + if (contLayoutRect.autoResize) { + rect = container.layoutRect(rect); + rect.contentW = rect.minW - contLayoutRect.deltaW; + rect.contentH = rect.minH - contLayoutRect.deltaH; + } + + var flexV; + + if (settings.packV == 'start') { + flexV = 0; + } else { + flexV = availableHeight > 0 ? Math.floor(availableHeight / rows) : 0; + } + + // Calculate totalFlex + var totalFlex = 0; + var flexWidths = settings.flexWidths; + if (flexWidths) { + for (x = 0; x < flexWidths.length; x++) { + totalFlex += flexWidths[x]; + } + } else { + totalFlex = cols; + } + + // Calculate new column widths based on flex values + var ratio = availableWidth / totalFlex; + for (x = 0; x < cols; x++) { + colWidths[x] += flexWidths ? flexWidths[x] * ratio : ratio; + } + + // Move/resize controls + posY = contPaddingBox.top; + for (y = 0; y < rows; y++) { + posX = contPaddingBox.left; + height = rowHeights[y] + flexV; + + for (x = 0; x < cols; x++) { + ctrl = items[y * cols + x]; + + // No more controls to render then break + if (!ctrl) { + break; + } + + // Get control settings and calculate x, y + ctrlSettings = ctrl.settings; + ctrlLayoutRect = ctrl.layoutRect(); + width = Math.max(colWidths[x], ctrlLayoutRect.startMinWidth); + ctrlLayoutRect.x = posX; + ctrlLayoutRect.y = posY; + + // Align control horizontal + align = ctrlSettings.alignH || (alignH ? (alignH[x] || alignH[0]) : null); + if (align == "center") { + ctrlLayoutRect.x = posX + (width / 2) - (ctrlLayoutRect.w / 2); + } else if (align == "right") { + ctrlLayoutRect.x = posX + width - ctrlLayoutRect.w; + } else if (align == "stretch") { + ctrlLayoutRect.w = width; + } + + // Align control vertical + align = ctrlSettings.alignV || (alignV ? (alignV[x] || alignV[0]) : null); + if (align == "center") { + ctrlLayoutRect.y = posY + (height / 2) - (ctrlLayoutRect.h / 2); + } else if (align == "bottom") { + ctrlLayoutRect.y = posY + height - ctrlLayoutRect.h; + } else if (align == "stretch") { + ctrlLayoutRect.h = height; + } + + ctrl.layoutRect(ctrlLayoutRect); + + posX += width + spacingH; + + if (ctrl.recalc) { + ctrl.recalc(); + } + } + + posY += height + spacingV; + } + } + }); +}); + +// Included from: js/tinymce/classes/ui/Iframe.js + +/** + * Iframe.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*jshint scripturl:true */ + +/** + * This class creates an iframe. + * + * @setting {String} url Url to open in the iframe. + * + * @-x-less Iframe.less + * @class tinymce.ui.Iframe + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/Iframe", [ + "tinymce/ui/Widget" +], function(Widget) { + "use strict"; + + return Widget.extend({ + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this; + + self.addClass('iframe'); + self.canFocus = false; + + return ( + '<iframe id="' + self._id + '" class="' + self.classes() + '" tabindex="-1" src="' + + (self.settings.url || "javascript:\'\'") + '" frameborder="0"></iframe>' + ); + }, + + /** + * Setter for the iframe source. + * + * @method src + * @param {String} src Source URL for iframe. + */ + src: function(src) { + this.getEl().src = src; + }, + + /** + * Inner HTML for the iframe. + * + * @method html + * @param {String} html HTML string to set as HTML inside the iframe. + * @param {function} callback Optional callback to execute when the iframe body is filled with contents. + * @return {tinymce.ui.Iframe} Current iframe control. + */ + html: function(html, callback) { + var self = this, body = this.getEl().contentWindow.document.body; + + // Wait for iframe to initialize IE 10 takes time + if (!body) { + setTimeout(function() { + self.html(html); + }, 0); + } else { + body.innerHTML = html; + + if (callback) { + callback(); + } + } + + return this; + } + }); +}); + +// Included from: js/tinymce/classes/ui/Label.js + +/** + * Label.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class creates a label element. A label is a simple text control + * that can be bound to other controls. + * + * @-x-less Label.less + * @class tinymce.ui.Label + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/Label", [ + "tinymce/ui/Widget", + "tinymce/ui/DomUtils" +], function(Widget, DomUtils) { + "use strict"; + + return Widget.extend({ + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @param {Boolean} multiline Multiline label. + */ + init: function(settings) { + var self = this; + + self._super(settings); + self.addClass('widget'); + self.addClass('label'); + self.canFocus = false; + + if (settings.multiline) { + self.addClass('autoscroll'); + } + + if (settings.strong) { + self.addClass('strong'); + } + }, + + /** + * Initializes the current controls layout rect. + * This will be executed by the layout managers to determine the + * default minWidth/minHeight etc. + * + * @method initLayoutRect + * @return {Object} Layout rect instance. + */ + initLayoutRect: function() { + var self = this, layoutRect = self._super(); + + if (self.settings.multiline) { + var size = DomUtils.getSize(self.getEl()); + + // Check if the text fits within maxW if not then try word wrapping it + if (size.width > layoutRect.maxW) { + layoutRect.minW = layoutRect.maxW; + self.addClass('multiline'); + } + + self.getEl().style.width = layoutRect.minW + 'px'; + layoutRect.startMinH = layoutRect.h = layoutRect.minH = Math.min(layoutRect.maxH, DomUtils.getSize(self.getEl()).height); + } + + return layoutRect; + }, + + /** + * Repaints the control after a layout operation. + * + * @method repaint + */ + repaint: function() { + var self = this; + + if (!self.settings.multiline) { + self.getEl().style.lineHeight = self.layoutRect().h + 'px'; + } + + return self._super(); + }, + + /** + * Sets/gets the current label text. + * + * @method text + * @param {String} [text] New label text. + * @return {String|tinymce.ui.Label} Current text or current label instance. + */ + text: function(text) { + var self = this; + + if (self._rendered && text) { + this.innerHtml(self.encode(text)); + } + + return self._super(text); + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, forId = self.settings.forId; + + return ( + '<label id="' + self._id + '" class="' + self.classes() + '"' + (forId ? ' for="' + forId + '"' : '') + '>' + + self.encode(self._text) + + '</label>' + ); + } + }); +}); + +// Included from: js/tinymce/classes/ui/Toolbar.js + +/** + * Toolbar.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new toolbar. + * + * @class tinymce.ui.Toolbar + * @extends tinymce.ui.Container + */ +define("tinymce/ui/Toolbar", [ + "tinymce/ui/Container" +], function(Container) { + "use strict"; + + return Container.extend({ + Defaults: { + role: 'toolbar', + layout: 'flow' + }, + + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + */ + init: function(settings) { + var self = this; + + self._super(settings); + self.addClass('toolbar'); + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this; + + self.items().addClass('toolbar-item'); + + return self._super(); + } + }); +}); + +// Included from: js/tinymce/classes/ui/MenuBar.js + +/** + * MenuBar.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new menubar. + * + * @-x-less MenuBar.less + * @class tinymce.ui.MenuBar + * @extends tinymce.ui.Container + */ +define("tinymce/ui/MenuBar", [ + "tinymce/ui/Toolbar" +], function(Toolbar) { + "use strict"; + + return Toolbar.extend({ + Defaults: { + role: 'menubar', + containerCls: 'menubar', + ariaRoot: true, + defaults: { + type: 'menubutton' + } + } + }); +}); + +// Included from: js/tinymce/classes/ui/MenuButton.js + +/** + * MenuButton.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new menu button. + * + * @-x-less MenuButton.less + * @class tinymce.ui.MenuButton + * @extends tinymce.ui.Button + */ +define("tinymce/ui/MenuButton", [ + "tinymce/ui/Button", + "tinymce/ui/Factory", + "tinymce/ui/MenuBar" +], function(Button, Factory, MenuBar) { + "use strict"; + + // TODO: Maybe add as some global function + function isChildOf(node, parent) { + while (node) { + if (parent === node) { + return true; + } + + node = node.parentNode; + } + + return false; + } + + var MenuButton = Button.extend({ + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + */ + init: function(settings) { + var self = this; + + self._renderOpen = true; + self._super(settings); + + self.addClass('menubtn'); + + if (settings.fixedWidth) { + self.addClass('fixed-width'); + } + + self.aria('haspopup', true); + self.hasPopup = true; + }, + + /** + * Shows the menu for the button. + * + * @method showMenu + */ + showMenu: function() { + var self = this, settings = self.settings, menu; + + if (self.menu && self.menu.visible()) { + return self.hideMenu(); + } + + if (!self.menu) { + menu = settings.menu || []; + + // Is menu array then auto constuct menu control + if (menu.length) { + menu = { + type: 'menu', + items: menu + }; + } else { + menu.type = menu.type || 'menu'; + } + + self.menu = Factory.create(menu).parent(self).renderTo(); + self.fire('createmenu'); + self.menu.reflow(); + self.menu.on('cancel', function(e) { + if (e.control.parent() === self.menu) { + e.stopPropagation(); + self.focus(); + self.hideMenu(); + } + }); + + // Move focus to button when a menu item is selected/clicked + self.menu.on('select', function() { + self.focus(); + }); + + self.menu.on('show hide', function(e) { + if (e.control == self.menu) { + self.activeMenu(e.type == 'show'); + } + + self.aria('expanded', e.type == 'show'); + }).fire('show'); + } + + self.menu.show(); + self.menu.layoutRect({w: self.layoutRect().w}); + self.menu.moveRel(self.getEl(), self.isRtl() ? ['br-tr', 'tr-br'] : ['bl-tl', 'tl-bl']); + }, + + /** + * Hides the menu for the button. + * + * @method hideMenu + */ + hideMenu: function() { + var self = this; + + if (self.menu) { + self.menu.items().each(function(item) { + if (item.hideMenu) { + item.hideMenu(); + } + }); + + self.menu.hide(); + } + }, + + /** + * Sets the active menu state. + * + * @private + */ + activeMenu: function(state) { + this.toggleClass('active', state); + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, id = self._id, prefix = self.classPrefix; + var icon = self.settings.icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : ''; + + self.aria('role', self.parent() instanceof MenuBar ? 'menuitem' : 'button'); + + return ( + '<div id="' + id + '" class="' + self.classes() + '" tabindex="-1" aria-labelledby="' + id + '">' + + '<button id="' + id + '-open" role="presentation" type="button" tabindex="-1">' + + (icon ? '<i class="' + icon + '"></i>' : '') + + '<span>' + (self._text ? (icon ? '\u00a0' : '') + self.encode(self._text) : '') + '</span>' + + ' <i class="' + prefix + 'caret"></i>' + + '</button>' + + '</div>' + ); + }, + + /** + * Gets invoked after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this; + + self.on('click', function(e) { + if (e.control === self && isChildOf(e.target, self.getEl())) { + self.showMenu(); + + if (e.aria) { + self.menu.items()[0].focus(); + } + } + }); + + self.on('mouseenter', function(e) { + var overCtrl = e.control, parent = self.parent(), hasVisibleSiblingMenu; + + if (overCtrl && parent && overCtrl instanceof MenuButton && overCtrl.parent() == parent) { + parent.items().filter('MenuButton').each(function(ctrl) { + if (ctrl.hideMenu && ctrl != overCtrl) { + if (ctrl.menu && ctrl.menu.visible()) { + hasVisibleSiblingMenu = true; + } + + ctrl.hideMenu(); + } + }); + + if (hasVisibleSiblingMenu) { + overCtrl.focus(); // Fix for: #5887 + overCtrl.showMenu(); + } + } + }); + + return self._super(); + }, + + /** + * Sets/gets the current button text. + * + * @method text + * @param {String} [text] New button text. + * @return {String|tinymce.ui.MenuButton} Current text or current MenuButton instance. + */ + text: function(text) { + var self = this, i, children; + + if (self._rendered) { + children = self.getEl('open').getElementsByTagName('span'); + for (i = 0; i < children.length; i++) { + children[i].innerHTML = (self.settings.icon && text ? '\u00a0' : '') + self.encode(text); + } + } + + return this._super(text); + }, + + /** + * Removes the control and it's menus. + * + * @method remove + */ + remove: function() { + this._super(); + + if (this.menu) { + this.menu.remove(); + } + } + }); + + return MenuButton; +}); + +// Included from: js/tinymce/classes/ui/ListBox.js + +/** + * ListBox.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new list box control. + * + * @-x-less ListBox.less + * @class tinymce.ui.ListBox + * @extends tinymce.ui.MenuButton + */ +define("tinymce/ui/ListBox", [ + "tinymce/ui/MenuButton" +], function(MenuButton) { + "use strict"; + + return MenuButton.extend({ + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {Array} values Array with values to add to list box. + */ + init: function(settings) { + var self = this, values, i, selected, selectedText, lastItemCtrl; + + self._values = values = settings.values; + if (values) { + for (i = 0; i < values.length; i++) { + selected = values[i].selected || settings.value === values[i].value; + + if (selected) { + selectedText = selectedText || values[i].text; + self._value = values[i].value; + break; + } + } + + // Default with first item + if (!selected && values.length > 0) { + selectedText = values[0].text; + self._value = values[0].value; + } + + settings.menu = values; + } + + settings.text = settings.text || selectedText || values[0].text; + + self._super(settings); + self.addClass('listbox'); + + self.on('select', function(e) { + var ctrl = e.control; + + if (lastItemCtrl) { + e.lastControl = lastItemCtrl; + } + + if (settings.multiple) { + ctrl.active(!ctrl.active()); + } else { + self.value(e.control.settings.value); + } + + lastItemCtrl = ctrl; + }); + }, + + /** + * Getter/setter function for the control value. + * + * @method value + * @param {String} [value] Value to be set. + * @return {Boolean/tinymce.ui.ListBox} Value or self if it's a set operation. + */ + value: function(value) { + var self = this, active, selectedText, menu, i; + + function activateByValue(menu, value) { + menu.items().each(function(ctrl) { + active = ctrl.value() === value; + + if (active) { + selectedText = selectedText || ctrl.text(); + } + + ctrl.active(active); + + if (ctrl.menu) { + activateByValue(ctrl.menu, value); + } + }); + } + + if (typeof(value) != "undefined") { + if (self.menu) { + activateByValue(self.menu, value); + } else { + menu = self.settings.menu; + for (i = 0; i < menu.length; i++) { + active = menu[i].value == value; + + if (active) { + selectedText = selectedText || menu[i].text; + } + + menu[i].active = active; + } + } + + self.text(selectedText || this.settings.text); + } + + return self._super(value); + } + }); +}); + +// Included from: js/tinymce/classes/ui/MenuItem.js + +/** + * MenuItem.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new menu item. + * + * @-x-less MenuItem.less + * @class tinymce.ui.MenuItem + * @extends tinymce.ui.Control + */ +define("tinymce/ui/MenuItem", [ + "tinymce/ui/Widget", + "tinymce/ui/Factory", + "tinymce/Env" +], function(Widget, Factory, Env) { + "use strict"; + + return Widget.extend({ + Defaults: { + border: 0, + role: 'menuitem' + }, + + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {Boolean} selectable Selectable menu. + * @setting {Array} menu Submenu array with items. + * @setting {String} shortcut Shortcut to display for menu item. Example: Ctrl+X + */ + init: function(settings) { + var self = this; + + self.hasPopup = true; + + self._super(settings); + + settings = self.settings; + + self.addClass('menu-item'); + + if (settings.menu) { + self.addClass('menu-item-expand'); + } + + if (settings.preview) { + self.addClass('menu-item-preview'); + } + + if (self._text === '-' || self._text === '|') { + self.addClass('menu-item-sep'); + self.aria('role', 'separator'); + self._text = '-'; + } + + if (settings.selectable) { + self.aria('role', 'menuitemcheckbox'); + self.addClass('menu-item-checkbox'); + settings.icon = 'selected'; + } + + if (!settings.preview && !settings.selectable) { + self.addClass('menu-item-normal'); + } + + self.on('mousedown', function(e) { + e.preventDefault(); + }); + + if (settings.menu) { + self.aria('haspopup', true); + } + }, + + /** + * Returns true/false if the menuitem has sub menu. + * + * @method hasMenus + * @return {Boolean} True/false state if it has submenu. + */ + hasMenus: function() { + return !!this.settings.menu; + }, + + /** + * Shows the menu for the menu item. + * + * @method showMenu + */ + showMenu: function() { + var self = this, settings = self.settings, menu, parent = self.parent(); + + parent.items().each(function(ctrl) { + if (ctrl !== self) { + ctrl.hideMenu(); + } + }); + + if (settings.menu) { + menu = self.menu; + + if (!menu) { + menu = settings.menu; + + // Is menu array then auto constuct menu control + if (menu.length) { + menu = { + type: 'menu', + items: menu + }; + } else { + menu.type = menu.type || 'menu'; + } + + if (parent.settings.itemDefaults) { + menu.itemDefaults = parent.settings.itemDefaults; + } + + menu = self.menu = Factory.create(menu).parent(self).renderTo(); + menu.reflow(); + menu.fire('show'); + menu.on('cancel', function(e) { + e.stopPropagation(); + self.focus(); + menu.hide(); + }); + + menu.on('hide', function(e) { + if (e.control === menu) { + self.removeClass('selected'); + } + }); + + menu.submenu = true; + } else { + menu.show(); + } + + menu._parentMenu = parent; + + menu.addClass('menu-sub'); + + var rel = menu.testMoveRel( + self.getEl(), + self.isRtl() ? ['tl-tr', 'bl-br', 'tr-tl', 'br-bl'] : ['tr-tl', 'br-bl', 'tl-tr', 'bl-br'] + ); + + menu.moveRel(self.getEl(), rel); + menu.rel = rel; + + rel = 'menu-sub-' + rel; + menu.removeClass(menu._lastRel); + menu.addClass(rel); + menu._lastRel = rel; + + self.addClass('selected'); + self.aria('expanded', true); + } + }, + + /** + * Hides the menu for the menu item. + * + * @method hideMenu + */ + hideMenu: function() { + var self = this; + + if (self.menu) { + self.menu.items().each(function(item) { + if (item.hideMenu) { + item.hideMenu(); + } + }); + + self.menu.hide(); + self.aria('expanded', false); + } + + return self; + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, id = self._id, settings = self.settings, prefix = self.classPrefix, text = self.encode(self._text); + var icon = self.settings.icon, image = '', shortcut = settings.shortcut; + + if (icon) { + self.parent().addClass('menu-has-icons'); + } + + if (settings.image) { + icon = 'none'; + image = ' style="background-image: url(\'' + settings.image + '\')"'; + } + + if (shortcut && Env.mac) { + // format shortcut for Mac + shortcut = shortcut.replace(/ctrl\+alt\+/i, '⌥⌘'); // ctrl+cmd + shortcut = shortcut.replace(/ctrl\+/i, '⌘'); // ctrl symbol + shortcut = shortcut.replace(/alt\+/i, '⌥'); // cmd symbol + shortcut = shortcut.replace(/shift\+/i, '⇧'); // shift symbol + } + + icon = prefix + 'ico ' + prefix + 'i-' + (self.settings.icon || 'none'); + + return ( + '<div id="' + id + '" class="' + self.classes() + '" tabindex="-1">' + + (text !== '-' ? '<i class="' + icon + '"' + image + '></i> ' : '') + + (text !== '-' ? '<span id="' + id + '-text" class="' + prefix + 'text">' + text + '</span>' : '') + + (shortcut ? '<div id="' + id + '-shortcut" class="' + prefix + 'menu-shortcut">' + shortcut + '</div>' : '') + + (settings.menu ? '<div class="' + prefix + 'caret"></div>' : '') + + '</div>' + ); + }, + + /** + * Gets invoked after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this, settings = self.settings; + + var textStyle = settings.textStyle; + if (typeof(textStyle) == "function") { + textStyle = textStyle.call(this); + } + + if (textStyle) { + var textElm = self.getEl('text'); + if (textElm) { + textElm.setAttribute('style', textStyle); + } + } + + self.on('mouseenter click', function(e) { + if (e.control === self) { + if (!settings.menu && e.type === 'click') { + self.fire('select'); + self.parent().hideAll(); + } else { + self.showMenu(); + + if (e.aria) { + self.menu.focus(true); + } + } + } + }); + + self._super(); + + return self; + }, + + active: function(state) { + if (typeof(state) != "undefined") { + this.aria('checked', state); + } + + return this._super(state); + }, + + /** + * Removes the control and it's menus. + * + * @method remove + */ + remove: function() { + this._super(); + + if (this.menu) { + this.menu.remove(); + } + } + }); +}); + +// Included from: js/tinymce/classes/ui/Menu.js + +/** + * Menu.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new menu. + * + * @-x-less Menu.less + * @class tinymce.ui.Menu + * @extends tinymce.ui.FloatPanel + */ +define("tinymce/ui/Menu", [ + "tinymce/ui/FloatPanel", + "tinymce/ui/MenuItem", + "tinymce/util/Tools" +], function(FloatPanel, MenuItem, Tools) { + "use strict"; + + var Menu = FloatPanel.extend({ + Defaults: { + defaultType: 'menuitem', + border: 1, + layout: 'stack', + role: 'application', + bodyRole: 'menu', + ariaRoot: true + }, + + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + */ + init: function(settings) { + var self = this; + + settings.autohide = true; + settings.constrainToViewport = true; + + if (settings.itemDefaults) { + var items = settings.items, i = items.length; + + while (i--) { + items[i] = Tools.extend({}, settings.itemDefaults, items[i]); + } + } + + self._super(settings); + self.addClass('menu'); + }, + + /** + * Repaints the control after a layout operation. + * + * @method repaint + */ + repaint: function() { + this.toggleClass('menu-align', true); + + this._super(); + + this.getEl().style.height = ''; + this.getEl('body').style.height = ''; + + return this; + }, + + /** + * Hides/closes the menu. + * + * @method cancel + */ + cancel: function() { + var self = this; + + self.hideAll(); + self.fire('select'); + }, + + /** + * Hide menu and all sub menus. + * + * @method hideAll + */ + hideAll: function() { + var self = this; + + this.find('menuitem').exec('hideMenu'); + + return self._super(); + }, +/* + getContainerElm: function() { + var doc = document, id = this.classPrefix + 'menucontainer'; + + var elm = doc.getElementById(id); + if (!elm) { + elm = doc.createElement('div'); + elm.id = id; + elm.setAttribute('role', 'application'); + elm.className = this.classPrefix + '-reset'; + elm.style.position = 'absolute'; + elm.style.top = elm.style.left = '0'; + elm.style.overflow = 'visible'; + doc.body.appendChild(elm); + } + + return elm; + }, +*/ + /** + * Invoked before the menu is rendered. + * + * @method preRender + */ + preRender: function() { + var self = this; + + self.items().each(function(ctrl) { + var settings = ctrl.settings; + + if (settings.icon || settings.selectable) { + self._hasIcons = true; + return false; + } + }); + + return self._super(); + } + }); + + return Menu; +}); + +// Included from: js/tinymce/classes/ui/Radio.js + +/** + * Radio.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new radio button. + * + * @-x-less Radio.less + * @class tinymce.ui.Radio + * @extends tinymce.ui.Checkbox + */ +define("tinymce/ui/Radio", [ + "tinymce/ui/Checkbox" +], function(Checkbox) { + "use strict"; + + return Checkbox.extend({ + Defaults: { + classes: "radio", + role: "radio" + } + }); +}); + +// Included from: js/tinymce/classes/ui/ResizeHandle.js + +/** + * ResizeHandle.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Renders a resize handle that fires ResizeStart, Resize and ResizeEnd events. + * + * @-x-less ResizeHandle.less + * @class tinymce.ui.ResizeHandle + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/ResizeHandle", [ + "tinymce/ui/Widget", + "tinymce/ui/DragHelper" +], function(Widget, DragHelper) { + "use strict"; + + return Widget.extend({ + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, prefix = self.classPrefix; + + self.addClass('resizehandle'); + + if (self.settings.direction == "both") { + self.addClass('resizehandle-both'); + } + + self.canFocus = false; + + return ( + '<div id="' + self._id + '" class="' + self.classes() + '">' + + '<i class="' + prefix + 'ico ' + prefix + 'i-resize"></i>' + + '</div>' + ); + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this; + + self._super(); + + self.resizeDragHelper = new DragHelper(this._id, { + start: function() { + self.fire('ResizeStart'); + }, + + drag: function(e) { + if (self.settings.direction != "both") { + e.deltaX = 0; + } + + self.fire('Resize', e); + }, + + stop: function() { + self.fire('ResizeEnd'); + } + }); + }, + + remove: function() { + if (this.resizeDragHelper) { + this.resizeDragHelper.destroy(); + } + + return this._super(); + } + }); +}); + +// Included from: js/tinymce/classes/ui/Spacer.js + +/** + * Spacer.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a spacer. This control is used in flex layouts for example. + * + * @-x-less Spacer.less + * @class tinymce.ui.Spacer + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/Spacer", [ + "tinymce/ui/Widget" +], function(Widget) { + "use strict"; + + return Widget.extend({ + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this; + + self.addClass('spacer'); + self.canFocus = false; + + return '<div id="' + self._id + '" class="' + self.classes() + '"></div>'; + } + }); +}); + +// Included from: js/tinymce/classes/ui/SplitButton.js + +/** + * SplitButton.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a split button. + * + * @-x-less SplitButton.less + * @class tinymce.ui.SplitButton + * @extends tinymce.ui.Button + */ +define("tinymce/ui/SplitButton", [ + "tinymce/ui/MenuButton", + "tinymce/ui/DomUtils" +], function(MenuButton, DomUtils) { + return MenuButton.extend({ + Defaults: { + classes: "widget btn splitbtn", + role: "button" + }, + + /** + * Repaints the control after a layout operation. + * + * @method repaint + */ + repaint: function() { + var self = this, elm = self.getEl(), rect = self.layoutRect(), mainButtonElm, menuButtonElm; + + self._super(); + + mainButtonElm = elm.firstChild; + menuButtonElm = elm.lastChild; + + DomUtils.css(mainButtonElm, { + width: rect.w - DomUtils.getSize(menuButtonElm).width, + height: rect.h - 2 + }); + + DomUtils.css(menuButtonElm, { + height: rect.h - 2 + }); + + return self; + }, + + /** + * Sets the active menu state. + * + * @private + */ + activeMenu: function(state) { + var self = this; + + DomUtils.toggleClass(self.getEl().lastChild, self.classPrefix + 'active', state); + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, id = self._id, prefix = self.classPrefix; + var icon = self.settings.icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : ''; + + return ( + '<div id="' + id + '" class="' + self.classes() + '" role="button" tabindex="-1">' + + '<button type="button" hidefocus tabindex="-1">' + + (icon ? '<i class="' + icon + '"></i>' : '') + + (self._text ? (icon ? ' ' : '') + self._text : '') + + '</button>' + + '<button type="button" class="' + prefix + 'open" hidefocus tabindex="-1">' + + //(icon ? '<i class="' + icon + '"></i>' : '') + + (self._menuBtnText ? (icon ? '\u00a0' : '') + self._menuBtnText : '') + + ' <i class="' + prefix + 'caret"></i>' + + '</button>' + + '</div>' + ); + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this, onClickHandler = self.settings.onclick; + + self.on('click', function(e) { + var node = e.target; + + if (e.control == this) { + // Find clicks that is on the main button + while (node) { + if ((e.aria && e.aria.key != 'down') || (node.nodeName == 'BUTTON' && node.className.indexOf('open') == -1)) { + e.stopImmediatePropagation(); + onClickHandler.call(this, e); + return; + } + + node = node.parentNode; + } + } + }); + + delete self.settings.onclick; + + return self._super(); + } + }); +}); + +// Included from: js/tinymce/classes/ui/StackLayout.js + +/** + * StackLayout.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This layout uses the browsers layout when the items are blocks. + * + * @-x-less StackLayout.less + * @class tinymce.ui.StackLayout + * @extends tinymce.ui.FlowLayout + */ +define("tinymce/ui/StackLayout", [ + "tinymce/ui/FlowLayout" +], function(FlowLayout) { + "use strict"; + + return FlowLayout.extend({ + Defaults: { + containerClass: 'stack-layout', + controlClass: 'stack-layout-item', + endClass : 'break' + } + }); +}); + +// Included from: js/tinymce/classes/ui/TabPanel.js + +/** + * TabPanel.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a tab panel control. + * + * @-x-less TabPanel.less + * @class tinymce.ui.TabPanel + * @extends tinymce.ui.Panel + * + * @setting {Number} activeTab Active tab index. + */ +define("tinymce/ui/TabPanel", [ + "tinymce/ui/Panel", + "tinymce/ui/DomUtils" +], function(Panel, DomUtils) { + "use strict"; + + return Panel.extend({ + lastIdx: 0, + + Defaults: { + layout: 'absolute', + defaults: { + type: 'panel' + } + }, + + /** + * Activates the specified tab by index. + * + * @method activateTab + * @param {Number} idx Index of the tab to activate. + */ + activateTab: function(idx) { + var activeTabElm; + + if (this.activeTabId) { + activeTabElm = this.getEl(this.activeTabId); + DomUtils.removeClass(activeTabElm, this.classPrefix + 'active'); + activeTabElm.setAttribute('aria-selected', "false"); + } + + this.activeTabId = 't' + idx; + + activeTabElm = this.getEl('t' + idx); + activeTabElm.setAttribute('aria-selected', "true"); + DomUtils.addClass(activeTabElm, this.classPrefix + 'active'); + + if (idx != this.lastIdx) { + this.items()[this.lastIdx].hide(); + this.lastIdx = idx; + } + + this.items()[idx].show().fire('showtab'); + this.reflow(); + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, layout = self._layout, tabsHtml = '', prefix = self.classPrefix; + + self.preRender(); + layout.preRender(self); + + self.items().each(function(ctrl, i) { + var id = self._id + '-t' + i; + + ctrl.aria('role', 'tabpanel'); + ctrl.aria('labelledby', id); + + tabsHtml += ( + '<div id="' + id + '" class="' + prefix + 'tab" ' + + 'unselectable="on" role="tab" aria-controls="' + ctrl._id + '" aria-selected="false" tabIndex="-1">' + + self.encode(ctrl.settings.title) + + '</div>' + ); + }); + + return ( + '<div id="' + self._id + '" class="' + self.classes() + '" hideFocus="1" tabIndex="-1">' + + '<div id="' + self._id + '-head" class="' + prefix + 'tabs" role="tablist">' + + tabsHtml + + '</div>' + + '<div id="' + self._id + '-body" class="' + self.classes('body') + '">' + + layout.renderHtml(self) + + '</div>' + + '</div>' + ); + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this; + + self._super(); + + self.settings.activeTab = self.settings.activeTab || 0; + self.activateTab(self.settings.activeTab); + + this.on('click', function(e) { + var targetParent = e.target.parentNode; + + if (e.target.parentNode.id == self._id + '-head') { + var i = targetParent.childNodes.length; + + while (i--) { + if (targetParent.childNodes[i] == e.target) { + self.activateTab(i); + } + } + } + }); + }, + + /** + * Initializes the current controls layout rect. + * This will be executed by the layout managers to determine the + * default minWidth/minHeight etc. + * + * @method initLayoutRect + * @return {Object} Layout rect instance. + */ + initLayoutRect: function() { + var self = this, rect, minW, minH; + + minW = DomUtils.getSize(self.getEl('head')).width; + minW = minW < 0 ? 0 : minW; + minH = 0; + self.items().each(function(item, i) { + minW = Math.max(minW, item.layoutRect().minW); + minH = Math.max(minH, item.layoutRect().minH); + if (self.settings.activeTab != i) { + item.hide(); + } + }); + + self.items().each(function(ctrl) { + ctrl.settings.x = 0; + ctrl.settings.y = 0; + ctrl.settings.w = minW; + ctrl.settings.h = minH; + + ctrl.layoutRect({ + x: 0, + y: 0, + w: minW, + h: minH + }); + }); + + var headH = DomUtils.getSize(self.getEl('head')).height; + + self.settings.minWidth = minW; + self.settings.minHeight = minH + headH; + + rect = self._super(); + rect.deltaH += headH; + rect.innerH = rect.h - rect.deltaH; + + return rect; + } + }); +}); + +// Included from: js/tinymce/classes/ui/TextBox.js + +/** + * TextBox.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new textbox. + * + * @-x-less TextBox.less + * @class tinymce.ui.TextBox + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/TextBox", [ + "tinymce/ui/Widget", + "tinymce/ui/DomUtils" +], function(Widget, DomUtils) { + "use strict"; + + return Widget.extend({ + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {Boolean} multiline True if the textbox is a multiline control. + * @setting {Number} maxLength Max length for the textbox. + * @setting {Number} size Size of the textbox in characters. + */ + init: function(settings) { + var self = this; + + self._super(settings); + + self._value = settings.value || ''; + self.addClass('textbox'); + + if (settings.multiline) { + self.addClass('multiline'); + } else { + // TODO: Rework this + self.on('keydown', function(e) { + if (e.keyCode == 13) { + self.parents().reverse().each(function(ctrl) { + e.preventDefault(); + + if (ctrl.hasEventListeners('submit') && ctrl.toJSON) { + ctrl.fire('submit', {data: ctrl.toJSON()}); + return false; + } + }); + } + }); + } + }, + + /** + * Getter/setter function for the disabled state. + * + * @method value + * @param {Boolean} [state] State to be set. + * @return {Boolean|tinymce.ui.ComboBox} True/false or self if it's a set operation. + */ + disabled: function(state) { + var self = this; + + if (self._rendered && typeof(state) != 'undefined') { + self.getEl().disabled = state; + } + + return self._super(state); + }, + + /** + * Getter/setter function for the control value. + * + * @method value + * @param {String} [value] Value to be set. + * @return {String|tinymce.ui.ComboBox} Value or self if it's a set operation. + */ + value: function(value) { + var self = this; + + if (typeof(value) != "undefined") { + self._value = value; + + if (self._rendered) { + self.getEl().value = value; + } + + return self; + } + + if (self._rendered) { + return self.getEl().value; + } + + return self._value; + }, + + /** + * Repaints the control after a layout operation. + * + * @method repaint + */ + repaint: function() { + var self = this, style, rect, borderBox, borderW = 0, borderH = 0, lastRepaintRect; + + style = self.getEl().style; + rect = self._layoutRect; + lastRepaintRect = self._lastRepaintRect || {}; + + // Detect old IE 7+8 add lineHeight to align caret vertically in the middle + var doc = document; + if (!self.settings.multiline && doc.all && (!doc.documentMode || doc.documentMode <= 8)) { + style.lineHeight = (rect.h - borderH) + 'px'; + } + + borderBox = self._borderBox; + borderW = borderBox.left + borderBox.right + 8; + borderH = borderBox.top + borderBox.bottom + (self.settings.multiline ? 8 : 0); + + if (rect.x !== lastRepaintRect.x) { + style.left = rect.x + 'px'; + lastRepaintRect.x = rect.x; + } + + if (rect.y !== lastRepaintRect.y) { + style.top = rect.y + 'px'; + lastRepaintRect.y = rect.y; + } + + if (rect.w !== lastRepaintRect.w) { + style.width = (rect.w - borderW) + 'px'; + lastRepaintRect.w = rect.w; + } + + if (rect.h !== lastRepaintRect.h) { + style.height = (rect.h - borderH) + 'px'; + lastRepaintRect.h = rect.h; + } + + self._lastRepaintRect = lastRepaintRect; + self.fire('repaint', {}, false); + + return self; + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, id = self._id, settings = self.settings, value = self.encode(self._value, false), extraAttrs = ''; + + if ("spellcheck" in settings) { + extraAttrs += ' spellcheck="' + settings.spellcheck + '"'; + } + + if (settings.maxLength) { + extraAttrs += ' maxlength="' + settings.maxLength + '"'; + } + + if (settings.size) { + extraAttrs += ' size="' + settings.size + '"'; + } + + if (settings.subtype) { + extraAttrs += ' type="' + settings.subtype + '"'; + } + + if (self.disabled()) { + extraAttrs += ' disabled="disabled"'; + } + + if (settings.multiline) { + return ( + '<textarea id="' + id + '" class="' + self.classes() + '" ' + + (settings.rows ? ' rows="' + settings.rows + '"' : '') + + ' hidefocus="true"' + extraAttrs + '>' + value + + '</textarea>' + ); + } + + return '<input id="' + id + '" class="' + self.classes() + '" value="' + value + '" hidefocus="true"' + extraAttrs + '>'; + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this; + + DomUtils.on(self.getEl(), 'change', function(e) { + self.fire('change', e); + }); + + return self._super(); + }, + + remove: function() { + DomUtils.off(this.getEl()); + this._super(); + } + }); +}); + +// Included from: js/tinymce/classes/ui/Throbber.js + +/** + * Throbber.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class enables you to display a Throbber for any element. + * + * @-x-less Throbber.less + * @class tinymce.ui.Throbber + */ +define("tinymce/ui/Throbber", [ + "tinymce/ui/DomUtils" +], function(DomUtils) { + "use strict"; + + /** + * Constructs a new throbber. + * + * @constructor + * @param {Element} elm DOM Html element to display throbber in. + */ + return function(elm) { + var self = this, state; + + /** + * Shows the throbber. + * + * @method show + * @param {Number} [time] Time to wait before showing. + * @return {tinymce.ui.Throbber} Current throbber instance. + */ + self.show = function(time) { + self.hide(); + + state = true; + + window.setTimeout(function() { + if (state) { + elm.appendChild(DomUtils.createFragment('<div class="mce-throbber"></div>')); + } + }, time || 0); + + return self; + }; + + /** + * Hides the throbber. + * + * @method hide + * @return {tinymce.ui.Throbber} Current throbber instance. + */ + self.hide = function() { + var child = elm.lastChild; + + if (child && child.className.indexOf('throbber') != -1) { + child.parentNode.removeChild(child); + } + + state = false; + + return self; + }; + }; +}); + +expose(["tinymce/dom/Sizzle","tinymce/html/Styles","tinymce/dom/EventUtils","tinymce/dom/TreeWalker","tinymce/util/Tools","tinymce/dom/Range","tinymce/html/Entities","tinymce/Env","tinymce/dom/StyleSheetLoader","tinymce/dom/DOMUtils","tinymce/dom/ScriptLoader","tinymce/AddOnManager","tinymce/html/Node","tinymce/html/Schema","tinymce/html/SaxParser","tinymce/html/DomParser","tinymce/html/Writer","tinymce/html/Serializer","tinymce/dom/Serializer","tinymce/dom/TridentSelection","tinymce/util/VK","tinymce/dom/ControlSelection","tinymce/dom/RangeUtils","tinymce/dom/Selection","tinymce/Formatter","tinymce/UndoManager","tinymce/EnterKey","tinymce/ForceBlocks","tinymce/EditorCommands","tinymce/util/URI","tinymce/util/Class","tinymce/ui/Selector","tinymce/ui/Collection","tinymce/ui/DomUtils","tinymce/ui/Control","tinymce/ui/Factory","tinymce/ui/KeyboardNavigation","tinymce/ui/Container","tinymce/ui/DragHelper","tinymce/ui/Scrollable","tinymce/ui/Panel","tinymce/ui/Movable","tinymce/ui/Resizable","tinymce/ui/FloatPanel","tinymce/ui/Window","tinymce/ui/MessageBox","tinymce/WindowManager","tinymce/util/Quirks","tinymce/util/Observable","tinymce/Shortcuts","tinymce/Editor","tinymce/util/I18n","tinymce/FocusManager","tinymce/EditorManager","tinymce/LegacyInput","tinymce/util/XHR","tinymce/util/JSON","tinymce/util/JSONRequest","tinymce/util/JSONP","tinymce/util/LocalStorage","tinymce/Compat","tinymce/ui/Layout","tinymce/ui/AbsoluteLayout","tinymce/ui/Tooltip","tinymce/ui/Widget","tinymce/ui/Button","tinymce/ui/ButtonGroup","tinymce/ui/Checkbox","tinymce/ui/PanelButton","tinymce/ui/ColorButton","tinymce/ui/ComboBox","tinymce/ui/Path","tinymce/ui/ElementPath","tinymce/ui/FormItem","tinymce/ui/Form","tinymce/ui/FieldSet","tinymce/ui/FilePicker","tinymce/ui/FitLayout","tinymce/ui/FlexLayout","tinymce/ui/FlowLayout","tinymce/ui/FormatControls","tinymce/ui/GridLayout","tinymce/ui/Iframe","tinymce/ui/Label","tinymce/ui/Toolbar","tinymce/ui/MenuBar","tinymce/ui/MenuButton","tinymce/ui/ListBox","tinymce/ui/MenuItem","tinymce/ui/Menu","tinymce/ui/Radio","tinymce/ui/ResizeHandle","tinymce/ui/Spacer","tinymce/ui/SplitButton","tinymce/ui/StackLayout","tinymce/ui/TabPanel","tinymce/ui/TextBox","tinymce/ui/Throbber"]); +})(this); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/tinymce.jquery.min.js b/common/static/js/vendor/tinymce/js/tinymce/tinymce.jquery.min.js new file mode 100755 index 00000000000..c2e3ce83772 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/tinymce.jquery.min.js @@ -0,0 +1,10 @@ +// 4.0.20 (2014-03-18) +!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i<e.length;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){for(var r=0;r<n.length;r++){for(var i=e,o=n[r],a=o.split(/[.\/]/),l=0;l<a.length-1;++l)i[a[l]]===t&&(i[a[l]]={}),i=i[a[l]];i[a[a.length-1]]=s[o]}}var s={},l="tinymce/dom/Sizzle",c="tinymce/html/Styles",d="tinymce/dom/EventUtils",u="tinymce/dom/TreeWalker",f="tinymce/util/Tools",p="tinymce/dom/Range",m="tinymce/html/Entities",h="tinymce/Env",g="tinymce/dom/StyleSheetLoader",v="tinymce/dom/DOMUtils",y="tinymce/dom/ScriptLoader",b="tinymce/AddOnManager",C="tinymce/html/Node",x="tinymce/html/Schema",w="tinymce/html/SaxParser",_="tinymce/html/DomParser",N="tinymce/html/Writer",E="tinymce/html/Serializer",k="tinymce/dom/Serializer",S="tinymce/dom/TridentSelection",T="tinymce/util/VK",R="tinymce/dom/ControlSelection",A="tinymce/dom/RangeUtils",B="tinymce/dom/Selection",L="tinymce/Formatter",D="tinymce/UndoManager",M="tinymce/EnterKey",H="tinymce/ForceBlocks",P="tinymce/EditorCommands",O="tinymce/util/URI",I="tinymce/util/Class",F="tinymce/ui/Selector",z="tinymce/ui/Collection",W="tinymce/ui/DomUtils",V="tinymce/ui/Control",U="tinymce/ui/Factory",q="tinymce/ui/KeyboardNavigation",j="tinymce/ui/Container",$="tinymce/ui/DragHelper",K="tinymce/ui/Scrollable",Y="tinymce/ui/Panel",G="tinymce/ui/Movable",X="tinymce/ui/Resizable",J="tinymce/ui/FloatPanel",Q="tinymce/ui/Window",Z="tinymce/ui/MessageBox",et="tinymce/WindowManager",tt="tinymce/util/Quirks",nt="tinymce/util/Observable",rt="tinymce/Shortcuts",it="tinymce/Editor",ot="tinymce/util/I18n",at="tinymce/FocusManager",st="tinymce/EditorManager",lt="tinymce/LegacyInput",ct="tinymce/util/XHR",dt="tinymce/util/JSON",ut="tinymce/util/JSONRequest",ft="tinymce/util/JSONP",pt="tinymce/util/LocalStorage",mt="tinymce/Compat",ht="tinymce/ui/Layout",gt="tinymce/ui/AbsoluteLayout",vt="tinymce/ui/Tooltip",yt="tinymce/ui/Widget",bt="tinymce/ui/Button",Ct="tinymce/ui/ButtonGroup",xt="tinymce/ui/Checkbox",wt="tinymce/ui/PanelButton",_t="tinymce/ui/ColorButton",Nt="tinymce/ui/ComboBox",Et="tinymce/ui/Path",kt="tinymce/ui/ElementPath",St="tinymce/ui/FormItem",Tt="tinymce/ui/Form",Rt="tinymce/ui/FieldSet",At="tinymce/ui/FilePicker",Bt="tinymce/ui/FitLayout",Lt="tinymce/ui/FlexLayout",Dt="tinymce/ui/FlowLayout",Mt="tinymce/ui/FormatControls",Ht="tinymce/ui/GridLayout",Pt="tinymce/ui/Iframe",Ot="tinymce/ui/Label",It="tinymce/ui/Toolbar",Ft="tinymce/ui/MenuBar",zt="tinymce/ui/MenuButton",Wt="tinymce/ui/ListBox",Vt="tinymce/ui/MenuItem",Ut="tinymce/ui/Menu",qt="tinymce/ui/Radio",jt="tinymce/ui/ResizeHandle",$t="tinymce/ui/Spacer",Kt="tinymce/ui/SplitButton",Yt="tinymce/ui/StackLayout",Gt="tinymce/ui/TabPanel",Xt="tinymce/ui/TextBox",Jt="tinymce/ui/Throbber";r(l,[],function(){if(!window.jQuery)throw new Error("Load jQuery first");return jQuery.find}),r(c,[],function(){return function(e,t){function n(e,t,n,r){function i(e){return e=parseInt(e,10).toString(16),e.length>1?e:"0"+e}return"#"+i(t)+i(n)+i(r)}var r=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,i=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,o=/\s*([^:]+):\s*([^;]+);?/g,a=/\s+$/,s,l,c={},d,u="\ufeff";for(e=e||{},d=("\\\" \\' \\; \\: ; : "+u).split(" "),l=0;l<d.length;l++)c[d[l]]=u+l,c[u+l]=d[l];return{toHex:function(e){return e.replace(r,n)},parse:function(t){function s(e,t,n){var r,i,o,a;if(r=h[e+"-top"+t],r&&(i=h[e+"-right"+t],i&&(o=h[e+"-bottom"+t],o&&(a=h[e+"-left"+t])))){var s=[r,i,o,a];for(l=s.length-1;l--&&s[l]===s[l+1];);l>-1&&n||(h[e+t]=-1==l?s[0]:s.join(" "),delete h[e+"-top"+t],delete h[e+"-right"+t],delete h[e+"-bottom"+t],delete h[e+"-left"+t])}}function d(e){var t=h[e],n;if(t){for(t=t.split(" "),n=t.length;n--;)if(t[n]!==t[0])return!1;return h[e]=t[0],!0}}function u(e,t,n,r){d(t)&&d(n)&&d(r)&&(h[e]=h[t]+" "+h[n]+" "+h[r],delete h[t],delete h[n],delete h[r])}function f(e){return b=!0,c[e]}function p(e,t){return b&&(e=e.replace(/\uFEFF[0-9]/g,function(e){return c[e]})),t||(e=e.replace(/\\([\'\";:])/g,"$1")),e}function m(t,n,r,i,o,a){return(o=o||a)?(o=p(o),"'"+o.replace(/\'/g,"\\'")+"'"):(n=p(n||r||i),!e.allow_script_urls&&/(java|vb)script:/i.test(n.replace(/[\s\r\n]+/,""))?"":(C&&(n=C.call(x,n,"style")),"url('"+n.replace(/\'/g,"\\'")+"')"))}var h={},g,v,y,b,C=e.url_converter,x=e.url_converter_scope||this;if(t){for(t=t.replace(/[\u0000-\u001F]/g,""),t=t.replace(/\\[\"\';:\uFEFF]/g,f).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(e){return e.replace(/[;:]/g,f)});g=o.exec(t);){if(v=g[1].replace(a,"").toLowerCase(),y=g[2].replace(a,""),v&&y.length>0){if(!e.allow_script_urls&&("behavior"==v||/expression\s*\(/.test(y)))continue;"font-weight"===v&&"700"===y?y="bold":("color"===v||"background-color"===v)&&(y=y.toLowerCase()),y=y.replace(r,n),y=y.replace(i,m),h[v]=b?p(y,!0):y}o.lastIndex=g.index+g[0].length}s("border","",!0),s("border","-width"),s("border","-color"),s("border","-style"),s("padding",""),s("margin",""),u("border","border-width","border-style","border-color"),"medium none"===h.border&&delete h.border,"none"===h["border-image"]&&delete h["border-image"]}return h},serialize:function(e,n){function r(n){var r,o,a,l;if(r=t.styles[n])for(o=0,a=r.length;a>o;o++)n=r[o],l=e[n],l!==s&&l.length>0&&(i+=(i.length>0?" ":"")+n+": "+l+";")}var i="",o,a;if(n&&t&&t.styles)r("*"),r(n);else for(o in e)a=e[o],a!==s&&a.length>0&&(i+=(i.length>0?" ":"")+o+": "+a+";");return i}}}}),r(d,[],function(){function e(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r||!1):e.attachEvent&&e.attachEvent("on"+t,n)}function t(e,t,n,r){e.removeEventListener?e.removeEventListener(t,n,r||!1):e.detachEvent&&e.detachEvent("on"+t,n)}function n(e,t){function n(){return!1}function r(){return!0}var i,o=t||{},l;for(i in e)s[i]||(o[i]=e[i]);if(o.target||(o.target=o.srcElement||document),e&&a.test(e.type)&&e.pageX===l&&e.clientX!==l){var c=o.target.ownerDocument||document,d=c.documentElement,u=c.body;o.pageX=e.clientX+(d&&d.scrollLeft||u&&u.scrollLeft||0)-(d&&d.clientLeft||u&&u.clientLeft||0),o.pageY=e.clientY+(d&&d.scrollTop||u&&u.scrollTop||0)-(d&&d.clientTop||u&&u.clientTop||0)}return o.preventDefault=function(){o.isDefaultPrevented=r,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},o.stopPropagation=function(){o.isPropagationStopped=r,e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)},o.stopImmediatePropagation=function(){o.isImmediatePropagationStopped=r,o.stopPropagation()},o.isDefaultPrevented||(o.isDefaultPrevented=n,o.isPropagationStopped=n,o.isImmediatePropagationStopped=n),o}function r(n,r,i){function o(){i.domLoaded||(i.domLoaded=!0,r(c))}function a(){("complete"===l.readyState||"interactive"===l.readyState&&l.body)&&(t(l,"readystatechange",a),o())}function s(){try{l.documentElement.doScroll("left")}catch(e){return void setTimeout(s,0)}o()}var l=n.document,c={type:"ready"};return i.domLoaded?void r(c):(l.addEventListener?"complete"===l.readyState?o():e(n,"DOMContentLoaded",o):(e(l,"readystatechange",a),l.documentElement.doScroll&&n.self===n.top&&s()),void e(n,"load",o))}function i(){function i(e,t){var n,r,i,o,a=s[t];if(n=a&&a[e.type])for(r=0,i=n.length;i>r;r++)if(o=n[r],o&&o.func.call(o.scope,e)===!1&&e.preventDefault(),e.isImmediatePropagationStopped())return}var a=this,s={},l,c,d,u,f;c=o+(+new Date).toString(32),u="onmouseenter"in document.documentElement,d="onfocusin"in document.documentElement,f={mouseenter:"mouseover",mouseleave:"mouseout"},l=1,a.domLoaded=!1,a.events=s,a.bind=function(t,o,p,m){function h(e){i(n(e||_.event),g)}var g,v,y,b,C,x,w,_=window;if(t&&3!==t.nodeType&&8!==t.nodeType){for(t[c]?g=t[c]:(g=l++,t[c]=g,s[g]={}),m=m||t,o=o.split(" "),y=o.length;y--;)b=o[y],x=h,C=w=!1,"DOMContentLoaded"===b&&(b="ready"),a.domLoaded&&"ready"===b&&"complete"==t.readyState?p.call(m,n({type:b})):(u||(C=f[b],C&&(x=function(e){var t,r;if(t=e.currentTarget,r=e.relatedTarget,r&&t.contains)r=t.contains(r);else for(;r&&r!==t;)r=r.parentNode;r||(e=n(e||_.event),e.type="mouseout"===e.type?"mouseleave":"mouseenter",e.target=t,i(e,g))})),d||"focusin"!==b&&"focusout"!==b||(w=!0,C="focusin"===b?"focus":"blur",x=function(e){e=n(e||_.event),e.type="focus"===e.type?"focusin":"focusout",i(e,g)}),v=s[g][b],v?"ready"===b&&a.domLoaded?p({type:b}):v.push({func:p,scope:m}):(s[g][b]=v=[{func:p,scope:m}],v.fakeName=C,v.capture=w,v.nativeHandler=x,"ready"===b?r(t,x,a):e(t,C||b,x,w)));return t=v=0,p}},a.unbind=function(e,n,r){var i,o,l,d,u,f;if(!e||3===e.nodeType||8===e.nodeType)return a;if(i=e[c]){if(f=s[i],n){for(n=n.split(" "),l=n.length;l--;)if(u=n[l],o=f[u]){if(r)for(d=o.length;d--;)if(o[d].func===r){var p=o.nativeHandler,m=o.fakeName,h=o.capture;o=o.slice(0,d).concat(o.slice(d+1)),o.nativeHandler=p,o.fakeName=m,o.capture=h,f[u]=o}r&&0!==o.length||(delete f[u],t(e,o.fakeName||u,o.nativeHandler,o.capture))}}else{for(u in f)o=f[u],t(e,o.fakeName||u,o.nativeHandler,o.capture);f={}}for(u in f)return a;delete s[i];try{delete e[c]}catch(g){e[c]=null}}return a},a.fire=function(e,t,r){var o;if(!e||3===e.nodeType||8===e.nodeType)return a;r=n(null,r),r.type=t,r.target=e;do o=e[c],o&&i(r,o),e=e.parentNode||e.ownerDocument||e.defaultView||e.parentWindow;while(e&&!r.isPropagationStopped());return a},a.clean=function(e){var t,n,r=a.unbind;if(!e||3===e.nodeType||8===e.nodeType)return a;if(e[c]&&r(e),e.getElementsByTagName||(e=e.document),e&&e.getElementsByTagName)for(r(e),n=e.getElementsByTagName("*"),t=n.length;t--;)e=n[t],e[c]&&r(e);return a},a.destroy=function(){s={}},a.cancel=function(e){return e&&(e.preventDefault(),e.stopImmediatePropagation()),!1}}var o="mce-data-",a=/^(?:mouse|contextmenu)|click/,s={keyLocation:1,layerX:1,layerY:1,returnValue:1};return i.Event=new i,i.Event.bind(window,"ready",function(){}),i}),r(u,[],function(){return function(e,t){function n(e,n,r,i){var o,a;if(e){if(!i&&e[n])return e[n];if(e!=t){if(o=e[r])return o;for(a=e.parentNode;a&&a!=t;a=a.parentNode)if(o=a[r])return o}}}var r=e;this.current=function(){return r},this.next=function(e){return r=n(r,"firstChild","nextSibling",e)},this.prev=function(e){return r=n(r,"lastChild","previousSibling",e)}}}),r(f,[],function(){function e(e){return null===e||e===t?"":(""+e).replace(h,"")}function n(e,n){return n?"array"==n&&g(e)?!0:typeof e==n:e!==t}function r(e){var t=[],n,r;for(n=0,r=e.length;r>n;n++)t[n]=e[n];return t}function i(e,t,n){var r;for(e=e||[],t=t||",","string"==typeof e&&(e=e.split(t)),n=n||{},r=e.length;r--;)n[e[r]]={};return n}function o(e,n,r){var i,o;if(!e)return 0;if(r=r||e,e.length!==t){for(i=0,o=e.length;o>i;i++)if(n.call(r,e[i],i,e)===!1)return 0}else for(i in e)if(e.hasOwnProperty(i)&&n.call(r,e[i],i,e)===!1)return 0;return 1}function a(e,t){var n=[];return o(e,function(e){n.push(t(e))}),n}function s(e,t){var n=[];return o(e,function(e){(!t||t(e))&&n.push(e)}),n}function l(e,t,n){var r=this,i,o,a,s,l,c=0;if(e=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(e),a=e[3].match(/(^|\.)(\w+)$/i)[2],o=r.createNS(e[3].replace(/\.\w+$/,""),n),!o[a]){if("static"==e[2])return o[a]=t,void(this.onCreate&&this.onCreate(e[2],e[3],o[a]));t[a]||(t[a]=function(){},c=1),o[a]=t[a],r.extend(o[a].prototype,t),e[5]&&(i=r.resolve(e[5]).prototype,s=e[5].match(/\.(\w+)$/i)[1],l=o[a],o[a]=c?function(){return i[s].apply(this,arguments)}:function(){return this.parent=i[s],l.apply(this,arguments)},o[a].prototype[a]=o[a],r.each(i,function(e,t){o[a].prototype[t]=i[t]}),r.each(t,function(e,t){i[t]?o[a].prototype[t]=function(){return this.parent=i[t],e.apply(this,arguments)}:t!=a&&(o[a].prototype[t]=e)})),r.each(t["static"],function(e,t){o[a][t]=e})}}function c(e,t){var n,r;if(e)for(n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1}function d(e,n){var r,i,o,a=arguments,s;for(r=1,i=a.length;i>r;r++){n=a[r];for(o in n)n.hasOwnProperty(o)&&(s=n[o],s!==t&&(e[o]=s))}return e}function u(e,t,n,r){r=r||this,e&&(n&&(e=e[n]),o(e,function(e,i){return t.call(r,e,i,n)===!1?!1:void u(e,t,n,r)}))}function f(e,t){var n,r;for(t=t||window,e=e.split("."),n=0;n<e.length;n++)r=e[n],t[r]||(t[r]={}),t=t[r];return t}function p(e,t){var n,r;for(t=t||window,e=e.split("."),n=0,r=e.length;r>n&&(t=t[e[n]],t);n++);return t}function m(t,r){return!t||n(t,"array")?t:a(t.split(r||","),e)}var h=/^\s*|\s*$/g,g=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};return{trim:e,isArray:g,is:n,toArray:r,makeMap:i,each:o,map:a,grep:s,inArray:c,extend:d,create:l,walk:u,createNS:f,resolve:p,explode:m}}),r(p,[f],function(e){function t(n){function r(){return H.createDocumentFragment()}function i(e,t){_(F,e,t)}function o(e,t){_(z,e,t)}function a(e){i(e.parentNode,$(e))}function s(e){i(e.parentNode,$(e)+1)}function l(e){o(e.parentNode,$(e))}function c(e){o(e.parentNode,$(e)+1)}function d(e){e?(M[U]=M[V],M[q]=M[W]):(M[V]=M[U],M[W]=M[q]),M.collapsed=F}function u(e){a(e),c(e)}function f(e){i(e,0),o(e,1===e.nodeType?e.childNodes.length:e.nodeValue.length)}function p(e,t){var n=M[V],r=M[W],i=M[U],o=M[q],a=t.startContainer,s=t.startOffset,l=t.endContainer,c=t.endOffset;return 0===e?w(n,r,a,s):1===e?w(i,o,a,s):2===e?w(i,o,l,c):3===e?w(n,r,l,c):void 0}function m(){N(I)}function h(){return N(P)}function g(){return N(O)}function v(e){var t=this[V],r=this[W],i,o;3!==t.nodeType&&4!==t.nodeType||!t.nodeValue?(t.childNodes.length>0&&(o=t.childNodes[r]),o?t.insertBefore(e,o):3==t.nodeType?n.insertAfter(e,t):t.appendChild(e)):r?r>=t.nodeValue.length?n.insertAfter(e,t):(i=t.splitText(r),t.parentNode.insertBefore(e,i)):t.parentNode.insertBefore(e,t)}function y(e){var t=M.extractContents();M.insertNode(e),e.appendChild(t),M.selectNode(e)}function b(){return j(new t(n),{startContainer:M[V],startOffset:M[W],endContainer:M[U],endOffset:M[q],collapsed:M.collapsed,commonAncestorContainer:M.commonAncestorContainer})}function C(e,t){var n;if(3==e.nodeType)return e;if(0>t)return e;for(n=e.firstChild;n&&t>0;)--t,n=n.nextSibling;return n?n:e}function x(){return M[V]==M[U]&&M[W]==M[q]}function w(e,t,r,i){var o,a,s,l,c,d;if(e==r)return t==i?0:i>t?-1:1;for(o=r;o&&o.parentNode!=e;)o=o.parentNode;if(o){for(a=0,s=e.firstChild;s!=o&&t>a;)a++,s=s.nextSibling;return a>=t?-1:1}for(o=e;o&&o.parentNode!=r;)o=o.parentNode;if(o){for(a=0,s=r.firstChild;s!=o&&i>a;)a++,s=s.nextSibling;return i>a?-1:1}for(l=n.findCommonAncestor(e,r),c=e;c&&c.parentNode!=l;)c=c.parentNode;for(c||(c=l),d=r;d&&d.parentNode!=l;)d=d.parentNode;if(d||(d=l),c==d)return 0;for(s=l.firstChild;s;){if(s==c)return-1;if(s==d)return 1;s=s.nextSibling}}function _(e,t,r){var i,o;for(e?(M[V]=t,M[W]=r):(M[U]=t,M[q]=r),i=M[U];i.parentNode;)i=i.parentNode;for(o=M[V];o.parentNode;)o=o.parentNode;o==i?w(M[V],M[W],M[U],M[q])>0&&M.collapse(e):M.collapse(e),M.collapsed=x(),M.commonAncestorContainer=n.findCommonAncestor(M[V],M[U])}function N(e){var t,n=0,r=0,i,o,a,s,l,c;if(M[V]==M[U])return E(e);for(t=M[U],i=t.parentNode;i;t=i,i=i.parentNode){if(i==M[V])return k(t,e);++n}for(t=M[V],i=t.parentNode;i;t=i,i=i.parentNode){if(i==M[U])return S(t,e);++r}for(o=r-n,a=M[V];o>0;)a=a.parentNode,o--;for(s=M[U];0>o;)s=s.parentNode,o++;for(l=a.parentNode,c=s.parentNode;l!=c;l=l.parentNode,c=c.parentNode)a=l,s=c;return T(a,s,e)}function E(e){var t,n,i,o,a,s,l,c,d;if(e!=I&&(t=r()),M[W]==M[q])return t;if(3==M[V].nodeType){if(n=M[V].nodeValue,i=n.substring(M[W],M[q]),e!=O&&(o=M[V],c=M[W],d=M[q]-M[W],0===c&&d>=o.nodeValue.length-1?o.parentNode.removeChild(o):o.deleteData(c,d),M.collapse(F)),e==I)return;return i.length>0&&t.appendChild(H.createTextNode(i)),t}for(o=C(M[V],M[W]),a=M[q]-M[W];o&&a>0;)s=o.nextSibling,l=L(o,e),t&&t.appendChild(l),--a,o=s;return e!=O&&M.collapse(F),t}function k(e,t){var n,i,o,a,s,l;if(t!=I&&(n=r()),i=R(e,t),n&&n.appendChild(i),o=$(e),a=o-M[W],0>=a)return t!=O&&(M.setEndBefore(e),M.collapse(z)),n;for(i=e.previousSibling;a>0;)s=i.previousSibling,l=L(i,t),n&&n.insertBefore(l,n.firstChild),--a,i=s;return t!=O&&(M.setEndBefore(e),M.collapse(z)),n}function S(e,t){var n,i,o,a,s,l;for(t!=I&&(n=r()),o=A(e,t),n&&n.appendChild(o),i=$(e),++i,a=M[q]-i,o=e.nextSibling;o&&a>0;)s=o.nextSibling,l=L(o,t),n&&n.appendChild(l),--a,o=s;return t!=O&&(M.setStartAfter(e),M.collapse(F)),n}function T(e,t,n){var i,o,a,s,l,c,d;for(n!=I&&(o=r()),i=A(e,n),o&&o.appendChild(i),a=$(e),s=$(t),++a,l=s-a,c=e.nextSibling;l>0;)d=c.nextSibling,i=L(c,n),o&&o.appendChild(i),c=d,--l;return i=R(t,n),o&&o.appendChild(i),n!=O&&(M.setStartAfter(e),M.collapse(F)),o}function R(e,t){var n=C(M[U],M[q]-1),r,i,o,a,s,l=n!=M[U];if(n==e)return B(n,l,z,t);for(r=n.parentNode,i=B(r,z,z,t);r;){for(;n;)o=n.previousSibling,a=B(n,l,z,t),t!=I&&i.insertBefore(a,i.firstChild),l=F,n=o;if(r==e)return i;n=r.previousSibling,r=r.parentNode,s=B(r,z,z,t),t!=I&&s.appendChild(i),i=s}}function A(e,t){var n=C(M[V],M[W]),r=n!=M[V],i,o,a,s,l;if(n==e)return B(n,r,F,t);for(i=n.parentNode,o=B(i,z,F,t);i;){for(;n;)a=n.nextSibling,s=B(n,r,F,t),t!=I&&o.appendChild(s),r=F,n=a;if(i==e)return o;n=i.nextSibling,i=i.parentNode,l=B(i,z,F,t),t!=I&&l.appendChild(o),o=l}}function B(e,t,r,i){var o,a,s,l,c;if(t)return L(e,i);if(3==e.nodeType){if(o=e.nodeValue,r?(l=M[W],a=o.substring(l),s=o.substring(0,l)):(l=M[q],a=o.substring(0,l),s=o.substring(l)),i!=O&&(e.nodeValue=s),i==I)return;return c=n.clone(e,z),c.nodeValue=a,c}if(i!=I)return n.clone(e,z)}function L(e,t){return t!=I?t==O?n.clone(e,F):e:void e.parentNode.removeChild(e)}function D(){return n.create("body",null,g()).outerText}var M=this,H=n.doc,P=0,O=1,I=2,F=!0,z=!1,W="startOffset",V="startContainer",U="endContainer",q="endOffset",j=e.extend,$=n.nodeIndex;return j(M,{startContainer:H,startOffset:0,endContainer:H,endOffset:0,collapsed:F,commonAncestorContainer:H,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:i,setEnd:o,setStartBefore:a,setStartAfter:s,setEndBefore:l,setEndAfter:c,collapse:d,selectNode:u,selectNodeContents:f,compareBoundaryPoints:p,deleteContents:m,extractContents:h,cloneContents:g,insertNode:v,surroundContents:y,cloneRange:b,toStringIE:D}),M}return t.prototype.toString=function(){return this.toStringIE()},t}),r(m,[f],function(e){function t(e){var t;return t=document.createElement("div"),t.innerHTML=e,t.textContent||t.innerText||e}function n(e,t){var n,r,i,a={};if(e){for(e=e.split(","),t=t||10,n=0;n<e.length;n+=2)r=String.fromCharCode(parseInt(e[n],t)),o[r]||(i="&"+e[n+1]+";",a[r]=i,a[i]=r);return a}}var r=e.makeMap,i,o,a,s=/[&<>\"\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,l=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=/[<>&\"\']/g,d=/&(#x|#)?([\w]+);/g,u={128:"\u20ac",130:"\u201a",131:"\u0192",132:"\u201e",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02c6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017d",145:"\u2018",146:"\u2019",147:"\u201c",148:"\u201d",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02dc",153:"\u2122",154:"\u0161",155:"\u203a",156:"\u0153",158:"\u017e",159:"\u0178"};o={'"':""","'":"'","<":"<",">":">","&":"&"},a={"<":"<",">":">","&":"&",""":'"',"'":"'"},i=n("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);var f={encodeRaw:function(e,t){return e.replace(t?s:l,function(e){return o[e]||e})},encodeAllRaw:function(e){return(""+e).replace(c,function(e){return o[e]||e})},encodeNumeric:function(e,t){return e.replace(t?s:l,function(e){return e.length>1?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":o[e]||"&#"+e.charCodeAt(0)+";"})},encodeNamed:function(e,t,n){return n=n||i,e.replace(t?s:l,function(e){return o[e]||n[e]||e})},getEncodeFunc:function(e,t){function a(e,n){return e.replace(n?s:l,function(e){return o[e]||t[e]||"&#"+e.charCodeAt(0)+";"||e})}function c(e,n){return f.encodeNamed(e,n,t)}return t=n(t)||i,e=r(e.replace(/\+/g,",")),e.named&&e.numeric?a:e.named?t?c:f.encodeNamed:e.numeric?f.encodeNumeric:f.encodeRaw},decode:function(e){return e.replace(d,function(e,n,r){return n?(r=parseInt(r,2===n.length?16:10),r>65535?(r-=65536,String.fromCharCode(55296+(r>>10),56320+(1023&r))):u[r]||String.fromCharCode(r)):a[e]||i[e]||t(e)})}};return f}),r(h,[],function(){var e=navigator,t=e.userAgent,n,r,i,o,a,s,l;n=window.opera&&window.opera.buildNumber,r=/WebKit/.test(t),i=!r&&!n&&/MSIE/gi.test(t)&&/Explorer/gi.test(e.appName),i=i&&/MSIE (\w+)\./.exec(t)[1],o=-1==t.indexOf("Trident/")||-1==t.indexOf("rv:")&&-1==e.appName.indexOf("Netscape")?!1:11,i=i||o,a=!r&&!o&&/Gecko/.test(t),s=-1!=t.indexOf("Mac"),l=/(iPad|iPhone)/.test(t);var c=!l||t.match(/AppleWebKit\/(\d*)/)[1]>=534;return{opera:n,webkit:r,ie:i,gecko:a,mac:s,iOS:l,contentEditable:c,transparentSrc:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",caretAfter:8!=i,range:window.getSelection&&"Range"in window,documentMode:i?document.documentMode||7:10}}),r(g,[],function(){return function(e,t){function n(t){e.getElementsByTagName("head")[0].appendChild(t)}function r(t,r,s){function l(){for(var e=v.passed,t=e.length;t--;)e[t]();v.status=2,v.passed=[],v.failed=[]}function c(){for(var e=v.failed,t=e.length;t--;)e[t]();v.status=3,v.passed=[],v.failed=[]}function d(){var e=navigator.userAgent.match(/WebKit\/(\d*)/);return!!(e&&e[1]<536)}function u(e,t){e()||((new Date).getTime()-g<a?window.setTimeout(t,0):c())}function f(){u(function(){for(var t=e.styleSheets,n,r=t.length,i;r--;)if(n=t[r],i=n.ownerNode?n.ownerNode:n.owningElement,i&&i.id===m.id)return l(),!0},f)}function p(){u(function(){try{var e=h.sheet.cssRules;return l(),!!e}catch(t){}},p)}var m,h,g,v;if(o[t]?v=o[t]:(v={passed:[],failed:[]},o[t]=v),r&&v.passed.push(r),s&&v.failed.push(s),1!=v.status){if(2==v.status)return void l();if(3==v.status)return void c();if(v.status=1,m=e.createElement("link"),m.rel="stylesheet",m.type="text/css",m.id="u"+i++,m.async=!1,m.defer=!1,g=(new Date).getTime(),"onload"in m&&!d())m.onload=f,m.onerror=c;else{if(navigator.userAgent.indexOf("Firefox")>0)return h=e.createElement("style"),h.textContent='@import "'+t+'"',p(),void n(h);f()}n(m),m.href=t}}var i=0,o={},a;t=t||{},a=t.maxLoadTime||5e3,this.load=r}}),r(v,[l,c,d,u,p,m,h,f,g],function(e,n,r,i,o,a,s,l,c){function d(e,t){var i=this,o;i.doc=e,i.win=window,i.files={},i.counter=0,i.stdMode=!v||e.documentMode>=8,i.boxModel=!v||"CSS1Compat"==e.compatMode||i.stdMode,i.hasOuterHTML="outerHTML"in e.createElement("a"),i.styleSheetLoader=new c(e),this.boundEvents=[],i.settings=t=h({keep_values:!1,hex_colors:1},t),i.schema=t.schema,i.styles=new n({url_converter:t.url_converter,url_converter_scope:t.url_converter_scope},t.schema),i.fixDoc(e),i.events=t.ownEvents?new r(t.proxy):r.Event,o=t.schema?t.schema.getBlockElements():{},i.isBlock=function(e){if(!e)return!1;var t=e.nodeType;return t?!(1!==t||!o[e.nodeName]):!!o[e]}}var u=l.each,f=l.is,p=l.grep,m=l.trim,h=l.extend,g=s.webkit,v=s.ie,y=/^([a-z0-9],?)+$/i,b=/^[ \t\r\n]*$/,C=l.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"," ");return d.prototype={root:null,props:{"for":"htmlFor","class":"className",className:"className",checked:"checked",disabled:"disabled",maxlength:"maxLength",readonly:"readOnly",selected:"selected",value:"value",id:"id",name:"name",type:"type"},fixDoc:function(e){var t=this.settings,n;if(v&&t.schema){"abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video".replace(/\w+/g,function(t){e.createElement(t)});for(n in t.schema.getCustomElements())e.createElement(n)}},clone:function(e,t){var n=this,r,i;return!v||1!==e.nodeType||t?e.cloneNode(t):(i=n.doc,t?r.firstChild:(r=i.createElement(e.nodeName),u(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),r))},getRoot:function(){var e=this;return e.get(e.settings.root_element)||e.doc.body},getViewPort:function(e){var t,n;return e=e?e:this.win,t=e.document,n=this.boxModel?t.documentElement:t.body,{x:e.pageXOffset||n.scrollLeft,y:e.pageYOffset||n.scrollTop,w:e.innerWidth||n.clientWidth,h:e.innerHeight||n.clientHeight}},getRect:function(e){var t=this,n,r;return e=t.get(e),n=t.getPos(e),r=t.getSize(e),{x:n.x,y:n.y,w:r.w,h:r.h}},getSize:function(e){var t=this,n,r;return e=t.get(e),n=t.getStyle(e,"width"),r=t.getStyle(e,"height"),-1===n.indexOf("px")&&(n=0),-1===r.indexOf("px")&&(r=0),{w:parseInt(n,10)||e.offsetWidth||e.clientWidth,h:parseInt(r,10)||e.offsetHeight||e.clientHeight}},getParent:function(e,t,n){return this.getParents(e,t,n,!1)},getParents:function(e,n,r,i){var o=this,a,s=[];for(e=o.get(e),i=i===t,r=r||("BODY"!=o.getRoot().nodeName?o.getRoot().parentNode:null),f(n,"string")&&(a=n,n="*"===n?function(e){return 1==e.nodeType}:function(e){return o.is(e,a)});e&&e!=r&&e.nodeType&&9!==e.nodeType;){if(!n||n(e)){if(!i)return e;s.push(e)}e=e.parentNode}return i?s:null},get:function(e){var t;return e&&this.doc&&"string"==typeof e&&(t=e,e=this.doc.getElementById(e),e&&e.id!==t)?this.doc.getElementsByName(t)[1]:e},getNext:function(e,t){return this._findSib(e,t,"nextSibling")},getPrev:function(e,t){return this._findSib(e,t,"previousSibling")},select:function(t,n){var r=this;return e(t,r.get(n)||r.get(r.settings.root_element)||r.doc,[])},is:function(n,r){var i;if(n.length===t){if("*"===r)return 1==n.nodeType;if(y.test(r)){for(r=r.toLowerCase().split(/,/),n=n.nodeName.toLowerCase(),i=r.length-1;i>=0;i--)if(r[i]==n)return!0;return!1}}if(n.nodeType&&1!=n.nodeType)return!1;var o=n.nodeType?[n]:n;return e(r,o[0].ownerDocument||o[0],null,o).length>0},add:function(e,t,n,r,i){var o=this;return this.run(e,function(e){var a;return a=f(t,"string")?o.doc.createElement(t):t,o.setAttribs(a,n),r&&(r.nodeType?a.appendChild(r):o.setHTML(a,r)),i?a:e.appendChild(a)})},create:function(e,t,n){return this.add(this.doc.createElement(e),e,t,n,1)},createHTML:function(e,t,n){var r="",i;r+="<"+e;for(i in t)t.hasOwnProperty(i)&&null!==t[i]&&(r+=" "+i+'="'+this.encode(t[i])+'"');return"undefined"!=typeof n?r+">"+n+"</"+e+">":r+" />"},createFragment:function(e){var t,n,r=this.doc,i;for(i=r.createElement("div"),t=r.createDocumentFragment(),e&&(i.innerHTML=e);n=i.firstChild;)t.appendChild(n);return t},remove:function(e,t){return this.run(e,function(e){var n,r=e.parentNode;if(!r)return null;if(t)for(;n=e.firstChild;)!v||3!==n.nodeType||n.nodeValue?r.insertBefore(n,e):e.removeChild(n);return r.removeChild(e)})},setStyle:function(e,t,n){return this.run(e,function(e){var r=this,i,o;if(t)if("string"==typeof t){i=e.style,t=t.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),"number"!=typeof n||C[t]||(n+="px"),"opacity"===t&&e.runtimeStyle&&"undefined"==typeof e.runtimeStyle.opacity&&(i.filter=""===n?"":"alpha(opacity="+100*n+")"),"float"==t&&(t="cssFloat"in e.style?"cssFloat":"styleFloat");try{i[t]=n}catch(a){}r.settings.update_styles&&e.removeAttribute("data-mce-style")}else for(o in t)r.setStyle(e,o,t[o])})},getStyle:function(e,n,r){if(e=this.get(e)){if(this.doc.defaultView&&r){n=n.replace(/[A-Z]/g,function(e){return"-"+e});try{return this.doc.defaultView.getComputedStyle(e,null).getPropertyValue(n)}catch(i){return null}}return n=n.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),"float"==n&&(n=v?"styleFloat":"cssFloat"),e.currentStyle&&r?e.currentStyle[n]:e.style?e.style[n]:t}},setStyles:function(e,t){this.setStyle(e,t)},css:function(e,t,n){this.setStyle(e,t,n)},removeAllAttribs:function(e){return this.run(e,function(e){var t,n=e.attributes;for(t=n.length-1;t>=0;t--)e.removeAttributeNode(n.item(t))})},setAttrib:function(e,t,n){var r=this;if(e&&t)return this.run(e,function(e){var i=r.settings,o=e.getAttribute(t);if(null!==n)switch(t){case"style":if(!f(n,"string"))return void u(n,function(t,n){r.setStyle(e,n,t)});i.keep_values&&(n?e.setAttribute("data-mce-style",n,2):e.removeAttribute("data-mce-style",2)),e.style.cssText=n;break;case"class":e.className=n||"";break;case"src":case"href":i.keep_values&&(i.url_converter&&(n=i.url_converter.call(i.url_converter_scope||r,n,t,e)),r.setAttrib(e,"data-mce-"+t,n,2));break;case"shape":e.setAttribute("data-mce-style",n)}f(n)&&null!==n&&0!==n.length?e.setAttribute(t,""+n,2):e.removeAttribute(t,2),o!=n&&i.onSetAttrib&&i.onSetAttrib({attrElm:e,attrName:t,attrValue:n})})},setAttribs:function(e,t){var n=this;return this.run(e,function(e){u(t,function(t,r){n.setAttrib(e,r,t)})})},getAttrib:function(e,t,n){var r,i=this,o;if(e=i.get(e),!e||1!==e.nodeType)return n===o?!1:n;if(f(n)||(n=""),/^(src|href|style|coords|shape)$/.test(t)&&(r=e.getAttribute("data-mce-"+t)))return r;if(v&&i.props[t]&&(r=e[i.props[t]],r=r&&r.nodeValue?r.nodeValue:r),r||(r=e.getAttribute(t,2)),/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(t))return e[i.props[t]]===!0&&""===r?t:r?t:"";if("FORM"===e.nodeName&&e.getAttributeNode(t))return e.getAttributeNode(t).nodeValue;if("style"===t&&(r=r||e.style.cssText,r&&(r=i.serializeStyle(i.parseStyle(r),e.nodeName),i.settings.keep_values&&e.setAttribute("data-mce-style",r))),g&&"class"===t&&r&&(r=r.replace(/(apple|webkit)\-[a-z\-]+/gi,"")),v)switch(t){case"rowspan":case"colspan":1===r&&(r="");break;case"size":("+0"===r||20===r||0===r)&&(r="");break;case"width":case"height":case"vspace":case"checked":case"disabled":case"readonly":0===r&&(r="");break;case"hspace":-1===r&&(r="");break;case"maxlength":case"tabindex":(32768===r||2147483647===r||"32768"===r)&&(r="");break;case"multiple":case"compact":case"noshade":case"nowrap":return 65535===r?t:n;case"shape":r=r.toLowerCase(); +break;default:0===t.indexOf("on")&&r&&(r=(""+r).replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/,"$1"))}return r!==o&&null!==r&&""!==r?""+r:n},getPos:function(e,t){var n=this,r=0,i=0,o,a=n.doc,s;if(e=n.get(e),t=t||a.body,e){if(t===a.body&&e.getBoundingClientRect)return s=e.getBoundingClientRect(),t=n.boxModel?a.documentElement:a.body,r=s.left+(a.documentElement.scrollLeft||a.body.scrollLeft)-t.clientLeft,i=s.top+(a.documentElement.scrollTop||a.body.scrollTop)-t.clientTop,{x:r,y:i};for(o=e;o&&o!=t&&o.nodeType;)r+=o.offsetLeft||0,i+=o.offsetTop||0,o=o.offsetParent;for(o=e.parentNode;o&&o!=t&&o.nodeType;)r-=o.scrollLeft||0,i-=o.scrollTop||0,o=o.parentNode}return{x:r,y:i}},parseStyle:function(e){return this.styles.parse(e)},serializeStyle:function(e,t){return this.styles.serialize(e,t)},addStyle:function(e){var t=this,n=t.doc,r,i;if(t!==d.DOM&&n===document){var o=d.DOM.addedStyles;if(o=o||[],o[e])return;o[e]=!0,d.DOM.addedStyles=o}i=n.getElementById("mceDefaultStyles"),i||(i=n.createElement("style"),i.id="mceDefaultStyles",i.type="text/css",r=n.getElementsByTagName("head")[0],r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i)),i.styleSheet?i.styleSheet.cssText+=e:i.appendChild(n.createTextNode(e))},loadCSS:function(e){var t=this,n=t.doc,r;return t!==d.DOM&&n===document?void d.DOM.loadCSS(e):(e||(e=""),r=n.getElementsByTagName("head")[0],void u(e.split(","),function(e){var i;t.files[e]||(t.files[e]=!0,i=t.create("link",{rel:"stylesheet",href:e}),v&&n.documentMode&&n.recalc&&(i.onload=function(){n.recalc&&n.recalc(),i.onload=null}),r.appendChild(i))}))},addClass:function(e,t){return this.run(e,function(e){var n;return t?this.hasClass(e,t)?e.className:(n=this.removeClass(e,t),e.className=n=(""!==n?n+" ":"")+t,n):0})},removeClass:function(e,t){var n=this,r;return n.run(e,function(e){var i;return n.hasClass(e,t)?(r||(r=new RegExp("(^|\\s+)"+t+"(\\s+|$)","g")),i=e.className.replace(r," "),i=m(" "!=i?i:""),e.className=i,i||(e.removeAttribute("class"),e.removeAttribute("className")),i):e.className})},hasClass:function(e,t){return e=this.get(e),e&&t?-1!==(" "+e.className+" ").indexOf(" "+t+" "):!1},toggleClass:function(e,n,r){r=r===t?!this.hasClass(e,n):r,this.hasClass(e,n)!==r&&(r?this.addClass(e,n):this.removeClass(e,n))},show:function(e){return this.setStyle(e,"display","block")},hide:function(e){return this.setStyle(e,"display","none")},isHidden:function(e){return e=this.get(e),!e||"none"==e.style.display||"none"==this.getStyle(e,"display")},uniqueId:function(e){return(e?e:"mce_")+this.counter++},setHTML:function(e,t){var n=this;return n.run(e,function(e){if(v){for(;e.firstChild;)e.removeChild(e.firstChild);try{e.innerHTML="<br />"+t,e.removeChild(e.firstChild)}catch(r){var i=n.create("div");i.innerHTML="<br />"+t,u(p(i.childNodes),function(t,n){n&&e.canHaveHTML&&e.appendChild(t)})}}else e.innerHTML=t;return t})},getOuterHTML:function(e){var t,n=this;return(e=n.get(e))?1===e.nodeType&&n.hasOuterHTML?e.outerHTML:(t=(e.ownerDocument||n.doc).createElement("body"),t.appendChild(e.cloneNode(!0)),t.innerHTML):null},setOuterHTML:function(e,t,n){var r=this;return r.run(e,function(e){function i(){var i,o;for(o=n.createElement("body"),o.innerHTML=t,i=o.lastChild;i;)r.insertAfter(i.cloneNode(!0),e),i=i.previousSibling;r.remove(e)}if(1==e.nodeType)if(n=n||e.ownerDocument||r.doc,v)try{1==e.nodeType&&r.hasOuterHTML?e.outerHTML=t:i()}catch(o){i()}else i()})},decode:a.decode,encode:a.encodeAllRaw,insertAfter:function(e,t){return t=this.get(t),this.run(e,function(e){var n,r;return n=t.parentNode,r=t.nextSibling,r?n.insertBefore(e,r):n.appendChild(e),e})},replace:function(e,t,n){var r=this;return r.run(t,function(t){return f(t,"array")&&(e=e.cloneNode(!0)),n&&u(p(t.childNodes),function(t){e.appendChild(t)}),t.parentNode.replaceChild(e,t)})},rename:function(e,t){var n=this,r;return e.nodeName!=t.toUpperCase()&&(r=n.create(t),u(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),n.replace(r,e,1)),r||e},findCommonAncestor:function(e,t){for(var n=e,r;n;){for(r=t;r&&n!=r;)r=r.parentNode;if(n==r)break;n=n.parentNode}return!n&&e.ownerDocument?e.ownerDocument.documentElement:n},toHex:function(e){return this.styles.toHex(l.trim(e))},run:function(e,t,n){var r=this,i;return"string"==typeof e&&(e=r.get(e)),e?(n=n||this,e.nodeType||!e.length&&0!==e.length?t.call(n,e):(i=[],u(e,function(e,o){e&&("string"==typeof e&&(e=r.get(e)),i.push(t.call(n,e,o)))}),i)):!1},getAttribs:function(e){var t;if(e=this.get(e),!e)return[];if(v){if(t=[],"OBJECT"==e.nodeName)return e.attributes;"OPTION"===e.nodeName&&this.getAttrib(e,"selected")&&t.push({specified:1,nodeName:"selected"});var n=/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi;return e.cloneNode(!1).outerHTML.replace(n,"").replace(/[\w:\-]+/gi,function(e){t.push({specified:1,nodeName:e})}),t}return e.attributes},isEmpty:function(e,t){var n=this,r,o,a,s,l,c=0;if(e=e.firstChild){s=new i(e,e.parentNode),t=t||n.schema?n.schema.getNonEmptyElements():null;do{if(a=e.nodeType,1===a){if(e.getAttribute("data-mce-bogus"))continue;if(l=e.nodeName.toLowerCase(),t&&t[l]){if("br"===l){c++;continue}return!1}for(o=n.getAttribs(e),r=e.attributes.length;r--;)if(l=e.attributes[r].nodeName,"name"===l||"data-mce-bookmark"===l)return!1}if(8==a)return!1;if(3===a&&!b.test(e.nodeValue))return!1}while(e=s.next())}return 1>=c},createRng:function(){var e=this.doc;return e.createRange?e.createRange():new o(this)},nodeIndex:function(e,t){var n=0,r,i;if(e)for(r=e.nodeType,e=e.previousSibling;e;e=e.previousSibling)i=e.nodeType,(!t||3!=i||i!=r&&e.nodeValue.length)&&(n++,r=i);return n},split:function(e,t,n){function r(e){function t(e){var t=e.previousSibling&&"SPAN"==e.previousSibling.nodeName,n=e.nextSibling&&"SPAN"==e.nextSibling.nodeName;return t&&n}var n,o=e.childNodes,a=e.nodeType;if(1!=a||"bookmark"!=e.getAttribute("data-mce-type")){for(n=o.length-1;n>=0;n--)r(o[n]);if(9!=a){if(3==a&&e.nodeValue.length>0){var s=m(e.nodeValue).length;if(!i.isBlock(e.parentNode)||s>0||0===s&&t(e))return}else if(1==a&&(o=e.childNodes,1==o.length&&o[0]&&1==o[0].nodeType&&"bookmark"==o[0].getAttribute("data-mce-type")&&e.parentNode.insertBefore(o[0],e),o.length||/^(br|hr|input|img)$/i.test(e.nodeName)))return;i.remove(e)}return e}}var i=this,o=i.createRng(),a,s,l;return e&&t?(o.setStart(e.parentNode,i.nodeIndex(e)),o.setEnd(t.parentNode,i.nodeIndex(t)),a=o.extractContents(),o=i.createRng(),o.setStart(t.parentNode,i.nodeIndex(t)+1),o.setEnd(e.parentNode,i.nodeIndex(e)+1),s=o.extractContents(),l=e.parentNode,l.insertBefore(r(a),e),n?l.replaceChild(n,t):l.insertBefore(t,e),l.insertBefore(r(s),e),i.remove(e),n||t):void 0},bind:function(e,t,n,r){var i=this;if(l.isArray(e)){for(var o=e.length;o--;)e[o]=i.bind(e[o],t,n,r);return e}return!i.settings.collect||e!==i.doc&&e!==i.win||i.boundEvents.push([e,t,n,r]),i.events.bind(e,t,n,r||i)},unbind:function(e,t,n){var r=this,i;if(l.isArray(e)){for(i=e.length;i--;)e[i]=r.unbind(e[i],t,n);return e}if(r.boundEvents&&(e===r.doc||e===r.win))for(i=r.boundEvents.length;i--;){var o=r.boundEvents[i];e!=o[0]||t&&t!=o[1]||n&&n!=o[2]||this.events.unbind(o[0],o[1],o[2])}return this.events.unbind(e,t,n)},fire:function(e,t,n){return this.events.fire(e,t,n)},getContentEditable:function(e){var t;return 1!=e.nodeType?null:(t=e.getAttribute("data-mce-contenteditable"),t&&"inherit"!==t?t:"inherit"!==e.contentEditable?e.contentEditable:null)},destroy:function(){var t=this;if(t.boundEvents){for(var n=t.boundEvents.length;n--;){var r=t.boundEvents[n];this.events.unbind(r[0],r[1],r[2])}t.boundEvents=null}e.setDocument&&e.setDocument(),t.win=t.doc=t.root=t.events=t.frag=null},dumpRng:function(e){return"startContainer: "+e.startContainer.nodeName+", startOffset: "+e.startOffset+", endContainer: "+e.endContainer.nodeName+", endOffset: "+e.endOffset},_findSib:function(e,t,n){var r=this,i=t;if(e)for("string"==typeof i&&(i=function(e){return r.is(e,t)}),e=e[n];e;e=e[n])if(i(e))return e;return null}},d.DOM=new d(document),d}),r(y,[v,f],function(e,t){function n(){function e(e,t){function n(){o.remove(s),a&&(a.onreadystatechange=a.onload=a=null),t()}function i(){"undefined"!=typeof console&&console.log&&console.log("Failed to load: "+e)}var o=r,a,s;s=o.uniqueId(),a=document.createElement("script"),a.id=s,a.type="text/javascript",a.src=e,"onreadystatechange"in a?a.onreadystatechange=function(){/loaded|complete/.test(a.readyState)&&n()}:a.onload=n,a.onerror=i,(document.getElementsByTagName("head")[0]||document.body).appendChild(a)}var t=0,n=1,a=2,s={},l=[],c={},d=[],u=0,f;this.isDone=function(e){return s[e]==a},this.markDone=function(e){s[e]=a},this.add=this.load=function(e,n,r){var i=s[e];i==f&&(l.push(e),s[e]=t),n&&(c[e]||(c[e]=[]),c[e].push({func:n,scope:r||this}))},this.loadQueue=function(e,t){this.loadScripts(l,e,t)},this.loadScripts=function(t,r,l){function p(e){i(c[e],function(e){e.func.call(e.scope)}),c[e]=f}var m;d.push({func:r,scope:l||this}),(m=function(){var r=o(t);t.length=0,i(r,function(t){return s[t]==a?void p(t):void(s[t]!=n&&(s[t]=n,u++,e(t,function(){s[t]=a,u--,p(t),m()})))}),u||(i(d,function(e){e.func.call(e.scope)}),d.length=0)})()}}var r=e.DOM,i=t.each,o=t.grep;return n.ScriptLoader=new n,n}),r(b,[y,f],function(e,n){function r(){var e=this;e.items=[],e.urls={},e.lookup={}}var i=n.each;return r.prototype={get:function(e){return this.lookup[e]?this.lookup[e].instance:t},dependencies:function(e){var t;return this.lookup[e]&&(t=this.lookup[e].dependencies),t||[]},requireLangPack:function(t,n){if(r.language&&r.languageLoad!==!1){if(n&&new RegExp("([, ]|\\b)"+r.language+"([, ]|\\b)").test(n)===!1)return;e.ScriptLoader.add(this.urls[t]+"/langs/"+r.language+".js")}},add:function(e,t,n){return this.items.push(t),this.lookup[e]={instance:t,dependencies:n},t},createUrl:function(e,t){return"object"==typeof t?t:{prefix:e.prefix,resource:t,suffix:e.suffix}},addComponents:function(t,n){var r=this.urls[t];i(n,function(t){e.ScriptLoader.add(r+"/"+t)})},load:function(n,o,a,s){function l(){var r=c.dependencies(n);i(r,function(e){var n=c.createUrl(o,e);c.load(n.resource,n,t,t)}),a&&a.call(s?s:e)}var c=this,d=o;c.urls[n]||("object"==typeof o&&(d=o.prefix+o.resource+o.suffix),0!==d.indexOf("/")&&-1==d.indexOf("://")&&(d=r.baseURL+"/"+d),c.urls[n]=d.substring(0,d.lastIndexOf("/")),c.lookup[n]?l():e.ScriptLoader.add(d,l,s))}},r.PluginManager=new r,r.ThemeManager=new r,r}),r(C,[],function(){function e(e,t,n){var r,i,o=n?"lastChild":"firstChild",a=n?"prev":"next";if(e[o])return e[o];if(e!==t){if(r=e[a])return r;for(i=e.parent;i&&i!==t;i=i.parent)if(r=i[a])return r}}function t(e,t){this.name=e,this.type=t,1===t&&(this.attributes=[],this.attributes.map={})}var n=/^[ \t\r\n]*$/,r={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11};return t.prototype={replace:function(e){var t=this;return e.parent&&e.remove(),t.insert(e,t),t.remove(),t},attr:function(e,t){var n=this,r,i,o;if("string"!=typeof e){for(i in e)n.attr(i,e[i]);return n}if(r=n.attributes){if(t!==o){if(null===t){if(e in r.map)for(delete r.map[e],i=r.length;i--;)if(r[i].name===e)return r=r.splice(i,1),n;return n}if(e in r.map){for(i=r.length;i--;)if(r[i].name===e){r[i].value=t;break}}else r.push({name:e,value:t});return r.map[e]=t,n}return r.map[e]}},clone:function(){var e=this,n=new t(e.name,e.type),r,i,o,a,s;if(o=e.attributes){for(s=[],s.map={},r=0,i=o.length;i>r;r++)a=o[r],"id"!==a.name&&(s[s.length]={name:a.name,value:a.value},s.map[a.name]=a.value);n.attributes=s}return n.value=e.value,n.shortEnded=e.shortEnded,n},wrap:function(e){var t=this;return t.parent.insert(e,t),e.append(t),t},unwrap:function(){var e=this,t,n;for(t=e.firstChild;t;)n=t.next,e.insert(t,e,!0),t=n;e.remove()},remove:function(){var e=this,t=e.parent,n=e.next,r=e.prev;return t&&(t.firstChild===e?(t.firstChild=n,n&&(n.prev=null)):r.next=n,t.lastChild===e?(t.lastChild=r,r&&(r.next=null)):n.prev=r,e.parent=e.next=e.prev=null),e},append:function(e){var t=this,n;return e.parent&&e.remove(),n=t.lastChild,n?(n.next=e,e.prev=n,t.lastChild=e):t.lastChild=t.firstChild=e,e.parent=t,e},insert:function(e,t,n){var r;return e.parent&&e.remove(),r=t.parent||this,n?(t===r.firstChild?r.firstChild=e:t.prev.next=e,e.prev=t.prev,e.next=t,t.prev=e):(t===r.lastChild?r.lastChild=e:t.next.prev=e,e.next=t.next,e.prev=t,t.next=e),e.parent=r,e},getAll:function(t){var n=this,r,i=[];for(r=n.firstChild;r;r=e(r,n))r.name===t&&i.push(r);return i},empty:function(){var t=this,n,r,i;if(t.firstChild){for(n=[],i=t.firstChild;i;i=e(i,t))n.push(i);for(r=n.length;r--;)i=n[r],i.parent=i.firstChild=i.lastChild=i.next=i.prev=null}return t.firstChild=t.lastChild=null,t},isEmpty:function(t){var r=this,i=r.firstChild,o,a;if(i)do{if(1===i.type){if(i.attributes.map["data-mce-bogus"])continue;if(t[i.name])return!1;for(o=i.attributes.length;o--;)if(a=i.attributes[o].name,"name"===a||0===a.indexOf("data-mce-"))return!1}if(8===i.type)return!1;if(3===i.type&&!n.test(i.value))return!1}while(i=e(i,r));return!0},walk:function(t){return e(this,null,t)}},t.create=function(e,n){var i,o;if(i=new t(e,r[e]||1),n)for(o in n)i.attr(o,n[o]);return i},t}),r(x,[f],function(e){function t(e,t){return e?e.split(t||" "):[]}function n(e){function n(e,n,r){function i(e){var t={},n,r;for(n=0,r=e.length;r>n;n++)t[e[n]]={};return t}var o,l,c,d=arguments;for(r=r||[],n=n||"","string"==typeof r&&(r=t(r)),l=3;l<d.length;l++)"string"==typeof d[l]&&(d[l]=t(d[l])),r.push.apply(r,d[l]);for(e=t(e),o=e.length;o--;)c=[].concat(s,t(n)),a[e[o]]={attributes:i(c),attributesOrder:c,children:i(r)}}function i(e,n){var r,i,o,s;for(e=t(e),r=e.length,n=t(n);r--;)for(i=a[e[r]],o=0,s=n.length;s>o;o++)i.attributes[n[o]]={},i.attributesOrder.push(n[o])}var a={},s,l,c,d,u,f;return r[e]?r[e]:(s=t("id accesskey class dir lang style tabindex title"),l=t("address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul"),c=t("a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd label map noscript object q s samp script select small span strong sub sup textarea u var #text #comment"),"html4"!=e&&(s.push.apply(s,t("contenteditable contextmenu draggable dropzone hidden spellcheck translate")),l.push.apply(l,t("article aside details dialog figure header footer hgroup section nav")),c.push.apply(c,t("audio canvas command datalist mark meter output progress time wbr video ruby bdi keygen"))),"html5-strict"!=e&&(s.push("xml:lang"),f=t("acronym applet basefont big font strike tt"),c.push.apply(c,f),o(f,function(e){n(e,"",c)}),u=t("center dir isindex noframes"),l.push.apply(l,u),d=[].concat(l,c),o(u,function(e){n(e,"",d)})),d=d||[].concat(l,c),n("html","manifest","head body"),n("head","","base command link meta noscript script style title"),n("title hr noscript br"),n("base","href target"),n("link","href rel media hreflang type sizes hreflang"),n("meta","name http-equiv content charset"),n("style","media type scoped"),n("script","src async defer type charset"),n("body","onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload",d),n("address dt dd div caption","",d),n("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn","",c),n("blockquote","cite",d),n("ol","reversed start type","li"),n("ul","","li"),n("li","value",d),n("dl","","dt dd"),n("a","href target rel media hreflang type",c),n("q","cite",c),n("ins del","cite datetime",d),n("img","src alt usemap ismap width height"),n("iframe","src name width height",d),n("embed","src type width height"),n("object","data type typemustmatch name usemap form width height",d,"param"),n("param","name value"),n("map","name",d,"area"),n("area","alt coords shape href target rel media hreflang type"),n("table","border","caption colgroup thead tfoot tbody tr"+("html4"==e?" col":"")),n("colgroup","span","col"),n("col","span"),n("tbody thead tfoot","","tr"),n("tr","","td th"),n("td","colspan rowspan headers",d),n("th","colspan rowspan headers scope abbr",d),n("form","accept-charset action autocomplete enctype method name novalidate target",d),n("fieldset","disabled form name",d,"legend"),n("label","form for",c),n("input","accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern readonly required size src step type value width"),n("button","disabled form formaction formenctype formmethod formnovalidate formtarget name type value","html4"==e?d:c),n("select","disabled form multiple name required size","option optgroup"),n("optgroup","disabled label","option"),n("option","disabled label selected value"),n("textarea","cols dirname disabled form maxlength name readonly required rows wrap"),n("menu","type label",d,"li"),n("noscript","",d),"html4"!=e&&(n("wbr"),n("ruby","",c,"rt rp"),n("figcaption","",d),n("mark rt rp summary bdi","",c),n("canvas","width height",d),n("video","src crossorigin poster preload autoplay mediagroup loop muted controls width height",d,"track source"),n("audio","src crossorigin preload autoplay mediagroup loop muted controls",d,"track source"),n("source","src type media"),n("track","kind src srclang label default"),n("datalist","",c,"option"),n("article section nav aside header footer","",d),n("hgroup","","h1 h2 h3 h4 h5 h6"),n("figure","",d,"figcaption"),n("time","datetime",c),n("dialog","open",d),n("command","type label icon disabled checked radiogroup command"),n("output","for form name",c),n("progress","value max",c),n("meter","value min max low high optimum",c),n("details","open",d,"summary"),n("keygen","autofocus challenge disabled form keytype name")),"html5-strict"!=e&&(i("script","language xml:space"),i("style","xml:space"),i("object","declare classid codebase codetype archive standby align border hspace vspace"),i("param","valuetype type"),i("a","charset name rev shape coords"),i("br","clear"),i("applet","codebase archive code object alt name width height align hspace vspace"),i("img","name longdesc align border hspace vspace"),i("iframe","longdesc frameborder marginwidth marginheight scrolling align"),i("font basefont","size color face"),i("input","usemap align"),i("select","onchange"),i("textarea"),i("h1 h2 h3 h4 h5 h6 div p legend caption","align"),i("ul","type compact"),i("li","type"),i("ol dl menu dir","compact"),i("pre","width xml:space"),i("hr","align noshade size width"),i("isindex","prompt"),i("table","summary width frame rules cellspacing cellpadding align bgcolor"),i("col","width align char charoff valign"),i("colgroup","width align char charoff valign"),i("thead","align char charoff valign"),i("tr","align char charoff valign bgcolor"),i("th","axis align char charoff valign nowrap bgcolor width height"),i("form","accept"),i("td","abbr axis scope align char charoff valign nowrap bgcolor width height"),i("tfoot","align char charoff valign"),i("tbody","align char charoff valign"),i("area","nohref"),i("body","background bgcolor text link vlink alink")),"html4"!=e&&(i("input button select textarea","autofocus"),i("input textarea","placeholder"),i("a","download"),i("link script img","crossorigin"),i("iframe","srcdoc sandbox seamless allowfullscreen")),o(t("a form meter progress dfn"),function(e){a[e]&&delete a[e].children[e]}),delete a.caption.children.table,r[e]=a,a)}var r={},i=e.makeMap,o=e.each,a=e.extend,s=e.explode,l=e.inArray;return function(e){function c(t,n,o){var s=e[t];return s?s=i(s,",",i(s.toUpperCase()," ")):(s=r[t],s||(s=i(n," ",i(n.toUpperCase()," ")),s=a(s,o),r[t]=s)),s}function d(e){return new RegExp("^"+e.replace(/([?+*])/g,".$1")+"$")}function u(e){var n,r,o,a,s,c,u,f,p,m,h,g,y,C,x,w,_,N,E,k=/^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/,S=/^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,T=/[*?+]/;if(e)for(e=t(e,","),v["@"]&&(w=v["@"].attributes,_=v["@"].attributesOrder),n=0,r=e.length;r>n;n++)if(s=k.exec(e[n])){if(C=s[1],p=s[2],x=s[3],f=s[5],g={},y=[],c={attributes:g,attributesOrder:y},"#"===C&&(c.paddEmpty=!0),"-"===C&&(c.removeEmpty=!0),"!"===s[4]&&(c.removeEmptyAttrs=!0),w){for(N in w)g[N]=w[N];y.push.apply(y,_)}if(f)for(f=t(f,"|"),o=0,a=f.length;a>o;o++)if(s=S.exec(f[o])){if(u={},h=s[1],m=s[2].replace(/::/g,":"),C=s[3],E=s[4],"!"===h&&(c.attributesRequired=c.attributesRequired||[],c.attributesRequired.push(m),u.required=!0),"-"===h){delete g[m],y.splice(l(y,m),1);continue}C&&("="===C&&(c.attributesDefault=c.attributesDefault||[],c.attributesDefault.push({name:m,value:E}),u.defaultValue=E),":"===C&&(c.attributesForced=c.attributesForced||[],c.attributesForced.push({name:m,value:E}),u.forcedValue=E),"<"===C&&(u.validValues=i(E,"?"))),T.test(m)?(c.attributePatterns=c.attributePatterns||[],u.pattern=d(m),c.attributePatterns.push(u)):(g[m]||y.push(m),g[m]=u)}w||"@"!=p||(w=g,_=y),x&&(c.outputName=p,v[x]=c),T.test(p)?(c.pattern=d(p),b.push(c)):v[p]=c}}function f(e){v={},b=[],u(e),o(x,function(e,t){y[t]=e.children})}function p(e){var n=/^(~)?(.+)$/;e&&(r.text_block_elements=r.block_elements=null,o(t(e,","),function(e){var t=n.exec(e),r="~"===t[1],i=r?"span":"div",s=t[2];if(y[s]=y[i],R[s]=i,r||(k[s.toUpperCase()]={},k[s]={}),!v[s]){var l=v[i];l=a({},l),delete l.removeEmptyAttrs,delete l.removeEmpty,v[s]=l}o(y,function(e,t){e[i]&&(y[t]=e=a({},y[t]),e[s]=e[i])})}))}function m(e){var n=/^([+\-]?)(\w+)\[([^\]]+)\]$/;e&&o(t(e,","),function(e){var r=n.exec(e),i,s;r&&(s=r[1],i=s?y[r[2]]:y[r[2]]={"#comment":{}},i=y[r[2]],o(t(r[3],"|"),function(e){"-"===s?(y[r[2]]=i=a({},y[r[2]]),delete i[e]):i[e]={}}))})}function h(e){var t=v[e],n;if(t)return t;for(n=b.length;n--;)if(t=b[n],t.pattern.test(e))return t}var g=this,v={},y={},b=[],C,x,w,_,N,E,k,S,T,R={},A={};e=e||{},x=n(e.schema),e.verify_html===!1&&(e.valid_elements="*[*]"),e.valid_styles&&(C={},o(e.valid_styles,function(e,t){C[t]=s(e)})),w=c("whitespace_elements","pre script noscript style textarea video audio iframe object"),_=c("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr"),N=c("short_ended_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr track"),E=c("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"),S=c("non_empty_elements","td th iframe video audio object script",N),T=c("text_block_elements","h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure"),k=c("block_elements","hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex option datalist select optgroup",T),o((e.special||"script noscript style textarea").split(" "),function(e){A[e]=new RegExp("</"+e+"[^>]*>","gi")}),e.valid_elements?f(e.valid_elements):(o(x,function(e,t){v[t]={attributes:e.attributes,attributesOrder:e.attributesOrder},y[t]=e.children}),"html5"!=e.schema&&o(t("strong/b em/i"),function(e){e=t(e,"/"),v[e[1]].outputName=e[0]}),v.img.attributesDefault=[{name:"alt",value:""}],o(t("ol ul sub sup blockquote span font a table tbody tr strong em b i"),function(e){v[e]&&(v[e].removeEmpty=!0)}),o(t("p h1 h2 h3 h4 h5 h6 th td pre div address caption"),function(e){v[e].paddEmpty=!0}),o(t("span"),function(e){v[e].removeEmptyAttrs=!0})),p(e.custom_elements),m(e.valid_children),u(e.extended_valid_elements),m("+ol[ul|ol],+ul[ul|ol]"),e.invalid_elements&&o(s(e.invalid_elements),function(e){v[e]&&delete v[e]}),h("span")||u("span[!data-mce-type|*]"),g.children=y,g.styles=C,g.getBoolAttrs=function(){return E},g.getBlockElements=function(){return k},g.getTextBlockElements=function(){return T},g.getShortEndedElements=function(){return N},g.getSelfClosingElements=function(){return _},g.getNonEmptyElements=function(){return S},g.getWhiteSpaceElements=function(){return w},g.getSpecialElements=function(){return A},g.isValidChild=function(e,t){var n=y[e];return!(!n||!n[t])},g.isValid=function(e,t){var n,r,i=h(e);if(i){if(!t)return!0;if(i.attributes[t])return!0;if(n=i.attributePatterns)for(r=n.length;r--;)if(n[r].pattern.test(e))return!0}return!1},g.getElementRule=h,g.getCustomElements=function(){return R},g.addValidElements=u,g.setValidElements=f,g.addCustomElements=p,g.addValidChildren=m,g.elements=v}}),r(w,[x,m,f],function(e,t,n){var r=n.each;return function(i,o){function a(){}var s=this;i=i||{},s.schema=o=o||new e,i.fix_self_closing!==!1&&(i.fix_self_closing=!0),r("comment cdata text start end pi doctype".split(" "),function(e){e&&(s[e]=i[e]||a)}),s.parse=function(e){function r(e){var t,n;for(t=f.length;t--&&f[t].name!==e;);if(t>=0){for(n=f.length-1;n>=t;n--)e=f[n],e.valid&&s.end(e.name);f.length=t}}function a(e,t,n,r,o){var a,s,l=/[\s\u0000-\u001F]+/g;if(t=t.toLowerCase(),n=t in C?t:F(n||r||o||""),w&&!v&&0!==t.indexOf("data-")){if(a=S[t],!a&&T){for(s=T.length;s--&&(a=T[s],!a.pattern.test(t)););-1===s&&(a=null)}if(!a)return;if(a.validValues&&!(n in a.validValues))return}if(W[t]&&!i.allow_script_urls){var c=n.replace(l,"");try{if(c=decodeURIComponent(c),V.test(c))return}catch(d){if(c=unescape(c),V.test(c))return}}p.map[t]=n,p.push({name:t,value:n})}var s=this,l,c=0,d,u,f=[],p,m,h,g,v,y,b,C,x,w,_,N,E,k,S,T,R,A,B,L,D,M,H,P,O,I=0,F=t.decode,z,W=n.makeMap("src,href"),V=/(java|vb)script:/i;for(M=new RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([^>]+)>)|(?:([A-Za-z0-9\\-\\:\\.]+)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))","g"),H=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g,b=o.getShortEndedElements(),D=i.self_closing_elements||o.getSelfClosingElements(),C=o.getBoolAttrs(),w=i.validate,y=i.remove_internals,z=i.fix_self_closing,P=o.getSpecialElements();l=M.exec(e);){if(c<l.index&&s.text(F(e.substr(c,l.index-c))),d=l[6])d=d.toLowerCase(),":"===d.charAt(0)&&(d=d.substr(1)),r(d);else if(d=l[7]){if(d=d.toLowerCase(),":"===d.charAt(0)&&(d=d.substr(1)),x=d in b,z&&D[d]&&f.length>0&&f[f.length-1].name===d&&r(d),!w||(_=o.getElementRule(d))){if(N=!0,w&&(S=_.attributes,T=_.attributePatterns),(k=l[8])?(v=-1!==k.indexOf("data-mce-type"),v&&y&&(N=!1),p=[],p.map={},k.replace(H,a)):(p=[],p.map={}),w&&!v){if(R=_.attributesRequired,A=_.attributesDefault,B=_.attributesForced,L=_.removeEmptyAttrs,L&&!p.length&&(N=!1),B)for(m=B.length;m--;)E=B[m],g=E.name,O=E.value,"{$uid}"===O&&(O="mce_"+I++),p.map[g]=O,p.push({name:g,value:O});if(A)for(m=A.length;m--;)E=A[m],g=E.name,g in p.map||(O=E.value,"{$uid}"===O&&(O="mce_"+I++),p.map[g]=O,p.push({name:g,value:O}));if(R){for(m=R.length;m--&&!(R[m]in p.map););-1===m&&(N=!1)}p.map["data-mce-bogus"]&&(N=!1)}N&&s.start(d,p,x)}else N=!1;if(u=P[d]){u.lastIndex=c=l.index+l[0].length,(l=u.exec(e))?(N&&(h=e.substr(c,l.index-c)),c=l.index+l[0].length):(h=e.substr(c),c=e.length),N&&(h.length>0&&s.text(h,!0),s.end(d)),M.lastIndex=c;continue}x||(k&&k.indexOf("/")==k.length-1?N&&s.end(d):f.push({name:d,valid:N}))}else(d=l[1])?(">"===d.charAt(0)&&(d=" "+d),i.allow_conditional_comments||"[if"!==d.substr(0,3)||(d=" "+d),s.comment(d)):(d=l[2])?s.cdata(d):(d=l[3])?s.doctype(d):(d=l[4])&&s.pi(d,l[5]);c=l.index+l[0].length}for(c<e.length&&s.text(F(e.substr(c))),m=f.length-1;m>=0;m--)d=f[m],d.valid&&s.end(d.name)}}}),r(_,[C,x,w,f],function(e,t,n,r){var i=r.makeMap,o=r.each,a=r.explode,s=r.extend;return function(r,l){function c(t){var n,r,o,a,s,c,u,f,p,m,h,g,v,y;for(h=i("tr,td,th,tbody,thead,tfoot,table"),m=l.getNonEmptyElements(),g=l.getTextBlockElements(),n=0;n<t.length;n++)if(r=t[n],r.parent&&!r.fixed)if(g[r.name]&&"li"==r.parent.name){for(v=r.next;v&&g[v.name];)v.name="li",v.fixed=!0,r.parent.insert(v,r.parent),v=v.next;r.unwrap(r)}else{for(a=[r],o=r.parent;o&&!l.isValidChild(o.name,r.name)&&!h[o.name];o=o.parent)a.push(o);if(o&&a.length>1){for(a.reverse(),s=c=d.filterNode(a[0].clone()),p=0;p<a.length-1;p++){for(l.isValidChild(c.name,a[p].name)?(u=d.filterNode(a[p].clone()),c.append(u)):u=c,f=a[p].firstChild;f&&f!=a[p+1];)y=f.next,u.append(f),f=y;c=u}s.isEmpty(m)?o.insert(r,a[0],!0):(o.insert(s,a[0],!0),o.insert(r,s)),o=a[0],(o.isEmpty(m)||o.firstChild===o.lastChild&&"br"===o.firstChild.name)&&o.empty().remove()}else if(r.parent){if("li"===r.name){if(v=r.prev,v&&("ul"===v.name||"ul"===v.name)){v.append(r);continue}if(v=r.next,v&&("ul"===v.name||"ul"===v.name)){v.insert(r,v.firstChild,!0);continue}r.wrap(d.filterNode(new e("ul",1)));continue}l.isValidChild(r.parent.name,"div")&&l.isValidChild("div",r.name)?r.wrap(d.filterNode(new e("div",1))):"style"===r.name||"script"===r.name?r.empty().remove():r.unwrap()}}}var d=this,u={},f=[],p={},m={};r=r||{},r.validate="validate"in r?r.validate:!0,r.root_name=r.root_name||"body",d.schema=l=l||new t,d.filterNode=function(e){var t,n,r;n in u&&(r=p[n],r?r.push(e):p[n]=[e]),t=f.length;for(;t--;)n=f[t].name,n in e.attributes.map&&(r=m[n],r?r.push(e):m[n]=[e]);return e},d.addNodeFilter=function(e,t){o(a(e),function(e){var n=u[e];n||(u[e]=n=[]),n.push(t)})},d.addAttributeFilter=function(e,t){o(a(e),function(e){var n;for(n=0;n<f.length;n++)if(f[n].name===e)return void f[n].callbacks.push(t);f.push({name:e,callbacks:[t]})})},d.parse=function(t,o){function a(){function e(e){e&&(t=e.firstChild,t&&3==t.type&&(t.value=t.value.replace(R,"")),t=e.lastChild,t&&3==t.type&&(t.value=t.value.replace(L,"")))}var t=y.firstChild,n,i;if(l.isValidChild(y.name,I.toLowerCase())){for(;t;)n=t.next,3==t.type||1==t.type&&"p"!==t.name&&!T[t.name]&&!t.attr("data-mce-type")?i?i.append(t):(i=d(I,1),i.attr(r.forced_root_block_attrs),y.insert(i,t),i.append(t)):(e(i),i=null),t=n;e(i)}}function d(t,n){var r=new e(t,n),i;return t in u&&(i=p[t],i?i.push(r):p[t]=[r]),r}function h(e){var t,n,r;for(t=e.prev;t&&3===t.type;)n=t.value.replace(L,""),n.length>0?(t.value=n,t=t.prev):(r=t.prev,t.remove(),t=r)}function g(e){var t,n={};for(t in e)"li"!==t&&"p"!=t&&(n[t]=e[t]);return n}var v,y,b,C,x,w,_,N,E,k,S,T,R,A=[],B,L,D,M,H,P,O,I;if(o=o||{},p={},m={},T=s(i("script,style,head,html,body,title,meta,param"),l.getBlockElements()),O=l.getNonEmptyElements(),P=l.children,S=r.validate,I="forced_root_block"in o?o.forced_root_block:r.forced_root_block,H=l.getWhiteSpaceElements(),R=/^[ \t\r\n]+/,L=/[ \t\r\n]+$/,D=/[ \t\r\n]+/g,M=/^[ \t\r\n]+$/,v=new n({validate:S,allow_script_urls:r.allow_script_urls,allow_conditional_comments:r.allow_conditional_comments,self_closing_elements:g(l.getSelfClosingElements()),cdata:function(e){b.append(d("#cdata",4)).value=e},text:function(e,t){var n;B||(e=e.replace(D," "),b.lastChild&&T[b.lastChild.name]&&(e=e.replace(R,""))),0!==e.length&&(n=d("#text",3),n.raw=!!t,b.append(n).value=e)},comment:function(e){b.append(d("#comment",8)).value=e},pi:function(e,t){b.append(d(e,7)).value=t,h(b)},doctype:function(e){var t;t=b.append(d("#doctype",10)),t.value=e,h(b)},start:function(e,t,n){var r,i,o,a,s;if(o=S?l.getElementRule(e):{}){for(r=d(o.outputName||e,1),r.attributes=t,r.shortEnded=n,b.append(r),s=P[b.name],s&&P[r.name]&&!s[r.name]&&A.push(r),i=f.length;i--;)a=f[i].name,a in t.map&&(E=m[a],E?E.push(r):m[a]=[r]);T[e]&&h(r),n||(b=r),!B&&H[e]&&(B=!0)}},end:function(t){var n,r,i,o,a;if(r=S?l.getElementRule(t):{}){if(T[t]&&!B){if(n=b.firstChild,n&&3===n.type)if(i=n.value.replace(R,""),i.length>0)n.value=i,n=n.next;else for(o=n.next,n.remove(),n=o;n&&3===n.type;)i=n.value,o=n.next,(0===i.length||M.test(i))&&(n.remove(),n=o),n=o;if(n=b.lastChild,n&&3===n.type)if(i=n.value.replace(L,""),i.length>0)n.value=i,n=n.prev;else for(o=n.prev,n.remove(),n=o;n&&3===n.type;)i=n.value,o=n.prev,(0===i.length||M.test(i))&&(n.remove(),n=o),n=o}if(B&&H[t]&&(B=!1),(r.removeEmpty||r.paddEmpty)&&b.isEmpty(O))if(r.paddEmpty)b.empty().append(new e("#text","3")).value="\xa0";else if(!b.attributes.map.name&&!b.attributes.map.id)return a=b.parent,b.empty().remove(),void(b=a);b=b.parent}}},l),y=b=new e(o.context||r.root_name,11),v.parse(t),S&&A.length&&(o.context?o.invalid=!0:c(A)),I&&("body"==y.name||o.isRootContent)&&a(),!o.invalid){for(k in p){for(E=u[k],C=p[k],_=C.length;_--;)C[_].parent||C.splice(_,1); +for(x=0,w=E.length;w>x;x++)E[x](C,k,o)}for(x=0,w=f.length;w>x;x++)if(E=f[x],E.name in m){for(C=m[E.name],_=C.length;_--;)C[_].parent||C.splice(_,1);for(_=0,N=E.callbacks.length;N>_;_++)E.callbacks[_](C,E.name,o)}}return y},r.remove_trailing_brs&&d.addNodeFilter("br",function(t){var n,r=t.length,i,o=s({},l.getBlockElements()),a=l.getNonEmptyElements(),c,d,u,f,p,m;for(o.body=1,n=0;r>n;n++)if(i=t[n],c=i.parent,o[i.parent.name]&&i===c.lastChild){for(u=i.prev;u;){if(f=u.name,"span"!==f||"bookmark"!==u.attr("data-mce-type")){if("br"!==f)break;if("br"===f){i=null;break}}u=u.prev}i&&(i.remove(),c.isEmpty(a)&&(p=l.getElementRule(c.name),p&&(p.removeEmpty?c.remove():p.paddEmpty&&(c.empty().append(new e("#text",3)).value="\xa0"))))}else{for(d=i;c&&c.firstChild===d&&c.lastChild===d&&(d=c,!o[c.name]);)c=c.parent;d===c&&(m=new e("#text",3),m.value="\xa0",i.replace(m))}}),r.allow_html_in_named_anchor||d.addAttributeFilter("id,name",function(e){for(var t=e.length,n,r,i,o;t--;)if(o=e[t],"a"===o.name&&o.firstChild&&!o.attr("href")){i=o.parent,n=o.lastChild;do r=n.prev,i.insert(n,o),n=r;while(n)}})}}),r(N,[m,f],function(e,t){var n=t.makeMap;return function(t){var r=[],i,o,a,s,l;return t=t||{},i=t.indent,o=n(t.indent_before||""),a=n(t.indent_after||""),s=e.getEncodeFunc(t.entity_encoding||"raw",t.entities),l="html"==t.element_format,{start:function(e,t,n){var c,d,u,f;if(i&&o[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n")),r.push("<",e),t)for(c=0,d=t.length;d>c;c++)u=t[c],r.push(" ",u.name,'="',s(u.value,!0),'"');r[r.length]=!n||l?">":" />",n&&i&&a[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n"))},end:function(e){var t;r.push("</",e,">"),i&&a[e]&&r.length>0&&(t=r[r.length-1],t.length>0&&"\n"!==t&&r.push("\n"))},text:function(e,t){e.length>0&&(r[r.length]=t?e:s(e))},cdata:function(e){r.push("<![CDATA[",e,"]]>")},comment:function(e){r.push("<!--",e,"-->")},pi:function(e,t){t?r.push("<?",e," ",t,"?>"):r.push("<?",e,"?>"),i&&r.push("\n")},doctype:function(e){r.push("<!DOCTYPE",e,">",i?"\n":"")},reset:function(){r.length=0},getContent:function(){return r.join("").replace(/\n$/,"")}}}}),r(E,[N,x],function(e,t){return function(n,r){var i=this,o=new e(n);n=n||{},n.validate="validate"in n?n.validate:!0,i.schema=r=r||new t,i.writer=o,i.serialize=function(e){function t(e){var n=i[e.type],s,l,c,d,u,f,p,m,h;if(n)n(e);else{if(s=e.name,l=e.shortEnded,c=e.attributes,a&&c&&c.length>1){for(f=[],f.map={},h=r.getElementRule(e.name),p=0,m=h.attributesOrder.length;m>p;p++)d=h.attributesOrder[p],d in c.map&&(u=c.map[d],f.map[d]=u,f.push({name:d,value:u}));for(p=0,m=c.length;m>p;p++)d=c[p].name,d in f.map||(u=c.map[d],f.map[d]=u,f.push({name:d,value:u}));c=f}if(o.start(e.name,c,l),!l){if(e=e.firstChild)do t(e);while(e=e.next);o.end(s)}}}var i,a;return a=n.validate,i={3:function(e){o.text(e.value,e.raw)},8:function(e){o.comment(e.value)},7:function(e){o.pi(e.name,e.value)},10:function(e){o.doctype(e.value)},4:function(e){o.cdata(e.value)},11:function(e){if(e=e.firstChild)do t(e);while(e=e.next)}},o.reset(),1!=e.type||n.inner?i[11](e):t(e),o.getContent()}}}),r(k,[v,_,m,E,C,x,h,f],function(e,t,n,r,i,o,a,s){var l=s.each,c=s.trim,d=e.DOM;return function(e,i){var s,u,f;return i&&(s=i.dom,u=i.schema),s=s||d,u=u||new o(e),e.entity_encoding=e.entity_encoding||"named",e.remove_trailing_brs="remove_trailing_brs"in e?e.remove_trailing_brs:!0,f=new t(e,u),f.addAttributeFilter("src,href,style",function(t,n){for(var r=t.length,i,o,a="data-mce-"+n,l=e.url_converter,c=e.url_converter_scope,d;r--;)i=t[r],o=i.attributes.map[a],o!==d?(i.attr(n,o.length>0?o:null),i.attr(a,null)):(o=i.attributes.map[n],"style"===n?o=s.serializeStyle(s.parseStyle(o),i.name):l&&(o=l.call(c,o,n,i.name)),i.attr(n,o.length>0?o:null))}),f.addAttributeFilter("class",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.attr("class").replace(/(?:^|\s)mce-item-\w+(?!\S)/g,""),n.attr("class",r.length>0?r:null)}),f.addAttributeFilter("data-mce-type",function(e,t,n){for(var r=e.length,i;r--;)i=e[r],"bookmark"!==i.attributes.map["data-mce-type"]||n.cleanup||i.remove()}),f.addAttributeFilter("data-mce-expando",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),f.addNodeFilter("noscript",function(e){for(var t=e.length,r;t--;)r=e[t].firstChild,r&&(r.value=n.decode(r.value))}),f.addNodeFilter("script,style",function(e,t){function n(e){return e.replace(/(<!--\[CDATA\[|\]\]-->)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi,"").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")}for(var r=e.length,i,o;r--;)if(i=e[r],o=i.firstChild?i.firstChild.value:"","script"===t){var a=(i.attr("type")||"text/javascript").replace(/^mce\-/,"");i.attr("type","text/javascript"===a?null:a),o.length>0&&(i.firstChild.value="// <![CDATA[\n"+n(o)+"\n// ]]>")}else o.length>0&&(i.firstChild.value="<!--\n"+n(o)+"\n-->")}),f.addNodeFilter("#comment",function(e){for(var t=e.length,n;t--;)n=e[t],0===n.value.indexOf("[CDATA[")?(n.name="#cdata",n.type=4,n.value=n.value.replace(/^\[CDATA\[|\]\]$/g,"")):0===n.value.indexOf("mce:protected ")&&(n.name="#text",n.type=3,n.raw=!0,n.value=unescape(n.value).substr(14))}),f.addNodeFilter("xml:namespace,input",function(e,t){for(var n=e.length,r;n--;)r=e[n],7===r.type?r.remove():1===r.type&&("input"!==t||"type"in r.attributes.map||r.attr("type","text"))}),e.fix_list_elements&&f.addNodeFilter("ul,ol",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.parent,("ul"===r.name||"ol"===r.name)&&n.prev&&"li"===n.prev.name&&n.prev.append(n)}),f.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style,data-mce-selected",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),{schema:u,addNodeFilter:f.addNodeFilter,addAttributeFilter:f.addAttributeFilter,serialize:function(t,n){var i=this,o,d,p,m,h;return a.ie&&s.select("script,style,select,map").length>0?(h=t.innerHTML,t=t.cloneNode(!1),s.setHTML(t,h)):t=t.cloneNode(!0),o=t.ownerDocument.implementation,o.createHTMLDocument&&(d=o.createHTMLDocument(""),l("BODY"==t.nodeName?t.childNodes:[t],function(e){d.body.appendChild(d.importNode(e,!0))}),t="BODY"!=t.nodeName?d.body.firstChild:d.body,p=s.doc,s.doc=d),n=n||{},n.format=n.format||"html",n.selection&&(n.forced_root_block=""),n.no_events||(n.node=t,i.onPreProcess(n)),m=new r(e,u),n.content=m.serialize(f.parse(c(n.getInner?t.innerHTML:s.getOuterHTML(t)),n)),n.cleanup||(n.content=n.content.replace(/\uFEFF/g,"")),n.no_events||i.onPostProcess(n),p&&(s.doc=p),n.node=null,n.content},addRules:function(e){u.addValidElements(e)},setRules:function(e){u.setValidElements(e)},onPreProcess:function(e){i&&i.fire("PreProcess",e)},onPostProcess:function(e){i&&i.fire("PostProcess",e)}}}}),r(S,[],function(){function e(e){function t(t,n){var r,i=0,o,a,s,l,c,d,u=-1,f;if(r=t.duplicate(),r.collapse(n),f=r.parentElement(),f.ownerDocument===e.dom.doc){for(;"false"===f.contentEditable;)f=f.parentNode;if(!f.hasChildNodes())return{node:f,inside:1};for(s=f.children,o=s.length-1;o>=i;)if(d=Math.floor((i+o)/2),l=s[d],r.moveToElementText(l),u=r.compareEndPoints(n?"StartToStart":"EndToEnd",t),u>0)o=d-1;else{if(!(0>u))return{node:l};i=d+1}if(0>u)for(l?r.collapse(!1):(r.moveToElementText(f),r.collapse(!0),l=f,a=!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",1)&&f==r.parentElement();)c++;else for(r.collapse(!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",-1)&&f==r.parentElement();)c++;return{node:l,position:u,offset:c,inside:a}}}function n(){function n(e){var n=t(o,e),r,i,s=0,l,c,d;if(r=n.node,i=n.offset,n.inside&&!r.hasChildNodes())return void a[e?"setStart":"setEnd"](r,0);if(i===c)return void a[e?"setStartBefore":"setEndAfter"](r);if(n.position<0){if(l=n.inside?r.firstChild:r.nextSibling,!l)return void a[e?"setStartAfter":"setEndAfter"](r);if(!i)return void(3==l.nodeType?a[e?"setStart":"setEnd"](l,0):a[e?"setStartBefore":"setEndBefore"](l));for(;l;){if(d=l.nodeValue,s+=d.length,s>=i){r=l,s-=i,s=d.length-s;break}l=l.nextSibling}}else{if(l=r.previousSibling,!l)return a[e?"setStartBefore":"setEndBefore"](r);if(!i)return void(3==r.nodeType?a[e?"setStart":"setEnd"](l,r.nodeValue.length):a[e?"setStartAfter":"setEndAfter"](l));for(;l;){if(s+=l.nodeValue.length,s>=i){r=l,s-=i;break}l=l.previousSibling}}a[e?"setStart":"setEnd"](r,s)}var o=e.getRng(),a=i.createRng(),s,l,c,d,u;if(s=o.item?o.item(0):o.parentElement(),s.ownerDocument!=i.doc)return a;if(l=e.isCollapsed(),o.item)return a.setStart(s.parentNode,i.nodeIndex(s)),a.setEnd(a.startContainer,a.startOffset+1),a;try{n(!0),l||n()}catch(f){if(-2147024809!=f.number)throw f;u=r.getBookmark(2),c=o.duplicate(),c.collapse(!0),s=c.parentElement(),l||(c=o.duplicate(),c.collapse(!1),d=c.parentElement(),d.innerHTML=d.innerHTML),s.innerHTML=s.innerHTML,r.moveToBookmark(u),o=e.getRng(),n(!0),l||n()}return a}var r=this,i=e.dom,o=!1;this.getBookmark=function(n){function r(e){var t,n,r,o,a=[];for(t=e.parentNode,n=i.getRoot().parentNode;t!=n&&9!==t.nodeType;){for(r=t.children,o=r.length;o--;)if(e===r[o]){a.push(o);break}e=t,t=t.parentNode}return a}function o(e){var n;return n=t(a,e),n?{position:n.position,offset:n.offset,indexes:r(n.node),inside:n.inside}:void 0}var a=e.getRng(),s={};return 2===n&&(a.item?s.start={ctrl:!0,indexes:r(a.item(0))}:(s.start=o(!0),e.isCollapsed()||(s.end=o()))),s},this.moveToBookmark=function(e){function t(e){var t,n,r,o;for(t=i.getRoot(),n=e.length-1;n>=0;n--)o=t.children,r=e[n],r<=o.length-1&&(t=o[r]);return t}function n(n){var i=e[n?"start":"end"],a,s,l,c;i&&(a=i.position>0,s=o.createTextRange(),s.moveToElementText(t(i.indexes)),c=i.offset,c!==l?(s.collapse(i.inside||a),s.moveStart("character",a?-c:c)):s.collapse(n),r.setEndPoint(n?"StartToStart":"EndToStart",s),n&&r.collapse(!0))}var r,o=i.doc.body;e.start&&(e.start.ctrl?(r=o.createControlRange(),r.addElement(t(e.start.indexes)),r.select()):(r=o.createTextRange(),n(!0),n(),r.select()))},this.addRange=function(t){function n(e){var t,n,a,u,m;a=i.create("a"),t=e?s:c,n=e?l:d,u=r.duplicate(),(t==f||t==f.documentElement)&&(t=p,n=0),3==t.nodeType?(t.parentNode.insertBefore(a,t),u.moveToElementText(a),u.moveStart("character",n),i.remove(a),r.setEndPoint(e?"StartToStart":"EndToEnd",u)):(m=t.childNodes,m.length?(n>=m.length?i.insertAfter(a,m[m.length-1]):t.insertBefore(a,m[n]),u.moveToElementText(a)):t.canHaveHTML&&(t.innerHTML="<span></span>",a=t.firstChild,u.moveToElementText(a),u.collapse(o)),r.setEndPoint(e?"StartToStart":"EndToEnd",u),i.remove(a))}var r,a,s,l,c,d,u,f=e.dom.doc,p=f.body,m,h;if(s=t.startContainer,l=t.startOffset,c=t.endContainer,d=t.endOffset,r=p.createTextRange(),s==c&&1==s.nodeType){if(l==d&&!s.hasChildNodes()){if(s.canHaveHTML)return u=s.previousSibling,u&&!u.hasChildNodes()&&i.isBlock(u)?u.innerHTML="":u=null,s.innerHTML="<span></span><span></span>",r.moveToElementText(s.lastChild),r.select(),i.doc.selection.clear(),s.innerHTML="",void(u&&(u.innerHTML=""));l=i.nodeIndex(s),s=s.parentNode}if(l==d-1)try{if(h=s.childNodes[l],a=p.createControlRange(),a.addElement(h),a.select(),m=e.getRng(),m.item&&h===m.item(0))return}catch(g){}}n(!0),n(),r.select()},this.getRangeAt=n}return e}),r(T,[h],function(e){return{BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,LEFT:37,RIGHT:39,SPACEBAR:32,TAB:9,UP:38,modifierPressed:function(e){return e.shiftKey||e.ctrlKey||e.altKey},metaKeyPressed:function(t){return(e.mac?t.metaKey:t.ctrlKey)&&!t.altKey}}}),r(R,[T,f,h],function(e,t,n){return function(r,i){function o(e){var t=i.settings.object_resizing;return t===!1||n.iOS?!1:("string"!=typeof t&&(t="table,img,div"),"false"===e.getAttribute("data-mce-resize")?!1:i.dom.is(e,t))}function a(t){var n,r;n=t.screenX-S,r=t.screenY-T,H=n*E[2]+B,P=r*E[3]+L,H=5>H?5:H,P=5>P?5:P,(e.modifierPressed(t)||"IMG"==w.nodeName&&E[2]*E[3]!==0)&&(H=Math.round(P/D),P=Math.round(H*D)),C.setStyles(_,{width:H,height:P}),E[2]<0&&_.clientWidth<=H&&C.setStyle(_,"left",R+(B-H)),E[3]<0&&_.clientHeight<=P&&C.setStyle(_,"top",A+(L-P)),M||(i.fire("ObjectResizeStart",{target:w,width:B,height:L}),M=!0)}function s(){function e(e,t){t&&(w.style[e]||!i.schema.isValid(w.nodeName.toLowerCase(),e)?C.setStyle(w,e,t):C.setAttrib(w,e,t))}M=!1,e("width",H),e("height",P),C.unbind(O,"mousemove",a),C.unbind(O,"mouseup",s),I!=O&&(C.unbind(I,"mousemove",a),C.unbind(I,"mouseup",s)),C.remove(_),F&&"TABLE"!=w.nodeName||l(w),i.fire("ObjectResized",{target:w,width:H,height:P}),i.nodeChanged()}function l(e,t,r){var l,d,u,f,p,m=i.getBody();g(),l=C.getPos(e,m),R=l.x,A=l.y,p=e.getBoundingClientRect(),d=p.width||p.right-p.left,u=p.height||p.bottom-p.top,w!=e&&(h(),w=e,H=P=0),f=i.fire("ObjectSelected",{target:e}),o(e)&&!f.isDefaultPrevented()?x(N,function(e,o){function l(t){S=t.screenX,T=t.screenY,B=w.clientWidth,L=w.clientHeight,D=L/B,E=e,_=w.cloneNode(!0),C.addClass(_,"mce-clonedresizable"),_.contentEditable=!1,_.unSelectabe=!0,C.setStyles(_,{left:R,top:A,margin:0}),_.removeAttribute("data-mce-selected"),i.getBody().appendChild(_),C.bind(O,"mousemove",a),C.bind(O,"mouseup",s),I!=O&&(C.bind(I,"mousemove",a),C.bind(I,"mouseup",s))}var c,f;return t?void(o==t&&l(r)):(c=C.get("mceResizeHandle"+o),c?C.show(c):(f=i.getBody(),c=C.add(f,"div",{id:"mceResizeHandle"+o,"data-mce-bogus":!0,"class":"mce-resizehandle",unselectable:!0,style:"cursor:"+o+"-resize; margin:0; padding:0"}),n.ie&&(c.contentEditable=!1)),e.elm||(C.bind(c,"mousedown",function(e){e.stopImmediatePropagation(),e.preventDefault(),l(e)}),e.elm=c),void C.setStyles(c,{left:d*e[0]+R-c.offsetWidth/2,top:u*e[1]+A-c.offsetHeight/2}))}):c(),w.setAttribute("data-mce-selected","1")}function c(){var e,t;g(),w&&w.removeAttribute("data-mce-selected");for(e in N)t=C.get("mceResizeHandle"+e),t&&(C.unbind(t),C.remove(t))}function d(e){function t(e,t){if(e)do if(e===t)return!0;while(e=e.parentNode)}var n;return x(C.select("img[data-mce-selected],hr[data-mce-selected]"),function(e){e.removeAttribute("data-mce-selected")}),n="mousedown"==e.type?e.target:r.getNode(),n=C.getParent(n,F?"table":"table,img,hr"),t(n,i.getBody())&&(v(),t(r.getStart(),n)&&t(r.getEnd(),n)&&(!F||n!=r.getStart()&&"IMG"!==r.getStart().nodeName))?void l(n):void c()}function u(e,t,n){e&&e.attachEvent&&e.attachEvent("on"+t,n)}function f(e,t,n){e&&e.detachEvent&&e.detachEvent("on"+t,n)}function p(e){var t=e.srcElement,n,r,o,a,s,c,d;n=t.getBoundingClientRect(),c=k.clientX-n.left,d=k.clientY-n.top;for(r in N)if(o=N[r],a=t.offsetWidth*o[0],s=t.offsetHeight*o[1],Math.abs(a-c)<8&&Math.abs(s-d)<8){E=o;break}M=!0,i.getDoc().selection.empty(),l(t,r,k)}function m(e){var t=e.srcElement;if(t!=w){if(h(),0===t.id.indexOf("mceResizeHandle"))return void(e.returnValue=!1);("IMG"==t.nodeName||"TABLE"==t.nodeName)&&(c(),w=t,u(t,"resizestart",p))}}function h(){f(w,"resizestart",p)}function g(){for(var e in N){var t=N[e];t.elm&&(C.unbind(t.elm),delete t.elm)}}function v(){try{i.getDoc().execCommand("enableObjectResizing",!1,!1)}catch(e){}}function y(e){var t;if(F){t=O.body.createControlRange();try{return t.addElement(e),t.select(),!0}catch(n){}}}function b(){w=_=null,F&&(h(),f(i.getBody(),"controlselect",m))}var C=i.dom,x=t.each,w,_,N,E,k,S,T,R,A,B,L,D,M,H,P,O=i.getDoc(),I=document,F=n.ie&&n.ie<11;N={n:[.5,0,0,-1],e:[1,.5,1,0],s:[.5,1,0,1],w:[0,.5,-1,0],nw:[0,0,-1,-1],ne:[1,0,1,-1],se:[1,1,1,1],sw:[0,1,-1,1]};var z=".mce-content-body";return i.contentStyles.push(z+" div.mce-resizehandle {position: absolute;border: 1px solid black;background: #FFF;width: 5px;height: 5px;z-index: 10000}"+z+" .mce-resizehandle:hover {background: #000}"+z+" img[data-mce-selected], hr[data-mce-selected] {outline: 1px solid black;resize: none}"+z+" .mce-clonedresizable {position: absolute;"+(n.gecko?"":"outline: 1px dashed black;")+"opacity: .5;filter: alpha(opacity=50);z-index: 10000}"),i.on("init",function(){F?(i.on("ObjectResized",function(e){"TABLE"!=e.target.nodeName&&(c(),y(e.target))}),u(i.getBody(),"controlselect",m),i.on("mousedown",function(e){k=e})):(v(),n.ie>=11&&(i.on("mouseup",function(e){var t=e.target.nodeName;/^(TABLE|IMG|HR)$/.test(t)&&(i.selection.select(e.target,"TABLE"==t),i.nodeChanged())}),i.dom.bind(i.getBody(),"mscontrolselect",function(e){/^(TABLE|IMG|HR)$/.test(e.target.nodeName)&&(e.preventDefault(),"IMG"==e.target.tagName&&window.setTimeout(function(){i.selection.select(e.target)},0))}))),i.on("nodechange mousedown mouseup ResizeEditor",d),i.on("keydown keyup",function(e){w&&"TABLE"==w.nodeName&&d(e)})}),i.on("remove",g),{isResizable:o,showResizeRect:l,hideResizeRect:c,updateResizeRect:d,controlSelect:y,destroy:b}}}),r(A,[f,u],function(e,t){function n(e){this.walk=function(t,n){function i(e){var t;return t=e[0],3===t.nodeType&&t===l&&c>=t.nodeValue.length&&e.splice(0,1),t=e[e.length-1],0===u&&e.length>0&&t===d&&3===t.nodeType&&e.splice(e.length-1,1),e}function o(e,t,n){for(var r=[];e&&e!=n;e=e[t])r.push(e);return r}function a(e,t){do{if(e.parentNode==t)return e;e=e.parentNode}while(e)}function s(e,t,r){var a=r?"nextSibling":"previousSibling";for(h=e,g=h.parentNode;h&&h!=t;h=g)g=h.parentNode,v=o(h==e?h:h[a],a),v.length&&(r||v.reverse(),n(i(v)))}var l=t.startContainer,c=t.startOffset,d=t.endContainer,u=t.endOffset,f,p,m,h,g,v,y;if(y=e.select("td.mce-item-selected,th.mce-item-selected"),y.length>0)return void r(y,function(e){n([e])});if(1==l.nodeType&&l.hasChildNodes()&&(l=l.childNodes[c]),1==d.nodeType&&d.hasChildNodes()&&(d=d.childNodes[Math.min(u-1,d.childNodes.length-1)]),l==d)return n(i([l]));for(f=e.findCommonAncestor(l,d),h=l;h;h=h.parentNode){if(h===d)return s(l,f,!0);if(h===f)break}for(h=d;h;h=h.parentNode){if(h===l)return s(d,f);if(h===f)break}p=a(l,f)||l,m=a(d,f)||d,s(l,p,!0),v=o(p==l?p:p.nextSibling,"nextSibling",m==d?m.nextSibling:m),v.length&&n(i(v)),s(d,m)},this.split=function(e){function t(e,t){return e.splitText(t)}var n=e.startContainer,r=e.startOffset,i=e.endContainer,o=e.endOffset;return n==i&&3==n.nodeType?r>0&&r<n.nodeValue.length&&(i=t(n,r),n=i.previousSibling,o>r?(o-=r,n=i=t(i,o).previousSibling,o=i.nodeValue.length,r=0):o=0):(3==n.nodeType&&r>0&&r<n.nodeValue.length&&(n=t(n,r),r=0),3==i.nodeType&&o>0&&o<i.nodeValue.length&&(i=t(i,o).previousSibling,o=i.nodeValue.length)),{startContainer:n,startOffset:r,endContainer:i,endOffset:o}},this.normalize=function(n){function r(r){function a(n,r){for(var i=new t(n,e.getParent(n.parentNode,e.isBlock)||f);n=i[r?"prev":"next"]();)if("BR"===n.nodeName)return!0}function s(e,t){return e.previousSibling&&e.previousSibling.nodeName==t}function l(n,r){var a,s,l;if(r=r||c,l=e.getParent(r.parentNode,e.isBlock)||f,n&&"BR"==r.nodeName&&v&&e.isEmpty(l))return c=r.parentNode,d=e.nodeIndex(r),void(i=!0);for(a=new t(r,l);p=a[n?"prev":"next"]();){if(3===p.nodeType&&p.nodeValue.length>0)return c=p,d=n?p.nodeValue.length:0,void(i=!0);if(e.isBlock(p)||m[p.nodeName.toLowerCase()])return;s=p}o&&s&&(c=s,i=!0,d=0)}var c,d,u,f=e.getRoot(),p,m,h,g,v;if(c=n[(r?"start":"end")+"Container"],d=n[(r?"start":"end")+"Offset"],v=1==c.nodeType&&d===c.childNodes.length,m=e.schema.getNonEmptyElements(),g=r,1==c.nodeType&&d>c.childNodes.length-1&&(g=!1),9===c.nodeType&&(c=e.getRoot(),d=0),c===f){if(g&&(p=c.childNodes[d>0?d-1:0],p&&(h=p.nodeName.toLowerCase(),m[p.nodeName]||"TABLE"==p.nodeName)))return;if(c.hasChildNodes()&&(d=Math.min(!g&&d>0?d-1:d,c.childNodes.length-1),c=c.childNodes[d],d=0,c.hasChildNodes()&&!/TABLE/.test(c.nodeName))){p=c,u=new t(c,f);do{if(3===p.nodeType&&p.nodeValue.length>0){d=g?0:p.nodeValue.length,c=p,i=!0;break}if(m[p.nodeName.toLowerCase()]){d=e.nodeIndex(p),c=p.parentNode,"IMG"!=p.nodeName||g||d++,i=!0;break}}while(p=g?u.next():u.prev())}}o&&(3===c.nodeType&&0===d&&l(!0),1===c.nodeType&&(p=c.childNodes[d],p||(p=c.childNodes[d-1]),!p||"BR"!==p.nodeName||s(p,"A")||a(p)||a(p,!0)||l(!0,p))),g&&!o&&3===c.nodeType&&d===c.nodeValue.length&&l(!1),i&&n["set"+(r?"Start":"End")](c,d)}var i,o;return o=n.collapsed,r(!0),o||r(),i&&o&&n.collapse(!0),i}}var r=e.each;return n.compareRanges=function(e,t){if(e&&t){if(!e.item&&!e.duplicate)return e.startContainer==t.startContainer&&e.startOffset==t.startOffset;if(e.item&&t.item&&e.item(0)===t.item(0))return!0;if(e.isEqual&&t.isEqual&&t.isEqual(e))return!0}return!1},n}),r(B,[u,S,R,A,h,f],function(e,n,r,i,o,a){function s(e,t,i,o){var a=this;a.dom=e,a.win=t,a.serializer=i,a.editor=o,a.controlSelection=new r(a,o),a.win.getSelection||(a.tridentSel=new n(a))}var l=a.each,c=a.grep,d=a.trim,u=o.ie,f=o.opera;return s.prototype={setCursorLocation:function(e,t){var n=this,r=n.dom.createRng();e?(r.setStart(e,t),r.setEnd(e,t),n.setRng(r),n.collapse(!1)):(n._moveEndPoint(r,n.editor.getBody(),!0),n.setRng(r))},getContent:function(e){var n=this,r=n.getRng(),i=n.dom.create("body"),o=n.getSel(),a,s,l;return e=e||{},a=s="",e.get=!0,e.format=e.format||"html",e.selection=!0,n.editor.fire("BeforeGetContent",e),"text"==e.format?n.isCollapsed()?"":r.text||(o.toString?o.toString():""):(r.cloneContents?(l=r.cloneContents(),l&&i.appendChild(l)):r.item!==t||r.htmlText!==t?(i.innerHTML="<br>"+(r.item?r.item(0).outerHTML:r.htmlText),i.removeChild(i.firstChild)):i.innerHTML=r.toString(),/^\s/.test(i.innerHTML)&&(a=" "),/\s+$/.test(i.innerHTML)&&(s=" "),e.getInner=!0,e.content=n.isCollapsed()?"":a+n.serializer.serialize(i,e)+s,n.editor.fire("GetContent",e),e.content)},setContent:function(e,t){var n=this,r=n.getRng(),i,o=n.win.document,a,s;if(t=t||{format:"html"},t.set=!0,t.selection=!0,e=t.content=e,t.no_events||n.editor.fire("BeforeSetContent",t),e=t.content,r.insertNode){e+='<span id="__caret">_</span>',r.startContainer==o&&r.endContainer==o?o.body.innerHTML=e:(r.deleteContents(),0===o.body.childNodes.length?o.body.innerHTML=e:r.createContextualFragment?r.insertNode(r.createContextualFragment(e)):(a=o.createDocumentFragment(),s=o.createElement("div"),a.appendChild(s),s.outerHTML=e,r.insertNode(a))),i=n.dom.get("__caret"),r=o.createRange(),r.setStartBefore(i),r.setEndBefore(i),n.setRng(r),n.dom.remove("__caret");try{n.setRng(r)}catch(l){}}else r.item&&(o.execCommand("Delete",!1,null),r=n.getRng()),/^\s+/.test(e)?(r.pasteHTML('<span id="__mce_tmp">_</span>'+e),n.dom.remove("__mce_tmp")):r.pasteHTML(e);t.no_events||n.editor.fire("SetContent",t)},getStart:function(){var e=this,t=e.getRng(),n,r,i,o;if(t.duplicate||t.item){if(t.item)return t.item(0);for(i=t.duplicate(),i.collapse(1),n=i.parentElement(),n.ownerDocument!==e.dom.doc&&(n=e.dom.getRoot()),r=o=t.parentElement();o=o.parentNode;)if(o==n){n=r;break}return n}return n=t.startContainer,1==n.nodeType&&n.hasChildNodes()&&(n=n.childNodes[Math.min(n.childNodes.length-1,t.startOffset)]),n&&3==n.nodeType?n.parentNode:n},getEnd:function(){var e=this,t=e.getRng(),n,r;return t.duplicate||t.item?t.item?t.item(0):(t=t.duplicate(),t.collapse(0),n=t.parentElement(),n.ownerDocument!==e.dom.doc&&(n=e.dom.getRoot()),n&&"BODY"==n.nodeName?n.lastChild||n:n):(n=t.endContainer,r=t.endOffset,1==n.nodeType&&n.hasChildNodes()&&(n=n.childNodes[r>0?r-1:r]),n&&3==n.nodeType?n.parentNode:n)},getBookmark:function(e,t){function n(e,t){var n=0;return l(a.select(e),function(e,r){e==t&&(n=r)}),n}function r(e){function t(t){var n,r,i,o=t?"start":"end";n=e[o+"Container"],r=e[o+"Offset"],1==n.nodeType&&"TR"==n.nodeName&&(i=n.childNodes,n=i[Math.min(t?r:r-1,i.length-1)],n&&(r=t?0:n.childNodes.length,e["set"+(t?"Start":"End")](n,r)))}return t(!0),t(),e}function i(){function e(e,n){var i=e[n?"startContainer":"endContainer"],a=e[n?"startOffset":"endOffset"],s=[],l,c,d=0;if(3==i.nodeType){if(t)for(l=i.previousSibling;l&&3==l.nodeType;l=l.previousSibling)a+=l.nodeValue.length;s.push(a)}else c=i.childNodes,a>=c.length&&c.length&&(d=1,a=Math.max(0,c.length-1)),s.push(o.dom.nodeIndex(c[a],t)+d);for(;i&&i!=r;i=i.parentNode)s.push(o.dom.nodeIndex(i,t));return s}var n=o.getRng(!0),r=a.getRoot(),i={};return i.start=e(n,!0),o.isCollapsed()||(i.end=e(n)),i}var o=this,a=o.dom,s,c,d,u,f,p,m="",h;if(2==e)return p=o.getNode(),f=p?p.nodeName:null,"IMG"==f?{name:f,index:n(f,p)}:o.tridentSel?o.tridentSel.getBookmark(e):i();if(e)return{rng:o.getRng()};if(s=o.getRng(),d=a.uniqueId(),u=o.isCollapsed(),h="overflow:hidden;line-height:0px",s.duplicate||s.item){if(s.item)return p=s.item(0),f=p.nodeName,{name:f,index:n(f,p)};c=s.duplicate();try{s.collapse(),s.pasteHTML('<span data-mce-type="bookmark" id="'+d+'_start" style="'+h+'">'+m+"</span>"),u||(c.collapse(!1),s.moveToElementText(c.parentElement()),0===s.compareEndPoints("StartToEnd",c)&&c.move("character",-1),c.pasteHTML('<span data-mce-type="bookmark" id="'+d+'_end" style="'+h+'">'+m+"</span>"))}catch(g){return null}}else{if(p=o.getNode(),f=p.nodeName,"IMG"==f)return{name:f,index:n(f,p)};c=r(s.cloneRange()),u||(c.collapse(!1),c.insertNode(a.create("span",{"data-mce-type":"bookmark",id:d+"_end",style:h},m))),s=r(s),s.collapse(!0),s.insertNode(a.create("span",{"data-mce-type":"bookmark",id:d+"_start",style:h},m))}return o.moveToBookmark({id:d,keep:1}),{id:d}},moveToBookmark:function(e){function t(t){var n=e[t?"start":"end"],r,i,o,l;if(n){for(o=n[0],i=s,r=n.length-1;r>=1;r--){if(l=i.childNodes,n[r]>l.length-1)return;i=l[n[r]]}3===i.nodeType&&(o=Math.min(n[0],i.nodeValue.length)),1===i.nodeType&&(o=Math.min(n[0],i.childNodes.length)),t?a.setStart(i,o):a.setEnd(i,o)}return!0}function n(t){var n=o.get(e.id+"_"+t),r,i,a,s,u=e.keep;if(n&&(r=n.parentNode,"start"==t?(u?(r=n.firstChild,i=1):i=o.nodeIndex(n),d=p=r,m=h=i):(u?(r=n.firstChild,i=1):i=o.nodeIndex(n),p=r,h=i),!u)){for(s=n.previousSibling,a=n.nextSibling,l(c(n.childNodes),function(e){3==e.nodeType&&(e.nodeValue=e.nodeValue.replace(/\uFEFF/g,""))});n=o.get(e.id+"_"+t);)o.remove(n,1);s&&a&&s.nodeType==a.nodeType&&3==s.nodeType&&!f&&(i=s.nodeValue.length,s.appendData(a.nodeValue),o.remove(a),"start"==t?(d=p=s,m=h=i):(p=s,h=i))}}function r(e){return!o.isBlock(e)||e.innerHTML||u||(e.innerHTML='<br data-mce-bogus="1" />'),e}var i=this,o=i.dom,a,s,d,p,m,h;if(e)if(e.start){if(a=o.createRng(),s=o.getRoot(),i.tridentSel)return i.tridentSel.moveToBookmark(e);t(!0)&&t()&&i.setRng(a)}else e.id?(n("start"),n("end"),d&&(a=o.createRng(),a.setStart(r(d),m),a.setEnd(r(p),h),i.setRng(a))):e.name?i.select(o.select(e.name)[e.index]):e.rng&&i.setRng(e.rng)},select:function(e,t){var n=this,r=n.dom,i=r.createRng(),o;if(n.lastFocusBookmark=null,e){if(!t&&n.controlSelection.controlSelect(e))return;o=r.nodeIndex(e),i.setStart(e.parentNode,o),i.setEnd(e.parentNode,o+1),t&&(n._moveEndPoint(i,e,!0),n._moveEndPoint(i,e)),n.setRng(i)}return e},isCollapsed:function(){var e=this,t=e.getRng(),n=e.getSel();return!t||t.item?!1:t.compareEndPoints?0===t.compareEndPoints("StartToEnd",t):!n||t.collapsed},collapse:function(e){var t=this,n=t.getRng(),r;n.item&&(r=n.item(0),n=t.win.document.body.createTextRange(),n.moveToElementText(r)),n.collapse(!!e),t.setRng(n)},getSel:function(){var e=this.win;return e.getSelection?e.getSelection():e.document.selection},getRng:function(e){function t(e,t,n){try{return t.compareBoundaryPoints(e,n)}catch(r){return-1}}var n=this,r,i,o,a=n.win.document,s;if(!e&&n.lastFocusBookmark){var l=n.lastFocusBookmark;return l.startContainer?(i=a.createRange(),i.setStart(l.startContainer,l.startOffset),i.setEnd(l.endContainer,l.endOffset)):i=l,i}if(e&&n.tridentSel)return n.tridentSel.getRangeAt(0);try{(r=n.getSel())&&(i=r.rangeCount>0?r.getRangeAt(0):r.createRange?r.createRange():a.createRange())}catch(c){}if(u&&i&&i.setStart&&a.selection){try{s=a.selection.createRange()}catch(c){}s&&s.item&&(o=s.item(0),i=a.createRange(),i.setStartBefore(o),i.setEndAfter(o))}return i||(i=a.createRange?a.createRange():a.body.createTextRange()),i.setStart&&9===i.startContainer.nodeType&&i.collapsed&&(o=n.dom.getRoot(),i.setStart(o,0),i.setEnd(o,0)),n.selectedRange&&n.explicitRange&&(0===t(i.START_TO_START,i,n.selectedRange)&&0===t(i.END_TO_END,i,n.selectedRange)?i=n.explicitRange:(n.selectedRange=null,n.explicitRange=null)),i},setRng:function(e,t){var n=this,r;if(e.select)try{e.select()}catch(i){}else if(n.tridentSel){if(e.cloneRange)try{return void n.tridentSel.addRange(e)}catch(i){}}else if(r=n.getSel()){n.explicitRange=e;try{r.removeAllRanges(),r.addRange(e)}catch(i){}t===!1&&r.extend&&(r.collapse(e.endContainer,e.endOffset),r.extend(e.startContainer,e.startOffset)),n.selectedRange=r.rangeCount>0?r.getRangeAt(0):null}},setNode:function(e){var t=this;return t.setContent(t.dom.getOuterHTML(e)),e},getNode:function(){function e(e,t){for(var n=e;e&&3===e.nodeType&&0===e.length;)e=t?e.nextSibling:e.previousSibling;return e||n}var t=this,n=t.getRng(),r,i=n.startContainer,o=n.endContainer,a=n.startOffset,s=n.endOffset,l=t.dom.getRoot();return n?n.setStart?(r=n.commonAncestorContainer,!n.collapsed&&(i==o&&2>s-a&&i.hasChildNodes()&&(r=i.childNodes[a]),3===i.nodeType&&3===o.nodeType&&(i=i.length===a?e(i.nextSibling,!0):i.parentNode,o=0===s?e(o.previousSibling,!1):o.parentNode,i&&i===o))?i:r&&3==r.nodeType?r.parentNode:r):(r=n.item?n.item(0):n.parentElement(),r.ownerDocument!==t.win.document&&(r=l),r):l},getSelectedBlocks:function(t,n){var r=this,i=r.dom,o,a,s=[];if(a=i.getRoot(),t=i.getParent(t||r.getStart(),i.isBlock),n=i.getParent(n||r.getEnd(),i.isBlock),t&&t!=a&&s.push(t),t&&n&&t!=n){o=t;for(var l=new e(t,a);(o=l.next())&&o!=n;)i.isBlock(o)&&s.push(o)}return n&&t!=n&&n!=a&&s.push(n),s},isForward:function(){var e=this.dom,t=this.getSel(),n,r;return t&&t.anchorNode&&t.focusNode?(n=e.createRng(),n.setStart(t.anchorNode,t.anchorOffset),n.collapse(!0),r=e.createRng(),r.setStart(t.focusNode,t.focusOffset),r.collapse(!0),n.compareBoundaryPoints(n.START_TO_START,r)<=0):!0},normalize:function(){var e=this,t=e.getRng();return!u&&new i(e.dom).normalize(t)&&e.setRng(t,e.isForward()),t},selectorChanged:function(e,t){var n=this,r;return n.selectorChangedData||(n.selectorChangedData={},r={},n.editor.on("NodeChange",function(e){var t=e.element,i=n.dom,o=i.getParents(t,null,i.getRoot()),a={};l(n.selectorChangedData,function(e,t){l(o,function(n){return i.is(n,t)?(r[t]||(l(e,function(e){e(!0,{node:n,selector:t,parents:o})}),r[t]=e),a[t]=e,!1):void 0})}),l(r,function(e,n){a[n]||(delete r[n],l(e,function(e){e(!1,{node:t,selector:n,parents:o})}))})})),n.selectorChangedData[e]||(n.selectorChangedData[e]=[]),n.selectorChangedData[e].push(t),n},getScrollContainer:function(){for(var e,t=this.dom.getRoot();t&&"BODY"!=t.nodeName;){if(t.scrollHeight>t.clientHeight){e=t;break}t=t.parentNode}return e},scrollIntoView:function(e){function t(e){for(var t=0,n=0,r=e;r&&r.nodeType;)t+=r.offsetLeft||0,n+=r.offsetTop||0,r=r.offsetParent;return{x:t,y:n}}var n,r,i=this,o=i.dom,a=o.getRoot(),s,l;if("BODY"!=a.nodeName){var c=i.getScrollContainer();if(c)return n=t(e).y-t(c).y,l=c.clientHeight,s=c.scrollTop,void((s>n||n+25>s+l)&&(c.scrollTop=s>n?n:n-l+25))}r=o.getViewPort(i.editor.getWin()),n=o.getPos(e).y,s=r.y,l=r.h,(n<r.y||n+25>s+l)&&i.editor.getWin().scrollTo(0,s>n?n:n-l+25)},_moveEndPoint:function(t,n,r){var i=n,a=new e(n,i),s=this.dom.schema.getNonEmptyElements();do{if(3==n.nodeType&&0!==d(n.nodeValue).length)return void(r?t.setStart(n,0):t.setEnd(n,n.nodeValue.length));if(s[n.nodeName])return void(r?t.setStartBefore(n):"BR"==n.nodeName?t.setEndBefore(n):t.setEndAfter(n));if(o.ie&&o.ie<11&&this.dom.isBlock(n)&&this.dom.isEmpty(n))return void(r?t.setStart(n,0):t.setEnd(n,0))}while(n=r?a.next():a.prev());"BODY"==i.nodeName&&(r?t.setStart(i,0):t.setEnd(i,i.childNodes.length))},destroy:function(){this.win=null,this.controlSelection.destroy()}},s}),r(L,[u,A,f],function(e,t,n){return function(r){function i(e){return e.nodeType&&(e=e.nodeName),!!r.schema.getTextBlockElements()[e.toLowerCase()]}function o(e,t){return I.getParents(e,t,I.getRoot())}function a(e){return 1===e.nodeType&&"_mce_caret"===e.id}function s(){d({alignleft:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"left"},defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"left"}}],aligncenter:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"center"},defaultBlock:"div"},{selector:"img",collapsed:!1,styles:{display:"block",marginLeft:"auto",marginRight:"auto"}},{selector:"table",collapsed:!1,styles:{marginLeft:"auto",marginRight:"auto"}}],alignright:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"right"},defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"right"}}],alignjustify:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"justify"},defaultBlock:"div"}],bold:[{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}},{inline:"b",remove:"all"}],italic:[{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}},{inline:"i",remove:"all"}],underline:[{inline:"span",styles:{textDecoration:"underline"},exact:!0},{inline:"u",remove:"all"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:!0},{inline:"strike",remove:"all"}],forecolor:{inline:"span",styles:{color:"%value"},wrap_links:!1},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"},wrap_links:!1},fontname:{inline:"span",styles:{fontFamily:"%value"}},fontsize:{inline:"span",styles:{fontSize:"%value"}},fontsize_class:{inline:"span",attributes:{"class":"%value"}},blockquote:{block:"blockquote",wrapper:1,remove:"all"},subscript:{inline:"sub"},superscript:{inline:"sup"},code:{inline:"code"},link:{inline:"a",selector:"a",remove:"all",split:!0,deep:!0,onmatch:function(){return!0 +},onformat:function(e,t,n){et(n,function(t,n){I.setAttrib(e,n,t)})}},removeformat:[{selector:"b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q",remove:"all",split:!0,expand:!1,block_expand:!0,deep:!0},{selector:"span",attributes:["style","class"],remove:"empty",split:!0,expand:!1,deep:!0},{selector:"*",attributes:["style","class"],split:!1,expand:!1,deep:!0}]}),et("p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp".split(/\s/),function(e){d(e,{block:e,remove:"all"})}),d(r.settings.formats)}function l(){r.addShortcut("ctrl+b","bold_desc","Bold"),r.addShortcut("ctrl+i","italic_desc","Italic"),r.addShortcut("ctrl+u","underline_desc","Underline");for(var e=1;6>=e;e++)r.addShortcut("ctrl+"+e,"",["FormatBlock",!1,"h"+e]);r.addShortcut("ctrl+7","",["FormatBlock",!1,"p"]),r.addShortcut("ctrl+8","",["FormatBlock",!1,"div"]),r.addShortcut("ctrl+9","",["FormatBlock",!1,"address"])}function c(e){return e?O[e]:O}function d(e,t){e&&("string"!=typeof e?et(e,function(e,t){d(t,e)}):(t=t.length?t:[t],et(t,function(e){e.deep===X&&(e.deep=!e.selector),e.split===X&&(e.split=!e.selector||e.inline),e.remove===X&&e.selector&&!e.inline&&(e.remove="none"),e.selector&&e.inline&&(e.mixed=!0,e.block_expand=!0),"string"==typeof e.classes&&(e.classes=e.classes.split(/\s+/))}),O[e]=t))}function u(e){var t;return r.dom.getParent(e,function(e){return t=r.dom.getStyle(e,"text-decoration"),t&&"none"!==t}),t}function f(e){var t;1===e.nodeType&&e.parentNode&&1===e.parentNode.nodeType&&(t=u(e.parentNode),r.dom.getStyle(e,"color")&&t?r.dom.setStyle(e,"text-decoration",t):r.dom.getStyle(e,"textdecoration")===t&&r.dom.setStyle(e,"text-decoration",null))}function p(t,n,o){function s(e,t){t=t||h,e&&(t.onformat&&t.onformat(e,t,n,o),et(t.styles,function(t,r){I.setStyle(e,r,E(t,n))}),et(t.attributes,function(t,r){I.setAttrib(e,r,E(t,n))}),et(t.classes,function(t){t=E(t,n),I.hasClass(e,t)||I.addClass(e,t)}))}function l(){function t(t,n){var r=new e(n);for(o=r.current();o;o=r.prev())if(o.childNodes.length>1||o==t||"BR"==o.tagName)return o}var n=r.selection.getRng(),i=n.startContainer,a=n.endContainer;if(i!=a&&0===n.endOffset){var s=t(i,a),l=3==s.nodeType?s.length:s.childNodes.length;n.setEnd(s,l)}return n}function d(e,t,n,r,i){var o=[],a=-1,s,l=-1,c=-1,d;return et(e.childNodes,function(e,t){return"UL"===e.nodeName||"OL"===e.nodeName?(a=t,s=e,!1):void 0}),et(e.childNodes,function(e,n){"SPAN"===e.nodeName&&"bookmark"==I.getAttrib(e,"data-mce-type")&&(e.id==t.id+"_start"?l=n:e.id==t.id+"_end"&&(c=n))}),0>=a||a>l&&c>a?(et(tt(e.childNodes),i),0):(d=I.clone(n,K),et(tt(e.childNodes),function(e,t){(a>l&&a>t||l>a&&t>a)&&(o.push(e),e.parentNode.removeChild(e))}),a>l?e.insertBefore(d,s):l>a&&e.insertBefore(d,s.nextSibling),r.push(d),et(o,function(e){d.appendChild(e)}),d)}function u(e,r,o){var l=[],c,u,f=!0;c=h.inline||h.block,u=I.create(c),s(u),z.walk(e,function(e){function p(e){var y,C,x,_,N;return N=f,y=e.nodeName.toLowerCase(),C=e.parentNode.nodeName.toLowerCase(),1===e.nodeType&&J(e)&&(N=f,f="true"===J(e),_=!0),w(y,"br")?(v=0,void(h.block&&I.remove(e))):h.wrapper&&g(e,t,n)?void(v=0):f&&!_&&h.block&&!h.wrapper&&i(y)&&W(C,c)?(e=I.rename(e,c),s(e),l.push(e),void(v=0)):h.selector&&(et(m,function(t){"collapsed"in t&&t.collapsed!==b||I.is(e,t.selector)&&!a(e)&&(s(e,t),x=!0)}),!h.inline||x)?void(v=0):void(!f||_||!W(c,y)||!W(C,c)||!o&&3===e.nodeType&&1===e.nodeValue.length&&65279===e.nodeValue.charCodeAt(0)||a(e)||h.inline&&V(e)?"li"==y&&r?v=d(e,r,u,l,p):(v=0,et(tt(e.childNodes),p),_&&(f=N),v=0):(v||(v=I.clone(u,K),e.parentNode.insertBefore(v,e),l.push(v)),v.appendChild(e)))}var v;et(e,p)}),h.wrap_links===!1&&et(l,function(e){function t(e){var n,r,i;if("A"===e.nodeName){for(r=I.clone(u,K),l.push(r),i=tt(e.childNodes),n=0;n<i.length;n++)r.appendChild(i[n]);e.appendChild(r)}et(tt(e.childNodes),t)}t(e)}),et(l,function(e){function r(e){var t=0;return et(e.childNodes,function(e){k(e)||L(e)||t++}),t}function i(e){var t,n;return et(e.childNodes,function(e){return 1!=e.nodeType||L(e)||a(e)?void 0:(t=e,K)}),t&&!L(t)&&x(t,h)&&(n=I.clone(t,K),s(n),I.replace(n,e,Y),I.remove(t,1)),n||e}var o;if(o=r(e),(l.length>1||!V(e))&&0===o)return void I.remove(e,1);if(h.inline||h.wrapper){if(h.exact||1!==o||(e=i(e)),et(m,function(t){et(I.select(t.inline,e),function(e){var r;if(!L(e)){if(t.wrap_links===!1){r=e.parentNode;do if("A"===r.nodeName)return;while(r=r.parentNode)}R(t,n,e,t.exact?e:null)}})}),g(e.parentNode,t,n))return I.remove(e,1),e=0,Y;h.merge_with_parents&&I.getParent(e.parentNode,function(r){return g(r,t,n)?(I.remove(e,1),e=0,Y):void 0}),e&&h.merge_siblings!==!1&&(e=D(B(e),e),e=D(e,B(e,Y)))}})}var m=c(t),h=m[0],v,y,b=!o&&F.isCollapsed();if(h)if(o)o.nodeType?(y=I.createRng(),y.setStartBefore(o),y.setEndAfter(o),u(T(y,m),null,!0)):u(o,null,!0);else if(b&&h.inline&&!I.select("td.mce-item-selected,th.mce-item-selected").length)H("apply",t,n);else{var C=r.selection.getNode();U||!m[0].defaultBlock||I.getParent(C,I.isBlock)||p(m[0].defaultBlock),r.selection.setRng(l()),v=F.getBookmark(),u(T(F.getRng(Y),m),v),h.styles&&(h.styles.color||h.styles.textDecoration)&&(nt(C,f,"childNodes"),f(C)),F.moveToBookmark(v),P(F.getRng(Y)),r.nodeChanged()}}function m(e,t,n){function i(e){var n,r,o,a,s;if(1===e.nodeType&&J(e)&&(a=b,b="true"===J(e),s=!0),n=tt(e.childNodes),b&&!s)for(r=0,o=p.length;o>r&&!R(p[r],t,e,e);r++);if(m.deep&&n.length){for(r=0,o=n.length;o>r;r++)i(n[r]);s&&(b=a)}}function a(n){var r;return et(o(n.parentNode).reverse(),function(n){var i;r||"_start"==n.id||"_end"==n.id||(i=g(n,e,t),i&&i.split!==!1&&(r=n))}),r}function s(e,n,r,i){var o,a,s,l,c,d;if(e){for(d=e.parentNode,o=n.parentNode;o&&o!=d;o=o.parentNode){for(a=I.clone(o,K),c=0;c<p.length;c++)if(R(p[c],t,a,a)){a=0;break}a&&(s&&a.appendChild(s),l||(l=a),s=a)}!i||m.mixed&&V(e)||(n=I.split(e,n)),s&&(r.parentNode.insertBefore(s,r),l.appendChild(r))}return n}function l(e){return s(a(e),e,e,!0)}function d(e){var t=I.get(e?"_start":"_end"),n=t[e?"firstChild":"lastChild"];return L(n)&&(n=n[e?"firstChild":"lastChild"]),I.remove(t,!0),n}function f(e){var t,n,o=e.commonAncestorContainer;e=T(e,p,Y),m.split&&(t=M(e,Y),n=M(e),t!=n?(/^(TR|TH|TD)$/.test(t.nodeName)&&t.firstChild&&(t="TR"==t.nodeName?t.firstChild.firstChild||t:t.firstChild||t),o&&/^T(HEAD|BODY|FOOT|R)$/.test(o.nodeName)&&/^(TH|TD)$/.test(n.nodeName)&&n.firstChild&&(n=n.firstChild||n),t=S(t,"span",{id:"_start","data-mce-type":"bookmark"}),n=S(n,"span",{id:"_end","data-mce-type":"bookmark"}),l(t),l(n),t=d(Y),n=d()):t=n=l(t),e.startContainer=t.parentNode,e.startOffset=q(t),e.endContainer=n.parentNode,e.endOffset=q(n)+1),z.walk(e,function(e){et(e,function(e){i(e),1===e.nodeType&&"underline"===r.dom.getStyle(e,"text-decoration")&&e.parentNode&&"underline"===u(e.parentNode)&&R({deep:!1,exact:!0,inline:"span",styles:{textDecoration:"underline"}},null,e)})})}var p=c(e),m=p[0],h,y,b=!0;return n?void(n.nodeType?(y=I.createRng(),y.setStartBefore(n),y.setEndAfter(n),f(y)):f(n)):void(F.isCollapsed()&&m.inline&&!I.select("td.mce-item-selected,th.mce-item-selected").length?H("remove",e,t):(h=F.getBookmark(),f(F.getRng(Y)),F.moveToBookmark(h),m.inline&&v(e,t,F.getStart())&&P(F.getRng(!0)),r.nodeChanged()))}function h(e,t,n){var r=c(e);!v(e,t,n)||"toggle"in r[0]&&!r[0].toggle?p(e,t,n):m(e,t,n)}function g(e,t,n,r){function i(e,t,i){var o,a,s=t[i],l;if(t.onmatch)return t.onmatch(e,t,i);if(s)if(s.length===X){for(o in s)if(s.hasOwnProperty(o)){if(a="attributes"===i?I.getAttrib(e,o):_(e,o),r&&!a&&!t.exact)return;if((!r||t.exact)&&!w(a,N(E(s[o],n),o)))return}}else for(l=0;l<s.length;l++)if("attributes"===i?I.getAttrib(e,s[l]):_(e,s[l]))return t;return t}var o=c(t),a,s,l;if(o&&e)for(s=0;s<o.length;s++)if(a=o[s],x(e,a)&&i(e,a,"attributes")&&i(e,a,"styles")){if(l=a.classes)for(s=0;s<l.length;s++)if(!I.hasClass(e,l[s]))return;return a}}function v(e,t,n){function r(n){var r=I.getRoot();return n===r?!1:(n=I.getParent(n,function(n){return n.parentNode===r||!!g(n,e,t,!0)}),g(n,e,t))}var i;return n?r(n):(n=F.getNode(),r(n)?Y:(i=F.getStart(),i!=n&&r(i)?Y:K))}function y(e,t){var n,r=[],i={};return n=F.getStart(),I.getParent(n,function(n){var o,a;for(o=0;o<e.length;o++)a=e[o],!i[a]&&g(n,a,t)&&(i[a]=!0,r.push(a))},I.getRoot()),r}function b(e){var t=c(e),n,r,i,a,s;if(t)for(n=F.getStart(),r=o(n),a=t.length-1;a>=0;a--){if(s=t[a].selector,!s||t[a].defaultBlock)return Y;for(i=r.length-1;i>=0;i--)if(I.is(r[i],s))return Y}return K}function C(e,t,n){var i;return G||(G={},i={},r.on("NodeChange",function(e){var t=o(e.element),n={};et(G,function(e,r){et(t,function(o){return g(o,r,{},e.similar)?(i[r]||(et(e,function(e){e(!0,{node:o,format:r,parents:t})}),i[r]=e),n[r]=e,!1):void 0})}),et(i,function(r,o){n[o]||(delete i[o],et(r,function(n){n(!1,{node:e.element,format:o,parents:t})}))})})),et(e.split(","),function(e){G[e]||(G[e]=[],G[e].similar=n),G[e].push(t)}),this}function x(e,t){return w(e,t.inline)?Y:w(e,t.block)?Y:t.selector?1==e.nodeType&&I.is(e,t.selector):void 0}function w(e,t){return e=e||"",t=t||"",e=""+(e.nodeName||e),t=""+(t.nodeName||t),e.toLowerCase()==t.toLowerCase()}function _(e,t){return N(I.getStyle(e,t),t)}function N(e,t){return("color"==t||"backgroundColor"==t)&&(e=I.toHex(e)),"fontWeight"==t&&700==e&&(e="bold"),"fontFamily"==t&&(e=e.replace(/[\'\"]/g,"").replace(/,\s+/g,",")),""+e}function E(e,t){return"string"!=typeof e?e=e(t):t&&(e=e.replace(/%(\w+)/g,function(e,n){return t[n]||e})),e}function k(e){return e&&3===e.nodeType&&/^([\t \r\n]+|)$/.test(e.nodeValue)}function S(e,t,n){var r=I.create(t,n);return e.parentNode.insertBefore(r,e),r.appendChild(e),r}function T(t,n,a){function s(e){function t(e){return"BR"==e.nodeName&&e.getAttribute("data-mce-bogus")&&!e.nextSibling}var r,i,o,a,s;if(r=i=e?g:y,a=e?"previousSibling":"nextSibling",s=I.getRoot(),3==r.nodeType&&!k(r)&&(e?v>0:b<r.nodeValue.length))return r;for(;;){if(!n[0].block_expand&&V(i))return i;for(o=i[a];o;o=o[a])if(!L(o)&&!k(o)&&!t(o))return i;if(i.parentNode==s){r=i;break}i=i.parentNode}return r}function l(e,t){for(t===X&&(t=3===e.nodeType?e.length:e.childNodes.length);e&&e.hasChildNodes();)e=e.childNodes[t],e&&(t=3===e.nodeType?e.length:e.childNodes.length);return{node:e,offset:t}}function c(e){for(var t=e;t;){if(1===t.nodeType&&J(t))return"false"===J(t)?t:e;t=t.parentNode}return e}function d(t,n,i){function o(e,t){var n,r,o=e.nodeValue;return"undefined"==typeof t&&(t=i?o.length:0),i?(n=o.lastIndexOf(" ",t),r=o.lastIndexOf("\xa0",t),n=n>r?n:r,-1===n||a||n++):(n=o.indexOf(" ",t),r=o.indexOf("\xa0",t),n=-1!==n&&(-1===r||r>n)?n:r),n}var s,l,c,d;if(3===t.nodeType){if(c=o(t,n),-1!==c)return{container:t,offset:c};d=t}for(s=new e(t,I.getParent(t,V)||r.getBody());l=s[i?"prev":"next"]();)if(3===l.nodeType){if(d=l,c=o(l),-1!==c)return{container:l,offset:c}}else if(V(l))break;return d?(n=i?0:d.length,{container:d,offset:n}):void 0}function u(e,r){var i,a,s,l;for(3==e.nodeType&&0===e.nodeValue.length&&e[r]&&(e=e[r]),i=o(e),a=0;a<i.length;a++)for(s=0;s<n.length;s++)if(l=n[s],!("collapsed"in l&&l.collapsed!==t.collapsed)&&I.is(i[a],l.selector))return i[a];return e}function f(e,t){var r,a=I.getRoot();if(n[0].wrapper||(r=I.getParent(e,n[0].block,a)),r||(r=I.getParent(3==e.nodeType?e.parentNode:e,function(e){return e!=a&&i(e)})),r&&n[0].wrapper&&(r=o(r,"ul,ol").reverse()[0]||r),!r)for(r=e;r[t]&&!V(r[t])&&(r=r[t],!w(r,"br")););return r||e}var p,m,h,g=t.startContainer,v=t.startOffset,y=t.endContainer,b=t.endOffset;if(1==g.nodeType&&g.hasChildNodes()&&(p=g.childNodes.length-1,g=g.childNodes[v>p?p:v],3==g.nodeType&&(v=0)),1==y.nodeType&&y.hasChildNodes()&&(p=y.childNodes.length-1,y=y.childNodes[b>p?p:b-1],3==y.nodeType&&(b=y.nodeValue.length)),g=c(g),y=c(y),(L(g.parentNode)||L(g))&&(g=L(g)?g:g.parentNode,g=g.nextSibling||g,3==g.nodeType&&(v=0)),(L(y.parentNode)||L(y))&&(y=L(y)?y:y.parentNode,y=y.previousSibling||y,3==y.nodeType&&(b=y.length)),n[0].inline&&(t.collapsed&&(h=d(g,v,!0),h&&(g=h.container,v=h.offset),h=d(y,b),h&&(y=h.container,b=h.offset)),m=l(y,b),m.node)){for(;m.node&&0===m.offset&&m.node.previousSibling;)m=l(m.node.previousSibling);m.node&&m.offset>0&&3===m.node.nodeType&&" "===m.node.nodeValue.charAt(m.offset-1)&&m.offset>1&&(y=m.node,y.splitText(m.offset-1))}return(n[0].inline||n[0].block_expand)&&(n[0].inline&&3==g.nodeType&&0!==v||(g=s(!0)),n[0].inline&&3==y.nodeType&&b!==y.nodeValue.length||(y=s())),n[0].selector&&n[0].expand!==K&&!n[0].inline&&(g=u(g,"previousSibling"),y=u(y,"nextSibling")),(n[0].block||n[0].selector)&&(g=f(g,"previousSibling"),y=f(y,"nextSibling"),n[0].block&&(V(g)||(g=s(!0)),V(y)||(y=s()))),1==g.nodeType&&(v=q(g),g=g.parentNode),1==y.nodeType&&(b=q(y)+1,y=y.parentNode),{startContainer:g,startOffset:v,endContainer:y,endOffset:b}}function R(e,t,n,r){var i,o,a;if(!x(n,e))return K;if("all"!=e.remove)for(et(e.styles,function(e,i){e=N(E(e,t),i),"number"==typeof i&&(i=e,r=0),(!r||w(_(r,i),e))&&I.setStyle(n,i,""),a=1}),a&&""===I.getAttrib(n,"style")&&(n.removeAttribute("style"),n.removeAttribute("data-mce-style")),et(e.attributes,function(e,i){var o;if(e=E(e,t),"number"==typeof i&&(i=e,r=0),!r||w(I.getAttrib(r,i),e)){if("class"==i&&(e=I.getAttrib(n,i),e&&(o="",et(e.split(/\s+/),function(e){/mce\w+/.test(e)&&(o+=(o?" ":"")+e)}),o)))return void I.setAttrib(n,i,o);"class"==i&&n.removeAttribute("className"),$.test(i)&&n.removeAttribute("data-mce-"+i),n.removeAttribute(i)}}),et(e.classes,function(e){e=E(e,t),(!r||I.hasClass(r,e))&&I.removeClass(n,e)}),o=I.getAttribs(n),i=0;i<o.length;i++)if(0!==o[i].nodeName.indexOf("_"))return K;return"none"!=e.remove?(A(n,e),Y):void 0}function A(e,t){function n(e,t,n){return e=B(e,t,n),!e||"BR"==e.nodeName||V(e)}var i=e.parentNode,o;t.block&&(U?i==I.getRoot()&&(t.list_block&&w(e,t.list_block)||et(tt(e.childNodes),function(e){W(U,e.nodeName.toLowerCase())?o?o.appendChild(e):(o=S(e,U),I.setAttribs(o,r.settings.forced_root_block_attrs)):o=0})):V(e)&&!V(i)&&(n(e,K)||n(e.firstChild,Y,1)||e.insertBefore(I.create("br"),e.firstChild),n(e,Y)||n(e.lastChild,K,1)||e.appendChild(I.create("br")))),t.selector&&t.inline&&!w(t.inline,e)||I.remove(e,1)}function B(e,t,n){if(e)for(t=t?"nextSibling":"previousSibling",e=n?e:e[t];e;e=e[t])if(1==e.nodeType||!k(e))return e}function L(e){return e&&1==e.nodeType&&"bookmark"==e.getAttribute("data-mce-type")}function D(e,t){function n(e,t){function n(e){var t={};return et(I.getAttribs(e),function(n){var r=n.nodeName.toLowerCase();0!==r.indexOf("_")&&"style"!==r&&"data-mce-style"!==r&&(t[r]=I.getAttrib(e,r))}),t}function r(e,t){var n,r;for(r in e)if(e.hasOwnProperty(r)){if(n=t[r],n===X)return K;if(e[r]!=n)return K;delete t[r]}for(r in t)if(t.hasOwnProperty(r))return K;return Y}return e.nodeName!=t.nodeName?K:r(n(e),n(t))&&r(I.parseStyle(I.getAttrib(e,"style")),I.parseStyle(I.getAttrib(t,"style")))?!L(e)&&!L(t):K}function r(e,t){for(i=e;i;i=i[t]){if(3==i.nodeType&&0!==i.nodeValue.length)return e;if(1==i.nodeType&&!L(i))return i}return e}var i,o;if(e&&t&&(e=r(e,"previousSibling"),t=r(t,"nextSibling"),n(e,t))){for(i=e.nextSibling;i&&i!=t;)o=i,i=i.nextSibling,e.appendChild(o);return I.remove(t),et(tt(t.childNodes),function(t){e.appendChild(t)}),e}return t}function M(t,n){var i,o,a;return i=t[n?"startContainer":"endContainer"],o=t[n?"startOffset":"endOffset"],1==i.nodeType&&(a=i.childNodes.length-1,!n&&o&&o--,i=i.childNodes[o>a?a:o]),3===i.nodeType&&n&&o>=i.nodeValue.length&&(i=new e(i,r.getBody()).next()||i),3!==i.nodeType||n||0!==o||(i=new e(i,r.getBody()).prev()||i),i}function H(t,n,o){function a(e){var t=I.create("span",{id:y,"data-mce-bogus":!0,style:b?"color:red":""});return e&&t.appendChild(r.getDoc().createTextNode(j)),t}function s(e,t){for(;e;){if(3===e.nodeType&&e.nodeValue!==j||e.childNodes.length>1)return!1;t&&1===e.nodeType&&t.push(e),e=e.firstChild}return!0}function l(e){for(;e;){if(e.id===y)return e;e=e.parentNode}}function d(t){var n;if(t)for(n=new e(t,t),t=n.current();t;t=n.next())if(3===t.nodeType)return t}function u(e,t){var n,r;if(e)r=F.getRng(!0),s(e)?(t!==!1&&(r.setStartBefore(e),r.setEndBefore(e)),I.remove(e)):(n=d(e),n.nodeValue.charAt(0)===j&&(n=n.deleteData(0,1)),I.remove(e,1)),F.setRng(r);else if(e=l(F.getStart()),!e)for(;e=I.get(y);)u(e,!1)}function f(){var e,t,r,i,s,u,f;e=F.getRng(!0),i=e.startOffset,u=e.startContainer,f=u.nodeValue,t=l(F.getStart()),t&&(r=d(t)),f&&i>0&&i<f.length&&/\w/.test(f.charAt(i))&&/\w/.test(f.charAt(i-1))?(s=F.getBookmark(),e.collapse(!0),e=T(e,c(n)),e=z.split(e),p(n,o,e),F.moveToBookmark(s)):(t&&r.nodeValue===j?p(n,o,t):(t=a(!0),r=t.firstChild,e.insertNode(t),i=1,p(n,o,t)),F.setCursorLocation(r,i))}function h(){var e=F.getRng(!0),t,r,s,l,d,u,f=[],p,h;for(t=e.startContainer,r=e.startOffset,d=t,3==t.nodeType&&((r!=t.nodeValue.length||t.nodeValue===j)&&(l=!0),d=d.parentNode);d;){if(g(d,n,o)){u=d;break}d.nextSibling&&(l=!0),f.push(d),d=d.parentNode}if(u)if(l)s=F.getBookmark(),e.collapse(!0),e=T(e,c(n),!0),e=z.split(e),m(n,o,e),F.moveToBookmark(s);else{for(h=a(),d=h,p=f.length-1;p>=0;p--)d.appendChild(I.clone(f[p],!1)),d=d.firstChild;d.appendChild(I.doc.createTextNode(j)),d=d.firstChild;var v=I.getParent(u,i);v&&I.isEmpty(v)?u.parentNode.replaceChild(h,u):I.insertAfter(h,u),F.setCursorLocation(d,1),I.isEmpty(u)&&I.remove(u)}}function v(){var e;e=l(F.getStart()),e&&!I.isEmpty(e)&&nt(e,function(e){1!=e.nodeType||e.id===y||I.isEmpty(e)||I.setAttrib(e,"data-mce-bogus",null)},"childNodes")}var y="_mce_caret",b=r.settings.caret_debug;r._hasCaretEvents||(Z=function(){var e=[],t;if(s(l(F.getStart()),e))for(t=e.length;t--;)I.setAttrib(e[t],"data-mce-bogus","1")},Q=function(e){var t=e.keyCode;u(),(8==t||37==t||39==t)&&u(l(F.getStart())),v()},r.on("SetContent",function(e){e.selection&&v()}),r._hasCaretEvents=!0),"apply"==t?f():h()}function P(t){var n=t.startContainer,r=t.startOffset,i,o,a,s,l;if(3==n.nodeType&&r>=n.nodeValue.length&&(r=q(n),n=n.parentNode,i=!0),1==n.nodeType)for(s=n.childNodes,n=s[Math.min(r,s.length-1)],o=new e(n,I.getParent(n,I.isBlock)),(r>s.length-1||i)&&o.next(),a=o.current();a;a=o.next())if(3==a.nodeType&&!k(a))return l=I.create("a",null,j),a.parentNode.insertBefore(l,a),t.setStart(a,0),F.setRng(t),void I.remove(l)}var O={},I=r.dom,F=r.selection,z=new t(I),W=r.schema.isValidChild,V=I.isBlock,U=r.settings.forced_root_block,q=I.nodeIndex,j="\ufeff",$=/^(src|href|style)$/,K=!1,Y=!0,G,X,J=I.getContentEditable,Q,Z,et=n.each,tt=n.grep,nt=n.walk,rt=n.extend;rt(this,{get:c,register:d,apply:p,remove:m,toggle:h,match:v,matchAll:y,matchNode:g,canApply:b,formatChanged:C}),s(),l(),r.on("BeforeGetContent",function(){Z&&Z()}),r.on("mouseup keydown",function(e){Q&&Q(e)})}}),r(D,[h,f],function(e,t){var n=t.trim,r;return r=new RegExp(["<span[^>]+data-mce-bogus[^>]+>[\u200b\ufeff]+<\\/span>","<div[^>]+data-mce-bogus[^>]+><\\/div>",'\\s?data-mce-selected="[^"]+"'].join("|"),"gi"),function(t){function i(){return n(t.getContent({format:"raw",no_events:1}).replace(r,""))}function o(e){a.typing=!1,a.add({},e)}var a=this,s=0,l=[],c,d,u;return t.on("init",function(){a.add()}),t.on("BeforeExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&a.beforeChange()}),t.on("ExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&o(e)}),t.on("ObjectResizeStart",function(){a.beforeChange()}),t.on("SaveContent ObjectResized blur",o),t.dom.bind(t.dom.getRoot(),"dragend",o),t.on("KeyUp",function(n){var r=n.keyCode;(r>=33&&36>=r||r>=37&&40>=r||45==r||13==r||n.ctrlKey)&&(o(),t.nodeChanged()),(46==r||8==r||e.mac&&(91==r||93==r))&&t.nodeChanged(),d&&a.typing&&(t.isDirty()||(t.isNotDirty=!l[0]||i()==l[0].content,t.isNotDirty||t.fire("change",{level:l[0],lastLevel:null})),t.fire("TypingUndo"),d=!1,t.nodeChanged())}),t.on("KeyDown",function(e){var t=e.keyCode;return t>=33&&36>=t||t>=37&&40>=t||45==t?void(a.typing&&o(e)):void((16>t||t>20)&&224!=t&&91!=t&&!a.typing&&(a.beforeChange(),a.typing=!0,a.add({},e),d=!0))}),t.on("MouseDown",function(e){a.typing&&o(e)}),t.addShortcut("ctrl+z","","Undo"),t.addShortcut("ctrl+y,ctrl+shift+z","","Redo"),t.on("AddUndo Undo Redo ClearUndos MouseUp",function(e){e.isDefaultPrevented()||t.nodeChanged()}),a={data:l,typing:!1,beforeChange:function(){u||(c=t.selection.getBookmark(2,!0))},add:function(e,n){var r,o=t.settings,a;if(e=e||{},e.content=i(),u||t.removed)return null;if(t.fire("BeforeAddUndo",{level:e,originalEvent:n}).isDefaultPrevented())return null;if(a=l[s],a&&a.content==e.content)return null;if(l[s]&&(l[s].beforeBookmark=c),o.custom_undo_redo_levels&&l.length>o.custom_undo_redo_levels){for(r=0;r<l.length-1;r++)l[r]=l[r+1];l.length--,s=l.length}e.bookmark=t.selection.getBookmark(2,!0),s<l.length-1&&(l.length=s+1),l.push(e),s=l.length-1;var d={level:e,lastLevel:a,originalEvent:n};return t.fire("AddUndo",d),s>0&&(t.isNotDirty=!1,t.fire("change",d)),e},undo:function(){var e;return a.typing&&(a.add(),a.typing=!1),s>0&&(e=l[--s],0===s&&(t.isNotDirty=!0),t.setContent(e.content,{format:"raw"}),t.selection.moveToBookmark(e.beforeBookmark),t.fire("undo",{level:e})),e},redo:function(){var e;return s<l.length-1&&(e=l[++s],t.setContent(e.content,{format:"raw"}),t.selection.moveToBookmark(e.bookmark),t.fire("redo",{level:e})),e},clear:function(){l=[],s=0,a.typing=!1,t.fire("ClearUndos")},hasUndo:function(){return s>0||a.typing&&l[0]&&i()!=l[0].content},hasRedo:function(){return s<l.length-1&&!this.typing},transact:function(e){a.beforeChange(),u=!0,e(),u=!1,a.add()}}}}),r(M,[u,A,h],function(e,t,n){var r=n.ie&&n.ie<11;return function(i){function o(o){function f(e){return e&&a.isBlock(e)&&!/^(TD|TH|CAPTION|FORM)$/.test(e.nodeName)&&!/^(fixed|absolute)/i.test(e.style.position)&&"true"!==a.getContentEditable(e)}function p(e){var t;a.isBlock(e)&&(t=s.getRng(),e.appendChild(a.create("span",null,"\xa0")),s.select(e),e.lastChild.outerHTML="",s.setRng(t))}function m(e){for(var t=e,n=[],r;t=t.firstChild;){if(a.isBlock(t))return;1!=t.nodeType||u[t.nodeName.toLowerCase()]||n.push(t)}for(r=n.length;r--;)t=n[r],!t.hasChildNodes()||t.firstChild==t.lastChild&&""===t.firstChild.nodeValue?a.remove(t):"A"==t.nodeName&&" "===(t.innerText||t.textContent)&&a.remove(t)}function h(t){function r(e){for(;e;){if(1==e.nodeType||3==e.nodeType&&e.data&&/[\r\n\s]/.test(e.data))return e;e=e.nextSibling}}var i,o,l,c=t,d;if(n.ie&&n.ie<9&&B&&B.firstChild&&B.firstChild==B.lastChild&&"BR"==B.firstChild.tagName&&a.remove(B.firstChild),"LI"==t.nodeName){var f=r(t.firstChild);f&&/^(UL|OL)$/.test(f.nodeName)&&t.insertBefore(a.doc.createTextNode("\xa0"),t.firstChild)}if(l=a.createRng(),t.hasChildNodes()){for(i=new e(t,t);o=i.current();){if(3==o.nodeType){l.setStart(o,0),l.setEnd(o,0);break}if(u[o.nodeName.toLowerCase()]){l.setStartBefore(o),l.setEndBefore(o);break}c=o,o=i.next()}o||(l.setStart(c,0),l.setEnd(c,0))}else"BR"==t.nodeName?t.nextSibling&&a.isBlock(t.nextSibling)?((!L||9>L)&&(d=a.create("br"),t.parentNode.insertBefore(d,t)),l.setStartBefore(t),l.setEndBefore(t)):(l.setStartAfter(t),l.setEndAfter(t)):(l.setStart(t,0),l.setEnd(t,0));s.setRng(l),a.remove(d),s.scrollIntoView(t)}function g(e){var t=l.forced_root_block;t&&t.toLowerCase()===e.tagName.toLowerCase()&&a.setAttribs(e,l.forced_root_block_attrs)}function v(e){var t=R,n,i,o;if(e||"TABLE"==O?(n=a.create(e||F),g(n)):n=B.cloneNode(!1),o=n,l.keep_styles!==!1)do if(/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U|VAR|CITE|DFN|CODE|MARK|Q|SUP|SUB|SAMP)$/.test(t.nodeName)){if("_mce_caret"==t.id)continue;i=t.cloneNode(!1),a.setAttrib(i,"id",""),n.hasChildNodes()?(i.appendChild(n.firstChild),n.appendChild(i)):(o=i,n.appendChild(i))}while(t=t.parentNode);return r||(o.innerHTML='<br data-mce-bogus="1">'),n}function y(t){var n,r,i;if(3==R.nodeType&&(t?A>0:A<R.nodeValue.length))return!1;if(R.parentNode==B&&z&&!t)return!0;if(t&&1==R.nodeType&&R==B.firstChild)return!0;if("TABLE"===R.nodeName||R.previousSibling&&"TABLE"==R.previousSibling.nodeName)return z&&!t||!z&&t;for(n=new e(R,B),3==R.nodeType&&(t&&0===A?n.prev():t||A!=R.nodeValue.length||n.next());r=n.current();){if(1===r.nodeType){if(!r.getAttribute("data-mce-bogus")&&(i=r.nodeName.toLowerCase(),u[i]&&"br"!==i))return!1}else if(3===r.nodeType&&!/^[ \t\r\n]*$/.test(r.nodeValue))return!1;t?n.prev():n.next()}return!0}function b(e,t){var n,r,o,s,l,c,u=F||"P";if(r=a.getParent(e,a.isBlock),c=i.getBody().nodeName.toLowerCase(),!r||!f(r)){if(r=r||T,!r.hasChildNodes())return n=a.create(u),g(n),r.appendChild(n),k.setStart(n,0),k.setEnd(n,0),n;for(s=e;s.parentNode!=r;)s=s.parentNode;for(;s&&!a.isBlock(s);)o=s,s=s.previousSibling;if(o&&d.isValidChild(c,u.toLowerCase())){for(n=a.create(u),g(n),o.parentNode.insertBefore(n,o),s=o;s&&!a.isBlock(s);)l=s.nextSibling,n.appendChild(s),s=l;k.setStart(e,t),k.setEnd(e,t)}}return e}function C(){function e(e){for(var t=P[e?"firstChild":"lastChild"];t&&1!=t.nodeType;)t=t[e?"nextSibling":"previousSibling"];return t===B}function t(){var e=P.parentNode;return"LI"==e.nodeName?e:P}var n=P.parentNode.nodeName;/^(OL|UL|LI)$/.test(n)&&(F="LI"),M=F?v(F):a.create("BR"),e(!0)&&e()?"LI"==n?a.insertAfter(M,t()):a.replace(M,P):e(!0)?"LI"==n?(a.insertAfter(M,t()),M.appendChild(a.doc.createTextNode(" ")),M.appendChild(P)):P.parentNode.insertBefore(M,P):e()?(a.insertAfter(M,t()),p(M)):(P=t(),S=k.cloneRange(),S.setStartAfter(B),S.setEndAfter(P),H=S.extractContents(),"LI"==F&&"LI"==H.firstChild.nodeName?(M=H.firstChild,a.insertAfter(H,P)):(a.insertAfter(H,P),a.insertAfter(M,P))),a.remove(B),h(M),c.add()}function x(){for(var t=new e(R,B),n;n=t.next();)if(u[n.nodeName.toLowerCase()]||n.length>0)return!0}function w(){var e,t,n;R&&3==R.nodeType&&A>=R.nodeValue.length&&(r||x()||(e=a.create("br"),k.insertNode(e),k.setStartAfter(e),k.setEndAfter(e),t=!0)),e=a.create("br"),k.insertNode(e),r&&"PRE"==O&&(!L||8>L)&&e.parentNode.insertBefore(a.doc.createTextNode("\r"),e),n=a.create("span",{}," "),e.parentNode.insertBefore(n,e),s.scrollIntoView(n),a.remove(n),t?(k.setStartBefore(e),k.setEndBefore(e)):(k.setStartAfter(e),k.setEndAfter(e)),s.setRng(k),c.add()}function _(e){do 3===e.nodeType&&(e.nodeValue=e.nodeValue.replace(/^[\r\n]+/,"")),e=e.firstChild;while(e)}function N(e){var t=a.getRoot(),n,r;for(n=e;n!==t&&"false"!==a.getContentEditable(n);)"true"===a.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==t?r:t}function E(e){var t;r||(e.normalize(),t=e.lastChild,(!t||/^(left|right)$/gi.test(a.getStyle(t,"float",!0)))&&a.add(e,"br"))}var k,S,T,R,A,B,L,D,M,H,P,O,I,F,z;if(k=s.getRng(!0),!o.isDefaultPrevented()){if(!k.collapsed)return void i.execCommand("Delete");if(new t(a).normalize(k),R=k.startContainer,A=k.startOffset,F=(l.force_p_newlines?"p":"")||l.forced_root_block,F=F?F.toUpperCase():"",L=a.doc.documentMode,D=o.shiftKey,1==R.nodeType&&R.hasChildNodes()&&(z=A>R.childNodes.length-1,R=R.childNodes[Math.min(A,R.childNodes.length-1)]||R,A=z&&3==R.nodeType?R.nodeValue.length:0),T=N(R)){if(c.beforeChange(),!a.isBlock(T)&&T!=a.getRoot())return void((!F||D)&&w());if((F&&!D||!F&&D)&&(R=b(R,A)),B=a.getParent(R,a.isBlock),P=B?a.getParent(B.parentNode,a.isBlock):null,O=B?B.nodeName.toUpperCase():"",I=P?P.nodeName.toUpperCase():"","LI"!=I||o.ctrlKey||(B=P,O=I),"LI"==O){if(!F&&D)return void w();if(a.isEmpty(B))return void C()}if("PRE"==O&&l.br_in_pre!==!1){if(!D)return void w()}else if(!F&&!D&&"LI"!=O||F&&D)return void w();F&&B===i.getBody()||(F=F||"P",y()?(M=/^(H[1-6]|PRE|FIGURE)$/.test(O)&&"HGROUP"!=I?v(F):v(),l.end_container_on_empty_block&&f(P)&&a.isEmpty(B)?M=a.split(P,B):a.insertAfter(M,B),h(M)):y(!0)?(M=B.parentNode.insertBefore(v(),B),p(M),h(B)):(S=k.cloneRange(),S.setEndAfter(B),H=S.extractContents(),_(H),M=H.firstChild,a.insertAfter(H,B),m(M),E(B),h(M)),a.setAttrib(M,"id",""),i.fire("NewBlock",{newBlock:M}),c.add())}}}var a=i.dom,s=i.selection,l=i.settings,c=i.undoManager,d=i.schema,u=d.getNonEmptyElements();i.on("keydown",function(e){13==e.keyCode&&o(e)!==!1&&e.preventDefault()})}}),r(H,[],function(){return function(e){function t(){var t=i.getStart(),s=e.getBody(),l,c,d,u,f,p,m,h=-16777215,g,v,y,b,C;if(C=n.forced_root_block,t&&1===t.nodeType&&C){for(;t&&t!=s;){if(a[t.nodeName])return;t=t.parentNode}if(l=i.getRng(),l.setStart){c=l.startContainer,d=l.startOffset,u=l.endContainer,f=l.endOffset;try{v=e.getDoc().activeElement===s}catch(x){}}else l.item&&(t=l.item(0),l=e.getDoc().body.createTextRange(),l.moveToElementText(t)),v=l.parentElement().ownerDocument===e.getDoc(),y=l.duplicate(),y.collapse(!0),d=-1*y.move("character",h),y.collapsed||(y=l.duplicate(),y.collapse(!1),f=-1*y.move("character",h)-d);for(t=s.firstChild,b=s.nodeName.toLowerCase();t;)if((3===t.nodeType||1==t.nodeType&&!a[t.nodeName])&&o.isValidChild(b,C.toLowerCase())){if(3===t.nodeType&&0===t.nodeValue.length){m=t,t=t.nextSibling,r.remove(m);continue}p||(p=r.create(C,e.settings.forced_root_block_attrs),t.parentNode.insertBefore(p,t),g=!0),m=t,t=t.nextSibling,p.appendChild(m)}else p=null,t=t.nextSibling;if(g&&v){if(l.setStart)l.setStart(c,d),l.setEnd(u,f),i.setRng(l);else try{l=e.getDoc().body.createTextRange(),l.moveToElementText(s),l.collapse(!0),l.moveStart("character",d),f>0&&l.moveEnd("character",f),l.select()}catch(x){}e.nodeChanged()}}}var n=e.settings,r=e.dom,i=e.selection,o=e.schema,a=o.getBlockElements();n.forced_root_block&&e.on("NodeChange",t)}}),r(P,[E,h,f],function(e,n,r){var i=r.each,o=r.extend,a=r.map,s=r.inArray,l=r.explode,c=n.gecko,d=n.ie,u=!0,f=!1;return function(r){function p(e,t,n){var r;return e=e.toLowerCase(),(r=N.exec[e])?(r(e,t,n),u):f}function m(e){var t;return e=e.toLowerCase(),(t=N.state[e])?t(e):-1}function h(e){var t;return e=e.toLowerCase(),(t=N.value[e])?t(e):f}function g(e,t){t=t||"exec",i(e,function(e,n){i(n.toLowerCase().split(","),function(n){N[t][n]=e})})}function v(e,n,i){return n===t&&(n=f),i===t&&(i=null),r.getDoc().execCommand(e,n,i)}function y(e){return k.match(e)}function b(e,n){k.toggle(e,n?{value:n}:t),r.nodeChanged()}function C(e){S=_.getBookmark(e)}function x(){_.moveToBookmark(S)}var w=r.dom,_=r.selection,N={state:{},exec:{},value:{}},E=r.settings,k=r.formatter,S;o(this,{execCommand:p,queryCommandState:m,queryCommandValue:h,addCommands:g}),g({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){r.undoManager.add()},"Cut,Copy,Paste":function(e){var t=r.getDoc(),i;try{v(e)}catch(o){i=u}if(i||!t.queryCommandSupported(e)){var a=r.translate("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.");n.mac&&(a=a.replace(/Ctrl\+/g,"\u2318+")),r.windowManager.alert(a)}},unlink:function(){if(_.isCollapsed()){var e=_.getNode();return void("A"==e.tagName&&r.dom.remove(e,!0))}k.remove("link")},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t=e.substring(7);"full"==t&&(t="justify"),i("left,center,right,justify".split(","),function(e){t!=e&&k.remove("align"+e)}),b("align"+t),p("mceRepaint")},"InsertUnorderedList,InsertOrderedList":function(e){var t,n;v(e),t=w.getParent(_.getNode(),"ol,ul"),t&&(n=t.parentNode,/^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName)&&(C(),w.split(n,t),x()))},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){b(e)},"ForeColor,HiliteColor,FontName":function(e,t,n){b(e,n)},FontSize:function(e,t,n){var r,i;n>=1&&7>=n&&(i=l(E.font_size_style_values),r=l(E.font_size_classes),n=r?r[n-1]||n:i[n-1]||n),b(e,n)},RemoveFormat:function(e){k.remove(e)},mceBlockQuote:function(){b("blockquote")},FormatBlock:function(e,t,n){return b(n||"p")},mceCleanup:function(){var e=_.getBookmark();r.setContent(r.getContent({cleanup:u}),{cleanup:u}),_.moveToBookmark(e)},mceRemoveNode:function(e,t,n){var i=n||_.getNode();i!=r.getBody()&&(C(),r.dom.remove(i,u),x())},mceSelectNodeDepth:function(e,t,n){var i=0;w.getParent(_.getNode(),function(e){return 1==e.nodeType&&i++==n?(_.select(e),f):void 0},r.getBody())},mceSelectNode:function(e,t,n){_.select(n)},mceInsertContent:function(t,n,i){function o(e){function t(e){return r[e]&&3==r[e].nodeType}var n,r,i;return n=_.getRng(!0),r=n.startContainer,i=n.startOffset,3==r.nodeType&&(i>0?e=e.replace(/^ /," "):t("previousSibling")||(e=e.replace(/^ /," ")),i<r.length?e=e.replace(/ (<br>|)$/," "):t("nextSibling")||(e=e.replace(/( | )(<br>|)$/," "))),e +}var a,s,l,c,u,f,p,m,h,g,v;/^ | $/.test(i)&&(i=o(i)),a=r.parser,s=new e({},r.schema),v='<span id="mce_marker" data-mce-type="bookmark">ÈB;</span>',f={content:i,format:"html",selection:!0},r.fire("BeforeSetContent",f),i=f.content,-1==i.indexOf("{$caret}")&&(i+="{$caret}"),i=i.replace(/\{\$caret\}/,v),m=_.getRng();var y=m.startContainer||(m.parentElement?m.parentElement():null),b=r.getBody();y===b&&_.isCollapsed()&&w.isBlock(b.firstChild)&&w.isEmpty(b.firstChild)&&(m=w.createRng(),m.setStart(b.firstChild,0),m.setEnd(b.firstChild,0),_.setRng(m)),_.isCollapsed()||r.getDoc().execCommand("Delete",!1,null),l=_.getNode();var C={context:l.nodeName.toLowerCase()};if(u=a.parse(i,C),h=u.lastChild,"mce_marker"==h.attr("id"))for(p=h,h=h.prev;h;h=h.walk(!0))if(3==h.type||!w.isBlock(h.name)){h.parent.insert(p,h,"br"===h.name);break}if(C.invalid){for(_.setContent(v),l=_.getNode(),c=r.getBody(),9==l.nodeType?l=h=c:h=l;h!==c;)l=h,h=h.parentNode;i=l==c?c.innerHTML:w.getOuterHTML(l),i=s.serialize(a.parse(i.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i,function(){return s.serialize(u)}))),l==c?w.setHTML(c,i):w.setOuterHTML(l,i)}else i=s.serialize(u),h=l.firstChild,g=l.lastChild,!h||h===g&&"BR"===h.nodeName?w.setHTML(l,i):_.setContent(i);p=w.get("mce_marker"),_.scrollIntoView(p),m=w.createRng(),h=p.previousSibling,h&&3==h.nodeType?(m.setStart(h,h.nodeValue.length),d||(g=p.nextSibling,g&&3==g.nodeType&&(h.appendData(g.data),g.parentNode.removeChild(g)))):(m.setStartBefore(p),m.setEndBefore(p)),w.remove(p),_.setRng(m),r.fire("SetContent",f),r.addVisual()},mceInsertRawHTML:function(e,t,n){_.setContent("tiny_mce_marker"),r.setContent(r.getContent().replace(/tiny_mce_marker/g,function(){return n}))},mceToggleFormat:function(e,t,n){b(n)},mceSetContent:function(e,t,n){r.setContent(n)},"Indent,Outdent":function(e){var t,n,o;t=E.indentation,n=/[a-z%]+$/i.exec(t),t=parseInt(t,10),m("InsertUnorderedList")||m("InsertOrderedList")?v(e):(E.forced_root_block||w.getParent(_.getNode(),w.isBlock)||k.apply("div"),i(_.getSelectedBlocks(),function(i){if("LI"!=i.nodeName){var a=r.getParam("indent_use_margin",!1)?"margin":"padding";a+="rtl"==w.getStyle(i,"direction",!0)?"Right":"Left","outdent"==e?(o=Math.max(0,parseInt(i.style[a]||0,10)-t),w.setStyle(i,a,o?o+n:"")):(o=parseInt(i.style[a]||0,10)+t+n,w.setStyle(i,a,o))}}))},mceRepaint:function(){if(c)try{C(u),_.getSel()&&_.getSel().selectAllChildren(r.getBody()),_.collapse(u),x()}catch(e){}},InsertHorizontalRule:function(){r.execCommand("mceInsertContent",!1,"<hr />")},mceToggleVisualAid:function(){r.hasVisual=!r.hasVisual,r.addVisual()},mceReplaceContent:function(e,t,n){r.execCommand("mceInsertContent",!1,n.replace(/\{\$selection\}/g,_.getContent({format:"text"})))},mceInsertLink:function(e,t,n){var r;"string"==typeof n&&(n={href:n}),r=w.getParent(_.getNode(),"a"),n.href=n.href.replace(" ","%20"),r&&n.href||k.remove("link"),n.href&&k.apply("link",n,r)},selectAll:function(){var e=w.getRoot(),t;_.getRng().setStart?(t=w.createRng(),t.setStart(e,0),t.setEnd(e,e.childNodes.length),_.setRng(t)):(t=_.getRng(),t.item||(t.moveToElementText(e),t.select()))},"delete":function(){v("Delete");var e=r.getBody();w.isEmpty(e)&&(r.setContent(""),e.firstChild&&w.isBlock(e.firstChild)?r.selection.setCursorLocation(e.firstChild,0):r.selection.setCursorLocation(e,0))},mceNewDocument:function(){r.setContent("")}}),g({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t="align"+e.substring(7),n=_.isCollapsed()?[w.getParent(_.getNode(),w.isBlock)]:_.getSelectedBlocks(),r=a(n,function(e){return!!k.matchNode(e,t)});return-1!==s(r,u)},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){return y(e)},mceBlockQuote:function(){return y("blockquote")},Outdent:function(){var e;if(E.inline_styles){if((e=w.getParent(_.getStart(),w.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return u;if((e=w.getParent(_.getEnd(),w.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return u}return m("InsertUnorderedList")||m("InsertOrderedList")||!E.inline_styles&&!!w.getParent(_.getNode(),"BLOCKQUOTE")},"InsertUnorderedList,InsertOrderedList":function(e){var t=w.getParent(_.getNode(),"ul,ol");return t&&("insertunorderedlist"===e&&"UL"===t.tagName||"insertorderedlist"===e&&"OL"===t.tagName)}},"state"),g({"FontSize,FontName":function(e){var t=0,n;return(n=w.getParent(_.getNode(),"span"))&&(t="fontsize"==e?n.style.fontSize:n.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()),t}},"value"),g({Undo:function(){r.undoManager.undo()},Redo:function(){r.undoManager.redo()}})}}),r(O,[f],function(e){function t(e,i){var o=this,a,s;if(e=r(e),i=o.settings=i||{},/^([\w\-]+):([^\/]{2})/i.test(e)||/^\s*#/.test(e))return void(o.source=e);var l=0===e.indexOf("//");0!==e.indexOf("/")||l||(e=(i.base_uri?i.base_uri.protocol||"http":"http")+"://mce_host"+e),/^[\w\-]*:?\/\//.test(e)||(s=i.base_uri?i.base_uri.path:new t(location.href).directory,e=""===i.base_uri.protocol?"//mce_host"+o.toAbsPath(s,e):(i.base_uri&&i.base_uri.protocol||"http")+"://mce_host"+o.toAbsPath(s,e)),e=e.replace(/@@/g,"(mce_at)"),e=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e),n(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],function(t,n){var r=e[n];r&&(r=r.replace(/\(mce_at\)/g,"@@")),o[t]=r}),a=i.base_uri,a&&(o.protocol||(o.protocol=a.protocol),o.userInfo||(o.userInfo=a.userInfo),o.port||"mce_host"!==o.host||(o.port=a.port),o.host&&"mce_host"!==o.host||(o.host=a.host),o.source=""),l&&(o.protocol="")}var n=e.each,r=e.trim;return t.prototype={setPath:function(e){var t=this;e=/^(.*?)\/?(\w+)?$/.exec(e),t.path=e[0],t.directory=e[1],t.file=e[2],t.source="",t.getURI()},toRelative:function(e){var n=this,r;if("./"===e)return e;if(e=new t(e,{base_uri:n}),"mce_host"!=e.host&&n.host!=e.host&&e.host||n.port!=e.port||n.protocol!=e.protocol&&""!==e.protocol)return e.getURI();var i=n.getURI(),o=e.getURI();return i==o||"/"==i.charAt(i.length-1)&&i.substr(0,i.length-1)==o?i:(r=n.toRelPath(n.path,e.path),e.query&&(r+="?"+e.query),e.anchor&&(r+="#"+e.anchor),r)},toAbsolute:function(e,n){return e=new t(e,{base_uri:this}),e.getURI(this.host==e.host&&this.protocol==e.protocol?n:0)},toRelPath:function(e,t){var n,r=0,i="",o,a;if(e=e.substring(0,e.lastIndexOf("/")),e=e.split("/"),n=t.split("/"),e.length>=n.length)for(o=0,a=e.length;a>o;o++)if(o>=n.length||e[o]!=n[o]){r=o+1;break}if(e.length<n.length)for(o=0,a=n.length;a>o;o++)if(o>=e.length||e[o]!=n[o]){r=o+1;break}if(1===r)return t;for(o=0,a=e.length-(r-1);a>o;o++)i+="../";for(o=r-1,a=n.length;a>o;o++)i+=o!=r-1?"/"+n[o]:n[o];return i},toAbsPath:function(e,t){var r,i=0,o=[],a,s;for(a=/\/$/.test(t)?"/":"",e=e.split("/"),t=t.split("/"),n(e,function(e){e&&o.push(e)}),e=o,r=t.length-1,o=[];r>=0;r--)0!==t[r].length&&"."!==t[r]&&(".."!==t[r]?i>0?i--:o.push(t[r]):i++);return r=e.length-i,s=0>=r?o.reverse().join("/"):e.slice(0,r).join("/")+"/"+o.reverse().join("/"),0!==s.indexOf("/")&&(s="/"+s),a&&s.lastIndexOf("/")!==s.length-1&&(s+=a),s},getURI:function(e){var t,n=this;return(!n.source||e)&&(t="",e||(t+=n.protocol?n.protocol+"://":"//",n.userInfo&&(t+=n.userInfo+"@"),n.host&&(t+=n.host),n.port&&(t+=":"+n.port)),n.path&&(t+=n.path),n.query&&(t+="?"+n.query),n.anchor&&(t+="#"+n.anchor),n.source=t),n.source}},t}),r(I,[f],function(e){function t(){}var n=e.each,r=e.extend,i,o;return t.extend=i=function(e){function t(){var e,t,n,r=this;if(!o&&(r.init&&r.init.apply(r,arguments),t=r.Mixins))for(e=t.length;e--;)n=t[e],n.init&&n.init.apply(r,arguments)}function a(){return this}function s(e,t){return function(){var n=this,r=n._super,i;return n._super=c[e],i=t.apply(n,arguments),n._super=r,i}}var l=this,c=l.prototype,d,u,f;o=!0,d=new l,o=!1,e.Mixins&&(n(e.Mixins,function(t){t=t;for(var n in t)"init"!==n&&(e[n]=t[n])}),c.Mixins&&(e.Mixins=c.Mixins.concat(e.Mixins))),e.Methods&&n(e.Methods.split(","),function(t){e[t]=a}),e.Properties&&n(e.Properties.split(","),function(t){var n="_"+t;e[t]=function(e){var t=this,r;return e!==r?(t[n]=e,t):t[n]}}),e.Statics&&n(e.Statics,function(e,n){t[n]=e}),e.Defaults&&c.Defaults&&(e.Defaults=r({},c.Defaults,e.Defaults));for(u in e)f=e[u],d[u]="function"==typeof f&&c[u]?s(u,f):f;return t.prototype=d,t.constructor=t,t.extend=i,t},t}),r(F,[I],function(e){function t(e){for(var t=[],n=e.length,r;n--;)r=e[n],r.__checked||(t.push(r),r.__checked=1);for(n=t.length;n--;)delete t[n].__checked;return t}var n=/^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i,r=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,i=/^\s*|\s*$/g,o,a=e.extend({init:function(e){function t(e){return e?(e=e.toLowerCase(),function(t){return"*"===e||t.type===e}):void 0}function o(e){return e?function(t){return t._name===e}:void 0}function a(e){return e?(e=e.split("."),function(t){for(var n=e.length;n--;)if(!t.hasClass(e[n]))return!1;return!0}):void 0}function s(e,t,n){return e?function(r){var i=r[e]?r[e]():"";return t?"="===t?i===n:"*="===t?i.indexOf(n)>=0:"~="===t?(" "+i+" ").indexOf(" "+n+" ")>=0:"!="===t?i!=n:"^="===t?0===i.indexOf(n):"$="===t?i.substr(i.length-n.length)===n:!1:!!n}:void 0}function l(e){var t;return e?(e=/(?:not\((.+)\))|(.+)/i.exec(e),e[1]?(t=d(e[1],[]),function(e){return!u(e,t)}):(e=e[2],function(t,n,r){return"first"===e?0===n:"last"===e?n===r-1:"even"===e?n%2===0:"odd"===e?n%2===1:t[e]?t[e]():!1})):void 0}function c(e,r,c){function d(e){e&&r.push(e)}var u;return u=n.exec(e.replace(i,"")),d(t(u[1])),d(o(u[2])),d(a(u[3])),d(s(u[4],u[5],u[6])),d(l(u[7])),r.psuedo=!!u[7],r.direct=c,r}function d(e,t){var n=[],i,o,a;do if(r.exec(""),o=r.exec(e),o&&(e=o[3],n.push(o[1]),o[2])){i=o[3];break}while(o);for(i&&d(i,t),e=[],a=0;a<n.length;a++)">"!=n[a]&&e.push(c(n[a],[],">"===n[a-1]));return t.push(e),t}var u=this.match;this._selectors=d(e,[])},match:function(e,t){var n,r,i,o,a,s,l,c,d,u,f,p,m;for(t=t||this._selectors,n=0,r=t.length;r>n;n++){for(a=t[n],o=a.length,m=e,p=0,i=o-1;i>=0;i--)for(c=a[i];m;){if(c.psuedo)for(f=m.parent().items(),d=u=f.length;d--&&f[d]!==m;);for(s=0,l=c.length;l>s;s++)if(!c[s](m,d,u)){s=l+1;break}if(s===l){p++;break}if(i===o-1)break;m=m.parent()}if(p===o)return!0}return!1},find:function(e){function n(e,t,i){var o,a,s,l,c,d=t[i];for(o=0,a=e.length;a>o;o++){for(c=e[o],s=0,l=d.length;l>s;s++)if(!d[s](c,o,a)){s=l+1;break}if(s===l)i==t.length-1?r.push(c):c.items&&n(c.items(),t,i+1);else if(d.direct)return;c.items&&n(c.items(),t,i)}}var r=[],i,s,l=this._selectors;if(e.items){for(i=0,s=l.length;s>i;i++)n(e.items(),l[i],0);s>1&&(r=t(r))}return o||(o=a.Collection),new o(r)}});return a}),r(z,[f,F,I],function(e,t,n){var r,i,o=Array.prototype.push,a=Array.prototype.slice;return i={length:0,init:function(e){e&&this.add(e)},add:function(t){var n=this;return e.isArray(t)?o.apply(n,t):t instanceof r?n.add(t.toArray()):o.call(n,t),n},set:function(e){var t=this,n=t.length,r;for(t.length=0,t.add(e),r=t.length;n>r;r++)delete t[r];return t},filter:function(e){var n=this,i,o,a=[],s,l;for("string"==typeof e?(e=new t(e),l=function(t){return e.match(t)}):l=e,i=0,o=n.length;o>i;i++)s=n[i],l(s)&&a.push(s);return new r(a)},slice:function(){return new r(a.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},each:function(t){return e.each(this,t),this},toArray:function(){return e.toArray(this)},indexOf:function(e){for(var t=this,n=t.length;n--&&t[n]!==e;);return n},reverse:function(){return new r(e.toArray(this).reverse())},hasClass:function(e){return this[0]?this[0].hasClass(e):!1},prop:function(e,t){var n=this,r,i;return t!==r?(n.each(function(n){n[e]&&n[e](t)}),n):(i=n[0],i&&i[e]?i[e]():void 0)},exec:function(t){var n=this,r=e.toArray(arguments).slice(1);return n.each(function(e){e[t]&&e[t].apply(e,r)}),n},remove:function(){for(var e=this.length;e--;)this[e].remove();return this}},e.each("fire on off show hide addClass removeClass append prepend before after reflow".split(" "),function(t){i[t]=function(){var n=e.toArray(arguments);return this.each(function(e){t in e&&e[t].apply(e,n)}),this}}),e.each("text name disabled active selected checked visible parent value data".split(" "),function(e){i[e]=function(t){return this.prop(e,t)}}),r=n.extend(i),t.Collection=r,r}),r(W,[f,v],function(e,t){return{id:function(){return t.DOM.uniqueId()},createFragment:function(e){return t.DOM.createFragment(e)},getWindowSize:function(){return t.DOM.getViewPort()},getSize:function(e){var t,n;if(e.getBoundingClientRect){var r=e.getBoundingClientRect();t=Math.max(r.width||r.right-r.left,e.offsetWidth),n=Math.max(r.height||r.bottom-r.bottom,e.offsetHeight)}else t=e.offsetWidth,n=e.offsetHeight;return{width:t,height:n}},getPos:function(e,n){return t.DOM.getPos(e,n)},getViewPort:function(e){return t.DOM.getViewPort(e)},get:function(e){return document.getElementById(e)},addClass:function(e,n){return t.DOM.addClass(e,n)},removeClass:function(e,n){return t.DOM.removeClass(e,n)},hasClass:function(e,n){return t.DOM.hasClass(e,n)},toggleClass:function(e,n,r){return t.DOM.toggleClass(e,n,r)},css:function(e,n,r){return t.DOM.setStyle(e,n,r)},on:function(e,n,r,i){return t.DOM.bind(e,n,r,i)},off:function(e,n,r){return t.DOM.unbind(e,n,r)},fire:function(e,n,r){return t.DOM.fire(e,n,r)},innerHtml:function(e,n){t.DOM.setHTML(e,n)}}}),r(V,[I,f,z,W],function(e,t,n,r){var i=t.makeMap("focusin focusout scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave wheel keydown keypress keyup contextmenu"," "),o={},a="onmousewheel"in document,s=!1,l=e.extend({Statics:{elementIdCache:o},isRtl:function(){return l.rtl},classPrefix:"mce-",init:function(e){var n=this,i,o;if(n.settings=e=t.extend({},n.Defaults,e),n._id=e.id||r.id(),n._text=n._name="",n._width=n._height=0,n._aria={role:e.role},i=e.classes)for(i=i.split(" "),i.map={},o=i.length;o--;)i.map[i[o]]=!0;n._classes=i||[],n.visible(!0),t.each("title text width height name classes visible disabled active value".split(" "),function(t){var r=e[t],i;r!==i?n[t](r):n["_"+t]===i&&(n["_"+t]=!1)}),n.on("click",function(){return n.disabled()?!1:void 0}),e.classes&&t.each(e.classes.split(" "),function(e){n.addClass(e)}),n.settings=e,n._borderBox=n.parseBox(e.border),n._paddingBox=n.parseBox(e.padding),n._marginBox=n.parseBox(e.margin),e.hidden&&n.hide()},Properties:"parent,title,text,width,height,disabled,active,name,value",Methods:"renderHtml",getContainerElm:function(){return document.body},getParentCtrl:function(e){for(var t,n=this.getRoot().controlIdLookup;e&&n&&!(t=n[e.id]);)e=e.parentNode;return t},parseBox:function(e){var t,n=10;if(e)return"number"==typeof e?(e=e||0,{top:e,left:e,bottom:e,right:e}):(e=e.split(" "),t=e.length,1===t?e[1]=e[2]=e[3]=e[0]:2===t?(e[2]=e[0],e[3]=e[1]):3===t&&(e[3]=e[1]),{top:parseInt(e[0],n)||0,right:parseInt(e[1],n)||0,bottom:parseInt(e[2],n)||0,left:parseInt(e[3],n)||0})},borderBox:function(){return this._borderBox},paddingBox:function(){return this._paddingBox},marginBox:function(){return this._marginBox},measureBox:function(e,t){function n(t){var n=document.defaultView;return n?(t=t.replace(/[A-Z]/g,function(e){return"-"+e}),n.getComputedStyle(e,null).getPropertyValue(t)):e.currentStyle[t]}function r(e){var t=parseFloat(n(e),10);return isNaN(t)?0:t}return{top:r(t+"TopWidth"),right:r(t+"RightWidth"),bottom:r(t+"BottomWidth"),left:r(t+"LeftWidth")}},initLayoutRect:function(){var e=this,t=e.settings,n,i,o=e.getEl(),a,s,l,c,d,u,f,p;n=e._borderBox=e._borderBox||e.measureBox(o,"border"),e._paddingBox=e._paddingBox||e.measureBox(o,"padding"),e._marginBox=e._marginBox||e.measureBox(o,"margin"),p=r.getSize(o),u=t.minWidth,f=t.minHeight,l=u||p.width,c=f||p.height,a=t.width,s=t.height,d=t.autoResize,d="undefined"!=typeof d?d:!a&&!s,a=a||l,s=s||c;var m=n.left+n.right,h=n.top+n.bottom,g=t.maxWidth||65535,v=t.maxHeight||65535;return e._layoutRect=i={x:t.x||0,y:t.y||0,w:a,h:s,deltaW:m,deltaH:h,contentW:a-m,contentH:s-h,innerW:a-m,innerH:s-h,startMinWidth:u||0,startMinHeight:f||0,minW:Math.min(l,g),minH:Math.min(c,v),maxW:g,maxH:v,autoResize:d,scrollW:0},e._lastLayoutRect={},i},layoutRect:function(e){var t=this,n=t._layoutRect,r,i,o,a,s,c;return n||(n=t.initLayoutRect()),e?(o=n.deltaW,a=n.deltaH,e.x!==s&&(n.x=e.x),e.y!==s&&(n.y=e.y),e.minW!==s&&(n.minW=e.minW),e.minH!==s&&(n.minH=e.minH),i=e.w,i!==s&&(i=i<n.minW?n.minW:i,i=i>n.maxW?n.maxW:i,n.w=i,n.innerW=i-o),i=e.h,i!==s&&(i=i<n.minH?n.minH:i,i=i>n.maxH?n.maxH:i,n.h=i,n.innerH=i-a),i=e.innerW,i!==s&&(i=i<n.minW-o?n.minW-o:i,i=i>n.maxW-o?n.maxW-o:i,n.innerW=i,n.w=i+o),i=e.innerH,i!==s&&(i=i<n.minH-a?n.minH-a:i,i=i>n.maxH-a?n.maxH-a:i,n.innerH=i,n.h=i+a),e.contentW!==s&&(n.contentW=e.contentW),e.contentH!==s&&(n.contentH=e.contentH),r=t._lastLayoutRect,(r.x!==n.x||r.y!==n.y||r.w!==n.w||r.h!==n.h)&&(c=l.repaintControls,c&&c.map&&!c.map[t._id]&&(c.push(t),c.map[t._id]=!0),r.x=n.x,r.y=n.y,r.w=n.w,r.h=n.h),t):n},repaint:function(){var e=this,t,n,r,i,o=0,a=0,s,l;l=document.createRange?function(e){return e}:Math.round,t=e.getEl().style,r=e._layoutRect,s=e._lastRepaintRect||{},i=e._borderBox,o=i.left+i.right,a=i.top+i.bottom,r.x!==s.x&&(t.left=l(r.x)+"px",s.x=r.x),r.y!==s.y&&(t.top=l(r.y)+"px",s.y=r.y),r.w!==s.w&&(t.width=l(r.w-o)+"px",s.w=r.w),r.h!==s.h&&(t.height=l(r.h-a)+"px",s.h=r.h),e._hasBody&&r.innerW!==s.innerW&&(n=e.getEl("body").style,n.width=l(r.innerW)+"px",s.innerW=r.innerW),e._hasBody&&r.innerH!==s.innerH&&(n=n||e.getEl("body").style,n.height=l(r.innerH)+"px",s.innerH=r.innerH),e._lastRepaintRect=s,e.fire("repaint",{},!1)},on:function(e,t){function n(e){var t,n;return function(i){return t||r.parents().each(function(r){var i=r.settings.callbacks;return i&&(t=i[e])?(n=r,!1):void 0}),t.call(n,i)}}var r=this,o,a,s,l;if(t)for("string"==typeof t&&(t=n(t)),s=e.toLowerCase().split(" "),l=s.length;l--;)e=s[l],o=r._bindings,o||(o=r._bindings={}),a=o[e],a||(a=o[e]=[]),a.push(t),i[e]&&(r._nativeEvents?r._nativeEvents[e]=!0:r._nativeEvents={name:!0},r._rendered&&r.bindPendingEvents());return r},off:function(e,t){var n=this,r,i=n._bindings,o,a,s,l;if(i)if(e)for(s=e.toLowerCase().split(" "),r=s.length;r--;){if(e=s[r],o=i[e],!e){for(a in i)i[a].length=0;return n}if(o)if(t)for(l=o.length;l--;)o[l]===t&&o.splice(l,1);else o.length=0}else n._bindings=[];return n},fire:function(e,t,n){function r(){return!1}function i(){return!0}var o=this,a,s,l,c;if(e=e.toLowerCase(),t=t||{},t.type||(t.type=e),t.control||(t.control=o),t.preventDefault||(t.preventDefault=function(){t.isDefaultPrevented=i},t.stopPropagation=function(){t.isPropagationStopped=i},t.stopImmediatePropagation=function(){t.isImmediatePropagationStopped=i},t.isDefaultPrevented=r,t.isPropagationStopped=r,t.isImmediatePropagationStopped=r),o._bindings&&(l=o._bindings[e]))for(a=0,s=l.length;s>a&&(t.isImmediatePropagationStopped()||l[a].call(o,t)!==!1);a++);if(n!==!1)for(c=o.parent();c&&!t.isPropagationStopped();)c.fire(e,t,!1),c=c.parent();return t},hasEventListeners:function(e){return e in this._bindings},parents:function(e){var t=this,r,i=new n;for(r=t.parent();r;r=r.parent())i.add(r);return e&&(i=i.filter(e)),i},next:function(){var e=this.parent().items();return e[e.indexOf(this)+1]},prev:function(){var e=this.parent().items();return e[e.indexOf(this)-1]},findCommonAncestor:function(e,t){for(var n;e;){for(n=t;n&&e!=n;)n=n.parent();if(e==n)break;e=e.parent()}return e},hasClass:function(e,t){var n=this._classes[t||"control"];return e=this.classPrefix+e,n&&!!n.map[e]},addClass:function(e,t){var n=this,r,i;return e=this.classPrefix+e,r=n._classes[t||"control"],r||(r=[],r.map={},n._classes[t||"control"]=r),r.map[e]||(r.map[e]=e,r.push(e),n._rendered&&(i=n.getEl(t),i&&(i.className=r.join(" ")))),n},removeClass:function(e,t){var n=this,r,i,o;if(e=this.classPrefix+e,r=n._classes[t||"control"],r&&r.map[e])for(delete r.map[e],i=r.length;i--;)r[i]===e&&r.splice(i,1);return n._rendered&&(o=n.getEl(t),o&&(o.className=r.join(" "))),n},toggleClass:function(e,t,n){var r=this;return t?r.addClass(e,n):r.removeClass(e,n),r},classes:function(e){var t=this._classes[e||"control"];return t?t.join(" "):""},innerHtml:function(e){return r.innerHtml(this.getEl(),e),this},getEl:function(e,t){var n,i=e?this._id+"-"+e:this._id;return n=o[i]=(t===!0?null:o[i])||r.get(i)},visible:function(e){var t=this,n;return"undefined"!=typeof e?(t._visible!==e&&(t._rendered&&(t.getEl().style.display=e?"":"none"),t._visible=e,n=t.parent(),n&&(n._lastRect=null),t.fire(e?"show":"hide")),t):t._visible},show:function(){return this.visible(!0)},hide:function(){return this.visible(!1)},focus:function(){try{this.getEl().focus()}catch(e){}return this},blur:function(){return this.getEl().blur(),this},aria:function(e,t){var n=this,r=n.getEl(n.ariaTarget);return"undefined"==typeof t?n._aria[e]:(n._aria[e]=t,n._rendered&&r.setAttribute("role"==e?e:"aria-"+e,t),n)},encode:function(e,t){return t!==!1&&l.translate&&(e=l.translate(e)),(e||"").replace(/[&<>"]/g,function(e){return"&#"+e.charCodeAt(0)+";"})},before:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t),!0),t},after:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t)),t},remove:function(){var e=this,t=e.getEl(),n=e.parent(),i,a;if(e.items){var s=e.items().toArray();for(a=s.length;a--;)s[a].remove()}n&&n.items&&(i=[],n.items().each(function(t){t!==e&&i.push(t)}),n.items().set(i),n._lastRect=null),e._eventsRoot&&e._eventsRoot==e&&r.off(t);var l=e.getRoot().controlIdLookup;if(l&&delete l[e._id],delete o[e._id],t&&t.parentNode){var c=t.getElementsByTagName("*");for(a=c.length;a--;)delete o[c[a].id];t.parentNode.removeChild(t)}return e._rendered=!1,e},renderBefore:function(e){var t=this;return e.parentNode.insertBefore(r.createFragment(t.renderHtml()),e),t.postRender(),t},renderTo:function(e){var t=this;return e=e||t.getContainerElm(),e.appendChild(r.createFragment(t.renderHtml())),t.postRender(),t},postRender:function(){var e=this,t=e.settings,n,i,o,a,s;for(a in t)0===a.indexOf("on")&&e.on(a.substr(2),t[a]);if(e._eventsRoot){for(o=e.parent();!s&&o;o=o.parent())s=o._eventsRoot;if(s)for(a in s._nativeEvents)e._nativeEvents[a]=!0}e.bindPendingEvents(),t.style&&(n=e.getEl(),n&&(n.setAttribute("style",t.style),n.style.cssText=t.style)),e._visible||r.css(e.getEl(),"display","none"),e.settings.border&&(i=e.borderBox(),r.css(e.getEl(),{"border-top-width":i.top,"border-right-width":i.right,"border-bottom-width":i.bottom,"border-left-width":i.left}));var l=e.getRoot();l.controlIdLookup||(l.controlIdLookup={}),l.controlIdLookup[e._id]=e;for(var c in e._aria)e.aria(c,e._aria[c]);e.fire("postrender",{},!1)},scrollIntoView:function(e){function t(e,t){var n,r,i=e;for(n=r=0;i&&i!=t&&i.nodeType;)n+=i.offsetLeft||0,r+=i.offsetTop||0,i=i.offsetParent;return{x:n,y:r}}var n=this.getEl(),r=n.parentNode,i,o,a,s,l,c,d=t(n,r);return i=d.x,o=d.y,a=n.offsetWidth,s=n.offsetHeight,l=r.clientWidth,c=r.clientHeight,"end"==e?(i-=l-a,o-=c-s):"center"==e&&(i-=l/2-a/2,o-=c/2-s/2),r.scrollLeft=i,r.scrollTop=o,this},bindPendingEvents:function(){function e(e){var t=o.getParentCtrl(e.target);t&&t.fire(e.type,e)}function t(){var e=u._lastHoverCtrl;e&&(e.fire("mouseleave",{target:e.getEl()}),e.parents().each(function(e){e.fire("mouseleave",{target:e.getEl()})}),u._lastHoverCtrl=null)}function n(e){var t=o.getParentCtrl(e.target),n=u._lastHoverCtrl,r=0,i,a,s;if(t!==n){if(u._lastHoverCtrl=t,a=t.parents().toArray().reverse(),a.push(t),n){for(s=n.parents().toArray().reverse(),s.push(n),r=0;r<s.length&&a[r]===s[r];r++);for(i=s.length-1;i>=r;i--)n=s[i],n.fire("mouseleave",{target:n.getEl()})}for(i=r;i<a.length;i++)t=a[i],t.fire("mouseenter",{target:t.getEl()})}}function i(e){e.preventDefault(),"mousewheel"==e.type?(e.deltaY=-1/40*e.wheelDelta,e.wheelDeltaX&&(e.deltaX=-1/40*e.wheelDeltaX)):(e.deltaX=0,e.deltaY=e.detail),e=o.fire("wheel",e)}var o=this,l,c,d,u,f,p;if(o._rendered=!0,f=o._nativeEvents){for(d=o.parents().toArray(),d.unshift(o),l=0,c=d.length;!u&&c>l;l++)u=d[l]._eventsRoot;for(u||(u=d[d.length-1]||o),o._eventsRoot=u,c=l,l=0;c>l;l++)d[l]._eventsRoot=u;for(p in f){if(!f)return!1;"wheel"!==p||s?("mouseenter"===p||"mouseleave"===p?u._hasMouseEnter||(r.on(u.getEl(),"mouseleave",t),r.on(u.getEl(),"mouseover",n),u._hasMouseEnter=1):u[p]||(r.on(u.getEl(),p,e),u[p]=!0),f[p]=!1):a?r.on(o.getEl(),"mousewheel",i):r.on(o.getEl(),"DOMMouseScroll",i)}}},getRoot:function(){for(var e=this,t,n=[];e;){if(e.rootControl){t=e.rootControl;break}n.push(e),t=e,e=e.parent()}t||(t=this);for(var r=n.length;r--;)n[r].rootControl=t;return t},reflow:function(){return this.repaint(),this}});return l}),r(U,[],function(){var e={},t;return{add:function(t,n){e[t.toLowerCase()]=n},has:function(t){return!!e[t.toLowerCase()]},create:function(n,r){var i,o,a;if(!t){a=tinymce.ui;for(o in a)e[o.toLowerCase()]=a[o];t=!0}if("string"==typeof n?(r=r||{},r.type=n):(r=n,n=r.type),n=n.toLowerCase(),i=e[n],!i)throw new Error("Could not find control by type: "+n);return i=new i(r),i.type=n,i}}}),r(q,[],function(){return function(e){function t(e){return e=e||b,e&&e.getAttribute("role")}function n(e){for(var n,r=e||b;r=r.parentNode;)if(n=t(r))return n}function r(e){var t=b;return t?t.getAttribute("aria-"+e):void 0}function i(e){return"INPUT"==e.tagName||"TEXTAREA"==e.tagName}function o(e){return i(e)&&!e.hidden?!0:/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell)$/.test(t(e))?!0:!1}function a(e){function t(e){if(1==e.nodeType&&"none"!=e.style.display){o(e)&&n.push(e);for(var r=0;r<e.childNodes.length;r++)t(e.childNodes[r])}}var n=[];return t(e||y.getEl()),n}function s(e){var t,n;e=e||C,n=e.parents().toArray(),n.unshift(e);for(var r=0;r<n.length&&(t=n[r],!t.settings.ariaRoot);r++);return t}function l(e){var t=s(e),n=a(t.getEl());t.settings.ariaRemember&&"lastAriaIndex"in t?c(t.lastAriaIndex,n):c(0,n)}function c(e,t){return 0>e?e=t.length-1:e>=t.length&&(e=0),t[e]&&t[e].focus(),e}function d(e,t){var n=-1,r=s();t=t||a(r.getEl());for(var i=0;i<t.length;i++)t[i]===b&&(n=i);n+=e,r.lastAriaIndex=c(n,t)}function u(){var e=n();"tablist"==e?d(-1,a(b.parentNode)):C.parent().submenu?g():d(-1)}function f(){var e=t(),i=n();"tablist"==i?d(1,a(b.parentNode)):"menuitem"==e&&"menu"==i&&r("haspopup")?v():d(1)}function p(){d(-1)}function m(){var e=t(),i=n();"menuitem"==e&&"menubar"==i?v():"button"==e&&r("haspopup")?v({key:"down"}):d(1)}function h(e){var t=n();if("tablist"==t){var r=a(C.getEl("body"))[0];r&&r.focus()}else d(e.shiftKey?-1:1)}function g(){C.fire("cancel")}function v(e){e=e||{},C.fire("click",{target:b,aria:e})}var y=e.root,b,C;return b=document.activeElement,C=y.getParentCtrl(b),y.on("keydown",function(e){function t(e,t){i(b)||t(e)!==!1&&e.preventDefault()}if(!e.isDefaultPrevented())switch(e.keyCode){case 37:t(e,u);break;case 39:t(e,f);break;case 38:t(e,p);break;case 40:t(e,m);break;case 27:t(e,g);break;case 14:case 13:case 32:t(e,v);break;case 9:h(e)!==!1&&e.preventDefault()}}),y.on("focusin",function(e){b=e.target,C=e.control}),{focusFirst:l}}}),r(j,[V,z,F,U,q,f,W],function(e,t,n,r,i,o,a){var s={};return e.extend({layout:"",innerClass:"container-inner",init:function(e){var n=this;n._super(e),e=n.settings,n._fixed=e.fixed,n._items=new t,n.isRtl()&&n.addClass("rtl"),n.addClass("container"),n.addClass("container-body","body"),e.containerCls&&n.addClass(e.containerCls),n._layout=r.create((e.layout||n.layout)+"layout"),n.settings.items&&n.add(n.settings.items),n._hasBody=!0},items:function(){return this._items},find:function(e){return e=s[e]=s[e]||new n(e),e.find(this)},add:function(e){var t=this;return t.items().add(t.create(e)).parent(t),t},focus:function(e){var t=this,n,r,i;return e&&(r=t.keyboardNav||t.parents().eq(-1)[0].keyboardNav)?void r.focusFirst(t):(i=t.find("*"),t.statusbar&&i.add(t.statusbar.items()),i.each(function(e){return e.settings.autofocus?(n=null,!1):void(e.canFocus&&(n=n||e))}),n&&n.focus(),t)},replace:function(e,t){for(var n,r=this.items(),i=r.length;i--;)if(r[i]===e){r[i]=t;break}i>=0&&(n=t.getEl(),n&&n.parentNode.removeChild(n),n=e.getEl(),n&&n.parentNode.removeChild(n)),t.parent(this)},create:function(t){var n=this,i,a=[];return o.isArray(t)||(t=[t]),o.each(t,function(t){t&&(t instanceof e||("string"==typeof t&&(t={type:t}),i=o.extend({},n.settings.defaults,t),t.type=i.type=i.type||t.type||n.settings.defaultType||(i.defaults?i.defaults.type:null),t=r.create(i)),a.push(t))}),a},renderNew:function(){var e=this;return e.items().each(function(t,n){var r,i;t.parent(e),t._rendered||(r=e.getEl("body"),i=a.createFragment(t.renderHtml()),r.hasChildNodes()&&n<=r.childNodes.length-1?r.insertBefore(i,r.childNodes[n]):r.appendChild(i),t.postRender())}),e._layout.applyClasses(e),e._lastRect=null,e},append:function(e){return this.add(e).renderNew()},prepend:function(e){var t=this;return t.items().set(t.create(e).concat(t.items().toArray())),t.renderNew()},insert:function(e,t,n){var r=this,i,o,a;return e=r.create(e),i=r.items(),!n&&t<i.length-1&&(t+=1),t>=0&&t<i.length&&(o=i.slice(0,t).toArray(),a=i.slice(t).toArray(),i.set(o.concat(e,a))),r.renderNew()},fromJSON:function(e){var t=this;for(var n in e)t.find("#"+n).value(e[n]);return t},toJSON:function(){var e=this,t={};return e.find("*").each(function(e){var n=e.name(),r=e.value();n&&"undefined"!=typeof r&&(t[n]=r)}),t},preRender:function(){},renderHtml:function(){var e=this,t=e._layout,n=this.settings.role;return e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'"'+(n?' role="'+this.settings.role+'"':"")+'><div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"},postRender:function(){var e=this,t;return e.items().exec("postRender"),e._super(),e._layout.postRender(e),e._rendered=!0,e.settings.style&&a.css(e.getEl(),e.settings.style),e.settings.border&&(t=e.borderBox(),a.css(e.getEl(),{"border-top-width":t.top,"border-right-width":t.right,"border-bottom-width":t.bottom,"border-left-width":t.left})),e.parent()||(e.keyboardNav=new i({root:e})),e},initLayoutRect:function(){var e=this,t=e._super();return e._layout.recalc(e),t},recalc:function(){var e=this,t=e._layoutRect,n=e._lastRect;return n&&n.w==t.w&&n.h==t.h?void 0:(e._layout.recalc(e),t=e.layoutRect(),e._lastRect={x:t.x,y:t.y,w:t.w,h:t.h},!0)},reflow:function(){var t;if(this.visible()){for(e.repaintControls=[],e.repaintControls.map={},this.recalc(),t=e.repaintControls.length;t--;)e.repaintControls[t].repaint();"flow"!==this.settings.layout&&"stack"!==this.settings.layout&&this.repaint(),e.repaintControls=[]}return this}})}),r($,[W],function(e){function t(){var e=document,t,n,r,i,o,a,s,l,c=Math.max;return t=e.documentElement,n=e.body,r=c(t.scrollWidth,n.scrollWidth),i=c(t.clientWidth,n.clientWidth),o=c(t.offsetWidth,n.offsetWidth),a=c(t.scrollHeight,n.scrollHeight),s=c(t.clientHeight,n.clientHeight),l=c(t.offsetHeight,n.offsetHeight),{width:o>r?i:r,height:l>a?s:a}}return function(n,r){function i(){return a.getElementById(r.handle||n)}var o,a=document,s,l,c,d,u,f;r=r||{},l=function(n){var l=t(),p,m;n.preventDefault(),s=n.button,p=i(),u=n.screenX,f=n.screenY,m=window.getComputedStyle?window.getComputedStyle(p,null).getPropertyValue("cursor"):p.runtimeStyle.cursor,o=a.createElement("div"),e.css(o,{position:"absolute",top:0,left:0,width:l.width,height:l.height,zIndex:2147483647,opacity:1e-4,background:"red",cursor:m}),a.body.appendChild(o),e.on(a,"mousemove",d),e.on(a,"mouseup",c),r.start(n)},d=function(e){return e.button!==s?c(e):(e.deltaX=e.screenX-u,e.deltaY=e.screenY-f,e.preventDefault(),void r.drag(e))},c=function(t){e.off(a,"mousemove",d),e.off(a,"mouseup",c),o.parentNode.removeChild(o),r.stop&&r.stop(t)},this.destroy=function(){e.off(i())},e.on(i(),"mousedown",l)}}),r(K,[W,$],function(e,t){return{init:function(){var e=this;e.on("repaint",e.renderScroll)},renderScroll:function(){function n(){function t(t,a,s,l,c,d){var u,f,p,m,h,g,v,y,b; +if(f=i.getEl("scroll"+t)){if(y=a.toLowerCase(),b=s.toLowerCase(),i.getEl("absend")&&e.css(i.getEl("absend"),y,i.layoutRect()[l]-1),!c)return void e.css(f,"display","none");e.css(f,"display","block"),u=i.getEl("body"),p=i.getEl("scroll"+t+"t"),m=u["client"+s]-2*o,m-=n&&r?f["client"+d]:0,h=u["scroll"+s],g=m/h,v={},v[y]=u["offset"+a]+o,v[b]=m,e.css(f,v),v={},v[y]=u["scroll"+a]*g,v[b]=m*g,e.css(p,v)}}var n,r,a;a=i.getEl("body"),n=a.scrollWidth>a.clientWidth,r=a.scrollHeight>a.clientHeight,t("h","Left","Width","contentW",n,"Height"),t("v","Top","Height","contentH",r,"Width")}function r(){function n(n,r,a,s,l){var c,d=i._id+"-scroll"+n,u=i.classPrefix;i.getEl().appendChild(e.createFragment('<div id="'+d+'" class="'+u+"scrollbar "+u+"scrollbar-"+n+'"><div id="'+d+'t" class="'+u+'scrollbar-thumb"></div></div>')),i.draghelper=new t(d+"t",{start:function(){c=i.getEl("body")["scroll"+r],e.addClass(e.get(d),u+"active")},drag:function(e){var t,d,u,f,p=i.layoutRect();d=p.contentW>p.innerW,u=p.contentH>p.innerH,f=i.getEl("body")["client"+a]-2*o,f-=d&&u?i.getEl("scroll"+n)["client"+l]:0,t=f/i.getEl("body")["scroll"+a],i.getEl("body")["scroll"+r]=c+e["delta"+s]/t},stop:function(){e.removeClass(e.get(d),u+"active")}})}i.addClass("scroll"),n("v","Top","Height","Y","Width"),n("h","Left","Width","X","Height")}var i=this,o=2;i.settings.autoScroll&&(i._hasScroll||(i._hasScroll=!0,r(),i.on("wheel",function(e){var t=i.getEl("body");t.scrollLeft+=10*(e.deltaX||0),t.scrollTop+=10*e.deltaY,n()}),e.on(i.getEl("body"),"scroll",n)),n())}}}),r(Y,[j,K],function(e,t){return e.extend({Defaults:{layout:"fit",containerCls:"panel"},Mixins:[t],renderHtml:function(){var e=this,t=e._layout,n=e.settings.html;return e.preRender(),t.preRender(e),"undefined"==typeof n?n='<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+t.renderHtml(e)+"</div>":("function"==typeof n&&(n=n.call(e)),e._hasBody=!1),'<div id="'+e._id+'" class="'+e.classes()+'" hideFocus="1" tabIndex="-1" role="group">'+(e._preBodyHtml||"")+n+"</div>"}})}),r(G,[W],function(e){function t(t,n,r){var i,o,a,s,l,c,d,u,f,p;return f=e.getViewPort(),o=e.getPos(n),a=o.x,s=o.y,t._fixed&&(a-=f.x,s-=f.y),i=t.getEl(),p=e.getSize(i),l=p.width,c=p.height,p=e.getSize(n),d=p.width,u=p.height,r=(r||"").split(""),"b"===r[0]&&(s+=u),"r"===r[1]&&(a+=d),"c"===r[0]&&(s+=Math.round(u/2)),"c"===r[1]&&(a+=Math.round(d/2)),"b"===r[3]&&(s-=c),"r"===r[4]&&(a-=l),"c"===r[3]&&(s-=Math.round(c/2)),"c"===r[4]&&(a-=Math.round(l/2)),{x:a,y:s,w:l,h:c}}return{testMoveRel:function(n,r){for(var i=e.getViewPort(),o=0;o<r.length;o++){var a=t(this,n,r[o]);if(this._fixed){if(a.x>0&&a.x+a.w<i.w&&a.y>0&&a.y+a.h<i.h)return r[o]}else if(a.x>i.x&&a.x+a.w<i.w+i.x&&a.y>i.y&&a.y+a.h<i.h+i.y)return r[o]}return r[0]},moveRel:function(e,n){"string"!=typeof n&&(n=this.testMoveRel(e,n));var r=t(this,e,n);return this.moveTo(r.x,r.y)},moveBy:function(e,t){var n=this,r=n.layoutRect();return n.moveTo(r.x+e,r.y+t),n},moveTo:function(t,n){function r(e,t,n){return 0>e?0:e+n>t?(e=t-n,0>e?0:e):e}var i=this;if(i.settings.constrainToViewport){var o=e.getViewPort(window),a=i.layoutRect();t=r(t,o.w+o.x,a.w),n=r(n,o.h+o.y,a.h)}return i._rendered?i.layoutRect({x:t,y:n}).repaint():(i.settings.x=t,i.settings.y=n),i.fire("move",{x:t,y:n}),i}}}),r(X,[W],function(e){return{resizeToContent:function(){this._layoutRect.autoResize=!0,this._lastRect=null,this.reflow()},resizeTo:function(t,n){if(1>=t||1>=n){var r=e.getWindowSize();t=1>=t?t*r.w:t,n=1>=n?n*r.h:n}return this._layoutRect.autoResize=!1,this.layoutRect({minW:t,minH:n,w:t,h:n}).reflow()},resizeBy:function(e,t){var n=this,r=n.layoutRect();return n.resizeTo(r.w+e,r.h+t)}}}),r(J,[Y,G,X,W],function(e,t,n,r){function i(e){var t;for(t=s.length;t--;)s[t]===e&&s.splice(t,1);for(t=l.length;t--;)l[t]===e&&l.splice(t,1)}var o,a,s=[],l=[],c,d=e.extend({Mixins:[t,n],init:function(e){function t(){var e,t=d.zIndex||65535,n;if(l.length)for(e=0;e<l.length;e++)l[e].modal&&(t++,n=l[e]),l[e].getEl().style.zIndex=t,l[e].zIndex=t,t++;var i=document.getElementById(u.classPrefix+"modal-block");n?r.css(i,"z-index",n.zIndex-1):i&&(i.parentNode.removeChild(i),c=!1),d.currentZIndex=t}function n(e,t){for(;e;){if(e==t)return!0;e=e.parent()}}function i(e){function t(t,n){for(var r,i=0;i<s.length;i++)if(s[i]!=e)for(r=s[i].parent();r&&(r=r.parent());)r==e&&s[i].fixed(t).moveBy(0,n).repaint()}var n=r.getViewPort().y;e.settings.autofix&&(e._fixed?e._autoFixY>n&&(e.fixed(!1).layoutRect({y:e._autoFixY}).repaint(),t(!1,e._autoFixY-n)):(e._autoFixY=e.layoutRect().y,e._autoFixY<n&&(e.fixed(!0).layoutRect({y:0}).repaint(),t(!0,n-e._autoFixY))))}var u=this;u._super(e),u._eventsRoot=u,u.addClass("floatpanel"),e.autohide&&(o||(o=function(e){for(var t=s.length;t--;){var r=s[t],i=r.getParentCtrl(e.target);if(r.settings.autohide){if(i&&(n(i,r)||r.parent()===i))continue;e=r.fire("autohide",{target:e.target}),e.isDefaultPrevented()||r.hide()}}},r.on(document,"click",o)),s.push(u)),e.autofix&&(a||(a=function(){var e;for(e=s.length;e--;)i(s[e])},r.on(window,"scroll",a)),u.on("move",function(){i(this)})),u.on("postrender show",function(e){if(e.control==u){var n,i=u.classPrefix;u.modal&&!c&&(n=r.createFragment('<div id="'+i+'modal-block" class="'+i+"reset "+i+'fade"></div>'),n=n.firstChild,u.getContainerElm().appendChild(n),setTimeout(function(){r.addClass(n,i+"in"),r.addClass(u.getEl(),i+"in")},0),c=!0),l.push(u),t()}}),u.on("close hide",function(e){if(e.control==u){for(var n=l.length;n--;)l[n]===u&&l.splice(n,1);t()}}),u.on("show",function(){u.parents().each(function(e){return e._fixed?(u.fixed(!0),!1):void 0})}),e.popover&&(u._preBodyHtml='<div class="'+u.classPrefix+'arrow"></div>',u.addClass("popover").addClass("bottom").addClass(u.isRtl()?"end":"start"))},fixed:function(e){var t=this;if(t._fixed!=e){if(t._rendered){var n=r.getViewPort();e?t.layoutRect().y-=n.y:t.layoutRect().y+=n.y}t.toggleClass("fixed",e),t._fixed=e}return t},show:function(){var e=this,t,n=e._super();for(t=s.length;t--&&s[t]!==e;);return-1===t&&s.push(e),n},hide:function(){return i(this),this._super()},hideAll:function(){d.hideAll()},close:function(){var e=this;return e.fire("close"),e.remove()},remove:function(){i(this),this._super()},postRender:function(){var e=this;return e.settings.bodyRole&&this.getEl("body").setAttribute("role",e.settings.bodyRole),e._super()}});return d.hideAll=function(){for(var e=s.length;e--;){var t=s[e];t&&t.settings.autohide&&(t.hide(),s.splice(e,1))}},d}),r(Q,[J,Y,W,$],function(e,t,n,r){var i=e.extend({modal:!0,Defaults:{border:1,layout:"flex",containerCls:"panel",role:"dialog",callbacks:{submit:function(){this.fire("submit",{data:this.toJSON()})},close:function(){this.close()}}},init:function(e){var n=this;n._super(e),n.isRtl()&&n.addClass("rtl"),n.addClass("window"),n._fixed=!0,e.buttons&&(n.statusbar=new t({layout:"flex",border:"1 0 0 0",spacing:3,padding:10,align:"center",pack:n.isRtl()?"start":"end",defaults:{type:"button"},items:e.buttons}),n.statusbar.addClass("foot"),n.statusbar.parent(n)),n.on("click",function(e){-1!=e.target.className.indexOf(n.classPrefix+"close")&&n.close()}),n.on("cancel",function(){n.close()}),n.aria("describedby",n.describedBy||n._id+"-none"),n.aria("label",e.title),n._fullscreen=!1},recalc:function(){var e=this,t=e.statusbar,r,i,o,a;e._fullscreen&&(e.layoutRect(n.getWindowSize()),e.layoutRect().contentH=e.layoutRect().innerH),e._super(),r=e.layoutRect(),e.settings.title&&!e._fullscreen&&(i=r.headerW,i>r.w&&(o=r.x-Math.max(0,i/2),e.layoutRect({w:i,x:o}),a=!0)),t&&(t.layoutRect({w:e.layoutRect().innerW}).recalc(),i=t.layoutRect().minW+r.deltaW,i>r.w&&(o=r.x-Math.max(0,i-r.w),e.layoutRect({w:i,x:o}),a=!0)),a&&e.recalc()},initLayoutRect:function(){var e=this,t=e._super(),r=0,i;if(e.settings.title&&!e._fullscreen){i=e.getEl("head");var o=n.getSize(i);t.headerW=o.width,t.headerH=o.height,r+=t.headerH}e.statusbar&&(r+=e.statusbar.layoutRect().h),t.deltaH+=r,t.minH+=r,t.h+=r;var a=n.getWindowSize();return t.x=Math.max(0,a.w/2-t.w/2),t.y=Math.max(0,a.h/2-t.h/2),t},renderHtml:function(){var e=this,t=e._layout,n=e._id,r=e.classPrefix,i=e.settings,o="",a="",s=i.html;return e.preRender(),t.preRender(e),i.title&&(o='<div id="'+n+'-head" class="'+r+'window-head"><div id="'+n+'-title" class="'+r+'title">'+e.encode(i.title)+'</div><button type="button" class="'+r+'close" aria-hidden="true">×</button><div id="'+n+'-dragh" class="'+r+'dragh"></div></div>'),i.url&&(s='<iframe src="'+i.url+'" tabindex="-1"></iframe>'),"undefined"==typeof s&&(s=t.renderHtml(e)),e.statusbar&&(a=e.statusbar.renderHtml()),'<div id="'+n+'" class="'+e.classes()+'" hideFocus="1"><div class="'+e.classPrefix+'reset" role="application">'+o+'<div id="'+n+'-body" class="'+e.classes("body")+'">'+s+"</div>"+a+"</div></div>"},fullscreen:function(e){var t=this,r=document.documentElement,i,o=t.classPrefix,a;if(e!=t._fullscreen)if(n.on(window,"resize",function(){var e;if(t._fullscreen)if(i)t._timer||(t._timer=setTimeout(function(){var e=n.getWindowSize();t.moveTo(0,0).resizeTo(e.w,e.h),t._timer=0},50));else{e=(new Date).getTime();var r=n.getWindowSize();t.moveTo(0,0).resizeTo(r.w,r.h),(new Date).getTime()-e>50&&(i=!0)}}),a=t.layoutRect(),t._fullscreen=e,e){t._initial={x:a.x,y:a.y,w:a.w,h:a.h},t._borderBox=t.parseBox("0"),t.getEl("head").style.display="none",a.deltaH-=a.headerH+2,n.addClass(r,o+"fullscreen"),n.addClass(document.body,o+"fullscreen"),t.addClass("fullscreen");var s=n.getWindowSize();t.moveTo(0,0).resizeTo(s.w,s.h)}else t._borderBox=t.parseBox(t.settings.border),t.getEl("head").style.display="",a.deltaH+=a.headerH,n.removeClass(r,o+"fullscreen"),n.removeClass(document.body,o+"fullscreen"),t.removeClass("fullscreen"),t.moveTo(t._initial.x,t._initial.y).resizeTo(t._initial.w,t._initial.h);return t.reflow()},postRender:function(){var e=this,t;setTimeout(function(){e.addClass("in")},0),e._super(),e.statusbar&&e.statusbar.postRender(),e.focus(),this.dragHelper=new r(e._id+"-dragh",{start:function(){t={x:e.layoutRect().x,y:e.layoutRect().y}},drag:function(n){e.moveTo(t.x+n.deltaX,t.y+n.deltaY)}}),e.on("submit",function(t){t.isDefaultPrevented()||e.close()})},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var e=this,t=e.classPrefix;e.dragHelper.destroy(),e._super(),e.statusbar&&this.statusbar.remove(),e._fullscreen&&(n.removeClass(document.documentElement,t+"fullscreen"),n.removeClass(document.body,t+"fullscreen"))}});return i}),r(Z,[Q],function(e){var t=e.extend({init:function(e){e={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(e)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(n){var r,i=n.callback||function(){};switch(n.buttons){case t.OK_CANCEL:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close(),i(!0)}},{type:"button",text:"Cancel",onClick:function(e){e.control.parents()[1].close(),i(!1)}}];break;case t.YES_NO:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close(),i(!0)}}];break;case t.YES_NO_CANCEL:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close()}}];break;default:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close(),i(!0)}}]}return new e({padding:20,x:n.x,y:n.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:r,title:n.title,role:"alertdialog",items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:n.text},onPostRender:function(){this.aria("describedby",this.items()[0]._id)},onClose:n.onClose,onCancel:function(){i(!1)}}).renderTo(document.body).reflow()},alert:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,t.msgBox(e)},confirm:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,e.buttons=t.OK_CANCEL,t.msgBox(e)}}});return t}),r(et,[Q,Z],function(e,t){return function(n){function r(){return o.length?o[o.length-1]:void 0}var i=this,o=[];i.windows=o,i.open=function(t,r){var i;return n.editorManager.activeEditor=n,t.title=t.title||" ",t.url=t.url||t.file,t.url&&(t.width=parseInt(t.width||320,10),t.height=parseInt(t.height||240,10)),t.body&&(t.items={defaults:t.defaults,type:t.bodyType||"form",items:t.body}),t.url||t.buttons||(t.buttons=[{text:"Ok",subtype:"primary",onclick:function(){i.find("form")[0].submit()}},{text:"Cancel",onclick:function(){i.close()}}]),i=new e(t),o.push(i),i.on("close",function(){for(var e=o.length;e--;)o[e]===i&&o.splice(e,1);n.focus()}),t.data&&i.on("postRender",function(){this.find("*").each(function(e){var n=e.name();n in t.data&&e.value(t.data[n])})}),i.features=t||{},i.params=r||{},n.nodeChanged(),i.renderTo(document.body).reflow()},i.alert=function(e,r,i){t.alert(e,function(){r?r.call(i||this):n.focus()})},i.confirm=function(e,n,r){t.confirm(e,function(e){n.call(r||this,e)})},i.close=function(){r()&&r().close()},i.getParams=function(){return r()?r().params:null},i.setParams=function(e){r()&&(r().params=e)}}}),r(tt,[T,A,C,m,h,f],function(e,t,n,r,i,o){return function(a){function s(e,t){try{a.getDoc().execCommand(e,!1,t)}catch(n){}}function l(){var e=a.getDoc().documentMode;return e?e:6}function c(e){return e.isDefaultPrevented()}function d(){function t(e){var t=new i(function(){});o.each(a.getBody().getElementsByTagName("*"),function(e){"SPAN"==e.tagName&&e.setAttribute("mce-data-marked",1),!e.hasAttribute("data-mce-style")&&e.hasAttribute("style")&&a.dom.setAttrib(e,"style",e.getAttribute("style"))}),t.observe(a.getDoc(),{childList:!0,attributes:!0,subtree:!0,attributeFilter:["style"]}),a.getDoc().execCommand(e?"ForwardDelete":"Delete",!1,null);var n=a.selection.getRng(),r=n.startContainer.parentNode;o.each(t.takeRecords(),function(e){if("style"==e.attributeName){var t=e.target.getAttribute("data-mce-style");t?e.target.setAttribute("style",t):e.target.removeAttribute("style")}o.each(e.addedNodes,function(e){if("SPAN"==e.nodeName&&!e.getAttribute("mce-data-marked")){var t,i;e==r&&(t=n.startOffset,i=e.firstChild),U.remove(e,!0),i&&(n.setStart(i,t),n.setEnd(i,t),a.selection.setRng(n))}})}),t.disconnect(),o.each(a.dom.select("span[mce-data-marked]"),function(e){e.removeAttribute("mce-data-marked")})}var n=a.getDoc(),r="data:text/mce-internal,",i=window.MutationObserver,s;i||(s=!0,i=function(){function e(e){var t=e.relatedNode||e.target;n.push({target:t,addedNodes:[t]})}function t(e){var t=e.relatedNode||e.target;n.push({target:t,attributeName:e.attrName})}var n=[],r;this.observe=function(n){r=n,r.addEventListener("DOMSubtreeModified",e,!1),r.addEventListener("DOMNodeInsertedIntoDocument",e,!1),r.addEventListener("DOMNodeInserted",e,!1),r.addEventListener("DOMAttrModified",t,!1)},this.disconnect=function(){r.removeEventListener("DOMNodeInserted",e),r.removeEventListener("DOMAttrModified",t),r.removeEventListener("DOMSubtreeModified",e,!1)},this.takeRecords=function(){return n}}),a.on("keydown",function(n){var r=n.keyCode==V,i=e.metaKeyPressed(n);if(!c(n)&&(r||n.keyCode==W)){var o=a.selection.getRng(),s=o.startContainer,l=o.startOffset;if(!i&&o.collapsed&&3==s.nodeType&&(r?l<s.data.length:l>0))return;n.preventDefault(),i&&a.selection.getSel().modify("extend",r?"forward":"backward","word"),t(r)}}),a.on("keypress",function(n){c(n)||q.isCollapsed()||!n.charCode||e.metaKeyPressed(n)||(n.preventDefault(),t(!0),a.selection.setContent(String.fromCharCode(n.charCode)))}),a.addCommand("Delete",function(){t()}),a.addCommand("ForwardDelete",function(){t(!0)}),s||(a.on("dragstart",function(e){e.dataTransfer.setData("URL","data:text/mce-internal,"+escape(a.selection.getContent()))}),a.on("drop",function(e){if(!c(e)){var i=e.dataTransfer.getData("URL");if(!i||-1==i.indexOf(r)||!n.caretRangeFromPoint)return;i=unescape(i.substr(r.length)),n.caretRangeFromPoint&&(e.preventDefault(),t(),a.selection.setRng(n.caretRangeFromPoint(e.x,e.y)),a.insertContent(i))}}),a.on("cut",function(e){!c(e)&&e.clipboardData&&(e.preventDefault(),e.clipboardData.clearData(),e.clipboardData.setData("text/html",a.selection.getContent()),e.clipboardData.setData("text/plain",a.selection.getContent({format:"text"})),t(!0))}))}function u(){function e(e){var t=U.create("body"),n=e.cloneContents();return t.appendChild(n),q.serializer.serialize(t,{format:"html"})}function n(n){if(!n.setStart){if(n.item)return!1;var r=n.duplicate();return r.moveToElementText(a.getBody()),t.compareRanges(n,r)}var i=e(n),o=U.createRng();o.selectNode(a.getBody());var s=e(o);return i===s}a.on("keydown",function(e){var t=e.keyCode,r,i;if(!c(e)&&(t==V||t==W)){if(r=a.selection.isCollapsed(),i=a.getBody(),r&&!U.isEmpty(i))return;if(!r&&!n(a.selection.getRng()))return;e.preventDefault(),a.setContent(""),i.firstChild&&U.isBlock(i.firstChild)?a.selection.setCursorLocation(i.firstChild,0):a.selection.setCursorLocation(i,0),a.nodeChanged()}})}function f(){a.on("keydown",function(t){!c(t)&&65==t.keyCode&&e.metaKeyPressed(t)&&(t.preventDefault(),a.execCommand("SelectAll"))})}function p(){a.settings.content_editable||(U.bind(a.getDoc(),"focusin",function(){q.setRng(q.getRng())}),U.bind(a.getDoc(),"mousedown",function(e){e.target==a.getDoc().documentElement&&(a.getBody().focus(),q.setRng(q.getRng()))}))}function m(){a.on("keydown",function(e){if(!c(e)&&e.keyCode===W&&q.isCollapsed()&&0===q.getRng(!0).startOffset){var t=q.getNode(),n=t.previousSibling;if("HR"==t.nodeName)return U.remove(t),void e.preventDefault();n&&n.nodeName&&"hr"===n.nodeName.toLowerCase()&&(U.remove(n),e.preventDefault())}})}function h(){window.Range.prototype.getClientRects||a.on("mousedown",function(e){if(!c(e)&&"HTML"===e.target.nodeName){var t=a.getBody();t.blur(),setTimeout(function(){t.focus()},0)}})}function g(){a.on("click",function(e){e=e.target,/^(IMG|HR)$/.test(e.nodeName)&&q.getSel().setBaseAndExtent(e,0,e,1),"A"==e.nodeName&&U.hasClass(e,"mce-item-anchor")&&q.select(e),a.nodeChanged()})}function v(){function e(){var e=U.getAttribs(q.getStart().cloneNode(!1));return function(){var t=q.getStart();t!==a.getBody()&&(U.setAttrib(t,"style",null),z(e,function(e){t.setAttributeNode(e.cloneNode(!0))}))}}function t(){return!q.isCollapsed()&&U.getParent(q.getStart(),U.isBlock)!=U.getParent(q.getEnd(),U.isBlock)}a.on("keypress",function(n){var r;return c(n)||8!=n.keyCode&&46!=n.keyCode||!t()?void 0:(r=e(),a.getDoc().execCommand("delete",!1,null),r(),n.preventDefault(),!1)}),U.bind(a.getDoc(),"cut",function(n){var r;!c(n)&&t()&&(r=e(),setTimeout(function(){r()},0))})}function y(){var e,n;a.on("selectionchange",function(){n&&(clearTimeout(n),n=0),n=window.setTimeout(function(){if(!a.removed){var n=q.getRng();e&&t.compareRanges(n,e)||(a.nodeChanged(),e=n)}},50)})}function b(){document.body.setAttribute("role","application")}function C(){a.on("keydown",function(e){if(!c(e)&&e.keyCode===W&&q.isCollapsed()&&0===q.getRng(!0).startOffset){var t=q.getNode().previousSibling;if(t&&t.nodeName&&"table"===t.nodeName.toLowerCase())return e.preventDefault(),!1}})}function x(){l()>7||(s("RespectVisibilityInDesign",!0),a.contentStyles.push(".mceHideBrInPre pre br {display: none}"),U.addClass(a.getBody(),"mceHideBrInPre"),$.addNodeFilter("pre",function(e){for(var t=e.length,r,i,o,a;t--;)for(r=e[t].getAll("br"),i=r.length;i--;)o=r[i],a=o.prev,a&&3===a.type&&"\n"!=a.value.charAt(a.value-1)?a.value+="\n":o.parent.insert(new n("#text",3),o,!0).value="\n"}),K.addNodeFilter("pre",function(e){for(var t=e.length,n,r,i,o;t--;)for(n=e[t].getAll("br"),r=n.length;r--;)i=n[r],o=i.prev,o&&3==o.type&&(o.value=o.value.replace(/\r?\n$/,""))}))}function w(){U.bind(a.getBody(),"mouseup",function(){var e,t=q.getNode();"IMG"==t.nodeName&&((e=U.getStyle(t,"width"))&&(U.setAttrib(t,"width",e.replace(/[^0-9%]+/g,"")),U.setStyle(t,"width","")),(e=U.getStyle(t,"height"))&&(U.setAttrib(t,"height",e.replace(/[^0-9%]+/g,"")),U.setStyle(t,"height","")))})}function _(){a.on("keydown",function(t){var n,r,i,o,s;if(!c(t)&&t.keyCode==e.BACKSPACE&&(n=q.getRng(),r=n.startContainer,i=n.startOffset,o=U.getRoot(),s=r,n.collapsed&&0===i)){for(;s&&s.parentNode&&s.parentNode.firstChild==s&&s.parentNode!=o;)s=s.parentNode;"BLOCKQUOTE"===s.tagName&&(a.formatter.toggle("blockquote",null,s),n=U.createRng(),n.setStart(r,0),n.setEnd(r,0),q.setRng(n))}})}function N(){function e(){a._refreshContentEditable(),s("StyleWithCSS",!1),s("enableInlineTableEditing",!1),j.object_resizing||s("enableObjectResizing",!1)}j.readonly||a.on("BeforeExecCommand MouseDown",e)}function E(){function e(){z(U.select("a"),function(e){var t=e.parentNode,n=U.getRoot();if(t.lastChild===e){for(;t&&!U.isBlock(t);){if(t.parentNode.lastChild!==t||t===n)return;t=t.parentNode}U.add(t,"br",{"data-mce-bogus":1})}})}a.on("SetContent ExecCommand",function(t){("setcontent"==t.type||"mceInsertLink"===t.command)&&e()})}function k(){j.forced_root_block&&a.on("init",function(){s("DefaultParagraphSeparator",j.forced_root_block)})}function S(){a.on("Undo Redo SetContent",function(e){e.initial||a.execCommand("mceRepaint")})}function T(){a.on("keydown",function(e){var t;c(e)||e.keyCode!=W||(t=a.getDoc().selection.createRange(),t&&t.item&&(e.preventDefault(),a.undoManager.beforeChange(),U.remove(t.item(0)),a.undoManager.add()))})}function R(){var e;l()>=10&&(e="",z("p div h1 h2 h3 h4 h5 h6".split(" "),function(t,n){e+=(n>0?",":"")+t+":empty"}),a.contentStyles.push(e+"{padding-right: 1px !important}"))}function A(){l()<9&&($.addNodeFilter("noscript",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.firstChild,r&&n.attr("data-mce-innertext",r.value)}),K.addNodeFilter("noscript",function(e){for(var t=e.length,i,o,a;t--;)i=e[t],o=e[t].firstChild,o?o.value=r.decode(o.value):(a=i.attributes.map["data-mce-innertext"],a&&(i.attr("data-mce-innertext",null),o=new n("#text",3),o.value=a,o.raw=!0,i.append(o)))}))}function B(){function e(e,t){var n=i.createTextRange();try{n.moveToPoint(e,t)}catch(r){n=null}return n}function t(t){var r;t.button?(r=e(t.x,t.y),r&&(r.compareEndPoints("StartToStart",a)>0?r.setEndPoint("StartToStart",a):r.setEndPoint("EndToEnd",a),r.select())):n()}function n(){var e=r.selection.createRange();a&&!e.item&&0===e.compareEndPoints("StartToEnd",e)&&a.select(),U.unbind(r,"mouseup",n),U.unbind(r,"mousemove",t),a=o=0}var r=U.doc,i=r.body,o,a,s;r.documentElement.unselectable=!0,U.bind(r,"mousedown contextmenu",function(i){if("HTML"===i.target.nodeName){if(o&&n(),s=r.documentElement,s.scrollHeight>s.clientHeight)return;o=1,a=e(i.x,i.y),a&&(U.bind(r,"mouseup",n),U.bind(r,"mousemove",t),U.getRoot().focus(),a.select())}})}function L(){a.on("keyup focusin mouseup",function(t){65==t.keyCode&&e.metaKeyPressed(t)||q.normalize()},!0)}function D(){a.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}")}function M(){a.inline||a.on("keydown",function(){document.activeElement==document.body&&a.getWin().focus()})}function H(){a.inline||(a.contentStyles.push("body {min-height: 150px}"),a.on("click",function(e){"HTML"==e.target.nodeName&&(a.getBody().focus(),a.selection.normalize(),a.nodeChanged())}))}function P(){i.mac&&a.on("keydown",function(t){!e.metaKeyPressed(t)||37!=t.keyCode&&39!=t.keyCode||(t.preventDefault(),a.selection.getSel().modify("move",37==t.keyCode?"backward":"forward","word"))})}function O(){s("AutoUrlDetect",!1)}function I(){a.inline||a.on("focus blur",function(){var e=a.dom.create("br");a.getBody().appendChild(e),e.parentNode.removeChild(e)},!0)}function F(){a.on("click",function(e){"A"===e.target.tagName&&e.preventDefault()}),a.contentStyles.push(".mce-content-body {-webkit-touch-callout: none}")}var z=o.each,W=e.BACKSPACE,V=e.DELETE,U=a.dom,q=a.selection,j=a.settings,$=a.parser,K=a.serializer,Y=i.gecko,G=i.ie,X=i.webkit;C(),_(),u(),L(),X&&(d(),p(),g(),k(),i.iOS?(y(),M(),H(),F()):f()),G&&i.ie<11&&(m(),b(),x(),w(),T(),R(),A(),B()),i.ie>=11&&(H(),I()),i.ie&&(f(),O()),Y&&(m(),h(),v(),N(),E(),S(),D(),P())}}),r(nt,[f],function(e){function t(){return!1}function n(){return!0}var r="__bindings",i=e.makeMap("focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave keydown keypress keyup contextmenu dragstart dragend dragover draggesture dragdrop drop drag"," ");return{fire:function(e,i,o){var a=this,s,l,c,d,u;if(!a.removed){if(e=e.toLowerCase(),i=i||{},i.type=e,i.target||(i.target=a),i.preventDefault||(i.preventDefault=function(){i.isDefaultPrevented=n},i.stopPropagation=function(){i.isPropagationStopped=n},i.stopImmediatePropagation=function(){i.isImmediatePropagationStopped=n},i.isDefaultPrevented=t,i.isPropagationStopped=t,i.isImmediatePropagationStopped=t),a[r]&&(s=a[r][e]))for(l=0,c=s.length;c>l&&(s[l]=d=s[l],!i.isImmediatePropagationStopped());l++)if(d.call(a,i)===!1)return i.preventDefault(),i;if(o!==!1&&a.parent)for(u=a.parent();u&&!i.isPropagationStopped();)u.fire(e,i,!1),u=u.parent();return i}},on:function(e,t,n){var o=this,a,s,l,c;if(t===!1&&(t=function(){return!1}),t)for(l=e.toLowerCase().split(" "),c=l.length;c--;)e=l[c],a=o[r],a||(a=o[r]={}),s=a[e],s||(s=a[e]=[],o.bindNative&&i[e]&&o.bindNative(e)),n?s.unshift(t):s.push(t);return o},off:function(e,t){var n=this,o,a=n[r],s,l,c,d;if(a)if(e)for(c=e.toLowerCase().split(" "),o=c.length;o--;){if(e=c[o],s=a[e],!e){for(l in a)a[e].length=0;return n}if(s){if(t)for(d=s.length;d--;)s[d]===t&&s.splice(d,1);else s.length=0;!s.length&&n.unbindNative&&i[e]&&(n.unbindNative(e),delete a[e])}}else{if(n.unbindNative)for(e in a)n.unbindNative(e);n[r]=[]}return n},hasEventListeners:function(e){var t=this[r];return e=e.toLowerCase(),!(!t||!t[e]||0===t[e].length)}}}),r(rt,[f,h],function(e,t){var n=e.each,r=e.explode,i={f9:120,f10:121,f11:122};return function(o){var a=this,s={};o.on("keyup keypress keydown",function(e){(e.altKey||e.ctrlKey||e.metaKey)&&n(s,function(n){var r=t.mac?e.metaKey:e.ctrlKey;if(n.ctrl==r&&n.alt==e.altKey&&n.shift==e.shiftKey)return e.keyCode==n.keyCode||e.charCode&&e.charCode==n.charCode?(e.preventDefault(),"keydown"==e.type&&n.func.call(n.scope),!0):void 0})}),a.add=function(t,a,l,c){var d;return d=l,"string"==typeof l?l=function(){o.execCommand(d,!1,null)}:e.isArray(d)&&(l=function(){o.execCommand(d[0],d[1],d[2])}),n(r(t.toLowerCase()),function(e){var t={func:l,scope:c||o,desc:o.translate(a),alt:!1,ctrl:!1,shift:!1};n(r(e,"+"),function(e){switch(e){case"alt":case"ctrl":case"shift":t[e]=!0;break;default:t.charCode=e.charCodeAt(0),t.keyCode=i[e]||e.toUpperCase().charCodeAt(0)}}),s[(t.ctrl?"ctrl":"")+","+(t.alt?"alt":"")+","+(t.shift?"shift":"")+","+t.keyCode]=t}),!0}}}),r(it,[v,b,C,k,E,B,L,D,M,H,P,O,y,d,et,x,_,tt,h,f,nt,rt],function(e,n,r,i,o,a,s,l,c,d,u,f,p,m,h,g,v,y,b,C,x,w){function _(e,t){return"selectionchange"==t?e.getDoc():!e.inline&&/^mouse|click|contextmenu|drop/.test(t)?e.getDoc():e.getBody()}function N(e,t,r){var i=this,o,a;o=i.documentBaseUrl=r.documentBaseURL,a=r.baseURI,i.settings=t=T({id:e,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:o,add_form_submit_trigger:!0,submit_patch:!0,add_unload_trigger:!0,convert_urls:!0,relative_urls:!0,remove_script_host:!0,object_resizing:!0,doctype:"<!DOCTYPE html>",visual:!0,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",forced_root_block:"p",hidden_input:!0,padd_empty_editor:!0,render_ui:!0,indentation:"30px",inline_styles:!0,convert_fonts_to_spans:!0,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",validate:!0,entity_encoding:"named",url_converter:i.convertURL,url_converter_scope:i,ie7_compat:!0},t),n.language=t.language||"en",n.languageLoad=t.language_load,n.baseURL=r.baseURL,i.id=t.id=e,i.isNotDirty=!0,i.plugins={},i.documentBaseURI=new f(t.document_base_url||o,{base_uri:a}),i.baseURI=a,i.contentCSS=[],i.contentStyles=[],i.shortcuts=new w(i),i.execCommands={},i.queryStateCommands={},i.queryValueCommands={},i.loadedCSS={},i.suffix=r.suffix,i.editorManager=r,i.inline=t.inline,r.fire("SetupEditor",i),i.execCallback("setup",i)}var E=e.DOM,k=n.ThemeManager,S=n.PluginManager,T=C.extend,R=C.each,A=C.explode,B=C.inArray,L=C.trim,D=C.resolve,M=m.Event,H=b.gecko,P=b.ie;return N.prototype={render:function(){function e(){E.unbind(window,"ready",e),n.render()}function t(){var e=p.ScriptLoader;if(r.language&&"en"!=r.language&&!r.language_url&&(r.language_url=n.editorManager.baseURL+"/langs/"+r.language+".js"),r.language_url&&e.add(r.language_url),r.theme&&"function"!=typeof r.theme&&"-"!=r.theme.charAt(0)&&!k.urls[r.theme]){var t=r.theme_url;t=t?n.documentBaseURI.toAbsolute(t):"themes/"+r.theme+"/theme"+o+".js",k.load(r.theme,t)}C.isArray(r.plugins)&&(r.plugins=r.plugins.join(" ")),R(r.external_plugins,function(e,t){S.load(t,e),r.plugins+=" "+t}),R(r.plugins.split(/[ ,]/),function(e){if(e=L(e),e&&!S.urls[e])if("-"==e.charAt(0)){e=e.substr(1,e.length);var t=S.dependencies(e);R(t,function(e){var t={prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"};e=S.createUrl(t,e),S.load(e.resource,e)})}else S.load(e,{prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"})}),e.loadQueue(function(){n.removed||n.init()})}var n=this,r=n.settings,i=n.id,o=n.suffix;if(!M.domLoaded)return void E.bind(window,"ready",e);if(n.getElement()&&b.contentEditable){r.inline?n.inline=!0:(n.orgVisibility=n.getElement().style.visibility,n.getElement().style.visibility="hidden");var a=n.getElement().form||E.getParent(i,"form");a&&(n.formElement=a,r.hidden_input&&!/TEXTAREA|INPUT/i.test(n.getElement().nodeName)&&(E.insertAfter(E.create("input",{type:"hidden",name:i}),i),n.hasHiddenInput=!0),n.formEventDelegate=function(e){n.fire(e.type,e)},E.bind(a,"submit reset",n.formEventDelegate),n.on("reset",function(){n.setContent(n.startContent,{format:"raw"})}),!r.submit_patch||a.submit.nodeType||a.submit.length||a._mceOldSubmit||(a._mceOldSubmit=a.submit,a.submit=function(){return n.editorManager.triggerSave(),n.isNotDirty=!0,a._mceOldSubmit(a)})),n.windowManager=new h(n),"xml"==r.encoding&&n.on("GetContent",function(e){e.save&&(e.content=E.encode(e.content))}),r.add_form_submit_trigger&&n.on("submit",function(){n.initialized&&n.save()}),r.add_unload_trigger&&(n._beforeUnload=function(){!n.initialized||n.destroyed||n.isHidden()||n.save({format:"raw",no_events:!0,set_dirty:!1})},n.editorManager.on("BeforeUnload",n._beforeUnload)),t()}},init:function(){function e(n){var r=S.get(n),i,o;i=S.urls[n]||t.documentBaseUrl.replace(/\/$/,""),n=L(n),r&&-1===B(h,n)&&(R(S.dependencies(n),function(t){e(t)}),o=new r(t,i),t.plugins[n]=o,o.init&&(o.init(t,i),h.push(n)))}var t=this,n=t.settings,r=t.getElement(),i,o,a,s,l,c,d,u,f,p,m,h=[];if(t.rtl=this.editorManager.i18n.rtl,t.editorManager.add(t),n.aria_label=n.aria_label||E.getAttrib(r,"aria-label",t.getLang("aria.rich_text_area")),n.theme&&("function"!=typeof n.theme?(n.theme=n.theme.replace(/-/,""),c=k.get(n.theme),t.theme=new c(t,k.urls[n.theme]),t.theme.init&&t.theme.init(t,k.urls[n.theme]||t.documentBaseUrl.replace(/\/$/,""))):t.theme=n.theme),R(n.plugins.replace(/\-/g,"").split(/[ ,]/),e),n.render_ui&&t.theme&&(t.orgDisplay=r.style.display,"function"!=typeof n.theme?(i=n.width||r.style.width||r.offsetWidth,o=n.height||r.style.height||r.offsetHeight,a=n.min_height||100,p=/^[0-9\.]+(|px)$/i,p.test(""+i)&&(i=Math.max(parseInt(i,10),100)),p.test(""+o)&&(o=Math.max(parseInt(o,10),a)),l=t.theme.renderUI({targetNode:r,width:i,height:o,deltaWidth:n.delta_width,deltaHeight:n.delta_height}),n.content_editable||(E.setStyles(l.sizeContainer||l.editorContainer,{wi2dth:i,h2eight:o}),o=(l.iframeHeight||o)+("number"==typeof o?l.deltaHeight||0:""),a>o&&(o=a))):(l=n.theme(t,r),l.editorContainer.nodeType&&(l.editorContainer=l.editorContainer.id=l.editorContainer.id||t.id+"_parent"),l.iframeContainer.nodeType&&(l.iframeContainer=l.iframeContainer.id=l.iframeContainer.id||t.id+"_iframecontainer"),o=l.iframeHeight||r.offsetHeight),t.editorContainer=l.editorContainer),n.content_css&&R(A(n.content_css),function(e){t.contentCSS.push(t.documentBaseURI.toAbsolute(e)) +}),n.content_style&&t.contentStyles.push(n.content_style),n.content_editable)return r=s=l=null,t.initContentBody();for(t.iframeHTML=n.doctype+"<html><head>",n.document_base_url!=t.documentBaseUrl&&(t.iframeHTML+='<base href="'+t.documentBaseURI.getURI()+'" />'),!b.caretAfter&&n.ie7_compat&&(t.iframeHTML+='<meta http-equiv="X-UA-Compatible" content="IE=7" />'),t.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />',m=0;m<t.contentCSS.length;m++){var g=t.contentCSS[m];t.iframeHTML+='<link type="text/css" rel="stylesheet" href="'+g+'" />',t.loadedCSS[g]=!0}u=n.body_id||"tinymce",-1!=u.indexOf("=")&&(u=t.getParam("body_id","","hash"),u=u[t.id]||u),f=n.body_class||"",-1!=f.indexOf("=")&&(f=t.getParam("body_class","","hash"),f=f[t.id]||""),t.iframeHTML+='</head><body id="'+u+'" class="mce-content-body '+f+'" onload="window.parent.tinymce.get(\''+t.id+"').fire('load');\"><br></body></html>";var v='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinymce.get("'+t.id+'");document.write(ed.iframeHTML);document.close();ed.initContentBody(true);})()';if(document.domain!=location.hostname&&(d=v),s=E.add(l.iframeContainer,"iframe",{id:t.id+"_ifr",src:d||'javascript:""',frameBorder:"0",allowTransparency:"true",title:t.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"),style:{width:"100%",height:o,display:"block"}}),P)try{t.getDoc()}catch(y){s.src=d=v}t.contentAreaContainer=l.iframeContainer,l.editorContainer&&(E.get(l.editorContainer).style.display=t.orgDisplay),E.get(t.id).style.display="none",E.setAttrib(t.id,"aria-hidden",!0),d||t.initContentBody(),r=s=l=null},initContentBody:function(t){var n=this,o=n.settings,f=E.get(n.id),p=n.getDoc(),m,h;o.inline||(n.getElement().style.visibility=n.orgVisibility),t||o.content_editable||(p.open(),p.write(n.iframeHTML),p.close()),o.content_editable&&(n.on("remove",function(){var e=this.getBody();E.removeClass(e,"mce-content-body"),E.removeClass(e,"mce-edit-focus"),E.setAttrib(e,"tabIndex",null),E.setAttrib(e,"contentEditable",null)}),E.addClass(f,"mce-content-body"),f.tabIndex=-1,n.contentDocument=p=o.content_document||document,n.contentWindow=o.content_window||window,n.bodyElement=f,o.content_document=o.content_window=null,o.root_name=f.nodeName.toLowerCase()),m=n.getBody(),m.disabled=!0,o.readonly||(n.inline&&"static"==E.getStyle(m,"position",!0)&&(m.style.position="relative"),m.contentEditable=n.getParam("content_editable_state",!0)),m.disabled=!1,n.schema=new g(o),n.dom=new e(p,{keep_values:!0,url_converter:n.convertURL,url_converter_scope:n,hex_colors:o.force_hex_style_colors,class_filter:o.class_filter,update_styles:!0,root_element:o.content_editable?n.id:null,collect:o.content_editable,schema:n.schema,onSetAttrib:function(e){n.fire("SetAttrib",e)}}),n.parser=new v(o,n.schema),n.parser.addAttributeFilter("src,href,style",function(e,t){for(var r=e.length,i,o=n.dom,a,s;r--;)i=e[r],a=i.attr(t),s="data-mce-"+t,i.attributes.map[s]||("style"===t?i.attr(s,o.serializeStyle(o.parseStyle(a),i.name)):i.attr(s,n.convertURL(a,t,i.name)))}),n.parser.addNodeFilter("script",function(e){for(var t=e.length,n;t--;)n=e[t],n.attr("type","mce-"+(n.attr("type")||"text/javascript"))}),n.parser.addNodeFilter("#cdata",function(e){for(var t=e.length,n;t--;)n=e[t],n.type=8,n.name="#comment",n.value="[CDATA["+n.value+"]]"}),n.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(e){for(var t=e.length,i,o=n.schema.getNonEmptyElements();t--;)i=e[t],i.isEmpty(o)&&(i.empty().append(new r("br",1)).shortEnded=!0)}),n.serializer=new i(o,n),n.selection=new a(n.dom,n.getWin(),n.serializer,n),n.formatter=new s(n),n.undoManager=new l(n),n.forceBlocks=new d(n),n.enterKey=new c(n),n.editorCommands=new u(n),n.fire("PreInit"),o.browser_spellcheck||o.gecko_spellcheck||(p.body.spellcheck=!1,E.setAttrib(m,"spellcheck","false")),n.fire("PostRender"),n.quirks=y(n),o.directionality&&(m.dir=o.directionality),o.nowrap&&(m.style.whiteSpace="nowrap"),o.protect&&n.on("BeforeSetContent",function(e){R(o.protect,function(t){e.content=e.content.replace(t,function(e){return"<!--mce:protected "+escape(e)+"-->"})})}),n.on("SetContent",function(){n.addVisual(n.getBody())}),o.padd_empty_editor&&n.on("PostProcess",function(e){e.content=e.content.replace(/^(<p[^>]*>( | |\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,"")}),n.load({initial:!0,format:"html"}),n.startContent=n.getContent({format:"raw"}),n.initialized=!0,R(n._pendingNativeEvents,function(e){n.dom.bind(_(n,e),e,function(e){n.fire(e.type,e)})}),n.fire("init"),n.focus(!0),n.nodeChanged({initial:!0}),n.execCallback("init_instance_callback",n),n.contentStyles.length>0&&(h="",R(n.contentStyles,function(e){h+=e+"\r\n"}),n.dom.addStyle(h)),R(n.contentCSS,function(e){n.loadedCSS[e]||(n.dom.loadCSS(e),n.loadedCSS[e]=!0)}),o.auto_focus&&setTimeout(function(){var e=n.editorManager.get(o.auto_focus);e.selection.select(e.getBody(),1),e.selection.collapse(1),e.getBody().focus(),e.getWin().focus()},100),f=p=m=null},focus:function(e){var t,n=this,r=n.selection,i=n.settings.content_editable,o,a,s=n.getDoc(),l;e||(o=r.getRng(),o.item&&(a=o.item(0)),n._refreshContentEditable(),i||(b.opera||n.getBody().focus(),n.getWin().focus()),(H||i)&&(l=n.getBody(),l.setActive&&b.ie<11?l.setActive():l.focus(),i&&r.normalize()),a&&a.ownerDocument==s&&(o=s.body.createControlRange(),o.addElement(a),o.select())),n.editorManager.activeEditor!=n&&((t=n.editorManager.activeEditor)&&t.fire("deactivate",{relatedTarget:n}),n.fire("activate",{relatedTarget:t})),n.editorManager.activeEditor=n},execCallback:function(e){var t=this,n=t.settings[e],r;if(n)return t.callbackLookup&&(r=t.callbackLookup[e])&&(n=r.func,r=r.scope),"string"==typeof n&&(r=n.replace(/\.\w+$/,""),r=r?D(r):0,n=D(n),t.callbackLookup=t.callbackLookup||{},t.callbackLookup[e]={func:n,scope:r}),n.apply(r||t,Array.prototype.slice.call(arguments,1))},translate:function(e){var t=this.settings.language||"en",n=this.editorManager.i18n;return e?n.data[t+"."+e]||e.replace(/\{\#([^\}]+)\}/g,function(e,r){return n.data[t+"."+r]||"{#"+r+"}"}):""},getLang:function(e,n){return this.editorManager.i18n.data[(this.settings.language||"en")+"."+e]||(n!==t?n:"{#"+e+"}")},getParam:function(e,t,n){var r=e in this.settings?this.settings[e]:t,i;return"hash"===n?(i={},"string"==typeof r?R(r.split(r.indexOf("=")>0?/[;,](?![^=;,]*(?:[;,]|$))/:","),function(e){e=e.split("="),i[L(e[0])]=L(e.length>1?e[1]:e)}):i=r,i):r},nodeChanged:function(){var e=this,t=e.selection,n,r,i;!e.initialized||e.settings.disable_nodechange||e.settings.readonly||(i=e.getBody(),n=t.getStart()||i,n=P&&n.ownerDocument!=e.getDoc()?e.getBody():n,"IMG"==n.nodeName&&t.isCollapsed()&&(n=n.parentNode),r=[],e.dom.getParent(n,function(e){return e===i?!0:void r.push(e)}),e.fire("NodeChange",{element:n,parents:r}))},addButton:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),t.text||t.icon||(t.icon=e),n.buttons=n.buttons||{},t.tooltip=t.tooltip||t.title,n.buttons[e]=t},addMenuItem:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),n.menuItems=n.menuItems||{},n.menuItems[e]=t},addCommand:function(e,t,n){this.execCommands[e]={func:t,scope:n||this}},addQueryStateHandler:function(e,t,n){this.queryStateCommands[e]={func:t,scope:n||this}},addQueryValueHandler:function(e,t,n){this.queryValueCommands[e]={func:t,scope:n||this}},addShortcut:function(e,t,n,r){this.shortcuts.add(e,t,n,r)},execCommand:function(e,t,n,r){var i=this,o=0,a;return/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(e)||r&&r.skip_focus||i.focus(),r=T({},r),r=i.fire("BeforeExecCommand",{command:e,ui:t,value:n}),r.isDefaultPrevented()?!1:(a=i.execCommands[e])&&a.func.call(a.scope,t,n)!==!0?(i.fire("ExecCommand",{command:e,ui:t,value:n}),!0):(R(i.plugins,function(r){return r.execCommand&&r.execCommand(e,t,n)?(i.fire("ExecCommand",{command:e,ui:t,value:n}),o=!0,!1):void 0}),o?o:i.theme&&i.theme.execCommand&&i.theme.execCommand(e,t,n)?(i.fire("ExecCommand",{command:e,ui:t,value:n}),!0):i.editorCommands.execCommand(e,t,n)?(i.fire("ExecCommand",{command:e,ui:t,value:n}),!0):(i.getDoc().execCommand(e,t,n),void i.fire("ExecCommand",{command:e,ui:t,value:n})))},queryCommandState:function(e){var t=this,n,r;if(!t._isHidden()){if((n=t.queryStateCommands[e])&&(r=n.func.call(n.scope),r!==!0))return r;if(r=t.editorCommands.queryCommandState(e),-1!==r)return r;try{return t.getDoc().queryCommandState(e)}catch(i){}}},queryCommandValue:function(e){var n=this,r,i;if(!n._isHidden()){if((r=n.queryValueCommands[e])&&(i=r.func.call(r.scope),i!==!0))return i;if(i=n.editorCommands.queryCommandValue(e),i!==t)return i;try{return n.getDoc().queryCommandValue(e)}catch(o){}}},show:function(){var e=this;E.show(e.getContainer()),E.hide(e.id),e.load(),e.fire("show")},hide:function(){var e=this,t=e.getDoc();P&&t&&!e.inline&&t.execCommand("SelectAll"),e.save(),E.hide(e.getContainer()),E.setStyle(e.id,"display",e.orgDisplay),e.fire("hide")},isHidden:function(){return!E.isHidden(this.id)},setProgressState:function(e,t){this.fire("ProgressState",{state:e,time:t})},load:function(e){var n=this,r=n.getElement(),i;return r?(e=e||{},e.load=!0,i=n.setContent(r.value!==t?r.value:r.innerHTML,e),e.element=r,e.no_events||n.fire("LoadContent",e),e.element=r=null,i):void 0},save:function(e){var t=this,n=t.getElement(),r,i;if(n&&t.initialized)return e=e||{},e.save=!0,e.element=n,r=e.content=t.getContent(e),e.no_events||t.fire("SaveContent",e),r=e.content,/TEXTAREA|INPUT/i.test(n.nodeName)?n.value=r:(t.inline||(n.innerHTML=r),(i=E.getParent(t.id,"form"))&&R(i.elements,function(e){return e.name==t.id?(e.value=r,!1):void 0})),e.element=n=null,e.set_dirty!==!1&&(t.isNotDirty=!0),r},setContent:function(e,t){var n=this,r=n.getBody(),i;return t=t||{},t.format=t.format||"html",t.set=!0,t.content=e,t.no_events||n.fire("BeforeSetContent",t),e=t.content,0===e.length||/^\s+$/.test(e)?(i=n.settings.forced_root_block,i&&n.schema.isValidChild(r.nodeName.toLowerCase(),i.toLowerCase())?(e=P&&11>P?"":'<br data-mce-bogus="1">',e=n.dom.createHTML(i,n.settings.forced_root_block_attrs,e)):P||(e='<br data-mce-bogus="1">'),r.innerHTML=e,n.fire("SetContent",t)):("raw"!==t.format&&(e=new o({},n.schema).serialize(n.parser.parse(e,{isRootContent:!0}))),t.content=L(e),n.dom.setHTML(r,t.content),t.no_events||n.fire("SetContent",t)),t.content},getContent:function(e){var t=this,n,r=t.getBody();return e=e||{},e.format=e.format||"html",e.get=!0,e.getInner=!0,e.no_events||t.fire("BeforeGetContent",e),n="raw"==e.format?r.innerHTML:"text"==e.format?r.innerText||r.textContent:t.serializer.serialize(r,e),e.content="text"!=e.format?L(n):n,e.no_events||t.fire("GetContent",e),e.content},insertContent:function(e){this.execCommand("mceInsertContent",!1,e)},isDirty:function(){return!this.isNotDirty},getContainer:function(){var e=this;return e.container||(e.container=E.get(e.editorContainer||e.id+"_parent")),e.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return E.get(this.settings.content_element||this.id)},getWin:function(){var e=this,t;return e.contentWindow||(t=E.get(e.id+"_ifr"),t&&(e.contentWindow=t.contentWindow)),e.contentWindow},getDoc:function(){var e=this,t;return e.contentDocument||(t=e.getWin(),t&&(e.contentDocument=t.document)),e.contentDocument},getBody:function(){return this.bodyElement||this.getDoc().body},convertURL:function(e,t,n){var r=this,i=r.settings;return i.urlconverter_callback?r.execCallback("urlconverter_callback",e,n,!0,t):!i.convert_urls||n&&"LINK"==n.nodeName||0===e.indexOf("file:")||0===e.length?e:i.relative_urls?r.documentBaseURI.toRelative(e):e=r.documentBaseURI.toAbsolute(e,i.remove_script_host)},addVisual:function(e){var n=this,r=n.settings,i=n.dom,o;e=e||n.getBody(),n.hasVisual===t&&(n.hasVisual=r.visual),R(i.select("table,a",e),function(e){var t;switch(e.nodeName){case"TABLE":return o=r.visual_table_class||"mce-item-table",t=i.getAttrib(e,"border"),void(t&&"0"!=t||(n.hasVisual?i.addClass(e,o):i.removeClass(e,o)));case"A":return void(i.getAttrib(e,"href",!1)||(t=i.getAttrib(e,"name")||e.id,o=r.visual_anchor_class||"mce-item-anchor",t&&(n.hasVisual?i.addClass(e,o):i.removeClass(e,o))))}}),n.fire("VisualAid",{element:e,hasVisual:n.hasVisual})},remove:function(){var e=this;if(!e.removed){e.save(),e.fire("remove"),e.off(),e.removed=1,e.hasHiddenInput&&E.remove(e.getElement().nextSibling),E.setStyle(e.id,"display",e.orgDisplay),e.settings.content_editable||(M.unbind(e.getWin()),M.unbind(e.getDoc()));var t=e.getContainer();M.unbind(e.getBody()),M.unbind(t),e.editorManager.remove(e),E.remove(t),e.destroy()}},bindNative:function(e){var t=this;t.settings.readonly||(t.initialized?t.dom.bind(_(t,e),e,function(n){t.fire(e,n)}):t._pendingNativeEvents?t._pendingNativeEvents.push(e):t._pendingNativeEvents=[e])},unbindNative:function(e){var t=this;t.initialized&&t.dom.unbind(e)},destroy:function(e){var t=this,n;if(!t.destroyed){if(!e&&!t.removed)return void t.remove();e&&H&&(M.unbind(t.getDoc()),M.unbind(t.getWin()),M.unbind(t.getBody())),e||(t.editorManager.off("beforeunload",t._beforeUnload),t.theme&&t.theme.destroy&&t.theme.destroy(),t.selection.destroy(),t.dom.destroy()),n=t.formElement,n&&(n._mceOldSubmit&&(n.submit=n._mceOldSubmit,n._mceOldSubmit=null),E.unbind(n,"submit reset",t.formEventDelegate)),t.contentAreaContainer=t.formElement=t.container=t.editorContainer=null,t.settings.content_element=t.bodyElement=t.contentDocument=t.contentWindow=null,t.selection&&(t.selection=t.selection.win=t.selection.dom=t.selection.dom.doc=null),t.destroyed=1}},_refreshContentEditable:function(){var e=this,t,n;e._isHidden()&&(t=e.getBody(),n=t.parentNode,n.removeChild(t),n.appendChild(t),t.focus())},_isHidden:function(){var e;return H?(e=this.selection.getSel(),!e||!e.rangeCount||0===e.rangeCount):0}},T(N.prototype,x),N}),r(ot,[],function(){var e={};return{rtl:!1,add:function(t,n){for(var r in n)e[r]=n[r];this.rtl=this.rtl||"rtl"===e._dir},translate:function(t){if("undefined"==typeof t)return t;if("string"!=typeof t&&t.raw)return t.raw;if(t.push){var n=t.slice(1);t=(e[t[0]]||t[0]).replace(/\{([^\}]+)\}/g,function(e,t){return n[t]})}return e[t]||t},data:e}}),r(at,[v,h],function(e,t){function n(e){function a(){try{return document.activeElement}catch(e){return document.body}}function s(e){return e&&e.startContainer?{startContainer:e.startContainer,startOffset:e.startOffset,endContainer:e.endContainer,endOffset:e.endOffset}:e}function l(e,t){var n;return t.startContainer?(n=e.getDoc().createRange(),n.setStart(t.startContainer,t.startOffset),n.setEnd(t.endContainer,t.endOffset)):n=t,n}function c(e){return!!o.getParent(e,n.isEditorUIElement)}function d(e,t){for(var n=t.getBody();e;){if(e==n)return!0;e=e.parentNode}}function u(n){var u=n.editor;u.on("init",function(){(u.inline||t.ie)&&(u.on("nodechange keyup",function(){var e=document.activeElement;e&&e.id==u.id+"_ifr"&&(e=u.getBody()),d(e,u)&&(u.lastRng=u.selection.getRng())}),t.webkit&&!r&&(r=function(){var t=e.activeEditor;if(t&&t.selection){var n=t.selection.getRng();n&&!n.collapsed&&(u.lastRng=n)}},o.bind(document,"selectionchange",r)))}),u.on("setcontent",function(){u.lastRng=null}),u.on("mousedown",function(){u.selection.lastFocusBookmark=null}),u.on("focusin",function(){var t=e.focusedEditor;u.selection.lastFocusBookmark&&(u.selection.setRng(l(u,u.selection.lastFocusBookmark)),u.selection.lastFocusBookmark=null),t!=u&&(t&&t.fire("blur",{focusedEditor:u}),e.activeEditor=u,e.focusedEditor=u,u.fire("focus",{blurredEditor:t}),u.focus(!0)),u.lastRng=null}),u.on("focusout",function(){window.setTimeout(function(){var t=e.focusedEditor;c(a())||t!=u||(u.fire("blur",{focusedEditor:null}),e.focusedEditor=null,u.selection&&(u.selection.lastFocusBookmark=null))},0)}),i||(i=function(t){var n=e.activeEditor;n&&t.target.ownerDocument==document&&(n.selection&&(n.selection.lastFocusBookmark=s(n.lastRng)),c(t.target)||e.focusedEditor!=n||(n.fire("blur",{focusedEditor:null}),e.focusedEditor=null))},o.bind(document,"focusin",i))}function f(t){e.focusedEditor==t.editor&&(e.focusedEditor=null),e.activeEditor||(o.unbind(document,"selectionchange",r),o.unbind(document,"focusin",i),r=i=null)}e.on("AddEditor",u),e.on("RemoveEditor",f)}var r,i,o=e.DOM;return n.isEditorUIElement=function(e){return-1!==e.className.toString().indexOf("mce-")},n}),r(st,[it,v,O,h,f,nt,ot,at],function(e,n,r,i,o,a,s,l){var c=n.DOM,d=o.explode,u=o.each,f=o.extend,p=0,m,h={majorVersion:"4",minorVersion:"0.20",releaseDate:"2014-03-18",editors:[],i18n:s,activeEditor:null,setup:function(){var e=this,t,n,i="",o;if(n=document.location.href.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(n)||(n+="/"),o=window.tinymce||window.tinyMCEPreInit)t=o.base||o.baseURL,i=o.suffix;else for(var a=document.getElementsByTagName("script"),s=0;s<a.length;s++){var c=a[s].src;if(/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(c)){-1!=c.indexOf(".min")&&(i=".min"),t=c.substring(0,c.lastIndexOf("/"));break}}e.baseURL=new r(n).toAbsolute(t),e.documentBaseURL=n,e.baseURI=new r(e.baseURL),e.suffix=i,e.focusManager=new l(e)},init:function(t){function n(e){var t=e.id;return t||(t=e.name,t=t&&!c.get(t)?e.name:c.uniqueId(),e.setAttribute("id",t)),t}function r(e,t,n){var r=e[t];if(r)return r.apply(n||this,Array.prototype.slice.call(arguments,2))}function i(e,t){return t.constructor===RegExp?t.test(e.className):c.hasClass(e,t)}function o(){var m,h;if(c.unbind(window,"ready",o),r(t,"onpageload"),t.types)return void u(t.types,function(r){u(c.select(r.selector),function(i){var o=new e(n(i),f({},t,r),a);s.push(o),o.render(1)})});if(t.selector)return void u(c.select(t.selector),function(r){var i=new e(n(r),t,a);s.push(i),i.render(1)});switch(t.mode){case"exact":m=t.elements||"",m.length>0&&u(d(m),function(n){c.get(n)?(l=new e(n,t,a),s.push(l),l.render(!0)):u(document.forms,function(r){u(r.elements,function(r){r.name===n&&(n="mce_editor_"+p++,c.setAttrib(r,"id",n),l=new e(n,t,a),s.push(l),l.render(1))})})});break;case"textareas":case"specific_textareas":u(c.select("textarea"),function(r){t.editor_deselector&&i(r,t.editor_deselector)||(!t.editor_selector||i(r,t.editor_selector))&&(l=new e(n(r),t,a),s.push(l),l.render(!0))})}t.oninit&&(m=h=0,u(s,function(e){h++,e.initialized?m++:e.on("init",function(){m++,m==h&&r(t,"oninit")}),m==h&&r(t,"oninit")}))}var a=this,s=[],l;a.settings=t,c.bind(window,"ready",o)},get:function(e){return e===t?this.editors:this.editors[e]},add:function(e){var t=this,n=t.editors;return n[e.id]=e,n.push(e),t.activeEditor=e,t.fire("AddEditor",{editor:e}),m||(m=function(){t.fire("BeforeUnload")},c.bind(window,"beforeunload",m)),e},createEditor:function(t,n){return this.add(new e(t,n,this))},remove:function(e){var t=this,n,r=t.editors,i,o;{if(e){if("string"==typeof e)return e=e.selector||e,void u(c.select(e),function(e){t.remove(r[e.id])});if(i=e,!r[i.id])return null;for(delete r[i.id],n=0;n<r.length;n++)if(r[n]==i){r.splice(n,1),o=!0;break}return t.activeEditor==i&&(t.activeEditor=r[0]),o&&t.fire("RemoveEditor",{editor:i}),r.length||c.unbind(window,"beforeunload",m),i.remove(),i}for(n=r.length-1;n>=0;n--)t.remove(r[n])}},execCommand:function(t,n,r){var i=this,o=i.get(r);switch(t){case"mceAddEditor":return i.get(r)||new e(r,i.settings,i).render(),!0;case"mceRemoveEditor":return o&&o.remove(),!0;case"mceToggleEditor":return o?(o.isHidden()?o.show():o.hide(),!0):(i.execCommand("mceAddEditor",0,r),!0)}return i.activeEditor?i.activeEditor.execCommand(t,n,r):!1},triggerSave:function(){u(this.editors,function(e){e.save()})},addI18n:function(e,t){s.add(e,t)},translate:function(e){return s.translate(e)}};return f(h,a),h.setup(),window.tinymce=window.tinyMCE=h,h}),r(lt,[st,f],function(e,t){var n=t.each,r=t.explode;e.on("AddEditor",function(e){var t=e.editor;t.on("preInit",function(){function e(e,t){n(t,function(t,n){t&&s.setStyle(e,n,t)}),s.rename(e,"span")}function i(e){s=t.dom,l.convert_fonts_to_spans&&n(s.select("font,u,strike",e.node),function(e){o[e.nodeName.toLowerCase()](s,e)})}var o,a,s,l=t.settings;l.inline_styles&&(a=r(l.font_size_legacy_values),o={font:function(t,n){e(n,{backgroundColor:n.style.backgroundColor,color:n.color,fontFamily:n.face,fontSize:a[parseInt(n.size,10)-1]})},u:function(t,n){e(n,{textDecoration:"underline"})},strike:function(t,n){e(n,{textDecoration:"line-through"})}},t.on("PreProcess SetContent",i))})})}),r(ct,[],function(){return{send:function(e){function t(){!e.async||4==n.readyState||r++>1e4?(e.success&&1e4>r&&200==n.status?e.success.call(e.success_scope,""+n.responseText,n,e):e.error&&e.error.call(e.error_scope,r>1e4?"TIMED_OUT":"GENERAL",n,e),n=null):setTimeout(t,10)}var n,r=0;if(e.scope=e.scope||this,e.success_scope=e.success_scope||e.scope,e.error_scope=e.error_scope||e.scope,e.async=e.async===!1?!1:!0,e.data=e.data||"",n=new XMLHttpRequest){if(n.overrideMimeType&&n.overrideMimeType(e.content_type),n.open(e.type||(e.data?"POST":"GET"),e.url,e.async),e.content_type&&n.setRequestHeader("Content-Type",e.content_type),n.setRequestHeader("X-Requested-With","XMLHttpRequest"),n.send(e.data),!e.async)return t();setTimeout(t,10)}}}}),r(dt,[],function(){function e(t,n){var r,i,o,a;if(n=n||'"',null===t)return"null";if(o=typeof t,"string"==o)return i="\bb t\nn\ff\rr\"\"''\\\\",n+t.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(e,t){return'"'===n&&"'"===e?e:(r=i.indexOf(t),r+1?"\\"+i.charAt(r+1):(e=t.charCodeAt().toString(16),"\\u"+"0000".substring(e.length)+e))})+n;if("object"==o){if(t.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(t)){for(r=0,i="[";r<t.length;r++)i+=(r>0?",":"")+e(t[r],n);return i+"]"}i="{";for(a in t)t.hasOwnProperty(a)&&(i+="function"!=typeof t[a]?(i.length>1?","+n:n)+a+n+":"+e(t[a],n):"");return i+"}"}return""+t}return{serialize:e,parse:function(e){try{return window[String.fromCharCode(101)+"val"]("("+e+")")}catch(t){}}}}),r(ut,[dt,ct,f],function(e,t,n){function r(e){this.settings=i({},e),this.count=0}var i=n.extend;return r.sendRPC=function(e){return(new r).send(e)},r.prototype={send:function(n){var r=n.error,o=n.success;n=i(this.settings,n),n.success=function(t,i){t=e.parse(t),"undefined"==typeof t&&(t={error:"JSON Parse error."}),t.error?r.call(n.error_scope||n.scope,t.error,i):o.call(n.success_scope||n.scope,t.result)},n.error=function(e,t){r&&r.call(n.error_scope||n.scope,e,t)},n.data=e.serialize({id:n.id||"c"+this.count++,method:n.method,params:n.params}),n.content_type="application/json",t.send(n)}},r}),r(ft,[v],function(e){return{callbacks:{},count:0,send:function(n){var r=this,i=e.DOM,o=n.count!==t?n.count:r.count,a="tinymce_jsonp_"+o;r.callbacks[o]=function(e){i.remove(a),delete r.callbacks[o],n.callback(e)},i.add(i.doc.body,"script",{id:a,src:n.url,type:"text/javascript"}),r.count++}}}),r(pt,[],function(){function e(){s=[];for(var e in a)s.push(e);i.length=s.length}function n(){function n(e){var n,r;return r=e!==t?d+e:i.indexOf(",",d),-1===r||r>i.length?null:(n=i.substring(d,r),d=r+1,n)}var r,i,s,d=0;if(a={},c){o.load(l),i=o.getAttribute(l)||"";do{var u=n();if(null===u)break;if(r=n(parseInt(u,32)||0),null!==r){if(u=n(),null===u)break;s=n(parseInt(u,32)||0),r&&(a[r]=s)}}while(null!==r);e()}}function r(){var t,n="";if(c){for(var r in a)t=a[r],n+=(n?",":"")+r.length.toString(32)+","+r+","+t.length.toString(32)+","+t;o.setAttribute(l,n);try{o.save(l)}catch(i){}e()}}var i,o,a,s,l,c;try{if(window.localStorage)return localStorage}catch(d){}return l="tinymce",o=document.documentElement,c=!!o.addBehavior,c&&o.addBehavior("#default#userData"),i={key:function(e){return s[e]},getItem:function(e){return e in a?a[e]:null},setItem:function(e,t){a[e]=""+t,r()},removeItem:function(e){delete a[e],r()},clear:function(){a={},r()}},n(),i}),r(mt,[v,d,y,b,f,h],function(e,t,n,r,i,o){var a=window.tinymce;return a.DOM=e.DOM,a.ScriptLoader=n.ScriptLoader,a.PluginManager=r.PluginManager,a.ThemeManager=r.ThemeManager,a.dom=a.dom||{},a.dom.Event=t.Event,i.each(i,function(e,t){a[t]=e}),i.each("isOpera isWebKit isIE isGecko isMac".split(" "),function(e){a[e]=o[e.substr(2).toLowerCase()]}),{}}),r(ht,[I,f],function(e,t){return e.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(e){this.settings=t.extend({},this.Defaults,e)},preRender:function(e){e.addClass(this.settings.containerClass,"body")},applyClasses:function(e){var t=this,n=t.settings,r,i,o;r=e.items().filter(":visible"),i=n.firstControlClass,o=n.lastControlClass,r.each(function(e){e.removeClass(i).removeClass(o),n.controlClass&&e.addClass(n.controlClass)}),r.eq(0).addClass(i),r.eq(-1).addClass(o)},renderHtml:function(e){var t=this,n=t.settings,r,i="";return r=e.items(),r.eq(0).addClass(n.firstControlClass),r.eq(-1).addClass(n.lastControlClass),r.each(function(e){n.controlClass&&e.addClass(n.controlClass),i+=e.renderHtml()}),i},recalc:function(){},postRender:function(){}})}),r(gt,[ht],function(e){return e.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(e){e.items().filter(":visible").each(function(e){var t=e.settings;e.layoutRect({x:t.x,y:t.y,w:t.w,h:t.h}),e.recalc&&e.recalc()})},renderHtml:function(e){return'<div id="'+e._id+'-absend" class="'+e.classPrefix+'abs-end"></div>'+this._super(e)}})}),r(vt,[V,G],function(e,t){return e.extend({Mixins:[t],Defaults:{classes:"widget tooltip tooltip-n"},text:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t._rendered&&(t.getEl().lastChild.innerHTML=t.encode(e)),t):t._value},renderHtml:function(){var e=this,t=e.classPrefix;return'<div id="'+e._id+'" class="'+e.classes()+'" role="presentation"><div class="'+t+'tooltip-arrow"></div><div class="'+t+'tooltip-inner">'+e.encode(e._text)+"</div></div>"},repaint:function(){var e=this,t,n;t=e.getEl().style,n=e._layoutRect,t.left=n.x+"px",t.top=n.y+"px",t.zIndex=131070}})}),r(yt,[V,vt],function(e,t){var n,r=e.extend({init:function(e){var t=this;t._super(e),t.canFocus=!0,e.tooltip&&r.tooltips!==!1&&(t.on("mouseenter",function(n){var r=t.tooltip().moveTo(-65535);if(n.control==t){var i=r.text(e.tooltip).show().testMoveRel(t.getEl(),["bc-tc","bc-tl","bc-tr"]);r.toggleClass("tooltip-n","bc-tc"==i),r.toggleClass("tooltip-nw","bc-tl"==i),r.toggleClass("tooltip-ne","bc-tr"==i),r.moveRel(t.getEl(),i)}else r.hide()}),t.on("mouseleave mousedown click",function(){t.tooltip().hide()})),t.aria("label",e.ariaLabel||e.tooltip)},tooltip:function(){return n||(n=new t({type:"tooltip"}),n.renderTo()),n},active:function(e){var t=this,n;return e!==n&&(t.aria("pressed",e),t.toggleClass("active",e)),t._super(e)},disabled:function(e){var t=this,n;return e!==n&&(t.aria("disabled",e),t.toggleClass("disabled",e)),t._super(e)},postRender:function(){var e=this,t=e.settings;e._rendered=!0,e._super(),e.parent()||!t.width&&!t.height||(e.initLayoutRect(),e.repaint()),t.autofocus&&e.focus()},remove:function(){this._super(),n&&(n.remove(),n=null)}});return r}),r(bt,[yt],function(e){return e.extend({Defaults:{classes:"widget btn",role:"button"},init:function(e){var t=this,n;t.on("click mousedown",function(e){e.preventDefault()}),t._super(e),n=e.size,e.subtype&&t.addClass(e.subtype),n&&t.addClass("btn-"+n)},icon:function(e){var t=this,n=t.classPrefix;if("undefined"==typeof e)return t.settings.icon;if(t.settings.icon=e,e=e?n+"ico "+n+"i-"+t.settings.icon:"",t._rendered){var r=t.getEl().firstChild,i=r.getElementsByTagName("i")[0];e?(i&&i==r.firstChild||(i=document.createElement("i"),r.insertBefore(i,r.firstChild)),i.className=e):i&&r.removeChild(i),t.text(t._text)}return t},repaint:function(){var e=this.getEl().firstChild.style;e.width=e.height="100%",this._super()},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon,i="";return e.settings.image&&(r="none",i=" style=\"background-image: url('"+e.settings.image+"')\""),r=e.settings.icon?n+"ico "+n+"i-"+r:"",'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1" aria-labelledby="'+t+'"><button role="presentation" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+i+"></i>":"")+(e._text?(r?"\xa0":"")+e.encode(e._text):"")+"</button></div>"}})}),r(Ct,[j],function(e){return e.extend({Defaults:{defaultType:"button",role:"group"},renderHtml:function(){var e=this,t=e._layout;return e.addClass("btn-group"),e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'"><div id="'+e._id+'-body">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}})}),r(xt,[yt],function(e){return e.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(e){var t=this;t._super(e),t.on("click mousedown",function(e){e.preventDefault()}),t.on("click",function(e){e.preventDefault(),t.disabled()||t.checked(!t.checked())}),t.checked(t.settings.checked)},checked:function(e){var t=this;return"undefined"!=typeof e?(e?t.addClass("checked"):t.removeClass("checked"),t._checked=e,t.aria("checked",e),t):t._checked},value:function(e){return this.checked(e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix;return'<div id="'+t+'" class="'+e.classes()+'" unselectable="on" aria-labelledby="'+t+'-al" tabindex="-1"><i class="'+n+"ico "+n+'i-checkbox"></i><span id="'+t+'-al" class="'+n+'label">'+e.encode(e._text)+"</span></div>"}})}),r(wt,[bt,J],function(e,t){return e.extend({showPanel:function(){var e=this,n=e.settings;if(e.active(!0),e.panel)e.panel.show();else{var r=n.panel;r.type&&(r={layout:"grid",items:r}),r.role=r.role||"dialog",r.popover=!0,r.autohide=!0,r.ariaRoot=!0,e.panel=new t(r).on("hide",function(){e.active(!1)}).on("cancel",function(t){t.stopPropagation(),e.focus(),e.hidePanel()}).parent(e).renderTo(e.getContainerElm()),e.panel.fire("show"),e.panel.reflow()}e.panel.moveRel(e.getEl(),n.popoverAlign||(e.isRtl()?["bc-tr","bc-tc"]:["bc-tl","bc-tc"]))},hidePanel:function(){var e=this;e.panel&&e.panel.hide()},postRender:function(){var e=this;return e.aria("haspopup",!0),e.on("click",function(t){t.control===e&&(e.panel&&e.panel.visible()?e.hidePanel():(e.showPanel(),e.panel.focus(!!t.aria)))}),e._super()}})}),r(_t,[wt,v],function(e,t){var n=t.DOM;return e.extend({init:function(e){this._super(e),this.addClass("colorbutton")},color:function(e){return e?(this._color=e,this.getEl("preview").style.backgroundColor=e,this):this._color},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"",i=e.settings.image?" style=\"background-image: url('"+e.settings.image+"')\"":"";return'<div id="'+t+'" class="'+e.classes()+'" role="button" tabindex="-1" aria-haspopup="true"><button role="presentation" hidefocus type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+i+"></i>":"")+'<span id="'+t+'-preview" class="'+n+'preview"></span>'+(e._text?(r?" ":"")+e._text:"")+'</button><button type="button" class="'+n+'open" hidefocus tabindex="-1"> <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(r){r.aria&&"down"==r.aria.key||r.control!=e||n.getParent(r.target,"."+e.classPrefix+"open")||(r.stopImmediatePropagation(),t.call(e,r))}),delete e.settings.onclick,e._super()}})}),r(Nt,[yt,U,W],function(e,t,n){return e.extend({init:function(e){var t=this;t._super(e),t.addClass("combobox"),t.subinput=!0,t.ariaTarget="inp",e=t.settings,e.menu=e.menu||e.values,e.menu&&(e.icon="caret"),t.on("click",function(n){for(var r=n.target,i=t.getEl();r&&r!=i;)r.id&&-1!=r.id.indexOf("-open")&&(t.fire("action"),e.menu&&(t.showMenu(),n.aria&&t.menu.items()[0].focus())),r=r.parentNode}),t.on("keydown",function(e){"INPUT"==e.target.nodeName&&13==e.keyCode&&t.parents().reverse().each(function(n){return e.preventDefault(),t.fire("change"),n.hasEventListeners("submit")&&n.toJSON?(n.fire("submit",{data:n.toJSON()}),!1):void 0})}),e.placeholder&&(t.addClass("placeholder"),t.on("focusin",function(){t._hasOnChange||(n.on(t.getEl("inp"),"change",function(){t.fire("change")}),t._hasOnChange=!0),t.hasClass("placeholder")&&(t.getEl("inp").value="",t.removeClass("placeholder"))}),t.on("focusout",function(){0===t.value().length&&(t.getEl("inp").value=e.placeholder,t.addClass("placeholder")) +}))},showMenu:function(){var e=this,n=e.settings,r;e.menu||(r=n.menu||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(e.getContainerElm()),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control===e.menu&&e.focus()}),e.menu.on("show hide",function(t){t.control.items().each(function(t){t.active(t.value()==e.value())})}).fire("show"),e.menu.on("select",function(t){e.value(t.control.value())}),e.on("focusin",function(t){"INPUT"==t.target.tagName&&e.menu.hide()}),e.aria("expanded",!0)),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},value:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t.removeClass("placeholder"),t._rendered&&(t.getEl("inp").value=e),t):t._rendered?(e=t.getEl("inp").value,e!=t.settings.placeholder?e:""):t._value},disabled:function(e){var t=this;return t._rendered&&"undefined"!=typeof e&&(t.getEl("inp").disabled=e),t._super(e)},focus:function(){this.getEl("inp").focus()},repaint:function(){var e=this,t=e.getEl(),r=e.getEl("open"),i=e.layoutRect(),o,a;o=r?i.w-n.getSize(r).width-10:i.w-10;var s=document;return s.all&&(!s.documentMode||s.documentMode<=8)&&(a=e.layoutRect().h-2+"px"),n.css(t.firstChild,{width:o,lineHeight:a}),e._super(),e},postRender:function(){var e=this;return n.on(this.getEl("inp"),"change",function(){e.fire("change")}),e._super()},remove:function(){n.off(this.getEl("inp")),this._super()},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.classPrefix,i=n.value||n.placeholder||"",o,a,s="",l="";return"spellcheck"in n&&(l+=' spellcheck="'+n.spellcheck+'"'),n.maxLength&&(l+=' maxlength="'+n.maxLength+'"'),n.size&&(l+=' size="'+n.size+'"'),n.subtype&&(l+=' type="'+n.subtype+'"'),e.disabled()&&(l+=' disabled="disabled"'),o=n.icon,o&&"caret"!=o&&(o=r+"ico "+r+"i-"+n.icon),a=e._text,(o||a)&&(s='<div id="'+t+'-open" class="'+r+"btn "+r+'open" tabIndex="-1" role="button"><button id="'+t+'-action" type="button" hidefocus tabindex="-1">'+("caret"!=o?'<i class="'+o+'"></i>':'<i class="'+r+'caret"></i>')+(a?(o?" ":"")+a:"")+"</button></div>",e.addClass("has-open")),'<div id="'+t+'" class="'+e.classes()+'"><input id="'+t+'-inp" class="'+r+"textbox "+r+'placeholder" value="'+i+'" hidefocus="true"'+l+">"+s+"</div>"}})}),r(Et,[yt],function(e){return e.extend({init:function(e){var t=this;e.delimiter||(e.delimiter="\xbb"),t._super(e),t.addClass("path"),t.canFocus=!0,t.on("click",function(e){var n,r=e.target;(n=r.getAttribute("data-index"))&&t.fire("select",{value:t.data()[n],index:n})})},focus:function(){var e=this;return e.getEl().firstChild.focus(),e},data:function(e){var t=this;return"undefined"!=typeof e?(t._data=e,t.update(),t):t._data},update:function(){this.innerHtml(this._getPathHtml())},postRender:function(){var e=this;e._super(),e.data(e.settings.data)},renderHtml:function(){var e=this;return'<div id="'+e._id+'" class="'+e.classes()+'">'+e._getPathHtml()+"</div>"},_getPathHtml:function(){var e=this,t=e._data||[],n,r,i="",o=e.classPrefix;for(n=0,r=t.length;r>n;n++)i+=(n>0?'<div class="'+o+'divider" aria-hidden="true"> '+e.settings.delimiter+" </div>":"")+'<div role="button" class="'+o+"path-item"+(n==r-1?" "+o+"last":"")+'" data-index="'+n+'" tabindex="-1" id="'+e._id+"-"+n+'" aria-level="'+n+'">'+t[n].name+"</div>";return i||(i='<div class="'+o+'path-item"> </div>'),i}})}),r(kt,[Et,st],function(e,t){return e.extend({postRender:function(){function e(e){if(1===e.nodeType){if("BR"==e.nodeName||e.getAttribute("data-mce-bogus"))return!0;if("bookmark"===e.getAttribute("data-mce-type"))return!0}return!1}var n=this,r=t.activeEditor;return n.on("select",function(t){var n=[],i,o=r.getBody();for(r.focus(),i=r.selection.getStart();i&&i!=o;)e(i)||n.push(i),i=i.parentNode;r.selection.select(n[n.length-1-t.index]),r.nodeChanged()}),r.on("nodeChange",function(t){for(var i=[],o=t.parents,a=o.length;a--;)if(1==o[a].nodeType&&!e(o[a])){var s=r.fire("ResolveName",{name:o[a].nodeName.toLowerCase(),target:o[a]});i.push({name:s.name})}n.data(i)}),n._super()}})}),r(St,[j],function(e){return e.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.addClass("formitem"),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'" hideFocus="1" tabIndex="-1">'+(e.settings.title?'<div id="'+e._id+'-title" class="'+n+'title">'+e.settings.title+"</div>":"")+'<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}})}),r(Tt,[j,St],function(e,t){return e.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:20,labelGap:30,spacing:10,callbacks:{submit:function(){this.submit()}}},preRender:function(){var e=this,n=e.items();n.each(function(n){var r,i=n.settings.label;i&&(r=new t({layout:"flex",autoResize:"overflow",defaults:{flex:1},items:[{type:"label",id:n._id+"-l",text:i,flex:0,forId:n._id,disabled:n.disabled()}]}),r.type="formitem",n.aria("labelledby",n._id+"-l"),"undefined"==typeof n.settings.flex&&(n.settings.flex=1),e.replace(n,r),r.add(n))})},recalcLabels:function(){var e=this,t=0,n=[],r,i;if(e.settings.labelGapCalc!==!1)for(e.items().filter("formitem").each(function(e){var r=e.items()[0],i=r.getEl().clientWidth;t=i>t?i:t,n.push(r)}),i=e.settings.labelGap||0,r=n.length;r--;)n[r].settings.minWidth=t+i},visible:function(e){var t=this._super(e);return e===!0&&this._rendered&&this.recalcLabels(),t},submit:function(){return this.fire("submit",{data:this.toJSON()})},postRender:function(){var e=this;e._super(),e.recalcLabels(),e.fromJSON(e.settings.data)}})}),r(Rt,[Tt],function(e){return e.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column",align:"stretch",flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.preRender(),t.preRender(e),'<fieldset id="'+e._id+'" class="'+e.classes()+'" hideFocus="1" tabIndex="-1">'+(e.settings.title?'<legend id="'+e._id+'-title" class="'+n+'fieldset-title">'+e.settings.title+"</legend>":"")+'<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></fieldset>"}})}),r(At,[Nt],function(e){return e.extend({init:function(e){var t=this,n=tinymce.activeEditor,r;e.spellcheck=!1,r=n.settings.file_browser_callback,r&&(e.icon="browse",e.onaction=function(){r(t.getEl("inp").id,t.getEl("inp").value,e.filetype,window)}),t._super(e)}})}),r(Bt,[gt],function(e){return e.extend({recalc:function(e){var t=e.layoutRect(),n=e.paddingBox();e.items().filter(":visible").each(function(e){e.layoutRect({x:n.left,y:n.top,w:t.innerW-n.right-n.left,h:t.innerH-n.top-n.bottom}),e.recalc&&e.recalc()})}})}),r(Lt,[gt],function(e){return e.extend({recalc:function(e){var t,n,r,i,o,a,s,l,c,d,u,f,p,m,h,g,v=[],y,b,C,x,w,_,N,E,k,S,T,R,A,B,L,D,M,H,P,O,I,F,z=Math.max,W=Math.min;for(r=e.items().filter(":visible"),i=e.layoutRect(),o=e._paddingBox,a=e.settings,f=e.isRtl()?a.direction||"row-reversed":a.direction,s=a.align,l=e.isRtl()?a.pack||"end":a.pack,c=a.spacing||0,("row-reversed"==f||"column-reverse"==f)&&(r=r.set(r.toArray().reverse()),f=f.split("-")[0]),"column"==f?(k="y",N="h",E="minH",S="maxH",R="innerH",T="top",A="deltaH",B="contentH",P="left",M="w",L="x",D="innerW",H="minW",O="right",I="deltaW",F="contentW"):(k="x",N="w",E="minW",S="maxW",R="innerW",T="left",A="deltaW",B="contentW",P="top",M="h",L="y",D="innerH",H="minH",O="bottom",I="deltaH",F="contentH"),u=i[R]-o[T]-o[T],_=d=0,t=0,n=r.length;n>t;t++)p=r[t],m=p.layoutRect(),h=p.settings,g=h.flex,u-=n-1>t?c:0,g>0&&(d+=g,m[S]&&v.push(p),m.flex=g),u-=m[E],y=o[P]+m[H]+o[O],y>_&&(_=y);if(x={},x[E]=0>u?i[E]-u+i[A]:i[R]-u+i[A],x[H]=_+i[I],x[B]=i[R]-u,x[F]=_,x.minW=W(x.minW,i.maxW),x.minH=W(x.minH,i.maxH),x.minW=z(x.minW,i.startMinWidth),x.minH=z(x.minH,i.startMinHeight),!i.autoResize||x.minW==i.minW&&x.minH==i.minH){for(C=u/d,t=0,n=v.length;n>t;t++)p=v[t],m=p.layoutRect(),b=m[S],y=m[E]+m.flex*C,y>b?(u-=m[S]-m[E],d-=m.flex,m.flex=0,m.maxFlexSize=b):m.maxFlexSize=0;for(C=u/d,w=o[T],x={},0===d&&("end"==l?w=u+o[T]:"center"==l?(w=Math.round(i[R]/2-(i[R]-u)/2)+o[T],0>w&&(w=o[T])):"justify"==l&&(w=o[T],c=Math.floor(u/(r.length-1)))),x[L]=o[P],t=0,n=r.length;n>t;t++)p=r[t],m=p.layoutRect(),y=m.maxFlexSize||m[E],"center"===s?x[L]=Math.round(i[D]/2-m[M]/2):"stretch"===s?(x[M]=z(m[H]||0,i[D]-o[P]-o[O]),x[L]=o[P]):"end"===s&&(x[L]=i[D]-m[M]-o.top),m.flex>0&&(y+=m.flex*C),x[N]=y,x[k]=w,p.layoutRect(x),p.recalc&&p.recalc(),w+=y+c}else if(x.w=x.minW,x.h=x.minH,e.layoutRect(x),this.recalc(e),null===e._lastRect){var V=e.parent();V&&(V._lastRect=null,V.recalc())}}})}),r(Dt,[ht],function(e){return e.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(e){e.items().filter(":visible").each(function(e){e.recalc&&e.recalc()})}})}),r(Mt,[V,yt,J,f,st,h],function(e,t,n,r,i,o){function a(e){function t(t){function n(e){return e.replace(/%(\w+)/g,"")}var r,i,o=e.dom,a="",l,c;return c=e.settings.preview_styles,c===!1?"":(c||(c="font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow"),(t=e.formatter.get(t))?(t=t[0],r=t.block||t.inline||"span",i=o.create(r),s(t.styles,function(e,t){e=n(e),e&&o.setStyle(i,t,e)}),s(t.attributes,function(e,t){e=n(e),e&&o.setAttrib(i,t,e)}),s(t.classes,function(e){e=n(e),o.hasClass(i,e)||o.addClass(i,e)}),e.fire("PreviewFormats"),o.setStyles(i,{position:"absolute",left:-65535}),e.getBody().appendChild(i),l=o.getStyle(e.getBody(),"fontSize",!0),l=/px$/.test(l)?parseInt(l,10):0,s(c.split(" "),function(t){var n=o.getStyle(i,t,!0);if(!("background-color"==t&&/transparent|rgba\s*\([^)]+,\s*0\)/.test(n)&&(n=o.getStyle(e.getBody(),t,!0),"#ffffff"==o.toHex(n).toLowerCase())||"color"==t&&"#000000"==o.toHex(n).toLowerCase())){if("font-size"==t&&/em|%$/.test(n)){if(0===l)return;n=parseFloat(n,10)/(/%$/.test(n)?100:1),n=n*l+"px"}"border"==t&&n&&(a+="padding:0 2px;"),a+=t+":"+n+";"}}),e.fire("AfterPreviewFormats"),o.remove(i),a):void 0)}function r(t,n){return function(){var r=this;e.on("nodeChange",function(i){var o=e.formatter,a=null;s(i.parents,function(e){return s(t,function(t){return n?o.matchNode(e,n,{value:t.value})&&(a=t.value):o.matchNode(e,t.value)&&(a=t.value),a?!1:void 0}),a?!1:void 0}),r.value(a)})}}function i(e){e=e.split(";");for(var t=e.length;t--;)e[t]=e[t].split("=");return e}function o(){function n(e){var t=[];if(e)return s(e,function(e){var r={text:e.title,icon:e.icon};if(e.items)r.menu=n(e.items);else{var a=e.format||"custom"+i++;e.format||(e.name=a,o.push(e)),r.format=a}t.push(r)}),t}function r(){var t;return t=n(e.settings.style_formats_merge?e.settings.style_formats?a.concat(e.settings.style_formats):a:e.settings.style_formats||a)}var i=0,o=[],a=[{title:"Headers",items:[{title:"Header 1",format:"h1"},{title:"Header 2",format:"h2"},{title:"Header 3",format:"h3"},{title:"Header 4",format:"h4"},{title:"Header 5",format:"h5"},{title:"Header 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}];return e.on("init",function(){s(o,function(t){e.formatter.register(t.name,t)})}),{type:"menu",items:r(),onPostRender:function(t){e.fire("renderFormatsMenu",{control:t.control})},itemDefaults:{preview:!0,textStyle:function(){return this.settings.format?t(this.settings.format):void 0},onPostRender:function(){var t=this,n=this.settings.format;n&&t.parent().on("show",function(){t.disabled(!e.formatter.canApply(n)),t.active(e.formatter.match(n))})},onclick:function(){this.settings.format&&f(this.settings.format)}}}}function a(){return e.undoManager?e.undoManager.hasUndo():!1}function l(){return e.undoManager?e.undoManager.hasRedo():!1}function c(){var t=this;t.disabled(!a()),e.on("Undo Redo AddUndo TypingUndo",function(){t.disabled(!a())})}function d(){var t=this;t.disabled(!l()),e.on("Undo Redo AddUndo TypingUndo",function(){t.disabled(!l())})}function u(){var t=this;e.on("VisualAid",function(e){t.active(e.hasVisual)}),t.active(e.hasVisual)}function f(t){t.control&&(t=t.control.value()),t&&e.execCommand("mceToggleFormat",!1,t)}var p;p=o(),s({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(t,n){e.addButton(n,{tooltip:t,onPostRender:function(){var t=this;e.formatter?e.formatter.formatChanged(n,function(e){t.active(e)}):e.on("init",function(){e.formatter.formatChanged(n,function(e){t.active(e)})})},onclick:function(){f(n)}})}),s({outdent:["Decrease indent","Outdent"],indent:["Increase indent","Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste","Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],hr:["Insert horizontal rule","InsertHorizontalRule"],removeformat:["Clear formatting","RemoveFormat"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:["New document","mceNewDocument"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1]})}),s({blockquote:["Blockquote","mceBlockQuote"],numlist:["Numbered list","InsertOrderedList"],bullist:["Bullet list","InsertUnorderedList"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1],onPostRender:function(){var t=this;e.formatter?e.formatter.formatChanged(n,function(e){t.active(e)}):e.on("init",function(){e.formatter.formatChanged(n,function(e){t.active(e)})})}})}),e.addButton("undo",{tooltip:"Undo",onPostRender:c,cmd:"undo"}),e.addButton("redo",{tooltip:"Redo",onPostRender:d,cmd:"redo"}),e.addMenuItem("newdocument",{text:"New document",shortcut:"Ctrl+N",icon:"newdocument",cmd:"mceNewDocument"}),e.addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Ctrl+Z",onPostRender:c,cmd:"undo"}),e.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Ctrl+Y",onPostRender:d,cmd:"redo"}),e.addMenuItem("visualaid",{text:"Visual aids",selectable:!0,onPostRender:u,cmd:"mceToggleVisualAid"}),s({cut:["Cut","Cut","Ctrl+X"],copy:["Copy","Copy","Ctrl+C"],paste:["Paste","Paste","Ctrl+V"],selectall:["Select all","SelectAll","Ctrl+A"],bold:["Bold","Bold","Ctrl+B"],italic:["Italic","Italic","Ctrl+I"],underline:["Underline","Underline"],strikethrough:["Strikethrough","Strikethrough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"]},function(t,n){e.addMenuItem(n,{text:t[0],icon:n,shortcut:t[2],cmd:t[1]})}),e.on("mousedown",function(){n.hideAll()}),e.addButton("styleselect",{type:"menubutton",text:"Formats",menu:p}),e.addButton("formatselect",function(){var n=[],o=i(e.settings.block_formats||"Paragraph=p;Address=address;Pre=pre;Header 1=h1;Header 2=h2;Header 3=h3;Header 4=h4;Header 5=h5;Header 6=h6");return s(o,function(e){n.push({text:e[0],value:e[1],textStyle:function(){return t(e[1])}})}),{type:"listbox",text:o[0][0],values:n,fixedWidth:!0,onselect:f,onPostRender:r(n)}}),e.addButton("fontselect",function(){var t="Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats",n=[],o=i(e.settings.font_formats||t);return s(o,function(e){n.push({text:{raw:e[0]},value:e[1],textStyle:-1==e[1].indexOf("dings")?"font-family:"+e[1]:""})}),{type:"listbox",text:"Font Family",tooltip:"Font Family",values:n,fixedWidth:!0,onPostRender:r(n,"fontname"),onselect:function(t){t.control.settings.value&&e.execCommand("FontName",!1,t.control.settings.value)}}}),e.addButton("fontsizeselect",function(){var t=[],n="8pt 10pt 12pt 14pt 18pt 24pt 36pt",i=e.settings.fontsize_formats||n;return s(i.split(" "),function(e){t.push({text:e,value:e})}),{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:t,fixedWidth:!0,onPostRender:r(t,"fontsize"),onclick:function(t){t.control.settings.value&&e.execCommand("FontSize",!1,t.control.settings.value)}}}),e.addMenuItem("formats",{text:"Formats",menu:p})}var s=r.each;i.on("AddEditor",function(t){t.editor.rtl&&(e.rtl=!0),a(t.editor)}),e.translate=function(e){return i.translate(e)},t.tooltips=!o.iOS}),r(Ht,[gt],function(e){return e.extend({recalc:function(e){var t=e.settings,n,r,i,o,a,s,l,c,d,u,f,p,m,h,g,v,y,b,C,x,w,_,N=[],E=[],k,S,T,R;for(t=e.settings,i=e.items().filter(":visible"),o=e.layoutRect(),r=t.columns||Math.ceil(Math.sqrt(i.length)),n=Math.ceil(i.length/r),y=t.spacingH||t.spacing||0,b=t.spacingV||t.spacing||0,C=t.alignH||t.align,x=t.alignV||t.align,g=e._paddingBox,C&&"string"==typeof C&&(C=[C]),x&&"string"==typeof x&&(x=[x]),u=0;r>u;u++)N.push(0);for(f=0;n>f;f++)E.push(0);for(f=0;n>f;f++)for(u=0;r>u&&(d=i[f*r+u],d);u++)c=d.layoutRect(),k=c.minW,S=c.minH,N[u]=k>N[u]?k:N[u],E[f]=S>E[f]?S:E[f];for(T=o.innerW-g.left-g.right,w=0,u=0;r>u;u++)w+=N[u]+(u>0?y:0),T-=(u>0?y:0)+N[u];for(R=o.innerH-g.top-g.bottom,_=0,f=0;n>f;f++)_+=E[f]+(f>0?b:0),R-=(f>0?b:0)+E[f];if(w+=g.left+g.right,_+=g.top+g.bottom,l={},l.minW=w+(o.w-o.innerW),l.minH=_+(o.h-o.innerH),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH,l.minW=Math.min(l.minW,o.maxW),l.minH=Math.min(l.minH,o.maxH),l.minW=Math.max(l.minW,o.startMinWidth),l.minH=Math.max(l.minH,o.startMinHeight),!o.autoResize||l.minW==o.minW&&l.minH==o.minH){o.autoResize&&(l=e.layoutRect(l),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH);var A;A="start"==t.packV?0:R>0?Math.floor(R/n):0;var B=0,L=t.flexWidths;if(L)for(u=0;u<L.length;u++)B+=L[u];else B=r;var D=T/B;for(u=0;r>u;u++)N[u]+=L?L[u]*D:D;for(m=g.top,f=0;n>f;f++){for(p=g.left,s=E[f]+A,u=0;r>u&&(d=i[f*r+u],d);u++)h=d.settings,c=d.layoutRect(),a=Math.max(N[u],c.startMinWidth),c.x=p,c.y=m,v=h.alignH||(C?C[u]||C[0]:null),"center"==v?c.x=p+a/2-c.w/2:"right"==v?c.x=p+a-c.w:"stretch"==v&&(c.w=a),v=h.alignV||(x?x[u]||x[0]:null),"center"==v?c.y=m+s/2-c.h/2:"bottom"==v?c.y=m+s-c.h:"stretch"==v&&(c.h=s),d.layoutRect(c),p+=a+y,d.recalc&&d.recalc();m+=s+b}}else if(l.w=l.minW,l.h=l.minH,e.layoutRect(l),this.recalc(e),null===e._lastRect){var M=e.parent();M&&(M._lastRect=null,M.recalc())}}})}),r(Pt,[yt],function(e){return e.extend({renderHtml:function(){var e=this;return e.addClass("iframe"),e.canFocus=!1,'<iframe id="'+e._id+'" class="'+e.classes()+'" tabindex="-1" src="'+(e.settings.url||"javascript:''")+'" frameborder="0"></iframe>'},src:function(e){this.getEl().src=e},html:function(e,t){var n=this,r=this.getEl().contentWindow.document.body;return r?(r.innerHTML=e,t&&t()):setTimeout(function(){n.html(e)},0),this}})}),r(Ot,[yt,W],function(e,t){return e.extend({init:function(e){var t=this;t._super(e),t.addClass("widget"),t.addClass("label"),t.canFocus=!1,e.multiline&&t.addClass("autoscroll"),e.strong&&t.addClass("strong")},initLayoutRect:function(){var e=this,n=e._super();if(e.settings.multiline){var r=t.getSize(e.getEl());r.width>n.maxW&&(n.minW=n.maxW,e.addClass("multiline")),e.getEl().style.width=n.minW+"px",n.startMinH=n.h=n.minH=Math.min(n.maxH,t.getSize(e.getEl()).height)}return n},repaint:function(){var e=this;return e.settings.multiline||(e.getEl().style.lineHeight=e.layoutRect().h+"px"),e._super()},text:function(e){var t=this;return t._rendered&&e&&this.innerHtml(t.encode(e)),t._super(e)},renderHtml:function(){var e=this,t=e.settings.forId;return'<label id="'+e._id+'" class="'+e.classes()+'"'+(t?' for="'+t+'"':"")+">"+e.encode(e._text)+"</label>"}})}),r(It,[j],function(e){return e.extend({Defaults:{role:"toolbar",layout:"flow"},init:function(e){var t=this;t._super(e),t.addClass("toolbar")},postRender:function(){var e=this;return e.items().addClass("toolbar-item"),e._super()}})}),r(Ft,[It],function(e){return e.extend({Defaults:{role:"menubar",containerCls:"menubar",ariaRoot:!0,defaults:{type:"menubutton"}}})}),r(zt,[bt,U,Ft],function(e,t,n){function r(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1}var i=e.extend({init:function(e){var t=this;t._renderOpen=!0,t._super(e),t.addClass("menubtn"),e.fixedWidth&&t.addClass("fixed-width"),t.aria("haspopup",!0),t.hasPopup=!0},showMenu:function(){var e=this,n=e.settings,r;return e.menu&&e.menu.visible()?e.hideMenu():(e.menu||(r=n.menu||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control.parent()===e.menu&&(t.stopPropagation(),e.focus(),e.hideMenu())}),e.menu.on("select",function(){e.focus()}),e.menu.on("show hide",function(t){t.control==e.menu&&e.activeMenu("show"==t.type),e.aria("expanded","show"==t.type)}).fire("show")),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),void e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"]))},hideMenu:function(){var e=this;e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide())},activeMenu:function(e){this.toggleClass("active",e)},renderHtml:function(){var e=this,t=e._id,r=e.classPrefix,i=e.settings.icon?r+"ico "+r+"i-"+e.settings.icon:"";return e.aria("role",e.parent()instanceof n?"menuitem":"button"),'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1" aria-labelledby="'+t+'"><button id="'+t+'-open" role="presentation" type="button" tabindex="-1">'+(i?'<i class="'+i+'"></i>':"")+"<span>"+(e._text?(i?"\xa0":"")+e.encode(e._text):"")+'</span> <i class="'+r+'caret"></i></button></div>'},postRender:function(){var e=this;return e.on("click",function(t){t.control===e&&r(t.target,e.getEl())&&(e.showMenu(),t.aria&&e.menu.items()[0].focus())}),e.on("mouseenter",function(t){var n=t.control,r=e.parent(),o;n&&r&&n instanceof i&&n.parent()==r&&(r.items().filter("MenuButton").each(function(e){e.hideMenu&&e!=n&&(e.menu&&e.menu.visible()&&(o=!0),e.hideMenu())}),o&&(n.focus(),n.showMenu()))}),e._super()},text:function(e){var t=this,n,r;if(t._rendered)for(r=t.getEl("open").getElementsByTagName("span"),n=0;n<r.length;n++)r[n].innerHTML=(t.settings.icon&&e?"\xa0":"")+t.encode(e);return this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}});return i}),r(Wt,[zt],function(e){return e.extend({init:function(e){var t=this,n,r,i,o,a;if(t._values=n=e.values,n){for(r=0;r<n.length;r++)if(i=n[r].selected||e.value===n[r].value){o=o||n[r].text,t._value=n[r].value;break}!i&&n.length>0&&(o=n[0].text,t._value=n[0].value),e.menu=n}e.text=e.text||o||n[0].text,t._super(e),t.addClass("listbox"),t.on("select",function(n){var r=n.control;a&&(n.lastControl=a),e.multiple?r.active(!r.active()):t.value(n.control.settings.value),a=r})},value:function(e){function t(e,n){e.items().each(function(e){r=e.value()===n,r&&(i=i||e.text()),e.active(r),e.menu&&t(e.menu,n)})}var n=this,r,i,o,a;if("undefined"!=typeof e){if(n.menu)t(n.menu,e);else for(o=n.settings.menu,a=0;a<o.length;a++)r=o[a].value==e,r&&(i=i||o[a].text),o[a].active=r;n.text(i||this.settings.text)}return n._super(e)}})}),r(Vt,[yt,U,h],function(e,t,n){return e.extend({Defaults:{border:0,role:"menuitem"},init:function(e){var t=this;t.hasPopup=!0,t._super(e),e=t.settings,t.addClass("menu-item"),e.menu&&t.addClass("menu-item-expand"),e.preview&&t.addClass("menu-item-preview"),("-"===t._text||"|"===t._text)&&(t.addClass("menu-item-sep"),t.aria("role","separator"),t._text="-"),e.selectable&&(t.aria("role","menuitemcheckbox"),t.addClass("menu-item-checkbox"),e.icon="selected"),e.preview||e.selectable||t.addClass("menu-item-normal"),t.on("mousedown",function(e){e.preventDefault()}),e.menu&&t.aria("haspopup",!0)},hasMenus:function(){return!!this.settings.menu},showMenu:function(){var e=this,n=e.settings,r,i=e.parent();if(i.items().each(function(t){t!==e&&t.hideMenu()}),n.menu){r=e.menu,r?r.show():(r=n.menu,r.length?r={type:"menu",items:r}:r.type=r.type||"menu",i.settings.itemDefaults&&(r.itemDefaults=i.settings.itemDefaults),r=e.menu=t.create(r).parent(e).renderTo(),r.reflow(),r.fire("show"),r.on("cancel",function(t){t.stopPropagation(),e.focus(),r.hide()}),r.on("hide",function(t){t.control===r&&e.removeClass("selected")}),r.submenu=!0),r._parentMenu=i,r.addClass("menu-sub");var o=r.testMoveRel(e.getEl(),e.isRtl()?["tl-tr","bl-br","tr-tl","br-bl"]:["tr-tl","br-bl","tl-tr","bl-br"]);r.moveRel(e.getEl(),o),r.rel=o,o="menu-sub-"+o,r.removeClass(r._lastRel),r.addClass(o),r._lastRel=o,e.addClass("selected"),e.aria("expanded",!0)}},hideMenu:function(){var e=this;return e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide(),e.aria("expanded",!1)),e},renderHtml:function(){var e=this,t=e._id,r=e.settings,i=e.classPrefix,o=e.encode(e._text),a=e.settings.icon,s="",l=r.shortcut;return a&&e.parent().addClass("menu-has-icons"),r.image&&(a="none",s=" style=\"background-image: url('"+r.image+"')\""),l&&n.mac&&(l=l.replace(/ctrl\+alt\+/i,"⌥⌘"),l=l.replace(/ctrl\+/i,"⌘"),l=l.replace(/alt\+/i,"⌥"),l=l.replace(/shift\+/i,"⇧")),a=i+"ico "+i+"i-"+(e.settings.icon||"none"),'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1">'+("-"!==o?'<i class="'+a+'"'+s+"></i> ":"")+("-"!==o?'<span id="'+t+'-text" class="'+i+'text">'+o+"</span>":"")+(l?'<div id="'+t+'-shortcut" class="'+i+'menu-shortcut">'+l+"</div>":"")+(r.menu?'<div class="'+i+'caret"></div>':"")+"</div>"},postRender:function(){var e=this,t=e.settings,n=t.textStyle;if("function"==typeof n&&(n=n.call(this)),n){var r=e.getEl("text");r&&r.setAttribute("style",n)}return e.on("mouseenter click",function(n){n.control===e&&(t.menu||"click"!==n.type?(e.showMenu(),n.aria&&e.menu.focus(!0)):(e.fire("select"),e.parent().hideAll()))}),e._super(),e},active:function(e){return"undefined"!=typeof e&&this.aria("checked",e),this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}})}),r(Ut,[J,Vt,f],function(e,t,n){var r=e.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"application",bodyRole:"menu",ariaRoot:!0},init:function(e){var t=this;if(e.autohide=!0,e.constrainToViewport=!0,e.itemDefaults)for(var r=e.items,i=r.length;i--;)r[i]=n.extend({},e.itemDefaults,r[i]);t._super(e),t.addClass("menu")},repaint:function(){return this.toggleClass("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){var e=this;e.hideAll(),e.fire("select")},hideAll:function(){var e=this;return this.find("menuitem").exec("hideMenu"),e._super()},preRender:function(){var e=this;return e.items().each(function(t){var n=t.settings;return n.icon||n.selectable?(e._hasIcons=!0,!1):void 0}),e._super()}});return r}),r(qt,[xt],function(e){return e.extend({Defaults:{classes:"radio",role:"radio"}})}),r(jt,[yt,$],function(e,t){return e.extend({renderHtml:function(){var e=this,t=e.classPrefix;return e.addClass("resizehandle"),"both"==e.settings.direction&&e.addClass("resizehandle-both"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes()+'"><i class="'+t+"ico "+t+'i-resize"></i></div>'},postRender:function(){var e=this;e._super(),e.resizeDragHelper=new t(this._id,{start:function(){e.fire("ResizeStart")},drag:function(t){"both"!=e.settings.direction&&(t.deltaX=0),e.fire("Resize",t)},stop:function(){e.fire("ResizeEnd")}})},remove:function(){return this.resizeDragHelper&&this.resizeDragHelper.destroy(),this._super()}})}),r($t,[yt],function(e){return e.extend({renderHtml:function(){var e=this;return e.addClass("spacer"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes()+'"></div>'}})}),r(Kt,[zt,W],function(e,t){return e.extend({Defaults:{classes:"widget btn splitbtn",role:"button"},repaint:function(){var e=this,n=e.getEl(),r=e.layoutRect(),i,o;return e._super(),i=n.firstChild,o=n.lastChild,t.css(i,{width:r.w-t.getSize(o).width,height:r.h-2}),t.css(o,{height:r.h-2}),e},activeMenu:function(e){var n=this;t.toggleClass(n.getEl().lastChild,n.classPrefix+"active",e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"";return'<div id="'+t+'" class="'+e.classes()+'" role="button" tabindex="-1"><button type="button" hidefocus tabindex="-1">'+(r?'<i class="'+r+'"></i>':"")+(e._text?(r?" ":"")+e._text:"")+'</button><button type="button" class="'+n+'open" hidefocus tabindex="-1">'+(e._menuBtnText?(r?"\xa0":"")+e._menuBtnText:"")+' <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(e){var n=e.target;if(e.control==this)for(;n;){if(e.aria&&"down"!=e.aria.key||"BUTTON"==n.nodeName&&-1==n.className.indexOf("open"))return e.stopImmediatePropagation(),void t.call(this,e);n=n.parentNode}}),delete e.settings.onclick,e._super()}})}),r(Yt,[Dt],function(e){return e.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"}})}),r(Gt,[Y,W],function(e,t){return e.extend({lastIdx:0,Defaults:{layout:"absolute",defaults:{type:"panel"}},activateTab:function(e){var n;this.activeTabId&&(n=this.getEl(this.activeTabId),t.removeClass(n,this.classPrefix+"active"),n.setAttribute("aria-selected","false")),this.activeTabId="t"+e,n=this.getEl("t"+e),n.setAttribute("aria-selected","true"),t.addClass(n,this.classPrefix+"active"),e!=this.lastIdx&&(this.items()[this.lastIdx].hide(),this.lastIdx=e),this.items()[e].show().fire("showtab"),this.reflow()},renderHtml:function(){var e=this,t=e._layout,n="",r=e.classPrefix;return e.preRender(),t.preRender(e),e.items().each(function(t,i){var o=e._id+"-t"+i;t.aria("role","tabpanel"),t.aria("labelledby",o),n+='<div id="'+o+'" class="'+r+'tab" unselectable="on" role="tab" aria-controls="'+t._id+'" aria-selected="false" tabIndex="-1">'+e.encode(t.settings.title)+"</div>"}),'<div id="'+e._id+'" class="'+e.classes()+'" hideFocus="1" tabIndex="-1"><div id="'+e._id+'-head" class="'+r+'tabs" role="tablist">'+n+'</div><div id="'+e._id+'-body" class="'+e.classes("body")+'">'+t.renderHtml(e)+"</div></div>"},postRender:function(){var e=this;e._super(),e.settings.activeTab=e.settings.activeTab||0,e.activateTab(e.settings.activeTab),this.on("click",function(t){var n=t.target.parentNode;if(t.target.parentNode.id==e._id+"-head")for(var r=n.childNodes.length;r--;)n.childNodes[r]==t.target&&e.activateTab(r)})},initLayoutRect:function(){var e=this,n,r,i;r=t.getSize(e.getEl("head")).width,r=0>r?0:r,i=0,e.items().each(function(t,n){r=Math.max(r,t.layoutRect().minW),i=Math.max(i,t.layoutRect().minH),e.settings.activeTab!=n&&t.hide()}),e.items().each(function(e){e.settings.x=0,e.settings.y=0,e.settings.w=r,e.settings.h=i,e.layoutRect({x:0,y:0,w:r,h:i})});var o=t.getSize(e.getEl("head")).height;return e.settings.minWidth=r,e.settings.minHeight=i+o,n=e._super(),n.deltaH+=o,n.innerH=n.h-n.deltaH,n}})}),r(Xt,[yt,W],function(e,t){return e.extend({init:function(e){var t=this;t._super(e),t._value=e.value||"",t.addClass("textbox"),e.multiline?t.addClass("multiline"):t.on("keydown",function(e){13==e.keyCode&&t.parents().reverse().each(function(t){return e.preventDefault(),t.hasEventListeners("submit")&&t.toJSON?(t.fire("submit",{data:t.toJSON()}),!1):void 0 +})})},disabled:function(e){var t=this;return t._rendered&&"undefined"!=typeof e&&(t.getEl().disabled=e),t._super(e)},value:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t._rendered&&(t.getEl().value=e),t):t._rendered?t.getEl().value:t._value},repaint:function(){var e=this,t,n,r,i=0,o=0,a;t=e.getEl().style,n=e._layoutRect,a=e._lastRepaintRect||{};var s=document;return!e.settings.multiline&&s.all&&(!s.documentMode||s.documentMode<=8)&&(t.lineHeight=n.h-o+"px"),r=e._borderBox,i=r.left+r.right+8,o=r.top+r.bottom+(e.settings.multiline?8:0),n.x!==a.x&&(t.left=n.x+"px",a.x=n.x),n.y!==a.y&&(t.top=n.y+"px",a.y=n.y),n.w!==a.w&&(t.width=n.w-i+"px",a.w=n.w),n.h!==a.h&&(t.height=n.h-o+"px",a.h=n.h),e._lastRepaintRect=a,e.fire("repaint",{},!1),e},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.encode(e._value,!1),i="";return"spellcheck"in n&&(i+=' spellcheck="'+n.spellcheck+'"'),n.maxLength&&(i+=' maxlength="'+n.maxLength+'"'),n.size&&(i+=' size="'+n.size+'"'),n.subtype&&(i+=' type="'+n.subtype+'"'),e.disabled()&&(i+=' disabled="disabled"'),n.multiline?'<textarea id="'+t+'" class="'+e.classes()+'" '+(n.rows?' rows="'+n.rows+'"':"")+' hidefocus="true"'+i+">"+r+"</textarea>":'<input id="'+t+'" class="'+e.classes()+'" value="'+r+'" hidefocus="true"'+i+">"},postRender:function(){var e=this;return t.on(e.getEl(),"change",function(t){e.fire("change",t)}),e._super()},remove:function(){t.off(this.getEl()),this._super()}})}),r(Jt,[W],function(e){return function(t){var n=this,r;n.show=function(i){return n.hide(),r=!0,window.setTimeout(function(){r&&t.appendChild(e.createFragment('<div class="mce-throbber"></div>'))},i||0),n},n.hide=function(){var e=t.lastChild;return e&&-1!=e.className.indexOf("throbber")&&e.parentNode.removeChild(e),r=!1,n}}}),a([l,c,d,u,f,p,m,h,g,v,y,b,C,x,w,_,N,E,k,S,T,R,A,B,L,D,M,H,P,O,I,F,z,W,V,U,q,j,$,K,Y,G,X,J,Q,Z,et,tt,nt,rt,it,ot,at,st,lt,ct,dt,ut,ft,pt,mt,ht,gt,vt,yt,bt,Ct,xt,wt,_t,Nt,Et,kt,St,Tt,Rt,At,Bt,Lt,Dt,Mt,Ht,Pt,Ot,It,Ft,zt,Wt,Vt,Ut,qt,jt,$t,Kt,Yt,Gt,Xt,Jt])}(this); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/tinymce.js b/common/static/js/vendor/tinymce/js/tinymce/tinymce.js new file mode 100755 index 00000000000..d92519170bc --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/tinymce.js @@ -0,0 +1,34814 @@ +// 4.0.20 (2014-03-18) + +/** + * Compiled inline version. (Library mode) + */ + +/*jshint smarttabs:true, undef:true, latedef:true, curly:true, bitwise:true, camelcase:true */ +/*globals $code */ + +(function(exports, undefined) { + "use strict"; + + var modules = {}; + + function require(ids, callback) { + var module, defs = []; + + for (var i = 0; i < ids.length; ++i) { + module = modules[ids[i]] || resolve(ids[i]); + if (!module) { + throw 'module definition dependecy not found: ' + ids[i]; + } + + defs.push(module); + } + + callback.apply(null, defs); + } + + function define(id, dependencies, definition) { + if (typeof id !== 'string') { + throw 'invalid module definition, module id must be defined and be a string'; + } + + if (dependencies === undefined) { + throw 'invalid module definition, dependencies must be specified'; + } + + if (definition === undefined) { + throw 'invalid module definition, definition function must be specified'; + } + + require(dependencies, function() { + modules[id] = definition.apply(null, arguments); + }); + } + + function defined(id) { + return !!modules[id]; + } + + function resolve(id) { + var target = exports; + var fragments = id.split(/[.\/]/); + + for (var fi = 0; fi < fragments.length; ++fi) { + if (!target[fragments[fi]]) { + return; + } + + target = target[fragments[fi]]; + } + + return target; + } + + function expose(ids) { + for (var i = 0; i < ids.length; i++) { + var target = exports; + var id = ids[i]; + var fragments = id.split(/[.\/]/); + + for (var fi = 0; fi < fragments.length - 1; ++fi) { + if (target[fragments[fi]] === undefined) { + target[fragments[fi]] = {}; + } + + target = target[fragments[fi]]; + } + + target[fragments[fragments.length - 1]] = modules[id]; + } + } + +// Included from: js/tinymce/classes/dom/EventUtils.js + +/** + * EventUtils.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*jshint loopfunc:true*/ +/*eslint no-loop-func:0 */ + +define("tinymce/dom/EventUtils", [], function() { + "use strict"; + + var eventExpandoPrefix = "mce-data-"; + var mouseEventRe = /^(?:mouse|contextmenu)|click/; + var deprecated = {keyLocation: 1, layerX: 1, layerY: 1, returnValue: 1}; + + /** + * Binds a native event to a callback on the speified target. + */ + function addEvent(target, name, callback, capture) { + if (target.addEventListener) { + target.addEventListener(name, callback, capture || false); + } else if (target.attachEvent) { + target.attachEvent('on' + name, callback); + } + } + + /** + * Unbinds a native event callback on the specified target. + */ + function removeEvent(target, name, callback, capture) { + if (target.removeEventListener) { + target.removeEventListener(name, callback, capture || false); + } else if (target.detachEvent) { + target.detachEvent('on' + name, callback); + } + } + + /** + * Normalizes a native event object or just adds the event specific methods on a custom event. + */ + function fix(originalEvent, data) { + var name, event = data || {}, undef; + + // Dummy function that gets replaced on the delegation state functions + function returnFalse() { + return false; + } + + // Dummy function that gets replaced on the delegation state functions + function returnTrue() { + return true; + } + + // Copy all properties from the original event + for (name in originalEvent) { + // layerX/layerY is deprecated in Chrome and produces a warning + if (!deprecated[name]) { + event[name] = originalEvent[name]; + } + } + + // Normalize target IE uses srcElement + if (!event.target) { + event.target = event.srcElement || document; + } + + // Calculate pageX/Y if missing and clientX/Y available + if (originalEvent && mouseEventRe.test(originalEvent.type) && originalEvent.pageX === undef && originalEvent.clientX !== undef) { + var eventDoc = event.target.ownerDocument || document; + var doc = eventDoc.documentElement; + var body = eventDoc.body; + + event.pageX = originalEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - + ( doc && doc.clientLeft || body && body.clientLeft || 0); + + event.pageY = originalEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0 ) - + ( doc && doc.clientTop || body && body.clientTop || 0); + } + + // Add preventDefault method + event.preventDefault = function() { + event.isDefaultPrevented = returnTrue; + + // Execute preventDefault on the original event object + if (originalEvent) { + if (originalEvent.preventDefault) { + originalEvent.preventDefault(); + } else { + originalEvent.returnValue = false; // IE + } + } + }; + + // Add stopPropagation + event.stopPropagation = function() { + event.isPropagationStopped = returnTrue; + + // Execute stopPropagation on the original event object + if (originalEvent) { + if (originalEvent.stopPropagation) { + originalEvent.stopPropagation(); + } else { + originalEvent.cancelBubble = true; // IE + } + } + }; + + // Add stopImmediatePropagation + event.stopImmediatePropagation = function() { + event.isImmediatePropagationStopped = returnTrue; + event.stopPropagation(); + }; + + // Add event delegation states + if (!event.isDefaultPrevented) { + event.isDefaultPrevented = returnFalse; + event.isPropagationStopped = returnFalse; + event.isImmediatePropagationStopped = returnFalse; + } + + return event; + } + + /** + * Bind a DOMContentLoaded event across browsers and executes the callback once the page DOM is initialized. + * It will also set/check the domLoaded state of the event_utils instance so ready isn't called multiple times. + */ + function bindOnReady(win, callback, eventUtils) { + var doc = win.document, event = {type: 'ready'}; + + if (eventUtils.domLoaded) { + callback(event); + return; + } + + // Gets called when the DOM is ready + function readyHandler() { + if (!eventUtils.domLoaded) { + eventUtils.domLoaded = true; + callback(event); + } + } + + function waitForDomLoaded() { + // Check complete or interactive state if there is a body + // element on some iframes IE 8 will produce a null body + if (doc.readyState === "complete" || (doc.readyState === "interactive" && doc.body)) { + removeEvent(doc, "readystatechange", waitForDomLoaded); + readyHandler(); + } + } + + function tryScroll() { + try { + // If IE is used, use the trick by Diego Perini licensed under MIT by request to the author. + // http://javascript.nwbox.com/IEContentLoaded/ + doc.documentElement.doScroll("left"); + } catch (ex) { + setTimeout(tryScroll, 0); + return; + } + + readyHandler(); + } + + // Use W3C method + if (doc.addEventListener) { + if (doc.readyState === "complete") { + readyHandler(); + } else { + addEvent(win, 'DOMContentLoaded', readyHandler); + } + } else { + // Use IE method + addEvent(doc, "readystatechange", waitForDomLoaded); + + // Wait until we can scroll, when we can the DOM is initialized + if (doc.documentElement.doScroll && win.self === win.top) { + tryScroll(); + } + } + + // Fallback if any of the above methods should fail for some odd reason + addEvent(win, 'load', readyHandler); + } + + /** + * This class enables you to bind/unbind native events to elements and normalize it's behavior across browsers. + */ + function EventUtils() { + var self = this, events = {}, count, expando, hasFocusIn, hasMouseEnterLeave, mouseEnterLeave; + + expando = eventExpandoPrefix + (+new Date()).toString(32); + hasMouseEnterLeave = "onmouseenter" in document.documentElement; + hasFocusIn = "onfocusin" in document.documentElement; + mouseEnterLeave = {mouseenter: 'mouseover', mouseleave: 'mouseout'}; + count = 1; + + // State if the DOMContentLoaded was executed or not + self.domLoaded = false; + self.events = events; + + /** + * Executes all event handler callbacks for a specific event. + * + * @private + * @param {Event} evt Event object. + * @param {String} id Expando id value to look for. + */ + function executeHandlers(evt, id) { + var callbackList, i, l, callback, container = events[id]; + + callbackList = container && container[evt.type]; + if (callbackList) { + for (i = 0, l = callbackList.length; i < l; i++) { + callback = callbackList[i]; + + // Check if callback exists might be removed if a unbind is called inside the callback + if (callback && callback.func.call(callback.scope, evt) === false) { + evt.preventDefault(); + } + + // Should we stop propagation to immediate listeners + if (evt.isImmediatePropagationStopped()) { + return; + } + } + } + } + + /** + * Binds a callback to an event on the specified target. + * + * @method bind + * @param {Object} target Target node/window or custom object. + * @param {String} names Name of the event to bind. + * @param {function} callback Callback function to execute when the event occurs. + * @param {Object} scope Scope to call the callback function on, defaults to target. + * @return {function} Callback function that got bound. + */ + self.bind = function(target, names, callback, scope) { + var id, callbackList, i, name, fakeName, nativeHandler, capture, win = window; + + // Native event handler function patches the event and executes the callbacks for the expando + function defaultNativeHandler(evt) { + executeHandlers(fix(evt || win.event), id); + } + + // Don't bind to text nodes or comments + if (!target || target.nodeType === 3 || target.nodeType === 8) { + return; + } + + // Create or get events id for the target + if (!target[expando]) { + id = count++; + target[expando] = id; + events[id] = {}; + } else { + id = target[expando]; + } + + // Setup the specified scope or use the target as a default + scope = scope || target; + + // Split names and bind each event, enables you to bind multiple events with one call + names = names.split(' '); + i = names.length; + while (i--) { + name = names[i]; + nativeHandler = defaultNativeHandler; + fakeName = capture = false; + + // Use ready instead of DOMContentLoaded + if (name === "DOMContentLoaded") { + name = "ready"; + } + + // DOM is already ready + if (self.domLoaded && name === "ready" && target.readyState == 'complete') { + callback.call(scope, fix({type: name})); + continue; + } + + // Handle mouseenter/mouseleaver + if (!hasMouseEnterLeave) { + fakeName = mouseEnterLeave[name]; + + if (fakeName) { + nativeHandler = function(evt) { + var current, related; + + current = evt.currentTarget; + related = evt.relatedTarget; + + // Check if related is inside the current target if it's not then the event should + // be ignored since it's a mouseover/mouseout inside the element + if (related && current.contains) { + // Use contains for performance + related = current.contains(related); + } else { + while (related && related !== current) { + related = related.parentNode; + } + } + + // Fire fake event + if (!related) { + evt = fix(evt || win.event); + evt.type = evt.type === 'mouseout' ? 'mouseleave' : 'mouseenter'; + evt.target = current; + executeHandlers(evt, id); + } + }; + } + } + + // Fake bubbeling of focusin/focusout + if (!hasFocusIn && (name === "focusin" || name === "focusout")) { + capture = true; + fakeName = name === "focusin" ? "focus" : "blur"; + nativeHandler = function(evt) { + evt = fix(evt || win.event); + evt.type = evt.type === 'focus' ? 'focusin' : 'focusout'; + executeHandlers(evt, id); + }; + } + + // Setup callback list and bind native event + callbackList = events[id][name]; + if (!callbackList) { + events[id][name] = callbackList = [{func: callback, scope: scope}]; + callbackList.fakeName = fakeName; + callbackList.capture = capture; + + // Add the nativeHandler to the callback list so that we can later unbind it + callbackList.nativeHandler = nativeHandler; + + // Check if the target has native events support + + if (name === "ready") { + bindOnReady(target, nativeHandler, self); + } else { + addEvent(target, fakeName || name, nativeHandler, capture); + } + } else { + if (name === "ready" && self.domLoaded) { + callback({type: name}); + } else { + // If it already has an native handler then just push the callback + callbackList.push({func: callback, scope: scope}); + } + } + } + + target = callbackList = 0; // Clean memory for IE + + return callback; + }; + + /** + * Unbinds the specified event by name, name and callback or all events on the target. + * + * @method unbind + * @param {Object} target Target node/window or custom object. + * @param {String} names Optional event name to unbind. + * @param {function} callback Optional callback function to unbind. + * @return {EventUtils} Event utils instance. + */ + self.unbind = function(target, names, callback) { + var id, callbackList, i, ci, name, eventMap; + + // Don't bind to text nodes or comments + if (!target || target.nodeType === 3 || target.nodeType === 8) { + return self; + } + + // Unbind event or events if the target has the expando + id = target[expando]; + if (id) { + eventMap = events[id]; + + // Specific callback + if (names) { + names = names.split(' '); + i = names.length; + while (i--) { + name = names[i]; + callbackList = eventMap[name]; + + // Unbind the event if it exists in the map + if (callbackList) { + // Remove specified callback + if (callback) { + ci = callbackList.length; + while (ci--) { + if (callbackList[ci].func === callback) { + var nativeHandler = callbackList.nativeHandler; + var fakeName = callbackList.fakeName, capture = callbackList.capture; + + // Clone callbackList since unbind inside a callback would otherwise break the handlers loop + callbackList = callbackList.slice(0, ci).concat(callbackList.slice(ci + 1)); + callbackList.nativeHandler = nativeHandler; + callbackList.fakeName = fakeName; + callbackList.capture = capture; + + eventMap[name] = callbackList; + } + } + } + + // Remove all callbacks if there isn't a specified callback or there is no callbacks left + if (!callback || callbackList.length === 0) { + delete eventMap[name]; + removeEvent(target, callbackList.fakeName || name, callbackList.nativeHandler, callbackList.capture); + } + } + } + } else { + // All events for a specific element + for (name in eventMap) { + callbackList = eventMap[name]; + removeEvent(target, callbackList.fakeName || name, callbackList.nativeHandler, callbackList.capture); + } + + eventMap = {}; + } + + // Check if object is empty, if it isn't then we won't remove the expando map + for (name in eventMap) { + return self; + } + + // Delete event object + delete events[id]; + + // Remove expando from target + try { + // IE will fail here since it can't delete properties from window + delete target[expando]; + } catch (ex) { + // IE will set it to null + target[expando] = null; + } + } + + return self; + }; + + /** + * Fires the specified event on the specified target. + * + * @method fire + * @param {Object} target Target node/window or custom object. + * @param {String} name Event name to fire. + * @param {Object} args Optional arguments to send to the observers. + * @return {EventUtils} Event utils instance. + */ + self.fire = function(target, name, args) { + var id; + + // Don't bind to text nodes or comments + if (!target || target.nodeType === 3 || target.nodeType === 8) { + return self; + } + + // Build event object by patching the args + args = fix(null, args); + args.type = name; + args.target = target; + + do { + // Found an expando that means there is listeners to execute + id = target[expando]; + if (id) { + executeHandlers(args, id); + } + + // Walk up the DOM + target = target.parentNode || target.ownerDocument || target.defaultView || target.parentWindow; + } while (target && !args.isPropagationStopped()); + + return self; + }; + + /** + * Removes all bound event listeners for the specified target. This will also remove any bound + * listeners to child nodes within that target. + * + * @method clean + * @param {Object} target Target node/window object. + * @return {EventUtils} Event utils instance. + */ + self.clean = function(target) { + var i, children, unbind = self.unbind; + + // Don't bind to text nodes or comments + if (!target || target.nodeType === 3 || target.nodeType === 8) { + return self; + } + + // Unbind any element on the specificed target + if (target[expando]) { + unbind(target); + } + + // Target doesn't have getElementsByTagName it's probably a window object then use it's document to find the children + if (!target.getElementsByTagName) { + target = target.document; + } + + // Remove events from each child element + if (target && target.getElementsByTagName) { + unbind(target); + + children = target.getElementsByTagName('*'); + i = children.length; + while (i--) { + target = children[i]; + + if (target[expando]) { + unbind(target); + } + } + } + + return self; + }; + + /** + * Destroys the event object. Call this on IE to remove memory leaks. + */ + self.destroy = function() { + events = {}; + }; + + // Legacy function for canceling events + self.cancel = function(e) { + if (e) { + e.preventDefault(); + e.stopImmediatePropagation(); + } + + return false; + }; + } + + EventUtils.Event = new EventUtils(); + EventUtils.Event.bind(window, 'ready', function() {}); + + return EventUtils; +}); + +// Included from: js/tinymce/classes/dom/Sizzle.js + +/** + * Sizzle.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + * + * @ignore-file + */ + +/*jshint bitwise:false, expr:true, noempty:false, sub:true, eqnull:true, latedef:false, maxlen:255 */ +/*eslint dot-notation:0, no-empty:0, no-cond-assign:0, no-unused-expressions:0, new-cap:0, no-nested-ternary:0, func-style:0, no-bitwise: 0 */ + +/* + * Sizzle CSS Selector Engine + * Copyright, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +define("tinymce/dom/Sizzle", [], function() { +var i, + cachedruns, + Expr, + getText, + isXML, + compile, + outermostContext, + recompare, + sortInput, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + -(new Date()), + preferredDoc = window.document, + support = {}, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + hasDuplicate = false, + sortOrder = function() { return 0; }, + + // General-purpose constants + strundefined = typeof undefined, + MAX_NEGATIVE = 1 << 31, + + // Array methods + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf if we can't use a native one + indexOf = arr.indexOf || function( elem ) { + var i = 0, + len = this.length; + for ( ; i < len; i++ ) { + if ( this[i] === elem ) { + return i; + } + } + return -1; + }, + + + // Regular expressions + + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", + + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), + + // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors + operators = "([*^$|!~]?=)", + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + + "*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", + + // Prefer arguments quoted, + // then not containing pseudos/brackets, + // then attribute selectors/non-parenthetical expressions, + // then anything else + // These preferences are here to reduce the number of selectors + // needing tokenize in the PSEUDO preFilter + pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*" ), + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "NAME": new RegExp( "^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rsibling = /[\x20\t\r\n\f]*[+~]/, + + rnative = /^[^{]+\{\s*\[native code/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rescape = /'|\\/g, + rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g, + + // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = /\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g, + funescape = function( _, escaped ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + return high !== high ? + escaped : + // BMP codepoint + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }; + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +/** + * For feature detection + * @param {Function} fn The function to test for native support + */ +function isNative( fn ) { + return rnative.test( fn + "" ); +} + +/** + * Create key-value caches of limited size + * @returns {Function(string, Object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var cache, + keys = []; + + cache = function( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key += " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + cache[ key ] = value; + return value; + }; + + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created div and expects a boolean result + */ +function assert( fn ) { + var div = document.createElement("div"); + + try { + return !!fn( div ); + } catch (e) { + return false; + } finally { + // release memory in IE + div = null; + } +} + +function Sizzle( selector, context, results, seed ) { + var match, elem, m, nodeType, + // QSA vars + i, groups, old, nid, newContext, newSelector; + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + + context = context || document; + results = results || []; + + if ( !selector || typeof selector !== "string" ) { + return results; + } + + if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { + return []; + } + + if ( documentIsHTML && !seed ) { + + // Shortcuts + if ( (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; + } + } + + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // QSA path + if ( support.qsa && !rbuggyQSA.test(selector) ) { + old = true; + nid = expando; + newContext = context; + newSelector = nodeType === 9 && selector; + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + groups = tokenize( selector ); + + if ( (old = context.getAttribute("id")) ) { + nid = old.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); + } + nid = "[id='" + nid + "'] "; + + i = groups.length; + while ( i-- ) { + groups[i] = nid + toSelector( groups[i] ); + } + newContext = rsibling.test( selector ) && context.parentNode || context; + newSelector = groups.join(","); + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch(qsaError) { + } finally { + if ( !old ) { + context.removeAttribute("id"); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Detect xml + * @param {Element|Object} elem An element or a document + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var doc = node ? node.ownerDocument || node : preferredDoc; + + // If no document and documentElement is available, return + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Set our document + document = doc; + docElem = doc.documentElement; + + // Support tests + documentIsHTML = !isXML( doc ); + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( div ) { + div.appendChild( doc.createComment("") ); + return !div.getElementsByTagName("*").length; + }); + + // Check if attributes should be retrieved by attribute nodes + support.attributes = assert(function( div ) { + div.innerHTML = "<select></select>"; + var type = typeof div.lastChild.getAttribute("multiple"); + // IE8 returns a string for some attributes even when not present + return type !== "boolean" && type !== "string"; + }); + + // Check if getElementsByClassName can be trusted + support.getElementsByClassName = assert(function( div ) { + // Opera can't find a second classname (in 9.6) + div.innerHTML = "<div class='hidden e'></div><div class='hidden'></div>"; + if ( !div.getElementsByClassName || !div.getElementsByClassName("e").length ) { + return false; + } + + // Safari 3.2 caches class attributes and doesn't catch changes + div.lastChild.className = "e"; + return div.getElementsByClassName("e").length === 2; + }); + + // Check if getElementsByName privileges form controls or returns elements by ID + // If so, assume (for broader support) that getElementById returns elements by name + support.getByName = assert(function( div ) { + // Inject content + div.id = expando + 0; + // Support: Windows 8 Native Apps + // Assigning innerHTML with "name" attributes throws uncatchable exceptions + // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx + div.appendChild( document.createElement("a") ).setAttribute( "name", expando ); + div.appendChild( document.createElement("i") ).setAttribute( "name", expando ); + docElem.appendChild( div ); + + // Test + var pass = doc.getElementsByName && + // buggy browsers will return fewer than the correct 2 + doc.getElementsByName( expando ).length === 2 + + // buggy browsers will return more than the correct 0 + doc.getElementsByName( expando + 0 ).length; + + // Cleanup + docElem.removeChild( div ); + + return pass; + }); + + // Support: Webkit<537.32 + // Detached nodes confoundingly follow *each other* + support.sortDetached = assert(function( div1 ) { + return div1.compareDocumentPosition && + // Should return 1, but Webkit returns 4 (following) + (div1.compareDocumentPosition( document.createElement("div") ) & 1); + }); + + // IE6/7 return modified attributes + Expr.attrHandle = assert(function( div ) { + div.innerHTML = "<a href='#'></a>"; + return div.firstChild && typeof div.firstChild.getAttribute !== strundefined && + div.firstChild.getAttribute("href") === "#"; + }) ? + {} : + { + "href": function( elem ) { + return elem.getAttribute( "href", 2 ); + }, + "type": function( elem ) { + return elem.getAttribute("type"); + } + }; + + // ID find and filter + if ( support.getByName ) { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== strundefined && documentIsHTML ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [m] : []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + } else { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== strundefined && documentIsHTML ) { + var m = context.getElementById( id ); + + return m ? + m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ? + [m] : + undefined : + []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== strundefined ) { + return context.getElementsByTagName( tag ); + } + } : + function( tag, context ) { + var elem, + tmp = [], + i = 0, + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Name + Expr.find["NAME"] = support.getByName && function( tag, context ) { + if ( typeof context.getElementsByName !== strundefined ) { + return context.getElementsByName( name ); + } + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21), + // no need to also add to buggyMatches since matches checks buggyQSA + // A support test would require too much code (would include document ready) + rbuggyQSA = [ ":focus" ]; + + if ( (support.qsa = isNative(doc.querySelectorAll)) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + div.innerHTML = "<select><option selected=''></option></select>"; + + // IE8 - Some boolean attributes are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + }); + + assert(function( div ) { + + // Opera 10-12/IE8 - ^= $= *= and empty values + // Should not select anything + div.innerHTML = "<input type='hidden' i=''/>"; + if ( div.querySelectorAll("[i^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\"\"|'')" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + div.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = isNative( (matches = docElem.matchesSelector || + docElem.mozMatchesSelector || + docElem.webkitMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( div, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + // Element contains another + // Purposefully does not implement inclusive descendant + // As in, an element does not contain itself + contains = isNative(docElem.contains) || docElem.compareDocumentPosition ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + // Document order sorting + sortOrder = docElem.compareDocumentPosition ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b ); + + if ( compare ) { + // Disconnected nodes + if ( compare & 1 || + (recompare && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === doc || contains(preferredDoc, a) ) { + return -1; + } + if ( b === doc || contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } + + // Not directly comparable, sort on existence of method + return a.compareDocumentPosition ? -1 : 1; + } : + function( a, b ) { + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + + // Parentless nodes are either documents or disconnected + } else if ( !aup || !bup ) { + return a === doc ? -1 : + b === doc ? 1 : + aup ? -1 : + bup ? 1 : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + // rbuggyQSA always contains :focus, so no need for an existence check + if ( support.matchesSelector && documentIsHTML && (!rbuggyMatches || !rbuggyMatches.test(expr)) && !rbuggyQSA.test(expr) ) { + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch(e) {} + } + + return Sizzle( expr, document, null, [elem] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + var val; + + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + if ( documentIsHTML ) { + name = name.toLowerCase(); + } + if ( (val = Expr.attrHandle[ name ]) ) { + return val( elem ); + } + if ( !documentIsHTML || support.attributes ) { + return elem.getAttribute( name ); + } + return ( (val = elem.getAttributeNode( name )) || elem.getAttribute( name ) ) && elem[ name ] === true ? + name : + val && val.specified ? val.value : null; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +// Document sorting and removing duplicates +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + // Compensate for sort limitations + recompare = !support.sortDetached; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + return results; +}; + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns Returns -1 if a precedes b, 1 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && ( ~b.sourceIndex || MAX_NEGATIVE ) - ( ~a.sourceIndex || MAX_NEGATIVE ); + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +// Returns a function to use in pseudos for input types +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +// Returns a function to use in pseudos for buttons +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +// Returns a function to use in pseudos for positionals +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + for ( ; (node = elem[i]); i++ ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (see #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[5] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[4] ) { + match[2] = match[4]; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeName ) { + if ( nodeName === "*" ) { + return function() { return true; }; + } + + nodeName = nodeName.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, outerCache, node, diff, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + // Seek `elem` from a previously-cached index + outerCache = parent[ expando ] || (parent[ expando ] = {}); + cache = outerCache[ type ] || []; + nodeIndex = cache[0] === dirruns && cache[1]; + diff = cache[0] === dirruns && cache[2]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + // Use previously-cached element index if available + } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { + diff = cache[1]; + + // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) + } else { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { + // Cache the index of each encountered element + if ( useCache ) { + (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf.call( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), + // not comment, processing instructions, or others + // Thanks to Diego Perini for the nodeName shortcut + // Greater than "@" means alpha characters (specifically not starting with "#" or "?") + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeName > "@" || elem.nodeType === 3 || elem.nodeType === 4 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) + // use getAttribute instead to test this case + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === elem.type ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +function tokenize( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( tokens = [] ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push( { + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + } ); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push( { + value: matched, + type: type, + matches: match + } ); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +} + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && dir === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var data, cache, outerCache, + dirkey = dirruns + " " + doneName; + + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + if ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) { + if ( (data = cache[1]) === true || data === cachedruns ) { + return data === true; + } + } else { + cache = outerCache[ dir ] = [ dirkey ]; + cache[1] = matcher( elem, context, xml ) || cachedruns; + if ( cache[1] === true ) { + return true; + } + } + } + } + } + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf.call( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( tokens.slice( 0, i - 1 ) ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + // A counter to specify which element is currently being matched + var matcherCachedRuns = 0, + bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, expandContext ) { + var elem, j, matcher, + setMatched = [], + matchedCount = 0, + i = "0", + unmatched = seed && [], + outermost = expandContext != null, + contextBackup = outermostContext, + // We must always have either seed elements or context + elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1); + + if ( outermost ) { + outermostContext = context !== document && context; + cachedruns = matcherCachedRuns; + } + + // Add elements passing elementMatchers directly to results + // Keep `i` a string if there are no elements so `matchedCount` will be "00" below + for ( ; (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + cachedruns = ++matcherCachedRuns; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // Apply set filters to unmatched elements + matchedCount += i; + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !group ) { + group = tokenize( selector ); + } + i = group.length; + while ( i-- ) { + cached = matcherFromTokens( group[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + } + return cached; +}; + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function select( selector, context, results, seed ) { + var i, tokens, token, type, find, + match = tokenize( selector ); + + if ( !seed ) { + // Try to minimize operations if there is only one group + if ( match.length === 1 ) { + + // Take a shortcut and set the context if the root selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + context.nodeType === 9 && documentIsHTML && + Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && context.parentNode || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + } + + // Compile and execute a filtering function + // Provide `match` to avoid retokenization if we modified the selector above + compile( selector, match )( + seed, + context, + !documentIsHTML, + results, + rsibling.test( selector ) + ); + return results; +} + +// Deprecated +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +// Check sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Initialize with the default document +setDocument(); + +// Always assume the presence of duplicates if sort doesn't +// pass them to our comparison function (as in Google Chrome). +[0, 0].sort( sortOrder ); +support.detectDuplicates = hasDuplicate; + +/* +// EXPOSE +if ( typeof define === "function" && define.amd ) { + define(function() { return Sizzle; }); +} else { + window.Sizzle = Sizzle; +} +*/ + +// EXPOSE +return Sizzle; +}); + +// Included from: js/tinymce/classes/dom/DomQuery.js + +/** + * DomQuery.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + * + * Some of this logic is based on jQuery code that is released under + * MIT license that grants us to sublicense it under LGPL. + * + * @ignore-file + */ + +/** + * @class tinymce.dom.DomQuery + */ +define("tinymce/dom/DomQuery", [ + "tinymce/dom/EventUtils", + "tinymce/dom/Sizzle" +], function(EventUtils, Sizzle) { + var doc = document, push = Array.prototype.push, slice = Array.prototype.slice; + var rquickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/; + var Event = EventUtils.Event; + + function isDefined(obj) { + return typeof obj !== "undefined"; + } + + function isString(obj) { + return typeof obj === "string"; + } + + function createFragment(html) { + var frag, node, container; + + container = doc.createElement("div"); + frag = doc.createDocumentFragment(); + container.innerHTML = html; + + while ((node = container.firstChild)) { + frag.appendChild(node); + } + + return frag; + } + + function domManipulate(targetNodes, sourceItem, callback) { + var i; + + if (typeof sourceItem === "string") { + sourceItem = createFragment(sourceItem); + } else if (sourceItem.length) { + for (i = 0; i < sourceItem.length; i++) { + domManipulate(targetNodes, sourceItem[i], callback); + } + + return targetNodes; + } + + i = targetNodes.length; + while (i--) { + callback.call(targetNodes[i], sourceItem.parentNode ? sourceItem : sourceItem); + } + + return targetNodes; + } + + function hasClass(node, className) { + return node && className && (' ' + node.className + ' ').indexOf(' ' + className + ' ') !== -1; + } + + /** + * Makes a map object out of a string that gets separated by a delimiter. + * + * @method makeMap + * @param {String} items Item string to split. + * @param {Object} map Optional object to add items to. + * @return {Object} name/value object with items as keys. + */ + function makeMap(items, map) { + var i; + + items = items || []; + + if (typeof(items) == "string") { + items = items.split(' '); + } + + map = map || {}; + + i = items.length; + while (i--) { + map[items[i]] = {}; + } + + return map; + } + + var numericCssMap = makeMap('fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom'); + + function DomQuery(selector, context) { + /*eslint new-cap:0 */ + return new DomQuery.fn.init(selector, context); + } + + /** + * Extends the specified object with another object. + * + * @method extend + * @param {Object} target Object to extend. + * @param {Object..} obj Multiple objects to extend with. + * @return {Object} Same as target, the extended object. + */ + function extend(target) { + var args = arguments, arg, i, key; + + for (i = 1; i < args.length; i++) { + arg = args[i]; + + for (key in arg) { + target[key] = arg[key]; + } + } + + return target; + } + + /** + * Converts the specified object into a real JavaScript array. + * + * @method toArray + * @param {Object} obj Object to convert into array. + * @return {Array} Array object based in input. + */ + function toArray(obj) { + var array = [], i, l; + + for (i = 0, l = obj.length; i < l; i++) { + array[i] = obj[i]; + } + + return array; + } + + /** + * Returns the index of the specified item inside the array. + * + * @method inArray + * @param {Object} item Item to look for. + * @param {Array} array Array to look for item in. + * @return {Number} Index of the item or -1. + */ + function inArray(item, array) { + var i; + + if (array.indexOf) { + return array.indexOf(item); + } + + i = array.length; + while (i--) { + if (array[i] === item) { + return i; + } + } + + return -1; + } + + /** + * Returns true/false if the specified object is an array. + * + * @method isArray + * @param {Object} obj Object to check if it's an array. + * @return {Boolean} true/false if the input object is array or not. + */ + var isArray = Array.isArray || function(obj) { + return Object.prototype.toString.call(obj) === "[object Array]"; + }; + + var whiteSpaceRegExp = /^\s*|\s*$/g; + + function trim(str) { + return (str === null || str === undefined) ? '' : ("" + str).replace(whiteSpaceRegExp, ''); + } + + /** + * Executes the callback function for each item in array/object. If you return false in the + * callback it will break the loop. + * + * @method each + * @param {Object} obj Object to iterate. + * @param {function} callback Callback function to execute for each item. + */ + function each(obj, callback) { + var length, key, i, undef, value; + + if (obj) { + length = obj.length; + + if (length === undef) { + // Loop object items + for (key in obj) { + if (obj.hasOwnProperty(key)) { + value = obj[key]; + if (callback.call(value, value, key) === false) { + break; + } + } + } + } else { + // Loop array items + for (i = 0; i < length; i++) { + value = obj[i]; + if (callback.call(value, value, key) === false) { + break; + } + } + } + } + + return obj; + } + + DomQuery.fn = DomQuery.prototype = { + constructor: DomQuery, + selector: "", + length: 0, + + init: function(selector, context) { + var self = this, match, node; + + if (!selector) { + return self; + } + + if (selector.nodeType) { + self.context = self[0] = selector; + self.length = 1; + + return self; + } + + if (isString(selector)) { + if (selector.charAt(0) === "<" && selector.charAt(selector.length - 1) === ">" && selector.length >= 3) { + match = [null, selector, null]; + } else { + match = rquickExpr.exec(selector); + } + + if (match) { + if (match[1]) { + node = createFragment(selector).firstChild; + while (node) { + this.add(node); + node = node.nextSibling; + } + } else { + node = doc.getElementById(match[2]); + + if (node.id !== match[2]) { + return self.find(selector); + } + + self.length = 1; + self[0] = node; + } + } else { + return DomQuery(context || document).find(selector); + } + } else { + this.add(selector); + } + + return self; + }, + + toArray: function() { + return toArray(this); + }, + + add: function(items) { + var self = this; + + // Force single item into array + if (!isArray(items)) { + if (items instanceof DomQuery) { + self.add(items.toArray()); + } else { + push.call(self, items); + } + } else { + push.apply(self, items); + } + + return self; + }, + + attr: function(name, value) { + var self = this; + + if (typeof name === "object") { + each(name, function(value, name) { + self.attr(name, value); + }); + } else if (isDefined(value)) { + this.each(function() { + if (this.nodeType === 1) { + this.setAttribute(name, value); + } + }); + } else { + return self[0] && self[0].nodeType === 1 ? self[0].getAttribute(name) : undefined; + } + + return self; + }, + + css: function(name, value) { + var self = this; + + if (typeof name === "object") { + each(name, function(value, name) { + self.css(name, value); + }); + } else { + // Camelcase it, if needed + name = name.replace(/-(\D)/g, function(a, b) { + return b.toUpperCase(); + }); + + if (isDefined(value)) { + // Default px suffix on these + if (typeof(value) === 'number' && !numericCssMap[name]) { + value += 'px'; + } + + self.each(function() { + var style = this.style; + + // IE specific opacity + if (name === "opacity" && this.runtimeStyle && typeof(this.runtimeStyle.opacity) === "undefined") { + style.filter = value === '' ? '' : "alpha(opacity=" + (value * 100) + ")"; + } + + try { + style[name] = value; + } catch (ex) { + // Ignore + } + }); + } else { + return self[0] ? self[0].style[name] : undefined; + } + } + + return self; + }, + + remove: function() { + var self = this, node, i = this.length; + + while (i--) { + node = self[i]; + Event.clean(node); + + if (node.parentNode) { + node.parentNode.removeChild(node); + } + } + + return this; + }, + + empty: function() { + var self = this, node, i = this.length; + + while (i--) { + node = self[i]; + while (node.firstChild) { + node.removeChild(node.firstChild); + } + } + + return this; + }, + + html: function(value) { + var self = this, i; + + if (isDefined(value)) { + i = self.length; + while (i--) { + self[i].innerHTML = value; + } + + return self; + } + + return self[0] ? self[0].innerHTML : ''; + }, + + text: function(value) { + var self = this, i; + + if (isDefined(value)) { + i = self.length; + while (i--) { + self[i].innerText = self[0].textContent = value; + } + + return self; + } + + return self[0] ? self[0].innerText || self[0].textContent : ''; + }, + + append: function() { + return domManipulate(this, arguments, function(node) { + if (this.nodeType === 1) { + this.appendChild(node); + } + }); + }, + + prepend: function() { + return domManipulate(this, arguments, function(node) { + if (this.nodeType === 1) { + this.insertBefore(node, this.firstChild); + } + }); + }, + + before: function() { + var self = this; + + if (self[0] && self[0].parentNode) { + return domManipulate(self, arguments, function(node) { + this.parentNode.insertBefore(node, this.nextSibling); + }); + } + + return self; + }, + + after: function() { + var self = this; + + if (self[0] && self[0].parentNode) { + return domManipulate(self, arguments, function(node) { + this.parentNode.insertBefore(node, this); + }); + } + + return self; + }, + + appendTo: function(val) { + DomQuery(val).append(this); + + return this; + }, + + addClass: function(className) { + return this.toggleClass(className, true); + }, + + removeClass: function(className) { + return this.toggleClass(className, false); + }, + + toggleClass: function(className, state) { + var self = this; + + if (className.indexOf(' ') !== -1) { + each(className.split(' '), function() { + self.toggleClass(this, state); + }); + } else { + self.each(function(node) { + var existingClassName; + + if (hasClass(node, className) !== state) { + existingClassName = node.className; + + if (state) { + node.className += existingClassName ? ' ' + className : className; + } else { + node.className = trim((" " + existingClassName + " ").replace(' ' + className + ' ', ' ')); + } + } + }); + } + + return self; + }, + + hasClass: function(className) { + return hasClass(this[0], className); + }, + + each: function(callback) { + return each(this, callback); + }, + + on: function(name, callback) { + return this.each(function() { + Event.bind(this, name, callback); + }); + }, + + off: function(name, callback) { + return this.each(function() { + Event.unbind(this, name, callback); + }); + }, + + show: function() { + return this.css('display', ''); + }, + + hide: function() { + return this.css('display', 'none'); + }, + + slice: function() { + return new DomQuery(slice.apply(this, arguments)); + }, + + eq: function(index) { + return index === -1 ? this.slice(index) : this.slice(index, +index + 1); + }, + + first: function() { + return this.eq(0); + }, + + last: function() { + return this.eq(-1); + }, + + replaceWith: function(content) { + var self = this; + + if (self[0]) { + self[0].parentNode.replaceChild(DomQuery(content)[0], self[0]); + } + + return self; + }, + + wrap: function(wrapper) { + wrapper = DomQuery(wrapper)[0]; + + return this.each(function() { + var self = this, newWrapper = wrapper.cloneNode(false); + self.parentNode.insertBefore(newWrapper, self); + newWrapper.appendChild(self); + }); + }, + + unwrap: function() { + return this.each(function() { + var self = this, node = self.firstChild, currentNode; + + while (node) { + currentNode = node; + node = node.nextSibling; + self.parentNode.insertBefore(currentNode, self); + } + }); + }, + + clone: function() { + var result = []; + + this.each(function() { + result.push(this.cloneNode(true)); + }); + + return DomQuery(result); + }, + + find: function(selector) { + var i, l, ret = []; + + for (i = 0, l = this.length; i < l; i++) { + DomQuery.find(selector, this[i], ret); + } + + return DomQuery(ret); + }, + + push: push, + sort: [].sort, + splice: [].splice + }; + + // Static members + extend(DomQuery, { + extend: extend, + toArray: toArray, + inArray: inArray, + isArray: isArray, + each: each, + trim: trim, + makeMap: makeMap, + + // Sizzle + find: Sizzle, + expr: Sizzle.selectors, + unique: Sizzle.uniqueSort, + text: Sizzle.getText, + isXMLDoc: Sizzle.isXML, + contains: Sizzle.contains, + filter: function(expr, elems, not) { + if (not) { + expr = ":not(" + expr + ")"; + } + + if (elems.length === 1) { + elems = DomQuery.find.matchesSelector(elems[0], expr) ? [elems[0]] : []; + } else { + elems = DomQuery.find.matches(expr, elems); + } + + return elems; + } + }); + + function dir(el, prop, until) { + var matched = [], cur = el[prop]; + + while (cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !DomQuery(cur).is(until))) { + if (cur.nodeType === 1) { + matched.push(cur); + } + + cur = cur[prop]; + } + + return matched; + } + + function sibling(n, el, siblingName, nodeType) { + var r = []; + + for(; n; n = n[siblingName]) { + if ((!nodeType || n.nodeType === nodeType) && n !== el) { + r.push(n); + } + } + + return r; + } + + each({ + parent: function(node) { + var parent = node.parentNode; + + return parent && parent.nodeType !== 11 ? parent : null; + }, + + parents: function(node) { + return dir(node, "parentNode"); + }, + + parentsUntil: function(node, until) { + return dir(node, "parentNode", until); + }, + + next: function(node) { + return sibling(node, 'nextSibling', 1); + }, + + prev: function(node) { + return sibling(node, 'previousSibling', 1); + }, + + nextNodes: function(node) { + return sibling(node, 'nextSibling'); + }, + + prevNodes: function(node) { + return sibling(node, 'previousSibling'); + }, + + children: function(node) { + return sibling(node.firstChild, 'nextSibling', 1); + }, + + contents: function(node) { + return toArray((node.nodeName === "iframe" ? node.contentDocument || node.contentWindow.document : node).childNodes); + } + }, function(name, fn){ + DomQuery.fn[name] = function(selector) { + var self = this, result; + + if (self.length > 1) { + throw new Error("DomQuery only supports traverse functions on a single node."); + } + + if (self[0]) { + result = fn(self[0], selector); + } + + result = DomQuery(result); + + if (selector && name !== "parentsUntil") { + return result.filter(selector); + } + + return result; + }; + }); + + DomQuery.fn.filter = function(selector) { + return DomQuery.filter(selector); + }; + + DomQuery.fn.is = function(selector) { + return !!selector && this.filter(selector).length > 0; + }; + + DomQuery.fn.init.prototype = DomQuery.fn; + + return DomQuery; +}); + +// Included from: js/tinymce/classes/html/Styles.js + +/** + * Styles.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class is used to parse CSS styles it also compresses styles to reduce the output size. + * + * @example + * var Styles = new tinymce.html.Styles({ + * url_converter: function(url) { + * return url; + * } + * }); + * + * styles = Styles.parse('border: 1px solid red'); + * styles.color = 'red'; + * + * console.log(new tinymce.html.StyleSerializer().serialize(styles)); + * + * @class tinymce.html.Styles + * @version 3.4 + */ +define("tinymce/html/Styles", [], function() { + return function(settings, schema) { + /*jshint maxlen:255 */ + /*eslint max-len:0 */ + var rgbRegExp = /rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi, + urlOrStrRegExp = /(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi, + styleRegExp = /\s*([^:]+):\s*([^;]+);?/g, + trimRightRegExp = /\s+$/, + undef, i, encodingLookup = {}, encodingItems, invisibleChar = '\uFEFF'; + + settings = settings || {}; + + encodingItems = ('\\" \\\' \\; \\: ; : ' + invisibleChar).split(' '); + for (i = 0; i < encodingItems.length; i++) { + encodingLookup[encodingItems[i]] = invisibleChar + i; + encodingLookup[invisibleChar + i] = encodingItems[i]; + } + + function toHex(match, r, g, b) { + function hex(val) { + val = parseInt(val, 10).toString(16); + + return val.length > 1 ? val : '0' + val; // 0 -> 00 + } + + return '#' + hex(r) + hex(g) + hex(b); + } + + return { + /** + * Parses the specified RGB color value and returns a hex version of that color. + * + * @method toHex + * @param {String} color RGB string value like rgb(1,2,3) + * @return {String} Hex version of that RGB value like #FF00FF. + */ + toHex: function(color) { + return color.replace(rgbRegExp, toHex); + }, + + /** + * Parses the specified style value into an object collection. This parser will also + * merge and remove any redundant items that browsers might have added. It will also convert non hex + * colors to hex values. Urls inside the styles will also be converted to absolute/relative based on settings. + * + * @method parse + * @param {String} css Style value to parse for example: border:1px solid red;. + * @return {Object} Object representation of that style like {border: '1px solid red'} + */ + parse: function(css) { + var styles = {}, matches, name, value, isEncoded, urlConverter = settings.url_converter; + var urlConverterScope = settings.url_converter_scope || this; + + function compress(prefix, suffix, noJoin) { + var top, right, bottom, left; + + top = styles[prefix + '-top' + suffix]; + if (!top) { + return; + } + + right = styles[prefix + '-right' + suffix]; + if (!right) { + return; + } + + bottom = styles[prefix + '-bottom' + suffix]; + if (!bottom) { + return; + } + + left = styles[prefix + '-left' + suffix]; + if (!left) { + return; + } + + var box = [top, right, bottom, left]; + i = box.length - 1; + while (i--) { + if (box[i] !== box[i + 1]) { + break; + } + } + + if (i > -1 && noJoin) { + return; + } + + styles[prefix + suffix] = i == -1 ? box[0] : box.join(' '); + delete styles[prefix + '-top' + suffix]; + delete styles[prefix + '-right' + suffix]; + delete styles[prefix + '-bottom' + suffix]; + delete styles[prefix + '-left' + suffix]; + } + + /** + * Checks if the specific style can be compressed in other words if all border-width are equal. + */ + function canCompress(key) { + var value = styles[key], i; + + if (!value) { + return; + } + + value = value.split(' '); + i = value.length; + while (i--) { + if (value[i] !== value[0]) { + return false; + } + } + + styles[key] = value[0]; + + return true; + } + + /** + * Compresses multiple styles into one style. + */ + function compress2(target, a, b, c) { + if (!canCompress(a)) { + return; + } + + if (!canCompress(b)) { + return; + } + + if (!canCompress(c)) { + return; + } + + // Compress + styles[target] = styles[a] + ' ' + styles[b] + ' ' + styles[c]; + delete styles[a]; + delete styles[b]; + delete styles[c]; + } + + // Encodes the specified string by replacing all \" \' ; : with _<num> + function encode(str) { + isEncoded = true; + + return encodingLookup[str]; + } + + // Decodes the specified string by replacing all _<num> with it's original value \" \' etc + // It will also decode the \" \' if keep_slashes is set to fale or omitted + function decode(str, keep_slashes) { + if (isEncoded) { + str = str.replace(/\uFEFF[0-9]/g, function(str) { + return encodingLookup[str]; + }); + } + + if (!keep_slashes) { + str = str.replace(/\\([\'\";:])/g, "$1"); + } + + return str; + } + + function processUrl(match, url, url2, url3, str, str2) { + str = str || str2; + + if (str) { + str = decode(str); + + // Force strings into single quote format + return "'" + str.replace(/\'/g, "\\'") + "'"; + } + + url = decode(url || url2 || url3); + + if (!settings.allow_script_urls && /(java|vb)script:/i.test(url.replace(/[\s\r\n]+/, ''))) { + return ""; + } + + // Convert the URL to relative/absolute depending on config + if (urlConverter) { + url = urlConverter.call(urlConverterScope, url, 'style'); + } + + // Output new URL format + return "url('" + url.replace(/\'/g, "\\'") + "')"; + } + + if (css) { + css = css.replace(/[\u0000-\u001F]/g, ''); + + // Encode \" \' % and ; and : inside strings so they don't interfere with the style parsing + css = css.replace(/\\[\"\';:\uFEFF]/g, encode).replace(/\"[^\"]+\"|\'[^\']+\'/g, function(str) { + return str.replace(/[;:]/g, encode); + }); + + // Parse styles + while ((matches = styleRegExp.exec(css))) { + name = matches[1].replace(trimRightRegExp, '').toLowerCase(); + value = matches[2].replace(trimRightRegExp, ''); + + if (name && value.length > 0) { + if (!settings.allow_script_urls && (name == "behavior" || /expression\s*\(/.test(value))) { + continue; + } + + // Opera will produce 700 instead of bold in their style values + if (name === 'font-weight' && value === '700') { + value = 'bold'; + } else if (name === 'color' || name === 'background-color') { // Lowercase colors like RED + value = value.toLowerCase(); + } + + // Convert RGB colors to HEX + value = value.replace(rgbRegExp, toHex); + + // Convert URLs and force them into url('value') format + value = value.replace(urlOrStrRegExp, processUrl); + styles[name] = isEncoded ? decode(value, true) : value; + } + + styleRegExp.lastIndex = matches.index + matches[0].length; + } + // Compress the styles to reduce it's size for example IE will expand styles + compress("border", "", true); + compress("border", "-width"); + compress("border", "-color"); + compress("border", "-style"); + compress("padding", ""); + compress("margin", ""); + compress2('border', 'border-width', 'border-style', 'border-color'); + + // Remove pointless border, IE produces these + if (styles.border === 'medium none') { + delete styles.border; + } + + // IE 11 will produce a border-image: none when getting the style attribute from <p style="border: 1px solid red"></p> + // So lets asume it shouldn't be there + if (styles['border-image'] === 'none') { + delete styles['border-image']; + } + } + + return styles; + }, + + /** + * Serializes the specified style object into a string. + * + * @method serialize + * @param {Object} styles Object to serialize as string for example: {border: '1px solid red'} + * @param {String} element_name Optional element name, if specified only the styles that matches the schema will be serialized. + * @return {String} String representation of the style object for example: border: 1px solid red. + */ + serialize: function(styles, element_name) { + var css = '', name, value; + + function serializeStyles(name) { + var styleList, i, l, value; + + styleList = schema.styles[name]; + if (styleList) { + for (i = 0, l = styleList.length; i < l; i++) { + name = styleList[i]; + value = styles[name]; + + if (value !== undef && value.length > 0) { + css += (css.length > 0 ? ' ' : '') + name + ': ' + value + ';'; + } + } + } + } + + // Serialize styles according to schema + if (element_name && schema && schema.styles) { + // Serialize global styles and element specific styles + serializeStyles('*'); + serializeStyles(element_name); + } else { + // Output the styles in the order they are inside the object + for (name in styles) { + value = styles[name]; + + if (value !== undef && value.length > 0) { + css += (css.length > 0 ? ' ' : '') + name + ': ' + value + ';'; + } + } + } + + return css; + } + }; + }; +}); + +// Included from: js/tinymce/classes/dom/TreeWalker.js + +/** + * TreeWalker.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * TreeWalker class enables you to walk the DOM in a linear manner. + * + * @class tinymce.dom.TreeWalker + */ +define("tinymce/dom/TreeWalker", [], function() { + return function(start_node, root_node) { + var node = start_node; + + function findSibling(node, start_name, sibling_name, shallow) { + var sibling, parent; + + if (node) { + // Walk into nodes if it has a start + if (!shallow && node[start_name]) { + return node[start_name]; + } + + // Return the sibling if it has one + if (node != root_node) { + sibling = node[sibling_name]; + if (sibling) { + return sibling; + } + + // Walk up the parents to look for siblings + for (parent = node.parentNode; parent && parent != root_node; parent = parent.parentNode) { + sibling = parent[sibling_name]; + if (sibling) { + return sibling; + } + } + } + } + } + + /** + * Returns the current node. + * + * @method current + * @return {Node} Current node where the walker is. + */ + this.current = function() { + return node; + }; + + /** + * Walks to the next node in tree. + * + * @method next + * @return {Node} Current node where the walker is after moving to the next node. + */ + this.next = function(shallow) { + node = findSibling(node, 'firstChild', 'nextSibling', shallow); + return node; + }; + + /** + * Walks to the previous node in tree. + * + * @method prev + * @return {Node} Current node where the walker is after moving to the previous node. + */ + this.prev = function(shallow) { + node = findSibling(node, 'lastChild', 'previousSibling', shallow); + return node; + }; + }; +}); + +// Included from: js/tinymce/classes/util/Tools.js + +/** + * Tools.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class contains various utlity functions. These are also exposed + * directly on the tinymce namespace. + * + * @class tinymce.util.Tools + */ +define("tinymce/util/Tools", [], function() { + /** + * Removes whitespace from the beginning and end of a string. + * + * @method trim + * @param {String} s String to remove whitespace from. + * @return {String} New string with removed whitespace. + */ + var whiteSpaceRegExp = /^\s*|\s*$/g; + + function trim(str) { + return (str === null || str === undefined) ? '' : ("" + str).replace(whiteSpaceRegExp, ''); + } + + /** + * Returns true/false if the object is an array or not. + * + * @method isArray + * @param {Object} obj Object to check. + * @return {boolean} true/false state if the object is an array or not. + */ + var isArray = Array.isArray || function(obj) { + return Object.prototype.toString.call(obj) === "[object Array]"; + }; + + /** + * Checks if a object is of a specific type for example an array. + * + * @method is + * @param {Object} o Object to check type of. + * @param {string} t Optional type to check for. + * @return {Boolean} true/false if the object is of the specified type. + */ + function is(o, t) { + if (!t) { + return o !== undefined; + } + + if (t == 'array' && isArray(o)) { + return true; + } + + return typeof(o) == t; + } + + /** + * Converts the specified object into a real JavaScript array. + * + * @method toArray + * @param {Object} obj Object to convert into array. + * @return {Array} Array object based in input. + */ + function toArray(obj) { + var array = [], i, l; + + for (i = 0, l = obj.length; i < l; i++) { + array[i] = obj[i]; + } + + return array; + } + + /** + * Makes a name/object map out of an array with names. + * + * @method makeMap + * @param {Array/String} items Items to make map out of. + * @param {String} delim Optional delimiter to split string by. + * @param {Object} map Optional map to add items to. + * @return {Object} Name/value map of items. + */ + function makeMap(items, delim, map) { + var i; + + items = items || []; + delim = delim || ','; + + if (typeof(items) == "string") { + items = items.split(delim); + } + + map = map || {}; + + i = items.length; + while (i--) { + map[items[i]] = {}; + } + + return map; + } + + /** + * Performs an iteration of all items in a collection such as an object or array. This method will execure the + * callback function for each item in the collection, if the callback returns false the iteration will terminate. + * The callback has the following format: cb(value, key_or_index). + * + * @method each + * @param {Object} o Collection to iterate. + * @param {function} cb Callback function to execute for each item. + * @param {Object} s Optional scope to execute the callback in. + * @example + * // Iterate an array + * tinymce.each([1,2,3], function(v, i) { + * console.debug("Value: " + v + ", Index: " + i); + * }); + * + * // Iterate an object + * tinymce.each({a: 1, b: 2, c: 3], function(v, k) { + * console.debug("Value: " + v + ", Key: " + k); + * }); + */ + function each(o, cb, s) { + var n, l; + + if (!o) { + return 0; + } + + s = s || o; + + if (o.length !== undefined) { + // Indexed arrays, needed for Safari + for (n = 0, l = o.length; n < l; n++) { + if (cb.call(s, o[n], n, o) === false) { + return 0; + } + } + } else { + // Hashtables + for (n in o) { + if (o.hasOwnProperty(n)) { + if (cb.call(s, o[n], n, o) === false) { + return 0; + } + } + } + } + + return 1; + } + + /** + * Creates a new array by the return value of each iteration function call. This enables you to convert + * one array list into another. + * + * @method map + * @param {Array} a Array of items to iterate. + * @param {function} f Function to call for each item. It's return value will be the new value. + * @return {Array} Array with new values based on function return values. + */ + function map(a, f) { + var o = []; + + each(a, function(v) { + o.push(f(v)); + }); + + return o; + } + + /** + * Filters out items from the input array by calling the specified function for each item. + * If the function returns false the item will be excluded if it returns true it will be included. + * + * @method grep + * @param {Array} a Array of items to loop though. + * @param {function} f Function to call for each item. Include/exclude depends on it's return value. + * @return {Array} New array with values imported and filtered based in input. + * @example + * // Filter out some items, this will return an array with 4 and 5 + * var items = tinymce.grep([1,2,3,4,5], function(v) {return v > 3;}); + */ + function grep(a, f) { + var o = []; + + each(a, function(v) { + if (!f || f(v)) { + o.push(v); + } + }); + + return o; + } + + /** + * Creates a class, subclass or static singleton. + * More details on this method can be found in the Wiki. + * + * @method create + * @param {String} s Class name, inheritage and prefix. + * @param {Object} p Collection of methods to add to the class. + * @param {Object} root Optional root object defaults to the global window object. + * @example + * // Creates a basic class + * tinymce.create('tinymce.somepackage.SomeClass', { + * SomeClass: function() { + * // Class constructor + * }, + * + * method: function() { + * // Some method + * } + * }); + * + * // Creates a basic subclass class + * tinymce.create('tinymce.somepackage.SomeSubClass:tinymce.somepackage.SomeClass', { + * SomeSubClass: function() { + * // Class constructor + * this.parent(); // Call parent constructor + * }, + * + * method: function() { + * // Some method + * this.parent(); // Call parent method + * }, + * + * 'static': { + * staticMethod: function() { + * // Static method + * } + * } + * }); + * + * // Creates a singleton/static class + * tinymce.create('static tinymce.somepackage.SomeSingletonClass', { + * method: function() { + * // Some method + * } + * }); + */ + function create(s, p, root) { + var self = this, sp, ns, cn, scn, c, de = 0; + + // Parse : <prefix> <class>:<super class> + s = /^((static) )?([\w.]+)(:([\w.]+))?/.exec(s); + cn = s[3].match(/(^|\.)(\w+)$/i)[2]; // Class name + + // Create namespace for new class + ns = self.createNS(s[3].replace(/\.\w+$/, ''), root); + + // Class already exists + if (ns[cn]) { + return; + } + + // Make pure static class + if (s[2] == 'static') { + ns[cn] = p; + + if (this.onCreate) { + this.onCreate(s[2], s[3], ns[cn]); + } + + return; + } + + // Create default constructor + if (!p[cn]) { + p[cn] = function() {}; + de = 1; + } + + // Add constructor and methods + ns[cn] = p[cn]; + self.extend(ns[cn].prototype, p); + + // Extend + if (s[5]) { + sp = self.resolve(s[5]).prototype; + scn = s[5].match(/\.(\w+)$/i)[1]; // Class name + + // Extend constructor + c = ns[cn]; + if (de) { + // Add passthrough constructor + ns[cn] = function() { + return sp[scn].apply(this, arguments); + }; + } else { + // Add inherit constructor + ns[cn] = function() { + this.parent = sp[scn]; + return c.apply(this, arguments); + }; + } + ns[cn].prototype[cn] = ns[cn]; + + // Add super methods + self.each(sp, function(f, n) { + ns[cn].prototype[n] = sp[n]; + }); + + // Add overridden methods + self.each(p, function(f, n) { + // Extend methods if needed + if (sp[n]) { + ns[cn].prototype[n] = function() { + this.parent = sp[n]; + return f.apply(this, arguments); + }; + } else { + if (n != cn) { + ns[cn].prototype[n] = f; + } + } + }); + } + + // Add static methods + /*jshint sub:true*/ + self.each(p['static'], function(f, n) { + ns[cn][n] = f; + }); + } + + /** + * Returns the index of a value in an array, this method will return -1 if the item wasn't found. + * + * @method inArray + * @param {Array} a Array/Object to search for value in. + * @param {Object} v Value to check for inside the array. + * @return {Number/String} Index of item inside the array inside an object. Or -1 if it wasn't found. + * @example + * // Get index of value in array this will alert 1 since 2 is at that index + * alert(tinymce.inArray([1,2,3], 2)); + */ + function inArray(a, v) { + var i, l; + + if (a) { + for (i = 0, l = a.length; i < l; i++) { + if (a[i] === v) { + return i; + } + } + } + + return -1; + } + + function extend(obj, ext) { + var i, l, name, args = arguments, value; + + for (i = 1, l = args.length; i < l; i++) { + ext = args[i]; + for (name in ext) { + if (ext.hasOwnProperty(name)) { + value = ext[name]; + + if (value !== undefined) { + obj[name] = value; + } + } + } + } + + return obj; + } + + /** + * Executed the specified function for each item in a object tree. + * + * @method walk + * @param {Object} o Object tree to walk though. + * @param {function} f Function to call for each item. + * @param {String} n Optional name of collection inside the objects to walk for example childNodes. + * @param {String} s Optional scope to execute the function in. + */ + function walk(o, f, n, s) { + s = s || this; + + if (o) { + if (n) { + o = o[n]; + } + + each(o, function(o, i) { + if (f.call(s, o, i, n) === false) { + return false; + } + + walk(o, f, n, s); + }); + } + } + + /** + * Creates a namespace on a specific object. + * + * @method createNS + * @param {String} n Namespace to create for example a.b.c.d. + * @param {Object} o Optional object to add namespace to, defaults to window. + * @return {Object} New namespace object the last item in path. + * @example + * // Create some namespace + * tinymce.createNS('tinymce.somepackage.subpackage'); + * + * // Add a singleton + * var tinymce.somepackage.subpackage.SomeSingleton = { + * method: function() { + * // Some method + * } + * }; + */ + function createNS(n, o) { + var i, v; + + o = o || window; + + n = n.split('.'); + for (i = 0; i < n.length; i++) { + v = n[i]; + + if (!o[v]) { + o[v] = {}; + } + + o = o[v]; + } + + return o; + } + + /** + * Resolves a string and returns the object from a specific structure. + * + * @method resolve + * @param {String} n Path to resolve for example a.b.c.d. + * @param {Object} o Optional object to search though, defaults to window. + * @return {Object} Last object in path or null if it couldn't be resolved. + * @example + * // Resolve a path into an object reference + * var obj = tinymce.resolve('a.b.c.d'); + */ + function resolve(n, o) { + var i, l; + + o = o || window; + + n = n.split('.'); + for (i = 0, l = n.length; i < l; i++) { + o = o[n[i]]; + + if (!o) { + break; + } + } + + return o; + } + + /** + * Splits a string but removes the whitespace before and after each value. + * + * @method explode + * @param {string} s String to split. + * @param {string} d Delimiter to split by. + * @example + * // Split a string into an array with a,b,c + * var arr = tinymce.explode('a, b, c'); + */ + function explode(s, d) { + if (!s || is(s, 'array')) { + return s; + } + + return map(s.split(d || ','), trim); + } + + return { + trim: trim, + isArray: isArray, + is: is, + toArray: toArray, + makeMap: makeMap, + each: each, + map: map, + grep: grep, + inArray: inArray, + extend: extend, + create: create, + walk: walk, + createNS: createNS, + resolve: resolve, + explode: explode + }; +}); + +// Included from: js/tinymce/classes/dom/Range.js + +/** + * Range.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +define("tinymce/dom/Range", [ + "tinymce/util/Tools" +], function(Tools) { + // Range constructor + function Range(dom) { + var self = this, + doc = dom.doc, + EXTRACT = 0, + CLONE = 1, + DELETE = 2, + TRUE = true, + FALSE = false, + START_OFFSET = 'startOffset', + START_CONTAINER = 'startContainer', + END_CONTAINER = 'endContainer', + END_OFFSET = 'endOffset', + extend = Tools.extend, + nodeIndex = dom.nodeIndex; + + function createDocumentFragment() { + return doc.createDocumentFragment(); + } + + function setStart(n, o) { + _setEndPoint(TRUE, n, o); + } + + function setEnd(n, o) { + _setEndPoint(FALSE, n, o); + } + + function setStartBefore(n) { + setStart(n.parentNode, nodeIndex(n)); + } + + function setStartAfter(n) { + setStart(n.parentNode, nodeIndex(n) + 1); + } + + function setEndBefore(n) { + setEnd(n.parentNode, nodeIndex(n)); + } + + function setEndAfter(n) { + setEnd(n.parentNode, nodeIndex(n) + 1); + } + + function collapse(ts) { + if (ts) { + self[END_CONTAINER] = self[START_CONTAINER]; + self[END_OFFSET] = self[START_OFFSET]; + } else { + self[START_CONTAINER] = self[END_CONTAINER]; + self[START_OFFSET] = self[END_OFFSET]; + } + + self.collapsed = TRUE; + } + + function selectNode(n) { + setStartBefore(n); + setEndAfter(n); + } + + function selectNodeContents(n) { + setStart(n, 0); + setEnd(n, n.nodeType === 1 ? n.childNodes.length : n.nodeValue.length); + } + + function compareBoundaryPoints(h, r) { + var sc = self[START_CONTAINER], so = self[START_OFFSET], ec = self[END_CONTAINER], eo = self[END_OFFSET], + rsc = r.startContainer, rso = r.startOffset, rec = r.endContainer, reo = r.endOffset; + + // Check START_TO_START + if (h === 0) { + return _compareBoundaryPoints(sc, so, rsc, rso); + } + + // Check START_TO_END + if (h === 1) { + return _compareBoundaryPoints(ec, eo, rsc, rso); + } + + // Check END_TO_END + if (h === 2) { + return _compareBoundaryPoints(ec, eo, rec, reo); + } + + // Check END_TO_START + if (h === 3) { + return _compareBoundaryPoints(sc, so, rec, reo); + } + } + + function deleteContents() { + _traverse(DELETE); + } + + function extractContents() { + return _traverse(EXTRACT); + } + + function cloneContents() { + return _traverse(CLONE); + } + + function insertNode(n) { + var startContainer = this[START_CONTAINER], + startOffset = this[START_OFFSET], nn, o; + + // Node is TEXT_NODE or CDATA + if ((startContainer.nodeType === 3 || startContainer.nodeType === 4) && startContainer.nodeValue) { + if (!startOffset) { + // At the start of text + startContainer.parentNode.insertBefore(n, startContainer); + } else if (startOffset >= startContainer.nodeValue.length) { + // At the end of text + dom.insertAfter(n, startContainer); + } else { + // Middle, need to split + nn = startContainer.splitText(startOffset); + startContainer.parentNode.insertBefore(n, nn); + } + } else { + // Insert element node + if (startContainer.childNodes.length > 0) { + o = startContainer.childNodes[startOffset]; + } + + if (o) { + startContainer.insertBefore(n, o); + } else { + if (startContainer.nodeType == 3) { + dom.insertAfter(n, startContainer); + } else { + startContainer.appendChild(n); + } + } + } + } + + function surroundContents(n) { + var f = self.extractContents(); + + self.insertNode(n); + n.appendChild(f); + self.selectNode(n); + } + + function cloneRange() { + return extend(new Range(dom), { + startContainer: self[START_CONTAINER], + startOffset: self[START_OFFSET], + endContainer: self[END_CONTAINER], + endOffset: self[END_OFFSET], + collapsed: self.collapsed, + commonAncestorContainer: self.commonAncestorContainer + }); + } + + // Private methods + + function _getSelectedNode(container, offset) { + var child; + + if (container.nodeType == 3 /* TEXT_NODE */) { + return container; + } + + if (offset < 0) { + return container; + } + + child = container.firstChild; + while (child && offset > 0) { + --offset; + child = child.nextSibling; + } + + if (child) { + return child; + } + + return container; + } + + function _isCollapsed() { + return (self[START_CONTAINER] == self[END_CONTAINER] && self[START_OFFSET] == self[END_OFFSET]); + } + + function _compareBoundaryPoints(containerA, offsetA, containerB, offsetB) { + var c, offsetC, n, cmnRoot, childA, childB; + + // In the first case the boundary-points have the same container. A is before B + // if its offset is less than the offset of B, A is equal to B if its offset is + // equal to the offset of B, and A is after B if its offset is greater than the + // offset of B. + if (containerA == containerB) { + if (offsetA == offsetB) { + return 0; // equal + } + + if (offsetA < offsetB) { + return -1; // before + } + + return 1; // after + } + + // In the second case a child node C of the container of A is an ancestor + // container of B. In this case, A is before B if the offset of A is less than or + // equal to the index of the child node C and A is after B otherwise. + c = containerB; + while (c && c.parentNode != containerA) { + c = c.parentNode; + } + + if (c) { + offsetC = 0; + n = containerA.firstChild; + + while (n != c && offsetC < offsetA) { + offsetC++; + n = n.nextSibling; + } + + if (offsetA <= offsetC) { + return -1; // before + } + + return 1; // after + } + + // In the third case a child node C of the container of B is an ancestor container + // of A. In this case, A is before B if the index of the child node C is less than + // the offset of B and A is after B otherwise. + c = containerA; + while (c && c.parentNode != containerB) { + c = c.parentNode; + } + + if (c) { + offsetC = 0; + n = containerB.firstChild; + + while (n != c && offsetC < offsetB) { + offsetC++; + n = n.nextSibling; + } + + if (offsetC < offsetB) { + return -1; // before + } + + return 1; // after + } + + // In the fourth case, none of three other cases hold: the containers of A and B + // are siblings or descendants of sibling nodes. In this case, A is before B if + // the container of A is before the container of B in a pre-order traversal of the + // Ranges' context tree and A is after B otherwise. + cmnRoot = dom.findCommonAncestor(containerA, containerB); + childA = containerA; + + while (childA && childA.parentNode != cmnRoot) { + childA = childA.parentNode; + } + + if (!childA) { + childA = cmnRoot; + } + + childB = containerB; + while (childB && childB.parentNode != cmnRoot) { + childB = childB.parentNode; + } + + if (!childB) { + childB = cmnRoot; + } + + if (childA == childB) { + return 0; // equal + } + + n = cmnRoot.firstChild; + while (n) { + if (n == childA) { + return -1; // before + } + + if (n == childB) { + return 1; // after + } + + n = n.nextSibling; + } + } + + function _setEndPoint(st, n, o) { + var ec, sc; + + if (st) { + self[START_CONTAINER] = n; + self[START_OFFSET] = o; + } else { + self[END_CONTAINER] = n; + self[END_OFFSET] = o; + } + + // If one boundary-point of a Range is set to have a root container + // other than the current one for the Range, the Range is collapsed to + // the new position. This enforces the restriction that both boundary- + // points of a Range must have the same root container. + ec = self[END_CONTAINER]; + while (ec.parentNode) { + ec = ec.parentNode; + } + + sc = self[START_CONTAINER]; + while (sc.parentNode) { + sc = sc.parentNode; + } + + if (sc == ec) { + // The start position of a Range is guaranteed to never be after the + // end position. To enforce this restriction, if the start is set to + // be at a position after the end, the Range is collapsed to that + // position. + if (_compareBoundaryPoints(self[START_CONTAINER], self[START_OFFSET], self[END_CONTAINER], self[END_OFFSET]) > 0) { + self.collapse(st); + } + } else { + self.collapse(st); + } + + self.collapsed = _isCollapsed(); + self.commonAncestorContainer = dom.findCommonAncestor(self[START_CONTAINER], self[END_CONTAINER]); + } + + function _traverse(how) { + var c, endContainerDepth = 0, startContainerDepth = 0, p, depthDiff, startNode, endNode, sp, ep; + + if (self[START_CONTAINER] == self[END_CONTAINER]) { + return _traverseSameContainer(how); + } + + for (c = self[END_CONTAINER], p = c.parentNode; p; c = p, p = p.parentNode) { + if (p == self[START_CONTAINER]) { + return _traverseCommonStartContainer(c, how); + } + + ++endContainerDepth; + } + + for (c = self[START_CONTAINER], p = c.parentNode; p; c = p, p = p.parentNode) { + if (p == self[END_CONTAINER]) { + return _traverseCommonEndContainer(c, how); + } + + ++startContainerDepth; + } + + depthDiff = startContainerDepth - endContainerDepth; + + startNode = self[START_CONTAINER]; + while (depthDiff > 0) { + startNode = startNode.parentNode; + depthDiff--; + } + + endNode = self[END_CONTAINER]; + while (depthDiff < 0) { + endNode = endNode.parentNode; + depthDiff++; + } + + // ascend the ancestor hierarchy until we have a common parent. + for (sp = startNode.parentNode, ep = endNode.parentNode; sp != ep; sp = sp.parentNode, ep = ep.parentNode) { + startNode = sp; + endNode = ep; + } + + return _traverseCommonAncestors(startNode, endNode, how); + } + + function _traverseSameContainer(how) { + var frag, s, sub, n, cnt, sibling, xferNode, start, len; + + if (how != DELETE) { + frag = createDocumentFragment(); + } + + // If selection is empty, just return the fragment + if (self[START_OFFSET] == self[END_OFFSET]) { + return frag; + } + + // Text node needs special case handling + if (self[START_CONTAINER].nodeType == 3 /* TEXT_NODE */) { + // get the substring + s = self[START_CONTAINER].nodeValue; + sub = s.substring(self[START_OFFSET], self[END_OFFSET]); + + // set the original text node to its new value + if (how != CLONE) { + n = self[START_CONTAINER]; + start = self[START_OFFSET]; + len = self[END_OFFSET] - self[START_OFFSET]; + + if (start === 0 && len >= n.nodeValue.length - 1) { + n.parentNode.removeChild(n); + } else { + n.deleteData(start, len); + } + + // Nothing is partially selected, so collapse to start point + self.collapse(TRUE); + } + + if (how == DELETE) { + return; + } + + if (sub.length > 0) { + frag.appendChild(doc.createTextNode(sub)); + } + + return frag; + } + + // Copy nodes between the start/end offsets. + n = _getSelectedNode(self[START_CONTAINER], self[START_OFFSET]); + cnt = self[END_OFFSET] - self[START_OFFSET]; + + while (n && cnt > 0) { + sibling = n.nextSibling; + xferNode = _traverseFullySelected(n, how); + + if (frag) { + frag.appendChild(xferNode); + } + + --cnt; + n = sibling; + } + + // Nothing is partially selected, so collapse to start point + if (how != CLONE) { + self.collapse(TRUE); + } + + return frag; + } + + function _traverseCommonStartContainer(endAncestor, how) { + var frag, n, endIdx, cnt, sibling, xferNode; + + if (how != DELETE) { + frag = createDocumentFragment(); + } + + n = _traverseRightBoundary(endAncestor, how); + + if (frag) { + frag.appendChild(n); + } + + endIdx = nodeIndex(endAncestor); + cnt = endIdx - self[START_OFFSET]; + + if (cnt <= 0) { + // Collapse to just before the endAncestor, which + // is partially selected. + if (how != CLONE) { + self.setEndBefore(endAncestor); + self.collapse(FALSE); + } + + return frag; + } + + n = endAncestor.previousSibling; + while (cnt > 0) { + sibling = n.previousSibling; + xferNode = _traverseFullySelected(n, how); + + if (frag) { + frag.insertBefore(xferNode, frag.firstChild); + } + + --cnt; + n = sibling; + } + + // Collapse to just before the endAncestor, which + // is partially selected. + if (how != CLONE) { + self.setEndBefore(endAncestor); + self.collapse(FALSE); + } + + return frag; + } + + function _traverseCommonEndContainer(startAncestor, how) { + var frag, startIdx, n, cnt, sibling, xferNode; + + if (how != DELETE) { + frag = createDocumentFragment(); + } + + n = _traverseLeftBoundary(startAncestor, how); + if (frag) { + frag.appendChild(n); + } + + startIdx = nodeIndex(startAncestor); + ++startIdx; // Because we already traversed it + + cnt = self[END_OFFSET] - startIdx; + n = startAncestor.nextSibling; + while (n && cnt > 0) { + sibling = n.nextSibling; + xferNode = _traverseFullySelected(n, how); + + if (frag) { + frag.appendChild(xferNode); + } + + --cnt; + n = sibling; + } + + if (how != CLONE) { + self.setStartAfter(startAncestor); + self.collapse(TRUE); + } + + return frag; + } + + function _traverseCommonAncestors(startAncestor, endAncestor, how) { + var n, frag, startOffset, endOffset, cnt, sibling, nextSibling; + + if (how != DELETE) { + frag = createDocumentFragment(); + } + + n = _traverseLeftBoundary(startAncestor, how); + if (frag) { + frag.appendChild(n); + } + + startOffset = nodeIndex(startAncestor); + endOffset = nodeIndex(endAncestor); + ++startOffset; + + cnt = endOffset - startOffset; + sibling = startAncestor.nextSibling; + + while (cnt > 0) { + nextSibling = sibling.nextSibling; + n = _traverseFullySelected(sibling, how); + + if (frag) { + frag.appendChild(n); + } + + sibling = nextSibling; + --cnt; + } + + n = _traverseRightBoundary(endAncestor, how); + + if (frag) { + frag.appendChild(n); + } + + if (how != CLONE) { + self.setStartAfter(startAncestor); + self.collapse(TRUE); + } + + return frag; + } + + function _traverseRightBoundary(root, how) { + var next = _getSelectedNode(self[END_CONTAINER], self[END_OFFSET] - 1), parent, clonedParent; + var prevSibling, clonedChild, clonedGrandParent, isFullySelected = next != self[END_CONTAINER]; + + if (next == root) { + return _traverseNode(next, isFullySelected, FALSE, how); + } + + parent = next.parentNode; + clonedParent = _traverseNode(parent, FALSE, FALSE, how); + + while (parent) { + while (next) { + prevSibling = next.previousSibling; + clonedChild = _traverseNode(next, isFullySelected, FALSE, how); + + if (how != DELETE) { + clonedParent.insertBefore(clonedChild, clonedParent.firstChild); + } + + isFullySelected = TRUE; + next = prevSibling; + } + + if (parent == root) { + return clonedParent; + } + + next = parent.previousSibling; + parent = parent.parentNode; + + clonedGrandParent = _traverseNode(parent, FALSE, FALSE, how); + + if (how != DELETE) { + clonedGrandParent.appendChild(clonedParent); + } + + clonedParent = clonedGrandParent; + } + } + + function _traverseLeftBoundary(root, how) { + var next = _getSelectedNode(self[START_CONTAINER], self[START_OFFSET]), isFullySelected = next != self[START_CONTAINER]; + var parent, clonedParent, nextSibling, clonedChild, clonedGrandParent; + + if (next == root) { + return _traverseNode(next, isFullySelected, TRUE, how); + } + + parent = next.parentNode; + clonedParent = _traverseNode(parent, FALSE, TRUE, how); + + while (parent) { + while (next) { + nextSibling = next.nextSibling; + clonedChild = _traverseNode(next, isFullySelected, TRUE, how); + + if (how != DELETE) { + clonedParent.appendChild(clonedChild); + } + + isFullySelected = TRUE; + next = nextSibling; + } + + if (parent == root) { + return clonedParent; + } + + next = parent.nextSibling; + parent = parent.parentNode; + + clonedGrandParent = _traverseNode(parent, FALSE, TRUE, how); + + if (how != DELETE) { + clonedGrandParent.appendChild(clonedParent); + } + + clonedParent = clonedGrandParent; + } + } + + function _traverseNode(n, isFullySelected, isLeft, how) { + var txtValue, newNodeValue, oldNodeValue, offset, newNode; + + if (isFullySelected) { + return _traverseFullySelected(n, how); + } + + if (n.nodeType == 3 /* TEXT_NODE */) { + txtValue = n.nodeValue; + + if (isLeft) { + offset = self[START_OFFSET]; + newNodeValue = txtValue.substring(offset); + oldNodeValue = txtValue.substring(0, offset); + } else { + offset = self[END_OFFSET]; + newNodeValue = txtValue.substring(0, offset); + oldNodeValue = txtValue.substring(offset); + } + + if (how != CLONE) { + n.nodeValue = oldNodeValue; + } + + if (how == DELETE) { + return; + } + + newNode = dom.clone(n, FALSE); + newNode.nodeValue = newNodeValue; + + return newNode; + } + + if (how == DELETE) { + return; + } + + return dom.clone(n, FALSE); + } + + function _traverseFullySelected(n, how) { + if (how != DELETE) { + return how == CLONE ? dom.clone(n, TRUE) : n; + } + + n.parentNode.removeChild(n); + } + + function toStringIE() { + return dom.create('body', null, cloneContents()).outerText; + } + + extend(self, { + // Inital states + startContainer: doc, + startOffset: 0, + endContainer: doc, + endOffset: 0, + collapsed: TRUE, + commonAncestorContainer: doc, + + // Range constants + START_TO_START: 0, + START_TO_END: 1, + END_TO_END: 2, + END_TO_START: 3, + + // Public methods + setStart: setStart, + setEnd: setEnd, + setStartBefore: setStartBefore, + setStartAfter: setStartAfter, + setEndBefore: setEndBefore, + setEndAfter: setEndAfter, + collapse: collapse, + selectNode: selectNode, + selectNodeContents: selectNodeContents, + compareBoundaryPoints: compareBoundaryPoints, + deleteContents: deleteContents, + extractContents: extractContents, + cloneContents: cloneContents, + insertNode: insertNode, + surroundContents: surroundContents, + cloneRange: cloneRange, + toStringIE: toStringIE + }); + + return self; + } + + // Older IE versions doesn't let you override toString by it's constructor so we have to stick it in the prototype + Range.prototype.toString = function() { + return this.toStringIE(); + }; + + return Range; +}); + +// Included from: js/tinymce/classes/html/Entities.js + +/** + * Entities.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*jshint bitwise:false */ +/*eslint no-bitwise:0 */ + +/** + * Entity encoder class. + * + * @class tinymce.html.Entities + * @static + * @version 3.4 + */ +define("tinymce/html/Entities", [ + "tinymce/util/Tools" +], function(Tools) { + var makeMap = Tools.makeMap; + + var namedEntities, baseEntities, reverseEntities, + attrsCharsRegExp = /[&<>\"\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, + textCharsRegExp = /[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, + rawCharsRegExp = /[<>&\"\']/g, + entityRegExp = /&(#x|#)?([\w]+);/g, + asciiMap = { + 128: "\u20AC", 130: "\u201A", 131: "\u0192", 132: "\u201E", 133: "\u2026", 134: "\u2020", + 135: "\u2021", 136: "\u02C6", 137: "\u2030", 138: "\u0160", 139: "\u2039", 140: "\u0152", + 142: "\u017D", 145: "\u2018", 146: "\u2019", 147: "\u201C", 148: "\u201D", 149: "\u2022", + 150: "\u2013", 151: "\u2014", 152: "\u02DC", 153: "\u2122", 154: "\u0161", 155: "\u203A", + 156: "\u0153", 158: "\u017E", 159: "\u0178" + }; + + // Raw entities + baseEntities = { + '\"': '"', // Needs to be escaped since the YUI compressor would otherwise break the code + "'": ''', + '<': '<', + '>': '>', + '&': '&' + }; + + // Reverse lookup table for raw entities + reverseEntities = { + '<': '<', + '>': '>', + '&': '&', + '"': '"', + ''': "'" + }; + + // Decodes text by using the browser + function nativeDecode(text) { + var elm; + + elm = document.createElement("div"); + elm.innerHTML = text; + + return elm.textContent || elm.innerText || text; + } + + // Build a two way lookup table for the entities + function buildEntitiesLookup(items, radix) { + var i, chr, entity, lookup = {}; + + if (items) { + items = items.split(','); + radix = radix || 10; + + // Build entities lookup table + for (i = 0; i < items.length; i += 2) { + chr = String.fromCharCode(parseInt(items[i], radix)); + + // Only add non base entities + if (!baseEntities[chr]) { + entity = '&' + items[i + 1] + ';'; + lookup[chr] = entity; + lookup[entity] = chr; + } + } + + return lookup; + } + } + + // Unpack entities lookup where the numbers are in radix 32 to reduce the size + namedEntities = buildEntitiesLookup( + '50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,' + + '5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,' + + '5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,' + + '5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,' + + '68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,' + + '6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,' + + '6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,' + + '75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,' + + '7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,' + + '7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,' + + 'sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,' + + 'st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,' + + 't9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,' + + 'tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,' + + 'u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,' + + '81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,' + + '8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,' + + '8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,' + + '8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,' + + '8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,' + + 'nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,' + + 'rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,' + + 'Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,' + + '80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,' + + '811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro', 32); + + var Entities = { + /** + * Encodes the specified string using raw entities. This means only the required XML base entities will be endoded. + * + * @method encodeRaw + * @param {String} text Text to encode. + * @param {Boolean} attr Optional flag to specify if the text is attribute contents. + * @return {String} Entity encoded text. + */ + encodeRaw: function(text, attr) { + return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function(chr) { + return baseEntities[chr] || chr; + }); + }, + + /** + * Encoded the specified text with both the attributes and text entities. This function will produce larger text contents + * since it doesn't know if the context is within a attribute or text node. This was added for compatibility + * and is exposed as the DOMUtils.encode function. + * + * @method encodeAllRaw + * @param {String} text Text to encode. + * @return {String} Entity encoded text. + */ + encodeAllRaw: function(text) { + return ('' + text).replace(rawCharsRegExp, function(chr) { + return baseEntities[chr] || chr; + }); + }, + + /** + * Encodes the specified string using numeric entities. The core entities will be + * encoded as named ones but all non lower ascii characters will be encoded into numeric entities. + * + * @method encodeNumeric + * @param {String} text Text to encode. + * @param {Boolean} attr Optional flag to specify if the text is attribute contents. + * @return {String} Entity encoded text. + */ + encodeNumeric: function(text, attr) { + return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function(chr) { + // Multi byte sequence convert it to a single entity + if (chr.length > 1) { + return '&#' + (((chr.charCodeAt(0) - 0xD800) * 0x400) + (chr.charCodeAt(1) - 0xDC00) + 0x10000) + ';'; + } + + return baseEntities[chr] || '&#' + chr.charCodeAt(0) + ';'; + }); + }, + + /** + * Encodes the specified string using named entities. The core entities will be encoded + * as named ones but all non lower ascii characters will be encoded into named entities. + * + * @method encodeNamed + * @param {String} text Text to encode. + * @param {Boolean} attr Optional flag to specify if the text is attribute contents. + * @param {Object} entities Optional parameter with entities to use. + * @return {String} Entity encoded text. + */ + encodeNamed: function(text, attr, entities) { + entities = entities || namedEntities; + + return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function(chr) { + return baseEntities[chr] || entities[chr] || chr; + }); + }, + + /** + * Returns an encode function based on the name(s) and it's optional entities. + * + * @method getEncodeFunc + * @param {String} name Comma separated list of encoders for example named,numeric. + * @param {String} entities Optional parameter with entities to use instead of the built in set. + * @return {function} Encode function to be used. + */ + getEncodeFunc: function(name, entities) { + entities = buildEntitiesLookup(entities) || namedEntities; + + function encodeNamedAndNumeric(text, attr) { + return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function(chr) { + return baseEntities[chr] || entities[chr] || '&#' + chr.charCodeAt(0) + ';' || chr; + }); + } + + function encodeCustomNamed(text, attr) { + return Entities.encodeNamed(text, attr, entities); + } + + // Replace + with , to be compatible with previous TinyMCE versions + name = makeMap(name.replace(/\+/g, ',')); + + // Named and numeric encoder + if (name.named && name.numeric) { + return encodeNamedAndNumeric; + } + + // Named encoder + if (name.named) { + // Custom names + if (entities) { + return encodeCustomNamed; + } + + return Entities.encodeNamed; + } + + // Numeric + if (name.numeric) { + return Entities.encodeNumeric; + } + + // Raw encoder + return Entities.encodeRaw; + }, + + /** + * Decodes the specified string, this will replace entities with raw UTF characters. + * + * @method decode + * @param {String} text Text to entity decode. + * @return {String} Entity decoded string. + */ + decode: function(text) { + return text.replace(entityRegExp, function(all, numeric, value) { + if (numeric) { + value = parseInt(value, numeric.length === 2 ? 16 : 10); + + // Support upper UTF + if (value > 0xFFFF) { + value -= 0x10000; + + return String.fromCharCode(0xD800 + (value >> 10), 0xDC00 + (value & 0x3FF)); + } else { + return asciiMap[value] || String.fromCharCode(value); + } + } + + return reverseEntities[all] || namedEntities[all] || nativeDecode(all); + }); + } + }; + + return Entities; +}); + +// Included from: js/tinymce/classes/Env.js + +/** + * Env.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class contains various environment constants like browser versions etc. + * Normally you don't want to sniff specific browser versions but sometimes you have + * to when it's impossible to feature detect. So use this with care. + * + * @class tinymce.Env + * @static + */ +define("tinymce/Env", [], function() { + var nav = navigator, userAgent = nav.userAgent; + var opera, webkit, ie, ie11, gecko, mac, iDevice; + + opera = window.opera && window.opera.buildNumber; + webkit = /WebKit/.test(userAgent); + ie = !webkit && !opera && (/MSIE/gi).test(userAgent) && (/Explorer/gi).test(nav.appName); + ie = ie && /MSIE (\w+)\./.exec(userAgent)[1]; + ie11 = userAgent.indexOf('Trident/') != -1 && (userAgent.indexOf('rv:') != -1 || nav.appName.indexOf('Netscape') != -1) ? 11 : false; + ie = ie || ie11; + gecko = !webkit && !ie11 && /Gecko/.test(userAgent); + mac = userAgent.indexOf('Mac') != -1; + iDevice = /(iPad|iPhone)/.test(userAgent); + + // Is a iPad/iPhone and not on iOS5 sniff the WebKit version since older iOS WebKit versions + // says it has contentEditable support but there is no visible caret. + var contentEditable = !iDevice || userAgent.match(/AppleWebKit\/(\d*)/)[1] >= 534; + + return { + /** + * Constant that is true if the browser is Opera. + * + * @property opera + * @type Boolean + * @final + */ + opera: opera, + + /** + * Constant that is true if the browser is WebKit (Safari/Chrome). + * + * @property webKit + * @type Boolean + * @final + */ + webkit: webkit, + + /** + * Constant that is more than zero if the browser is IE. + * + * @property ie + * @type Boolean + * @final + */ + ie: ie, + + /** + * Constant that is true if the browser is Gecko. + * + * @property gecko + * @type Boolean + * @final + */ + gecko: gecko, + + /** + * Constant that is true if the os is Mac OS. + * + * @property mac + * @type Boolean + * @final + */ + mac: mac, + + /** + * Constant that is true if the os is iOS. + * + * @property iOS + * @type Boolean + * @final + */ + iOS: iDevice, + + /** + * Constant that is true if the browser supports editing. + * + * @property contentEditable + * @type Boolean + * @final + */ + contentEditable: contentEditable, + + /** + * Transparent image data url. + * + * @property transparentSrc + * @type Boolean + * @final + */ + transparentSrc: "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", + + /** + * Returns true/false if the browser can or can't place the caret after a inline block like an image. + * + * @property noCaretAfter + * @type Boolean + * @final + */ + caretAfter: ie != 8, + + /** + * Constant that is true if the browser supports native DOM Ranges. IE 9+. + * + * @property range + * @type Boolean + */ + range: window.getSelection && "Range" in window, + + /** + * Returns the IE document mode for non IE browsers this will fake IE 10. + * + * @property documentMode + * @type Number + */ + documentMode: ie ? (document.documentMode || 7) : 10 + }; +}); + +// Included from: js/tinymce/classes/dom/StyleSheetLoader.js + +/** + * StyleSheetLoader.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles loading of external stylesheets and fires events when these are loaded. + * + * @class tinymce.dom.StyleSheetLoader + * @private + */ +define("tinymce/dom/StyleSheetLoader", [], function() { + "use strict"; + + return function(document, settings) { + var idCount = 0, loadedStates = {}, maxLoadTime; + + settings = settings || {}; + maxLoadTime = settings.maxLoadTime || 5000; + + function appendToHead(node) { + document.getElementsByTagName('head')[0].appendChild(node); + } + + /** + * Loads the specified css style sheet file and call the loadedCallback once it's finished loading. + * + * @method load + * @param {String} url Url to be loaded. + * @param {Function} loadedCallback Callback to be executed when loaded. + * @param {Function} errorCallback Callback to be executed when failed loading. + */ + function load(url, loadedCallback, errorCallback) { + var link, style, startTime, state; + + function passed() { + var callbacks = state.passed, i = callbacks.length; + + while (i--) { + callbacks[i](); + } + + state.status = 2; + state.passed = []; + state.failed = []; + } + + function failed() { + var callbacks = state.failed, i = callbacks.length; + + while (i--) { + callbacks[i](); + } + + state.status = 3; + state.passed = []; + state.failed = []; + } + + // Sniffs for older WebKit versions that have the link.onload but a broken one + function isOldWebKit() { + var webKitChunks = navigator.userAgent.match(/WebKit\/(\d*)/); + return !!(webKitChunks && webKitChunks[1] < 536); + } + + // Calls the waitCallback until the test returns true or the timeout occurs + function wait(testCallback, waitCallback) { + if (!testCallback()) { + // Wait for timeout + if ((new Date().getTime()) - startTime < maxLoadTime) { + window.setTimeout(waitCallback, 0); + } else { + failed(); + } + } + } + + // Workaround for WebKit that doesn't properly support the onload event for link elements + // Or WebKit that fires the onload event before the StyleSheet is added to the document + function waitForWebKitLinkLoaded() { + wait(function() { + var styleSheets = document.styleSheets, styleSheet, i = styleSheets.length, owner; + + while (i--) { + styleSheet = styleSheets[i]; + owner = styleSheet.ownerNode ? styleSheet.ownerNode : styleSheet.owningElement; + if (owner && owner.id === link.id) { + passed(); + return true; + } + } + }, waitForWebKitLinkLoaded); + } + + // Workaround for older Geckos that doesn't have any onload event for StyleSheets + function waitForGeckoLinkLoaded() { + wait(function() { + try { + // Accessing the cssRules will throw an exception until the CSS file is loaded + var cssRules = style.sheet.cssRules; + passed(); + return !!cssRules; + } catch (ex) { + // Ignore + } + }, waitForGeckoLinkLoaded); + } + + if (!loadedStates[url]) { + state = { + passed: [], + failed: [] + }; + + loadedStates[url] = state; + } else { + state = loadedStates[url]; + } + + if (loadedCallback) { + state.passed.push(loadedCallback); + } + + if (errorCallback) { + state.failed.push(errorCallback); + } + + // Is loading wait for it to pass + if (state.status == 1) { + return; + } + + // Has finished loading and was success + if (state.status == 2) { + passed(); + return; + } + + // Has finished loading and was a failure + if (state.status == 3) { + failed(); + return; + } + + // Start loading + state.status = 1; + link = document.createElement('link'); + link.rel = 'stylesheet'; + link.type = 'text/css'; + link.id = 'u' + (idCount++); + link.async = false; + link.defer = false; + startTime = new Date().getTime(); + + // Feature detect onload on link element and sniff older webkits since it has an broken onload event + if ("onload" in link && !isOldWebKit()) { + link.onload = waitForWebKitLinkLoaded; + link.onerror = failed; + } else { + // Sniff for old Firefox that doesn't support the onload event on link elements + // TODO: Remove this in the future when everyone uses modern browsers + if (navigator.userAgent.indexOf("Firefox") > 0) { + style = document.createElement('style'); + style.textContent = '@import "' + url + '"'; + waitForGeckoLinkLoaded(); + appendToHead(style); + return; + } else { + // Use the id owner on older webkits + waitForWebKitLinkLoaded(); + } + } + + appendToHead(link); + link.href = url; + } + + this.load = load; + }; +}); + +// Included from: js/tinymce/classes/dom/DOMUtils.js + +/** + * DOMUtils.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Utility class for various DOM manipulation and retrieval functions. + * + * @class tinymce.dom.DOMUtils + * @example + * // Add a class to an element by id in the page + * tinymce.DOM.addClass('someid', 'someclass'); + * + * // Add a class to an element by id inside the editor + * tinymce.activeEditor.dom.addClass('someid', 'someclass'); + */ +define("tinymce/dom/DOMUtils", [ + "tinymce/dom/Sizzle", + "tinymce/html/Styles", + "tinymce/dom/EventUtils", + "tinymce/dom/TreeWalker", + "tinymce/dom/Range", + "tinymce/html/Entities", + "tinymce/Env", + "tinymce/util/Tools", + "tinymce/dom/StyleSheetLoader" +], function(Sizzle, Styles, EventUtils, TreeWalker, Range, Entities, Env, Tools, StyleSheetLoader) { + // Shorten names + var each = Tools.each, is = Tools.is, grep = Tools.grep, trim = Tools.trim, extend = Tools.extend; + var isWebKit = Env.webkit, isIE = Env.ie; + var simpleSelectorRe = /^([a-z0-9],?)+$/i; + var whiteSpaceRegExp = /^[ \t\r\n]*$/; + var numericCssMap = Tools.makeMap('fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom', ' '); + + /** + * Constructs a new DOMUtils instance. Consult the Wiki for more details on settings etc for this class. + * + * @constructor + * @method DOMUtils + * @param {Document} d Document reference to bind the utility class to. + * @param {settings} s Optional settings collection. + */ + function DOMUtils(doc, settings) { + var self = this, blockElementsMap; + + self.doc = doc; + self.win = window; + self.files = {}; + self.counter = 0; + self.stdMode = !isIE || doc.documentMode >= 8; + self.boxModel = !isIE || doc.compatMode == "CSS1Compat" || self.stdMode; + self.hasOuterHTML = "outerHTML" in doc.createElement("a"); + self.styleSheetLoader = new StyleSheetLoader(doc); + this.boundEvents = []; + + self.settings = settings = extend({ + keep_values: false, + hex_colors: 1 + }, settings); + + self.schema = settings.schema; + self.styles = new Styles({ + url_converter: settings.url_converter, + url_converter_scope: settings.url_converter_scope + }, settings.schema); + + self.fixDoc(doc); + self.events = settings.ownEvents ? new EventUtils(settings.proxy) : EventUtils.Event; + blockElementsMap = settings.schema ? settings.schema.getBlockElements() : {}; + + /** + * Returns true/false if the specified element is a block element or not. + * + * @method isBlock + * @param {Node/String} node Element/Node to check. + * @return {Boolean} True/False state if the node is a block element or not. + */ + self.isBlock = function(node) { + // Fix for #5446 + if (!node) { + return false; + } + + // This function is called in module pattern style since it might be executed with the wrong this scope + var type = node.nodeType; + + // If it's a node then check the type and use the nodeName + if (type) { + return !!(type === 1 && blockElementsMap[node.nodeName]); + } + + return !!blockElementsMap[node]; + }; + } + + DOMUtils.prototype = { + root: null, + props: { + "for": "htmlFor", + "class": "className", + className: "className", + checked: "checked", + disabled: "disabled", + maxlength: "maxLength", + readonly: "readOnly", + selected: "selected", + value: "value", + id: "id", + name: "name", + type: "type" + }, + + fixDoc: function(doc) { + var settings = this.settings, name; + + if (isIE && settings.schema) { + // Add missing HTML 4/5 elements to IE + ('abbr article aside audio canvas ' + + 'details figcaption figure footer ' + + 'header hgroup mark menu meter nav ' + + 'output progress section summary ' + + 'time video').replace(/\w+/g, function(name) { + doc.createElement(name); + }); + + // Create all custom elements + for (name in settings.schema.getCustomElements()) { + doc.createElement(name); + } + } + }, + + clone: function(node, deep) { + var self = this, clone, doc; + + // TODO: Add feature detection here in the future + if (!isIE || node.nodeType !== 1 || deep) { + return node.cloneNode(deep); + } + + doc = self.doc; + + // Make a HTML5 safe shallow copy + if (!deep) { + clone = doc.createElement(node.nodeName); + + // Copy attribs + each(self.getAttribs(node), function(attr) { + self.setAttrib(clone, attr.nodeName, self.getAttrib(node, attr.nodeName)); + }); + + return clone; + } +/* + // Setup HTML5 patched document fragment + if (!self.frag) { + self.frag = doc.createDocumentFragment(); + self.fixDoc(self.frag); + } + + // Make a deep copy by adding it to the document fragment then removing it this removed the :section + clone = doc.createElement('div'); + self.frag.appendChild(clone); + clone.innerHTML = node.outerHTML; + self.frag.removeChild(clone); +*/ + return clone.firstChild; + }, + + /** + * Returns the root node of the document. This is normally the body but might be a DIV. Parents like getParent will not + * go above the point of this root node. + * + * @method getRoot + * @return {Element} Root element for the utility class. + */ + getRoot: function() { + var self = this; + + return self.get(self.settings.root_element) || self.doc.body; + }, + + /** + * Returns the viewport of the window. + * + * @method getViewPort + * @param {Window} win Optional window to get viewport of. + * @return {Object} Viewport object with fields x, y, w and h. + */ + getViewPort: function(win) { + var doc, rootElm; + + win = !win ? this.win : win; + doc = win.document; + rootElm = this.boxModel ? doc.documentElement : doc.body; + + // Returns viewport size excluding scrollbars + return { + x: win.pageXOffset || rootElm.scrollLeft, + y: win.pageYOffset || rootElm.scrollTop, + w: win.innerWidth || rootElm.clientWidth, + h: win.innerHeight || rootElm.clientHeight + }; + }, + + /** + * Returns the rectangle for a specific element. + * + * @method getRect + * @param {Element/String} elm Element object or element ID to get rectangle from. + * @return {object} Rectangle for specified element object with x, y, w, h fields. + */ + getRect: function(elm) { + var self = this, pos, size; + + elm = self.get(elm); + pos = self.getPos(elm); + size = self.getSize(elm); + + return { + x: pos.x, y: pos.y, + w: size.w, h: size.h + }; + }, + + /** + * Returns the size dimensions of the specified element. + * + * @method getSize + * @param {Element/String} elm Element object or element ID to get rectangle from. + * @return {object} Rectangle for specified element object with w, h fields. + */ + getSize: function(elm) { + var self = this, w, h; + + elm = self.get(elm); + w = self.getStyle(elm, 'width'); + h = self.getStyle(elm, 'height'); + + // Non pixel value, then force offset/clientWidth + if (w.indexOf('px') === -1) { + w = 0; + } + + // Non pixel value, then force offset/clientWidth + if (h.indexOf('px') === -1) { + h = 0; + } + + return { + w: parseInt(w, 10) || elm.offsetWidth || elm.clientWidth, + h: parseInt(h, 10) || elm.offsetHeight || elm.clientHeight + }; + }, + + /** + * Returns a node by the specified selector function. This function will + * loop through all parent nodes and call the specified function for each node. + * If the function then returns true indicating that it has found what it was looking for, the loop execution will then end + * and the node it found will be returned. + * + * @method getParent + * @param {Node/String} node DOM node to search parents on or ID string. + * @param {function} selector Selection function or CSS selector to execute on each node. + * @param {Node} root Optional root element, never go below this point. + * @return {Node} DOM Node or null if it wasn't found. + */ + getParent: function(node, selector, root) { + return this.getParents(node, selector, root, false); + }, + + /** + * Returns a node list of all parents matching the specified selector function or pattern. + * If the function then returns true indicating that it has found what it was looking for and that node will be collected. + * + * @method getParents + * @param {Node/String} node DOM node to search parents on or ID string. + * @param {function} selector Selection function to execute on each node or CSS pattern. + * @param {Node} root Optional root element, never go below this point. + * @return {Array} Array of nodes or null if it wasn't found. + */ + getParents: function(node, selector, root, collect) { + var self = this, selectorVal, result = []; + + node = self.get(node); + collect = collect === undefined; + + // Default root on inline mode + root = root || (self.getRoot().nodeName != 'BODY' ? self.getRoot().parentNode : null); + + // Wrap node name as func + if (is(selector, 'string')) { + selectorVal = selector; + + if (selector === '*') { + selector = function(node) {return node.nodeType == 1;}; + } else { + selector = function(node) { + return self.is(node, selectorVal); + }; + } + } + + while (node) { + if (node == root || !node.nodeType || node.nodeType === 9) { + break; + } + + if (!selector || selector(node)) { + if (collect) { + result.push(node); + } else { + return node; + } + } + + node = node.parentNode; + } + + return collect ? result : null; + }, + + /** + * Returns the specified element by ID or the input element if it isn't a string. + * + * @method get + * @param {String/Element} n Element id to look for or element to just pass though. + * @return {Element} Element matching the specified id or null if it wasn't found. + */ + get: function(elm) { + var name; + + if (elm && this.doc && typeof(elm) == 'string') { + name = elm; + elm = this.doc.getElementById(elm); + + // IE and Opera returns meta elements when they match the specified input ID, but getElementsByName seems to do the trick + if (elm && elm.id !== name) { + return this.doc.getElementsByName(name)[1]; + } + } + + return elm; + }, + + /** + * Returns the next node that matches selector or function + * + * @method getNext + * @param {Node} node Node to find siblings from. + * @param {String/function} selector Selector CSS expression or function. + * @return {Node} Next node item matching the selector or null if it wasn't found. + */ + getNext: function(node, selector) { + return this._findSib(node, selector, 'nextSibling'); + }, + + /** + * Returns the previous node that matches selector or function + * + * @method getPrev + * @param {Node} node Node to find siblings from. + * @param {String/function} selector Selector CSS expression or function. + * @return {Node} Previous node item matching the selector or null if it wasn't found. + */ + getPrev: function(node, selector) { + return this._findSib(node, selector, 'previousSibling'); + }, + + // #ifndef jquery + + /** + * Selects specific elements by a CSS level 3 pattern. For example "div#a1 p.test". + * This function is optimized for the most common patterns needed in TinyMCE but it also performs well enough + * on more complex patterns. + * + * @method select + * @param {String} selector CSS level 3 pattern to select/find elements by. + * @param {Object} scope Optional root element/scope element to search in. + * @return {Array} Array with all matched elements. + * @example + * // Adds a class to all paragraphs in the currently active editor + * tinymce.activeEditor.dom.addClass(tinymce.activeEditor.dom.select('p'), 'someclass'); + * + * // Adds a class to all spans that have the test class in the currently active editor + * tinymce.activeEditor.dom.addClass(tinymce.activeEditor.dom.select('span.test'), 'someclass') + */ + select: function(selector, scope) { + var self = this; + + //Sizzle.selectors.cacheLength = 0; + return Sizzle(selector, self.get(scope) || self.get(self.settings.root_element) || self.doc, []); + }, + + /** + * Returns true/false if the specified element matches the specified css pattern. + * + * @method is + * @param {Node/NodeList} elm DOM node to match or an array of nodes to match. + * @param {String} selector CSS pattern to match the element against. + */ + is: function(elm, selector) { + var i; + + // If it isn't an array then try to do some simple selectors instead of Sizzle for to boost performance + if (elm.length === undefined) { + // Simple all selector + if (selector === '*') { + return elm.nodeType == 1; + } + + // Simple selector just elements + if (simpleSelectorRe.test(selector)) { + selector = selector.toLowerCase().split(/,/); + elm = elm.nodeName.toLowerCase(); + + for (i = selector.length - 1; i >= 0; i--) { + if (selector[i] == elm) { + return true; + } + } + + return false; + } + } + + // Is non element + if (elm.nodeType && elm.nodeType != 1) { + return false; + } + + var elms = elm.nodeType ? [elm] : elm; + return Sizzle(selector, elms[0].ownerDocument || elms[0], null, elms).length > 0; + }, + + // #endif + + /** + * Adds the specified element to another element or elements. + * + * @method add + * @param {String/Element/Array} parentElm Element id string, DOM node element or array of ids or elements to add to. + * @param {String/Element} name Name of new element to add or existing element to add. + * @param {Object} attrs Optional object collection with arguments to add to the new element(s). + * @param {String} html Optional inner HTML contents to add for each element. + * @return {Element/Array} Element that got created, or an array of created elements if multiple input elements + * were passed in. + * @example + * // Adds a new paragraph to the end of the active editor + * tinymce.activeEditor.dom.add(tinymce.activeEditor.getBody(), 'p', {title: 'my title'}, 'Some content'); + */ + add: function(parentElm, name, attrs, html, create) { + var self = this; + + return this.run(parentElm, function(parentElm) { + var newElm; + + newElm = is(name, 'string') ? self.doc.createElement(name) : name; + self.setAttribs(newElm, attrs); + + if (html) { + if (html.nodeType) { + newElm.appendChild(html); + } else { + self.setHTML(newElm, html); + } + } + + return !create ? parentElm.appendChild(newElm) : newElm; + }); + }, + + /** + * Creates a new element. + * + * @method create + * @param {String} name Name of new element. + * @param {Object} attrs Optional object name/value collection with element attributes. + * @param {String} html Optional HTML string to set as inner HTML of the element. + * @return {Element} HTML DOM node element that got created. + * @example + * // Adds an element where the caret/selection is in the active editor + * var el = tinymce.activeEditor.dom.create('div', {id: 'test', 'class': 'myclass'}, 'some content'); + * tinymce.activeEditor.selection.setNode(el); + */ + create: function(name, attrs, html) { + return this.add(this.doc.createElement(name), name, attrs, html, 1); + }, + + /** + * Creates HTML string for element. The element will be closed unless an empty inner HTML string is passed in. + * + * @method createHTML + * @param {String} name Name of new element. + * @param {Object} attrs Optional object name/value collection with element attributes. + * @param {String} html Optional HTML string to set as inner HTML of the element. + * @return {String} String with new HTML element, for example: <a href="#">test</a>. + * @example + * // Creates a html chunk and inserts it at the current selection/caret location + * tinymce.activeEditor.selection.setContent(tinymce.activeEditor.dom.createHTML('a', {href: 'test.html'}, 'some line')); + */ + createHTML: function(name, attrs, html) { + var outHtml = '', key; + + outHtml += '<' + name; + + for (key in attrs) { + if (attrs.hasOwnProperty(key) && attrs[key] !== null) { + outHtml += ' ' + key + '="' + this.encode(attrs[key]) + '"'; + } + } + + // A call to tinymce.is doesn't work for some odd reason on IE9 possible bug inside their JS runtime + if (typeof(html) != "undefined") { + return outHtml + '>' + html + '</' + name + '>'; + } + + return outHtml + ' />'; + }, + + /** + * Creates a document fragment out of the specified HTML string. + * + * @method createFragment + * @param {String} html Html string to create fragment from. + * @return {DocumentFragment} Document fragment node. + */ + createFragment: function(html) { + var frag, node, doc = this.doc, container; + + container = doc.createElement("div"); + frag = doc.createDocumentFragment(); + + if (html) { + container.innerHTML = html; + } + + while ((node = container.firstChild)) { + frag.appendChild(node); + } + + return frag; + }, + + /** + * Removes/deletes the specified element(s) from the DOM. + * + * @method remove + * @param {String/Element/Array} node ID of element or DOM element object or array containing multiple elements/ids. + * @param {Boolean} keep_children Optional state to keep children or not. If set to true all children will be + * placed at the location of the removed element. + * @return {Element/Array} HTML DOM element that got removed, or an array of removed elements if multiple input elements + * were passed in. + * @example + * // Removes all paragraphs in the active editor + * tinymce.activeEditor.dom.remove(tinymce.activeEditor.dom.select('p')); + * + * // Removes an element by id in the document + * tinymce.DOM.remove('mydiv'); + */ + remove: function(node, keep_children) { + return this.run(node, function(node) { + var child, parent = node.parentNode; + + if (!parent) { + return null; + } + + if (keep_children) { + while ((child = node.firstChild)) { + // IE 8 will crash if you don't remove completely empty text nodes + if (!isIE || child.nodeType !== 3 || child.nodeValue) { + parent.insertBefore(child, node); + } else { + node.removeChild(child); + } + } + } + + return parent.removeChild(node); + }); + }, + + /** + * Sets the CSS style value on a HTML element. The name can be a camelcase string + * or the CSS style name like background-color. + * + * @method setStyle + * @param {String/Element/Array} n HTML element/Element ID or Array of elements/ids to set CSS style value on. + * @param {String} na Name of the style value to set. + * @param {String} v Value to set on the style. + * @example + * // Sets a style value on all paragraphs in the currently active editor + * tinymce.activeEditor.dom.setStyle(tinymce.activeEditor.dom.select('p'), 'background-color', 'red'); + * + * // Sets a style value to an element by id in the current document + * tinymce.DOM.setStyle('mydiv', 'background-color', 'red'); + */ + setStyle: function(elm, name, value) { + return this.run(elm, function(elm) { + var self = this, style, key; + + if (name) { + if (typeof(name) === 'string') { + style = elm.style; + + // Camelcase it, if needed + name = name.replace(/-(\D)/g, function(a, b) { + return b.toUpperCase(); + }); + + // Default px suffix on these + if (typeof(value) === 'number' && !numericCssMap[name]) { + value += 'px'; + } + + // IE specific opacity + if (name === "opacity" && elm.runtimeStyle && typeof(elm.runtimeStyle.opacity) === "undefined") { + style.filter = value === '' ? '' : "alpha(opacity=" + (value * 100) + ")"; + } + + if (name == "float") { + // Old IE vs modern browsers + name = "cssFloat" in elm.style ? "cssFloat" : "styleFloat"; + } + + try { + style[name] = value; + } catch (ex) { + // Ignore IE errors + } + + // Force update of the style data + if (self.settings.update_styles) { + elm.removeAttribute('data-mce-style'); + } + } else { + for (key in name) { + self.setStyle(elm, key, name[key]); + } + } + } + }); + }, + + /** + * Returns the current style or runtime/computed value of an element. + * + * @method getStyle + * @param {String/Element} elm HTML element or element id string to get style from. + * @param {String} name Style name to return. + * @param {Boolean} computed Computed style. + * @return {String} Current style or computed style value of an element. + */ + getStyle: function(elm, name, computed) { + elm = this.get(elm); + + if (!elm) { + return; + } + + // W3C + if (this.doc.defaultView && computed) { + // Remove camelcase + name = name.replace(/[A-Z]/g, function(a){ + return '-' + a; + }); + + try { + return this.doc.defaultView.getComputedStyle(elm, null).getPropertyValue(name); + } catch (ex) { + // Old safari might fail + return null; + } + } + + // Camelcase it, if needed + name = name.replace(/-(\D)/g, function(a, b) { + return b.toUpperCase(); + }); + + if (name == 'float') { + name = isIE ? 'styleFloat' : 'cssFloat'; + } + + // IE & Opera + if (elm.currentStyle && computed) { + return elm.currentStyle[name]; + } + + return elm.style ? elm.style[name] : undefined; + }, + + /** + * Sets multiple styles on the specified element(s). + * + * @method setStyles + * @param {Element/String/Array} e DOM element, element id string or array of elements/ids to set styles on. + * @param {Object} o Name/Value collection of style items to add to the element(s). + * @example + * // Sets styles on all paragraphs in the currently active editor + * tinymce.activeEditor.dom.setStyles(tinymce.activeEditor.dom.select('p'), {'background-color': 'red', 'color': 'green'}); + * + * // Sets styles to an element by id in the current document + * tinymce.DOM.setStyles('mydiv', {'background-color': 'red', 'color': 'green'}); + */ + setStyles: function(elm, styles) { + this.setStyle(elm, styles); + }, + + css: function(elm, name, value) { + this.setStyle(elm, name, value); + }, + + /** + * Removes all attributes from an element or elements. + * + * @method removeAllAttribs + * @param {Element/String/Array} e DOM element, element id string or array of elements/ids to remove attributes from. + */ + removeAllAttribs: function(e) { + return this.run(e, function(e) { + var i, attrs = e.attributes; + for (i = attrs.length - 1; i >= 0; i--) { + e.removeAttributeNode(attrs.item(i)); + } + }); + }, + + /** + * Sets the specified attribute of an element or elements. + * + * @method setAttrib + * @param {Element/String/Array} e DOM element, element id string or array of elements/ids to set attribute on. + * @param {String} n Name of attribute to set. + * @param {String} v Value to set on the attribute - if this value is falsy like null, 0 or '' it will remove the attribute instead. + * @example + * // Sets class attribute on all paragraphs in the active editor + * tinymce.activeEditor.dom.setAttrib(tinymce.activeEditor.dom.select('p'), 'class', 'myclass'); + * + * // Sets class attribute on a specific element in the current page + * tinymce.dom.setAttrib('mydiv', 'class', 'myclass'); + */ + setAttrib: function(e, n, v) { + var self = this; + + // What's the point + if (!e || !n) { + return; + } + + return this.run(e, function(e) { + var s = self.settings; + var originalValue = e.getAttribute(n); + if (v !== null) { + switch (n) { + case "style": + if (!is(v, 'string')) { + each(v, function(v, n) { + self.setStyle(e, n, v); + }); + + return; + } + + // No mce_style for elements with these since they might get resized by the user + if (s.keep_values) { + if (v) { + e.setAttribute('data-mce-style', v, 2); + } else { + e.removeAttribute('data-mce-style', 2); + } + } + + e.style.cssText = v; + break; + + case "class": + e.className = v || ''; // Fix IE null bug + break; + + case "src": + case "href": + if (s.keep_values) { + if (s.url_converter) { + v = s.url_converter.call(s.url_converter_scope || self, v, n, e); + } + + self.setAttrib(e, 'data-mce-' + n, v, 2); + } + + break; + + case "shape": + e.setAttribute('data-mce-style', v); + break; + } + } + if (is(v) && v !== null && v.length !== 0) { + e.setAttribute(n, '' + v, 2); + } else { + e.removeAttribute(n, 2); + } + + // fire onChangeAttrib event for attributes that have changed + if (originalValue != v && s.onSetAttrib) { + s.onSetAttrib({attrElm: e, attrName: n, attrValue: v}); + } + }); + }, + + /** + * Sets two or more specified attributes of an element or elements. + * + * @method setAttribs + * @param {Element/String/Array} elm DOM element, element id string or array of elements/ids to set attributes on. + * @param {Object} attrs Name/Value collection of attribute items to add to the element(s). + * @example + * // Sets class and title attributes on all paragraphs in the active editor + * tinymce.activeEditor.dom.setAttribs(tinymce.activeEditor.dom.select('p'), {'class': 'myclass', title: 'some title'}); + * + * // Sets class and title attributes on a specific element in the current page + * tinymce.DOM.setAttribs('mydiv', {'class': 'myclass', title: 'some title'}); + */ + setAttribs: function(elm, attrs) { + var self = this; + + return this.run(elm, function(elm) { + each(attrs, function(value, name) { + self.setAttrib(elm, name, value); + }); + }); + }, + + /** + * Returns the specified attribute by name. + * + * @method getAttrib + * @param {String/Element} elm Element string id or DOM element to get attribute from. + * @param {String} name Name of attribute to get. + * @param {String} defaultVal Optional default value to return if the attribute didn't exist. + * @return {String} Attribute value string, default value or null if the attribute wasn't found. + */ + getAttrib: function(elm, name, defaultVal) { + var value, self = this, undef; + + elm = self.get(elm); + + if (!elm || elm.nodeType !== 1) { + return defaultVal === undef ? false : defaultVal; + } + + if (!is(defaultVal)) { + defaultVal = ''; + } + + // Try the mce variant for these + if (/^(src|href|style|coords|shape)$/.test(name)) { + value = elm.getAttribute("data-mce-" + name); + + if (value) { + return value; + } + } + + if (isIE && self.props[name]) { + value = elm[self.props[name]]; + value = value && value.nodeValue ? value.nodeValue : value; + } + + if (!value) { + value = elm.getAttribute(name, 2); + } + + // Check boolean attribs + if (/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(name)) { + if (elm[self.props[name]] === true && value === '') { + return name; + } + + return value ? name : ''; + } + + // Inner input elements will override attributes on form elements + if (elm.nodeName === "FORM" && elm.getAttributeNode(name)) { + return elm.getAttributeNode(name).nodeValue; + } + + if (name === 'style') { + value = value || elm.style.cssText; + + if (value) { + value = self.serializeStyle(self.parseStyle(value), elm.nodeName); + + if (self.settings.keep_values) { + elm.setAttribute('data-mce-style', value); + } + } + } + + // Remove Apple and WebKit stuff + if (isWebKit && name === "class" && value) { + value = value.replace(/(apple|webkit)\-[a-z\-]+/gi, ''); + } + + // Handle IE issues + if (isIE) { + switch (name) { + case 'rowspan': + case 'colspan': + // IE returns 1 as default value + if (value === 1) { + value = ''; + } + + break; + + case 'size': + // IE returns +0 as default value for size + if (value === '+0' || value === 20 || value === 0) { + value = ''; + } + + break; + + case 'width': + case 'height': + case 'vspace': + case 'checked': + case 'disabled': + case 'readonly': + if (value === 0) { + value = ''; + } + + break; + + case 'hspace': + // IE returns -1 as default value + if (value === -1) { + value = ''; + } + + break; + + case 'maxlength': + case 'tabindex': + // IE returns default value + if (value === 32768 || value === 2147483647 || value === '32768') { + value = ''; + } + + break; + + case 'multiple': + case 'compact': + case 'noshade': + case 'nowrap': + if (value === 65535) { + return name; + } + + return defaultVal; + + case 'shape': + value = value.toLowerCase(); + break; + + default: + // IE has odd anonymous function for event attributes + if (name.indexOf('on') === 0 && value) { + value = ('' + value).replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/, '$1'); + } + } + } + + return (value !== undef && value !== null && value !== '') ? '' + value : defaultVal; + }, + + /** + * Returns the absolute x, y position of a node. The position will be returned in an object with x, y fields. + * + * @method getPos + * @param {Element/String} elm HTML element or element id to get x, y position from. + * @param {Element} rootElm Optional root element to stop calculations at. + * @return {object} Absolute position of the specified element object with x, y fields. + */ + getPos: function(elm, rootElm) { + var self = this, x = 0, y = 0, offsetParent, doc = self.doc, pos; + + elm = self.get(elm); + rootElm = rootElm || doc.body; + + if (elm) { + // Use getBoundingClientRect if it exists since it's faster than looping offset nodes + if (rootElm === doc.body && elm.getBoundingClientRect) { + pos = elm.getBoundingClientRect(); + rootElm = self.boxModel ? doc.documentElement : doc.body; + + // Add scroll offsets from documentElement or body since IE with the wrong box model will use d.body and so do WebKit + // Also remove the body/documentelement clientTop/clientLeft on IE 6, 7 since they offset the position + x = pos.left + (doc.documentElement.scrollLeft || doc.body.scrollLeft) - rootElm.clientLeft; + y = pos.top + (doc.documentElement.scrollTop || doc.body.scrollTop) - rootElm.clientTop; + + return {x: x, y: y}; + } + + offsetParent = elm; + while (offsetParent && offsetParent != rootElm && offsetParent.nodeType) { + x += offsetParent.offsetLeft || 0; + y += offsetParent.offsetTop || 0; + offsetParent = offsetParent.offsetParent; + } + + offsetParent = elm.parentNode; + while (offsetParent && offsetParent != rootElm && offsetParent.nodeType) { + x -= offsetParent.scrollLeft || 0; + y -= offsetParent.scrollTop || 0; + offsetParent = offsetParent.parentNode; + } + } + + return {x: x, y: y}; + }, + + /** + * Parses the specified style value into an object collection. This parser will also + * merge and remove any redundant items that browsers might have added. It will also convert non-hex + * colors to hex values. Urls inside the styles will also be converted to absolute/relative based on settings. + * + * @method parseStyle + * @param {String} cssText Style value to parse, for example: border:1px solid red;. + * @return {Object} Object representation of that style, for example: {border: '1px solid red'} + */ + parseStyle: function(cssText) { + return this.styles.parse(cssText); + }, + + /** + * Serializes the specified style object into a string. + * + * @method serializeStyle + * @param {Object} styles Object to serialize as string, for example: {border: '1px solid red'} + * @param {String} name Optional element name. + * @return {String} String representation of the style object, for example: border: 1px solid red. + */ + serializeStyle: function(styles, name) { + return this.styles.serialize(styles, name); + }, + + /** + * Adds a style element at the top of the document with the specified cssText content. + * + * @method addStyle + * @param {String} cssText CSS Text style to add to top of head of document. + */ + addStyle: function(cssText) { + var self = this, doc = self.doc, head, styleElm; + + // Prevent inline from loading the same styles twice + if (self !== DOMUtils.DOM && doc === document) { + var addedStyles = DOMUtils.DOM.addedStyles; + + addedStyles = addedStyles || []; + if (addedStyles[cssText]) { + return; + } + + addedStyles[cssText] = true; + DOMUtils.DOM.addedStyles = addedStyles; + } + + // Create style element if needed + styleElm = doc.getElementById('mceDefaultStyles'); + if (!styleElm) { + styleElm = doc.createElement('style'); + styleElm.id = 'mceDefaultStyles'; + styleElm.type = 'text/css'; + + head = doc.getElementsByTagName('head')[0]; + if (head.firstChild) { + head.insertBefore(styleElm, head.firstChild); + } else { + head.appendChild(styleElm); + } + } + + // Append style data to old or new style element + if (styleElm.styleSheet) { + styleElm.styleSheet.cssText += cssText; + } else { + styleElm.appendChild(doc.createTextNode(cssText)); + } + }, + + /** + * Imports/loads the specified CSS file into the document bound to the class. + * + * @method loadCSS + * @param {String} u URL to CSS file to load. + * @example + * // Loads a CSS file dynamically into the current document + * tinymce.DOM.loadCSS('somepath/some.css'); + * + * // Loads a CSS file into the currently active editor instance + * tinymce.activeEditor.dom.loadCSS('somepath/some.css'); + * + * // Loads a CSS file into an editor instance by id + * tinymce.get('someid').dom.loadCSS('somepath/some.css'); + * + * // Loads multiple CSS files into the current document + * tinymce.DOM.loadCSS('somepath/some.css,somepath/someother.css'); + */ + loadCSS: function(url) { + var self = this, doc = self.doc, head; + + // Prevent inline from loading the same CSS file twice + if (self !== DOMUtils.DOM && doc === document) { + DOMUtils.DOM.loadCSS(url); + return; + } + + if (!url) { + url = ''; + } + + head = doc.getElementsByTagName('head')[0]; + + each(url.split(','), function(url) { + var link; + + if (self.files[url]) { + return; + } + + self.files[url] = true; + link = self.create('link', {rel: 'stylesheet', href: url}); + + // IE 8 has a bug where dynamically loading stylesheets would produce a 1 item remaining bug + // This fix seems to resolve that issue by recalcing the document once a stylesheet finishes loading + // It's ugly but it seems to work fine. + if (isIE && doc.documentMode && doc.recalc) { + link.onload = function() { + if (doc.recalc) { + doc.recalc(); + } + + link.onload = null; + }; + } + + head.appendChild(link); + }); + }, + + /** + * Adds a class to the specified element or elements. + * + * @method addClass + * @param {String/Element/Array} elm Element ID string or DOM element or array with elements or IDs. + * @param {String} cls Class name to add to each element. + * @return {String/Array} String with new class value or array with new class values for all elements. + * @example + * // Adds a class to all paragraphs in the active editor + * tinymce.activeEditor.dom.addClass(tinymce.activeEditor.dom.select('p'), 'myclass'); + * + * // Adds a class to a specific element in the current page + * tinymce.DOM.addClass('mydiv', 'myclass'); + */ + addClass: function(elm, cls) { + return this.run(elm, function(elm) { + var clsVal; + + if (!cls) { + return 0; + } + + if (this.hasClass(elm, cls)) { + return elm.className; + } + + clsVal = this.removeClass(elm, cls); + elm.className = clsVal = (clsVal !== '' ? (clsVal + ' ') : '') + cls; + + return clsVal; + }); + }, + + /** + * Removes a class from the specified element or elements. + * + * @method removeClass + * @param {String/Element/Array} elm Element ID string or DOM element or array with elements or IDs. + * @param {String} cls Class name to remove from each element. + * @return {String/Array} String of remaining class name(s), or an array of strings if multiple input elements + * were passed in. + * @example + * // Removes a class from all paragraphs in the active editor + * tinymce.activeEditor.dom.removeClass(tinymce.activeEditor.dom.select('p'), 'myclass'); + * + * // Removes a class from a specific element in the current page + * tinymce.DOM.removeClass('mydiv', 'myclass'); + */ + removeClass: function(elm, cls) { + var self = this, re; + + return self.run(elm, function(elm) { + var val; + + if (self.hasClass(elm, cls)) { + if (!re) { + re = new RegExp("(^|\\s+)" + cls + "(\\s+|$)", "g"); + } + + val = elm.className.replace(re, ' '); + val = trim(val != ' ' ? val : ''); + + elm.className = val; + + // Empty class attr + if (!val) { + elm.removeAttribute('class'); + elm.removeAttribute('className'); + } + + return val; + } + + return elm.className; + }); + }, + + /** + * Returns true if the specified element has the specified class. + * + * @method hasClass + * @param {String/Element} n HTML element or element id string to check CSS class on. + * @param {String} c CSS class to check for. + * @return {Boolean} true/false if the specified element has the specified class. + */ + hasClass: function(elm, cls) { + elm = this.get(elm); + + if (!elm || !cls) { + return false; + } + + return (' ' + elm.className + ' ').indexOf(' ' + cls + ' ') !== -1; + }, + + /** + * Toggles the specified class on/off. + * + * @method toggleClass + * @param {Element} elm Element to toggle class on. + * @param {[type]} cls Class to toggle on/off. + * @param {[type]} state Optional state to set. + */ + toggleClass: function(elm, cls, state) { + state = state === undefined ? !this.hasClass(elm, cls) : state; + + if (this.hasClass(elm, cls) !== state) { + if (state) { + this.addClass(elm, cls); + } else { + this.removeClass(elm, cls); + } + } + }, + + /** + * Shows the specified element(s) by ID by setting the "display" style. + * + * @method show + * @param {String/Element/Array} elm ID of DOM element or DOM element or array with elements or IDs to show. + */ + show: function(elm) { + return this.setStyle(elm, 'display', 'block'); + }, + + /** + * Hides the specified element(s) by ID by setting the "display" style. + * + * @method hide + * @param {String/Element/Array} e ID of DOM element or DOM element or array with elements or IDs to hide. + * @example + * // Hides an element by id in the document + * tinymce.DOM.hide('myid'); + */ + hide: function(elm) { + return this.setStyle(elm, 'display', 'none'); + }, + + /** + * Returns true/false if the element is hidden or not by checking the "display" style. + * + * @method isHidden + * @param {String/Element} e Id or element to check display state on. + * @return {Boolean} true/false if the element is hidden or not. + */ + isHidden: function(elm) { + elm = this.get(elm); + + return !elm || elm.style.display == 'none' || this.getStyle(elm, 'display') == 'none'; + }, + + /** + * Returns a unique id. This can be useful when generating elements on the fly. + * This method will not check if the element already exists. + * + * @method uniqueId + * @param {String} prefix Optional prefix to add in front of all ids - defaults to "mce_". + * @return {String} Unique id. + */ + uniqueId: function(prefix) { + return (!prefix ? 'mce_' : prefix) + (this.counter++); + }, + + /** + * Sets the specified HTML content inside the element or elements. The HTML will first be processed. This means + * URLs will get converted, hex color values fixed etc. Check processHTML for details. + * + * @method setHTML + * @param {Element/String/Array} e DOM element, element id string or array of elements/ids to set HTML inside of. + * @param {String} h HTML content to set as inner HTML of the element. + * @example + * // Sets the inner HTML of all paragraphs in the active editor + * tinymce.activeEditor.dom.setHTML(tinymce.activeEditor.dom.select('p'), 'some inner html'); + * + * // Sets the inner HTML of an element by id in the document + * tinymce.DOM.setHTML('mydiv', 'some inner html'); + */ + setHTML: function(element, html) { + var self = this; + + return self.run(element, function(element) { + if (isIE) { + // Remove all child nodes, IE keeps empty text nodes in DOM + while (element.firstChild) { + element.removeChild(element.firstChild); + } + + try { + // IE will remove comments from the beginning + // unless you padd the contents with something + element.innerHTML = '<br />' + html; + element.removeChild(element.firstChild); + } catch (ex) { + // IE sometimes produces an unknown runtime error on innerHTML if it's a block element + // within a block element for example a div inside a p + // This seems to fix this problem + + // Create new div with HTML contents and a BR in front to keep comments + var newElement = self.create('div'); + newElement.innerHTML = '<br />' + html; + + // Add all children from div to target + each(grep(newElement.childNodes), function(node, i) { + // Skip br element + if (i && element.canHaveHTML) { + element.appendChild(node); + } + }); + } + } else { + element.innerHTML = html; + } + + return html; + }); + }, + + /** + * Returns the outer HTML of an element. + * + * @method getOuterHTML + * @param {String/Element} elm Element ID or element object to get outer HTML from. + * @return {String} Outer HTML string. + * @example + * tinymce.DOM.getOuterHTML(editorElement); + * tinymce.activeEditor.getOuterHTML(tinymce.activeEditor.getBody()); + */ + getOuterHTML: function(elm) { + var doc, self = this; + + elm = self.get(elm); + + if (!elm) { + return null; + } + + if (elm.nodeType === 1 && self.hasOuterHTML) { + return elm.outerHTML; + } + + doc = (elm.ownerDocument || self.doc).createElement("body"); + doc.appendChild(elm.cloneNode(true)); + + return doc.innerHTML; + }, + + /** + * Sets the specified outer HTML on an element or elements. + * + * @method setOuterHTML + * @param {Element/String/Array} elm DOM element, element id string or array of elements/ids to set outer HTML on. + * @param {Object} html HTML code to set as outer value for the element. + * @param {Document} doc Optional document scope to use in this process - defaults to the document of the DOM class. + * @example + * // Sets the outer HTML of all paragraphs in the active editor + * tinymce.activeEditor.dom.setOuterHTML(tinymce.activeEditor.dom.select('p'), '<div>some html</div>'); + * + * // Sets the outer HTML of an element by id in the document + * tinymce.DOM.setOuterHTML('mydiv', '<div>some html</div>'); + */ + setOuterHTML: function(elm, html, doc) { + var self = this; + + return self.run(elm, function(elm) { + function set() { + var node, tempElm; + + tempElm = doc.createElement("body"); + tempElm.innerHTML = html; + + node = tempElm.lastChild; + while (node) { + self.insertAfter(node.cloneNode(true), elm); + node = node.previousSibling; + } + + self.remove(elm); + } + + // Only set HTML on elements + if (elm.nodeType == 1) { + doc = doc || elm.ownerDocument || self.doc; + + if (isIE) { + try { + // Try outerHTML for IE it sometimes produces an unknown runtime error + if (elm.nodeType == 1 && self.hasOuterHTML) { + elm.outerHTML = html; + } else { + set(); + } + } catch (ex) { + // Fix for unknown runtime error + set(); + } + } else { + set(); + } + } + }); + }, + + /** + * Entity decodes a string. This method decodes any HTML entities, such as å. + * + * @method decode + * @param {String} s String to decode entities on. + * @return {String} Entity decoded string. + */ + decode: Entities.decode, + + /** + * Entity encodes a string. This method encodes the most common entities, such as <>"&. + * + * @method encode + * @param {String} text String to encode with entities. + * @return {String} Entity encoded string. + */ + encode: Entities.encodeAllRaw, + + /** + * Inserts an element after the reference element. + * + * @method insertAfter + * @param {Element} node Element to insert after the reference. + * @param {Element/String/Array} reference_node Reference element, element id or array of elements to insert after. + * @return {Element/Array} Element that got added or an array with elements. + */ + insertAfter: function(node, reference_node) { + reference_node = this.get(reference_node); + + return this.run(node, function(node) { + var parent, nextSibling; + + parent = reference_node.parentNode; + nextSibling = reference_node.nextSibling; + + if (nextSibling) { + parent.insertBefore(node, nextSibling); + } else { + parent.appendChild(node); + } + + return node; + }); + }, + + /** + * Replaces the specified element or elements with the new element specified. The new element will + * be cloned if multiple input elements are passed in. + * + * @method replace + * @param {Element} newElm New element to replace old ones with. + * @param {Element/String/Array} oldELm Element DOM node, element id or array of elements or ids to replace. + * @param {Boolean} k Optional keep children state, if set to true child nodes from the old object will be added to new ones. + */ + replace: function(newElm, oldElm, keepChildren) { + var self = this; + + return self.run(oldElm, function(oldElm) { + if (is(oldElm, 'array')) { + newElm = newElm.cloneNode(true); + } + + if (keepChildren) { + each(grep(oldElm.childNodes), function(node) { + newElm.appendChild(node); + }); + } + + return oldElm.parentNode.replaceChild(newElm, oldElm); + }); + }, + + /** + * Renames the specified element and keeps its attributes and children. + * + * @method rename + * @param {Element} elm Element to rename. + * @param {String} name Name of the new element. + * @return {Element} New element or the old element if it needed renaming. + */ + rename: function(elm, name) { + var self = this, newElm; + + if (elm.nodeName != name.toUpperCase()) { + // Rename block element + newElm = self.create(name); + + // Copy attribs to new block + each(self.getAttribs(elm), function(attr_node) { + self.setAttrib(newElm, attr_node.nodeName, self.getAttrib(elm, attr_node.nodeName)); + }); + + // Replace block + self.replace(newElm, elm, 1); + } + + return newElm || elm; + }, + + /** + * Find the common ancestor of two elements. This is a shorter method than using the DOM Range logic. + * + * @method findCommonAncestor + * @param {Element} a Element to find common ancestor of. + * @param {Element} b Element to find common ancestor of. + * @return {Element} Common ancestor element of the two input elements. + */ + findCommonAncestor: function(a, b) { + var ps = a, pe; + + while (ps) { + pe = b; + + while (pe && ps != pe) { + pe = pe.parentNode; + } + + if (ps == pe) { + break; + } + + ps = ps.parentNode; + } + + if (!ps && a.ownerDocument) { + return a.ownerDocument.documentElement; + } + + return ps; + }, + + /** + * Parses the specified RGB color value and returns a hex version of that color. + * + * @method toHex + * @param {String} rgbVal RGB string value like rgb(1,2,3) + * @return {String} Hex version of that RGB value like #FF00FF. + */ + toHex: function(rgbVal) { + return this.styles.toHex(Tools.trim(rgbVal)); + }, + + /** + * Executes the specified function on the element by id or dom element node or array of elements/id. + * + * @method run + * @param {String/Element/Array} Element ID or DOM element object or array with ids or elements. + * @param {function} f Function to execute for each item. + * @param {Object} s Optional scope to execute the function in. + * @return {Object/Array} Single object, or an array of objects if multiple input elements were passed in. + */ + run: function(elm, func, scope) { + var self = this, result; + + if (typeof(elm) === 'string') { + elm = self.get(elm); + } + + if (!elm) { + return false; + } + + scope = scope || this; + if (!elm.nodeType && (elm.length || elm.length === 0)) { + result = []; + + each(elm, function(elm, i) { + if (elm) { + if (typeof(elm) == 'string') { + elm = self.get(elm); + } + + result.push(func.call(scope, elm, i)); + } + }); + + return result; + } + + return func.call(scope, elm); + }, + + /** + * Returns a NodeList with attributes for the element. + * + * @method getAttribs + * @param {HTMLElement/string} elm Element node or string id to get attributes from. + * @return {NodeList} NodeList with attributes. + */ + getAttribs: function(elm) { + var attrs; + + elm = this.get(elm); + + if (!elm) { + return []; + } + + if (isIE) { + attrs = []; + + // Object will throw exception in IE + if (elm.nodeName == 'OBJECT') { + return elm.attributes; + } + + // IE doesn't keep the selected attribute if you clone option elements + if (elm.nodeName === 'OPTION' && this.getAttrib(elm, 'selected')) { + attrs.push({specified: 1, nodeName: 'selected'}); + } + + // It's crazy that this is faster in IE but it's because it returns all attributes all the time + var attrRegExp = /<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi; + elm.cloneNode(false).outerHTML.replace(attrRegExp, '').replace(/[\w:\-]+/gi, function(a) { + attrs.push({specified: 1, nodeName: a}); + }); + + return attrs; + } + + return elm.attributes; + }, + + /** + * Returns true/false if the specified node is to be considered empty or not. + * + * @example + * tinymce.DOM.isEmpty(node, {img: true}); + * @method isEmpty + * @param {Object} elements Optional name/value object with elements that are automatically treated as non-empty elements. + * @return {Boolean} true/false if the node is empty or not. + */ + isEmpty: function(node, elements) { + var self = this, i, attributes, type, walker, name, brCount = 0; + + node = node.firstChild; + if (node) { + walker = new TreeWalker(node, node.parentNode); + elements = elements || self.schema ? self.schema.getNonEmptyElements() : null; + + do { + type = node.nodeType; + + if (type === 1) { + // Ignore bogus elements + if (node.getAttribute('data-mce-bogus')) { + continue; + } + + // Keep empty elements like <img /> + name = node.nodeName.toLowerCase(); + if (elements && elements[name]) { + // Ignore single BR elements in blocks like <p><br /></p> or <p><span><br /></span></p> + if (name === 'br') { + brCount++; + continue; + } + + return false; + } + + // Keep elements with data-bookmark attributes or name attribute like <a name="1"></a> + attributes = self.getAttribs(node); + i = node.attributes.length; + while (i--) { + name = node.attributes[i].nodeName; + if (name === "name" || name === 'data-mce-bookmark') { + return false; + } + } + } + + // Keep comment nodes + if (type == 8) { + return false; + } + + // Keep non whitespace text nodes + if ((type === 3 && !whiteSpaceRegExp.test(node.nodeValue))) { + return false; + } + } while ((node = walker.next())); + } + + return brCount <= 1; + }, + + /** + * Creates a new DOM Range object. This will use the native DOM Range API if it's + * available. If it's not, it will fall back to the custom TinyMCE implementation. + * + * @method createRng + * @return {DOMRange} DOM Range object. + * @example + * var rng = tinymce.DOM.createRng(); + * alert(rng.startContainer + "," + rng.startOffset); + */ + createRng: function() { + var doc = this.doc; + + return doc.createRange ? doc.createRange() : new Range(this); + }, + + /** + * Returns the index of the specified node within its parent. + * + * @method nodeIndex + * @param {Node} node Node to look for. + * @param {boolean} normalized Optional true/false state if the index is what it would be after a normalization. + * @return {Number} Index of the specified node. + */ + nodeIndex: function(node, normalized) { + var idx = 0, lastNodeType, nodeType; + + if (node) { + for (lastNodeType = node.nodeType, node = node.previousSibling; node; node = node.previousSibling) { + nodeType = node.nodeType; + + // Normalize text nodes + if (normalized && nodeType == 3) { + if (nodeType == lastNodeType || !node.nodeValue.length) { + continue; + } + } + idx++; + lastNodeType = nodeType; + } + } + + return idx; + }, + + /** + * Splits an element into two new elements and places the specified split + * element or elements between the new ones. For example splitting the paragraph at the bold element in + * this example <p>abc<b>abc</b>123</p> would produce <p>abc</p><b>abc</b><p>123</p>. + * + * @method split + * @param {Element} parentElm Parent element to split. + * @param {Element} splitElm Element to split at. + * @param {Element} replacementElm Optional replacement element to replace the split element with. + * @return {Element} Returns the split element or the replacement element if that is specified. + */ + split: function(parentElm, splitElm, replacementElm) { + var self = this, r = self.createRng(), bef, aft, pa; + + // W3C valid browsers tend to leave empty nodes to the left/right side of the contents - this makes sense + // but we don't want that in our code since it serves no purpose for the end user + // For example splitting this html at the bold element: + // <p>text 1<span><b>CHOP</b></span>text 2</p> + // would produce: + // <p>text 1<span></span></p><b>CHOP</b><p><span></span>text 2</p> + // this function will then trim off empty edges and produce: + // <p>text 1</p><b>CHOP</b><p>text 2</p> + function trimNode(node) { + var i, children = node.childNodes, type = node.nodeType; + + function surroundedBySpans(node) { + var previousIsSpan = node.previousSibling && node.previousSibling.nodeName == 'SPAN'; + var nextIsSpan = node.nextSibling && node.nextSibling.nodeName == 'SPAN'; + return previousIsSpan && nextIsSpan; + } + + if (type == 1 && node.getAttribute('data-mce-type') == 'bookmark') { + return; + } + + for (i = children.length - 1; i >= 0; i--) { + trimNode(children[i]); + } + + if (type != 9) { + // Keep non whitespace text nodes + if (type == 3 && node.nodeValue.length > 0) { + // If parent element isn't a block or there isn't any useful contents for example "<p> </p>" + // Also keep text nodes with only spaces if surrounded by spans. + // eg. "<p><span>a</span> <span>b</span></p>" should keep space between a and b + var trimmedLength = trim(node.nodeValue).length; + if (!self.isBlock(node.parentNode) || trimmedLength > 0 || trimmedLength === 0 && surroundedBySpans(node)) { + return; + } + } else if (type == 1) { + // If the only child is a bookmark then move it up + children = node.childNodes; + + // TODO fix this complex if + if (children.length == 1 && children[0] && children[0].nodeType == 1 && + children[0].getAttribute('data-mce-type') == 'bookmark') { + node.parentNode.insertBefore(children[0], node); + } + + // Keep non empty elements or img, hr etc + if (children.length || /^(br|hr|input|img)$/i.test(node.nodeName)) { + return; + } + } + + self.remove(node); + } + + return node; + } + + if (parentElm && splitElm) { + // Get before chunk + r.setStart(parentElm.parentNode, self.nodeIndex(parentElm)); + r.setEnd(splitElm.parentNode, self.nodeIndex(splitElm)); + bef = r.extractContents(); + + // Get after chunk + r = self.createRng(); + r.setStart(splitElm.parentNode, self.nodeIndex(splitElm) + 1); + r.setEnd(parentElm.parentNode, self.nodeIndex(parentElm) + 1); + aft = r.extractContents(); + + // Insert before chunk + pa = parentElm.parentNode; + pa.insertBefore(trimNode(bef), parentElm); + + // Insert middle chunk + if (replacementElm) { + pa.replaceChild(replacementElm, splitElm); + } else { + pa.insertBefore(splitElm, parentElm); + } + + // Insert after chunk + pa.insertBefore(trimNode(aft), parentElm); + self.remove(parentElm); + + return replacementElm || splitElm; + } + }, + + /** + * Adds an event handler to the specified object. + * + * @method bind + * @param {Element/Document/Window/Array} target Target element to bind events to. + * handler to or an array of elements/ids/documents. + * @param {String} name Name of event handler to add, for example: click. + * @param {function} func Function to execute when the event occurs. + * @param {Object} scope Optional scope to execute the function in. + * @return {function} Function callback handler the same as the one passed in. + */ + bind: function(target, name, func, scope) { + var self = this; + + if (Tools.isArray(target)) { + var i = target.length; + + while (i--) { + target[i] = self.bind(target[i], name, func, scope); + } + + return target; + } + + // Collect all window/document events bound by editor instance + if (self.settings.collect && (target === self.doc || target === self.win)) { + self.boundEvents.push([target, name, func, scope]); + } + + return self.events.bind(target, name, func, scope || self); + }, + + /** + * Removes the specified event handler by name and function from an element or collection of elements. + * + * @method unbind + * @param {Element/Document/Window/Array} target Target element to unbind events on. + * @param {String} name Event handler name, for example: "click" + * @param {function} func Function to remove. + * @return {bool/Array} Bool state of true if the handler was removed, or an array of states if multiple input elements + * were passed in. + */ + unbind: function(target, name, func) { + var self = this, i; + + if (Tools.isArray(target)) { + i = target.length; + + while (i--) { + target[i] = self.unbind(target[i], name, func); + } + + return target; + } + + // Remove any bound events matching the input + if (self.boundEvents && (target === self.doc || target === self.win)) { + i = self.boundEvents.length; + + while (i--) { + var item = self.boundEvents[i]; + + if (target == item[0] && (!name || name == item[1]) && (!func || func == item[2])) { + this.events.unbind(item[0], item[1], item[2]); + } + } + } + + return this.events.unbind(target, name, func); + }, + + /** + * Fires the specified event name with object on target. + * + * @method fire + * @param {Node/Document/Window} target Target element or object to fire event on. + * @param {String} name Name of the event to fire. + * @param {Object} evt Event object to send. + * @return {Event} Event object. + */ + fire: function(target, name, evt) { + return this.events.fire(target, name, evt); + }, + + // Returns the content editable state of a node + getContentEditable: function(node) { + var contentEditable; + + // Check type + if (node.nodeType != 1) { + return null; + } + + // Check for fake content editable + contentEditable = node.getAttribute("data-mce-contenteditable"); + if (contentEditable && contentEditable !== "inherit") { + return contentEditable; + } + + // Check for real content editable + return node.contentEditable !== "inherit" ? node.contentEditable : null; + }, + + /** + * Destroys all internal references to the DOM to solve IE leak issues. + * + * @method destroy + */ + destroy: function() { + var self = this; + + // Unbind all events bound to window/document by editor instance + if (self.boundEvents) { + var i = self.boundEvents.length; + + while (i--) { + var item = self.boundEvents[i]; + this.events.unbind(item[0], item[1], item[2]); + } + + self.boundEvents = null; + } + + // Restore sizzle document to window.document + // Since the current document might be removed producing "Permission denied" on IE see #6325 + if (Sizzle.setDocument) { + Sizzle.setDocument(); + } + + self.win = self.doc = self.root = self.events = self.frag = null; + }, + + // #ifdef debug + + dumpRng: function(r) { + return ( + 'startContainer: ' + r.startContainer.nodeName + + ', startOffset: ' + r.startOffset + + ', endContainer: ' + r.endContainer.nodeName + + ', endOffset: ' + r.endOffset + ); + }, + + // #endif + + _findSib: function(node, selector, name) { + var self = this, func = selector; + + if (node) { + // If expression make a function of it using is + if (typeof(func) == 'string') { + func = function(node) { + return self.is(node, selector); + }; + } + + // Loop all siblings + for (node = node[name]; node; node = node[name]) { + if (func(node)) { + return node; + } + } + } + + return null; + } + }; + + /** + * Instance of DOMUtils for the current document. + * + * @static + * @property DOM + * @type tinymce.dom.DOMUtils + * @example + * // Example of how to add a class to some element by id + * tinymce.DOM.addClass('someid', 'someclass'); + */ + DOMUtils.DOM = new DOMUtils(document); + + return DOMUtils; +}); + +// Included from: js/tinymce/classes/dom/ScriptLoader.js + +/** + * ScriptLoader.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*globals console*/ + +/** + * This class handles asynchronous/synchronous loading of JavaScript files it will execute callbacks + * when various items gets loaded. This class is useful to load external JavaScript files. + * + * @class tinymce.dom.ScriptLoader + * @example + * // Load a script from a specific URL using the global script loader + * tinymce.ScriptLoader.load('somescript.js'); + * + * // Load a script using a unique instance of the script loader + * var scriptLoader = new tinymce.dom.ScriptLoader(); + * + * scriptLoader.load('somescript.js'); + * + * // Load multiple scripts + * var scriptLoader = new tinymce.dom.ScriptLoader(); + * + * scriptLoader.add('somescript1.js'); + * scriptLoader.add('somescript2.js'); + * scriptLoader.add('somescript3.js'); + * + * scriptLoader.loadQueue(function() { + * alert('All scripts are now loaded.'); + * }); + */ +define("tinymce/dom/ScriptLoader", [ + "tinymce/dom/DOMUtils", + "tinymce/util/Tools" +], function(DOMUtils, Tools) { + var DOM = DOMUtils.DOM; + var each = Tools.each, grep = Tools.grep; + + function ScriptLoader() { + var QUEUED = 0, + LOADING = 1, + LOADED = 2, + states = {}, + queue = [], + scriptLoadedCallbacks = {}, + queueLoadedCallbacks = [], + loading = 0, + undef; + + /** + * Loads a specific script directly without adding it to the load queue. + * + * @method load + * @param {String} url Absolute URL to script to add. + * @param {function} callback Optional callback function to execute ones this script gets loaded. + * @param {Object} scope Optional scope to execute callback in. + */ + function loadScript(url, callback) { + var dom = DOM, elm, id; + + // Execute callback when script is loaded + function done() { + dom.remove(id); + + if (elm) { + elm.onreadystatechange = elm.onload = elm = null; + } + + callback(); + } + + function error() { + /*eslint no-console:0 */ + + // Report the error so it's easier for people to spot loading errors + if (typeof(console) !== "undefined" && console.log) { + console.log("Failed to load: " + url); + } + + // We can't mark it as done if there is a load error since + // A) We don't want to produce 404 errors on the server and + // B) the onerror event won't fire on all browsers. + // done(); + } + + id = dom.uniqueId(); + + // Create new script element + elm = document.createElement('script'); + elm.id = id; + elm.type = 'text/javascript'; + elm.src = url; + + // Seems that onreadystatechange works better on IE 10 onload seems to fire incorrectly + if ("onreadystatechange" in elm) { + elm.onreadystatechange = function() { + if (/loaded|complete/.test(elm.readyState)) { + done(); + } + }; + } else { + elm.onload = done; + } + + // Add onerror event will get fired on some browsers but not all of them + elm.onerror = error; + + // Add script to document + (document.getElementsByTagName('head')[0] || document.body).appendChild(elm); + } + + /** + * Returns true/false if a script has been loaded or not. + * + * @method isDone + * @param {String} url URL to check for. + * @return {Boolean} true/false if the URL is loaded. + */ + this.isDone = function(url) { + return states[url] == LOADED; + }; + + /** + * Marks a specific script to be loaded. This can be useful if a script got loaded outside + * the script loader or to skip it from loading some script. + * + * @method markDone + * @param {string} u Absolute URL to the script to mark as loaded. + */ + this.markDone = function(url) { + states[url] = LOADED; + }; + + /** + * Adds a specific script to the load queue of the script loader. + * + * @method add + * @param {String} url Absolute URL to script to add. + * @param {function} callback Optional callback function to execute ones this script gets loaded. + * @param {Object} scope Optional scope to execute callback in. + */ + this.add = this.load = function(url, callback, scope) { + var state = states[url]; + + // Add url to load queue + if (state == undef) { + queue.push(url); + states[url] = QUEUED; + } + + if (callback) { + // Store away callback for later execution + if (!scriptLoadedCallbacks[url]) { + scriptLoadedCallbacks[url] = []; + } + + scriptLoadedCallbacks[url].push({ + func: callback, + scope: scope || this + }); + } + }; + + /** + * Starts the loading of the queue. + * + * @method loadQueue + * @param {function} callback Optional callback to execute when all queued items are loaded. + * @param {Object} scope Optional scope to execute the callback in. + */ + this.loadQueue = function(callback, scope) { + this.loadScripts(queue, callback, scope); + }; + + /** + * Loads the specified queue of files and executes the callback ones they are loaded. + * This method is generally not used outside this class but it might be useful in some scenarios. + * + * @method loadScripts + * @param {Array} scripts Array of queue items to load. + * @param {function} callback Optional callback to execute ones all items are loaded. + * @param {Object} scope Optional scope to execute callback in. + */ + this.loadScripts = function(scripts, callback, scope) { + var loadScripts; + + function execScriptLoadedCallbacks(url) { + // Execute URL callback functions + each(scriptLoadedCallbacks[url], function(callback) { + callback.func.call(callback.scope); + }); + + scriptLoadedCallbacks[url] = undef; + } + + queueLoadedCallbacks.push({ + func: callback, + scope: scope || this + }); + + loadScripts = function() { + var loadingScripts = grep(scripts); + + // Current scripts has been handled + scripts.length = 0; + + // Load scripts that needs to be loaded + each(loadingScripts, function(url) { + // Script is already loaded then execute script callbacks directly + if (states[url] == LOADED) { + execScriptLoadedCallbacks(url); + return; + } + + // Is script not loading then start loading it + if (states[url] != LOADING) { + states[url] = LOADING; + loading++; + + loadScript(url, function() { + states[url] = LOADED; + loading--; + + execScriptLoadedCallbacks(url); + + // Load more scripts if they where added by the recently loaded script + loadScripts(); + }); + } + }); + + // No scripts are currently loading then execute all pending queue loaded callbacks + if (!loading) { + each(queueLoadedCallbacks, function(callback) { + callback.func.call(callback.scope); + }); + + queueLoadedCallbacks.length = 0; + } + }; + + loadScripts(); + }; + } + + ScriptLoader.ScriptLoader = new ScriptLoader(); + + return ScriptLoader; +}); + +// Included from: js/tinymce/classes/AddOnManager.js + +/** + * AddOnManager.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles the loading of themes/plugins or other add-ons and their language packs. + * + * @class tinymce.AddOnManager + */ +define("tinymce/AddOnManager", [ + "tinymce/dom/ScriptLoader", + "tinymce/util/Tools" +], function(ScriptLoader, Tools) { + var each = Tools.each; + + function AddOnManager() { + var self = this; + + self.items = []; + self.urls = {}; + self.lookup = {}; + } + + AddOnManager.prototype = { + /** + * Returns the specified add on by the short name. + * + * @method get + * @param {String} name Add-on to look for. + * @return {tinymce.Theme/tinymce.Plugin} Theme or plugin add-on instance or undefined. + */ + get: function(name) { + if (this.lookup[name]) { + return this.lookup[name].instance; + } else { + return undefined; + } + }, + + dependencies: function(name) { + var result; + + if (this.lookup[name]) { + result = this.lookup[name].dependencies; + } + + return result || []; + }, + + /** + * Loads a language pack for the specified add-on. + * + * @method requireLangPack + * @param {String} name Short name of the add-on. + * @param {String} languages Optional comma or space separated list of languages to check if it matches the name. + */ + requireLangPack: function(name, languages) { + if (AddOnManager.language && AddOnManager.languageLoad !== false) { + if (languages && new RegExp('([, ]|\\b)' + AddOnManager.language + '([, ]|\\b)').test(languages) === false) { + return; + } + + ScriptLoader.ScriptLoader.add(this.urls[name] + '/langs/' + AddOnManager.language + '.js'); + } + }, + + /** + * Adds a instance of the add-on by it's short name. + * + * @method add + * @param {String} id Short name/id for the add-on. + * @param {tinymce.Theme/tinymce.Plugin} addOn Theme or plugin to add. + * @return {tinymce.Theme/tinymce.Plugin} The same theme or plugin instance that got passed in. + * @example + * // Create a simple plugin + * tinymce.create('tinymce.plugins.TestPlugin', { + * TestPlugin: function(ed, url) { + * ed.on('click', function(e) { + * ed.windowManager.alert('Hello World!'); + * }); + * } + * }); + * + * // Register plugin using the add method + * tinymce.PluginManager.add('test', tinymce.plugins.TestPlugin); + * + * // Initialize TinyMCE + * tinymce.init({ + * ... + * plugins: '-test' // Init the plugin but don't try to load it + * }); + */ + add: function(id, addOn, dependencies) { + this.items.push(addOn); + this.lookup[id] = {instance: addOn, dependencies: dependencies}; + + return addOn; + }, + + createUrl: function(baseUrl, dep) { + if (typeof dep === "object") { + return dep; + } else { + return {prefix: baseUrl.prefix, resource: dep, suffix: baseUrl.suffix}; + } + }, + + /** + * Add a set of components that will make up the add-on. Using the url of the add-on name as the base url. + * This should be used in development mode. A new compressor/javascript munger process will ensure that the + * components are put together into the plugin.js file and compressed correctly. + * + * @method addComponents + * @param {String} pluginName name of the plugin to load scripts from (will be used to get the base url for the plugins). + * @param {Array} scripts Array containing the names of the scripts to load. + */ + addComponents: function(pluginName, scripts) { + var pluginUrl = this.urls[pluginName]; + + each(scripts, function(script) { + ScriptLoader.ScriptLoader.add(pluginUrl + "/" + script); + }); + }, + + /** + * Loads an add-on from a specific url. + * + * @method load + * @param {String} name Short name of the add-on that gets loaded. + * @param {String} addOnUrl URL to the add-on that will get loaded. + * @param {function} callback Optional callback to execute ones the add-on is loaded. + * @param {Object} scope Optional scope to execute the callback in. + * @example + * // Loads a plugin from an external URL + * tinymce.PluginManager.load('myplugin', '/some/dir/someplugin/plugin.js'); + * + * // Initialize TinyMCE + * tinymce.init({ + * ... + * plugins: '-myplugin' // Don't try to load it again + * }); + */ + load: function(name, addOnUrl, callback, scope) { + var self = this, url = addOnUrl; + + function loadDependencies() { + var dependencies = self.dependencies(name); + + each(dependencies, function(dep) { + var newUrl = self.createUrl(addOnUrl, dep); + + self.load(newUrl.resource, newUrl, undefined, undefined); + }); + + if (callback) { + if (scope) { + callback.call(scope); + } else { + callback.call(ScriptLoader); + } + } + } + + if (self.urls[name]) { + return; + } + + if (typeof addOnUrl === "object") { + url = addOnUrl.prefix + addOnUrl.resource + addOnUrl.suffix; + } + + if (url.indexOf('/') !== 0 && url.indexOf('://') == -1) { + url = AddOnManager.baseURL + '/' + url; + } + + self.urls[name] = url.substring(0, url.lastIndexOf('/')); + + if (self.lookup[name]) { + loadDependencies(); + } else { + ScriptLoader.ScriptLoader.add(url, loadDependencies, scope); + } + } + }; + + AddOnManager.PluginManager = new AddOnManager(); + AddOnManager.ThemeManager = new AddOnManager(); + + return AddOnManager; +}); + +/** + * TinyMCE theme class. + * + * @class tinymce.Theme + */ + +/** + * This method is responsible for rendering/generating the overall user interface with toolbars, buttons, iframe containers etc. + * + * @method renderUI + * @param {Object} obj Object parameter containing the targetNode DOM node that will be replaced visually with an editor instance. + * @return {Object} an object with items like iframeContainer, editorContainer, sizeContainer, deltaWidth, deltaHeight. + */ + +/** + * Plugin base class, this is a pseudo class that describes how a plugin is to be created for TinyMCE. The methods below are all optional. + * + * @class tinymce.Plugin + * @example + * tinymce.PluginManager.add('example', function(editor, url) { + * // Add a button that opens a window + * editor.addButton('example', { + * text: 'My button', + * icon: false, + * onclick: function() { + * // Open window + * editor.windowManager.open({ + * title: 'Example plugin', + * body: [ + * {type: 'textbox', name: 'title', label: 'Title'} + * ], + * onsubmit: function(e) { + * // Insert content when the window form is submitted + * editor.insertContent('Title: ' + e.data.title); + * } + * }); + * } + * }); + * + * // Adds a menu item to the tools menu + * editor.addMenuItem('example', { + * text: 'Example plugin', + * context: 'tools', + * onclick: function() { + * // Open window with a specific url + * editor.windowManager.open({ + * title: 'TinyMCE site', + * url: 'http://www.tinymce.com', + * width: 800, + * height: 600, + * buttons: [{ + * text: 'Close', + * onclick: 'close' + * }] + * }); + * } + * }); + * }); + */ + +// Included from: js/tinymce/classes/html/Node.js + +/** + * Node.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class is a minimalistic implementation of a DOM like node used by the DomParser class. + * + * @example + * var node = new tinymce.html.Node('strong', 1); + * someRoot.append(node); + * + * @class tinymce.html.Node + * @version 3.4 + */ +define("tinymce/html/Node", [], function() { + var whiteSpaceRegExp = /^[ \t\r\n]*$/, typeLookup = { + '#text': 3, + '#comment': 8, + '#cdata': 4, + '#pi': 7, + '#doctype': 10, + '#document-fragment': 11 + }; + + // Walks the tree left/right + function walk(node, root_node, prev) { + var sibling, parent, startName = prev ? 'lastChild' : 'firstChild', siblingName = prev ? 'prev' : 'next'; + + // Walk into nodes if it has a start + if (node[startName]) { + return node[startName]; + } + + // Return the sibling if it has one + if (node !== root_node) { + sibling = node[siblingName]; + + if (sibling) { + return sibling; + } + + // Walk up the parents to look for siblings + for (parent = node.parent; parent && parent !== root_node; parent = parent.parent) { + sibling = parent[siblingName]; + + if (sibling) { + return sibling; + } + } + } + } + + /** + * Constructs a new Node instance. + * + * @constructor + * @method Node + * @param {String} name Name of the node type. + * @param {Number} type Numeric type representing the node. + */ + function Node(name, type) { + this.name = name; + this.type = type; + + if (type === 1) { + this.attributes = []; + this.attributes.map = {}; + } + } + + Node.prototype = { + /** + * Replaces the current node with the specified one. + * + * @example + * someNode.replace(someNewNode); + * + * @method replace + * @param {tinymce.html.Node} node Node to replace the current node with. + * @return {tinymce.html.Node} The old node that got replaced. + */ + replace: function(node) { + var self = this; + + if (node.parent) { + node.remove(); + } + + self.insert(node, self); + self.remove(); + + return self; + }, + + /** + * Gets/sets or removes an attribute by name. + * + * @example + * someNode.attr("name", "value"); // Sets an attribute + * console.log(someNode.attr("name")); // Gets an attribute + * someNode.attr("name", null); // Removes an attribute + * + * @method attr + * @param {String} name Attribute name to set or get. + * @param {String} value Optional value to set. + * @return {String/tinymce.html.Node} String or undefined on a get operation or the current node on a set operation. + */ + attr: function(name, value) { + var self = this, attrs, i, undef; + + if (typeof name !== "string") { + for (i in name) { + self.attr(i, name[i]); + } + + return self; + } + + if ((attrs = self.attributes)) { + if (value !== undef) { + // Remove attribute + if (value === null) { + if (name in attrs.map) { + delete attrs.map[name]; + + i = attrs.length; + while (i--) { + if (attrs[i].name === name) { + attrs = attrs.splice(i, 1); + return self; + } + } + } + + return self; + } + + // Set attribute + if (name in attrs.map) { + // Set attribute + i = attrs.length; + while (i--) { + if (attrs[i].name === name) { + attrs[i].value = value; + break; + } + } + } else { + attrs.push({name: name, value: value}); + } + + attrs.map[name] = value; + + return self; + } else { + return attrs.map[name]; + } + } + }, + + /** + * Does a shallow clones the node into a new node. It will also exclude id attributes since + * there should only be one id per document. + * + * @example + * var clonedNode = node.clone(); + * + * @method clone + * @return {tinymce.html.Node} New copy of the original node. + */ + clone: function() { + var self = this, clone = new Node(self.name, self.type), i, l, selfAttrs, selfAttr, cloneAttrs; + + // Clone element attributes + if ((selfAttrs = self.attributes)) { + cloneAttrs = []; + cloneAttrs.map = {}; + + for (i = 0, l = selfAttrs.length; i < l; i++) { + selfAttr = selfAttrs[i]; + + // Clone everything except id + if (selfAttr.name !== 'id') { + cloneAttrs[cloneAttrs.length] = {name: selfAttr.name, value: selfAttr.value}; + cloneAttrs.map[selfAttr.name] = selfAttr.value; + } + } + + clone.attributes = cloneAttrs; + } + + clone.value = self.value; + clone.shortEnded = self.shortEnded; + + return clone; + }, + + /** + * Wraps the node in in another node. + * + * @example + * node.wrap(wrapperNode); + * + * @method wrap + */ + wrap: function(wrapper) { + var self = this; + + self.parent.insert(wrapper, self); + wrapper.append(self); + + return self; + }, + + /** + * Unwraps the node in other words it removes the node but keeps the children. + * + * @example + * node.unwrap(); + * + * @method unwrap + */ + unwrap: function() { + var self = this, node, next; + + for (node = self.firstChild; node; ) { + next = node.next; + self.insert(node, self, true); + node = next; + } + + self.remove(); + }, + + /** + * Removes the node from it's parent. + * + * @example + * node.remove(); + * + * @method remove + * @return {tinymce.html.Node} Current node that got removed. + */ + remove: function() { + var self = this, parent = self.parent, next = self.next, prev = self.prev; + + if (parent) { + if (parent.firstChild === self) { + parent.firstChild = next; + + if (next) { + next.prev = null; + } + } else { + prev.next = next; + } + + if (parent.lastChild === self) { + parent.lastChild = prev; + + if (prev) { + prev.next = null; + } + } else { + next.prev = prev; + } + + self.parent = self.next = self.prev = null; + } + + return self; + }, + + /** + * Appends a new node as a child of the current node. + * + * @example + * node.append(someNode); + * + * @method append + * @param {tinymce.html.Node} node Node to append as a child of the current one. + * @return {tinymce.html.Node} The node that got appended. + */ + append: function(node) { + var self = this, last; + + if (node.parent) { + node.remove(); + } + + last = self.lastChild; + if (last) { + last.next = node; + node.prev = last; + self.lastChild = node; + } else { + self.lastChild = self.firstChild = node; + } + + node.parent = self; + + return node; + }, + + /** + * Inserts a node at a specific position as a child of the current node. + * + * @example + * parentNode.insert(newChildNode, oldChildNode); + * + * @method insert + * @param {tinymce.html.Node} node Node to insert as a child of the current node. + * @param {tinymce.html.Node} ref_node Reference node to set node before/after. + * @param {Boolean} before Optional state to insert the node before the reference node. + * @return {tinymce.html.Node} The node that got inserted. + */ + insert: function(node, ref_node, before) { + var parent; + + if (node.parent) { + node.remove(); + } + + parent = ref_node.parent || this; + + if (before) { + if (ref_node === parent.firstChild) { + parent.firstChild = node; + } else { + ref_node.prev.next = node; + } + + node.prev = ref_node.prev; + node.next = ref_node; + ref_node.prev = node; + } else { + if (ref_node === parent.lastChild) { + parent.lastChild = node; + } else { + ref_node.next.prev = node; + } + + node.next = ref_node.next; + node.prev = ref_node; + ref_node.next = node; + } + + node.parent = parent; + + return node; + }, + + /** + * Get all children by name. + * + * @method getAll + * @param {String} name Name of the child nodes to collect. + * @return {Array} Array with child nodes matchin the specified name. + */ + getAll: function(name) { + var self = this, node, collection = []; + + for (node = self.firstChild; node; node = walk(node, self)) { + if (node.name === name) { + collection.push(node); + } + } + + return collection; + }, + + /** + * Removes all children of the current node. + * + * @method empty + * @return {tinymce.html.Node} The current node that got cleared. + */ + empty: function() { + var self = this, nodes, i, node; + + // Remove all children + if (self.firstChild) { + nodes = []; + + // Collect the children + for (node = self.firstChild; node; node = walk(node, self)) { + nodes.push(node); + } + + // Remove the children + i = nodes.length; + while (i--) { + node = nodes[i]; + node.parent = node.firstChild = node.lastChild = node.next = node.prev = null; + } + } + + self.firstChild = self.lastChild = null; + + return self; + }, + + /** + * Returns true/false if the node is to be considered empty or not. + * + * @example + * node.isEmpty({img: true}); + * @method isEmpty + * @param {Object} elements Name/value object with elements that are automatically treated as non empty elements. + * @return {Boolean} true/false if the node is empty or not. + */ + isEmpty: function(elements) { + var self = this, node = self.firstChild, i, name; + + if (node) { + do { + if (node.type === 1) { + // Ignore bogus elements + if (node.attributes.map['data-mce-bogus']) { + continue; + } + + // Keep empty elements like <img /> + if (elements[node.name]) { + return false; + } + + // Keep elements with data attributes or name attribute like <a name="1"></a> + i = node.attributes.length; + while (i--) { + name = node.attributes[i].name; + if (name === "name" || name.indexOf('data-mce-') === 0) { + return false; + } + } + } + + // Keep comments + if (node.type === 8) { + return false; + } + + // Keep non whitespace text nodes + if ((node.type === 3 && !whiteSpaceRegExp.test(node.value))) { + return false; + } + } while ((node = walk(node, self))); + } + + return true; + }, + + /** + * Walks to the next or previous node and returns that node or null if it wasn't found. + * + * @method walk + * @param {Boolean} prev Optional previous node state defaults to false. + * @return {tinymce.html.Node} Node that is next to or previous of the current node. + */ + walk: function(prev) { + return walk(this, null, prev); + } + }; + + /** + * Creates a node of a specific type. + * + * @static + * @method create + * @param {String} name Name of the node type to create for example "b" or "#text". + * @param {Object} attrs Name/value collection of attributes that will be applied to elements. + */ + Node.create = function(name, attrs) { + var node, attrName; + + // Create node + node = new Node(name, typeLookup[name] || 1); + + // Add attributes if needed + if (attrs) { + for (attrName in attrs) { + node.attr(attrName, attrs[attrName]); + } + } + + return node; + }; + + return Node; +}); + +// Included from: js/tinymce/classes/html/Schema.js + +/** + * Schema.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Schema validator class. + * + * @class tinymce.html.Schema + * @example + * if (tinymce.activeEditor.schema.isValidChild('p', 'span')) + * alert('span is valid child of p.'); + * + * if (tinymce.activeEditor.schema.getElementRule('p')) + * alert('P is a valid element.'); + * + * @class tinymce.html.Schema + * @version 3.4 + */ +define("tinymce/html/Schema", [ + "tinymce/util/Tools" +], function(Tools) { + var mapCache = {}; + var makeMap = Tools.makeMap, each = Tools.each, extend = Tools.extend, explode = Tools.explode, inArray = Tools.inArray; + + function split(items, delim) { + return items ? items.split(delim || ' ') : []; + } + + /** + * Builds a schema lookup table + * + * @private + * @param {String} type html4, html5 or html5-strict schema type. + * @return {Object} Schema lookup table. + */ + function compileSchema(type) { + var schema = {}, globalAttributes, blockContent; + var phrasingContent, flowContent, html4BlockContent, html4PhrasingContent; + + function add(name, attributes, children) { + var ni, i, attributesOrder, args = arguments; + + function arrayToMap(array) { + var map = {}, i, l; + + for (i = 0, l = array.length; i < l; i++) { + map[array[i]] = {}; + } + + return map; + } + + children = children || []; + attributes = attributes || ""; + + if (typeof(children) === "string") { + children = split(children); + } + + // Split string children + for (i = 3; i < args.length; i++) { + if (typeof(args[i]) === "string") { + args[i] = split(args[i]); + } + + children.push.apply(children, args[i]); + } + + name = split(name); + ni = name.length; + while (ni--) { + attributesOrder = [].concat(globalAttributes, split(attributes)); + schema[name[ni]] = { + attributes: arrayToMap(attributesOrder), + attributesOrder: attributesOrder, + children: arrayToMap(children) + }; + } + } + + function addAttrs(name, attributes) { + var ni, schemaItem, i, l; + + name = split(name); + ni = name.length; + attributes = split(attributes); + while (ni--) { + schemaItem = schema[name[ni]]; + for (i = 0, l = attributes.length; i < l; i++) { + schemaItem.attributes[attributes[i]] = {}; + schemaItem.attributesOrder.push(attributes[i]); + } + } + } + + // Use cached schema + if (mapCache[type]) { + return mapCache[type]; + } + + // Attributes present on all elements + globalAttributes = split("id accesskey class dir lang style tabindex title"); + + // Event attributes can be opt-in/opt-out + /*eventAttributes = split("onabort onblur oncancel oncanplay oncanplaythrough onchange onclick onclose oncontextmenu oncuechange " + + "ondblclick ondrag ondragend ondragenter ondragleave ondragover ondragstart ondrop ondurationchange onemptied onended " + + "onerror onfocus oninput oninvalid onkeydown onkeypress onkeyup onload onloadeddata onloadedmetadata onloadstart " + + "onmousedown onmousemove onmouseout onmouseover onmouseup onmousewheel onpause onplay onplaying onprogress onratechange " + + "onreset onscroll onseeked onseeking onseeking onselect onshow onstalled onsubmit onsuspend ontimeupdate onvolumechange " + + "onwaiting" + );*/ + + // Block content elements + blockContent = split( + "address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul" + ); + + // Phrasing content elements from the HTML5 spec (inline) + phrasingContent = split( + "a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd " + + "label map noscript object q s samp script select small span strong sub sup " + + "textarea u var #text #comment" + ); + + // Add HTML5 items to globalAttributes, blockContent, phrasingContent + if (type != "html4") { + globalAttributes.push.apply(globalAttributes, split("contenteditable contextmenu draggable dropzone " + + "hidden spellcheck translate")); + blockContent.push.apply(blockContent, split("article aside details dialog figure header footer hgroup section nav")); + phrasingContent.push.apply(phrasingContent, split("audio canvas command datalist mark meter output progress time wbr " + + "video ruby bdi keygen")); + } + + // Add HTML4 elements unless it's html5-strict + if (type != "html5-strict") { + globalAttributes.push("xml:lang"); + + html4PhrasingContent = split("acronym applet basefont big font strike tt"); + phrasingContent.push.apply(phrasingContent, html4PhrasingContent); + + each(html4PhrasingContent, function(name) { + add(name, "", phrasingContent); + }); + + html4BlockContent = split("center dir isindex noframes"); + blockContent.push.apply(blockContent, html4BlockContent); + + // Flow content elements from the HTML5 spec (block+inline) + flowContent = [].concat(blockContent, phrasingContent); + + each(html4BlockContent, function(name) { + add(name, "", flowContent); + }); + } + + // Flow content elements from the HTML5 spec (block+inline) + flowContent = flowContent || [].concat(blockContent, phrasingContent); + + // HTML4 base schema TODO: Move HTML5 specific attributes to HTML5 specific if statement + // Schema items <element name>, <specific attributes>, <children ..> + add("html", "manifest", "head body"); + add("head", "", "base command link meta noscript script style title"); + add("title hr noscript br"); + add("base", "href target"); + add("link", "href rel media hreflang type sizes hreflang"); + add("meta", "name http-equiv content charset"); + add("style", "media type scoped"); + add("script", "src async defer type charset"); + add("body", "onafterprint onbeforeprint onbeforeunload onblur onerror onfocus " + + "onhashchange onload onmessage onoffline ononline onpagehide onpageshow " + + "onpopstate onresize onscroll onstorage onunload", flowContent); + add("address dt dd div caption", "", flowContent); + add("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn", "", phrasingContent); + add("blockquote", "cite", flowContent); + add("ol", "reversed start type", "li"); + add("ul", "", "li"); + add("li", "value", flowContent); + add("dl", "", "dt dd"); + add("a", "href target rel media hreflang type", phrasingContent); + add("q", "cite", phrasingContent); + add("ins del", "cite datetime", flowContent); + add("img", "src alt usemap ismap width height"); + add("iframe", "src name width height", flowContent); + add("embed", "src type width height"); + add("object", "data type typemustmatch name usemap form width height", flowContent, "param"); + add("param", "name value"); + add("map", "name", flowContent, "area"); + add("area", "alt coords shape href target rel media hreflang type"); + add("table", "border", "caption colgroup thead tfoot tbody tr" + (type == "html4" ? " col" : "")); + add("colgroup", "span", "col"); + add("col", "span"); + add("tbody thead tfoot", "", "tr"); + add("tr", "", "td th"); + add("td", "colspan rowspan headers", flowContent); + add("th", "colspan rowspan headers scope abbr", flowContent); + add("form", "accept-charset action autocomplete enctype method name novalidate target", flowContent); + add("fieldset", "disabled form name", flowContent, "legend"); + add("label", "form for", phrasingContent); + add("input", "accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate " + + "formtarget height list max maxlength min multiple name pattern readonly required size src step type value width" + ); + add("button", "disabled form formaction formenctype formmethod formnovalidate formtarget name type value", + type == "html4" ? flowContent : phrasingContent); + add("select", "disabled form multiple name required size", "option optgroup"); + add("optgroup", "disabled label", "option"); + add("option", "disabled label selected value"); + add("textarea", "cols dirname disabled form maxlength name readonly required rows wrap"); + add("menu", "type label", flowContent, "li"); + add("noscript", "", flowContent); + + // Extend with HTML5 elements + if (type != "html4") { + add("wbr"); + add("ruby", "", phrasingContent, "rt rp"); + add("figcaption", "", flowContent); + add("mark rt rp summary bdi", "", phrasingContent); + add("canvas", "width height", flowContent); + add("video", "src crossorigin poster preload autoplay mediagroup loop " + + "muted controls width height", flowContent, "track source"); + add("audio", "src crossorigin preload autoplay mediagroup loop muted controls", flowContent, "track source"); + add("source", "src type media"); + add("track", "kind src srclang label default"); + add("datalist", "", phrasingContent, "option"); + add("article section nav aside header footer", "", flowContent); + add("hgroup", "", "h1 h2 h3 h4 h5 h6"); + add("figure", "", flowContent, "figcaption"); + add("time", "datetime", phrasingContent); + add("dialog", "open", flowContent); + add("command", "type label icon disabled checked radiogroup command"); + add("output", "for form name", phrasingContent); + add("progress", "value max", phrasingContent); + add("meter", "value min max low high optimum", phrasingContent); + add("details", "open", flowContent, "summary"); + add("keygen", "autofocus challenge disabled form keytype name"); + } + + // Extend with HTML4 attributes unless it's html5-strict + if (type != "html5-strict") { + addAttrs("script", "language xml:space"); + addAttrs("style", "xml:space"); + addAttrs("object", "declare classid codebase codetype archive standby align border hspace vspace"); + addAttrs("param", "valuetype type"); + addAttrs("a", "charset name rev shape coords"); + addAttrs("br", "clear"); + addAttrs("applet", "codebase archive code object alt name width height align hspace vspace"); + addAttrs("img", "name longdesc align border hspace vspace"); + addAttrs("iframe", "longdesc frameborder marginwidth marginheight scrolling align"); + addAttrs("font basefont", "size color face"); + addAttrs("input", "usemap align"); + addAttrs("select", "onchange"); + addAttrs("textarea"); + addAttrs("h1 h2 h3 h4 h5 h6 div p legend caption", "align"); + addAttrs("ul", "type compact"); + addAttrs("li", "type"); + addAttrs("ol dl menu dir", "compact"); + addAttrs("pre", "width xml:space"); + addAttrs("hr", "align noshade size width"); + addAttrs("isindex", "prompt"); + addAttrs("table", "summary width frame rules cellspacing cellpadding align bgcolor"); + addAttrs("col", "width align char charoff valign"); + addAttrs("colgroup", "width align char charoff valign"); + addAttrs("thead", "align char charoff valign"); + addAttrs("tr", "align char charoff valign bgcolor"); + addAttrs("th", "axis align char charoff valign nowrap bgcolor width height"); + addAttrs("form", "accept"); + addAttrs("td", "abbr axis scope align char charoff valign nowrap bgcolor width height"); + addAttrs("tfoot", "align char charoff valign"); + addAttrs("tbody", "align char charoff valign"); + addAttrs("area", "nohref"); + addAttrs("body", "background bgcolor text link vlink alink"); + } + + // Extend with HTML5 attributes unless it's html4 + if (type != "html4") { + addAttrs("input button select textarea", "autofocus"); + addAttrs("input textarea", "placeholder"); + addAttrs("a", "download"); + addAttrs("link script img", "crossorigin"); + addAttrs("iframe", "srcdoc sandbox seamless allowfullscreen"); + } + + // Special: iframe, ruby, video, audio, label + + // Delete children of the same name from it's parent + // For example: form can't have a child of the name form + each(split('a form meter progress dfn'), function(name) { + if (schema[name]) { + delete schema[name].children[name]; + } + }); + + // Delete header, footer, sectioning and heading content descendants + /*each('dt th address', function(name) { + delete schema[name].children[name]; + });*/ + + // Caption can't have tables + delete schema.caption.children.table; + + // TODO: LI:s can only have value if parent is OL + + // TODO: Handle transparent elements + // a ins del canvas map + + mapCache[type] = schema; + + return schema; + } + + /** + * Constructs a new Schema instance. + * + * @constructor + * @method Schema + * @param {Object} settings Name/value settings object. + */ + return function(settings) { + var self = this, elements = {}, children = {}, patternElements = [], validStyles, schemaItems; + var whiteSpaceElementsMap, selfClosingElementsMap, shortEndedElementsMap, boolAttrMap; + var blockElementsMap, nonEmptyElementsMap, textBlockElementsMap, customElementsMap = {}, specialElements = {}; + + // Creates an lookup table map object for the specified option or the default value + function createLookupTable(option, default_value, extendWith) { + var value = settings[option]; + + if (!value) { + // Get cached default map or make it if needed + value = mapCache[option]; + + if (!value) { + value = makeMap(default_value, ' ', makeMap(default_value.toUpperCase(), ' ')); + value = extend(value, extendWith); + + mapCache[option] = value; + } + } else { + // Create custom map + value = makeMap(value, ',', makeMap(value.toUpperCase(), ' ')); + } + + return value; + } + + settings = settings || {}; + schemaItems = compileSchema(settings.schema); + + // Allow all elements and attributes if verify_html is set to false + if (settings.verify_html === false) { + settings.valid_elements = '*[*]'; + } + + // Build styles list + if (settings.valid_styles) { + validStyles = {}; + + // Convert styles into a rule list + each(settings.valid_styles, function(value, key) { + validStyles[key] = explode(value); + }); + } + + // Setup map objects + whiteSpaceElementsMap = createLookupTable('whitespace_elements', 'pre script noscript style textarea video audio iframe object'); + selfClosingElementsMap = createLookupTable('self_closing_elements', 'colgroup dd dt li option p td tfoot th thead tr'); + shortEndedElementsMap = createLookupTable('short_ended_elements', 'area base basefont br col frame hr img input isindex link ' + + 'meta param embed source wbr track'); + boolAttrMap = createLookupTable('boolean_attributes', 'checked compact declare defer disabled ismap multiple nohref noresize ' + + 'noshade nowrap readonly selected autoplay loop controls'); + nonEmptyElementsMap = createLookupTable('non_empty_elements', 'td th iframe video audio object script', shortEndedElementsMap); + textBlockElementsMap = createLookupTable('text_block_elements', 'h1 h2 h3 h4 h5 h6 p div address pre form ' + + 'blockquote center dir fieldset header footer article section hgroup aside nav figure'); + blockElementsMap = createLookupTable('block_elements', 'hr table tbody thead tfoot ' + + 'th tr td li ol ul caption dl dt dd noscript menu isindex option ' + + 'datalist select optgroup', textBlockElementsMap); + + each((settings.special || 'script noscript style textarea').split(' '), function(name) { + specialElements[name] = new RegExp('<\/' + name + '[^>]*>','gi'); + }); + + // Converts a wildcard expression string to a regexp for example *a will become /.*a/. + function patternToRegExp(str) { + return new RegExp('^' + str.replace(/([?+*])/g, '.$1') + '$'); + } + + // Parses the specified valid_elements string and adds to the current rules + // This function is a bit hard to read since it's heavily optimized for speed + function addValidElements(valid_elements) { + var ei, el, ai, al, matches, element, attr, attrData, elementName, attrName, attrType, attributes, attributesOrder, + prefix, outputName, globalAttributes, globalAttributesOrder, key, value, + elementRuleRegExp = /^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/, + attrRuleRegExp = /^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/, + hasPatternsRegExp = /[*?+]/; + + if (valid_elements) { + // Split valid elements into an array with rules + valid_elements = split(valid_elements, ','); + + if (elements['@']) { + globalAttributes = elements['@'].attributes; + globalAttributesOrder = elements['@'].attributesOrder; + } + + // Loop all rules + for (ei = 0, el = valid_elements.length; ei < el; ei++) { + // Parse element rule + matches = elementRuleRegExp.exec(valid_elements[ei]); + if (matches) { + // Setup local names for matches + prefix = matches[1]; + elementName = matches[2]; + outputName = matches[3]; + attrData = matches[5]; + + // Create new attributes and attributesOrder + attributes = {}; + attributesOrder = []; + + // Create the new element + element = { + attributes: attributes, + attributesOrder: attributesOrder + }; + + // Padd empty elements prefix + if (prefix === '#') { + element.paddEmpty = true; + } + + // Remove empty elements prefix + if (prefix === '-') { + element.removeEmpty = true; + } + + if (matches[4] === '!') { + element.removeEmptyAttrs = true; + } + + // Copy attributes from global rule into current rule + if (globalAttributes) { + for (key in globalAttributes) { + attributes[key] = globalAttributes[key]; + } + + attributesOrder.push.apply(attributesOrder, globalAttributesOrder); + } + + // Attributes defined + if (attrData) { + attrData = split(attrData, '|'); + for (ai = 0, al = attrData.length; ai < al; ai++) { + matches = attrRuleRegExp.exec(attrData[ai]); + if (matches) { + attr = {}; + attrType = matches[1]; + attrName = matches[2].replace(/::/g, ':'); + prefix = matches[3]; + value = matches[4]; + + // Required + if (attrType === '!') { + element.attributesRequired = element.attributesRequired || []; + element.attributesRequired.push(attrName); + attr.required = true; + } + + // Denied from global + if (attrType === '-') { + delete attributes[attrName]; + attributesOrder.splice(inArray(attributesOrder, attrName), 1); + continue; + } + + // Default value + if (prefix) { + // Default value + if (prefix === '=') { + element.attributesDefault = element.attributesDefault || []; + element.attributesDefault.push({name: attrName, value: value}); + attr.defaultValue = value; + } + + // Forced value + if (prefix === ':') { + element.attributesForced = element.attributesForced || []; + element.attributesForced.push({name: attrName, value: value}); + attr.forcedValue = value; + } + + // Required values + if (prefix === '<') { + attr.validValues = makeMap(value, '?'); + } + } + + // Check for attribute patterns + if (hasPatternsRegExp.test(attrName)) { + element.attributePatterns = element.attributePatterns || []; + attr.pattern = patternToRegExp(attrName); + element.attributePatterns.push(attr); + } else { + // Add attribute to order list if it doesn't already exist + if (!attributes[attrName]) { + attributesOrder.push(attrName); + } + + attributes[attrName] = attr; + } + } + } + } + + // Global rule, store away these for later usage + if (!globalAttributes && elementName == '@') { + globalAttributes = attributes; + globalAttributesOrder = attributesOrder; + } + + // Handle substitute elements such as b/strong + if (outputName) { + element.outputName = elementName; + elements[outputName] = element; + } + + // Add pattern or exact element + if (hasPatternsRegExp.test(elementName)) { + element.pattern = patternToRegExp(elementName); + patternElements.push(element); + } else { + elements[elementName] = element; + } + } + } + } + } + + function setValidElements(valid_elements) { + elements = {}; + patternElements = []; + + addValidElements(valid_elements); + + each(schemaItems, function(element, name) { + children[name] = element.children; + }); + } + + // Adds custom non HTML elements to the schema + function addCustomElements(custom_elements) { + var customElementRegExp = /^(~)?(.+)$/; + + if (custom_elements) { + // Flush cached items since we are altering the default maps + mapCache.text_block_elements = mapCache.block_elements = null; + + each(split(custom_elements, ','), function(rule) { + var matches = customElementRegExp.exec(rule), + inline = matches[1] === '~', + cloneName = inline ? 'span' : 'div', + name = matches[2]; + + children[name] = children[cloneName]; + customElementsMap[name] = cloneName; + + // If it's not marked as inline then add it to valid block elements + if (!inline) { + blockElementsMap[name.toUpperCase()] = {}; + blockElementsMap[name] = {}; + } + + // Add elements clone if needed + if (!elements[name]) { + var customRule = elements[cloneName]; + + customRule = extend({}, customRule); + delete customRule.removeEmptyAttrs; + delete customRule.removeEmpty; + + elements[name] = customRule; + } + + // Add custom elements at span/div positions + each(children, function(element, elmName) { + if (element[cloneName]) { + children[elmName] = element = extend({}, children[elmName]); + element[name] = element[cloneName]; + } + }); + }); + } + } + + // Adds valid children to the schema object + function addValidChildren(valid_children) { + var childRuleRegExp = /^([+\-]?)(\w+)\[([^\]]+)\]$/; + + if (valid_children) { + each(split(valid_children, ','), function(rule) { + var matches = childRuleRegExp.exec(rule), parent, prefix; + + if (matches) { + prefix = matches[1]; + + // Add/remove items from default + if (prefix) { + parent = children[matches[2]]; + } else { + parent = children[matches[2]] = {'#comment': {}}; + } + + parent = children[matches[2]]; + + each(split(matches[3], '|'), function(child) { + if (prefix === '-') { + // Clone the element before we delete + // things in it to not mess up default schemas + children[matches[2]] = parent = extend({}, children[matches[2]]); + + delete parent[child]; + } else { + parent[child] = {}; + } + }); + } + }); + } + } + + function getElementRule(name) { + var element = elements[name], i; + + // Exact match found + if (element) { + return element; + } + + // No exact match then try the patterns + i = patternElements.length; + while (i--) { + element = patternElements[i]; + + if (element.pattern.test(name)) { + return element; + } + } + } + + if (!settings.valid_elements) { + // No valid elements defined then clone the elements from the schema spec + each(schemaItems, function(element, name) { + elements[name] = { + attributes: element.attributes, + attributesOrder: element.attributesOrder + }; + + children[name] = element.children; + }); + + // Switch these on HTML4 + if (settings.schema != "html5") { + each(split('strong/b em/i'), function(item) { + item = split(item, '/'); + elements[item[1]].outputName = item[0]; + }); + } + + // Add default alt attribute for images + elements.img.attributesDefault = [{name: 'alt', value: ''}]; + + // Remove these if they are empty by default + each(split('ol ul sub sup blockquote span font a table tbody tr strong em b i'), function(name) { + if (elements[name]) { + elements[name].removeEmpty = true; + } + }); + + // Padd these by default + each(split('p h1 h2 h3 h4 h5 h6 th td pre div address caption'), function(name) { + elements[name].paddEmpty = true; + }); + + // Remove these if they have no attributes + each(split('span'), function(name) { + elements[name].removeEmptyAttrs = true; + }); + + // Remove these by default + // TODO: Reenable in 4.1 + /*each(split('script style'), function(name) { + delete elements[name]; + });*/ + } else { + setValidElements(settings.valid_elements); + } + + addCustomElements(settings.custom_elements); + addValidChildren(settings.valid_children); + addValidElements(settings.extended_valid_elements); + + // Todo: Remove this when we fix list handling to be valid + addValidChildren('+ol[ul|ol],+ul[ul|ol]'); + + // Delete invalid elements + if (settings.invalid_elements) { + each(explode(settings.invalid_elements), function(item) { + if (elements[item]) { + delete elements[item]; + } + }); + } + + // If the user didn't allow span only allow internal spans + if (!getElementRule('span')) { + addValidElements('span[!data-mce-type|*]'); + } + + /** + * Name/value map object with valid parents and children to those parents. + * + * @example + * children = { + * div:{p:{}, h1:{}} + * }; + * @field children + * @type Object + */ + self.children = children; + + /** + * Name/value map object with valid styles for each element. + * + * @field styles + * @type Object + */ + self.styles = validStyles; + + /** + * Returns a map with boolean attributes. + * + * @method getBoolAttrs + * @return {Object} Name/value lookup map for boolean attributes. + */ + self.getBoolAttrs = function() { + return boolAttrMap; + }; + + /** + * Returns a map with block elements. + * + * @method getBlockElements + * @return {Object} Name/value lookup map for block elements. + */ + self.getBlockElements = function() { + return blockElementsMap; + }; + + /** + * Returns a map with text block elements. Such as: p,h1-h6,div,address + * + * @method getTextBlockElements + * @return {Object} Name/value lookup map for block elements. + */ + self.getTextBlockElements = function() { + return textBlockElementsMap; + }; + + /** + * Returns a map with short ended elements such as BR or IMG. + * + * @method getShortEndedElements + * @return {Object} Name/value lookup map for short ended elements. + */ + self.getShortEndedElements = function() { + return shortEndedElementsMap; + }; + + /** + * Returns a map with self closing tags such as <li>. + * + * @method getSelfClosingElements + * @return {Object} Name/value lookup map for self closing tags elements. + */ + self.getSelfClosingElements = function() { + return selfClosingElementsMap; + }; + + /** + * Returns a map with elements that should be treated as contents regardless if it has text + * content in them or not such as TD, VIDEO or IMG. + * + * @method getNonEmptyElements + * @return {Object} Name/value lookup map for non empty elements. + */ + self.getNonEmptyElements = function() { + return nonEmptyElementsMap; + }; + + /** + * Returns a map with elements where white space is to be preserved like PRE or SCRIPT. + * + * @method getWhiteSpaceElements + * @return {Object} Name/value lookup map for white space elements. + */ + self.getWhiteSpaceElements = function() { + return whiteSpaceElementsMap; + }; + + /** + * Returns a map with special elements. These are elements that needs to be parsed + * in a special way such as script, style, textarea etc. The map object values + * are regexps used to find the end of the element. + * + * @method getSpecialElements + * @return {Object} Name/value lookup map for special elements. + */ + self.getSpecialElements = function() { + return specialElements; + }; + + /** + * Returns true/false if the specified element and it's child is valid or not + * according to the schema. + * + * @method isValidChild + * @param {String} name Element name to check for. + * @param {String} child Element child to verify. + * @return {Boolean} True/false if the element is a valid child of the specified parent. + */ + self.isValidChild = function(name, child) { + var parent = children[name]; + + return !!(parent && parent[child]); + }; + + /** + * Returns true/false if the specified element name and optional attribute is + * valid according to the schema. + * + * @method isValid + * @param {String} name Name of element to check. + * @param {String} attr Optional attribute name to check for. + * @return {Boolean} True/false if the element and attribute is valid. + */ + self.isValid = function(name, attr) { + var attrPatterns, i, rule = getElementRule(name); + + // Check if it's a valid element + if (rule) { + if (attr) { + // Check if attribute name exists + if (rule.attributes[attr]) { + return true; + } + + // Check if attribute matches a regexp pattern + attrPatterns = rule.attributePatterns; + if (attrPatterns) { + i = attrPatterns.length; + while (i--) { + if (attrPatterns[i].pattern.test(name)) { + return true; + } + } + } + } else { + return true; + } + } + + // No match + return false; + }; + + /** + * Returns true/false if the specified element is valid or not + * according to the schema. + * + * @method getElementRule + * @param {String} name Element name to check for. + * @return {Object} Element object or undefined if the element isn't valid. + */ + self.getElementRule = getElementRule; + + /** + * Returns an map object of all custom elements. + * + * @method getCustomElements + * @return {Object} Name/value map object of all custom elements. + */ + self.getCustomElements = function() { + return customElementsMap; + }; + + /** + * Parses a valid elements string and adds it to the schema. The valid elements + * format is for example "element[attr=default|otherattr]". + * Existing rules will be replaced with the ones specified, so this extends the schema. + * + * @method addValidElements + * @param {String} valid_elements String in the valid elements format to be parsed. + */ + self.addValidElements = addValidElements; + + /** + * Parses a valid elements string and sets it to the schema. The valid elements + * format is for example "element[attr=default|otherattr]". + * Existing rules will be replaced with the ones specified, so this extends the schema. + * + * @method setValidElements + * @param {String} valid_elements String in the valid elements format to be parsed. + */ + self.setValidElements = setValidElements; + + /** + * Adds custom non HTML elements to the schema. + * + * @method addCustomElements + * @param {String} custom_elements Comma separated list of custom elements to add. + */ + self.addCustomElements = addCustomElements; + + /** + * Parses a valid children string and adds them to the schema structure. The valid children + * format is for example: "element[child1|child2]". + * + * @method addValidChildren + * @param {String} valid_children Valid children elements string to parse + */ + self.addValidChildren = addValidChildren; + + self.elements = elements; + }; +}); + +// Included from: js/tinymce/classes/html/SaxParser.js + +/** + * SaxParser.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*eslint max-depth:[2, 9] */ + +/** + * This class parses HTML code using pure JavaScript and executes various events for each item it finds. It will + * always execute the events in the right order for tag soup code like <b><p></b></p>. It will also remove elements + * and attributes that doesn't fit the schema if the validate setting is enabled. + * + * @example + * var parser = new tinymce.html.SaxParser({ + * validate: true, + * + * comment: function(text) { + * console.log('Comment:', text); + * }, + * + * cdata: function(text) { + * console.log('CDATA:', text); + * }, + * + * text: function(text, raw) { + * console.log('Text:', text, 'Raw:', raw); + * }, + * + * start: function(name, attrs, empty) { + * console.log('Start:', name, attrs, empty); + * }, + * + * end: function(name) { + * console.log('End:', name); + * }, + * + * pi: function(name, text) { + * console.log('PI:', name, text); + * }, + * + * doctype: function(text) { + * console.log('DocType:', text); + * } + * }, schema); + * @class tinymce.html.SaxParser + * @version 3.4 + */ +define("tinymce/html/SaxParser", [ + "tinymce/html/Schema", + "tinymce/html/Entities", + "tinymce/util/Tools" +], function(Schema, Entities, Tools) { + var each = Tools.each; + + /** + * Constructs a new SaxParser instance. + * + * @constructor + * @method SaxParser + * @param {Object} settings Name/value collection of settings. comment, cdata, text, start and end are callbacks. + * @param {tinymce.html.Schema} schema HTML Schema class to use when parsing. + */ + return function(settings, schema) { + var self = this; + + function noop() {} + + settings = settings || {}; + self.schema = schema = schema || new Schema(); + + if (settings.fix_self_closing !== false) { + settings.fix_self_closing = true; + } + + // Add handler functions from settings and setup default handlers + each('comment cdata text start end pi doctype'.split(' '), function(name) { + if (name) { + self[name] = settings[name] || noop; + } + }); + + /** + * Parses the specified HTML string and executes the callbacks for each item it finds. + * + * @example + * new SaxParser({...}).parse('<b>text</b>'); + * @method parse + * @param {String} html Html string to sax parse. + */ + self.parse = function(html) { + var self = this, matches, index = 0, value, endRegExp, stack = [], attrList, i, text, name; + var isInternalElement, removeInternalElements, shortEndedElements, fillAttrsMap, isShortEnded; + var validate, elementRule, isValidElement, attr, attribsValue, validAttributesMap, validAttributePatterns; + var attributesRequired, attributesDefault, attributesForced; + var anyAttributesRequired, selfClosing, tokenRegExp, attrRegExp, specialElements, attrValue, idCount = 0; + var decode = Entities.decode, fixSelfClosing, filteredUrlAttrs = Tools.makeMap('src,href'); + var scriptUriRegExp = /(java|vb)script:/i; + + function processEndTag(name) { + var pos, i; + + // Find position of parent of the same type + pos = stack.length; + while (pos--) { + if (stack[pos].name === name) { + break; + } + } + + // Found parent + if (pos >= 0) { + // Close all the open elements + for (i = stack.length - 1; i >= pos; i--) { + name = stack[i]; + + if (name.valid) { + self.end(name.name); + } + } + + // Remove the open elements from the stack + stack.length = pos; + } + } + + function parseAttribute(match, name, value, val2, val3) { + var attrRule, i, trimRegExp = /[\s\u0000-\u001F]+/g; + + name = name.toLowerCase(); + value = name in fillAttrsMap ? name : decode(value || val2 || val3 || ''); // Handle boolean attribute than value attribute + + // Validate name and value pass through all data- attributes + if (validate && !isInternalElement && name.indexOf('data-') !== 0) { + attrRule = validAttributesMap[name]; + + // Find rule by pattern matching + if (!attrRule && validAttributePatterns) { + i = validAttributePatterns.length; + while (i--) { + attrRule = validAttributePatterns[i]; + if (attrRule.pattern.test(name)) { + break; + } + } + + // No rule matched + if (i === -1) { + attrRule = null; + } + } + + // No attribute rule found + if (!attrRule) { + return; + } + + // Validate value + if (attrRule.validValues && !(value in attrRule.validValues)) { + return; + } + } + + // Block any javascript: urls + if (filteredUrlAttrs[name] && !settings.allow_script_urls) { + var uri = value.replace(trimRegExp, ''); + + try { + // Might throw malformed URI sequence + uri = decodeURIComponent(uri); + if (scriptUriRegExp.test(uri)) { + return; + } + } catch (ex) { + // Fallback to non UTF-8 decoder + uri = unescape(uri); + if (scriptUriRegExp.test(uri)) { + return; + } + } + } + + // Add attribute to list and map + attrList.map[name] = value; + attrList.push({ + name: name, + value: value + }); + } + + // Precompile RegExps and map objects + tokenRegExp = new RegExp('<(?:' + + '(?:!--([\\w\\W]*?)-->)|' + // Comment + '(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|' + // CDATA + '(?:!DOCTYPE([\\w\\W]*?)>)|' + // DOCTYPE + '(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|' + // PI + '(?:\\/([^>]+)>)|' + // End element + '(?:([A-Za-z0-9\\-\\:\\.]+)((?:\\s+[^"\'>]+(?:(?:"[^"]*")|(?:\'[^\']*\')|[^>]*))*|\\/|\\s+)>)' + // Start element + ')', 'g'); + + attrRegExp = /([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g; + + // Setup lookup tables for empty elements and boolean attributes + shortEndedElements = schema.getShortEndedElements(); + selfClosing = settings.self_closing_elements || schema.getSelfClosingElements(); + fillAttrsMap = schema.getBoolAttrs(); + validate = settings.validate; + removeInternalElements = settings.remove_internals; + fixSelfClosing = settings.fix_self_closing; + specialElements = schema.getSpecialElements(); + + while ((matches = tokenRegExp.exec(html))) { + // Text + if (index < matches.index) { + self.text(decode(html.substr(index, matches.index - index))); + } + + if ((value = matches[6])) { // End element + value = value.toLowerCase(); + + // IE will add a ":" in front of elements it doesn't understand like custom elements or HTML5 elements + if (value.charAt(0) === ':') { + value = value.substr(1); + } + + processEndTag(value); + } else if ((value = matches[7])) { // Start element + value = value.toLowerCase(); + + // IE will add a ":" in front of elements it doesn't understand like custom elements or HTML5 elements + if (value.charAt(0) === ':') { + value = value.substr(1); + } + + isShortEnded = value in shortEndedElements; + + // Is self closing tag for example an <li> after an open <li> + if (fixSelfClosing && selfClosing[value] && stack.length > 0 && stack[stack.length - 1].name === value) { + processEndTag(value); + } + + // Validate element + if (!validate || (elementRule = schema.getElementRule(value))) { + isValidElement = true; + + // Grab attributes map and patters when validation is enabled + if (validate) { + validAttributesMap = elementRule.attributes; + validAttributePatterns = elementRule.attributePatterns; + } + + // Parse attributes + if ((attribsValue = matches[8])) { + isInternalElement = attribsValue.indexOf('data-mce-type') !== -1; // Check if the element is an internal element + + // If the element has internal attributes then remove it if we are told to do so + if (isInternalElement && removeInternalElements) { + isValidElement = false; + } + + attrList = []; + attrList.map = {}; + + attribsValue.replace(attrRegExp, parseAttribute); + } else { + attrList = []; + attrList.map = {}; + } + + // Process attributes if validation is enabled + if (validate && !isInternalElement) { + attributesRequired = elementRule.attributesRequired; + attributesDefault = elementRule.attributesDefault; + attributesForced = elementRule.attributesForced; + anyAttributesRequired = elementRule.removeEmptyAttrs; + + // Check if any attribute exists + if (anyAttributesRequired && !attrList.length) { + isValidElement = false; + } + + // Handle forced attributes + if (attributesForced) { + i = attributesForced.length; + while (i--) { + attr = attributesForced[i]; + name = attr.name; + attrValue = attr.value; + + if (attrValue === '{$uid}') { + attrValue = 'mce_' + idCount++; + } + + attrList.map[name] = attrValue; + attrList.push({name: name, value: attrValue}); + } + } + + // Handle default attributes + if (attributesDefault) { + i = attributesDefault.length; + while (i--) { + attr = attributesDefault[i]; + name = attr.name; + + if (!(name in attrList.map)) { + attrValue = attr.value; + + if (attrValue === '{$uid}') { + attrValue = 'mce_' + idCount++; + } + + attrList.map[name] = attrValue; + attrList.push({name: name, value: attrValue}); + } + } + } + + // Handle required attributes + if (attributesRequired) { + i = attributesRequired.length; + while (i--) { + if (attributesRequired[i] in attrList.map) { + break; + } + } + + // None of the required attributes where found + if (i === -1) { + isValidElement = false; + } + } + + // Invalidate element if it's marked as bogus + if (attrList.map['data-mce-bogus']) { + isValidElement = false; + } + } + + if (isValidElement) { + self.start(value, attrList, isShortEnded); + } + } else { + isValidElement = false; + } + + // Treat script, noscript and style a bit different since they may include code that looks like elements + if ((endRegExp = specialElements[value])) { + endRegExp.lastIndex = index = matches.index + matches[0].length; + + if ((matches = endRegExp.exec(html))) { + if (isValidElement) { + text = html.substr(index, matches.index - index); + } + + index = matches.index + matches[0].length; + } else { + text = html.substr(index); + index = html.length; + } + + if (isValidElement) { + if (text.length > 0) { + self.text(text, true); + } + + self.end(value); + } + + tokenRegExp.lastIndex = index; + continue; + } + + // Push value on to stack + if (!isShortEnded) { + if (!attribsValue || attribsValue.indexOf('/') != attribsValue.length - 1) { + stack.push({name: value, valid: isValidElement}); + } else if (isValidElement) { + self.end(value); + } + } + } else if ((value = matches[1])) { // Comment + // Padd comment value to avoid browsers from parsing invalid comments as HTML + if (value.charAt(0) === '>') { + value = ' ' + value; + } + + if (!settings.allow_conditional_comments && value.substr(0, 3) === '[if') { + value = ' ' + value; + } + + self.comment(value); + } else if ((value = matches[2])) { // CDATA + self.cdata(value); + } else if ((value = matches[3])) { // DOCTYPE + self.doctype(value); + } else if ((value = matches[4])) { // PI + self.pi(value, matches[5]); + } + + index = matches.index + matches[0].length; + } + + // Text + if (index < html.length) { + self.text(decode(html.substr(index))); + } + + // Close any open elements + for (i = stack.length - 1; i >= 0; i--) { + value = stack[i]; + + if (value.valid) { + self.end(value.name); + } + } + }; + }; +}); + +// Included from: js/tinymce/classes/html/DomParser.js + +/** + * DomParser.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class parses HTML code into a DOM like structure of nodes it will remove redundant whitespace and make + * sure that the node tree is valid according to the specified schema. + * So for example: <p>a<p>b</p>c</p> will become <p>a</p><p>b</p><p>c</p> + * + * @example + * var parser = new tinymce.html.DomParser({validate: true}, schema); + * var rootNode = parser.parse('<h1>content</h1>'); + * + * @class tinymce.html.DomParser + * @version 3.4 + */ +define("tinymce/html/DomParser", [ + "tinymce/html/Node", + "tinymce/html/Schema", + "tinymce/html/SaxParser", + "tinymce/util/Tools" +], function(Node, Schema, SaxParser, Tools) { + var makeMap = Tools.makeMap, each = Tools.each, explode = Tools.explode, extend = Tools.extend; + + /** + * Constructs a new DomParser instance. + * + * @constructor + * @method DomParser + * @param {Object} settings Name/value collection of settings. comment, cdata, text, start and end are callbacks. + * @param {tinymce.html.Schema} schema HTML Schema class to use when parsing. + */ + return function(settings, schema) { + var self = this, nodeFilters = {}, attributeFilters = [], matchedNodes = {}, matchedAttributes = {}; + + settings = settings || {}; + settings.validate = "validate" in settings ? settings.validate : true; + settings.root_name = settings.root_name || 'body'; + self.schema = schema = schema || new Schema(); + + function fixInvalidChildren(nodes) { + var ni, node, parent, parents, newParent, currentNode, tempNode, childNode, i; + var nonEmptyElements, nonSplitableElements, textBlockElements, sibling, nextNode; + + nonSplitableElements = makeMap('tr,td,th,tbody,thead,tfoot,table'); + nonEmptyElements = schema.getNonEmptyElements(); + textBlockElements = schema.getTextBlockElements(); + + for (ni = 0; ni < nodes.length; ni++) { + node = nodes[ni]; + + // Already removed or fixed + if (!node.parent || node.fixed) { + continue; + } + + // If the invalid element is a text block and the text block is within a parent LI element + // Then unwrap the first text block and convert other sibling text blocks to LI elements similar to Word/Open Office + if (textBlockElements[node.name] && node.parent.name == 'li') { + // Move sibling text blocks after LI element + sibling = node.next; + while (sibling) { + if (textBlockElements[sibling.name]) { + sibling.name = 'li'; + sibling.fixed = true; + node.parent.insert(sibling, node.parent); + } else { + break; + } + + sibling = sibling.next; + } + + // Unwrap current text block + node.unwrap(node); + continue; + } + + // Get list of all parent nodes until we find a valid parent to stick the child into + parents = [node]; + for (parent = node.parent; parent && !schema.isValidChild(parent.name, node.name) && + !nonSplitableElements[parent.name]; parent = parent.parent) { + parents.push(parent); + } + + // Found a suitable parent + if (parent && parents.length > 1) { + // Reverse the array since it makes looping easier + parents.reverse(); + + // Clone the related parent and insert that after the moved node + newParent = currentNode = self.filterNode(parents[0].clone()); + + // Start cloning and moving children on the left side of the target node + for (i = 0; i < parents.length - 1; i++) { + if (schema.isValidChild(currentNode.name, parents[i].name)) { + tempNode = self.filterNode(parents[i].clone()); + currentNode.append(tempNode); + } else { + tempNode = currentNode; + } + + for (childNode = parents[i].firstChild; childNode && childNode != parents[i + 1]; ) { + nextNode = childNode.next; + tempNode.append(childNode); + childNode = nextNode; + } + + currentNode = tempNode; + } + + if (!newParent.isEmpty(nonEmptyElements)) { + parent.insert(newParent, parents[0], true); + parent.insert(node, newParent); + } else { + parent.insert(node, parents[0], true); + } + + // Check if the element is empty by looking through it's contents and special treatment for <p><br /></p> + parent = parents[0]; + if (parent.isEmpty(nonEmptyElements) || parent.firstChild === parent.lastChild && parent.firstChild.name === 'br') { + parent.empty().remove(); + } + } else if (node.parent) { + // If it's an LI try to find a UL/OL for it or wrap it + if (node.name === 'li') { + sibling = node.prev; + if (sibling && (sibling.name === 'ul' || sibling.name === 'ul')) { + sibling.append(node); + continue; + } + + sibling = node.next; + if (sibling && (sibling.name === 'ul' || sibling.name === 'ul')) { + sibling.insert(node, sibling.firstChild, true); + continue; + } + + node.wrap(self.filterNode(new Node('ul', 1))); + continue; + } + + // Try wrapping the element in a DIV + if (schema.isValidChild(node.parent.name, 'div') && schema.isValidChild('div', node.name)) { + node.wrap(self.filterNode(new Node('div', 1))); + } else { + // We failed wrapping it, then remove or unwrap it + if (node.name === 'style' || node.name === 'script') { + node.empty().remove(); + } else { + node.unwrap(); + } + } + } + } + } + + /** + * Runs the specified node though the element and attributes filters. + * + * @method filterNode + * @param {tinymce.html.Node} Node the node to run filters on. + * @return {tinymce.html.Node} The passed in node. + */ + self.filterNode = function(node) { + var i, name, list; + + // Run element filters + if (name in nodeFilters) { + list = matchedNodes[name]; + + if (list) { + list.push(node); + } else { + matchedNodes[name] = [node]; + } + } + + // Run attribute filters + i = attributeFilters.length; + while (i--) { + name = attributeFilters[i].name; + + if (name in node.attributes.map) { + list = matchedAttributes[name]; + + if (list) { + list.push(node); + } else { + matchedAttributes[name] = [node]; + } + } + } + + return node; + }; + + /** + * Adds a node filter function to the parser, the parser will collect the specified nodes by name + * and then execute the callback ones it has finished parsing the document. + * + * @example + * parser.addNodeFilter('p,h1', function(nodes, name) { + * for (var i = 0; i < nodes.length; i++) { + * console.log(nodes[i].name); + * } + * }); + * @method addNodeFilter + * @method {String} name Comma separated list of nodes to collect. + * @param {function} callback Callback function to execute once it has collected nodes. + */ + self.addNodeFilter = function(name, callback) { + each(explode(name), function(name) { + var list = nodeFilters[name]; + + if (!list) { + nodeFilters[name] = list = []; + } + + list.push(callback); + }); + }; + + /** + * Adds a attribute filter function to the parser, the parser will collect nodes that has the specified attributes + * and then execute the callback ones it has finished parsing the document. + * + * @example + * parser.addAttributeFilter('src,href', function(nodes, name) { + * for (var i = 0; i < nodes.length; i++) { + * console.log(nodes[i].name); + * } + * }); + * @method addAttributeFilter + * @method {String} name Comma separated list of nodes to collect. + * @param {function} callback Callback function to execute once it has collected nodes. + */ + self.addAttributeFilter = function(name, callback) { + each(explode(name), function(name) { + var i; + + for (i = 0; i < attributeFilters.length; i++) { + if (attributeFilters[i].name === name) { + attributeFilters[i].callbacks.push(callback); + return; + } + } + + attributeFilters.push({name: name, callbacks: [callback]}); + }); + }; + + /** + * Parses the specified HTML string into a DOM like node tree and returns the result. + * + * @example + * var rootNode = new DomParser({...}).parse('<b>text</b>'); + * @method parse + * @param {String} html Html string to sax parse. + * @param {Object} args Optional args object that gets passed to all filter functions. + * @return {tinymce.html.Node} Root node containing the tree. + */ + self.parse = function(html, args) { + var parser, rootNode, node, nodes, i, l, fi, fl, list, name, validate; + var blockElements, startWhiteSpaceRegExp, invalidChildren = [], isInWhiteSpacePreservedElement; + var endWhiteSpaceRegExp, allWhiteSpaceRegExp, isAllWhiteSpaceRegExp, whiteSpaceElements; + var children, nonEmptyElements, rootBlockName; + + args = args || {}; + matchedNodes = {}; + matchedAttributes = {}; + blockElements = extend(makeMap('script,style,head,html,body,title,meta,param'), schema.getBlockElements()); + nonEmptyElements = schema.getNonEmptyElements(); + children = schema.children; + validate = settings.validate; + rootBlockName = "forced_root_block" in args ? args.forced_root_block : settings.forced_root_block; + + whiteSpaceElements = schema.getWhiteSpaceElements(); + startWhiteSpaceRegExp = /^[ \t\r\n]+/; + endWhiteSpaceRegExp = /[ \t\r\n]+$/; + allWhiteSpaceRegExp = /[ \t\r\n]+/g; + isAllWhiteSpaceRegExp = /^[ \t\r\n]+$/; + + function addRootBlocks() { + var node = rootNode.firstChild, next, rootBlockNode; + + // Removes whitespace at beginning and end of block so: + // <p> x </p> -> <p>x</p> + function trim(rootBlockNode) { + if (rootBlockNode) { + node = rootBlockNode.firstChild; + if (node && node.type == 3) { + node.value = node.value.replace(startWhiteSpaceRegExp, ''); + } + + node = rootBlockNode.lastChild; + if (node && node.type == 3) { + node.value = node.value.replace(endWhiteSpaceRegExp, ''); + } + } + } + + // Check if rootBlock is valid within rootNode for example if P is valid in H1 if H1 is the contentEditabe root + if (!schema.isValidChild(rootNode.name, rootBlockName.toLowerCase())) { + return; + } + + while (node) { + next = node.next; + + if (node.type == 3 || (node.type == 1 && node.name !== 'p' && + !blockElements[node.name] && !node.attr('data-mce-type'))) { + if (!rootBlockNode) { + // Create a new root block element + rootBlockNode = createNode(rootBlockName, 1); + rootBlockNode.attr(settings.forced_root_block_attrs); + rootNode.insert(rootBlockNode, node); + rootBlockNode.append(node); + } else { + rootBlockNode.append(node); + } + } else { + trim(rootBlockNode); + rootBlockNode = null; + } + + node = next; + } + + trim(rootBlockNode); + } + + function createNode(name, type) { + var node = new Node(name, type), list; + + if (name in nodeFilters) { + list = matchedNodes[name]; + + if (list) { + list.push(node); + } else { + matchedNodes[name] = [node]; + } + } + + return node; + } + + function removeWhitespaceBefore(node) { + var textNode, textVal, sibling; + + for (textNode = node.prev; textNode && textNode.type === 3; ) { + textVal = textNode.value.replace(endWhiteSpaceRegExp, ''); + + if (textVal.length > 0) { + textNode.value = textVal; + textNode = textNode.prev; + } else { + sibling = textNode.prev; + textNode.remove(); + textNode = sibling; + } + } + } + + function cloneAndExcludeBlocks(input) { + var name, output = {}; + + for (name in input) { + if (name !== 'li' && name != 'p') { + output[name] = input[name]; + } + } + + return output; + } + + parser = new SaxParser({ + validate: validate, + allow_script_urls: settings.allow_script_urls, + allow_conditional_comments: settings.allow_conditional_comments, + + // Exclude P and LI from DOM parsing since it's treated better by the DOM parser + self_closing_elements: cloneAndExcludeBlocks(schema.getSelfClosingElements()), + + cdata: function(text) { + node.append(createNode('#cdata', 4)).value = text; + }, + + text: function(text, raw) { + var textNode; + + // Trim all redundant whitespace on non white space elements + if (!isInWhiteSpacePreservedElement) { + text = text.replace(allWhiteSpaceRegExp, ' '); + + if (node.lastChild && blockElements[node.lastChild.name]) { + text = text.replace(startWhiteSpaceRegExp, ''); + } + } + + // Do we need to create the node + if (text.length !== 0) { + textNode = createNode('#text', 3); + textNode.raw = !!raw; + node.append(textNode).value = text; + } + }, + + comment: function(text) { + node.append(createNode('#comment', 8)).value = text; + }, + + pi: function(name, text) { + node.append(createNode(name, 7)).value = text; + removeWhitespaceBefore(node); + }, + + doctype: function(text) { + var newNode; + + newNode = node.append(createNode('#doctype', 10)); + newNode.value = text; + removeWhitespaceBefore(node); + }, + + start: function(name, attrs, empty) { + var newNode, attrFiltersLen, elementRule, attrName, parent; + + elementRule = validate ? schema.getElementRule(name) : {}; + if (elementRule) { + newNode = createNode(elementRule.outputName || name, 1); + newNode.attributes = attrs; + newNode.shortEnded = empty; + + node.append(newNode); + + // Check if node is valid child of the parent node is the child is + // unknown we don't collect it since it's probably a custom element + parent = children[node.name]; + if (parent && children[newNode.name] && !parent[newNode.name]) { + invalidChildren.push(newNode); + } + + attrFiltersLen = attributeFilters.length; + while (attrFiltersLen--) { + attrName = attributeFilters[attrFiltersLen].name; + + if (attrName in attrs.map) { + list = matchedAttributes[attrName]; + + if (list) { + list.push(newNode); + } else { + matchedAttributes[attrName] = [newNode]; + } + } + } + + // Trim whitespace before block + if (blockElements[name]) { + removeWhitespaceBefore(newNode); + } + + // Change current node if the element wasn't empty i.e not <br /> or <img /> + if (!empty) { + node = newNode; + } + + // Check if we are inside a whitespace preserved element + if (!isInWhiteSpacePreservedElement && whiteSpaceElements[name]) { + isInWhiteSpacePreservedElement = true; + } + } + }, + + end: function(name) { + var textNode, elementRule, text, sibling, tempNode; + + elementRule = validate ? schema.getElementRule(name) : {}; + if (elementRule) { + if (blockElements[name]) { + if (!isInWhiteSpacePreservedElement) { + // Trim whitespace of the first node in a block + textNode = node.firstChild; + if (textNode && textNode.type === 3) { + text = textNode.value.replace(startWhiteSpaceRegExp, ''); + + // Any characters left after trim or should we remove it + if (text.length > 0) { + textNode.value = text; + textNode = textNode.next; + } else { + sibling = textNode.next; + textNode.remove(); + textNode = sibling; + + // Remove any pure whitespace siblings + while (textNode && textNode.type === 3) { + text = textNode.value; + sibling = textNode.next; + + if (text.length === 0 || isAllWhiteSpaceRegExp.test(text)) { + textNode.remove(); + textNode = sibling; + } + + textNode = sibling; + } + } + } + + // Trim whitespace of the last node in a block + textNode = node.lastChild; + if (textNode && textNode.type === 3) { + text = textNode.value.replace(endWhiteSpaceRegExp, ''); + + // Any characters left after trim or should we remove it + if (text.length > 0) { + textNode.value = text; + textNode = textNode.prev; + } else { + sibling = textNode.prev; + textNode.remove(); + textNode = sibling; + + // Remove any pure whitespace siblings + while (textNode && textNode.type === 3) { + text = textNode.value; + sibling = textNode.prev; + + if (text.length === 0 || isAllWhiteSpaceRegExp.test(text)) { + textNode.remove(); + textNode = sibling; + } + + textNode = sibling; + } + } + } + } + + // Trim start white space + // Removed due to: #5424 + /*textNode = node.prev; + if (textNode && textNode.type === 3) { + text = textNode.value.replace(startWhiteSpaceRegExp, ''); + + if (text.length > 0) + textNode.value = text; + else + textNode.remove(); + }*/ + } + + // Check if we exited a whitespace preserved element + if (isInWhiteSpacePreservedElement && whiteSpaceElements[name]) { + isInWhiteSpacePreservedElement = false; + } + + // Handle empty nodes + if (elementRule.removeEmpty || elementRule.paddEmpty) { + if (node.isEmpty(nonEmptyElements)) { + if (elementRule.paddEmpty) { + node.empty().append(new Node('#text', '3')).value = '\u00a0'; + } else { + // Leave nodes that have a name like <a name="name"> + if (!node.attributes.map.name && !node.attributes.map.id) { + tempNode = node.parent; + node.empty().remove(); + node = tempNode; + return; + } + } + } + } + + node = node.parent; + } + } + }, schema); + + rootNode = node = new Node(args.context || settings.root_name, 11); + + parser.parse(html); + + // Fix invalid children or report invalid children in a contextual parsing + if (validate && invalidChildren.length) { + if (!args.context) { + fixInvalidChildren(invalidChildren); + } else { + args.invalid = true; + } + } + + // Wrap nodes in the root into block elements if the root is body + if (rootBlockName && (rootNode.name == 'body' || args.isRootContent)) { + addRootBlocks(); + } + + // Run filters only when the contents is valid + if (!args.invalid) { + // Run node filters + for (name in matchedNodes) { + list = nodeFilters[name]; + nodes = matchedNodes[name]; + + // Remove already removed children + fi = nodes.length; + while (fi--) { + if (!nodes[fi].parent) { + nodes.splice(fi, 1); + } + } + + for (i = 0, l = list.length; i < l; i++) { + list[i](nodes, name, args); + } + } + + // Run attribute filters + for (i = 0, l = attributeFilters.length; i < l; i++) { + list = attributeFilters[i]; + + if (list.name in matchedAttributes) { + nodes = matchedAttributes[list.name]; + + // Remove already removed children + fi = nodes.length; + while (fi--) { + if (!nodes[fi].parent) { + nodes.splice(fi, 1); + } + } + + for (fi = 0, fl = list.callbacks.length; fi < fl; fi++) { + list.callbacks[fi](nodes, list.name, args); + } + } + } + } + + return rootNode; + }; + + // Remove <br> at end of block elements Gecko and WebKit injects BR elements to + // make it possible to place the caret inside empty blocks. This logic tries to remove + // these elements and keep br elements that where intended to be there intact + if (settings.remove_trailing_brs) { + self.addNodeFilter('br', function(nodes) { + var i, l = nodes.length, node, blockElements = extend({}, schema.getBlockElements()); + var nonEmptyElements = schema.getNonEmptyElements(), parent, lastParent, prev, prevName; + var elementRule, textNode; + + // Remove brs from body element as well + blockElements.body = 1; + + // Must loop forwards since it will otherwise remove all brs in <p>a<br><br><br></p> + for (i = 0; i < l; i++) { + node = nodes[i]; + parent = node.parent; + + if (blockElements[node.parent.name] && node === parent.lastChild) { + // Loop all nodes to the left of the current node and check for other BR elements + // excluding bookmarks since they are invisible + prev = node.prev; + while (prev) { + prevName = prev.name; + + // Ignore bookmarks + if (prevName !== "span" || prev.attr('data-mce-type') !== 'bookmark') { + // Found a non BR element + if (prevName !== "br") { + break; + } + + // Found another br it's a <br><br> structure then don't remove anything + if (prevName === 'br') { + node = null; + break; + } + } + + prev = prev.prev; + } + + if (node) { + node.remove(); + + // Is the parent to be considered empty after we removed the BR + if (parent.isEmpty(nonEmptyElements)) { + elementRule = schema.getElementRule(parent.name); + + // Remove or padd the element depending on schema rule + if (elementRule) { + if (elementRule.removeEmpty) { + parent.remove(); + } else if (elementRule.paddEmpty) { + parent.empty().append(new Node('#text', 3)).value = '\u00a0'; + } + } + } + } + } else { + // Replaces BR elements inside inline elements like <p><b><i><br></i></b></p> + // so they become <p><b><i> </i></b></p> + lastParent = node; + while (parent && parent.firstChild === lastParent && parent.lastChild === lastParent) { + lastParent = parent; + + if (blockElements[parent.name]) { + break; + } + + parent = parent.parent; + } + + if (lastParent === parent) { + textNode = new Node('#text', 3); + textNode.value = '\u00a0'; + node.replace(textNode); + } + } + } + }); + } + + // Force anchor names closed, unless the setting "allow_html_in_named_anchor" is explicitly included. + if (!settings.allow_html_in_named_anchor) { + self.addAttributeFilter('id,name', function(nodes) { + var i = nodes.length, sibling, prevSibling, parent, node; + + while (i--) { + node = nodes[i]; + if (node.name === 'a' && node.firstChild && !node.attr('href')) { + parent = node.parent; + + // Move children after current node + sibling = node.lastChild; + do { + prevSibling = sibling.prev; + parent.insert(sibling, node); + sibling = prevSibling; + } while (sibling); + } + } + }); + } + }; +}); + +// Included from: js/tinymce/classes/html/Writer.js + +/** + * Writer.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class is used to write HTML tags out it can be used with the Serializer or the SaxParser. + * + * @class tinymce.html.Writer + * @example + * var writer = new tinymce.html.Writer({indent: true}); + * var parser = new tinymce.html.SaxParser(writer).parse('<p><br></p>'); + * console.log(writer.getContent()); + * + * @class tinymce.html.Writer + * @version 3.4 + */ +define("tinymce/html/Writer", [ + "tinymce/html/Entities", + "tinymce/util/Tools" +], function(Entities, Tools) { + var makeMap = Tools.makeMap; + + /** + * Constructs a new Writer instance. + * + * @constructor + * @method Writer + * @param {Object} settings Name/value settings object. + */ + return function(settings) { + var html = [], indent, indentBefore, indentAfter, encode, htmlOutput; + + settings = settings || {}; + indent = settings.indent; + indentBefore = makeMap(settings.indent_before || ''); + indentAfter = makeMap(settings.indent_after || ''); + encode = Entities.getEncodeFunc(settings.entity_encoding || 'raw', settings.entities); + htmlOutput = settings.element_format == "html"; + + return { + /** + * Writes the a start element such as <p id="a">. + * + * @method start + * @param {String} name Name of the element. + * @param {Array} attrs Optional attribute array or undefined if it hasn't any. + * @param {Boolean} empty Optional empty state if the tag should end like <br />. + */ + start: function(name, attrs, empty) { + var i, l, attr, value; + + if (indent && indentBefore[name] && html.length > 0) { + value = html[html.length - 1]; + + if (value.length > 0 && value !== '\n') { + html.push('\n'); + } + } + + html.push('<', name); + + if (attrs) { + for (i = 0, l = attrs.length; i < l; i++) { + attr = attrs[i]; + html.push(' ', attr.name, '="', encode(attr.value, true), '"'); + } + } + + if (!empty || htmlOutput) { + html[html.length] = '>'; + } else { + html[html.length] = ' />'; + } + + if (empty && indent && indentAfter[name] && html.length > 0) { + value = html[html.length - 1]; + + if (value.length > 0 && value !== '\n') { + html.push('\n'); + } + } + }, + + /** + * Writes the a end element such as </p>. + * + * @method end + * @param {String} name Name of the element. + */ + end: function(name) { + var value; + + /*if (indent && indentBefore[name] && html.length > 0) { + value = html[html.length - 1]; + + if (value.length > 0 && value !== '\n') + html.push('\n'); + }*/ + + html.push('</', name, '>'); + + if (indent && indentAfter[name] && html.length > 0) { + value = html[html.length - 1]; + + if (value.length > 0 && value !== '\n') { + html.push('\n'); + } + } + }, + + /** + * Writes a text node. + * + * @method text + * @param {String} text String to write out. + * @param {Boolean} raw Optional raw state if true the contents wont get encoded. + */ + text: function(text, raw) { + if (text.length > 0) { + html[html.length] = raw ? text : encode(text); + } + }, + + /** + * Writes a cdata node such as <![CDATA[data]]>. + * + * @method cdata + * @param {String} text String to write out inside the cdata. + */ + cdata: function(text) { + html.push('<![CDATA[', text, ']]>'); + }, + + /** + * Writes a comment node such as <!-- Comment -->. + * + * @method cdata + * @param {String} text String to write out inside the comment. + */ + comment: function(text) { + html.push('<!--', text, '-->'); + }, + + /** + * Writes a PI node such as <?xml attr="value" ?>. + * + * @method pi + * @param {String} name Name of the pi. + * @param {String} text String to write out inside the pi. + */ + pi: function(name, text) { + if (text) { + html.push('<?', name, ' ', text, '?>'); + } else { + html.push('<?', name, '?>'); + } + + if (indent) { + html.push('\n'); + } + }, + + /** + * Writes a doctype node such as <!DOCTYPE data>. + * + * @method doctype + * @param {String} text String to write out inside the doctype. + */ + doctype: function(text) { + html.push('<!DOCTYPE', text, '>', indent ? '\n' : ''); + }, + + /** + * Resets the internal buffer if one wants to reuse the writer. + * + * @method reset + */ + reset: function() { + html.length = 0; + }, + + /** + * Returns the contents that got serialized. + * + * @method getContent + * @return {String} HTML contents that got written down. + */ + getContent: function() { + return html.join('').replace(/\n$/, ''); + } + }; + }; +}); + +// Included from: js/tinymce/classes/html/Serializer.js + +/** + * Serializer.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class is used to serialize down the DOM tree into a string using a Writer instance. + * + * + * @example + * new tinymce.html.Serializer().serialize(new tinymce.html.DomParser().parse('<p>text</p>')); + * @class tinymce.html.Serializer + * @version 3.4 + */ +define("tinymce/html/Serializer", [ + "tinymce/html/Writer", + "tinymce/html/Schema" +], function(Writer, Schema) { + /** + * Constructs a new Serializer instance. + * + * @constructor + * @method Serializer + * @param {Object} settings Name/value settings object. + * @param {tinymce.html.Schema} schema Schema instance to use. + */ + return function(settings, schema) { + var self = this, writer = new Writer(settings); + + settings = settings || {}; + settings.validate = "validate" in settings ? settings.validate : true; + + self.schema = schema = schema || new Schema(); + self.writer = writer; + + /** + * Serializes the specified node into a string. + * + * @example + * new tinymce.html.Serializer().serialize(new tinymce.html.DomParser().parse('<p>text</p>')); + * @method serialize + * @param {tinymce.html.Node} node Node instance to serialize. + * @return {String} String with HTML based on DOM tree. + */ + self.serialize = function(node) { + var handlers, validate; + + validate = settings.validate; + + handlers = { + // #text + 3: function(node) { + writer.text(node.value, node.raw); + }, + + // #comment + 8: function(node) { + writer.comment(node.value); + }, + + // Processing instruction + 7: function(node) { + writer.pi(node.name, node.value); + }, + + // Doctype + 10: function(node) { + writer.doctype(node.value); + }, + + // CDATA + 4: function(node) { + writer.cdata(node.value); + }, + + // Document fragment + 11: function(node) { + if ((node = node.firstChild)) { + do { + walk(node); + } while ((node = node.next)); + } + } + }; + + writer.reset(); + + function walk(node) { + var handler = handlers[node.type], name, isEmpty, attrs, attrName, attrValue, sortedAttrs, i, l, elementRule; + + if (!handler) { + name = node.name; + isEmpty = node.shortEnded; + attrs = node.attributes; + + // Sort attributes + if (validate && attrs && attrs.length > 1) { + sortedAttrs = []; + sortedAttrs.map = {}; + + elementRule = schema.getElementRule(node.name); + for (i = 0, l = elementRule.attributesOrder.length; i < l; i++) { + attrName = elementRule.attributesOrder[i]; + + if (attrName in attrs.map) { + attrValue = attrs.map[attrName]; + sortedAttrs.map[attrName] = attrValue; + sortedAttrs.push({name: attrName, value: attrValue}); + } + } + + for (i = 0, l = attrs.length; i < l; i++) { + attrName = attrs[i].name; + + if (!(attrName in sortedAttrs.map)) { + attrValue = attrs.map[attrName]; + sortedAttrs.map[attrName] = attrValue; + sortedAttrs.push({name: attrName, value: attrValue}); + } + } + + attrs = sortedAttrs; + } + + writer.start(node.name, attrs, isEmpty); + + if (!isEmpty) { + if ((node = node.firstChild)) { + do { + walk(node); + } while ((node = node.next)); + } + + writer.end(name); + } + } else { + handler(node); + } + } + + // Serialize element and treat all non elements as fragments + if (node.type == 1 && !settings.inner) { + walk(node); + } else { + handlers[11](node); + } + + return writer.getContent(); + }; + }; +}); + +// Included from: js/tinymce/classes/dom/Serializer.js + +/** + * Serializer.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class is used to serialize DOM trees into a string. Consult the TinyMCE Wiki API for + * more details and examples on how to use this class. + * + * @class tinymce.dom.Serializer + */ +define("tinymce/dom/Serializer", [ + "tinymce/dom/DOMUtils", + "tinymce/html/DomParser", + "tinymce/html/Entities", + "tinymce/html/Serializer", + "tinymce/html/Node", + "tinymce/html/Schema", + "tinymce/Env", + "tinymce/util/Tools" +], function(DOMUtils, DomParser, Entities, Serializer, Node, Schema, Env, Tools) { + var each = Tools.each, trim = Tools.trim; + var DOM = DOMUtils.DOM; + + /** + * Constructs a new DOM serializer class. + * + * @constructor + * @method Serializer + * @param {Object} settings Serializer settings object. + * @param {tinymce.Editor} editor Optional editor to bind events to and get schema/dom from. + */ + return function(settings, editor) { + var dom, schema, htmlParser; + + if (editor) { + dom = editor.dom; + schema = editor.schema; + } + + // Default DOM and Schema if they are undefined + dom = dom || DOM; + schema = schema || new Schema(settings); + settings.entity_encoding = settings.entity_encoding || 'named'; + settings.remove_trailing_brs = "remove_trailing_brs" in settings ? settings.remove_trailing_brs : true; + + htmlParser = new DomParser(settings, schema); + + // Convert move data-mce-src, data-mce-href and data-mce-style into nodes or process them if needed + htmlParser.addAttributeFilter('src,href,style', function(nodes, name) { + var i = nodes.length, node, value, internalName = 'data-mce-' + name; + var urlConverter = settings.url_converter, urlConverterScope = settings.url_converter_scope, undef; + + while (i--) { + node = nodes[i]; + + value = node.attributes.map[internalName]; + if (value !== undef) { + // Set external name to internal value and remove internal + node.attr(name, value.length > 0 ? value : null); + node.attr(internalName, null); + } else { + // No internal attribute found then convert the value we have in the DOM + value = node.attributes.map[name]; + + if (name === "style") { + value = dom.serializeStyle(dom.parseStyle(value), node.name); + } else if (urlConverter) { + value = urlConverter.call(urlConverterScope, value, name, node.name); + } + + node.attr(name, value.length > 0 ? value : null); + } + } + }); + + // Remove internal classes mceItem<..> or mceSelected + htmlParser.addAttributeFilter('class', function(nodes) { + var i = nodes.length, node, value; + + while (i--) { + node = nodes[i]; + value = node.attr('class').replace(/(?:^|\s)mce-item-\w+(?!\S)/g, ''); + node.attr('class', value.length > 0 ? value : null); + } + }); + + // Remove bookmark elements + htmlParser.addAttributeFilter('data-mce-type', function(nodes, name, args) { + var i = nodes.length, node; + + while (i--) { + node = nodes[i]; + + if (node.attributes.map['data-mce-type'] === 'bookmark' && !args.cleanup) { + node.remove(); + } + } + }); + + // Remove expando attributes + htmlParser.addAttributeFilter('data-mce-expando', function(nodes, name) { + var i = nodes.length; + + while (i--) { + nodes[i].attr(name, null); + } + }); + + htmlParser.addNodeFilter('noscript', function(nodes) { + var i = nodes.length, node; + + while (i--) { + node = nodes[i].firstChild; + + if (node) { + node.value = Entities.decode(node.value); + } + } + }); + + // Force script into CDATA sections and remove the mce- prefix also add comments around styles + htmlParser.addNodeFilter('script,style', function(nodes, name) { + var i = nodes.length, node, value; + + function trim(value) { + /*jshint maxlen:255 */ + /*eslint max-len:0 */ + return value.replace(/(<!--\[CDATA\[|\]\]-->)/g, '\n') + .replace(/^[\r\n]*|[\r\n]*$/g, '') + .replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi, '') + .replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g, ''); + } + + while (i--) { + node = nodes[i]; + value = node.firstChild ? node.firstChild.value : ''; + + if (name === "script") { + // Remove mce- prefix from script elements and remove default text/javascript mime type (HTML5) + var type = (node.attr('type') || 'text/javascript').replace(/^mce\-/, ''); + node.attr('type', type === 'text/javascript' ? null : type); + + if (value.length > 0) { + node.firstChild.value = '// <![CDATA[\n' + trim(value) + '\n// ]]>'; + } + } else { + if (value.length > 0) { + node.firstChild.value = '<!--\n' + trim(value) + '\n-->'; + } + } + } + }); + + // Convert comments to cdata and handle protected comments + htmlParser.addNodeFilter('#comment', function(nodes) { + var i = nodes.length, node; + + while (i--) { + node = nodes[i]; + + if (node.value.indexOf('[CDATA[') === 0) { + node.name = '#cdata'; + node.type = 4; + node.value = node.value.replace(/^\[CDATA\[|\]\]$/g, ''); + } else if (node.value.indexOf('mce:protected ') === 0) { + node.name = "#text"; + node.type = 3; + node.raw = true; + node.value = unescape(node.value).substr(14); + } + } + }); + + htmlParser.addNodeFilter('xml:namespace,input', function(nodes, name) { + var i = nodes.length, node; + + while (i--) { + node = nodes[i]; + if (node.type === 7) { + node.remove(); + } else if (node.type === 1) { + if (name === "input" && !("type" in node.attributes.map)) { + node.attr('type', 'text'); + } + } + } + }); + + // Fix list elements, TODO: Replace this later + if (settings.fix_list_elements) { + htmlParser.addNodeFilter('ul,ol', function(nodes) { + var i = nodes.length, node, parentNode; + + while (i--) { + node = nodes[i]; + parentNode = node.parent; + + if (parentNode.name === 'ul' || parentNode.name === 'ol') { + if (node.prev && node.prev.name === 'li') { + node.prev.append(node); + } + } + } + }); + } + + // Remove internal data attributes + htmlParser.addAttributeFilter('data-mce-src,data-mce-href,data-mce-style,data-mce-selected', function(nodes, name) { + var i = nodes.length; + + while (i--) { + nodes[i].attr(name, null); + } + }); + + // Return public methods + return { + /** + * Schema instance that was used to when the Serializer was constructed. + * + * @field {tinymce.html.Schema} schema + */ + schema: schema, + + /** + * Adds a node filter function to the parser used by the serializer, the parser will collect the specified nodes by name + * and then execute the callback ones it has finished parsing the document. + * + * @example + * parser.addNodeFilter('p,h1', function(nodes, name) { + * for (var i = 0; i < nodes.length; i++) { + * console.log(nodes[i].name); + * } + * }); + * @method addNodeFilter + * @method {String} name Comma separated list of nodes to collect. + * @param {function} callback Callback function to execute once it has collected nodes. + */ + addNodeFilter: htmlParser.addNodeFilter, + + /** + * Adds a attribute filter function to the parser used by the serializer, the parser will + * collect nodes that has the specified attributes + * and then execute the callback ones it has finished parsing the document. + * + * @example + * parser.addAttributeFilter('src,href', function(nodes, name) { + * for (var i = 0; i < nodes.length; i++) { + * console.log(nodes[i].name); + * } + * }); + * @method addAttributeFilter + * @method {String} name Comma separated list of nodes to collect. + * @param {function} callback Callback function to execute once it has collected nodes. + */ + addAttributeFilter: htmlParser.addAttributeFilter, + + /** + * Serializes the specified browser DOM node into a HTML string. + * + * @method serialize + * @param {DOMNode} node DOM node to serialize. + * @param {Object} args Arguments option that gets passed to event handlers. + */ + serialize: function(node, args) { + var self = this, impl, doc, oldDoc, htmlSerializer, content; + + // Explorer won't clone contents of script and style and the + // selected index of select elements are cleared on a clone operation. + if (Env.ie && dom.select('script,style,select,map').length > 0) { + content = node.innerHTML; + node = node.cloneNode(false); + dom.setHTML(node, content); + } else { + node = node.cloneNode(true); + } + + // Nodes needs to be attached to something in WebKit/Opera + // This fix will make DOM ranges and make Sizzle happy! + impl = node.ownerDocument.implementation; + if (impl.createHTMLDocument) { + // Create an empty HTML document + doc = impl.createHTMLDocument(""); + + // Add the element or it's children if it's a body element to the new document + each(node.nodeName == 'BODY' ? node.childNodes : [node], function(node) { + doc.body.appendChild(doc.importNode(node, true)); + }); + + // Grab first child or body element for serialization + if (node.nodeName != 'BODY') { + node = doc.body.firstChild; + } else { + node = doc.body; + } + + // set the new document in DOMUtils so createElement etc works + oldDoc = dom.doc; + dom.doc = doc; + } + + args = args || {}; + args.format = args.format || 'html'; + + // Don't wrap content if we want selected html + if (args.selection) { + args.forced_root_block = ''; + } + + // Pre process + if (!args.no_events) { + args.node = node; + self.onPreProcess(args); + } + + // Setup serializer + htmlSerializer = new Serializer(settings, schema); + + // Parse and serialize HTML + args.content = htmlSerializer.serialize( + htmlParser.parse(trim(args.getInner ? node.innerHTML : dom.getOuterHTML(node)), args) + ); + + // Replace all BOM characters for now until we can find a better solution + if (!args.cleanup) { + args.content = args.content.replace(/\uFEFF/g, ''); + } + + // Post process + if (!args.no_events) { + self.onPostProcess(args); + } + + // Restore the old document if it was changed + if (oldDoc) { + dom.doc = oldDoc; + } + + args.node = null; + + return args.content; + }, + + /** + * Adds valid elements rules to the serializers schema instance this enables you to specify things + * like what elements should be outputted and what attributes specific elements might have. + * Consult the Wiki for more details on this format. + * + * @method addRules + * @param {String} rules Valid elements rules string to add to schema. + */ + addRules: function(rules) { + schema.addValidElements(rules); + }, + + /** + * Sets the valid elements rules to the serializers schema instance this enables you to specify things + * like what elements should be outputted and what attributes specific elements might have. + * Consult the Wiki for more details on this format. + * + * @method setRules + * @param {String} rules Valid elements rules string. + */ + setRules: function(rules) { + schema.setValidElements(rules); + }, + + onPreProcess: function(args) { + if (editor) { + editor.fire('PreProcess', args); + } + }, + + onPostProcess: function(args) { + if (editor) { + editor.fire('PostProcess', args); + } + } + }; + }; +}); + +// Included from: js/tinymce/classes/dom/TridentSelection.js + +/** + * TridentSelection.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Selection class for old explorer versions. This one fakes the + * native selection object available on modern browsers. + * + * @class tinymce.dom.TridentSelection + */ +define("tinymce/dom/TridentSelection", [], function() { + function Selection(selection) { + var self = this, dom = selection.dom, FALSE = false; + + function getPosition(rng, start) { + var checkRng, startIndex = 0, endIndex, inside, + children, child, offset, index, position = -1, parent; + + // Setup test range, collapse it and get the parent + checkRng = rng.duplicate(); + checkRng.collapse(start); + parent = checkRng.parentElement(); + + // Check if the selection is within the right document + if (parent.ownerDocument !== selection.dom.doc) { + return; + } + + // IE will report non editable elements as it's parent so look for an editable one + while (parent.contentEditable === "false") { + parent = parent.parentNode; + } + + // If parent doesn't have any children then return that we are inside the element + if (!parent.hasChildNodes()) { + return {node: parent, inside: 1}; + } + + // Setup node list and endIndex + children = parent.children; + endIndex = children.length - 1; + + // Perform a binary search for the position + while (startIndex <= endIndex) { + index = Math.floor((startIndex + endIndex) / 2); + + // Move selection to node and compare the ranges + child = children[index]; + checkRng.moveToElementText(child); + position = checkRng.compareEndPoints(start ? 'StartToStart' : 'EndToEnd', rng); + + // Before/after or an exact match + if (position > 0) { + endIndex = index - 1; + } else if (position < 0) { + startIndex = index + 1; + } else { + return {node: child}; + } + } + + // Check if child position is before or we didn't find a position + if (position < 0) { + // No element child was found use the parent element and the offset inside that + if (!child) { + checkRng.moveToElementText(parent); + checkRng.collapse(true); + child = parent; + inside = true; + } else { + checkRng.collapse(false); + } + + // Walk character by character in text node until we hit the selected range endpoint, + // hit the end of document or parent isn't the right one + // We need to walk char by char since rng.text or rng.htmlText will trim line endings + offset = 0; + while (checkRng.compareEndPoints(start ? 'StartToStart' : 'StartToEnd', rng) !== 0) { + if (checkRng.move('character', 1) === 0 || parent != checkRng.parentElement()) { + break; + } + + offset++; + } + } else { + // Child position is after the selection endpoint + checkRng.collapse(true); + + // Walk character by character in text node until we hit the selected range endpoint, hit + // the end of document or parent isn't the right one + offset = 0; + while (checkRng.compareEndPoints(start ? 'StartToStart' : 'StartToEnd', rng) !== 0) { + if (checkRng.move('character', -1) === 0 || parent != checkRng.parentElement()) { + break; + } + + offset++; + } + } + + return {node: child, position: position, offset: offset, inside: inside}; + } + + // Returns a W3C DOM compatible range object by using the IE Range API + function getRange() { + var ieRange = selection.getRng(), domRange = dom.createRng(), element, collapsed, tmpRange, element2, bookmark; + + // If selection is outside the current document just return an empty range + element = ieRange.item ? ieRange.item(0) : ieRange.parentElement(); + if (element.ownerDocument != dom.doc) { + return domRange; + } + + collapsed = selection.isCollapsed(); + + // Handle control selection + if (ieRange.item) { + domRange.setStart(element.parentNode, dom.nodeIndex(element)); + domRange.setEnd(domRange.startContainer, domRange.startOffset + 1); + + return domRange; + } + + function findEndPoint(start) { + var endPoint = getPosition(ieRange, start), container, offset, textNodeOffset = 0, sibling, undef, nodeValue; + + container = endPoint.node; + offset = endPoint.offset; + + if (endPoint.inside && !container.hasChildNodes()) { + domRange[start ? 'setStart' : 'setEnd'](container, 0); + return; + } + + if (offset === undef) { + domRange[start ? 'setStartBefore' : 'setEndAfter'](container); + return; + } + + if (endPoint.position < 0) { + sibling = endPoint.inside ? container.firstChild : container.nextSibling; + + if (!sibling) { + domRange[start ? 'setStartAfter' : 'setEndAfter'](container); + return; + } + + if (!offset) { + if (sibling.nodeType == 3) { + domRange[start ? 'setStart' : 'setEnd'](sibling, 0); + } else { + domRange[start ? 'setStartBefore' : 'setEndBefore'](sibling); + } + + return; + } + + // Find the text node and offset + while (sibling) { + nodeValue = sibling.nodeValue; + textNodeOffset += nodeValue.length; + + // We are at or passed the position we where looking for + if (textNodeOffset >= offset) { + container = sibling; + textNodeOffset -= offset; + textNodeOffset = nodeValue.length - textNodeOffset; + break; + } + + sibling = sibling.nextSibling; + } + } else { + // Find the text node and offset + sibling = container.previousSibling; + + if (!sibling) { + return domRange[start ? 'setStartBefore' : 'setEndBefore'](container); + } + + // If there isn't any text to loop then use the first position + if (!offset) { + if (container.nodeType == 3) { + domRange[start ? 'setStart' : 'setEnd'](sibling, container.nodeValue.length); + } else { + domRange[start ? 'setStartAfter' : 'setEndAfter'](sibling); + } + + return; + } + + while (sibling) { + textNodeOffset += sibling.nodeValue.length; + + // We are at or passed the position we where looking for + if (textNodeOffset >= offset) { + container = sibling; + textNodeOffset -= offset; + break; + } + + sibling = sibling.previousSibling; + } + } + + domRange[start ? 'setStart' : 'setEnd'](container, textNodeOffset); + } + + try { + // Find start point + findEndPoint(true); + + // Find end point if needed + if (!collapsed) { + findEndPoint(); + } + } catch (ex) { + // IE has a nasty bug where text nodes might throw "invalid argument" when you + // access the nodeValue or other properties of text nodes. This seems to happend when + // text nodes are split into two nodes by a delete/backspace call. So lets detect it and try to fix it. + if (ex.number == -2147024809) { + // Get the current selection + bookmark = self.getBookmark(2); + + // Get start element + tmpRange = ieRange.duplicate(); + tmpRange.collapse(true); + element = tmpRange.parentElement(); + + // Get end element + if (!collapsed) { + tmpRange = ieRange.duplicate(); + tmpRange.collapse(false); + element2 = tmpRange.parentElement(); + element2.innerHTML = element2.innerHTML; + } + + // Remove the broken elements + element.innerHTML = element.innerHTML; + + // Restore the selection + self.moveToBookmark(bookmark); + + // Since the range has moved we need to re-get it + ieRange = selection.getRng(); + + // Find start point + findEndPoint(true); + + // Find end point if needed + if (!collapsed) { + findEndPoint(); + } + } else { + throw ex; // Throw other errors + } + } + + return domRange; + } + + this.getBookmark = function(type) { + var rng = selection.getRng(), bookmark = {}; + + function getIndexes(node) { + var parent, root, children, i, indexes = []; + + parent = node.parentNode; + root = dom.getRoot().parentNode; + + while (parent != root && parent.nodeType !== 9) { + children = parent.children; + + i = children.length; + while (i--) { + if (node === children[i]) { + indexes.push(i); + break; + } + } + + node = parent; + parent = parent.parentNode; + } + + return indexes; + } + + function getBookmarkEndPoint(start) { + var position; + + position = getPosition(rng, start); + if (position) { + return { + position: position.position, + offset: position.offset, + indexes: getIndexes(position.node), + inside: position.inside + }; + } + } + + // Non ubstructive bookmark + if (type === 2) { + // Handle text selection + if (!rng.item) { + bookmark.start = getBookmarkEndPoint(true); + + if (!selection.isCollapsed()) { + bookmark.end = getBookmarkEndPoint(); + } + } else { + bookmark.start = {ctrl: true, indexes: getIndexes(rng.item(0))}; + } + } + + return bookmark; + }; + + this.moveToBookmark = function(bookmark) { + var rng, body = dom.doc.body; + + function resolveIndexes(indexes) { + var node, i, idx, children; + + node = dom.getRoot(); + for (i = indexes.length - 1; i >= 0; i--) { + children = node.children; + idx = indexes[i]; + + if (idx <= children.length - 1) { + node = children[idx]; + } + } + + return node; + } + + function setBookmarkEndPoint(start) { + var endPoint = bookmark[start ? 'start' : 'end'], moveLeft, moveRng, undef, offset; + + if (endPoint) { + moveLeft = endPoint.position > 0; + + moveRng = body.createTextRange(); + moveRng.moveToElementText(resolveIndexes(endPoint.indexes)); + + offset = endPoint.offset; + if (offset !== undef) { + moveRng.collapse(endPoint.inside || moveLeft); + moveRng.moveStart('character', moveLeft ? -offset : offset); + } else { + moveRng.collapse(start); + } + + rng.setEndPoint(start ? 'StartToStart' : 'EndToStart', moveRng); + + if (start) { + rng.collapse(true); + } + } + } + + if (bookmark.start) { + if (bookmark.start.ctrl) { + rng = body.createControlRange(); + rng.addElement(resolveIndexes(bookmark.start.indexes)); + rng.select(); + } else { + rng = body.createTextRange(); + setBookmarkEndPoint(true); + setBookmarkEndPoint(); + rng.select(); + } + } + }; + + this.addRange = function(rng) { + var ieRng, ctrlRng, startContainer, startOffset, endContainer, endOffset, sibling, + doc = selection.dom.doc, body = doc.body, nativeRng, ctrlElm; + + function setEndPoint(start) { + var container, offset, marker, tmpRng, nodes; + + marker = dom.create('a'); + container = start ? startContainer : endContainer; + offset = start ? startOffset : endOffset; + tmpRng = ieRng.duplicate(); + + if (container == doc || container == doc.documentElement) { + container = body; + offset = 0; + } + + if (container.nodeType == 3) { + container.parentNode.insertBefore(marker, container); + tmpRng.moveToElementText(marker); + tmpRng.moveStart('character', offset); + dom.remove(marker); + ieRng.setEndPoint(start ? 'StartToStart' : 'EndToEnd', tmpRng); + } else { + nodes = container.childNodes; + + if (nodes.length) { + if (offset >= nodes.length) { + dom.insertAfter(marker, nodes[nodes.length - 1]); + } else { + container.insertBefore(marker, nodes[offset]); + } + + tmpRng.moveToElementText(marker); + } else if (container.canHaveHTML) { + // Empty node selection for example <div>|</div> + // Setting innerHTML with a span marker then remove that marker seems to keep empty block elements open + container.innerHTML = '<span></span>'; + marker = container.firstChild; + tmpRng.moveToElementText(marker); + tmpRng.collapse(FALSE); // Collapse false works better than true for some odd reason + } + + ieRng.setEndPoint(start ? 'StartToStart' : 'EndToEnd', tmpRng); + dom.remove(marker); + } + } + + // Setup some shorter versions + startContainer = rng.startContainer; + startOffset = rng.startOffset; + endContainer = rng.endContainer; + endOffset = rng.endOffset; + ieRng = body.createTextRange(); + + // If single element selection then try making a control selection out of it + if (startContainer == endContainer && startContainer.nodeType == 1) { + // Trick to place the caret inside an empty block element like <p></p> + if (startOffset == endOffset && !startContainer.hasChildNodes()) { + if (startContainer.canHaveHTML) { + // Check if previous sibling is an empty block if it is then we need to render it + // IE would otherwise move the caret into the sibling instead of the empty startContainer see: #5236 + // Example this: <p></p><p>|</p> would become this: <p>|</p><p></p> + sibling = startContainer.previousSibling; + if (sibling && !sibling.hasChildNodes() && dom.isBlock(sibling)) { + sibling.innerHTML = ''; + } else { + sibling = null; + } + + startContainer.innerHTML = '<span></span><span></span>'; + ieRng.moveToElementText(startContainer.lastChild); + ieRng.select(); + dom.doc.selection.clear(); + startContainer.innerHTML = ''; + + if (sibling) { + sibling.innerHTML = ''; + } + return; + } else { + startOffset = dom.nodeIndex(startContainer); + startContainer = startContainer.parentNode; + } + } + + if (startOffset == endOffset - 1) { + try { + ctrlElm = startContainer.childNodes[startOffset]; + ctrlRng = body.createControlRange(); + ctrlRng.addElement(ctrlElm); + ctrlRng.select(); + + // Check if the range produced is on the correct element and is a control range + // On IE 8 it will select the parent contentEditable container if you select an inner element see: #5398 + nativeRng = selection.getRng(); + if (nativeRng.item && ctrlElm === nativeRng.item(0)) { + return; + } + } catch (ex) { + // Ignore + } + } + } + + // Set start/end point of selection + setEndPoint(true); + setEndPoint(); + + // Select the new range and scroll it into view + ieRng.select(); + }; + + // Expose range method + this.getRangeAt = getRange; + } + + return Selection; +}); + +// Included from: js/tinymce/classes/util/VK.js + +/** + * VK.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This file exposes a set of the common KeyCodes for use. Please grow it as needed. + */ +define("tinymce/util/VK", [ + "tinymce/Env" +], function(Env) { + return { + BACKSPACE: 8, + DELETE: 46, + DOWN: 40, + ENTER: 13, + LEFT: 37, + RIGHT: 39, + SPACEBAR: 32, + TAB: 9, + UP: 38, + + modifierPressed: function(e) { + return e.shiftKey || e.ctrlKey || e.altKey; + }, + + metaKeyPressed: function(e) { + // Check if ctrl or meta key is pressed also check if alt is false for Polish users + return (Env.mac ? e.metaKey : e.ctrlKey) && !e.altKey; + } + }; +}); + +// Included from: js/tinymce/classes/dom/ControlSelection.js + +/** + * ControlSelection.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles control selection of elements. Controls are elements + * that can be resized and needs to be selected as a whole. It adds custom resize handles + * to all browser engines that support properly disabling the built in resize logic. + * + * @class tinymce.dom.ControlSelection + */ +define("tinymce/dom/ControlSelection", [ + "tinymce/util/VK", + "tinymce/util/Tools", + "tinymce/Env" +], function(VK, Tools, Env) { + return function(selection, editor) { + var dom = editor.dom, each = Tools.each; + var selectedElm, selectedElmGhost, resizeHandles, selectedHandle, lastMouseDownEvent; + var startX, startY, selectedElmX, selectedElmY, startW, startH, ratio, resizeStarted; + var width, height, editableDoc = editor.getDoc(), rootDocument = document, isIE = Env.ie && Env.ie < 11; + + // Details about each resize handle how to scale etc + resizeHandles = { + // Name: x multiplier, y multiplier, delta size x, delta size y + n: [0.5, 0, 0, -1], + e: [1, 0.5, 1, 0], + s: [0.5, 1, 0, 1], + w: [0, 0.5, -1, 0], + nw: [0, 0, -1, -1], + ne: [1, 0, 1, -1], + se: [1, 1, 1, 1], + sw: [0, 1, -1, 1] + }; + + // Add CSS for resize handles, cloned element and selected + var rootClass = '.mce-content-body'; + editor.contentStyles.push( + rootClass + ' div.mce-resizehandle {' + + 'position: absolute;' + + 'border: 1px solid black;' + + 'background: #FFF;' + + 'width: 5px;' + + 'height: 5px;' + + 'z-index: 10000' + + '}' + + rootClass + ' .mce-resizehandle:hover {' + + 'background: #000' + + '}' + + rootClass + ' img[data-mce-selected], hr[data-mce-selected] {' + + 'outline: 1px solid black;' + + 'resize: none' + // Have been talks about implementing this in browsers + '}' + + rootClass + ' .mce-clonedresizable {' + + 'position: absolute;' + + (Env.gecko ? '' : 'outline: 1px dashed black;') + // Gecko produces trails while resizing + 'opacity: .5;' + + 'filter: alpha(opacity=50);' + + 'z-index: 10000' + + '}' + ); + + function isResizable(elm) { + var selector = editor.settings.object_resizing; + + if (selector === false || Env.iOS) { + return false; + } + + if (typeof selector != 'string') { + selector = 'table,img,div'; + } + + if (elm.getAttribute('data-mce-resize') === 'false') { + return false; + } + + return editor.dom.is(elm, selector); + } + + function resizeGhostElement(e) { + var deltaX, deltaY; + + // Calc new width/height + deltaX = e.screenX - startX; + deltaY = e.screenY - startY; + + // Calc new size + width = deltaX * selectedHandle[2] + startW; + height = deltaY * selectedHandle[3] + startH; + + // Never scale down lower than 5 pixels + width = width < 5 ? 5 : width; + height = height < 5 ? 5 : height; + + // Constrain proportions when modifier key is pressed or if the nw, ne, sw, se corners are moved on an image + if (VK.modifierPressed(e) || (selectedElm.nodeName == "IMG" && selectedHandle[2] * selectedHandle[3] !== 0)) { + width = Math.round(height / ratio); + height = Math.round(width * ratio); + } + + // Update ghost size + dom.setStyles(selectedElmGhost, { + width: width, + height: height + }); + + // Update ghost X position if needed + if (selectedHandle[2] < 0 && selectedElmGhost.clientWidth <= width) { + dom.setStyle(selectedElmGhost, 'left', selectedElmX + (startW - width)); + } + + // Update ghost Y position if needed + if (selectedHandle[3] < 0 && selectedElmGhost.clientHeight <= height) { + dom.setStyle(selectedElmGhost, 'top', selectedElmY + (startH - height)); + } + + if (!resizeStarted) { + editor.fire('ObjectResizeStart', {target: selectedElm, width: startW, height: startH}); + resizeStarted = true; + } + } + + function endGhostResize() { + resizeStarted = false; + + function setSizeProp(name, value) { + if (value) { + // Resize by using style or attribute + if (selectedElm.style[name] || !editor.schema.isValid(selectedElm.nodeName.toLowerCase(), name)) { + dom.setStyle(selectedElm, name, value); + } else { + dom.setAttrib(selectedElm, name, value); + } + } + } + + // Set width/height properties + setSizeProp('width', width); + setSizeProp('height', height); + + dom.unbind(editableDoc, 'mousemove', resizeGhostElement); + dom.unbind(editableDoc, 'mouseup', endGhostResize); + + if (rootDocument != editableDoc) { + dom.unbind(rootDocument, 'mousemove', resizeGhostElement); + dom.unbind(rootDocument, 'mouseup', endGhostResize); + } + + // Remove ghost and update resize handle positions + dom.remove(selectedElmGhost); + + if (!isIE || selectedElm.nodeName == "TABLE") { + showResizeRect(selectedElm); + } + + editor.fire('ObjectResized', {target: selectedElm, width: width, height: height}); + editor.nodeChanged(); + } + + function showResizeRect(targetElm, mouseDownHandleName, mouseDownEvent) { + var position, targetWidth, targetHeight, e, rect, offsetParent = editor.getBody(); + + unbindResizeHandleEvents(); + + // Get position and size of target + position = dom.getPos(targetElm, offsetParent); + selectedElmX = position.x; + selectedElmY = position.y; + rect = targetElm.getBoundingClientRect(); // Fix for Gecko offsetHeight for table with caption + targetWidth = rect.width || (rect.right - rect.left); + targetHeight = rect.height || (rect.bottom - rect.top); + + // Reset width/height if user selects a new image/table + if (selectedElm != targetElm) { + detachResizeStartListener(); + selectedElm = targetElm; + width = height = 0; + } + + // Makes it possible to disable resizing + e = editor.fire('ObjectSelected', {target: targetElm}); + + if (isResizable(targetElm) && !e.isDefaultPrevented()) { + each(resizeHandles, function(handle, name) { + var handleElm, handlerContainerElm; + + function startDrag(e) { + startX = e.screenX; + startY = e.screenY; + startW = selectedElm.clientWidth; + startH = selectedElm.clientHeight; + ratio = startH / startW; + selectedHandle = handle; + + selectedElmGhost = selectedElm.cloneNode(true); + dom.addClass(selectedElmGhost, 'mce-clonedresizable'); + selectedElmGhost.contentEditable = false; // Hides IE move layer cursor + selectedElmGhost.unSelectabe = true; + dom.setStyles(selectedElmGhost, { + left: selectedElmX, + top: selectedElmY, + margin: 0 + }); + + selectedElmGhost.removeAttribute('data-mce-selected'); + editor.getBody().appendChild(selectedElmGhost); + + dom.bind(editableDoc, 'mousemove', resizeGhostElement); + dom.bind(editableDoc, 'mouseup', endGhostResize); + + if (rootDocument != editableDoc) { + dom.bind(rootDocument, 'mousemove', resizeGhostElement); + dom.bind(rootDocument, 'mouseup', endGhostResize); + } + } + + if (mouseDownHandleName) { + // Drag started by IE native resizestart + if (name == mouseDownHandleName) { + startDrag(mouseDownEvent); + } + + return; + } + + // Get existing or render resize handle + handleElm = dom.get('mceResizeHandle' + name); + if (!handleElm) { + handlerContainerElm = editor.getBody(); + + handleElm = dom.add(handlerContainerElm, 'div', { + id: 'mceResizeHandle' + name, + 'data-mce-bogus': true, + 'class': 'mce-resizehandle', + unselectable: true, + style: 'cursor:' + name + '-resize; margin:0; padding:0' + }); + + // Hides IE move layer cursor + // If we set it on Chrome we get this wounderful bug: #6725 + if (Env.ie) { + handleElm.contentEditable = false; + } + } else { + dom.show(handleElm); + } + + if (!handle.elm) { + dom.bind(handleElm, 'mousedown', function(e) { + e.stopImmediatePropagation(); + e.preventDefault(); + startDrag(e); + }); + + handle.elm = handleElm; + } + + /* + var halfHandleW = handleElm.offsetWidth / 2; + var halfHandleH = handleElm.offsetHeight / 2; + + // Position element + dom.setStyles(handleElm, { + left: Math.floor((targetWidth * handle[0] + selectedElmX) - halfHandleW + (handle[2] * halfHandleW)), + top: Math.floor((targetHeight * handle[1] + selectedElmY) - halfHandleH + (handle[3] * halfHandleH)) + }); + */ + + // Position element + dom.setStyles(handleElm, { + left: (targetWidth * handle[0] + selectedElmX) - (handleElm.offsetWidth / 2), + top: (targetHeight * handle[1] + selectedElmY) - (handleElm.offsetHeight / 2) + }); + }); + } else { + hideResizeRect(); + } + + selectedElm.setAttribute('data-mce-selected', '1'); + } + + function hideResizeRect() { + var name, handleElm; + + unbindResizeHandleEvents(); + + if (selectedElm) { + selectedElm.removeAttribute('data-mce-selected'); + } + + for (name in resizeHandles) { + handleElm = dom.get('mceResizeHandle' + name); + if (handleElm) { + dom.unbind(handleElm); + dom.remove(handleElm); + } + } + } + + function updateResizeRect(e) { + var controlElm; + + function isChildOrEqual(node, parent) { + if (node) { + do { + if (node === parent) { + return true; + } + } while ((node = node.parentNode)); + } + } + + // Remove data-mce-selected from all elements since they might have been copied using Ctrl+c/v + each(dom.select('img[data-mce-selected],hr[data-mce-selected]'), function(img) { + img.removeAttribute('data-mce-selected'); + }); + + controlElm = e.type == 'mousedown' ? e.target : selection.getNode(); + controlElm = dom.getParent(controlElm, isIE ? 'table' : 'table,img,hr'); + + if (isChildOrEqual(controlElm, editor.getBody())) { + disableGeckoResize(); + + if (isChildOrEqual(selection.getStart(), controlElm) && isChildOrEqual(selection.getEnd(), controlElm)) { + if (!isIE || (controlElm != selection.getStart() && selection.getStart().nodeName !== 'IMG')) { + showResizeRect(controlElm); + return; + } + } + } + + hideResizeRect(); + } + + function attachEvent(elm, name, func) { + if (elm && elm.attachEvent) { + elm.attachEvent('on' + name, func); + } + } + + function detachEvent(elm, name, func) { + if (elm && elm.detachEvent) { + elm.detachEvent('on' + name, func); + } + } + + function resizeNativeStart(e) { + var target = e.srcElement, pos, name, corner, cornerX, cornerY, relativeX, relativeY; + + pos = target.getBoundingClientRect(); + relativeX = lastMouseDownEvent.clientX - pos.left; + relativeY = lastMouseDownEvent.clientY - pos.top; + + // Figure out what corner we are draging on + for (name in resizeHandles) { + corner = resizeHandles[name]; + + cornerX = target.offsetWidth * corner[0]; + cornerY = target.offsetHeight * corner[1]; + + if (Math.abs(cornerX - relativeX) < 8 && Math.abs(cornerY - relativeY) < 8) { + selectedHandle = corner; + break; + } + } + + // Remove native selection and let the magic begin + resizeStarted = true; + editor.getDoc().selection.empty(); + showResizeRect(target, name, lastMouseDownEvent); + } + + function nativeControlSelect(e) { + var target = e.srcElement; + + if (target != selectedElm) { + detachResizeStartListener(); + + if (target.id.indexOf('mceResizeHandle') === 0) { + e.returnValue = false; + return; + } + + if (target.nodeName == 'IMG' || target.nodeName == 'TABLE') { + hideResizeRect(); + selectedElm = target; + attachEvent(target, 'resizestart', resizeNativeStart); + } + } + } + + function detachResizeStartListener() { + detachEvent(selectedElm, 'resizestart', resizeNativeStart); + } + + function unbindResizeHandleEvents() { + for (var name in resizeHandles) { + var handle = resizeHandles[name]; + + if (handle.elm) { + dom.unbind(handle.elm); + delete handle.elm; + } + } + } + + function disableGeckoResize() { + try { + // Disable object resizing on Gecko + editor.getDoc().execCommand('enableObjectResizing', false, false); + } catch (ex) { + // Ignore + } + } + + function controlSelect(elm) { + var ctrlRng; + + if (!isIE) { + return; + } + + ctrlRng = editableDoc.body.createControlRange(); + + try { + ctrlRng.addElement(elm); + ctrlRng.select(); + return true; + } catch (ex) { + // Ignore since the element can't be control selected for example a P tag + } + } + + editor.on('init', function() { + if (isIE) { + // Hide the resize rect on resize and reselect the image + editor.on('ObjectResized', function(e) { + if (e.target.nodeName != 'TABLE') { + hideResizeRect(); + controlSelect(e.target); + } + }); + + attachEvent(editor.getBody(), 'controlselect', nativeControlSelect); + + editor.on('mousedown', function(e) { + lastMouseDownEvent = e; + }); + } else { + disableGeckoResize(); + + if (Env.ie >= 11) { + // TODO: Drag/drop doesn't work + editor.on('mouseup', function(e) { + var nodeName = e.target.nodeName; + + if (/^(TABLE|IMG|HR)$/.test(nodeName)) { + editor.selection.select(e.target, nodeName == 'TABLE'); + editor.nodeChanged(); + } + }); + + editor.dom.bind(editor.getBody(), 'mscontrolselect', function(e) { + if (/^(TABLE|IMG|HR)$/.test(e.target.nodeName)) { + e.preventDefault(); + + // This moves the selection from being a control selection to a text like selection like in WebKit #6753 + // TODO: Fix this the day IE works like other browsers without this nasty native ugly control selections. + if (e.target.tagName == 'IMG') { + window.setTimeout(function() { + editor.selection.select(e.target); + }, 0); + } + } + }); + } + } + + editor.on('nodechange mousedown mouseup ResizeEditor', updateResizeRect); + + // Update resize rect while typing in a table + editor.on('keydown keyup', function(e) { + if (selectedElm && selectedElm.nodeName == "TABLE") { + updateResizeRect(e); + } + }); + + // Hide rect on focusout since it would float on top of windows otherwise + //editor.on('focusout', hideResizeRect); + }); + + editor.on('remove', unbindResizeHandleEvents); + + function destroy() { + selectedElm = selectedElmGhost = null; + + if (isIE) { + detachResizeStartListener(); + detachEvent(editor.getBody(), 'controlselect', nativeControlSelect); + } + } + + return { + isResizable: isResizable, + showResizeRect: showResizeRect, + hideResizeRect: hideResizeRect, + updateResizeRect: updateResizeRect, + controlSelect: controlSelect, + destroy: destroy + }; + }; +}); + +// Included from: js/tinymce/classes/dom/RangeUtils.js + +/** + * Range.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * RangeUtils + * + * @class tinymce.dom.RangeUtils + * @private + */ +define("tinymce/dom/RangeUtils", [ + "tinymce/util/Tools", + "tinymce/dom/TreeWalker" +], function(Tools, TreeWalker) { + var each = Tools.each; + + function RangeUtils(dom) { + /** + * Walks the specified range like object and executes the callback for each sibling collection it finds. + * + * @method walk + * @param {Object} rng Range like object. + * @param {function} callback Callback function to execute for each sibling collection. + */ + this.walk = function(rng, callback) { + var startContainer = rng.startContainer, + startOffset = rng.startOffset, + endContainer = rng.endContainer, + endOffset = rng.endOffset, + ancestor, startPoint, + endPoint, node, parent, siblings, nodes; + + // Handle table cell selection the table plugin enables + // you to fake select table cells and perform formatting actions on them + nodes = dom.select('td.mce-item-selected,th.mce-item-selected'); + if (nodes.length > 0) { + each(nodes, function(node) { + callback([node]); + }); + + return; + } + + /** + * Excludes start/end text node if they are out side the range + * + * @private + * @param {Array} nodes Nodes to exclude items from. + * @return {Array} Array with nodes excluding the start/end container if needed. + */ + function exclude(nodes) { + var node; + + // First node is excluded + node = nodes[0]; + if (node.nodeType === 3 && node === startContainer && startOffset >= node.nodeValue.length) { + nodes.splice(0, 1); + } + + // Last node is excluded + node = nodes[nodes.length - 1]; + if (endOffset === 0 && nodes.length > 0 && node === endContainer && node.nodeType === 3) { + nodes.splice(nodes.length - 1, 1); + } + + return nodes; + } + + /** + * Collects siblings + * + * @private + * @param {Node} node Node to collect siblings from. + * @param {String} name Name of the sibling to check for. + * @return {Array} Array of collected siblings. + */ + function collectSiblings(node, name, end_node) { + var siblings = []; + + for (; node && node != end_node; node = node[name]) { + siblings.push(node); + } + + return siblings; + } + + /** + * Find an end point this is the node just before the common ancestor root. + * + * @private + * @param {Node} node Node to start at. + * @param {Node} root Root/ancestor element to stop just before. + * @return {Node} Node just before the root element. + */ + function findEndPoint(node, root) { + do { + if (node.parentNode == root) { + return node; + } + + node = node.parentNode; + } while(node); + } + + function walkBoundary(start_node, end_node, next) { + var siblingName = next ? 'nextSibling' : 'previousSibling'; + + for (node = start_node, parent = node.parentNode; node && node != end_node; node = parent) { + parent = node.parentNode; + siblings = collectSiblings(node == start_node ? node : node[siblingName], siblingName); + + if (siblings.length) { + if (!next) { + siblings.reverse(); + } + + callback(exclude(siblings)); + } + } + } + + // If index based start position then resolve it + if (startContainer.nodeType == 1 && startContainer.hasChildNodes()) { + startContainer = startContainer.childNodes[startOffset]; + } + + // If index based end position then resolve it + if (endContainer.nodeType == 1 && endContainer.hasChildNodes()) { + endContainer = endContainer.childNodes[Math.min(endOffset - 1, endContainer.childNodes.length - 1)]; + } + + // Same container + if (startContainer == endContainer) { + return callback(exclude([startContainer])); + } + + // Find common ancestor and end points + ancestor = dom.findCommonAncestor(startContainer, endContainer); + + // Process left side + for (node = startContainer; node; node = node.parentNode) { + if (node === endContainer) { + return walkBoundary(startContainer, ancestor, true); + } + + if (node === ancestor) { + break; + } + } + + // Process right side + for (node = endContainer; node; node = node.parentNode) { + if (node === startContainer) { + return walkBoundary(endContainer, ancestor); + } + + if (node === ancestor) { + break; + } + } + + // Find start/end point + startPoint = findEndPoint(startContainer, ancestor) || startContainer; + endPoint = findEndPoint(endContainer, ancestor) || endContainer; + + // Walk left leaf + walkBoundary(startContainer, startPoint, true); + + // Walk the middle from start to end point + siblings = collectSiblings( + startPoint == startContainer ? startPoint : startPoint.nextSibling, + 'nextSibling', + endPoint == endContainer ? endPoint.nextSibling : endPoint + ); + + if (siblings.length) { + callback(exclude(siblings)); + } + + // Walk right leaf + walkBoundary(endContainer, endPoint); + }; + + /** + * Splits the specified range at it's start/end points. + * + * @private + * @param {Range/RangeObject} rng Range to split. + * @return {Object} Range position object. + */ + this.split = function(rng) { + var startContainer = rng.startContainer, + startOffset = rng.startOffset, + endContainer = rng.endContainer, + endOffset = rng.endOffset; + + function splitText(node, offset) { + return node.splitText(offset); + } + + // Handle single text node + if (startContainer == endContainer && startContainer.nodeType == 3) { + if (startOffset > 0 && startOffset < startContainer.nodeValue.length) { + endContainer = splitText(startContainer, startOffset); + startContainer = endContainer.previousSibling; + + if (endOffset > startOffset) { + endOffset = endOffset - startOffset; + startContainer = endContainer = splitText(endContainer, endOffset).previousSibling; + endOffset = endContainer.nodeValue.length; + startOffset = 0; + } else { + endOffset = 0; + } + } + } else { + // Split startContainer text node if needed + if (startContainer.nodeType == 3 && startOffset > 0 && startOffset < startContainer.nodeValue.length) { + startContainer = splitText(startContainer, startOffset); + startOffset = 0; + } + + // Split endContainer text node if needed + if (endContainer.nodeType == 3 && endOffset > 0 && endOffset < endContainer.nodeValue.length) { + endContainer = splitText(endContainer, endOffset).previousSibling; + endOffset = endContainer.nodeValue.length; + } + } + + return { + startContainer: startContainer, + startOffset: startOffset, + endContainer: endContainer, + endOffset: endOffset + }; + }; + + /** + * Normalizes the specified range by finding the closest best suitable caret location. + * + * @private + * @param {Range} rng Range to normalize. + * @return {Boolean} True/false if the specified range was normalized or not. + */ + this.normalize = function(rng) { + var normalized, collapsed; + + function normalizeEndPoint(start) { + var container, offset, walker, body = dom.getRoot(), node, nonEmptyElementsMap, nodeName; + var directionLeft, isAfterNode; + + function hasBrBeforeAfter(node, left) { + var walker = new TreeWalker(node, dom.getParent(node.parentNode, dom.isBlock) || body); + + while ((node = walker[left ? 'prev' : 'next']())) { + if (node.nodeName === "BR") { + return true; + } + } + } + + function isPrevNode(node, name) { + return node.previousSibling && node.previousSibling.nodeName == name; + } + + // Walks the dom left/right to find a suitable text node to move the endpoint into + // It will only walk within the current parent block or body and will stop if it hits a block or a BR/IMG + function findTextNodeRelative(left, startNode) { + var walker, lastInlineElement, parentBlockContainer; + + startNode = startNode || container; + parentBlockContainer = dom.getParent(startNode.parentNode, dom.isBlock) || body; + + // Lean left before the BR element if it's the only BR within a block element. Gecko bug: #6680 + // This: <p><br>|</p> becomes <p>|<br></p> + if (left && startNode.nodeName == 'BR' && isAfterNode && dom.isEmpty(parentBlockContainer)) { + container = startNode.parentNode; + offset = dom.nodeIndex(startNode); + normalized = true; + return; + } + + // Walk left until we hit a text node we can move to or a block/br/img + walker = new TreeWalker(startNode, parentBlockContainer); + while ((node = walker[left ? 'prev' : 'next']())) { + // Found text node that has a length + if (node.nodeType === 3 && node.nodeValue.length > 0) { + container = node; + offset = left ? node.nodeValue.length : 0; + normalized = true; + return; + } + + // Break if we find a block or a BR/IMG/INPUT etc + if (dom.isBlock(node) || nonEmptyElementsMap[node.nodeName.toLowerCase()]) { + return; + } + + lastInlineElement = node; + } + + // Only fetch the last inline element when in caret mode for now + if (collapsed && lastInlineElement) { + container = lastInlineElement; + normalized = true; + offset = 0; + } + } + + container = rng[(start ? 'start' : 'end') + 'Container']; + offset = rng[(start ? 'start' : 'end') + 'Offset']; + isAfterNode = container.nodeType == 1 && offset === container.childNodes.length; + nonEmptyElementsMap = dom.schema.getNonEmptyElements(); + directionLeft = start; + + if (container.nodeType == 1 && offset > container.childNodes.length - 1) { + directionLeft = false; + } + + // If the container is a document move it to the body element + if (container.nodeType === 9) { + container = dom.getRoot(); + offset = 0; + } + + // If the container is body try move it into the closest text node or position + if (container === body) { + // If start is before/after a image, table etc + if (directionLeft) { + node = container.childNodes[offset > 0 ? offset - 1 : 0]; + if (node) { + nodeName = node.nodeName.toLowerCase(); + if (nonEmptyElementsMap[node.nodeName] || node.nodeName == "TABLE") { + return; + } + } + } + + // Resolve the index + if (container.hasChildNodes()) { + offset = Math.min(!directionLeft && offset > 0 ? offset - 1 : offset, container.childNodes.length - 1); + container = container.childNodes[offset]; + offset = 0; + + // Don't walk into elements that doesn't have any child nodes like a IMG + if (container.hasChildNodes() && !/TABLE/.test(container.nodeName)) { + // Walk the DOM to find a text node to place the caret at or a BR + node = container; + walker = new TreeWalker(container, body); + + do { + // Found a text node use that position + if (node.nodeType === 3 && node.nodeValue.length > 0) { + offset = directionLeft ? 0 : node.nodeValue.length; + container = node; + normalized = true; + break; + } + + // Found a BR/IMG element that we can place the caret before + if (nonEmptyElementsMap[node.nodeName.toLowerCase()]) { + offset = dom.nodeIndex(node); + container = node.parentNode; + + // Put caret after image when moving the end point + if (node.nodeName == "IMG" && !directionLeft) { + offset++; + } + + normalized = true; + break; + } + } while ((node = (directionLeft ? walker.next() : walker.prev()))); + } + } + } + + // Lean the caret to the left if possible + if (collapsed) { + // So this: <b>x</b><i>|x</i> + // Becomes: <b>x|</b><i>x</i> + // Seems that only gecko has issues with this + if (container.nodeType === 3 && offset === 0) { + findTextNodeRelative(true); + } + + // Lean left into empty inline elements when the caret is before a BR + // So this: <i><b></b><i>|<br></i> + // Becomes: <i><b>|</b><i><br></i> + // Seems that only gecko has issues with this. + // Special edge case for <p><a>x</a>|<br></p> since we don't want <p><a>x|</a><br></p> + if (container.nodeType === 1) { + node = container.childNodes[offset]; + + // Offset is after the containers last child + // then use the previous child for normalization + if (!node) { + node = container.childNodes[offset - 1]; + } + + if (node && node.nodeName === 'BR' && !isPrevNode(node, 'A') && + !hasBrBeforeAfter(node) && !hasBrBeforeAfter(node, true)) { + findTextNodeRelative(true, node); + } + } + } + + // Lean the start of the selection right if possible + // So this: x[<b>x]</b> + // Becomes: x<b>[x]</b> + if (directionLeft && !collapsed && container.nodeType === 3 && offset === container.nodeValue.length) { + findTextNodeRelative(false); + } + + // Set endpoint if it was normalized + if (normalized) { + rng['set' + (start ? 'Start' : 'End')](container, offset); + } + } + + collapsed = rng.collapsed; + + normalizeEndPoint(true); + + if (!collapsed) { + normalizeEndPoint(); + } + + // If it was collapsed then make sure it still is + if (normalized && collapsed) { + rng.collapse(true); + } + + return normalized; + }; + } + + /** + * Compares two ranges and checks if they are equal. + * + * @static + * @method compareRanges + * @param {DOMRange} rng1 First range to compare. + * @param {DOMRange} rng2 First range to compare. + * @return {Boolean} true/false if the ranges are equal. + */ + RangeUtils.compareRanges = function(rng1, rng2) { + if (rng1 && rng2) { + // Compare native IE ranges + if (rng1.item || rng1.duplicate) { + // Both are control ranges and the selected element matches + if (rng1.item && rng2.item && rng1.item(0) === rng2.item(0)) { + return true; + } + + // Both are text ranges and the range matches + if (rng1.isEqual && rng2.isEqual && rng2.isEqual(rng1)) { + return true; + } + } else { + // Compare w3c ranges + return rng1.startContainer == rng2.startContainer && rng1.startOffset == rng2.startOffset; + } + } + + return false; + }; + + return RangeUtils; +}); + +// Included from: js/tinymce/classes/dom/Selection.js + +/** + * Selection.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles text and control selection it's an crossbrowser utility class. + * Consult the TinyMCE Wiki API for more details and examples on how to use this class. + * + * @class tinymce.dom.Selection + * @example + * // Getting the currently selected node for the active editor + * alert(tinymce.activeEditor.selection.getNode().nodeName); + */ +define("tinymce/dom/Selection", [ + "tinymce/dom/TreeWalker", + "tinymce/dom/TridentSelection", + "tinymce/dom/ControlSelection", + "tinymce/dom/RangeUtils", + "tinymce/Env", + "tinymce/util/Tools" +], function(TreeWalker, TridentSelection, ControlSelection, RangeUtils, Env, Tools) { + var each = Tools.each, grep = Tools.grep, trim = Tools.trim; + var isIE = Env.ie, isOpera = Env.opera; + + /** + * Constructs a new selection instance. + * + * @constructor + * @method Selection + * @param {tinymce.dom.DOMUtils} dom DOMUtils object reference. + * @param {Window} win Window to bind the selection object to. + * @param {tinymce.dom.Serializer} serializer DOM serialization class to use for getContent. + */ + function Selection(dom, win, serializer, editor) { + var self = this; + + self.dom = dom; + self.win = win; + self.serializer = serializer; + self.editor = editor; + + self.controlSelection = new ControlSelection(self, editor); + + // No W3C Range support + if (!self.win.getSelection) { + self.tridentSel = new TridentSelection(self); + } + } + + Selection.prototype = { + /** + * Move the selection cursor range to the specified node and offset. + * If there is no node specified it will move it to the first suitable location within the body. + * + * @method setCursorLocation + * @param {Node} node Optional node to put the cursor in. + * @param {Number} offset Optional offset from the start of the node to put the cursor at. + */ + setCursorLocation: function(node, offset) { + var self = this, rng = self.dom.createRng(); + + if (!node) { + self._moveEndPoint(rng, self.editor.getBody(), true); + self.setRng(rng); + } else { + rng.setStart(node, offset); + rng.setEnd(node, offset); + self.setRng(rng); + self.collapse(false); + } + }, + + /** + * Returns the selected contents using the DOM serializer passed in to this class. + * + * @method getContent + * @param {Object} s Optional settings class with for example output format text or html. + * @return {String} Selected contents in for example HTML format. + * @example + * // Alerts the currently selected contents + * alert(tinymce.activeEditor.selection.getContent()); + * + * // Alerts the currently selected contents as plain text + * alert(tinymce.activeEditor.selection.getContent({format: 'text'})); + */ + getContent: function(args) { + var self = this, rng = self.getRng(), tmpElm = self.dom.create("body"); + var se = self.getSel(), whiteSpaceBefore, whiteSpaceAfter, fragment; + + args = args || {}; + whiteSpaceBefore = whiteSpaceAfter = ''; + args.get = true; + args.format = args.format || 'html'; + args.selection = true; + self.editor.fire('BeforeGetContent', args); + + if (args.format == 'text') { + return self.isCollapsed() ? '' : (rng.text || (se.toString ? se.toString() : '')); + } + + if (rng.cloneContents) { + fragment = rng.cloneContents(); + + if (fragment) { + tmpElm.appendChild(fragment); + } + } else if (rng.item !== undefined || rng.htmlText !== undefined) { + // IE will produce invalid markup if elements are present that + // it doesn't understand like custom elements or HTML5 elements. + // Adding a BR in front of the contents and then remoiving it seems to fix it though. + tmpElm.innerHTML = '<br>' + (rng.item ? rng.item(0).outerHTML : rng.htmlText); + tmpElm.removeChild(tmpElm.firstChild); + } else { + tmpElm.innerHTML = rng.toString(); + } + + // Keep whitespace before and after + if (/^\s/.test(tmpElm.innerHTML)) { + whiteSpaceBefore = ' '; + } + + if (/\s+$/.test(tmpElm.innerHTML)) { + whiteSpaceAfter = ' '; + } + + args.getInner = true; + + args.content = self.isCollapsed() ? '' : whiteSpaceBefore + self.serializer.serialize(tmpElm, args) + whiteSpaceAfter; + self.editor.fire('GetContent', args); + + return args.content; + }, + + /** + * Sets the current selection to the specified content. If any contents is selected it will be replaced + * with the contents passed in to this function. If there is no selection the contents will be inserted + * where the caret is placed in the editor/page. + * + * @method setContent + * @param {String} content HTML contents to set could also be other formats depending on settings. + * @param {Object} args Optional settings object with for example data format. + * @example + * // Inserts some HTML contents at the current selection + * tinymce.activeEditor.selection.setContent('<strong>Some contents</strong>'); + */ + setContent: function(content, args) { + var self = this, rng = self.getRng(), caretNode, doc = self.win.document, frag, temp; + + args = args || {format: 'html'}; + args.set = true; + args.selection = true; + content = args.content = content; + + // Dispatch before set content event + if (!args.no_events) { + self.editor.fire('BeforeSetContent', args); + } + + content = args.content; + + if (rng.insertNode) { + // Make caret marker since insertNode places the caret in the beginning of text after insert + content += '<span id="__caret">_</span>'; + + // Delete and insert new node + if (rng.startContainer == doc && rng.endContainer == doc) { + // WebKit will fail if the body is empty since the range is then invalid and it can't insert contents + doc.body.innerHTML = content; + } else { + rng.deleteContents(); + + if (doc.body.childNodes.length === 0) { + doc.body.innerHTML = content; + } else { + // createContextualFragment doesn't exists in IE 9 DOMRanges + if (rng.createContextualFragment) { + rng.insertNode(rng.createContextualFragment(content)); + } else { + // Fake createContextualFragment call in IE 9 + frag = doc.createDocumentFragment(); + temp = doc.createElement('div'); + + frag.appendChild(temp); + temp.outerHTML = content; + + rng.insertNode(frag); + } + } + } + + // Move to caret marker + caretNode = self.dom.get('__caret'); + + // Make sure we wrap it compleatly, Opera fails with a simple select call + rng = doc.createRange(); + rng.setStartBefore(caretNode); + rng.setEndBefore(caretNode); + self.setRng(rng); + + // Remove the caret position + self.dom.remove('__caret'); + + try { + self.setRng(rng); + } catch (ex) { + // Might fail on Opera for some odd reason + } + } else { + if (rng.item) { + // Delete content and get caret text selection + doc.execCommand('Delete', false, null); + rng = self.getRng(); + } + + // Explorer removes spaces from the beginning of pasted contents + if (/^\s+/.test(content)) { + rng.pasteHTML('<span id="__mce_tmp">_</span>' + content); + self.dom.remove('__mce_tmp'); + } else { + rng.pasteHTML(content); + } + } + + // Dispatch set content event + if (!args.no_events) { + self.editor.fire('SetContent', args); + } + }, + + /** + * Returns the start element of a selection range. If the start is in a text + * node the parent element will be returned. + * + * @method getStart + * @return {Element} Start element of selection range. + */ + getStart: function() { + var self = this, rng = self.getRng(), startElement, parentElement, checkRng, node; + + if (rng.duplicate || rng.item) { + // Control selection, return first item + if (rng.item) { + return rng.item(0); + } + + // Get start element + checkRng = rng.duplicate(); + checkRng.collapse(1); + startElement = checkRng.parentElement(); + if (startElement.ownerDocument !== self.dom.doc) { + startElement = self.dom.getRoot(); + } + + // Check if range parent is inside the start element, then return the inner parent element + // This will fix issues when a single element is selected, IE would otherwise return the wrong start element + parentElement = node = rng.parentElement(); + while ((node = node.parentNode)) { + if (node == startElement) { + startElement = parentElement; + break; + } + } + + return startElement; + } else { + startElement = rng.startContainer; + + if (startElement.nodeType == 1 && startElement.hasChildNodes()) { + startElement = startElement.childNodes[Math.min(startElement.childNodes.length - 1, rng.startOffset)]; + } + + if (startElement && startElement.nodeType == 3) { + return startElement.parentNode; + } + + return startElement; + } + }, + + /** + * Returns the end element of a selection range. If the end is in a text + * node the parent element will be returned. + * + * @method getEnd + * @return {Element} End element of selection range. + */ + getEnd: function() { + var self = this, rng = self.getRng(), endElement, endOffset; + + if (rng.duplicate || rng.item) { + if (rng.item) { + return rng.item(0); + } + + rng = rng.duplicate(); + rng.collapse(0); + endElement = rng.parentElement(); + if (endElement.ownerDocument !== self.dom.doc) { + endElement = self.dom.getRoot(); + } + + if (endElement && endElement.nodeName == 'BODY') { + return endElement.lastChild || endElement; + } + + return endElement; + } else { + endElement = rng.endContainer; + endOffset = rng.endOffset; + + if (endElement.nodeType == 1 && endElement.hasChildNodes()) { + endElement = endElement.childNodes[endOffset > 0 ? endOffset - 1 : endOffset]; + } + + if (endElement && endElement.nodeType == 3) { + return endElement.parentNode; + } + + return endElement; + } + }, + + /** + * Returns a bookmark location for the current selection. This bookmark object + * can then be used to restore the selection after some content modification to the document. + * + * @method getBookmark + * @param {Number} type Optional state if the bookmark should be simple or not. Default is complex. + * @param {Boolean} normalized Optional state that enables you to get a position that it would be after normalization. + * @return {Object} Bookmark object, use moveToBookmark with this object to restore the selection. + * @example + * // Stores a bookmark of the current selection + * var bm = tinymce.activeEditor.selection.getBookmark(); + * + * tinymce.activeEditor.setContent(tinymce.activeEditor.getContent() + 'Some new content'); + * + * // Restore the selection bookmark + * tinymce.activeEditor.selection.moveToBookmark(bm); + */ + getBookmark: function(type, normalized) { + var self = this, dom = self.dom, rng, rng2, id, collapsed, name, element, chr = '', styles; + + function findIndex(name, element) { + var index = 0; + + each(dom.select(name), function(node, i) { + if (node == element) { + index = i; + } + }); + + return index; + } + + function normalizeTableCellSelection(rng) { + function moveEndPoint(start) { + var container, offset, childNodes, prefix = start ? 'start' : 'end'; + + container = rng[prefix + 'Container']; + offset = rng[prefix + 'Offset']; + + if (container.nodeType == 1 && container.nodeName == "TR") { + childNodes = container.childNodes; + container = childNodes[Math.min(start ? offset : offset - 1, childNodes.length - 1)]; + if (container) { + offset = start ? 0 : container.childNodes.length; + rng['set' + (start ? 'Start' : 'End')](container, offset); + } + } + } + + moveEndPoint(true); + moveEndPoint(); + + return rng; + } + + function getLocation() { + var rng = self.getRng(true), root = dom.getRoot(), bookmark = {}; + + function getPoint(rng, start) { + var container = rng[start ? 'startContainer' : 'endContainer'], + offset = rng[start ? 'startOffset' : 'endOffset'], point = [], node, childNodes, after = 0; + + if (container.nodeType == 3) { + if (normalized) { + for (node = container.previousSibling; node && node.nodeType == 3; node = node.previousSibling) { + offset += node.nodeValue.length; + } + } + + point.push(offset); + } else { + childNodes = container.childNodes; + + if (offset >= childNodes.length && childNodes.length) { + after = 1; + offset = Math.max(0, childNodes.length - 1); + } + + point.push(self.dom.nodeIndex(childNodes[offset], normalized) + after); + } + + for (; container && container != root; container = container.parentNode) { + point.push(self.dom.nodeIndex(container, normalized)); + } + + return point; + } + + bookmark.start = getPoint(rng, true); + + if (!self.isCollapsed()) { + bookmark.end = getPoint(rng); + } + + return bookmark; + } + + if (type == 2) { + element = self.getNode(); + name = element ? element.nodeName : null; + + if (name == 'IMG') { + return {name: name, index: findIndex(name, element)}; + } + + if (self.tridentSel) { + return self.tridentSel.getBookmark(type); + } + + return getLocation(); + } + + // Handle simple range + if (type) { + return {rng: self.getRng()}; + } + + rng = self.getRng(); + id = dom.uniqueId(); + collapsed = self.isCollapsed(); + styles = 'overflow:hidden;line-height:0px'; + + // Explorer method + if (rng.duplicate || rng.item) { + // Text selection + if (!rng.item) { + rng2 = rng.duplicate(); + + try { + // Insert start marker + rng.collapse(); + rng.pasteHTML('<span data-mce-type="bookmark" id="' + id + '_start" style="' + styles + '">' + chr + '</span>'); + + // Insert end marker + if (!collapsed) { + rng2.collapse(false); + + // Detect the empty space after block elements in IE and move the + // end back one character <p></p>] becomes <p>]</p> + rng.moveToElementText(rng2.parentElement()); + if (rng.compareEndPoints('StartToEnd', rng2) === 0) { + rng2.move('character', -1); + } + + rng2.pasteHTML('<span data-mce-type="bookmark" id="' + id + '_end" style="' + styles + '">' + chr + '</span>'); + } + } catch (ex) { + // IE might throw unspecified error so lets ignore it + return null; + } + } else { + // Control selection + element = rng.item(0); + name = element.nodeName; + + return {name: name, index: findIndex(name, element)}; + } + } else { + element = self.getNode(); + name = element.nodeName; + if (name == 'IMG') { + return {name: name, index: findIndex(name, element)}; + } + + // W3C method + rng2 = normalizeTableCellSelection(rng.cloneRange()); + + // Insert end marker + if (!collapsed) { + rng2.collapse(false); + rng2.insertNode(dom.create('span', {'data-mce-type': "bookmark", id: id + '_end', style: styles}, chr)); + } + + rng = normalizeTableCellSelection(rng); + rng.collapse(true); + rng.insertNode(dom.create('span', {'data-mce-type': "bookmark", id: id + '_start', style: styles}, chr)); + } + + self.moveToBookmark({id: id, keep: 1}); + + return {id: id}; + }, + + /** + * Restores the selection to the specified bookmark. + * + * @method moveToBookmark + * @param {Object} bookmark Bookmark to restore selection from. + * @return {Boolean} true/false if it was successful or not. + * @example + * // Stores a bookmark of the current selection + * var bm = tinymce.activeEditor.selection.getBookmark(); + * + * tinymce.activeEditor.setContent(tinymce.activeEditor.getContent() + 'Some new content'); + * + * // Restore the selection bookmark + * tinymce.activeEditor.selection.moveToBookmark(bm); + */ + moveToBookmark: function(bookmark) { + var self = this, dom = self.dom, rng, root, startContainer, endContainer, startOffset, endOffset; + + function setEndPoint(start) { + var point = bookmark[start ? 'start' : 'end'], i, node, offset, children; + + if (point) { + offset = point[0]; + + // Find container node + for (node = root, i = point.length - 1; i >= 1; i--) { + children = node.childNodes; + + if (point[i] > children.length - 1) { + return; + } + + node = children[point[i]]; + } + + // Move text offset to best suitable location + if (node.nodeType === 3) { + offset = Math.min(point[0], node.nodeValue.length); + } + + // Move element offset to best suitable location + if (node.nodeType === 1) { + offset = Math.min(point[0], node.childNodes.length); + } + + // Set offset within container node + if (start) { + rng.setStart(node, offset); + } else { + rng.setEnd(node, offset); + } + } + + return true; + } + + function restoreEndPoint(suffix) { + var marker = dom.get(bookmark.id + '_' + suffix), node, idx, next, prev, keep = bookmark.keep; + + if (marker) { + node = marker.parentNode; + + if (suffix == 'start') { + if (!keep) { + idx = dom.nodeIndex(marker); + } else { + node = marker.firstChild; + idx = 1; + } + + startContainer = endContainer = node; + startOffset = endOffset = idx; + } else { + if (!keep) { + idx = dom.nodeIndex(marker); + } else { + node = marker.firstChild; + idx = 1; + } + + endContainer = node; + endOffset = idx; + } + + if (!keep) { + prev = marker.previousSibling; + next = marker.nextSibling; + + // Remove all marker text nodes + each(grep(marker.childNodes), function(node) { + if (node.nodeType == 3) { + node.nodeValue = node.nodeValue.replace(/\uFEFF/g, ''); + } + }); + + // Remove marker but keep children if for example contents where inserted into the marker + // Also remove duplicated instances of the marker for example by a + // split operation or by WebKit auto split on paste feature + while ((marker = dom.get(bookmark.id + '_' + suffix))) { + dom.remove(marker, 1); + } + + // If siblings are text nodes then merge them unless it's Opera since it some how removes the node + // and we are sniffing since adding a lot of detection code for a browser with 3% of the market + // isn't worth the effort. Sorry, Opera but it's just a fact + if (prev && next && prev.nodeType == next.nodeType && prev.nodeType == 3 && !isOpera) { + idx = prev.nodeValue.length; + prev.appendData(next.nodeValue); + dom.remove(next); + + if (suffix == 'start') { + startContainer = endContainer = prev; + startOffset = endOffset = idx; + } else { + endContainer = prev; + endOffset = idx; + } + } + } + } + } + + function addBogus(node) { + // Adds a bogus BR element for empty block elements + if (dom.isBlock(node) && !node.innerHTML && !isIE) { + node.innerHTML = '<br data-mce-bogus="1" />'; + } + + return node; + } + + if (bookmark) { + if (bookmark.start) { + rng = dom.createRng(); + root = dom.getRoot(); + + if (self.tridentSel) { + return self.tridentSel.moveToBookmark(bookmark); + } + + if (setEndPoint(true) && setEndPoint()) { + self.setRng(rng); + } + } else if (bookmark.id) { + // Restore start/end points + restoreEndPoint('start'); + restoreEndPoint('end'); + + if (startContainer) { + rng = dom.createRng(); + rng.setStart(addBogus(startContainer), startOffset); + rng.setEnd(addBogus(endContainer), endOffset); + self.setRng(rng); + } + } else if (bookmark.name) { + self.select(dom.select(bookmark.name)[bookmark.index]); + } else if (bookmark.rng) { + self.setRng(bookmark.rng); + } + } + }, + + /** + * Selects the specified element. This will place the start and end of the selection range around the element. + * + * @method select + * @param {Element} node HMTL DOM element to select. + * @param {Boolean} content Optional bool state if the contents should be selected or not on non IE browser. + * @return {Element} Selected element the same element as the one that got passed in. + * @example + * // Select the first paragraph in the active editor + * tinymce.activeEditor.selection.select(tinymce.activeEditor.dom.select('p')[0]); + */ + select: function(node, content) { + var self = this, dom = self.dom, rng = dom.createRng(), idx; + + // Clear stored range set by FocusManager + self.lastFocusBookmark = null; + + if (node) { + if (!content && self.controlSelection.controlSelect(node)) { + return; + } + + idx = dom.nodeIndex(node); + rng.setStart(node.parentNode, idx); + rng.setEnd(node.parentNode, idx + 1); + + // Find first/last text node or BR element + if (content) { + self._moveEndPoint(rng, node, true); + self._moveEndPoint(rng, node); + } + + self.setRng(rng); + } + + return node; + }, + + /** + * Returns true/false if the selection range is collapsed or not. Collapsed means if it's a caret or a larger selection. + * + * @method isCollapsed + * @return {Boolean} true/false state if the selection range is collapsed or not. + * Collapsed means if it's a caret or a larger selection. + */ + isCollapsed: function() { + var self = this, rng = self.getRng(), sel = self.getSel(); + + if (!rng || rng.item) { + return false; + } + + if (rng.compareEndPoints) { + return rng.compareEndPoints('StartToEnd', rng) === 0; + } + + return !sel || rng.collapsed; + }, + + /** + * Collapse the selection to start or end of range. + * + * @method collapse + * @param {Boolean} to_start Optional boolean state if to collapse to end or not. Defaults to start. + */ + collapse: function(to_start) { + var self = this, rng = self.getRng(), node; + + // Control range on IE + if (rng.item) { + node = rng.item(0); + rng = self.win.document.body.createTextRange(); + rng.moveToElementText(node); + } + + rng.collapse(!!to_start); + self.setRng(rng); + }, + + /** + * Returns the browsers internal selection object. + * + * @method getSel + * @return {Selection} Internal browser selection object. + */ + getSel: function() { + var win = this.win; + + return win.getSelection ? win.getSelection() : win.document.selection; + }, + + /** + * Returns the browsers internal range object. + * + * @method getRng + * @param {Boolean} w3c Forces a compatible W3C range on IE. + * @return {Range} Internal browser range object. + * @see http://www.quirksmode.org/dom/range_intro.html + * @see http://www.dotvoid.com/2001/03/using-the-range-object-in-mozilla/ + */ + getRng: function(w3c) { + var self = this, selection, rng, elm, doc = self.win.document, ieRng; + + function tryCompareBounderyPoints(how, sourceRange, destinationRange) { + try { + return sourceRange.compareBoundaryPoints(how, destinationRange); + } catch (ex) { + // Gecko throws wrong document exception if the range points + // to nodes that where removed from the dom #6690 + // Browsers should mutate existing DOMRange instances so that they always point + // to something in the document this is not the case in Gecko works fine in IE/WebKit/Blink + // For performance reasons just return -1 + return -1; + } + } + + // Use last rng passed from FocusManager if it's available this enables + // calls to editor.selection.getStart() to work when caret focus is lost on IE + if (!w3c && self.lastFocusBookmark) { + var bookmark = self.lastFocusBookmark; + + // Convert bookmark to range IE 11 fix + if (bookmark.startContainer) { + rng = doc.createRange(); + rng.setStart(bookmark.startContainer, bookmark.startOffset); + rng.setEnd(bookmark.endContainer, bookmark.endOffset); + } else { + rng = bookmark; + } + + return rng; + } + + // Found tridentSel object then we need to use that one + if (w3c && self.tridentSel) { + return self.tridentSel.getRangeAt(0); + } + + try { + if ((selection = self.getSel())) { + if (selection.rangeCount > 0) { + rng = selection.getRangeAt(0); + } else { + rng = selection.createRange ? selection.createRange() : doc.createRange(); + } + } + } catch (ex) { + // IE throws unspecified error here if TinyMCE is placed in a frame/iframe + } + + // We have W3C ranges and it's IE then fake control selection since IE9 doesn't handle that correctly yet + // IE 11 doesn't support the selection object so we check for that as well + if (isIE && rng && rng.setStart && doc.selection) { + try { + // IE will sometimes throw an exception here + ieRng = doc.selection.createRange(); + } catch (ex) { + + } + + if (ieRng && ieRng.item) { + elm = ieRng.item(0); + rng = doc.createRange(); + rng.setStartBefore(elm); + rng.setEndAfter(elm); + } + } + + // No range found then create an empty one + // This can occur when the editor is placed in a hidden container element on Gecko + // Or on IE when there was an exception + if (!rng) { + rng = doc.createRange ? doc.createRange() : doc.body.createTextRange(); + } + + // If range is at start of document then move it to start of body + if (rng.setStart && rng.startContainer.nodeType === 9 && rng.collapsed) { + elm = self.dom.getRoot(); + rng.setStart(elm, 0); + rng.setEnd(elm, 0); + } + + if (self.selectedRange && self.explicitRange) { + if (tryCompareBounderyPoints(rng.START_TO_START, rng, self.selectedRange) === 0 && + tryCompareBounderyPoints(rng.END_TO_END, rng, self.selectedRange) === 0) { + // Safari, Opera and Chrome only ever select text which causes the range to change. + // This lets us use the originally set range if the selection hasn't been changed by the user. + rng = self.explicitRange; + } else { + self.selectedRange = null; + self.explicitRange = null; + } + } + + return rng; + }, + + /** + * Changes the selection to the specified DOM range. + * + * @method setRng + * @param {Range} rng Range to select. + */ + setRng: function(rng, forward) { + var self = this, sel; + + // Is IE specific range + if (rng.select) { + try { + rng.select(); + } catch (ex) { + // Needed for some odd IE bug #1843306 + } + + return; + } + + if (!self.tridentSel) { + sel = self.getSel(); + + if (sel) { + self.explicitRange = rng; + + try { + sel.removeAllRanges(); + sel.addRange(rng); + } catch (ex) { + // IE might throw errors here if the editor is within a hidden container and selection is changed + } + + // Forward is set to false and we have an extend function + if (forward === false && sel.extend) { + sel.collapse(rng.endContainer, rng.endOffset); + sel.extend(rng.startContainer, rng.startOffset); + } + + // adding range isn't always successful so we need to check range count otherwise an exception can occur + self.selectedRange = sel.rangeCount > 0 ? sel.getRangeAt(0) : null; + } + } else { + // Is W3C Range fake range on IE + if (rng.cloneRange) { + try { + self.tridentSel.addRange(rng); + return; + } catch (ex) { + //IE9 throws an error here if called before selection is placed in the editor + } + } + } + }, + + /** + * Sets the current selection to the specified DOM element. + * + * @method setNode + * @param {Element} elm Element to set as the contents of the selection. + * @return {Element} Returns the element that got passed in. + * @example + * // Inserts a DOM node at current selection/caret location + * tinymce.activeEditor.selection.setNode(tinymce.activeEditor.dom.create('img', {src: 'some.gif', title: 'some title'})); + */ + setNode: function(elm) { + var self = this; + + self.setContent(self.dom.getOuterHTML(elm)); + + return elm; + }, + + /** + * Returns the currently selected element or the common ancestor element for both start and end of the selection. + * + * @method getNode + * @return {Element} Currently selected element or common ancestor element. + * @example + * // Alerts the currently selected elements node name + * alert(tinymce.activeEditor.selection.getNode().nodeName); + */ + getNode: function() { + var self = this, rng = self.getRng(), elm; + var startContainer = rng.startContainer, endContainer = rng.endContainer; + var startOffset = rng.startOffset, endOffset = rng.endOffset, root = self.dom.getRoot(); + + function skipEmptyTextNodes(node, forwards) { + var orig = node; + + while (node && node.nodeType === 3 && node.length === 0) { + node = forwards ? node.nextSibling : node.previousSibling; + } + + return node || orig; + } + + // Range maybe lost after the editor is made visible again + if (!rng) { + return root; + } + + if (rng.setStart) { + elm = rng.commonAncestorContainer; + + // Handle selection a image or other control like element such as anchors + if (!rng.collapsed) { + if (startContainer == endContainer) { + if (endOffset - startOffset < 2) { + if (startContainer.hasChildNodes()) { + elm = startContainer.childNodes[startOffset]; + } + } + } + + // If the anchor node is a element instead of a text node then return this element + //if (tinymce.isWebKit && sel.anchorNode && sel.anchorNode.nodeType == 1) + // return sel.anchorNode.childNodes[sel.anchorOffset]; + + // Handle cases where the selection is immediately wrapped around a node and return that node instead of it's parent. + // This happens when you double click an underlined word in FireFox. + if (startContainer.nodeType === 3 && endContainer.nodeType === 3) { + if (startContainer.length === startOffset) { + startContainer = skipEmptyTextNodes(startContainer.nextSibling, true); + } else { + startContainer = startContainer.parentNode; + } + + if (endOffset === 0) { + endContainer = skipEmptyTextNodes(endContainer.previousSibling, false); + } else { + endContainer = endContainer.parentNode; + } + + if (startContainer && startContainer === endContainer) { + return startContainer; + } + } + } + + if (elm && elm.nodeType == 3) { + return elm.parentNode; + } + + return elm; + } + + elm = rng.item ? rng.item(0) : rng.parentElement(); + + // IE 7 might return elements outside the iframe + if (elm.ownerDocument !== self.win.document) { + elm = root; + } + + return elm; + }, + + getSelectedBlocks: function(startElm, endElm) { + var self = this, dom = self.dom, node, root, selectedBlocks = []; + + root = dom.getRoot(); + startElm = dom.getParent(startElm || self.getStart(), dom.isBlock); + endElm = dom.getParent(endElm || self.getEnd(), dom.isBlock); + + if (startElm && startElm != root) { + selectedBlocks.push(startElm); + } + + if (startElm && endElm && startElm != endElm) { + node = startElm; + + var walker = new TreeWalker(startElm, root); + while ((node = walker.next()) && node != endElm) { + if (dom.isBlock(node)) { + selectedBlocks.push(node); + } + } + } + + if (endElm && startElm != endElm && endElm != root) { + selectedBlocks.push(endElm); + } + + return selectedBlocks; + }, + + isForward: function() { + var dom = this.dom, sel = this.getSel(), anchorRange, focusRange; + + // No support for selection direction then always return true + if (!sel || !sel.anchorNode || !sel.focusNode) { + return true; + } + + anchorRange = dom.createRng(); + anchorRange.setStart(sel.anchorNode, sel.anchorOffset); + anchorRange.collapse(true); + + focusRange = dom.createRng(); + focusRange.setStart(sel.focusNode, sel.focusOffset); + focusRange.collapse(true); + + return anchorRange.compareBoundaryPoints(anchorRange.START_TO_START, focusRange) <= 0; + }, + + normalize: function() { + var self = this, rng = self.getRng(); + + if (!isIE && new RangeUtils(self.dom).normalize(rng)) { + self.setRng(rng, self.isForward()); + } + + return rng; + }, + + /** + * Executes callback of the current selection matches the specified selector or not and passes the state and args to the callback. + * + * @method selectorChanged + * @param {String} selector CSS selector to check for. + * @param {function} callback Callback with state and args when the selector is matches or not. + */ + selectorChanged: function(selector, callback) { + var self = this, currentSelectors; + + if (!self.selectorChangedData) { + self.selectorChangedData = {}; + currentSelectors = {}; + + self.editor.on('NodeChange', function(e) { + var node = e.element, dom = self.dom, parents = dom.getParents(node, null, dom.getRoot()), matchedSelectors = {}; + + // Check for new matching selectors + each(self.selectorChangedData, function(callbacks, selector) { + each(parents, function(node) { + if (dom.is(node, selector)) { + if (!currentSelectors[selector]) { + // Execute callbacks + each(callbacks, function(callback) { + callback(true, {node: node, selector: selector, parents: parents}); + }); + + currentSelectors[selector] = callbacks; + } + + matchedSelectors[selector] = callbacks; + return false; + } + }); + }); + + // Check if current selectors still match + each(currentSelectors, function(callbacks, selector) { + if (!matchedSelectors[selector]) { + delete currentSelectors[selector]; + + each(callbacks, function(callback) { + callback(false, {node: node, selector: selector, parents: parents}); + }); + } + }); + }); + } + + // Add selector listeners + if (!self.selectorChangedData[selector]) { + self.selectorChangedData[selector] = []; + } + + self.selectorChangedData[selector].push(callback); + + return self; + }, + + getScrollContainer: function() { + var scrollContainer, node = this.dom.getRoot(); + + while (node && node.nodeName != 'BODY') { + if (node.scrollHeight > node.clientHeight) { + scrollContainer = node; + break; + } + + node = node.parentNode; + } + + return scrollContainer; + }, + + scrollIntoView: function(elm) { + var y, viewPort, self = this, dom = self.dom, root = dom.getRoot(), viewPortY, viewPortH; + + function getPos(elm) { + var x = 0, y = 0; + + var offsetParent = elm; + while (offsetParent && offsetParent.nodeType) { + x += offsetParent.offsetLeft || 0; + y += offsetParent.offsetTop || 0; + offsetParent = offsetParent.offsetParent; + } + + return {x: x, y: y}; + } + + if (root.nodeName != 'BODY') { + var scrollContainer = self.getScrollContainer(); + if (scrollContainer) { + y = getPos(elm).y - getPos(scrollContainer).y; + viewPortH = scrollContainer.clientHeight; + viewPortY = scrollContainer.scrollTop; + if (y < viewPortY || y + 25 > viewPortY + viewPortH) { + scrollContainer.scrollTop = y < viewPortY ? y : y - viewPortH + 25; + } + + return; + } + } + + viewPort = dom.getViewPort(self.editor.getWin()); + y = dom.getPos(elm).y; + viewPortY = viewPort.y; + viewPortH = viewPort.h; + if (y < viewPort.y || y + 25 > viewPortY + viewPortH) { + self.editor.getWin().scrollTo(0, y < viewPortY ? y : y - viewPortH + 25); + } + }, + + _moveEndPoint: function(rng, node, start) { + var root = node, walker = new TreeWalker(node, root); + var nonEmptyElementsMap = this.dom.schema.getNonEmptyElements(); + + do { + // Text node + if (node.nodeType == 3 && trim(node.nodeValue).length !== 0) { + if (start) { + rng.setStart(node, 0); + } else { + rng.setEnd(node, node.nodeValue.length); + } + + return; + } + + // BR/IMG/INPUT elements + if (nonEmptyElementsMap[node.nodeName]) { + if (start) { + rng.setStartBefore(node); + } else { + if (node.nodeName == 'BR') { + rng.setEndBefore(node); + } else { + rng.setEndAfter(node); + } + } + + return; + } + + // Found empty text block old IE can place the selection inside those + if (Env.ie && Env.ie < 11 && this.dom.isBlock(node) && this.dom.isEmpty(node)) { + if (start) { + rng.setStart(node, 0); + } else { + rng.setEnd(node, 0); + } + + return; + } + } while ((node = (start ? walker.next() : walker.prev()))); + + // Failed to find any text node or other suitable location then move to the root of body + if (root.nodeName == 'BODY') { + if (start) { + rng.setStart(root, 0); + } else { + rng.setEnd(root, root.childNodes.length); + } + } + }, + + destroy: function() { + this.win = null; + this.controlSelection.destroy(); + } + }; + + return Selection; +}); + +// Included from: js/tinymce/classes/Formatter.js + +/** + * Formatter.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Text formatter engine class. This class is used to apply formats like bold, italic, font size + * etc to the current selection or specific nodes. This engine was build to replace the browsers + * default formatting logic for execCommand due to it's inconsistent and buggy behavior. + * + * @class tinymce.Formatter + * @example + * tinymce.activeEditor.formatter.register('mycustomformat', { + * inline: 'span', + * styles: {color: '#ff0000'} + * }); + * + * tinymce.activeEditor.formatter.apply('mycustomformat'); + */ +define("tinymce/Formatter", [ + "tinymce/dom/TreeWalker", + "tinymce/dom/RangeUtils", + "tinymce/util/Tools" +], function(TreeWalker, RangeUtils, Tools) { + /** + * Constructs a new formatter instance. + * + * @constructor Formatter + * @param {tinymce.Editor} ed Editor instance to construct the formatter engine to. + */ + return function(ed) { + var formats = {}, + dom = ed.dom, + selection = ed.selection, + rangeUtils = new RangeUtils(dom), + isValid = ed.schema.isValidChild, + isBlock = dom.isBlock, + forcedRootBlock = ed.settings.forced_root_block, + nodeIndex = dom.nodeIndex, + INVISIBLE_CHAR = '\uFEFF', + MCE_ATTR_RE = /^(src|href|style)$/, + FALSE = false, + TRUE = true, + formatChangeData, + undef, + getContentEditable = dom.getContentEditable, + disableCaretContainer, + markCaretContainersBogus; + + var each = Tools.each, + grep = Tools.grep, + walk = Tools.walk, + extend = Tools.extend; + + function isTextBlock(name) { + if (name.nodeType) { + name = name.nodeName; + } + + return !!ed.schema.getTextBlockElements()[name.toLowerCase()]; + } + + function getParents(node, selector) { + return dom.getParents(node, selector, dom.getRoot()); + } + + function isCaretNode(node) { + return node.nodeType === 1 && node.id === '_mce_caret'; + } + + function defaultFormats() { + register({ + alignleft: [ + {selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li', styles: {textAlign: 'left'}, defaultBlock: 'div'}, + {selector: 'img,table', collapsed: false, styles: {'float': 'left'}} + ], + + aligncenter: [ + {selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li', styles: {textAlign: 'center'}, defaultBlock: 'div'}, + {selector: 'img', collapsed: false, styles: {display: 'block', marginLeft: 'auto', marginRight: 'auto'}}, + {selector: 'table', collapsed: false, styles: {marginLeft: 'auto', marginRight: 'auto'}} + ], + + alignright: [ + {selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li', styles: {textAlign: 'right'}, defaultBlock: 'div'}, + {selector: 'img,table', collapsed: false, styles: {'float': 'right'}} + ], + + alignjustify: [ + {selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li', styles: {textAlign: 'justify'}, defaultBlock: 'div'} + ], + + bold: [ + {inline: 'strong', remove: 'all'}, + {inline: 'span', styles: {fontWeight: 'bold'}}, + {inline: 'b', remove: 'all'} + ], + + italic: [ + {inline: 'em', remove: 'all'}, + {inline: 'span', styles: {fontStyle: 'italic'}}, + {inline: 'i', remove: 'all'} + ], + + underline: [ + {inline: 'span', styles: {textDecoration: 'underline'}, exact: true}, + {inline: 'u', remove: 'all'} + ], + + strikethrough: [ + {inline: 'span', styles: {textDecoration: 'line-through'}, exact: true}, + {inline: 'strike', remove: 'all'} + ], + + forecolor: {inline: 'span', styles: {color: '%value'}, wrap_links: false}, + hilitecolor: {inline: 'span', styles: {backgroundColor: '%value'}, wrap_links: false}, + fontname: {inline: 'span', styles: {fontFamily: '%value'}}, + fontsize: {inline: 'span', styles: {fontSize: '%value'}}, + fontsize_class: {inline: 'span', attributes: {'class': '%value'}}, + blockquote: {block: 'blockquote', wrapper: 1, remove: 'all'}, + subscript: {inline: 'sub'}, + superscript: {inline: 'sup'}, + code: {inline: 'code'}, + + link: {inline: 'a', selector: 'a', remove: 'all', split: true, deep: true, + onmatch: function() { + return true; + }, + + onformat: function(elm, fmt, vars) { + each(vars, function(value, key) { + dom.setAttrib(elm, key, value); + }); + } + }, + + removeformat: [ + { + selector: 'b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q', + remove: 'all', + split: true, + expand: false, + block_expand: true, + deep: true + }, + {selector: 'span', attributes: ['style', 'class'], remove: 'empty', split: true, expand: false, deep: true}, + {selector: '*', attributes: ['style', 'class'], split: false, expand: false, deep: true} + ] + }); + + // Register default block formats + each('p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp'.split(/\s/), function(name) { + register(name, {block: name, remove: 'all'}); + }); + + // Register user defined formats + register(ed.settings.formats); + } + + function addKeyboardShortcuts() { + // Add some inline shortcuts + ed.addShortcut('ctrl+b', 'bold_desc', 'Bold'); + ed.addShortcut('ctrl+i', 'italic_desc', 'Italic'); + ed.addShortcut('ctrl+u', 'underline_desc', 'Underline'); + + // BlockFormat shortcuts keys + for (var i = 1; i <= 6; i++) { + ed.addShortcut('ctrl+' + i, '', ['FormatBlock', false, 'h' + i]); + } + + ed.addShortcut('ctrl+7', '', ['FormatBlock', false, 'p']); + ed.addShortcut('ctrl+8', '', ['FormatBlock', false, 'div']); + ed.addShortcut('ctrl+9', '', ['FormatBlock', false, 'address']); + } + + // Public functions + + /** + * Returns the format by name or all formats if no name is specified. + * + * @method get + * @param {String} name Optional name to retrive by. + * @return {Array/Object} Array/Object with all registred formats or a specific format. + */ + function get(name) { + return name ? formats[name] : formats; + } + + /** + * Registers a specific format by name. + * + * @method register + * @param {Object/String} name Name of the format for example "bold". + * @param {Object/Array} format Optional format object or array of format variants + * can only be omitted if the first arg is an object. + */ + function register(name, format) { + if (name) { + if (typeof(name) !== 'string') { + each(name, function(format, name) { + register(name, format); + }); + } else { + // Force format into array and add it to internal collection + format = format.length ? format : [format]; + + each(format, function(format) { + // Set deep to false by default on selector formats this to avoid removing + // alignment on images inside paragraphs when alignment is changed on paragraphs + if (format.deep === undef) { + format.deep = !format.selector; + } + + // Default to true + if (format.split === undef) { + format.split = !format.selector || format.inline; + } + + // Default to true + if (format.remove === undef && format.selector && !format.inline) { + format.remove = 'none'; + } + + // Mark format as a mixed format inline + block level + if (format.selector && format.inline) { + format.mixed = true; + format.block_expand = true; + } + + // Split classes if needed + if (typeof(format.classes) === 'string') { + format.classes = format.classes.split(/\s+/); + } + }); + + formats[name] = format; + } + } + } + + function getTextDecoration(node) { + var decoration; + + ed.dom.getParent(node, function(n) { + decoration = ed.dom.getStyle(n, 'text-decoration'); + return decoration && decoration !== 'none'; + }); + + return decoration; + } + + function processUnderlineAndColor(node) { + var textDecoration; + if (node.nodeType === 1 && node.parentNode && node.parentNode.nodeType === 1) { + textDecoration = getTextDecoration(node.parentNode); + if (ed.dom.getStyle(node, 'color') && textDecoration) { + ed.dom.setStyle(node, 'text-decoration', textDecoration); + } else if (ed.dom.getStyle(node, 'textdecoration') === textDecoration) { + ed.dom.setStyle(node, 'text-decoration', null); + } + } + } + + /** + * Applies the specified format to the current selection or specified node. + * + * @method apply + * @param {String} name Name of format to apply. + * @param {Object} vars Optional list of variables to replace within format before applying it. + * @param {Node} node Optional node to apply the format to defaults to current selection. + */ + function apply(name, vars, node) { + var formatList = get(name), format = formatList[0], bookmark, rng, isCollapsed = !node && selection.isCollapsed(); + + function setElementFormat(elm, fmt) { + fmt = fmt || format; + + if (elm) { + if (fmt.onformat) { + fmt.onformat(elm, fmt, vars, node); + } + + each(fmt.styles, function(value, name) { + dom.setStyle(elm, name, replaceVars(value, vars)); + }); + + each(fmt.attributes, function(value, name) { + dom.setAttrib(elm, name, replaceVars(value, vars)); + }); + + each(fmt.classes, function(value) { + value = replaceVars(value, vars); + + if (!dom.hasClass(elm, value)) { + dom.addClass(elm, value); + } + }); + } + } + + function adjustSelectionToVisibleSelection() { + function findSelectionEnd(start, end) { + var walker = new TreeWalker(end); + for (node = walker.current(); node; node = walker.prev()) { + if (node.childNodes.length > 1 || node == start || node.tagName == 'BR') { + return node; + } + } + } + + // Adjust selection so that a end container with a end offset of zero is not included in the selection + // as this isn't visible to the user. + var rng = ed.selection.getRng(); + var start = rng.startContainer; + var end = rng.endContainer; + + if (start != end && rng.endOffset === 0) { + var newEnd = findSelectionEnd(start, end); + var endOffset = newEnd.nodeType == 3 ? newEnd.length : newEnd.childNodes.length; + + rng.setEnd(newEnd, endOffset); + } + + return rng; + } + + function applyStyleToList(node, bookmark, wrapElm, newWrappers, process){ + var nodes = [], listIndex = -1, list, startIndex = -1, endIndex = -1, currentWrapElm; + + // find the index of the first child list. + each(node.childNodes, function(n, index) { + if (n.nodeName === "UL" || n.nodeName === "OL") { + listIndex = index; + list = n; + return false; + } + }); + + // get the index of the bookmarks + each(node.childNodes, function(n, index) { + if (n.nodeName === "SPAN" && dom.getAttrib(n, "data-mce-type") == "bookmark") { + if (n.id == bookmark.id + "_start") { + startIndex = index; + } else if (n.id == bookmark.id + "_end") { + endIndex = index; + } + } + }); + + // if the selection spans across an embedded list, or there isn't an embedded list - handle processing normally + if (listIndex <= 0 || (startIndex < listIndex && endIndex > listIndex)) { + each(grep(node.childNodes), process); + return 0; + } else { + currentWrapElm = dom.clone(wrapElm, FALSE); + + // create a list of the nodes on the same side of the list as the selection + each(grep(node.childNodes), function(n, index) { + if ((startIndex < listIndex && index < listIndex) || (startIndex > listIndex && index > listIndex)) { + nodes.push(n); + n.parentNode.removeChild(n); + } + }); + + // insert the wrapping element either before or after the list. + if (startIndex < listIndex) { + node.insertBefore(currentWrapElm, list); + } else if (startIndex > listIndex) { + node.insertBefore(currentWrapElm, list.nextSibling); + } + + // add the new nodes to the list. + newWrappers.push(currentWrapElm); + + each(nodes, function(node) { + currentWrapElm.appendChild(node); + }); + + return currentWrapElm; + } + } + + function applyRngStyle(rng, bookmark, node_specific) { + var newWrappers = [], wrapName, wrapElm, contentEditable = true; + + // Setup wrapper element + wrapName = format.inline || format.block; + wrapElm = dom.create(wrapName); + setElementFormat(wrapElm); + + rangeUtils.walk(rng, function(nodes) { + var currentWrapElm; + + /** + * Process a list of nodes wrap them. + */ + function process(node) { + var nodeName, parentName, found, hasContentEditableState, lastContentEditable; + + lastContentEditable = contentEditable; + nodeName = node.nodeName.toLowerCase(); + parentName = node.parentNode.nodeName.toLowerCase(); + + // Node has a contentEditable value + if (node.nodeType === 1 && getContentEditable(node)) { + lastContentEditable = contentEditable; + contentEditable = getContentEditable(node) === "true"; + hasContentEditableState = true; // We don't want to wrap the container only it's children + } + + // Stop wrapping on br elements + if (isEq(nodeName, 'br')) { + currentWrapElm = 0; + + // Remove any br elements when we wrap things + if (format.block) { + dom.remove(node); + } + + return; + } + + // If node is wrapper type + if (format.wrapper && matchNode(node, name, vars)) { + currentWrapElm = 0; + return; + } + + // Can we rename the block + // TODO: Break this if up, too complex + if (contentEditable && !hasContentEditableState && format.block && + !format.wrapper && isTextBlock(nodeName) && isValid(parentName, wrapName)) { + node = dom.rename(node, wrapName); + setElementFormat(node); + newWrappers.push(node); + currentWrapElm = 0; + return; + } + + // Handle selector patterns + if (format.selector) { + // Look for matching formats + each(formatList, function(format) { + // Check collapsed state if it exists + if ('collapsed' in format && format.collapsed !== isCollapsed) { + return; + } + + if (dom.is(node, format.selector) && !isCaretNode(node)) { + setElementFormat(node, format); + found = true; + } + }); + + // Continue processing if a selector match wasn't found and a inline element is defined + if (!format.inline || found) { + currentWrapElm = 0; + return; + } + } + + // Is it valid to wrap this item + // TODO: Break this if up, too complex + if (contentEditable && !hasContentEditableState && isValid(wrapName, nodeName) && isValid(parentName, wrapName) && + !(!node_specific && node.nodeType === 3 && + node.nodeValue.length === 1 && + node.nodeValue.charCodeAt(0) === 65279) && + !isCaretNode(node) && + (!format.inline || !isBlock(node))) { + // Start wrapping + if (!currentWrapElm) { + // Wrap the node + currentWrapElm = dom.clone(wrapElm, FALSE); + node.parentNode.insertBefore(currentWrapElm, node); + newWrappers.push(currentWrapElm); + } + + currentWrapElm.appendChild(node); + } else if (nodeName == 'li' && bookmark) { + // Start wrapping - if we are in a list node and have a bookmark, then + // we will always begin by wrapping in a new element. + currentWrapElm = applyStyleToList(node, bookmark, wrapElm, newWrappers, process); + } else { + // Start a new wrapper for possible children + currentWrapElm = 0; + + each(grep(node.childNodes), process); + + if (hasContentEditableState) { + contentEditable = lastContentEditable; // Restore last contentEditable state from stack + } + + // End the last wrapper + currentWrapElm = 0; + } + } + + // Process siblings from range + each(nodes, process); + }); + + // Wrap links inside as well, for example color inside a link when the wrapper is around the link + if (format.wrap_links === false) { + each(newWrappers, function(node) { + function process(node) { + var i, currentWrapElm, children; + + if (node.nodeName === 'A') { + currentWrapElm = dom.clone(wrapElm, FALSE); + newWrappers.push(currentWrapElm); + + children = grep(node.childNodes); + for (i = 0; i < children.length; i++) { + currentWrapElm.appendChild(children[i]); + } + + node.appendChild(currentWrapElm); + } + + each(grep(node.childNodes), process); + } + + process(node); + }); + } + + // Cleanup + each(newWrappers, function(node) { + var childCount; + + function getChildCount(node) { + var count = 0; + + each(node.childNodes, function(node) { + if (!isWhiteSpaceNode(node) && !isBookmarkNode(node)) { + count++; + } + }); + + return count; + } + + function mergeStyles(node) { + var child, clone; + + each(node.childNodes, function(node) { + if (node.nodeType == 1 && !isBookmarkNode(node) && !isCaretNode(node)) { + child = node; + return FALSE; // break loop + } + }); + + // If child was found and of the same type as the current node + if (child && !isBookmarkNode(child) && matchName(child, format)) { + clone = dom.clone(child, FALSE); + setElementFormat(clone); + + dom.replace(clone, node, TRUE); + dom.remove(child, 1); + } + + return clone || node; + } + + childCount = getChildCount(node); + + // Remove empty nodes but only if there is multiple wrappers and they are not block + // elements so never remove single <h1></h1> since that would remove the + // currrent empty block element where the caret is at + if ((newWrappers.length > 1 || !isBlock(node)) && childCount === 0) { + dom.remove(node, 1); + return; + } + + if (format.inline || format.wrapper) { + // Merges the current node with it's children of similar type to reduce the number of elements + if (!format.exact && childCount === 1) { + node = mergeStyles(node); + } + + // Remove/merge children + each(formatList, function(format) { + // Merge all children of similar type will move styles from child to parent + // this: <span style="color:red"><b><span style="color:red; font-size:10px">text</span></b></span> + // will become: <span style="color:red"><b><span style="font-size:10px">text</span></b></span> + each(dom.select(format.inline, node), function(child) { + var parent; + + if (isBookmarkNode(child)) { + return; + } + + // When wrap_links is set to false we don't want + // to remove the format on children within links + if (format.wrap_links === false) { + parent = child.parentNode; + + do { + if (parent.nodeName === 'A') { + return; + } + } while ((parent = parent.parentNode)); + } + + removeFormat(format, vars, child, format.exact ? child : null); + }); + }); + + // Remove child if direct parent is of same type + if (matchNode(node.parentNode, name, vars)) { + dom.remove(node, 1); + node = 0; + return TRUE; + } + + // Look for parent with similar style format + if (format.merge_with_parents) { + dom.getParent(node.parentNode, function(parent) { + if (matchNode(parent, name, vars)) { + dom.remove(node, 1); + node = 0; + return TRUE; + } + }); + } + + // Merge next and previous siblings if they are similar <b>text</b><b>text</b> becomes <b>texttext</b> + if (node && format.merge_siblings !== false) { + node = mergeSiblings(getNonWhiteSpaceSibling(node), node); + node = mergeSiblings(node, getNonWhiteSpaceSibling(node, TRUE)); + } + } + }); + } + + if (format) { + if (node) { + if (node.nodeType) { + rng = dom.createRng(); + rng.setStartBefore(node); + rng.setEndAfter(node); + applyRngStyle(expandRng(rng, formatList), null, true); + } else { + applyRngStyle(node, null, true); + } + } else { + if (!isCollapsed || !format.inline || dom.select('td.mce-item-selected,th.mce-item-selected').length) { + // Obtain selection node before selection is unselected by applyRngStyle() + var curSelNode = ed.selection.getNode(); + + // If the formats have a default block and we can't find a parent block then + // start wrapping it with a DIV this is for forced_root_blocks: false + // It's kind of a hack but people should be using the default block type P since all desktop editors work that way + if (!forcedRootBlock && formatList[0].defaultBlock && !dom.getParent(curSelNode, dom.isBlock)) { + apply(formatList[0].defaultBlock); + } + + // Apply formatting to selection + ed.selection.setRng(adjustSelectionToVisibleSelection()); + bookmark = selection.getBookmark(); + applyRngStyle(expandRng(selection.getRng(TRUE), formatList), bookmark); + + // Colored nodes should be underlined so that the color of the underline matches the text color. + if (format.styles && (format.styles.color || format.styles.textDecoration)) { + walk(curSelNode, processUnderlineAndColor, 'childNodes'); + processUnderlineAndColor(curSelNode); + } + + selection.moveToBookmark(bookmark); + moveStart(selection.getRng(TRUE)); + ed.nodeChanged(); + } else { + performCaretAction('apply', name, vars); + } + } + } + } + + /** + * Removes the specified format from the current selection or specified node. + * + * @method remove + * @param {String} name Name of format to remove. + * @param {Object} vars Optional list of variables to replace within format before removing it. + * @param {Node/Range} node Optional node or DOM range to remove the format from defaults to current selection. + */ + function remove(name, vars, node) { + var formatList = get(name), format = formatList[0], bookmark, rng, contentEditable = true; + + // Merges the styles for each node + function process(node) { + var children, i, l, lastContentEditable, hasContentEditableState; + + // Node has a contentEditable value + if (node.nodeType === 1 && getContentEditable(node)) { + lastContentEditable = contentEditable; + contentEditable = getContentEditable(node) === "true"; + hasContentEditableState = true; // We don't want to wrap the container only it's children + } + + // Grab the children first since the nodelist might be changed + children = grep(node.childNodes); + + // Process current node + if (contentEditable && !hasContentEditableState) { + for (i = 0, l = formatList.length; i < l; i++) { + if (removeFormat(formatList[i], vars, node, node)) { + break; + } + } + } + + // Process the children + if (format.deep) { + if (children.length) { + for (i = 0, l = children.length; i < l; i++) { + process(children[i]); + } + + if (hasContentEditableState) { + contentEditable = lastContentEditable; // Restore last contentEditable state from stack + } + } + } + } + + function findFormatRoot(container) { + var formatRoot; + + // Find format root + each(getParents(container.parentNode).reverse(), function(parent) { + var format; + + // Find format root element + if (!formatRoot && parent.id != '_start' && parent.id != '_end') { + // Is the node matching the format we are looking for + format = matchNode(parent, name, vars); + if (format && format.split !== false) { + formatRoot = parent; + } + } + }); + + return formatRoot; + } + + function wrapAndSplit(format_root, container, target, split) { + var parent, clone, lastClone, firstClone, i, formatRootParent; + + // Format root found then clone formats and split it + if (format_root) { + formatRootParent = format_root.parentNode; + + for (parent = container.parentNode; parent && parent != formatRootParent; parent = parent.parentNode) { + clone = dom.clone(parent, FALSE); + + for (i = 0; i < formatList.length; i++) { + if (removeFormat(formatList[i], vars, clone, clone)) { + clone = 0; + break; + } + } + + // Build wrapper node + if (clone) { + if (lastClone) { + clone.appendChild(lastClone); + } + + if (!firstClone) { + firstClone = clone; + } + + lastClone = clone; + } + } + + // Never split block elements if the format is mixed + if (split && (!format.mixed || !isBlock(format_root))) { + container = dom.split(format_root, container); + } + + // Wrap container in cloned formats + if (lastClone) { + target.parentNode.insertBefore(lastClone, target); + firstClone.appendChild(target); + } + } + + return container; + } + + function splitToFormatRoot(container) { + return wrapAndSplit(findFormatRoot(container), container, container, true); + } + + function unwrap(start) { + var node = dom.get(start ? '_start' : '_end'), + out = node[start ? 'firstChild' : 'lastChild']; + + // If the end is placed within the start the result will be removed + // So this checks if the out node is a bookmark node if it is it + // checks for another more suitable node + if (isBookmarkNode(out)) { + out = out[start ? 'firstChild' : 'lastChild']; + } + + dom.remove(node, true); + + return out; + } + + function removeRngStyle(rng) { + var startContainer, endContainer; + var commonAncestorContainer = rng.commonAncestorContainer; + + rng = expandRng(rng, formatList, TRUE); + + if (format.split) { + startContainer = getContainer(rng, TRUE); + endContainer = getContainer(rng); + + if (startContainer != endContainer) { + // WebKit will render the table incorrectly if we wrap a TH or TD in a SPAN + // so let's see if we can use the first child instead + // This will happen if you triple click a table cell and use remove formatting + if (/^(TR|TH|TD)$/.test(startContainer.nodeName) && startContainer.firstChild) { + if (startContainer.nodeName == "TR") { + startContainer = startContainer.firstChild.firstChild || startContainer; + } else { + startContainer = startContainer.firstChild || startContainer; + } + } + + // Try to adjust endContainer as well if cells on the same row were selected - bug #6410 + if (commonAncestorContainer && + /^T(HEAD|BODY|FOOT|R)$/.test(commonAncestorContainer.nodeName) && + /^(TH|TD)$/.test(endContainer.nodeName) && endContainer.firstChild) { + endContainer = endContainer.firstChild || endContainer; + } + + // Wrap start/end nodes in span element since these might be cloned/moved + startContainer = wrap(startContainer, 'span', {id: '_start', 'data-mce-type': 'bookmark'}); + endContainer = wrap(endContainer, 'span', {id: '_end', 'data-mce-type': 'bookmark'}); + + // Split start/end + splitToFormatRoot(startContainer); + splitToFormatRoot(endContainer); + + // Unwrap start/end to get real elements again + startContainer = unwrap(TRUE); + endContainer = unwrap(); + } else { + startContainer = endContainer = splitToFormatRoot(startContainer); + } + + // Update range positions since they might have changed after the split operations + rng.startContainer = startContainer.parentNode; + rng.startOffset = nodeIndex(startContainer); + rng.endContainer = endContainer.parentNode; + rng.endOffset = nodeIndex(endContainer) + 1; + } + + // Remove items between start/end + rangeUtils.walk(rng, function(nodes) { + each(nodes, function(node) { + process(node); + + // Remove parent span if it only contains text-decoration: underline, yet a parent node is also underlined. + if (node.nodeType === 1 && ed.dom.getStyle(node, 'text-decoration') === 'underline' && + node.parentNode && getTextDecoration(node.parentNode) === 'underline') { + removeFormat({ + 'deep': false, + 'exact': true, + 'inline': 'span', + 'styles': { + 'textDecoration': 'underline' + } + }, null, node); + } + }); + }); + } + + // Handle node + if (node) { + if (node.nodeType) { + rng = dom.createRng(); + rng.setStartBefore(node); + rng.setEndAfter(node); + removeRngStyle(rng); + } else { + removeRngStyle(node); + } + + return; + } + + if (!selection.isCollapsed() || !format.inline || dom.select('td.mce-item-selected,th.mce-item-selected').length) { + bookmark = selection.getBookmark(); + removeRngStyle(selection.getRng(TRUE)); + selection.moveToBookmark(bookmark); + + // Check if start element still has formatting then we are at: "<b>text|</b>text" + // and need to move the start into the next text node + if (format.inline && match(name, vars, selection.getStart())) { + moveStart(selection.getRng(true)); + } + + ed.nodeChanged(); + } else { + performCaretAction('remove', name, vars); + } + } + + /** + * Toggles the specified format on/off. + * + * @method toggle + * @param {String} name Name of format to apply/remove. + * @param {Object} vars Optional list of variables to replace within format before applying/removing it. + * @param {Node} node Optional node to apply the format to or remove from. Defaults to current selection. + */ + function toggle(name, vars, node) { + var fmt = get(name); + + if (match(name, vars, node) && (!('toggle' in fmt[0]) || fmt[0].toggle)) { + remove(name, vars, node); + } else { + apply(name, vars, node); + } + } + + /** + * Return true/false if the specified node has the specified format. + * + * @method matchNode + * @param {Node} node Node to check the format on. + * @param {String} name Format name to check. + * @param {Object} vars Optional list of variables to replace before checking it. + * @param {Boolean} similar Match format that has similar properties. + * @return {Object} Returns the format object it matches or undefined if it doesn't match. + */ + function matchNode(node, name, vars, similar) { + var formatList = get(name), format, i, classes; + + function matchItems(node, format, item_name) { + var key, value, items = format[item_name], i; + + // Custom match + if (format.onmatch) { + return format.onmatch(node, format, item_name); + } + + // Check all items + if (items) { + // Non indexed object + if (items.length === undef) { + for (key in items) { + if (items.hasOwnProperty(key)) { + if (item_name === 'attributes') { + value = dom.getAttrib(node, key); + } else { + value = getStyle(node, key); + } + + if (similar && !value && !format.exact) { + return; + } + + if ((!similar || format.exact) && !isEq(value, normalizeStyleValue(replaceVars(items[key], vars), key))) { + return; + } + } + } + } else { + // Only one match needed for indexed arrays + for (i = 0; i < items.length; i++) { + if (item_name === 'attributes' ? dom.getAttrib(node, items[i]) : getStyle(node, items[i])) { + return format; + } + } + } + } + + return format; + } + + if (formatList && node) { + // Check each format in list + for (i = 0; i < formatList.length; i++) { + format = formatList[i]; + + // Name name, attributes, styles and classes + if (matchName(node, format) && matchItems(node, format, 'attributes') && matchItems(node, format, 'styles')) { + // Match classes + if ((classes = format.classes)) { + for (i = 0; i < classes.length; i++) { + if (!dom.hasClass(node, classes[i])) { + return; + } + } + } + + return format; + } + } + } + } + + /** + * Matches the current selection or specified node against the specified format name. + * + * @method match + * @param {String} name Name of format to match. + * @param {Object} vars Optional list of variables to replace before checking it. + * @param {Node} node Optional node to check. + * @return {boolean} true/false if the specified selection/node matches the format. + */ + function match(name, vars, node) { + var startNode; + + function matchParents(node) { + var root = dom.getRoot(); + + if (node === root) { + return false; + } + + // Find first node with similar format settings + node = dom.getParent(node, function(node) { + return node.parentNode === root || !!matchNode(node, name, vars, true); + }); + + // Do an exact check on the similar format element + return matchNode(node, name, vars); + } + + // Check specified node + if (node) { + return matchParents(node); + } + + // Check selected node + node = selection.getNode(); + if (matchParents(node)) { + return TRUE; + } + + // Check start node if it's different + startNode = selection.getStart(); + if (startNode != node) { + if (matchParents(startNode)) { + return TRUE; + } + } + + return FALSE; + } + + /** + * Matches the current selection against the array of formats and returns a new array with matching formats. + * + * @method matchAll + * @param {Array} names Name of format to match. + * @param {Object} vars Optional list of variables to replace before checking it. + * @return {Array} Array with matched formats. + */ + function matchAll(names, vars) { + var startElement, matchedFormatNames = [], checkedMap = {}; + + // Check start of selection for formats + startElement = selection.getStart(); + dom.getParent(startElement, function(node) { + var i, name; + + for (i = 0; i < names.length; i++) { + name = names[i]; + + if (!checkedMap[name] && matchNode(node, name, vars)) { + checkedMap[name] = true; + matchedFormatNames.push(name); + } + } + }, dom.getRoot()); + + return matchedFormatNames; + } + + /** + * Returns true/false if the specified format can be applied to the current selection or not. It + * will currently only check the state for selector formats, it returns true on all other format types. + * + * @method canApply + * @param {String} name Name of format to check. + * @return {boolean} true/false if the specified format can be applied to the current selection/node. + */ + function canApply(name) { + var formatList = get(name), startNode, parents, i, x, selector; + + if (formatList) { + startNode = selection.getStart(); + parents = getParents(startNode); + + for (x = formatList.length - 1; x >= 0; x--) { + selector = formatList[x].selector; + + // Format is not selector based then always return TRUE + // Is it has a defaultBlock then it's likely it can be applied for example align on a non block element line + if (!selector || formatList[x].defaultBlock) { + return TRUE; + } + + for (i = parents.length - 1; i >= 0; i--) { + if (dom.is(parents[i], selector)) { + return TRUE; + } + } + } + } + + return FALSE; + } + + /** + * Executes the specified callback when the current selection matches the formats or not. + * + * @method formatChanged + * @param {String} formats Comma separated list of formats to check for. + * @param {function} callback Callback with state and args when the format is changed/toggled on/off. + * @param {Boolean} similar True/false state if the match should handle similar or exact formats. + */ + function formatChanged(formats, callback, similar) { + var currentFormats; + + // Setup format node change logic + if (!formatChangeData) { + formatChangeData = {}; + currentFormats = {}; + + ed.on('NodeChange', function(e) { + var parents = getParents(e.element), matchedFormats = {}; + + // Check for new formats + each(formatChangeData, function(callbacks, format) { + each(parents, function(node) { + if (matchNode(node, format, {}, callbacks.similar)) { + if (!currentFormats[format]) { + // Execute callbacks + each(callbacks, function(callback) { + callback(true, {node: node, format: format, parents: parents}); + }); + + currentFormats[format] = callbacks; + } + + matchedFormats[format] = callbacks; + return false; + } + }); + }); + + // Check if current formats still match + each(currentFormats, function(callbacks, format) { + if (!matchedFormats[format]) { + delete currentFormats[format]; + + each(callbacks, function(callback) { + callback(false, {node: e.element, format: format, parents: parents}); + }); + } + }); + }); + } + + // Add format listeners + each(formats.split(','), function(format) { + if (!formatChangeData[format]) { + formatChangeData[format] = []; + formatChangeData[format].similar = similar; + } + + formatChangeData[format].push(callback); + }); + + return this; + } + + // Expose to public + extend(this, { + get: get, + register: register, + apply: apply, + remove: remove, + toggle: toggle, + match: match, + matchAll: matchAll, + matchNode: matchNode, + canApply: canApply, + formatChanged: formatChanged + }); + + // Initialize + defaultFormats(); + addKeyboardShortcuts(); + ed.on('BeforeGetContent', function() { + if (markCaretContainersBogus) { + markCaretContainersBogus(); + } + }); + ed.on('mouseup keydown', function(e) { + if (disableCaretContainer) { + disableCaretContainer(e); + } + }); + + // Private functions + + /** + * Checks if the specified nodes name matches the format inline/block or selector. + * + * @private + * @param {Node} node Node to match against the specified format. + * @param {Object} format Format object o match with. + * @return {boolean} true/false if the format matches. + */ + function matchName(node, format) { + // Check for inline match + if (isEq(node, format.inline)) { + return TRUE; + } + + // Check for block match + if (isEq(node, format.block)) { + return TRUE; + } + + // Check for selector match + if (format.selector) { + return node.nodeType == 1 && dom.is(node, format.selector); + } + } + + /** + * Compares two string/nodes regardless of their case. + * + * @private + * @param {String/Node} Node or string to compare. + * @param {String/Node} Node or string to compare. + * @return {boolean} True/false if they match. + */ + function isEq(str1, str2) { + str1 = str1 || ''; + str2 = str2 || ''; + + str1 = '' + (str1.nodeName || str1); + str2 = '' + (str2.nodeName || str2); + + return str1.toLowerCase() == str2.toLowerCase(); + } + + /** + * Returns the style by name on the specified node. This method modifies the style + * contents to make it more easy to match. This will resolve a few browser issues. + * + * @private + * @param {Node} node to get style from. + * @param {String} name Style name to get. + * @return {String} Style item value. + */ + function getStyle(node, name) { + return normalizeStyleValue(dom.getStyle(node, name), name); + } + + /** + * Normalize style value by name. This method modifies the style contents + * to make it more easy to match. This will resolve a few browser issues. + * + * @private + * @param {Node} node to get style from. + * @param {String} name Style name to get. + * @return {String} Style item value. + */ + function normalizeStyleValue(value, name) { + // Force the format to hex + if (name == 'color' || name == 'backgroundColor') { + value = dom.toHex(value); + } + + // Opera will return bold as 700 + if (name == 'fontWeight' && value == 700) { + value = 'bold'; + } + + // Normalize fontFamily so "'Font name', Font" becomes: "Font name,Font" + if (name == 'fontFamily') { + value = value.replace(/[\'\"]/g, '').replace(/,\s+/g, ','); + } + + return '' + value; + } + + /** + * Replaces variables in the value. The variable format is %var. + * + * @private + * @param {String} value Value to replace variables in. + * @param {Object} vars Name/value array with variables to replace. + * @return {String} New value with replaced variables. + */ + function replaceVars(value, vars) { + if (typeof(value) != "string") { + value = value(vars); + } else if (vars) { + value = value.replace(/%(\w+)/g, function(str, name) { + return vars[name] || str; + }); + } + + return value; + } + + function isWhiteSpaceNode(node) { + return node && node.nodeType === 3 && /^([\t \r\n]+|)$/.test(node.nodeValue); + } + + function wrap(node, name, attrs) { + var wrapper = dom.create(name, attrs); + + node.parentNode.insertBefore(wrapper, node); + wrapper.appendChild(node); + + return wrapper; + } + + /** + * Expands the specified range like object to depending on format. + * + * For example on block formats it will move the start/end position + * to the beginning of the current block. + * + * @private + * @param {Object} rng Range like object. + * @param {Array} formats Array with formats to expand by. + * @return {Object} Expanded range like object. + */ + function expandRng(rng, format, remove) { + var lastIdx, leaf, endPoint, + startContainer = rng.startContainer, + startOffset = rng.startOffset, + endContainer = rng.endContainer, + endOffset = rng.endOffset; + + // This function walks up the tree if there is no siblings before/after the node + function findParentContainer(start) { + var container, parent, sibling, siblingName, root; + + container = parent = start ? startContainer : endContainer; + siblingName = start ? 'previousSibling' : 'nextSibling'; + root = dom.getRoot(); + + function isBogusBr(node) { + return node.nodeName == "BR" && node.getAttribute('data-mce-bogus') && !node.nextSibling; + } + + // If it's a text node and the offset is inside the text + if (container.nodeType == 3 && !isWhiteSpaceNode(container)) { + if (start ? startOffset > 0 : endOffset < container.nodeValue.length) { + return container; + } + } + + /*eslint no-constant-condition:0 */ + while (true) { + // Stop expanding on block elements + if (!format[0].block_expand && isBlock(parent)) { + return parent; + } + + // Walk left/right + for (sibling = parent[siblingName]; sibling; sibling = sibling[siblingName]) { + if (!isBookmarkNode(sibling) && !isWhiteSpaceNode(sibling) && !isBogusBr(sibling)) { + return parent; + } + } + + // Check if we can move up are we at root level or body level + if (parent.parentNode == root) { + container = parent; + break; + } + + parent = parent.parentNode; + } + + return container; + } + + // This function walks down the tree to find the leaf at the selection. + // The offset is also returned as if node initially a leaf, the offset may be in the middle of the text node. + function findLeaf(node, offset) { + if (offset === undef) { + offset = node.nodeType === 3 ? node.length : node.childNodes.length; + } + + while (node && node.hasChildNodes()) { + node = node.childNodes[offset]; + if (node) { + offset = node.nodeType === 3 ? node.length : node.childNodes.length; + } + } + return { node: node, offset: offset }; + } + + // If index based start position then resolve it + if (startContainer.nodeType == 1 && startContainer.hasChildNodes()) { + lastIdx = startContainer.childNodes.length - 1; + startContainer = startContainer.childNodes[startOffset > lastIdx ? lastIdx : startOffset]; + + if (startContainer.nodeType == 3) { + startOffset = 0; + } + } + + // If index based end position then resolve it + if (endContainer.nodeType == 1 && endContainer.hasChildNodes()) { + lastIdx = endContainer.childNodes.length - 1; + endContainer = endContainer.childNodes[endOffset > lastIdx ? lastIdx : endOffset - 1]; + + if (endContainer.nodeType == 3) { + endOffset = endContainer.nodeValue.length; + } + } + + // Expands the node to the closes contentEditable false element if it exists + function findParentContentEditable(node) { + var parent = node; + + while (parent) { + if (parent.nodeType === 1 && getContentEditable(parent)) { + return getContentEditable(parent) === "false" ? parent : node; + } + + parent = parent.parentNode; + } + + return node; + } + + function findWordEndPoint(container, offset, start) { + var walker, node, pos, lastTextNode; + + function findSpace(node, offset) { + var pos, pos2, str = node.nodeValue; + + if (typeof(offset) == "undefined") { + offset = start ? str.length : 0; + } + + if (start) { + pos = str.lastIndexOf(' ', offset); + pos2 = str.lastIndexOf('\u00a0', offset); + pos = pos > pos2 ? pos : pos2; + + // Include the space on remove to avoid tag soup + if (pos !== -1 && !remove) { + pos++; + } + } else { + pos = str.indexOf(' ', offset); + pos2 = str.indexOf('\u00a0', offset); + pos = pos !== -1 && (pos2 === -1 || pos < pos2) ? pos : pos2; + } + + return pos; + } + + if (container.nodeType === 3) { + pos = findSpace(container, offset); + + if (pos !== -1) { + return {container: container, offset: pos}; + } + + lastTextNode = container; + } + + // Walk the nodes inside the block + walker = new TreeWalker(container, dom.getParent(container, isBlock) || ed.getBody()); + while ((node = walker[start ? 'prev' : 'next']())) { + if (node.nodeType === 3) { + lastTextNode = node; + pos = findSpace(node); + + if (pos !== -1) { + return {container: node, offset: pos}; + } + } else if (isBlock(node)) { + break; + } + } + + if (lastTextNode) { + if (start) { + offset = 0; + } else { + offset = lastTextNode.length; + } + + return {container: lastTextNode, offset: offset}; + } + } + + function findSelectorEndPoint(container, sibling_name) { + var parents, i, y, curFormat; + + if (container.nodeType == 3 && container.nodeValue.length === 0 && container[sibling_name]) { + container = container[sibling_name]; + } + + parents = getParents(container); + for (i = 0; i < parents.length; i++) { + for (y = 0; y < format.length; y++) { + curFormat = format[y]; + + // If collapsed state is set then skip formats that doesn't match that + if ("collapsed" in curFormat && curFormat.collapsed !== rng.collapsed) { + continue; + } + + if (dom.is(parents[i], curFormat.selector)) { + return parents[i]; + } + } + } + + return container; + } + + function findBlockEndPoint(container, sibling_name) { + var node, root = dom.getRoot(); + + // Expand to block of similar type + if (!format[0].wrapper) { + node = dom.getParent(container, format[0].block, root); + } + + // Expand to first wrappable block element or any block element + if (!node) { + node = dom.getParent(container.nodeType == 3 ? container.parentNode : container, function(node) { + // Fixes #6183 where it would expand to editable parent element in inline mode + return node != root && isTextBlock(node); + }); + } + + // Exclude inner lists from wrapping + if (node && format[0].wrapper) { + node = getParents(node, 'ul,ol').reverse()[0] || node; + } + + // Didn't find a block element look for first/last wrappable element + if (!node) { + node = container; + + while (node[sibling_name] && !isBlock(node[sibling_name])) { + node = node[sibling_name]; + + // Break on BR but include it will be removed later on + // we can't remove it now since we need to check if it can be wrapped + if (isEq(node, 'br')) { + break; + } + } + } + + return node || container; + } + + // Expand to closest contentEditable element + startContainer = findParentContentEditable(startContainer); + endContainer = findParentContentEditable(endContainer); + + // Exclude bookmark nodes if possible + if (isBookmarkNode(startContainer.parentNode) || isBookmarkNode(startContainer)) { + startContainer = isBookmarkNode(startContainer) ? startContainer : startContainer.parentNode; + startContainer = startContainer.nextSibling || startContainer; + + if (startContainer.nodeType == 3) { + startOffset = 0; + } + } + + if (isBookmarkNode(endContainer.parentNode) || isBookmarkNode(endContainer)) { + endContainer = isBookmarkNode(endContainer) ? endContainer : endContainer.parentNode; + endContainer = endContainer.previousSibling || endContainer; + + if (endContainer.nodeType == 3) { + endOffset = endContainer.length; + } + } + + if (format[0].inline) { + if (rng.collapsed) { + // Expand left to closest word boundary + endPoint = findWordEndPoint(startContainer, startOffset, true); + if (endPoint) { + startContainer = endPoint.container; + startOffset = endPoint.offset; + } + + // Expand right to closest word boundary + endPoint = findWordEndPoint(endContainer, endOffset); + if (endPoint) { + endContainer = endPoint.container; + endOffset = endPoint.offset; + } + } + + // Avoid applying formatting to a trailing space. + leaf = findLeaf(endContainer, endOffset); + if (leaf.node) { + while (leaf.node && leaf.offset === 0 && leaf.node.previousSibling) { + leaf = findLeaf(leaf.node.previousSibling); + } + + if (leaf.node && leaf.offset > 0 && leaf.node.nodeType === 3 && + leaf.node.nodeValue.charAt(leaf.offset - 1) === ' ') { + + if (leaf.offset > 1) { + endContainer = leaf.node; + endContainer.splitText(leaf.offset - 1); + } + } + } + } + + // Move start/end point up the tree if the leaves are sharp and if we are in different containers + // Example * becomes !: !<p><b><i>*text</i><i>text*</i></b></p>! + // This will reduce the number of wrapper elements that needs to be created + // Move start point up the tree + if (format[0].inline || format[0].block_expand) { + if (!format[0].inline || (startContainer.nodeType != 3 || startOffset === 0)) { + startContainer = findParentContainer(true); + } + + if (!format[0].inline || (endContainer.nodeType != 3 || endOffset === endContainer.nodeValue.length)) { + endContainer = findParentContainer(); + } + } + + // Expand start/end container to matching selector + if (format[0].selector && format[0].expand !== FALSE && !format[0].inline) { + // Find new startContainer/endContainer if there is better one + startContainer = findSelectorEndPoint(startContainer, 'previousSibling'); + endContainer = findSelectorEndPoint(endContainer, 'nextSibling'); + } + + // Expand start/end container to matching block element or text node + if (format[0].block || format[0].selector) { + // Find new startContainer/endContainer if there is better one + startContainer = findBlockEndPoint(startContainer, 'previousSibling'); + endContainer = findBlockEndPoint(endContainer, 'nextSibling'); + + // Non block element then try to expand up the leaf + if (format[0].block) { + if (!isBlock(startContainer)) { + startContainer = findParentContainer(true); + } + + if (!isBlock(endContainer)) { + endContainer = findParentContainer(); + } + } + } + + // Setup index for startContainer + if (startContainer.nodeType == 1) { + startOffset = nodeIndex(startContainer); + startContainer = startContainer.parentNode; + } + + // Setup index for endContainer + if (endContainer.nodeType == 1) { + endOffset = nodeIndex(endContainer) + 1; + endContainer = endContainer.parentNode; + } + + // Return new range like object + return { + startContainer: startContainer, + startOffset: startOffset, + endContainer: endContainer, + endOffset: endOffset + }; + } + + /** + * Removes the specified format for the specified node. It will also remove the node if it doesn't have + * any attributes if the format specifies it to do so. + * + * @private + * @param {Object} format Format object with items to remove from node. + * @param {Object} vars Name/value object with variables to apply to format. + * @param {Node} node Node to remove the format styles on. + * @param {Node} compare_node Optional compare node, if specified the styles will be compared to that node. + * @return {Boolean} True/false if the node was removed or not. + */ + function removeFormat(format, vars, node, compare_node) { + var i, attrs, stylesModified; + + // Check if node matches format + if (!matchName(node, format)) { + return FALSE; + } + + // Should we compare with format attribs and styles + if (format.remove != 'all') { + // Remove styles + each(format.styles, function(value, name) { + value = normalizeStyleValue(replaceVars(value, vars), name); + + // Indexed array + if (typeof(name) === 'number') { + name = value; + compare_node = 0; + } + + if (!compare_node || isEq(getStyle(compare_node, name), value)) { + dom.setStyle(node, name, ''); + } + + stylesModified = 1; + }); + + // Remove style attribute if it's empty + if (stylesModified && dom.getAttrib(node, 'style') === '') { + node.removeAttribute('style'); + node.removeAttribute('data-mce-style'); + } + + // Remove attributes + each(format.attributes, function(value, name) { + var valueOut; + + value = replaceVars(value, vars); + + // Indexed array + if (typeof(name) === 'number') { + name = value; + compare_node = 0; + } + + if (!compare_node || isEq(dom.getAttrib(compare_node, name), value)) { + // Keep internal classes + if (name == 'class') { + value = dom.getAttrib(node, name); + if (value) { + // Build new class value where everything is removed except the internal prefixed classes + valueOut = ''; + each(value.split(/\s+/), function(cls) { + if (/mce\w+/.test(cls)) { + valueOut += (valueOut ? ' ' : '') + cls; + } + }); + + // We got some internal classes left + if (valueOut) { + dom.setAttrib(node, name, valueOut); + return; + } + } + } + + // IE6 has a bug where the attribute doesn't get removed correctly + if (name == "class") { + node.removeAttribute('className'); + } + + // Remove mce prefixed attributes + if (MCE_ATTR_RE.test(name)) { + node.removeAttribute('data-mce-' + name); + } + + node.removeAttribute(name); + } + }); + + // Remove classes + each(format.classes, function(value) { + value = replaceVars(value, vars); + + if (!compare_node || dom.hasClass(compare_node, value)) { + dom.removeClass(node, value); + } + }); + + // Check for non internal attributes + attrs = dom.getAttribs(node); + for (i = 0; i < attrs.length; i++) { + if (attrs[i].nodeName.indexOf('_') !== 0) { + return FALSE; + } + } + } + + // Remove the inline child if it's empty for example <b> or <span> + if (format.remove != 'none') { + removeNode(node, format); + return TRUE; + } + } + + /** + * Removes the node and wrap it's children in paragraphs before doing so or + * appends BR elements to the beginning/end of the block element if forcedRootBlocks is disabled. + * + * If the div in the node below gets removed: + * text<div>text</div>text + * + * Output becomes: + * text<div><br />text<br /></div>text + * + * So when the div is removed the result is: + * text<br />text<br />text + * + * @private + * @param {Node} node Node to remove + apply BR/P elements to. + * @param {Object} format Format rule. + * @return {Node} Input node. + */ + function removeNode(node, format) { + var parentNode = node.parentNode, rootBlockElm; + + function find(node, next, inc) { + node = getNonWhiteSpaceSibling(node, next, inc); + + return !node || (node.nodeName == 'BR' || isBlock(node)); + } + + if (format.block) { + if (!forcedRootBlock) { + // Append BR elements if needed before we remove the block + if (isBlock(node) && !isBlock(parentNode)) { + if (!find(node, FALSE) && !find(node.firstChild, TRUE, 1)) { + node.insertBefore(dom.create('br'), node.firstChild); + } + + if (!find(node, TRUE) && !find(node.lastChild, FALSE, 1)) { + node.appendChild(dom.create('br')); + } + } + } else { + // Wrap the block in a forcedRootBlock if we are at the root of document + if (parentNode == dom.getRoot()) { + if (!format.list_block || !isEq(node, format.list_block)) { + each(grep(node.childNodes), function(node) { + if (isValid(forcedRootBlock, node.nodeName.toLowerCase())) { + if (!rootBlockElm) { + rootBlockElm = wrap(node, forcedRootBlock); + dom.setAttribs(rootBlockElm, ed.settings.forced_root_block_attrs); + } else { + rootBlockElm.appendChild(node); + } + } else { + rootBlockElm = 0; + } + }); + } + } + } + } + + // Never remove nodes that isn't the specified inline element if a selector is specified too + if (format.selector && format.inline && !isEq(format.inline, node)) { + return; + } + + dom.remove(node, 1); + } + + /** + * Returns the next/previous non whitespace node. + * + * @private + * @param {Node} node Node to start at. + * @param {boolean} next (Optional) Include next or previous node defaults to previous. + * @param {boolean} inc (Optional) Include the current node in checking. Defaults to false. + * @return {Node} Next or previous node or undefined if it wasn't found. + */ + function getNonWhiteSpaceSibling(node, next, inc) { + if (node) { + next = next ? 'nextSibling' : 'previousSibling'; + + for (node = inc ? node : node[next]; node; node = node[next]) { + if (node.nodeType == 1 || !isWhiteSpaceNode(node)) { + return node; + } + } + } + } + + /** + * Checks if the specified node is a bookmark node or not. + * + * @private + * @param {Node} node Node to check if it's a bookmark node or not. + * @return {Boolean} true/false if the node is a bookmark node. + */ + function isBookmarkNode(node) { + return node && node.nodeType == 1 && node.getAttribute('data-mce-type') == 'bookmark'; + } + + /** + * Merges the next/previous sibling element if they match. + * + * @private + * @param {Node} prev Previous node to compare/merge. + * @param {Node} next Next node to compare/merge. + * @return {Node} Next node if we didn't merge and prev node if we did. + */ + function mergeSiblings(prev, next) { + var sibling, tmpSibling; + + /** + * Compares two nodes and checks if it's attributes and styles matches. + * This doesn't compare classes as items since their order is significant. + * + * @private + * @param {Node} node1 First node to compare with. + * @param {Node} node2 Second node to compare with. + * @return {boolean} True/false if the nodes are the same or not. + */ + function compareElements(node1, node2) { + // Not the same name + if (node1.nodeName != node2.nodeName) { + return FALSE; + } + + /** + * Returns all the nodes attributes excluding internal ones, styles and classes. + * + * @private + * @param {Node} node Node to get attributes from. + * @return {Object} Name/value object with attributes and attribute values. + */ + function getAttribs(node) { + var attribs = {}; + + each(dom.getAttribs(node), function(attr) { + var name = attr.nodeName.toLowerCase(); + + // Don't compare internal attributes or style + if (name.indexOf('_') !== 0 && name !== 'style' && name !== 'data-mce-style') { + attribs[name] = dom.getAttrib(node, name); + } + }); + + return attribs; + } + + /** + * Compares two objects checks if it's key + value exists in the other one. + * + * @private + * @param {Object} obj1 First object to compare. + * @param {Object} obj2 Second object to compare. + * @return {boolean} True/false if the objects matches or not. + */ + function compareObjects(obj1, obj2) { + var value, name; + + for (name in obj1) { + // Obj1 has item obj2 doesn't have + if (obj1.hasOwnProperty(name)) { + value = obj2[name]; + + // Obj2 doesn't have obj1 item + if (value === undef) { + return FALSE; + } + + // Obj2 item has a different value + if (obj1[name] != value) { + return FALSE; + } + + // Delete similar value + delete obj2[name]; + } + } + + // Check if obj 2 has something obj 1 doesn't have + for (name in obj2) { + // Obj2 has item obj1 doesn't have + if (obj2.hasOwnProperty(name)) { + return FALSE; + } + } + + return TRUE; + } + + // Attribs are not the same + if (!compareObjects(getAttribs(node1), getAttribs(node2))) { + return FALSE; + } + + // Styles are not the same + if (!compareObjects(dom.parseStyle(dom.getAttrib(node1, 'style')), dom.parseStyle(dom.getAttrib(node2, 'style')))) { + return FALSE; + } + + return !isBookmarkNode(node1) && !isBookmarkNode(node2); + } + + function findElementSibling(node, sibling_name) { + for (sibling = node; sibling; sibling = sibling[sibling_name]) { + if (sibling.nodeType == 3 && sibling.nodeValue.length !== 0) { + return node; + } + + if (sibling.nodeType == 1 && !isBookmarkNode(sibling)) { + return sibling; + } + } + + return node; + } + + // Check if next/prev exists and that they are elements + if (prev && next) { + // If previous sibling is empty then jump over it + prev = findElementSibling(prev, 'previousSibling'); + next = findElementSibling(next, 'nextSibling'); + + // Compare next and previous nodes + if (compareElements(prev, next)) { + // Append nodes between + for (sibling = prev.nextSibling; sibling && sibling != next;) { + tmpSibling = sibling; + sibling = sibling.nextSibling; + prev.appendChild(tmpSibling); + } + + // Remove next node + dom.remove(next); + + // Move children into prev node + each(grep(next.childNodes), function(node) { + prev.appendChild(node); + }); + + return prev; + } + } + + return next; + } + + function getContainer(rng, start) { + var container, offset, lastIdx; + + container = rng[start ? 'startContainer' : 'endContainer']; + offset = rng[start ? 'startOffset' : 'endOffset']; + + if (container.nodeType == 1) { + lastIdx = container.childNodes.length - 1; + + if (!start && offset) { + offset--; + } + + container = container.childNodes[offset > lastIdx ? lastIdx : offset]; + } + + // If start text node is excluded then walk to the next node + if (container.nodeType === 3 && start && offset >= container.nodeValue.length) { + container = new TreeWalker(container, ed.getBody()).next() || container; + } + + // If end text node is excluded then walk to the previous node + if (container.nodeType === 3 && !start && offset === 0) { + container = new TreeWalker(container, ed.getBody()).prev() || container; + } + + return container; + } + + function performCaretAction(type, name, vars) { + var caretContainerId = '_mce_caret', debug = ed.settings.caret_debug; + + // Creates a caret container bogus element + function createCaretContainer(fill) { + var caretContainer = dom.create('span', {id: caretContainerId, 'data-mce-bogus': true, style: debug ? 'color:red' : ''}); + + if (fill) { + caretContainer.appendChild(ed.getDoc().createTextNode(INVISIBLE_CHAR)); + } + + return caretContainer; + } + + function isCaretContainerEmpty(node, nodes) { + while (node) { + if ((node.nodeType === 3 && node.nodeValue !== INVISIBLE_CHAR) || node.childNodes.length > 1) { + return false; + } + + // Collect nodes + if (nodes && node.nodeType === 1) { + nodes.push(node); + } + + node = node.firstChild; + } + + return true; + } + + // Returns any parent caret container element + function getParentCaretContainer(node) { + while (node) { + if (node.id === caretContainerId) { + return node; + } + + node = node.parentNode; + } + } + + // Finds the first text node in the specified node + function findFirstTextNode(node) { + var walker; + + if (node) { + walker = new TreeWalker(node, node); + + for (node = walker.current(); node; node = walker.next()) { + if (node.nodeType === 3) { + return node; + } + } + } + } + + // Removes the caret container for the specified node or all on the current document + function removeCaretContainer(node, move_caret) { + var child, rng; + + if (!node) { + node = getParentCaretContainer(selection.getStart()); + + if (!node) { + while ((node = dom.get(caretContainerId))) { + removeCaretContainer(node, false); + } + } + } else { + rng = selection.getRng(true); + + if (isCaretContainerEmpty(node)) { + if (move_caret !== false) { + rng.setStartBefore(node); + rng.setEndBefore(node); + } + + dom.remove(node); + } else { + child = findFirstTextNode(node); + + if (child.nodeValue.charAt(0) === INVISIBLE_CHAR) { + child = child.deleteData(0, 1); + } + + dom.remove(node, 1); + } + + selection.setRng(rng); + } + } + + // Applies formatting to the caret postion + function applyCaretFormat() { + var rng, caretContainer, textNode, offset, bookmark, container, text; + + rng = selection.getRng(true); + offset = rng.startOffset; + container = rng.startContainer; + text = container.nodeValue; + + caretContainer = getParentCaretContainer(selection.getStart()); + if (caretContainer) { + textNode = findFirstTextNode(caretContainer); + } + + // Expand to word is caret is in the middle of a text node and the char before/after is a alpha numeric character + if (text && offset > 0 && offset < text.length && /\w/.test(text.charAt(offset)) && /\w/.test(text.charAt(offset - 1))) { + // Get bookmark of caret position + bookmark = selection.getBookmark(); + + // Collapse bookmark range (WebKit) + rng.collapse(true); + + // Expand the range to the closest word and split it at those points + rng = expandRng(rng, get(name)); + rng = rangeUtils.split(rng); + + // Apply the format to the range + apply(name, vars, rng); + + // Move selection back to caret position + selection.moveToBookmark(bookmark); + } else { + if (!caretContainer || textNode.nodeValue !== INVISIBLE_CHAR) { + caretContainer = createCaretContainer(true); + textNode = caretContainer.firstChild; + + rng.insertNode(caretContainer); + offset = 1; + + apply(name, vars, caretContainer); + } else { + apply(name, vars, caretContainer); + } + + // Move selection to text node + selection.setCursorLocation(textNode, offset); + } + } + + function removeCaretFormat() { + var rng = selection.getRng(true), container, offset, bookmark, + hasContentAfter, node, formatNode, parents = [], i, caretContainer; + + container = rng.startContainer; + offset = rng.startOffset; + node = container; + + if (container.nodeType == 3) { + if (offset != container.nodeValue.length || container.nodeValue === INVISIBLE_CHAR) { + hasContentAfter = true; + } + + node = node.parentNode; + } + + while (node) { + if (matchNode(node, name, vars)) { + formatNode = node; + break; + } + + if (node.nextSibling) { + hasContentAfter = true; + } + + parents.push(node); + node = node.parentNode; + } + + // Node doesn't have the specified format + if (!formatNode) { + return; + } + + // Is there contents after the caret then remove the format on the element + if (hasContentAfter) { + // Get bookmark of caret position + bookmark = selection.getBookmark(); + + // Collapse bookmark range (WebKit) + rng.collapse(true); + + // Expand the range to the closest word and split it at those points + rng = expandRng(rng, get(name), true); + rng = rangeUtils.split(rng); + + // Remove the format from the range + remove(name, vars, rng); + + // Move selection back to caret position + selection.moveToBookmark(bookmark); + } else { + caretContainer = createCaretContainer(); + + node = caretContainer; + for (i = parents.length - 1; i >= 0; i--) { + node.appendChild(dom.clone(parents[i], false)); + node = node.firstChild; + } + + // Insert invisible character into inner most format element + node.appendChild(dom.doc.createTextNode(INVISIBLE_CHAR)); + node = node.firstChild; + + var block = dom.getParent(formatNode, isTextBlock); + + if (block && dom.isEmpty(block)) { + // Replace formatNode with caretContainer when removing format from empty block like <p><b>|</b></p> + formatNode.parentNode.replaceChild(caretContainer, formatNode); + } else { + // Insert caret container after the formated node + dom.insertAfter(caretContainer, formatNode); + } + + // Move selection to text node + selection.setCursorLocation(node, 1); + + // If the formatNode is empty, we can remove it safely. + if (dom.isEmpty(formatNode)) { + dom.remove(formatNode); + } + } + } + + // Checks if the parent caret container node isn't empty if that is the case it + // will remove the bogus state on all children that isn't empty + function unmarkBogusCaretParents() { + var caretContainer; + + caretContainer = getParentCaretContainer(selection.getStart()); + if (caretContainer && !dom.isEmpty(caretContainer)) { + walk(caretContainer, function(node) { + if (node.nodeType == 1 && node.id !== caretContainerId && !dom.isEmpty(node)) { + dom.setAttrib(node, 'data-mce-bogus', null); + } + }, 'childNodes'); + } + } + + // Only bind the caret events once + if (!ed._hasCaretEvents) { + // Mark current caret container elements as bogus when getting the contents so we don't end up with empty elements + markCaretContainersBogus = function() { + var nodes = [], i; + + if (isCaretContainerEmpty(getParentCaretContainer(selection.getStart()), nodes)) { + // Mark children + i = nodes.length; + while (i--) { + dom.setAttrib(nodes[i], 'data-mce-bogus', '1'); + } + } + }; + + disableCaretContainer = function(e) { + var keyCode = e.keyCode; + + removeCaretContainer(); + + // Remove caret container on keydown and it's a backspace, enter or left/right arrow keys + if (keyCode == 8 || keyCode == 37 || keyCode == 39) { + removeCaretContainer(getParentCaretContainer(selection.getStart())); + } + + unmarkBogusCaretParents(); + }; + + // Remove bogus state if they got filled by contents using editor.selection.setContent + ed.on('SetContent', function(e) { + if (e.selection) { + unmarkBogusCaretParents(); + } + }); + ed._hasCaretEvents = true; + } + + // Do apply or remove caret format + if (type == "apply") { + applyCaretFormat(); + } else { + removeCaretFormat(); + } + } + + /** + * Moves the start to the first suitable text node. + */ + function moveStart(rng) { + var container = rng.startContainer, + offset = rng.startOffset, isAtEndOfText, + walker, node, nodes, tmpNode; + + // Convert text node into index if possible + if (container.nodeType == 3 && offset >= container.nodeValue.length) { + // Get the parent container location and walk from there + offset = nodeIndex(container); + container = container.parentNode; + isAtEndOfText = true; + } + + // Move startContainer/startOffset in to a suitable node + if (container.nodeType == 1) { + nodes = container.childNodes; + container = nodes[Math.min(offset, nodes.length - 1)]; + walker = new TreeWalker(container, dom.getParent(container, dom.isBlock)); + + // If offset is at end of the parent node walk to the next one + if (offset > nodes.length - 1 || isAtEndOfText) { + walker.next(); + } + + for (node = walker.current(); node; node = walker.next()) { + if (node.nodeType == 3 && !isWhiteSpaceNode(node)) { + // IE has a "neat" feature where it moves the start node into the closest element + // we can avoid this by inserting an element before it and then remove it after we set the selection + tmpNode = dom.create('a', null, INVISIBLE_CHAR); + node.parentNode.insertBefore(tmpNode, node); + + // Set selection and remove tmpNode + rng.setStart(node, 0); + selection.setRng(rng); + dom.remove(tmpNode); + + return; + } + } + } + } + }; +}); + +// Included from: js/tinymce/classes/UndoManager.js + +/** + * UndoManager.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles the undo/redo history levels for the editor. Since the build in undo/redo has major drawbacks a custom one was needed. + * + * @class tinymce.UndoManager + */ +define("tinymce/UndoManager", [ + "tinymce/Env", + "tinymce/util/Tools" +], function(Env, Tools) { + var trim = Tools.trim, trimContentRegExp; + + trimContentRegExp = new RegExp([ + '<span[^>]+data-mce-bogus[^>]+>[\u200B\uFEFF]+<\\/span>', // Trim bogus spans like caret containers + '<div[^>]+data-mce-bogus[^>]+><\\/div>', // Trim bogus divs like resize handles + '\\s?data-mce-selected="[^"]+"' // Trim temporaty data-mce prefixed attributes like data-mce-selected + ].join('|'), 'gi'); + + return function(editor) { + var self = this, index = 0, data = [], beforeBookmark, isFirstTypedCharacter, lock; + + // Returns a trimmed version of the current editor contents + function getContent() { + return trim(editor.getContent({format: 'raw', no_events: 1}).replace(trimContentRegExp, '')); + } + + function addNonTypingUndoLevel(e) { + self.typing = false; + self.add({}, e); + } + + // Add initial undo level when the editor is initialized + editor.on('init', function() { + self.add(); + }); + + // Get position before an execCommand is processed + editor.on('BeforeExecCommand', function(e) { + var cmd = e.command; + + if (cmd != 'Undo' && cmd != 'Redo' && cmd != 'mceRepaint') { + self.beforeChange(); + } + }); + + // Add undo level after an execCommand call was made + editor.on('ExecCommand', function(e) { + var cmd = e.command; + + if (cmd != 'Undo' && cmd != 'Redo' && cmd != 'mceRepaint') { + addNonTypingUndoLevel(e); + } + }); + + editor.on('ObjectResizeStart', function() { + self.beforeChange(); + }); + + editor.on('SaveContent ObjectResized blur', addNonTypingUndoLevel); + editor.dom.bind(editor.dom.getRoot(), 'dragend', addNonTypingUndoLevel); + + editor.on('KeyUp', function(e) { + var keyCode = e.keyCode; + + if ((keyCode >= 33 && keyCode <= 36) || (keyCode >= 37 && keyCode <= 40) || keyCode == 45 || keyCode == 13 || e.ctrlKey) { + addNonTypingUndoLevel(); + editor.nodeChanged(); + } + + if (keyCode == 46 || keyCode == 8 || (Env.mac && (keyCode == 91 || keyCode == 93))) { + editor.nodeChanged(); + } + + // Fire a TypingUndo event on the first character entered + if (isFirstTypedCharacter && self.typing) { + // Make the it dirty if the content was changed after typing the first character + if (!editor.isDirty()) { + editor.isNotDirty = !data[0] || getContent() == data[0].content; + + // Fire initial change event + if (!editor.isNotDirty) { + editor.fire('change', {level: data[0], lastLevel: null}); + } + } + + editor.fire('TypingUndo'); + isFirstTypedCharacter = false; + editor.nodeChanged(); + } + }); + + editor.on('KeyDown', function(e) { + var keyCode = e.keyCode; + + // Is caracter positon keys left,right,up,down,home,end,pgdown,pgup,enter + if ((keyCode >= 33 && keyCode <= 36) || (keyCode >= 37 && keyCode <= 40) || keyCode == 45) { + if (self.typing) { + addNonTypingUndoLevel(e); + } + + return; + } + + // If key isn't shift,ctrl,alt,capslock,metakey + if ((keyCode < 16 || keyCode > 20) && keyCode != 224 && keyCode != 91 && !self.typing) { + self.beforeChange(); + self.typing = true; + self.add({}, e); + isFirstTypedCharacter = true; + } + }); + + editor.on('MouseDown', function(e) { + if (self.typing) { + addNonTypingUndoLevel(e); + } + }); + + // Add keyboard shortcuts for undo/redo keys + editor.addShortcut('ctrl+z', '', 'Undo'); + editor.addShortcut('ctrl+y,ctrl+shift+z', '', 'Redo'); + + editor.on('AddUndo Undo Redo ClearUndos MouseUp', function(e) { + if (!e.isDefaultPrevented()) { + editor.nodeChanged(); + } + }); + + self = { + // Explose for debugging reasons + data: data, + + /** + * State if the user is currently typing or not. This will add a typing operation into one undo + * level instead of one new level for each keystroke. + * + * @field {Boolean} typing + */ + typing: false, + + /** + * Stores away a bookmark to be used when performing an undo action so that the selection is before + * the change has been made. + * + * @method beforeChange + */ + beforeChange: function() { + if (!lock) { + beforeBookmark = editor.selection.getBookmark(2, true); + } + }, + + /** + * Adds a new undo level/snapshot to the undo list. + * + * @method add + * @param {Object} level Optional undo level object to add. + * @param {DOMEvent} Event Optional event responsible for the creation of the undo level. + * @return {Object} Undo level that got added or null it a level wasn't needed. + */ + add: function(level, event) { + var i, settings = editor.settings, lastLevel; + + level = level || {}; + level.content = getContent(); + + if (lock || editor.removed) { + return null; + } + + if (editor.fire('BeforeAddUndo', {level: level, originalEvent: event}).isDefaultPrevented()) { + return null; + } + + // Add undo level if needed + lastLevel = data[index]; + if (lastLevel && lastLevel.content == level.content) { + return null; + } + + // Set before bookmark on previous level + if (data[index]) { + data[index].beforeBookmark = beforeBookmark; + } + + // Time to compress + if (settings.custom_undo_redo_levels) { + if (data.length > settings.custom_undo_redo_levels) { + for (i = 0; i < data.length - 1; i++) { + data[i] = data[i + 1]; + } + + data.length--; + index = data.length; + } + } + + // Get a non intrusive normalized bookmark + level.bookmark = editor.selection.getBookmark(2, true); + + // Crop array if needed + if (index < data.length - 1) { + data.length = index + 1; + } + + data.push(level); + index = data.length - 1; + + var args = {level: level, lastLevel: lastLevel, originalEvent: event}; + + editor.fire('AddUndo', args); + + if (index > 0) { + editor.isNotDirty = false; + editor.fire('change', args); + } + + return level; + }, + + /** + * Undoes the last action. + * + * @method undo + * @return {Object} Undo level or null if no undo was performed. + */ + undo: function() { + var level; + + if (self.typing) { + self.add(); + self.typing = false; + } + + if (index > 0) { + level = data[--index]; + + // Undo to first index then set dirty state to false + if (index === 0) { + editor.isNotDirty = true; + } + + editor.setContent(level.content, {format: 'raw'}); + editor.selection.moveToBookmark(level.beforeBookmark); + + editor.fire('undo', {level: level}); + } + + return level; + }, + + /** + * Redoes the last action. + * + * @method redo + * @return {Object} Redo level or null if no redo was performed. + */ + redo: function() { + var level; + + if (index < data.length - 1) { + level = data[++index]; + + editor.setContent(level.content, {format: 'raw'}); + editor.selection.moveToBookmark(level.bookmark); + + editor.fire('redo', {level: level}); + } + + return level; + }, + + /** + * Removes all undo levels. + * + * @method clear + */ + clear: function() { + data = []; + index = 0; + self.typing = false; + editor.fire('ClearUndos'); + }, + + /** + * Returns true/false if the undo manager has any undo levels. + * + * @method hasUndo + * @return {Boolean} true/false if the undo manager has any undo levels. + */ + hasUndo: function() { + // Has undo levels or typing and content isn't the same as the initial level + return index > 0 || (self.typing && data[0] && getContent() != data[0].content); + }, + + /** + * Returns true/false if the undo manager has any redo levels. + * + * @method hasRedo + * @return {Boolean} true/false if the undo manager has any redo levels. + */ + hasRedo: function() { + return index < data.length - 1 && !this.typing; + }, + + /** + * Executes the specified function in an undo transation. The selection + * before the modification will be stored to the undo stack and if the DOM changes + * it will add a new undo level. Any methods within the transation that adds undo levels will + * be ignored. So a transation can include calls to execCommand or editor.insertContent. + * + * @method transact + * @param {function} callback Function to execute dom manipulation logic in. + */ + transact: function(callback) { + self.beforeChange(); + + lock = true; + callback(); + lock = false; + + self.add(); + } + }; + + return self; + }; +}); + +// Included from: js/tinymce/classes/EnterKey.js + +/** + * EnterKey.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Contains logic for handling the enter key to split/generate block elements. + */ +define("tinymce/EnterKey", [ + "tinymce/dom/TreeWalker", + "tinymce/dom/RangeUtils", + "tinymce/Env" +], function(TreeWalker, RangeUtils, Env) { + var isIE = Env.ie && Env.ie < 11; + + return function(editor) { + var dom = editor.dom, selection = editor.selection, settings = editor.settings; + var undoManager = editor.undoManager, schema = editor.schema, nonEmptyElementsMap = schema.getNonEmptyElements(); + + function handleEnterKey(evt) { + var rng, tmpRng, editableRoot, container, offset, parentBlock, documentMode, shiftKey, + newBlock, fragment, containerBlock, parentBlockName, containerBlockName, newBlockName, isAfterLastNodeInContainer; + + // Returns true if the block can be split into two blocks or not + function canSplitBlock(node) { + return node && + dom.isBlock(node) && + !/^(TD|TH|CAPTION|FORM)$/.test(node.nodeName) && + !/^(fixed|absolute)/i.test(node.style.position) && + dom.getContentEditable(node) !== "true"; + } + + // Renders empty block on IE + function renderBlockOnIE(block) { + var oldRng; + + if (dom.isBlock(block)) { + oldRng = selection.getRng(); + block.appendChild(dom.create('span', null, '\u00a0')); + selection.select(block); + block.lastChild.outerHTML = ''; + selection.setRng(oldRng); + } + } + + // Remove the first empty inline element of the block so this: <p><b><em></em></b>x</p> becomes this: <p>x</p> + function trimInlineElementsOnLeftSideOfBlock(block) { + var node = block, firstChilds = [], i; + + // Find inner most first child ex: <p><i><b>*</b></i></p> + while ((node = node.firstChild)) { + if (dom.isBlock(node)) { + return; + } + + if (node.nodeType == 1 && !nonEmptyElementsMap[node.nodeName.toLowerCase()]) { + firstChilds.push(node); + } + } + + i = firstChilds.length; + while (i--) { + node = firstChilds[i]; + if (!node.hasChildNodes() || (node.firstChild == node.lastChild && node.firstChild.nodeValue === '')) { + dom.remove(node); + } else { + // Remove <a> </a> see #5381 + if (node.nodeName == "A" && (node.innerText || node.textContent) === ' ') { + dom.remove(node); + } + } + } + } + + // Moves the caret to a suitable position within the root for example in the first non + // pure whitespace text node or before an image + function moveToCaretPosition(root) { + var walker, node, rng, lastNode = root, tempElm; + + function firstNonWhiteSpaceNodeSibling(node) { + while (node) { + if (node.nodeType == 1 || (node.nodeType == 3 && node.data && /[\r\n\s]/.test(node.data))) { + return node; + } + + node = node.nextSibling; + } + } + + // Old IE versions doesn't properly render blocks with br elements in them + // For example <p><br></p> wont be rendered correctly in a contentEditable area + // until you remove the br producing <p></p> + if (Env.ie && Env.ie < 9 && parentBlock && parentBlock.firstChild) { + if (parentBlock.firstChild == parentBlock.lastChild && parentBlock.firstChild.tagName == 'BR') { + dom.remove(parentBlock.firstChild); + } + } + + if (root.nodeName == 'LI') { + var firstChild = firstNonWhiteSpaceNodeSibling(root.firstChild); + + if (firstChild && /^(UL|OL)$/.test(firstChild.nodeName)) { + root.insertBefore(dom.doc.createTextNode('\u00a0'), root.firstChild); + } + } + + rng = dom.createRng(); + + if (root.hasChildNodes()) { + walker = new TreeWalker(root, root); + + while ((node = walker.current())) { + if (node.nodeType == 3) { + rng.setStart(node, 0); + rng.setEnd(node, 0); + break; + } + + if (nonEmptyElementsMap[node.nodeName.toLowerCase()]) { + rng.setStartBefore(node); + rng.setEndBefore(node); + break; + } + + lastNode = node; + node = walker.next(); + } + + if (!node) { + rng.setStart(lastNode, 0); + rng.setEnd(lastNode, 0); + } + } else { + if (root.nodeName == 'BR') { + if (root.nextSibling && dom.isBlock(root.nextSibling)) { + // Trick on older IE versions to render the caret before the BR between two lists + if (!documentMode || documentMode < 9) { + tempElm = dom.create('br'); + root.parentNode.insertBefore(tempElm, root); + } + + rng.setStartBefore(root); + rng.setEndBefore(root); + } else { + rng.setStartAfter(root); + rng.setEndAfter(root); + } + } else { + rng.setStart(root, 0); + rng.setEnd(root, 0); + } + } + + selection.setRng(rng); + + // Remove tempElm created for old IE:s + dom.remove(tempElm); + selection.scrollIntoView(root); + } + + function setForcedBlockAttrs(node) { + var forcedRootBlockName = settings.forced_root_block; + + if (forcedRootBlockName && forcedRootBlockName.toLowerCase() === node.tagName.toLowerCase()) { + dom.setAttribs(node, settings.forced_root_block_attrs); + } + } + + // Creates a new block element by cloning the current one or creating a new one if the name is specified + // This function will also copy any text formatting from the parent block and add it to the new one + function createNewBlock(name) { + var node = container, block, clonedNode, caretNode; + + if (name || parentBlockName == "TABLE") { + block = dom.create(name || newBlockName); + setForcedBlockAttrs(block); + } else { + block = parentBlock.cloneNode(false); + } + + caretNode = block; + + // Clone any parent styles + if (settings.keep_styles !== false) { + do { + if (/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U|VAR|CITE|DFN|CODE|MARK|Q|SUP|SUB|SAMP)$/.test(node.nodeName)) { + // Never clone a caret containers + if (node.id == '_mce_caret') { + continue; + } + + clonedNode = node.cloneNode(false); + dom.setAttrib(clonedNode, 'id', ''); // Remove ID since it needs to be document unique + + if (block.hasChildNodes()) { + clonedNode.appendChild(block.firstChild); + block.appendChild(clonedNode); + } else { + caretNode = clonedNode; + block.appendChild(clonedNode); + } + } + } while ((node = node.parentNode)); + } + + // BR is needed in empty blocks on non IE browsers + if (!isIE) { + caretNode.innerHTML = '<br data-mce-bogus="1">'; + } + + return block; + } + + // Returns true/false if the caret is at the start/end of the parent block element + function isCaretAtStartOrEndOfBlock(start) { + var walker, node, name; + + // Caret is in the middle of a text node like "a|b" + if (container.nodeType == 3 && (start ? offset > 0 : offset < container.nodeValue.length)) { + return false; + } + + // If after the last element in block node edge case for #5091 + if (container.parentNode == parentBlock && isAfterLastNodeInContainer && !start) { + return true; + } + + // If the caret if before the first element in parentBlock + if (start && container.nodeType == 1 && container == parentBlock.firstChild) { + return true; + } + + // Caret can be before/after a table + if (container.nodeName === "TABLE" || (container.previousSibling && container.previousSibling.nodeName == "TABLE")) { + return (isAfterLastNodeInContainer && !start) || (!isAfterLastNodeInContainer && start); + } + + // Walk the DOM and look for text nodes or non empty elements + walker = new TreeWalker(container, parentBlock); + + // If caret is in beginning or end of a text block then jump to the next/previous node + if (container.nodeType == 3) { + if (start && offset === 0) { + walker.prev(); + } else if (!start && offset == container.nodeValue.length) { + walker.next(); + } + } + + while ((node = walker.current())) { + if (node.nodeType === 1) { + // Ignore bogus elements + if (!node.getAttribute('data-mce-bogus')) { + // Keep empty elements like <img /> <input /> but not trailing br:s like <p>text|<br></p> + name = node.nodeName.toLowerCase(); + if (nonEmptyElementsMap[name] && name !== 'br') { + return false; + } + } + } else if (node.nodeType === 3 && !/^[ \t\r\n]*$/.test(node.nodeValue)) { + return false; + } + + if (start) { + walker.prev(); + } else { + walker.next(); + } + } + + return true; + } + + // Wraps any text nodes or inline elements in the specified forced root block name + function wrapSelfAndSiblingsInDefaultBlock(container, offset) { + var newBlock, parentBlock, startNode, node, next, rootBlockName, blockName = newBlockName || 'P'; + + // Not in a block element or in a table cell or caption + parentBlock = dom.getParent(container, dom.isBlock); + rootBlockName = editor.getBody().nodeName.toLowerCase(); + if (!parentBlock || !canSplitBlock(parentBlock)) { + parentBlock = parentBlock || editableRoot; + + if (!parentBlock.hasChildNodes()) { + newBlock = dom.create(blockName); + setForcedBlockAttrs(newBlock); + parentBlock.appendChild(newBlock); + rng.setStart(newBlock, 0); + rng.setEnd(newBlock, 0); + return newBlock; + } + + // Find parent that is the first child of parentBlock + node = container; + while (node.parentNode != parentBlock) { + node = node.parentNode; + } + + // Loop left to find start node start wrapping at + while (node && !dom.isBlock(node)) { + startNode = node; + node = node.previousSibling; + } + + if (startNode && schema.isValidChild(rootBlockName, blockName.toLowerCase())) { + newBlock = dom.create(blockName); + setForcedBlockAttrs(newBlock); + startNode.parentNode.insertBefore(newBlock, startNode); + + // Start wrapping until we hit a block + node = startNode; + while (node && !dom.isBlock(node)) { + next = node.nextSibling; + newBlock.appendChild(node); + node = next; + } + + // Restore range to it's past location + rng.setStart(container, offset); + rng.setEnd(container, offset); + } + } + + return container; + } + + // Inserts a block or br before/after or in the middle of a split list of the LI is empty + function handleEmptyListItem() { + function isFirstOrLastLi(first) { + var node = containerBlock[first ? 'firstChild' : 'lastChild']; + + // Find first/last element since there might be whitespace there + while (node) { + if (node.nodeType == 1) { + break; + } + + node = node[first ? 'nextSibling' : 'previousSibling']; + } + + return node === parentBlock; + } + + function getContainerBlock() { + var containerBlockParent = containerBlock.parentNode; + + if (containerBlockParent.nodeName == 'LI') { + return containerBlockParent; + } + + return containerBlock; + } + + // Check if we are in an nested list + var containerBlockParentName = containerBlock.parentNode.nodeName; + if (/^(OL|UL|LI)$/.test(containerBlockParentName)) { + newBlockName = 'LI'; + } + + newBlock = newBlockName ? createNewBlock(newBlockName) : dom.create('BR'); + + if (isFirstOrLastLi(true) && isFirstOrLastLi()) { + if (containerBlockParentName == 'LI') { + // Nested list is inside a LI + dom.insertAfter(newBlock, getContainerBlock()); + } else { + // Is first and last list item then replace the OL/UL with a text block + dom.replace(newBlock, containerBlock); + } + } else if (isFirstOrLastLi(true)) { + if (containerBlockParentName == 'LI') { + // List nested in an LI then move the list to a new sibling LI + dom.insertAfter(newBlock, getContainerBlock()); + newBlock.appendChild(dom.doc.createTextNode(' ')); // Needed for IE so the caret can be placed + newBlock.appendChild(containerBlock); + } else { + // First LI in list then remove LI and add text block before list + containerBlock.parentNode.insertBefore(newBlock, containerBlock); + } + } else if (isFirstOrLastLi()) { + // Last LI in list then remove LI and add text block after list + dom.insertAfter(newBlock, getContainerBlock()); + renderBlockOnIE(newBlock); + } else { + // Middle LI in list the split the list and insert a text block in the middle + // Extract after fragment and insert it after the current block + containerBlock = getContainerBlock(); + tmpRng = rng.cloneRange(); + tmpRng.setStartAfter(parentBlock); + tmpRng.setEndAfter(containerBlock); + fragment = tmpRng.extractContents(); + + if (newBlockName == 'LI' && fragment.firstChild.nodeName == 'LI') { + newBlock = fragment.firstChild; + dom.insertAfter(fragment, containerBlock); + } else { + dom.insertAfter(fragment, containerBlock); + dom.insertAfter(newBlock, containerBlock); + } + } + + dom.remove(parentBlock); + moveToCaretPosition(newBlock); + undoManager.add(); + } + + // Walks the parent block to the right and look for BR elements + function hasRightSideContent() { + var walker = new TreeWalker(container, parentBlock), node; + + while ((node = walker.next())) { + if (nonEmptyElementsMap[node.nodeName.toLowerCase()] || node.length > 0) { + return true; + } + } + } + + // Inserts a BR element if the forced_root_block option is set to false or empty string + function insertBr() { + var brElm, extraBr, marker; + + if (container && container.nodeType == 3 && offset >= container.nodeValue.length) { + // Insert extra BR element at the end block elements + if (!isIE && !hasRightSideContent()) { + brElm = dom.create('br'); + rng.insertNode(brElm); + rng.setStartAfter(brElm); + rng.setEndAfter(brElm); + extraBr = true; + } + } + + brElm = dom.create('br'); + rng.insertNode(brElm); + + // Rendering modes below IE8 doesn't display BR elements in PRE unless we have a \n before it + if (isIE && parentBlockName == 'PRE' && (!documentMode || documentMode < 8)) { + brElm.parentNode.insertBefore(dom.doc.createTextNode('\r'), brElm); + } + + // Insert temp marker and scroll to that + marker = dom.create('span', {}, ' '); + brElm.parentNode.insertBefore(marker, brElm); + selection.scrollIntoView(marker); + dom.remove(marker); + + if (!extraBr) { + rng.setStartAfter(brElm); + rng.setEndAfter(brElm); + } else { + rng.setStartBefore(brElm); + rng.setEndBefore(brElm); + } + + selection.setRng(rng); + undoManager.add(); + } + + // Trims any linebreaks at the beginning of node user for example when pressing enter in a PRE element + function trimLeadingLineBreaks(node) { + do { + if (node.nodeType === 3) { + node.nodeValue = node.nodeValue.replace(/^[\r\n]+/, ''); + } + + node = node.firstChild; + } while (node); + } + + function getEditableRoot(node) { + var root = dom.getRoot(), parent, editableRoot; + + // Get all parents until we hit a non editable parent or the root + parent = node; + while (parent !== root && dom.getContentEditable(parent) !== "false") { + if (dom.getContentEditable(parent) === "true") { + editableRoot = parent; + } + + parent = parent.parentNode; + } + + return parent !== root ? editableRoot : root; + } + + // Adds a BR at the end of blocks that only contains an IMG or INPUT since + // these might be floated and then they won't expand the block + function addBrToBlockIfNeeded(block) { + var lastChild; + + // IE will render the blocks correctly other browsers needs a BR + if (!isIE) { + block.normalize(); // Remove empty text nodes that got left behind by the extract + + // Check if the block is empty or contains a floated last child + lastChild = block.lastChild; + if (!lastChild || (/^(left|right)$/gi.test(dom.getStyle(lastChild, 'float', true)))) { + dom.add(block, 'br'); + } + } + } + + rng = selection.getRng(true); + + // Event is blocked by some other handler for example the lists plugin + if (evt.isDefaultPrevented()) { + return; + } + + // Delete any selected contents + if (!rng.collapsed) { + editor.execCommand('Delete'); + return; + } + + // Setup range items and newBlockName + new RangeUtils(dom).normalize(rng); + container = rng.startContainer; + offset = rng.startOffset; + newBlockName = (settings.force_p_newlines ? 'p' : '') || settings.forced_root_block; + newBlockName = newBlockName ? newBlockName.toUpperCase() : ''; + documentMode = dom.doc.documentMode; + shiftKey = evt.shiftKey; + + // Resolve node index + if (container.nodeType == 1 && container.hasChildNodes()) { + isAfterLastNodeInContainer = offset > container.childNodes.length - 1; + + container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container; + if (isAfterLastNodeInContainer && container.nodeType == 3) { + offset = container.nodeValue.length; + } else { + offset = 0; + } + } + + // Get editable root node normaly the body element but sometimes a div or span + editableRoot = getEditableRoot(container); + + // If there is no editable root then enter is done inside a contentEditable false element + if (!editableRoot) { + return; + } + + undoManager.beforeChange(); + + // If editable root isn't block nor the root of the editor + if (!dom.isBlock(editableRoot) && editableRoot != dom.getRoot()) { + if (!newBlockName || shiftKey) { + insertBr(); + } + + return; + } + + // Wrap the current node and it's sibling in a default block if it's needed. + // for example this <td>text|<b>text2</b></td> will become this <td><p>text|<b>text2</p></b></td> + // This won't happen if root blocks are disabled or the shiftKey is pressed + if ((newBlockName && !shiftKey) || (!newBlockName && shiftKey)) { + container = wrapSelfAndSiblingsInDefaultBlock(container, offset); + } + + // Find parent block and setup empty block paddings + parentBlock = dom.getParent(container, dom.isBlock); + containerBlock = parentBlock ? dom.getParent(parentBlock.parentNode, dom.isBlock) : null; + + // Setup block names + parentBlockName = parentBlock ? parentBlock.nodeName.toUpperCase() : ''; // IE < 9 & HTML5 + containerBlockName = containerBlock ? containerBlock.nodeName.toUpperCase() : ''; // IE < 9 & HTML5 + + // Enter inside block contained within a LI then split or insert before/after LI + if (containerBlockName == 'LI' && !evt.ctrlKey) { + parentBlock = containerBlock; + parentBlockName = containerBlockName; + } + + // Handle enter in LI + if (parentBlockName == 'LI') { + if (!newBlockName && shiftKey) { + insertBr(); + return; + } + + // Handle enter inside an empty list item + if (dom.isEmpty(parentBlock)) { + handleEmptyListItem(); + return; + } + } + + // Don't split PRE tags but insert a BR instead easier when writing code samples etc + if (parentBlockName == 'PRE' && settings.br_in_pre !== false) { + if (!shiftKey) { + insertBr(); + return; + } + } else { + // If no root block is configured then insert a BR by default or if the shiftKey is pressed + if ((!newBlockName && !shiftKey && parentBlockName != 'LI') || (newBlockName && shiftKey)) { + insertBr(); + return; + } + } + + // If parent block is root then never insert new blocks + if (newBlockName && parentBlock === editor.getBody()) { + return; + } + + // Default block name if it's not configured + newBlockName = newBlockName || 'P'; + + // Insert new block before/after the parent block depending on caret location + if (isCaretAtStartOrEndOfBlock()) { + // If the caret is at the end of a header we produce a P tag after it similar to Word unless we are in a hgroup + if (/^(H[1-6]|PRE|FIGURE)$/.test(parentBlockName) && containerBlockName != 'HGROUP') { + newBlock = createNewBlock(newBlockName); + } else { + newBlock = createNewBlock(); + } + + // Split the current container block element if enter is pressed inside an empty inner block element + if (settings.end_container_on_empty_block && canSplitBlock(containerBlock) && dom.isEmpty(parentBlock)) { + // Split container block for example a BLOCKQUOTE at the current blockParent location for example a P + newBlock = dom.split(containerBlock, parentBlock); + } else { + dom.insertAfter(newBlock, parentBlock); + } + + moveToCaretPosition(newBlock); + } else if (isCaretAtStartOrEndOfBlock(true)) { + // Insert new block before + newBlock = parentBlock.parentNode.insertBefore(createNewBlock(), parentBlock); + renderBlockOnIE(newBlock); + moveToCaretPosition(parentBlock); + } else { + // Extract after fragment and insert it after the current block + tmpRng = rng.cloneRange(); + tmpRng.setEndAfter(parentBlock); + fragment = tmpRng.extractContents(); + trimLeadingLineBreaks(fragment); + newBlock = fragment.firstChild; + dom.insertAfter(fragment, parentBlock); + trimInlineElementsOnLeftSideOfBlock(newBlock); + addBrToBlockIfNeeded(parentBlock); + moveToCaretPosition(newBlock); + } + + dom.setAttrib(newBlock, 'id', ''); // Remove ID since it needs to be document unique + + // Allow custom handling of new blocks + editor.fire('NewBlock', { newBlock: newBlock }); + + undoManager.add(); + } + + editor.on('keydown', function(evt) { + if (evt.keyCode == 13) { + if (handleEnterKey(evt) !== false) { + evt.preventDefault(); + } + } + }); + }; +}); + +// Included from: js/tinymce/classes/ForceBlocks.js + +/** + * ForceBlocks.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +define("tinymce/ForceBlocks", [], function() { + return function(editor) { + var settings = editor.settings, dom = editor.dom, selection = editor.selection; + var schema = editor.schema, blockElements = schema.getBlockElements(); + + function addRootBlocks() { + var node = selection.getStart(), rootNode = editor.getBody(), rng; + var startContainer, startOffset, endContainer, endOffset, rootBlockNode; + var tempNode, offset = -0xFFFFFF, wrapped, restoreSelection; + var tmpRng, rootNodeName, forcedRootBlock; + + forcedRootBlock = settings.forced_root_block; + + if (!node || node.nodeType !== 1 || !forcedRootBlock) { + return; + } + + // Check if node is wrapped in block + while (node && node != rootNode) { + if (blockElements[node.nodeName]) { + return; + } + + node = node.parentNode; + } + + // Get current selection + rng = selection.getRng(); + if (rng.setStart) { + startContainer = rng.startContainer; + startOffset = rng.startOffset; + endContainer = rng.endContainer; + endOffset = rng.endOffset; + + try { + restoreSelection = editor.getDoc().activeElement === rootNode; + } catch (ex) { + // IE throws unspecified error here sometimes + } + } else { + // Force control range into text range + if (rng.item) { + node = rng.item(0); + rng = editor.getDoc().body.createTextRange(); + rng.moveToElementText(node); + } + + restoreSelection = rng.parentElement().ownerDocument === editor.getDoc(); + tmpRng = rng.duplicate(); + tmpRng.collapse(true); + startOffset = tmpRng.move('character', offset) * -1; + + if (!tmpRng.collapsed) { + tmpRng = rng.duplicate(); + tmpRng.collapse(false); + endOffset = (tmpRng.move('character', offset) * -1) - startOffset; + } + } + + // Wrap non block elements and text nodes + node = rootNode.firstChild; + rootNodeName = rootNode.nodeName.toLowerCase(); + while (node) { + // TODO: Break this up, too complex + if (((node.nodeType === 3 || (node.nodeType == 1 && !blockElements[node.nodeName]))) && + schema.isValidChild(rootNodeName, forcedRootBlock.toLowerCase())) { + // Remove empty text nodes + if (node.nodeType === 3 && node.nodeValue.length === 0) { + tempNode = node; + node = node.nextSibling; + dom.remove(tempNode); + continue; + } + + if (!rootBlockNode) { + rootBlockNode = dom.create(forcedRootBlock, editor.settings.forced_root_block_attrs); + node.parentNode.insertBefore(rootBlockNode, node); + wrapped = true; + } + + tempNode = node; + node = node.nextSibling; + rootBlockNode.appendChild(tempNode); + } else { + rootBlockNode = null; + node = node.nextSibling; + } + } + + if (wrapped && restoreSelection) { + if (rng.setStart) { + rng.setStart(startContainer, startOffset); + rng.setEnd(endContainer, endOffset); + selection.setRng(rng); + } else { + // Only select if the previous selection was inside the document to prevent auto focus in quirks mode + try { + rng = editor.getDoc().body.createTextRange(); + rng.moveToElementText(rootNode); + rng.collapse(true); + rng.moveStart('character', startOffset); + + if (endOffset > 0) { + rng.moveEnd('character', endOffset); + } + + rng.select(); + } catch (ex) { + // Ignore + } + } + + editor.nodeChanged(); + } + } + + // Force root blocks + if (settings.forced_root_block) { + editor.on('NodeChange', addRootBlocks); + } + }; +}); + +// Included from: js/tinymce/classes/EditorCommands.js + +/** + * EditorCommands.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class enables you to add custom editor commands and it contains + * overrides for native browser commands to address various bugs and issues. + * + * @class tinymce.EditorCommands + */ +define("tinymce/EditorCommands", [ + "tinymce/html/Serializer", + "tinymce/Env", + "tinymce/util/Tools" +], function(Serializer, Env, Tools) { + // Added for compression purposes + var each = Tools.each, extend = Tools.extend; + var map = Tools.map, inArray = Tools.inArray, explode = Tools.explode; + var isGecko = Env.gecko, isIE = Env.ie; + var TRUE = true, FALSE = false; + + return function(editor) { + var dom = editor.dom, + selection = editor.selection, + commands = {state: {}, exec: {}, value: {}}, + settings = editor.settings, + formatter = editor.formatter, + bookmark; + + /** + * Executes the specified command. + * + * @method execCommand + * @param {String} command Command to execute. + * @param {Boolean} ui Optional user interface state. + * @param {Object} value Optional value for command. + * @return {Boolean} true/false if the command was found or not. + */ + function execCommand(command, ui, value) { + var func; + + command = command.toLowerCase(); + if ((func = commands.exec[command])) { + func(command, ui, value); + return TRUE; + } + + return FALSE; + } + + /** + * Queries the current state for a command for example if the current selection is "bold". + * + * @method queryCommandState + * @param {String} command Command to check the state of. + * @return {Boolean/Number} true/false if the selected contents is bold or not, -1 if it's not found. + */ + function queryCommandState(command) { + var func; + + command = command.toLowerCase(); + if ((func = commands.state[command])) { + return func(command); + } + + return -1; + } + + /** + * Queries the command value for example the current fontsize. + * + * @method queryCommandValue + * @param {String} command Command to check the value of. + * @return {Object} Command value of false if it's not found. + */ + function queryCommandValue(command) { + var func; + + command = command.toLowerCase(); + if ((func = commands.value[command])) { + return func(command); + } + + return FALSE; + } + + /** + * Adds commands to the command collection. + * + * @method addCommands + * @param {Object} command_list Name/value collection with commands to add, the names can also be comma separated. + * @param {String} type Optional type to add, defaults to exec. Can be value or state as well. + */ + function addCommands(command_list, type) { + type = type || 'exec'; + + each(command_list, function(callback, command) { + each(command.toLowerCase().split(','), function(command) { + commands[type][command] = callback; + }); + }); + } + + // Expose public methods + extend(this, { + execCommand: execCommand, + queryCommandState: queryCommandState, + queryCommandValue: queryCommandValue, + addCommands: addCommands + }); + + // Private methods + + function execNativeCommand(command, ui, value) { + if (ui === undefined) { + ui = FALSE; + } + + if (value === undefined) { + value = null; + } + + return editor.getDoc().execCommand(command, ui, value); + } + + function isFormatMatch(name) { + return formatter.match(name); + } + + function toggleFormat(name, value) { + formatter.toggle(name, value ? {value: value} : undefined); + editor.nodeChanged(); + } + + function storeSelection(type) { + bookmark = selection.getBookmark(type); + } + + function restoreSelection() { + selection.moveToBookmark(bookmark); + } + + // Add execCommand overrides + addCommands({ + // Ignore these, added for compatibility + 'mceResetDesignMode,mceBeginUndoLevel': function() {}, + + // Add undo manager logic + 'mceEndUndoLevel,mceAddUndoLevel': function() { + editor.undoManager.add(); + }, + + 'Cut,Copy,Paste': function(command) { + var doc = editor.getDoc(), failed; + + // Try executing the native command + try { + execNativeCommand(command); + } catch (ex) { + // Command failed + failed = TRUE; + } + + // Present alert message about clipboard access not being available + if (failed || !doc.queryCommandSupported(command)) { + var msg = editor.translate( + "Your browser doesn't support direct access to the clipboard. " + + "Please use the Ctrl+X/C/V keyboard shortcuts instead." + ); + + if (Env.mac) { + msg = msg.replace(/Ctrl\+/g, '\u2318+'); + } + + editor.windowManager.alert(msg); + } + }, + + // Override unlink command + unlink: function() { + if (selection.isCollapsed()) { + var elm = selection.getNode(); + if (elm.tagName == 'A') { + editor.dom.remove(elm, true); + } + + return; + } + + formatter.remove("link"); + }, + + // Override justify commands to use the text formatter engine + 'JustifyLeft,JustifyCenter,JustifyRight,JustifyFull': function(command) { + var align = command.substring(7); + + if (align == 'full') { + align = 'justify'; + } + + // Remove all other alignments first + each('left,center,right,justify'.split(','), function(name) { + if (align != name) { + formatter.remove('align' + name); + } + }); + + toggleFormat('align' + align); + execCommand('mceRepaint'); + }, + + // Override list commands to fix WebKit bug + 'InsertUnorderedList,InsertOrderedList': function(command) { + var listElm, listParent; + + execNativeCommand(command); + + // WebKit produces lists within block elements so we need to split them + // we will replace the native list creation logic to custom logic later on + // TODO: Remove this when the list creation logic is removed + listElm = dom.getParent(selection.getNode(), 'ol,ul'); + if (listElm) { + listParent = listElm.parentNode; + + // If list is within a text block then split that block + if (/^(H[1-6]|P|ADDRESS|PRE)$/.test(listParent.nodeName)) { + storeSelection(); + dom.split(listParent, listElm); + restoreSelection(); + } + } + }, + + // Override commands to use the text formatter engine + 'Bold,Italic,Underline,Strikethrough,Superscript,Subscript': function(command) { + toggleFormat(command); + }, + + // Override commands to use the text formatter engine + 'ForeColor,HiliteColor,FontName': function(command, ui, value) { + toggleFormat(command, value); + }, + + FontSize: function(command, ui, value) { + var fontClasses, fontSizes; + + // Convert font size 1-7 to styles + if (value >= 1 && value <= 7) { + fontSizes = explode(settings.font_size_style_values); + fontClasses = explode(settings.font_size_classes); + + if (fontClasses) { + value = fontClasses[value - 1] || value; + } else { + value = fontSizes[value - 1] || value; + } + } + + toggleFormat(command, value); + }, + + RemoveFormat: function(command) { + formatter.remove(command); + }, + + mceBlockQuote: function() { + toggleFormat('blockquote'); + }, + + FormatBlock: function(command, ui, value) { + return toggleFormat(value || 'p'); + }, + + mceCleanup: function() { + var bookmark = selection.getBookmark(); + + editor.setContent(editor.getContent({cleanup: TRUE}), {cleanup: TRUE}); + + selection.moveToBookmark(bookmark); + }, + + mceRemoveNode: function(command, ui, value) { + var node = value || selection.getNode(); + + // Make sure that the body node isn't removed + if (node != editor.getBody()) { + storeSelection(); + editor.dom.remove(node, TRUE); + restoreSelection(); + } + }, + + mceSelectNodeDepth: function(command, ui, value) { + var counter = 0; + + dom.getParent(selection.getNode(), function(node) { + if (node.nodeType == 1 && counter++ == value) { + selection.select(node); + return FALSE; + } + }, editor.getBody()); + }, + + mceSelectNode: function(command, ui, value) { + selection.select(value); + }, + + mceInsertContent: function(command, ui, value) { + var parser, serializer, parentNode, rootNode, fragment, args; + var marker, rng, node, node2, bookmarkHtml; + + function trimOrPaddLeftRight(html) { + var rng, container, offset; + + rng = selection.getRng(true); + container = rng.startContainer; + offset = rng.startOffset; + + function hasSiblingText(siblingName) { + return container[siblingName] && container[siblingName].nodeType == 3; + } + + if (container.nodeType == 3) { + if (offset > 0) { + html = html.replace(/^ /, ' '); + } else if (!hasSiblingText('previousSibling')) { + html = html.replace(/^ /, ' '); + } + + if (offset < container.length) { + html = html.replace(/ (<br>|)$/, ' '); + } else if (!hasSiblingText('nextSibling')) { + html = html.replace(/( | )(<br>|)$/, ' '); + } + } + + return html; + } + + // Check for whitespace before/after value + if (/^ | $/.test(value)) { + value = trimOrPaddLeftRight(value); + } + + // Setup parser and serializer + parser = editor.parser; + serializer = new Serializer({}, editor.schema); + bookmarkHtml = '<span id="mce_marker" data-mce-type="bookmark">ÈB;</span>'; + + // Run beforeSetContent handlers on the HTML to be inserted + args = {content: value, format: 'html', selection: true}; + editor.fire('BeforeSetContent', args); + value = args.content; + + // Add caret at end of contents if it's missing + if (value.indexOf('{$caret}') == -1) { + value += '{$caret}'; + } + + // Replace the caret marker with a span bookmark element + value = value.replace(/\{\$caret\}/, bookmarkHtml); + + // If selection is at <body>|<p></p> then move it into <body><p>|</p> + rng = selection.getRng(); + var caretElement = rng.startContainer || (rng.parentElement ? rng.parentElement() : null); + var body = editor.getBody(); + if (caretElement === body && selection.isCollapsed()) { + if (dom.isBlock(body.firstChild) && dom.isEmpty(body.firstChild)) { + rng = dom.createRng(); + rng.setStart(body.firstChild, 0); + rng.setEnd(body.firstChild, 0); + selection.setRng(rng); + } + } + + // Insert node maker where we will insert the new HTML and get it's parent + if (!selection.isCollapsed()) { + editor.getDoc().execCommand('Delete', false, null); + } + + parentNode = selection.getNode(); + + // Parse the fragment within the context of the parent node + var parserArgs = {context: parentNode.nodeName.toLowerCase()}; + fragment = parser.parse(value, parserArgs); + + // Move the caret to a more suitable location + node = fragment.lastChild; + if (node.attr('id') == 'mce_marker') { + marker = node; + + for (node = node.prev; node; node = node.walk(true)) { + if (node.type == 3 || !dom.isBlock(node.name)) { + node.parent.insert(marker, node, node.name === 'br'); + break; + } + } + } + + // If parser says valid we can insert the contents into that parent + if (!parserArgs.invalid) { + value = serializer.serialize(fragment); + + // Check if parent is empty or only has one BR element then set the innerHTML of that parent + node = parentNode.firstChild; + node2 = parentNode.lastChild; + if (!node || (node === node2 && node.nodeName === 'BR')) { + dom.setHTML(parentNode, value); + } else { + selection.setContent(value); + } + } else { + // If the fragment was invalid within that context then we need + // to parse and process the parent it's inserted into + + // Insert bookmark node and get the parent + selection.setContent(bookmarkHtml); + parentNode = selection.getNode(); + rootNode = editor.getBody(); + + // Opera will return the document node when selection is in root + if (parentNode.nodeType == 9) { + parentNode = node = rootNode; + } else { + node = parentNode; + } + + // Find the ancestor just before the root element + while (node !== rootNode) { + parentNode = node; + node = node.parentNode; + } + + // Get the outer/inner HTML depending on if we are in the root and parser and serialize that + value = parentNode == rootNode ? rootNode.innerHTML : dom.getOuterHTML(parentNode); + value = serializer.serialize( + parser.parse( + // Need to replace by using a function since $ in the contents would otherwise be a problem + value.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i, function() { + return serializer.serialize(fragment); + }) + ) + ); + + // Set the inner/outer HTML depending on if we are in the root or not + if (parentNode == rootNode) { + dom.setHTML(rootNode, value); + } else { + dom.setOuterHTML(parentNode, value); + } + } + + marker = dom.get('mce_marker'); + selection.scrollIntoView(marker); + + // Move selection before marker and remove it + rng = dom.createRng(); + + // If previous sibling is a text node set the selection to the end of that node + node = marker.previousSibling; + if (node && node.nodeType == 3) { + rng.setStart(node, node.nodeValue.length); + + // TODO: Why can't we normalize on IE + if (!isIE) { + node2 = marker.nextSibling; + if (node2 && node2.nodeType == 3) { + node.appendData(node2.data); + node2.parentNode.removeChild(node2); + } + } + } else { + // If the previous sibling isn't a text node or doesn't exist set the selection before the marker node + rng.setStartBefore(marker); + rng.setEndBefore(marker); + } + + // Remove the marker node and set the new range + dom.remove(marker); + selection.setRng(rng); + + // Dispatch after event and add any visual elements needed + editor.fire('SetContent', args); + editor.addVisual(); + }, + + mceInsertRawHTML: function(command, ui, value) { + selection.setContent('tiny_mce_marker'); + editor.setContent( + editor.getContent().replace(/tiny_mce_marker/g, function() { + return value; + }) + ); + }, + + mceToggleFormat: function(command, ui, value) { + toggleFormat(value); + }, + + mceSetContent: function(command, ui, value) { + editor.setContent(value); + }, + + 'Indent,Outdent': function(command) { + var intentValue, indentUnit, value; + + // Setup indent level + intentValue = settings.indentation; + indentUnit = /[a-z%]+$/i.exec(intentValue); + intentValue = parseInt(intentValue, 10); + + if (!queryCommandState('InsertUnorderedList') && !queryCommandState('InsertOrderedList')) { + // If forced_root_blocks is set to false we don't have a block to indent so lets create a div + if (!settings.forced_root_block && !dom.getParent(selection.getNode(), dom.isBlock)) { + formatter.apply('div'); + } + + each(selection.getSelectedBlocks(), function(element) { + if (element.nodeName != "LI") { + var indentStyleName = editor.getParam('indent_use_margin', false) ? 'margin' : 'padding'; + + indentStyleName += dom.getStyle(element, 'direction', true) == 'rtl' ? 'Right' : 'Left'; + + if (command == 'outdent') { + value = Math.max(0, parseInt(element.style[indentStyleName] || 0, 10) - intentValue); + dom.setStyle(element, indentStyleName, value ? value + indentUnit : ''); + } else { + value = (parseInt(element.style[indentStyleName] || 0, 10) + intentValue) + indentUnit; + dom.setStyle(element, indentStyleName, value); + } + } + }); + } else { + execNativeCommand(command); + } + }, + + mceRepaint: function() { + if (isGecko) { + try { + storeSelection(TRUE); + + if (selection.getSel()) { + selection.getSel().selectAllChildren(editor.getBody()); + } + + selection.collapse(TRUE); + restoreSelection(); + } catch (ex) { + // Ignore + } + } + }, + + InsertHorizontalRule: function() { + editor.execCommand('mceInsertContent', false, '<hr />'); + }, + + mceToggleVisualAid: function() { + editor.hasVisual = !editor.hasVisual; + editor.addVisual(); + }, + + mceReplaceContent: function(command, ui, value) { + editor.execCommand('mceInsertContent', false, value.replace(/\{\$selection\}/g, selection.getContent({format: 'text'}))); + }, + + mceInsertLink: function(command, ui, value) { + var anchor; + + if (typeof(value) == 'string') { + value = {href: value}; + } + + anchor = dom.getParent(selection.getNode(), 'a'); + + // Spaces are never valid in URLs and it's a very common mistake for people to make so we fix it here. + value.href = value.href.replace(' ', '%20'); + + // Remove existing links if there could be child links or that the href isn't specified + if (!anchor || !value.href) { + formatter.remove('link'); + } + + // Apply new link to selection + if (value.href) { + formatter.apply('link', value, anchor); + } + }, + + selectAll: function() { + var root = dom.getRoot(), rng; + + if (selection.getRng().setStart) { + rng = dom.createRng(); + rng.setStart(root, 0); + rng.setEnd(root, root.childNodes.length); + selection.setRng(rng); + } else { + // IE will render it's own root level block elements and sometimes + // even put font elements in them when the user starts typing. So we need to + // move the selection to a more suitable element from this: + // <body>|<p></p></body> to this: <body><p>|</p></body> + rng = selection.getRng(); + if (!rng.item) { + rng.moveToElementText(root); + rng.select(); + } + } + }, + + "delete": function() { + execNativeCommand("Delete"); + + // Check if body is empty after the delete call if so then set the contents + // to an empty string and move the caret to any block produced by that operation + // this fixes the issue with root blocks not being properly produced after a delete call on IE + var body = editor.getBody(); + + if (dom.isEmpty(body)) { + editor.setContent(''); + + if (body.firstChild && dom.isBlock(body.firstChild)) { + editor.selection.setCursorLocation(body.firstChild, 0); + } else { + editor.selection.setCursorLocation(body, 0); + } + } + }, + + mceNewDocument: function() { + editor.setContent(''); + } + }); + + // Add queryCommandState overrides + addCommands({ + // Override justify commands + 'JustifyLeft,JustifyCenter,JustifyRight,JustifyFull': function(command) { + var name = 'align' + command.substring(7); + var nodes = selection.isCollapsed() ? [dom.getParent(selection.getNode(), dom.isBlock)] : selection.getSelectedBlocks(); + var matches = map(nodes, function(node) { + return !!formatter.matchNode(node, name); + }); + return inArray(matches, TRUE) !== -1; + }, + + 'Bold,Italic,Underline,Strikethrough,Superscript,Subscript': function(command) { + return isFormatMatch(command); + }, + + mceBlockQuote: function() { + return isFormatMatch('blockquote'); + }, + + Outdent: function() { + var node; + + if (settings.inline_styles) { + if ((node = dom.getParent(selection.getStart(), dom.isBlock)) && parseInt(node.style.paddingLeft, 10) > 0) { + return TRUE; + } + + if ((node = dom.getParent(selection.getEnd(), dom.isBlock)) && parseInt(node.style.paddingLeft, 10) > 0) { + return TRUE; + } + } + + return ( + queryCommandState('InsertUnorderedList') || + queryCommandState('InsertOrderedList') || + (!settings.inline_styles && !!dom.getParent(selection.getNode(), 'BLOCKQUOTE')) + ); + }, + + 'InsertUnorderedList,InsertOrderedList': function(command) { + var list = dom.getParent(selection.getNode(), 'ul,ol'); + + return list && + ( + command === 'insertunorderedlist' && list.tagName === 'UL' || + command === 'insertorderedlist' && list.tagName === 'OL' + ); + } + }, 'state'); + + // Add queryCommandValue overrides + addCommands({ + 'FontSize,FontName': function(command) { + var value = 0, parent; + + if ((parent = dom.getParent(selection.getNode(), 'span'))) { + if (command == 'fontsize') { + value = parent.style.fontSize; + } else { + value = parent.style.fontFamily.replace(/, /g, ',').replace(/[\'\"]/g, '').toLowerCase(); + } + } + + return value; + } + }, 'value'); + + // Add undo manager logic + addCommands({ + Undo: function() { + editor.undoManager.undo(); + }, + + Redo: function() { + editor.undoManager.redo(); + } + }); + }; +}); + +// Included from: js/tinymce/classes/util/URI.js + +/** + * URI.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles parsing, modification and serialization of URI/URL strings. + * @class tinymce.util.URI + */ +define("tinymce/util/URI", [ + "tinymce/util/Tools" +], function(Tools) { + var each = Tools.each, trim = Tools.trim; + + /** + * Constructs a new URI instance. + * + * @constructor + * @method URI + * @param {String} url URI string to parse. + * @param {Object} settings Optional settings object. + */ + function URI(url, settings) { + var self = this, baseUri, base_url; + + // Trim whitespace + url = trim(url); + + // Default settings + settings = self.settings = settings || {}; + + // Strange app protocol that isn't http/https or local anchor + // For example: mailto,skype,tel etc. + if (/^([\w\-]+):([^\/]{2})/i.test(url) || /^\s*#/.test(url)) { + self.source = url; + return; + } + + var isProtocolRelative = url.indexOf('//') === 0; + + // Absolute path with no host, fake host and protocol + if (url.indexOf('/') === 0 && !isProtocolRelative) { + url = (settings.base_uri ? settings.base_uri.protocol || 'http' : 'http') + '://mce_host' + url; + } + + // Relative path http:// or protocol relative //path + if (!/^[\w\-]*:?\/\//.test(url)) { + base_url = settings.base_uri ? settings.base_uri.path : new URI(location.href).directory; + if (settings.base_uri.protocol === "") { + url = '//mce_host' + self.toAbsPath(base_url, url); + } else { + url = ((settings.base_uri && settings.base_uri.protocol) || 'http') + '://mce_host' + self.toAbsPath(base_url, url); + } + } + + // Parse URL (Credits goes to Steave, http://blog.stevenlevithan.com/archives/parseuri) + url = url.replace(/@@/g, '(mce_at)'); // Zope 3 workaround, they use @@something + + /*jshint maxlen: 255 */ + /*eslint max-len: 0 */ + url = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(url); + + each(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], function(v, i) { + var part = url[i]; + + // Zope 3 workaround, they use @@something + if (part) { + part = part.replace(/\(mce_at\)/g, '@@'); + } + + self[v] = part; + }); + + baseUri = settings.base_uri; + if (baseUri) { + if (!self.protocol) { + self.protocol = baseUri.protocol; + } + + if (!self.userInfo) { + self.userInfo = baseUri.userInfo; + } + + if (!self.port && self.host === 'mce_host') { + self.port = baseUri.port; + } + + if (!self.host || self.host === 'mce_host') { + self.host = baseUri.host; + } + + self.source = ''; + } + + if (isProtocolRelative) { + self.protocol = ''; + } + + //t.path = t.path || '/'; + } + + URI.prototype = { + /** + * Sets the internal path part of the URI. + * + * @method setPath + * @param {string} path Path string to set. + */ + setPath: function(path) { + var self = this; + + path = /^(.*?)\/?(\w+)?$/.exec(path); + + // Update path parts + self.path = path[0]; + self.directory = path[1]; + self.file = path[2]; + + // Rebuild source + self.source = ''; + self.getURI(); + }, + + /** + * Converts the specified URI into a relative URI based on the current URI instance location. + * + * @method toRelative + * @param {String} uri URI to convert into a relative path/URI. + * @return {String} Relative URI from the point specified in the current URI instance. + * @example + * // Converts an absolute URL to an relative URL url will be somedir/somefile.htm + * var url = new tinymce.util.URI('http://www.site.com/dir/').toRelative('http://www.site.com/dir/somedir/somefile.htm'); + */ + toRelative: function(uri) { + var self = this, output; + + if (uri === "./") { + return uri; + } + + uri = new URI(uri, {base_uri: self}); + + // Not on same domain/port or protocol + if ((uri.host != 'mce_host' && self.host != uri.host && uri.host) || self.port != uri.port || + (self.protocol != uri.protocol && uri.protocol !== "")) { + return uri.getURI(); + } + + var tu = self.getURI(), uu = uri.getURI(); + + // Allow usage of the base_uri when relative_urls = true + if (tu == uu || (tu.charAt(tu.length - 1) == "/" && tu.substr(0, tu.length - 1) == uu)) { + return tu; + } + + output = self.toRelPath(self.path, uri.path); + + // Add query + if (uri.query) { + output += '?' + uri.query; + } + + // Add anchor + if (uri.anchor) { + output += '#' + uri.anchor; + } + + return output; + }, + + /** + * Converts the specified URI into a absolute URI based on the current URI instance location. + * + * @method toAbsolute + * @param {String} uri URI to convert into a relative path/URI. + * @param {Boolean} noHost No host and protocol prefix. + * @return {String} Absolute URI from the point specified in the current URI instance. + * @example + * // Converts an relative URL to an absolute URL url will be http://www.site.com/dir/somedir/somefile.htm + * var url = new tinymce.util.URI('http://www.site.com/dir/').toAbsolute('somedir/somefile.htm'); + */ + toAbsolute: function(uri, noHost) { + uri = new URI(uri, {base_uri: this}); + + return uri.getURI(this.host == uri.host && this.protocol == uri.protocol ? noHost : 0); + }, + + /** + * Converts a absolute path into a relative path. + * + * @method toRelPath + * @param {String} base Base point to convert the path from. + * @param {String} path Absolute path to convert into a relative path. + */ + toRelPath: function(base, path) { + var items, breakPoint = 0, out = '', i, l; + + // Split the paths + base = base.substring(0, base.lastIndexOf('/')); + base = base.split('/'); + items = path.split('/'); + + if (base.length >= items.length) { + for (i = 0, l = base.length; i < l; i++) { + if (i >= items.length || base[i] != items[i]) { + breakPoint = i + 1; + break; + } + } + } + + if (base.length < items.length) { + for (i = 0, l = items.length; i < l; i++) { + if (i >= base.length || base[i] != items[i]) { + breakPoint = i + 1; + break; + } + } + } + + if (breakPoint === 1) { + return path; + } + + for (i = 0, l = base.length - (breakPoint - 1); i < l; i++) { + out += "../"; + } + + for (i = breakPoint - 1, l = items.length; i < l; i++) { + if (i != breakPoint - 1) { + out += "/" + items[i]; + } else { + out += items[i]; + } + } + + return out; + }, + + /** + * Converts a relative path into a absolute path. + * + * @method toAbsPath + * @param {String} base Base point to convert the path from. + * @param {String} path Relative path to convert into an absolute path. + */ + toAbsPath: function(base, path) { + var i, nb = 0, o = [], tr, outPath; + + // Split paths + tr = /\/$/.test(path) ? '/' : ''; + base = base.split('/'); + path = path.split('/'); + + // Remove empty chunks + each(base, function(k) { + if (k) { + o.push(k); + } + }); + + base = o; + + // Merge relURLParts chunks + for (i = path.length - 1, o = []; i >= 0; i--) { + // Ignore empty or . + if (path[i].length === 0 || path[i] === ".") { + continue; + } + + // Is parent + if (path[i] === '..') { + nb++; + continue; + } + + // Move up + if (nb > 0) { + nb--; + continue; + } + + o.push(path[i]); + } + + i = base.length - nb; + + // If /a/b/c or / + if (i <= 0) { + outPath = o.reverse().join('/'); + } else { + outPath = base.slice(0, i).join('/') + '/' + o.reverse().join('/'); + } + + // Add front / if it's needed + if (outPath.indexOf('/') !== 0) { + outPath = '/' + outPath; + } + + // Add traling / if it's needed + if (tr && outPath.lastIndexOf('/') !== outPath.length - 1) { + outPath += tr; + } + + return outPath; + }, + + /** + * Returns the full URI of the internal structure. + * + * @method getURI + * @param {Boolean} noProtoHost Optional no host and protocol part. Defaults to false. + */ + getURI: function(noProtoHost) { + var s, self = this; + + // Rebuild source + if (!self.source || noProtoHost) { + s = ''; + + if (!noProtoHost) { + if (self.protocol) { + s += self.protocol + '://'; + } else { + s += '//'; + } + + if (self.userInfo) { + s += self.userInfo + '@'; + } + + if (self.host) { + s += self.host; + } + + if (self.port) { + s += ':' + self.port; + } + } + + if (self.path) { + s += self.path; + } + + if (self.query) { + s += '?' + self.query; + } + + if (self.anchor) { + s += '#' + self.anchor; + } + + self.source = s; + } + + return self.source; + } + }; + + return URI; +}); + +// Included from: js/tinymce/classes/util/Class.js + +/** + * Class.js + * + * Copyright 2003-2012, Moxiecode Systems AB, All rights reserved. + */ + +/** + * This utilitiy class is used for easier inheritage. + * + * Features: + * * Exposed super functions: this._super(); + * * Mixins + * * Dummy functions + * * Property functions: var value = object.value(); and object.value(newValue); + * * Static functions + * * Defaults settings + */ +define("tinymce/util/Class", [ + "tinymce/util/Tools" +], function(Tools) { + var each = Tools.each, extend = Tools.extend; + + var extendClass, initializing; + + function Class() { + } + + // Provides classical inheritance, based on code made by John Resig + Class.extend = extendClass = function(prop) { + var self = this, _super = self.prototype, prototype, name, member; + + // The dummy class constructor + function Class() { + var i, mixins, mixin, self = this; + + // All construction is actually done in the init method + if (!initializing) { + // Run class constuctor + if (self.init) { + self.init.apply(self, arguments); + } + + // Run mixin constructors + mixins = self.Mixins; + if (mixins) { + i = mixins.length; + while (i--) { + mixin = mixins[i]; + if (mixin.init) { + mixin.init.apply(self, arguments); + } + } + } + } + } + + // Dummy function, needs to be extended in order to provide functionality + function dummy() { + return this; + } + + // Creates a overloaded method for the class + // this enables you to use this._super(); to call the super function + function createMethod(name, fn) { + return function(){ + var self = this, tmp = self._super, ret; + + self._super = _super[name]; + ret = fn.apply(self, arguments); + self._super = tmp; + + return ret; + }; + } + + // Instantiate a base class (but only create the instance, + // don't run the init constructor) + initializing = true; + prototype = new self(); + initializing = false; + + // Add mixins + if (prop.Mixins) { + each(prop.Mixins, function(mixin) { + mixin = mixin; + + for (var name in mixin) { + if (name !== "init") { + prop[name] = mixin[name]; + } + } + }); + + if (_super.Mixins) { + prop.Mixins = _super.Mixins.concat(prop.Mixins); + } + } + + // Generate dummy methods + if (prop.Methods) { + each(prop.Methods.split(','), function(name) { + prop[name] = dummy; + }); + } + + // Generate property methods + if (prop.Properties) { + each(prop.Properties.split(','), function(name) { + var fieldName = '_' + name; + + prop[name] = function(value) { + var self = this, undef; + + // Set value + if (value !== undef) { + self[fieldName] = value; + + return self; + } + + // Get value + return self[fieldName]; + }; + }); + } + + // Static functions + if (prop.Statics) { + each(prop.Statics, function(func, name) { + Class[name] = func; + }); + } + + // Default settings + if (prop.Defaults && _super.Defaults) { + prop.Defaults = extend({}, _super.Defaults, prop.Defaults); + } + + // Copy the properties over onto the new prototype + for (name in prop) { + member = prop[name]; + + if (typeof member == "function" && _super[name]) { + prototype[name] = createMethod(name, member); + } else { + prototype[name] = member; + } + } + + // Populate our constructed prototype object + Class.prototype = prototype; + + // Enforce the constructor to be what we expect + Class.constructor = Class; + + // And make this class extendible + Class.extend = extendClass; + + return Class; + }; + + return Class; +}); + +// Included from: js/tinymce/classes/ui/Selector.js + +/** + * Selector.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*eslint no-nested-ternary:0 */ + +/** + * Selector engine, enables you to select controls by using CSS like expressions. + * We currently only support basic CSS expressions to reduce the size of the core + * and the ones we support should be enough for most cases. + * + * @example + * Supported expressions: + * element + * element#name + * element.class + * element[attr] + * element[attr*=value] + * element[attr~=value] + * element[attr!=value] + * element[attr^=value] + * element[attr$=value] + * element:<state> + * element:not(<expression>) + * element:first + * element:last + * element:odd + * element:even + * element element + * element > element + * + * @class tinymce.ui.Selector + */ +define("tinymce/ui/Selector", [ + "tinymce/util/Class" +], function(Class) { + "use strict"; + + /** + * Produces an array with a unique set of objects. It will not compare the values + * but the references of the objects. + * + * @private + * @method unqiue + * @param {Array} array Array to make into an array with unique items. + * @return {Array} Array with unique items. + */ + function unique(array) { + var uniqueItems = [], i = array.length, item; + + while (i--) { + item = array[i]; + + if (!item.__checked) { + uniqueItems.push(item); + item.__checked = 1; + } + } + + i = uniqueItems.length; + while (i--) { + delete uniqueItems[i].__checked; + } + + return uniqueItems; + } + + var expression = /^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i; + + /*jshint maxlen:255 */ + /*eslint max-len:0 */ + var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, + whiteSpace = /^\s*|\s*$/g, + Collection; + + var Selector = Class.extend({ + /** + * Constructs a new Selector instance. + * + * @constructor + * @method init + * @param {String} selector CSS like selector expression. + */ + init: function(selector) { + var match = this.match; + + function compileNameFilter(name) { + if (name) { + name = name.toLowerCase(); + + return function(item) { + return name === '*' || item.type === name; + }; + } + } + + function compileIdFilter(id) { + if (id) { + return function(item) { + return item._name === id; + }; + } + } + + function compileClassesFilter(classes) { + if (classes) { + classes = classes.split('.'); + + return function(item) { + var i = classes.length; + + while (i--) { + if (!item.hasClass(classes[i])) { + return false; + } + } + + return true; + }; + } + } + + function compileAttrFilter(name, cmp, check) { + if (name) { + return function(item) { + var value = item[name] ? item[name]() : ''; + + return !cmp ? !!check : + cmp === "=" ? value === check : + cmp === "*=" ? value.indexOf(check) >= 0 : + cmp === "~=" ? (" " + value + " ").indexOf(" " + check + " ") >= 0 : + cmp === "!=" ? value != check : + cmp === "^=" ? value.indexOf(check) === 0 : + cmp === "$=" ? value.substr(value.length - check.length) === check : + false; + }; + } + } + + function compilePsuedoFilter(name) { + var notSelectors; + + if (name) { + name = /(?:not\((.+)\))|(.+)/i.exec(name); + + if (!name[1]) { + name = name[2]; + + return function(item, index, length) { + return name === 'first' ? index === 0 : + name === 'last' ? index === length - 1 : + name === 'even' ? index % 2 === 0 : + name === 'odd' ? index % 2 === 1 : + item[name] ? item[name]() : + false; + }; + } else { + // Compile not expression + notSelectors = parseChunks(name[1], []); + + return function(item) { + return !match(item, notSelectors); + }; + } + } + } + + function compile(selector, filters, direct) { + var parts; + + function add(filter) { + if (filter) { + filters.push(filter); + } + } + + // Parse expression into parts + parts = expression.exec(selector.replace(whiteSpace, '')); + + add(compileNameFilter(parts[1])); + add(compileIdFilter(parts[2])); + add(compileClassesFilter(parts[3])); + add(compileAttrFilter(parts[4], parts[5], parts[6])); + add(compilePsuedoFilter(parts[7])); + + // Mark the filter with psuedo for performance + filters.psuedo = !!parts[7]; + filters.direct = direct; + + return filters; + } + + // Parser logic based on Sizzle by John Resig + function parseChunks(selector, selectors) { + var parts = [], extra, matches, i; + + do { + chunker.exec(""); + matches = chunker.exec(selector); + + if (matches) { + selector = matches[3]; + parts.push(matches[1]); + + if (matches[2]) { + extra = matches[3]; + break; + } + } + } while (matches); + + if (extra) { + parseChunks(extra, selectors); + } + + selector = []; + for (i = 0; i < parts.length; i++) { + if (parts[i] != '>') { + selector.push(compile(parts[i], [], parts[i - 1] === '>')); + } + } + + selectors.push(selector); + + return selectors; + } + + this._selectors = parseChunks(selector, []); + }, + + /** + * Returns true/false if the selector matches the specified control. + * + * @method match + * @param {tinymce.ui.Control} control Control to match agains the selector. + * @param {Array} selectors Optional array of selectors, mostly used internally. + * @return {Boolean} true/false state if the control matches or not. + */ + match: function(control, selectors) { + var i, l, si, sl, selector, fi, fl, filters, index, length, siblings, count, item; + + selectors = selectors || this._selectors; + for (i = 0, l = selectors.length; i < l; i++) { + selector = selectors[i]; + sl = selector.length; + item = control; + count = 0; + + for (si = sl - 1; si >= 0; si--) { + filters = selector[si]; + + while (item) { + // Find the index and length since a psuedo filter like :first needs it + if (filters.psuedo) { + siblings = item.parent().items(); + index = length = siblings.length; + while (index--) { + if (siblings[index] === item) { + break; + } + } + } + + for (fi = 0, fl = filters.length; fi < fl; fi++) { + if (!filters[fi](item, index, length)) { + fi = fl + 1; + break; + } + } + + if (fi === fl) { + count++; + break; + } else { + // If it didn't match the right most expression then + // break since it's no point looking at the parents + if (si === sl - 1) { + break; + } + } + + item = item.parent(); + } + } + + // If we found all selectors then return true otherwise continue looking + if (count === sl) { + return true; + } + } + + return false; + }, + + /** + * Returns a tinymce.ui.Collection with matches of the specified selector inside the specified container. + * + * @method find + * @param {tinymce.ui.Control} container Container to look for items in. + * @return {tinymce.ui.Collection} Collection with matched elements. + */ + find: function(container) { + var matches = [], i, l, selectors = this._selectors; + + function collect(items, selector, index) { + var i, l, fi, fl, item, filters = selector[index]; + + for (i = 0, l = items.length; i < l; i++) { + item = items[i]; + + // Run each filter agains the item + for (fi = 0, fl = filters.length; fi < fl; fi++) { + if (!filters[fi](item, i, l)) { + fi = fl + 1; + break; + } + } + + // All filters matched the item + if (fi === fl) { + // Matched item is on the last expression like: panel toolbar [button] + if (index == selector.length - 1) { + matches.push(item); + } else { + // Collect next expression type + if (item.items) { + collect(item.items(), selector, index + 1); + } + } + } else if (filters.direct) { + return; + } + + // Collect child items + if (item.items) { + collect(item.items(), selector, index); + } + } + } + + if (container.items) { + for (i = 0, l = selectors.length; i < l; i++) { + collect(container.items(), selectors[i], 0); + } + + // Unique the matches if needed + if (l > 1) { + matches = unique(matches); + } + } + + // Fix for circular reference + if (!Collection) { + // TODO: Fix me! + Collection = Selector.Collection; + } + + return new Collection(matches); + } + }); + + return Selector; +}); + +// Included from: js/tinymce/classes/ui/Collection.js + +/** + * Collection.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Control collection, this class contains control instances and it enables you to + * perform actions on all the contained items. This is very similar to how jQuery works. + * + * @example + * someCollection.show().disabled(true); + * + * @class tinymce.ui.Collection + */ +define("tinymce/ui/Collection", [ + "tinymce/util/Tools", + "tinymce/ui/Selector", + "tinymce/util/Class" +], function(Tools, Selector, Class) { + "use strict"; + + var Collection, proto, push = Array.prototype.push, slice = Array.prototype.slice; + + proto = { + /** + * Current number of contained control instances. + * + * @field length + * @type Number + */ + length: 0, + + /** + * Constructor for the collection. + * + * @constructor + * @method init + * @param {Array} items Optional array with items to add. + */ + init: function(items) { + if (items) { + this.add(items); + } + }, + + /** + * Adds new items to the control collection. + * + * @method add + * @param {Array} items Array if items to add to collection. + * @return {tinymce.ui.Collection} Current collection instance. + */ + add: function(items) { + var self = this; + + // Force single item into array + if (!Tools.isArray(items)) { + if (items instanceof Collection) { + self.add(items.toArray()); + } else { + push.call(self, items); + } + } else { + push.apply(self, items); + } + + return self; + }, + + /** + * Sets the contents of the collection. This will remove any existing items + * and replace them with the ones specified in the input array. + * + * @method set + * @param {Array} items Array with items to set into the Collection. + * @return {tinymce.ui.Collection} Collection instance. + */ + set: function(items) { + var self = this, len = self.length, i; + + self.length = 0; + self.add(items); + + // Remove old entries + for (i = self.length; i < len; i++) { + delete self[i]; + } + + return self; + }, + + /** + * Filters the collection item based on the specified selector expression or selector function. + * + * @method filter + * @param {String} selector Selector expression to filter items by. + * @return {tinymce.ui.Collection} Collection containing the filtered items. + */ + filter: function(selector) { + var self = this, i, l, matches = [], item, match; + + // Compile string into selector expression + if (typeof(selector) === "string") { + selector = new Selector(selector); + + match = function(item) { + return selector.match(item); + }; + } else { + // Use selector as matching function + match = selector; + } + + for (i = 0, l = self.length; i < l; i++) { + item = self[i]; + + if (match(item)) { + matches.push(item); + } + } + + return new Collection(matches); + }, + + /** + * Slices the items within the collection. + * + * @method slice + * @param {Number} index Index to slice at. + * @param {Number} len Optional length to slice. + * @return {tinymce.ui.Collection} Current collection. + */ + slice: function() { + return new Collection(slice.apply(this, arguments)); + }, + + /** + * Makes the current collection equal to the specified index. + * + * @method eq + * @param {Number} index Index of the item to set the collection to. + * @return {tinymce.ui.Collection} Current collection. + */ + eq: function(index) { + return index === -1 ? this.slice(index) : this.slice(index, +index + 1); + }, + + /** + * Executes the specified callback on each item in collection. + * + * @method each + * @param {function} callback Callback to execute for each item in collection. + * @return {tinymce.ui.Collection} Current collection instance. + */ + each: function(callback) { + Tools.each(this, callback); + + return this; + }, + + /** + * Returns an JavaScript array object of the contents inside the collection. + * + * @method toArray + * @return {Array} Array with all items from collection. + */ + toArray: function() { + return Tools.toArray(this); + }, + + /** + * Finds the index of the specified control or return -1 if it isn't in the collection. + * + * @method indexOf + * @param {Control} ctrl Control instance to look for. + * @return {Number} Index of the specified control or -1. + */ + indexOf: function(ctrl) { + var self = this, i = self.length; + + while (i--) { + if (self[i] === ctrl) { + break; + } + } + + return i; + }, + + /** + * Returns a new collection of the contents in reverse order. + * + * @method reverse + * @return {tinymce.ui.Collection} Collection instance with reversed items. + */ + reverse: function() { + return new Collection(Tools.toArray(this).reverse()); + }, + + /** + * Returns true/false if the class exists or not. + * + * @method hasClass + * @param {String} cls Class to check for. + * @return {Boolean} true/false state if the class exists or not. + */ + hasClass: function(cls) { + return this[0] ? this[0].hasClass(cls) : false; + }, + + /** + * Sets/gets the specific property on the items in the collection. The same as executing control.<property>(<value>); + * + * @method prop + * @param {String} name Property name to get/set. + * @param {Object} value Optional object value to set. + * @return {tinymce.ui.Collection} Current collection instance or value of the first item on a get operation. + */ + prop: function(name, value) { + var self = this, undef, item; + + if (value !== undef) { + self.each(function(item) { + if (item[name]) { + item[name](value); + } + }); + + return self; + } + + item = self[0]; + + if (item && item[name]) { + return item[name](); + } + }, + + /** + * Executes the specific function name with optional arguments an all items in collection if it exists. + * + * @example collection.exec("myMethod", arg1, arg2, arg3); + * @method exec + * @param {String} name Name of the function to execute. + * @param {Object} ... Multiple arguments to pass to each function. + * @return {tinymce.ui.Collection} Current collection. + */ + exec: function(name) { + var self = this, args = Tools.toArray(arguments).slice(1); + + self.each(function(item) { + if (item[name]) { + item[name].apply(item, args); + } + }); + + return self; + }, + + /** + * Remove all items from collection and DOM. + * + * @method remove + * @return {tinymce.ui.Collection} Current collection. + */ + remove: function() { + var i = this.length; + + while (i--) { + this[i].remove(); + } + + return this; + } + + /** + * Fires the specified event by name and arguments on the control. This will execute all + * bound event handlers. + * + * @method fire + * @param {String} name Name of the event to fire. + * @param {Object} args Optional arguments to pass to the event. + * @return {tinymce.ui.Collection} Current collection instance. + */ + // fire: function(event, args) {}, -- Generated by code below + + /** + * Binds a callback to the specified event. This event can both be + * native browser events like "click" or custom ones like PostRender. + * + * The callback function will have two parameters the first one being the control that received the event + * the second one will be the event object either the browsers native event object or a custom JS object. + * + * @method on + * @param {String} name Name of the event to bind. For example "click". + * @param {String/function} callback Callback function to execute ones the event occurs. + * @return {tinymce.ui.Collection} Current collection instance. + */ + // on: function(name, callback) {}, -- Generated by code below + + /** + * Unbinds the specified event and optionally a specific callback. If you omit the name + * parameter all event handlers will be removed. If you omit the callback all event handles + * by the specified name will be removed. + * + * @method off + * @param {String} name Optional name for the event to unbind. + * @param {function} callback Optional callback function to unbind. + * @return {tinymce.ui.Collection} Current collection instance. + */ + // off: function(name, callback) {}, -- Generated by code below + + /** + * Shows the items in the current collection. + * + * @method show + * @return {tinymce.ui.Collection} Current collection instance. + */ + // show: function() {}, -- Generated by code below + + /** + * Hides the items in the current collection. + * + * @method hide + * @return {tinymce.ui.Collection} Current collection instance. + */ + // hide: function() {}, -- Generated by code below + + /** + * Sets/gets the text contents of the items in the current collection. + * + * @method text + * @return {tinymce.ui.Collection} Current collection instance or text value of the first item on a get operation. + */ + // text: function(value) {}, -- Generated by code below + + /** + * Sets/gets the name contents of the items in the current collection. + * + * @method name + * @return {tinymce.ui.Collection} Current collection instance or name value of the first item on a get operation. + */ + // name: function(value) {}, -- Generated by code below + + /** + * Sets/gets the disabled state on the items in the current collection. + * + * @method disabled + * @return {tinymce.ui.Collection} Current collection instance or disabled state of the first item on a get operation. + */ + // disabled: function(state) {}, -- Generated by code below + + /** + * Sets/gets the active state on the items in the current collection. + * + * @method active + * @return {tinymce.ui.Collection} Current collection instance or active state of the first item on a get operation. + */ + // active: function(state) {}, -- Generated by code below + + /** + * Sets/gets the selected state on the items in the current collection. + * + * @method selected + * @return {tinymce.ui.Collection} Current collection instance or selected state of the first item on a get operation. + */ + // selected: function(state) {}, -- Generated by code below + + /** + * Sets/gets the selected state on the items in the current collection. + * + * @method visible + * @return {tinymce.ui.Collection} Current collection instance or visible state of the first item on a get operation. + */ + // visible: function(state) {}, -- Generated by code below + + /** + * Adds a class to all items in the collection. + * + * @method addClass + * @param {String} cls Class to add to each item. + * @return {tinymce.ui.Collection} Current collection instance. + */ + // addClass: function(cls) {}, -- Generated by code below + + /** + * Removes the specified class from all items in collection. + * + * @method removeClass + * @param {String} cls Class to remove from each item. + * @return {tinymce.ui.Collection} Current collection instance. + */ + // removeClass: function(cls) {}, -- Generated by code below + }; + + // Extend tinymce.ui.Collection prototype with some generated control specific methods + Tools.each('fire on off show hide addClass removeClass append prepend before after reflow'.split(' '), function(name) { + proto[name] = function() { + var args = Tools.toArray(arguments); + + this.each(function(ctrl) { + if (name in ctrl) { + ctrl[name].apply(ctrl, args); + } + }); + + return this; + }; + }); + + // Extend tinymce.ui.Collection prototype with some property methods + Tools.each('text name disabled active selected checked visible parent value data'.split(' '), function(name) { + proto[name] = function(value) { + return this.prop(name, value); + }; + }); + + // Create class based on the new prototype + Collection = Class.extend(proto); + + // Stick Collection into Selector to prevent circual references + Selector.Collection = Collection; + + return Collection; +}); + +// Included from: js/tinymce/classes/ui/DomUtils.js + +/** + * DOMUtils.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +define("tinymce/ui/DomUtils", [ + "tinymce/util/Tools", + "tinymce/dom/DOMUtils" +], function(Tools, DOMUtils) { + "use strict"; + + return { + id: function() { + return DOMUtils.DOM.uniqueId(); + }, + + createFragment: function(html) { + return DOMUtils.DOM.createFragment(html); + }, + + getWindowSize: function() { + return DOMUtils.DOM.getViewPort(); + }, + + getSize: function(elm) { + var width, height; + + if (elm.getBoundingClientRect) { + var rect = elm.getBoundingClientRect(); + + width = Math.max(rect.width || (rect.right - rect.left), elm.offsetWidth); + height = Math.max(rect.height || (rect.bottom - rect.bottom), elm.offsetHeight); + } else { + width = elm.offsetWidth; + height = elm.offsetHeight; + } + + return {width: width, height: height}; + }, + + getPos: function(elm, root) { + return DOMUtils.DOM.getPos(elm, root); + }, + + getViewPort: function(win) { + return DOMUtils.DOM.getViewPort(win); + }, + + get: function(id) { + return document.getElementById(id); + }, + + addClass : function(elm, cls) { + return DOMUtils.DOM.addClass(elm, cls); + }, + + removeClass : function(elm, cls) { + return DOMUtils.DOM.removeClass(elm, cls); + }, + + hasClass : function(elm, cls) { + return DOMUtils.DOM.hasClass(elm, cls); + }, + + toggleClass: function(elm, cls, state) { + return DOMUtils.DOM.toggleClass(elm, cls, state); + }, + + css: function(elm, name, value) { + return DOMUtils.DOM.setStyle(elm, name, value); + }, + + on: function(target, name, callback, scope) { + return DOMUtils.DOM.bind(target, name, callback, scope); + }, + + off: function(target, name, callback) { + return DOMUtils.DOM.unbind(target, name, callback); + }, + + fire: function(target, name, args) { + return DOMUtils.DOM.fire(target, name, args); + }, + + innerHtml: function(elm, html) { + // Workaround for <div> in <p> bug on IE 8 #6178 + DOMUtils.DOM.setHTML(elm, html); + } + }; +}); + +// Included from: js/tinymce/classes/ui/Control.js + +/** + * Control.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*eslint consistent-this:0 */ + +/** + * This is the base class for all controls and containers. All UI control instances inherit + * from this one as it has the base logic needed by all of them. + * + * @class tinymce.ui.Control + */ +define("tinymce/ui/Control", [ + "tinymce/util/Class", + "tinymce/util/Tools", + "tinymce/ui/Collection", + "tinymce/ui/DomUtils" +], function(Class, Tools, Collection, DomUtils) { + "use strict"; + + var nativeEvents = Tools.makeMap("focusin focusout scroll click dblclick mousedown mouseup mousemove mouseover" + + " mouseout mouseenter mouseleave wheel keydown keypress keyup contextmenu", " "); + + var elementIdCache = {}; + var hasMouseWheelEventSupport = "onmousewheel" in document; + var hasWheelEventSupport = false; + + var Control = Class.extend({ + Statics: { + elementIdCache: elementIdCache + }, + + isRtl: function() { + return Control.rtl; + }, + + /** + * Class/id prefix to use for all controls. + * + * @final + * @field {String} classPrefix + */ + classPrefix: "mce-", + + /** + * Constructs a new control instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {String} style Style CSS properties to add. + * @setting {String} border Border box values example: 1 1 1 1 + * @setting {String} padding Padding box values example: 1 1 1 1 + * @setting {String} margin Margin box values example: 1 1 1 1 + * @setting {Number} minWidth Minimal width for the control. + * @setting {Number} minHeight Minimal height for the control. + * @setting {String} classes Space separated list of classes to add. + * @setting {String} role WAI-ARIA role to use for control. + * @setting {Boolean} hidden Is the control hidden by default. + * @setting {Boolean} disabled Is the control disabled by default. + * @setting {String} name Name of the control instance. + */ + init: function(settings) { + var self = this, classes, i; + + self.settings = settings = Tools.extend({}, self.Defaults, settings); + + // Initial states + self._id = settings.id || DomUtils.id(); + self._text = self._name = ''; + self._width = self._height = 0; + self._aria = {role: settings.role}; + + // Setup classes + classes = settings.classes; + if (classes) { + classes = classes.split(' '); + classes.map = {}; + i = classes.length; + while (i--) { + classes.map[classes[i]] = true; + } + } + + self._classes = classes || []; + self.visible(true); + + // Set some properties + Tools.each('title text width height name classes visible disabled active value'.split(' '), function(name) { + var value = settings[name], undef; + + if (value !== undef) { + self[name](value); + } else if (self['_' + name] === undef) { + self['_' + name] = false; + } + }); + + self.on('click', function() { + if (self.disabled()) { + return false; + } + }); + + // TODO: Is this needed duplicate code see above? + if (settings.classes) { + Tools.each(settings.classes.split(' '), function(cls) { + self.addClass(cls); + }); + } + + /** + * Name/value object with settings for the current control. + * + * @field {Object} settings + */ + self.settings = settings; + + self._borderBox = self.parseBox(settings.border); + self._paddingBox = self.parseBox(settings.padding); + self._marginBox = self.parseBox(settings.margin); + + if (settings.hidden) { + self.hide(); + } + }, + + // Will generate getter/setter methods for these properties + Properties: 'parent,title,text,width,height,disabled,active,name,value', + + // Will generate empty dummy functions for these + Methods: 'renderHtml', + + /** + * Returns the root element to render controls into. + * + * @method getContainerElm + * @return {Element} HTML DOM element to render into. + */ + getContainerElm: function() { + return document.body; + }, + + /** + * Returns a control instance for the current DOM element. + * + * @method getParentCtrl + * @param {Element} elm HTML dom element to get parent control from. + * @return {tinymce.ui.Control} Control instance or undefined. + */ + getParentCtrl: function(elm) { + var ctrl, lookup = this.getRoot().controlIdLookup; + + while (elm && lookup) { + ctrl = lookup[elm.id]; + if (ctrl) { + break; + } + + elm = elm.parentNode; + } + + return ctrl; + }, + + /** + * Parses the specified box value. A box value contains 1-4 properties in clockwise order. + * + * @method parseBox + * @param {String/Number} value Box value "0 1 2 3" or "0" etc. + * @return {Object} Object with top/right/bottom/left properties. + * @private + */ + parseBox: function(value) { + var len, radix = 10; + + if (!value) { + return; + } + + if (typeof(value) === "number") { + value = value || 0; + + return { + top: value, + left: value, + bottom: value, + right: value + }; + } + + value = value.split(' '); + len = value.length; + + if (len === 1) { + value[1] = value[2] = value[3] = value[0]; + } else if (len === 2) { + value[2] = value[0]; + value[3] = value[1]; + } else if (len === 3) { + value[3] = value[1]; + } + + return { + top: parseInt(value[0], radix) || 0, + right: parseInt(value[1], radix) || 0, + bottom: parseInt(value[2], radix) || 0, + left: parseInt(value[3], radix) || 0 + }; + }, + + borderBox: function() { + return this._borderBox; + }, + + paddingBox: function() { + return this._paddingBox; + }, + + marginBox: function() { + return this._marginBox; + }, + + measureBox: function(elm, prefix) { + function getStyle(name) { + var defaultView = document.defaultView; + + if (defaultView) { + // Remove camelcase + name = name.replace(/[A-Z]/g, function(a) { + return '-' + a; + }); + + return defaultView.getComputedStyle(elm, null).getPropertyValue(name); + } + + return elm.currentStyle[name]; + } + + function getSide(name) { + var val = parseFloat(getStyle(name), 10); + + return isNaN(val) ? 0 : val; + } + + return { + top: getSide(prefix + "TopWidth"), + right: getSide(prefix + "RightWidth"), + bottom: getSide(prefix + "BottomWidth"), + left: getSide(prefix + "LeftWidth") + }; + }, + + /** + * Initializes the current controls layout rect. + * This will be executed by the layout managers to determine the + * default minWidth/minHeight etc. + * + * @method initLayoutRect + * @return {Object} Layout rect instance. + */ + initLayoutRect: function() { + var self = this, settings = self.settings, borderBox, layoutRect; + var elm = self.getEl(), width, height, minWidth, minHeight, autoResize; + var startMinWidth, startMinHeight, initialSize; + + // Measure the current element + borderBox = self._borderBox = self._borderBox || self.measureBox(elm, 'border'); + self._paddingBox = self._paddingBox || self.measureBox(elm, 'padding'); + self._marginBox = self._marginBox || self.measureBox(elm, 'margin'); + initialSize = DomUtils.getSize(elm); + + // Setup minWidth/minHeight and width/height + startMinWidth = settings.minWidth; + startMinHeight = settings.minHeight; + minWidth = startMinWidth || initialSize.width; + minHeight = startMinHeight || initialSize.height; + width = settings.width; + height = settings.height; + autoResize = settings.autoResize; + autoResize = typeof(autoResize) != "undefined" ? autoResize : !width && !height; + + width = width || minWidth; + height = height || minHeight; + + var deltaW = borderBox.left + borderBox.right; + var deltaH = borderBox.top + borderBox.bottom; + + var maxW = settings.maxWidth || 0xFFFF; + var maxH = settings.maxHeight || 0xFFFF; + + // Setup initial layout rect + self._layoutRect = layoutRect = { + x: settings.x || 0, + y: settings.y || 0, + w: width, + h: height, + deltaW: deltaW, + deltaH: deltaH, + contentW: width - deltaW, + contentH: height - deltaH, + innerW: width - deltaW, + innerH: height - deltaH, + startMinWidth: startMinWidth || 0, + startMinHeight: startMinHeight || 0, + minW: Math.min(minWidth, maxW), + minH: Math.min(minHeight, maxH), + maxW: maxW, + maxH: maxH, + autoResize: autoResize, + scrollW: 0 + }; + + self._lastLayoutRect = {}; + + return layoutRect; + }, + + /** + * Getter/setter for the current layout rect. + * + * @method layoutRect + * @param {Object} [newRect] Optional new layout rect. + * @return {tinymce.ui.Control/Object} Current control or rect object. + */ + layoutRect: function(newRect) { + var self = this, curRect = self._layoutRect, lastLayoutRect, size, deltaWidth, deltaHeight, undef, repaintControls; + + // Initialize default layout rect + if (!curRect) { + curRect = self.initLayoutRect(); + } + + // Set new rect values + if (newRect) { + // Calc deltas between inner and outer sizes + deltaWidth = curRect.deltaW; + deltaHeight = curRect.deltaH; + + // Set x position + if (newRect.x !== undef) { + curRect.x = newRect.x; + } + + // Set y position + if (newRect.y !== undef) { + curRect.y = newRect.y; + } + + // Set minW + if (newRect.minW !== undef) { + curRect.minW = newRect.minW; + } + + // Set minH + if (newRect.minH !== undef) { + curRect.minH = newRect.minH; + } + + // Set new width and calculate inner width + size = newRect.w; + if (size !== undef) { + size = size < curRect.minW ? curRect.minW : size; + size = size > curRect.maxW ? curRect.maxW : size; + curRect.w = size; + curRect.innerW = size - deltaWidth; + } + + // Set new height and calculate inner height + size = newRect.h; + if (size !== undef) { + size = size < curRect.minH ? curRect.minH : size; + size = size > curRect.maxH ? curRect.maxH : size; + curRect.h = size; + curRect.innerH = size - deltaHeight; + } + + // Set new inner width and calculate width + size = newRect.innerW; + if (size !== undef) { + size = size < curRect.minW - deltaWidth ? curRect.minW - deltaWidth : size; + size = size > curRect.maxW - deltaWidth ? curRect.maxW - deltaWidth : size; + curRect.innerW = size; + curRect.w = size + deltaWidth; + } + + // Set new height and calculate inner height + size = newRect.innerH; + if (size !== undef) { + size = size < curRect.minH - deltaHeight ? curRect.minH - deltaHeight : size; + size = size > curRect.maxH - deltaHeight ? curRect.maxH - deltaHeight : size; + curRect.innerH = size; + curRect.h = size + deltaHeight; + } + + // Set new contentW + if (newRect.contentW !== undef) { + curRect.contentW = newRect.contentW; + } + + // Set new contentH + if (newRect.contentH !== undef) { + curRect.contentH = newRect.contentH; + } + + // Compare last layout rect with the current one to see if we need to repaint or not + lastLayoutRect = self._lastLayoutRect; + if (lastLayoutRect.x !== curRect.x || lastLayoutRect.y !== curRect.y || + lastLayoutRect.w !== curRect.w || lastLayoutRect.h !== curRect.h) { + repaintControls = Control.repaintControls; + + if (repaintControls) { + if (repaintControls.map && !repaintControls.map[self._id]) { + repaintControls.push(self); + repaintControls.map[self._id] = true; + } + } + + lastLayoutRect.x = curRect.x; + lastLayoutRect.y = curRect.y; + lastLayoutRect.w = curRect.w; + lastLayoutRect.h = curRect.h; + } + + return self; + } + + return curRect; + }, + + /** + * Repaints the control after a layout operation. + * + * @method repaint + */ + repaint: function() { + var self = this, style, bodyStyle, rect, borderBox, borderW = 0, borderH = 0, lastRepaintRect, round; + + // Use Math.round on all values on IE < 9 + round = !document.createRange ? Math.round : function(value) { + return value; + }; + + style = self.getEl().style; + rect = self._layoutRect; + lastRepaintRect = self._lastRepaintRect || {}; + + borderBox = self._borderBox; + borderW = borderBox.left + borderBox.right; + borderH = borderBox.top + borderBox.bottom; + + if (rect.x !== lastRepaintRect.x) { + style.left = round(rect.x) + 'px'; + lastRepaintRect.x = rect.x; + } + + if (rect.y !== lastRepaintRect.y) { + style.top = round(rect.y) + 'px'; + lastRepaintRect.y = rect.y; + } + + if (rect.w !== lastRepaintRect.w) { + style.width = round(rect.w - borderW) + 'px'; + lastRepaintRect.w = rect.w; + } + + if (rect.h !== lastRepaintRect.h) { + style.height = round(rect.h - borderH) + 'px'; + lastRepaintRect.h = rect.h; + } + + // Update body if needed + if (self._hasBody && rect.innerW !== lastRepaintRect.innerW) { + bodyStyle = self.getEl('body').style; + bodyStyle.width = round(rect.innerW) + 'px'; + lastRepaintRect.innerW = rect.innerW; + } + + if (self._hasBody && rect.innerH !== lastRepaintRect.innerH) { + bodyStyle = bodyStyle || self.getEl('body').style; + bodyStyle.height = round(rect.innerH) + 'px'; + lastRepaintRect.innerH = rect.innerH; + } + + self._lastRepaintRect = lastRepaintRect; + self.fire('repaint', {}, false); + }, + + /** + * Binds a callback to the specified event. This event can both be + * native browser events like "click" or custom ones like PostRender. + * + * The callback function will be passed a DOM event like object that enables yout do stop propagation. + * + * @method on + * @param {String} name Name of the event to bind. For example "click". + * @param {String/function} callback Callback function to execute ones the event occurs. + * @return {tinymce.ui.Control} Current control object. + */ + on: function(name, callback) { + var self = this, bindings, handlers, names, i; + + function resolveCallbackName(name) { + var callback, scope; + + return function(e) { + if (!callback) { + self.parents().each(function(ctrl) { + var callbacks = ctrl.settings.callbacks; + + if (callbacks && (callback = callbacks[name])) { + scope = ctrl; + return false; + } + }); + } + + return callback.call(scope, e); + }; + } + + if (callback) { + if (typeof(callback) == 'string') { + callback = resolveCallbackName(callback); + } + + names = name.toLowerCase().split(' '); + i = names.length; + while (i--) { + name = names[i]; + + bindings = self._bindings; + if (!bindings) { + bindings = self._bindings = {}; + } + + handlers = bindings[name]; + if (!handlers) { + handlers = bindings[name] = []; + } + + handlers.push(callback); + + if (nativeEvents[name]) { + if (!self._nativeEvents) { + self._nativeEvents = {name: true}; + } else { + self._nativeEvents[name] = true; + } + + if (self._rendered) { + self.bindPendingEvents(); + } + } + } + } + + return self; + }, + + /** + * Unbinds the specified event and optionally a specific callback. If you omit the name + * parameter all event handlers will be removed. If you omit the callback all event handles + * by the specified name will be removed. + * + * @method off + * @param {String} [name] Name for the event to unbind. + * @param {function} [callback] Callback function to unbind. + * @return {mxex.ui.Control} Current control object. + */ + off: function(name, callback) { + var self = this, i, bindings = self._bindings, handlers, bindingName, names, hi; + + if (bindings) { + if (name) { + names = name.toLowerCase().split(' '); + i = names.length; + while (i--) { + name = names[i]; + handlers = bindings[name]; + + // Unbind all handlers + if (!name) { + for (bindingName in bindings) { + bindings[bindingName].length = 0; + } + + return self; + } + + if (handlers) { + // Unbind all by name + if (!callback) { + handlers.length = 0; + } else { + // Unbind specific ones + hi = handlers.length; + while (hi--) { + if (handlers[hi] === callback) { + handlers.splice(hi, 1); + } + } + } + } + } + } else { + self._bindings = []; + } + } + + return self; + }, + + /** + * Fires the specified event by name and arguments on the control. This will execute all + * bound event handlers. + * + * @method fire + * @param {String} name Name of the event to fire. + * @param {Object} [args] Arguments to pass to the event. + * @param {Boolean} [bubble] Value to control bubbeling. Defaults to true. + * @return {Object} Current arguments object. + */ + fire: function(name, args, bubble) { + var self = this, i, l, handlers, parentCtrl; + + name = name.toLowerCase(); + + // Dummy function that gets replaced on the delegation state functions + function returnFalse() { + return false; + } + + // Dummy function that gets replaced on the delegation state functions + function returnTrue() { + return true; + } + + // Setup empty object if args is omited + args = args || {}; + + // Stick type into event object + if (!args.type) { + args.type = name; + } + + // Stick control into event + if (!args.control) { + args.control = self; + } + + // Add event delegation methods if they are missing + if (!args.preventDefault) { + // Add preventDefault method + args.preventDefault = function() { + args.isDefaultPrevented = returnTrue; + }; + + // Add stopPropagation + args.stopPropagation = function() { + args.isPropagationStopped = returnTrue; + }; + + // Add stopImmediatePropagation + args.stopImmediatePropagation = function() { + args.isImmediatePropagationStopped = returnTrue; + }; + + // Add event delegation states + args.isDefaultPrevented = returnFalse; + args.isPropagationStopped = returnFalse; + args.isImmediatePropagationStopped = returnFalse; + } + + if (self._bindings) { + handlers = self._bindings[name]; + + if (handlers) { + for (i = 0, l = handlers.length; i < l; i++) { + // Execute callback and break if the callback returns a false + if (!args.isImmediatePropagationStopped() && handlers[i].call(self, args) === false) { + break; + } + } + } + } + + // Bubble event up to parent controls + if (bubble !== false) { + parentCtrl = self.parent(); + while (parentCtrl && !args.isPropagationStopped()) { + parentCtrl.fire(name, args, false); + parentCtrl = parentCtrl.parent(); + } + } + + return args; + }, + + /** + * Returns true/false if the specified event has any listeners. + * + * @method hasEventListeners + * @param {String} name Name of the event to check for. + * @return {Boolean} True/false state if the event has listeners. + */ + hasEventListeners: function(name) { + return name in this._bindings; + }, + + /** + * Returns a control collection with all parent controls. + * + * @method parents + * @param {String} selector Optional selector expression to find parents. + * @return {tinymce.ui.Collection} Collection with all parent controls. + */ + parents: function(selector) { + var self = this, ctrl, parents = new Collection(); + + // Add each parent to collection + for (ctrl = self.parent(); ctrl; ctrl = ctrl.parent()) { + parents.add(ctrl); + } + + // Filter away everything that doesn't match the selector + if (selector) { + parents = parents.filter(selector); + } + + return parents; + }, + + /** + * Returns the control next to the current control. + * + * @method next + * @return {tinymce.ui.Control} Next control instance. + */ + next: function() { + var parentControls = this.parent().items(); + + return parentControls[parentControls.indexOf(this) + 1]; + }, + + /** + * Returns the control previous to the current control. + * + * @method prev + * @return {tinymce.ui.Control} Previous control instance. + */ + prev: function() { + var parentControls = this.parent().items(); + + return parentControls[parentControls.indexOf(this) - 1]; + }, + + /** + * Find the common ancestor for two control instances. + * + * @method findCommonAncestor + * @param {tinymce.ui.Control} ctrl1 First control. + * @param {tinymce.ui.Control} ctrl2 Second control. + * @return {tinymce.ui.Control} Ancestor control instance. + */ + findCommonAncestor: function(ctrl1, ctrl2) { + var parentCtrl; + + while (ctrl1) { + parentCtrl = ctrl2; + + while (parentCtrl && ctrl1 != parentCtrl) { + parentCtrl = parentCtrl.parent(); + } + + if (ctrl1 == parentCtrl) { + break; + } + + ctrl1 = ctrl1.parent(); + } + + return ctrl1; + }, + + /** + * Returns true/false if the specific control has the specific class. + * + * @method hasClass + * @param {String} cls Class to check for. + * @param {String} [group] Sub element group name. + * @return {Boolean} True/false if the control has the specified class. + */ + hasClass: function(cls, group) { + var classes = this._classes[group || 'control']; + + cls = this.classPrefix + cls; + + return classes && !!classes.map[cls]; + }, + + /** + * Adds the specified class to the control + * + * @method addClass + * @param {String} cls Class to check for. + * @param {String} [group] Sub element group name. + * @return {tinymce.ui.Control} Current control object. + */ + addClass: function(cls, group) { + var self = this, classes, elm; + + cls = this.classPrefix + cls; + classes = self._classes[group || 'control']; + + if (!classes) { + classes = []; + classes.map = {}; + self._classes[group || 'control'] = classes; + } + + if (!classes.map[cls]) { + classes.map[cls] = cls; + classes.push(cls); + + if (self._rendered) { + elm = self.getEl(group); + + if (elm) { + elm.className = classes.join(' '); + } + } + } + + return self; + }, + + /** + * Removes the specified class from the control. + * + * @method removeClass + * @param {String} cls Class to remove. + * @param {String} [group] Sub element group name. + * @return {tinymce.ui.Control} Current control object. + */ + removeClass: function(cls, group) { + var self = this, classes, i, elm; + + cls = this.classPrefix + cls; + classes = self._classes[group || 'control']; + if (classes && classes.map[cls]) { + delete classes.map[cls]; + + i = classes.length; + while (i--) { + if (classes[i] === cls) { + classes.splice(i, 1); + } + } + } + + if (self._rendered) { + elm = self.getEl(group); + + if (elm) { + elm.className = classes.join(' '); + } + } + + return self; + }, + + /** + * Toggles the specified class on the control. + * + * @method toggleClass + * @param {String} cls Class to remove. + * @param {Boolean} state True/false state to add/remove class. + * @param {String} [group] Sub element group name. + * @return {tinymce.ui.Control} Current control object. + */ + toggleClass: function(cls, state, group) { + var self = this; + + if (state) { + self.addClass(cls, group); + } else { + self.removeClass(cls, group); + } + + return self; + }, + + /** + * Returns the class string for the specified group name. + * + * @method classes + * @param {String} [group] Group to get clases by. + * @return {String} Classes for the specified group. + */ + classes: function(group) { + var classes = this._classes[group || 'control']; + + return classes ? classes.join(' ') : ''; + }, + + /** + * Sets the inner HTML of the control element. + * + * @method innerHtml + * @param {String} html Html string to set as inner html. + * @return {tinymce.ui.Control} Current control object. + */ + innerHtml: function(html) { + DomUtils.innerHtml(this.getEl(), html); + return this; + }, + + /** + * Returns the control DOM element or sub element. + * + * @method getEl + * @param {String} [suffix] Suffix to get element by. + * @param {Boolean} [dropCache] True if the cache for the element should be dropped. + * @return {Element} HTML DOM element for the current control or it's children. + */ + getEl: function(suffix, dropCache) { + var elm, id = suffix ? this._id + '-' + suffix : this._id; + + elm = elementIdCache[id] = (dropCache === true ? null : elementIdCache[id]) || DomUtils.get(id); + + return elm; + }, + + /** + * Sets/gets the visible for the control. + * + * @method visible + * @param {Boolean} state Value to set to control. + * @return {Boolean/tinymce.ui.Control} Current control on a set operation or current state on a get. + */ + visible: function(state) { + var self = this, parentCtrl; + + if (typeof(state) !== "undefined") { + if (self._visible !== state) { + if (self._rendered) { + self.getEl().style.display = state ? '' : 'none'; + } + + self._visible = state; + + // Parent container needs to reflow + parentCtrl = self.parent(); + if (parentCtrl) { + parentCtrl._lastRect = null; + } + + self.fire(state ? 'show' : 'hide'); + } + + return self; + } + + return self._visible; + }, + + /** + * Sets the visible state to true. + * + * @method show + * @return {tinymce.ui.Control} Current control instance. + */ + show: function() { + return this.visible(true); + }, + + /** + * Sets the visible state to false. + * + * @method hide + * @return {tinymce.ui.Control} Current control instance. + */ + hide: function() { + return this.visible(false); + }, + + /** + * Focuses the current control. + * + * @method focus + * @return {tinymce.ui.Control} Current control instance. + */ + focus: function() { + try { + this.getEl().focus(); + } catch (ex) { + // Ignore IE error + } + + return this; + }, + + /** + * Blurs the current control. + * + * @method blur + * @return {tinymce.ui.Control} Current control instance. + */ + blur: function() { + this.getEl().blur(); + + return this; + }, + + /** + * Sets the specified aria property. + * + * @method aria + * @param {String} name Name of the aria property to set. + * @param {String} value Value of the aria property. + * @return {tinymce.ui.Control} Current control instance. + */ + aria: function(name, value) { + var self = this, elm = self.getEl(self.ariaTarget); + + if (typeof(value) === "undefined") { + return self._aria[name]; + } else { + self._aria[name] = value; + } + + if (self._rendered) { + elm.setAttribute(name == 'role' ? name : 'aria-' + name, value); + } + + return self; + }, + + /** + * Encodes the specified string with HTML entities. It will also + * translate the string to different languages. + * + * @method encode + * @param {String/Object/Array} text Text to entity encode. + * @param {Boolean} [translate=true] False if the contents shouldn't be translated. + * @return {String} Encoded and possible traslated string. + */ + encode: function(text, translate) { + if (translate !== false && Control.translate) { + text = Control.translate(text); + } + + return (text || '').replace(/[&<>"]/g, function(match) { + return '&#' + match.charCodeAt(0) + ';'; + }); + }, + + /** + * Adds items before the current control. + * + * @method before + * @param {Array/tinymce.ui.Collection} items Array of items to prepend before this control. + * @return {tinymce.ui.Control} Current control instance. + */ + before: function(items) { + var self = this, parent = self.parent(); + + if (parent) { + parent.insert(items, parent.items().indexOf(self), true); + } + + return self; + }, + + /** + * Adds items after the current control. + * + * @method after + * @param {Array/tinymce.ui.Collection} items Array of items to append after this control. + * @return {tinymce.ui.Control} Current control instance. + */ + after: function(items) { + var self = this, parent = self.parent(); + + if (parent) { + parent.insert(items, parent.items().indexOf(self)); + } + + return self; + }, + + /** + * Removes the current control from DOM and from UI collections. + * + * @method remove + * @return {tinymce.ui.Control} Current control instance. + */ + remove: function() { + var self = this, elm = self.getEl(), parent = self.parent(), newItems, i; + + if (self.items) { + var controls = self.items().toArray(); + i = controls.length; + while (i--) { + controls[i].remove(); + } + } + + if (parent && parent.items) { + newItems = []; + + parent.items().each(function(item) { + if (item !== self) { + newItems.push(item); + } + }); + + parent.items().set(newItems); + parent._lastRect = null; + } + + if (self._eventsRoot && self._eventsRoot == self) { + DomUtils.off(elm); + } + + var lookup = self.getRoot().controlIdLookup; + if (lookup) { + delete lookup[self._id]; + } + + delete elementIdCache[self._id]; + + if (elm && elm.parentNode) { + var nodes = elm.getElementsByTagName('*'); + + i = nodes.length; + while (i--) { + delete elementIdCache[nodes[i].id]; + } + + elm.parentNode.removeChild(elm); + } + + self._rendered = false; + + return self; + }, + + /** + * Renders the control before the specified element. + * + * @method renderBefore + * @param {Element} elm Element to render before. + * @return {tinymce.ui.Control} Current control instance. + */ + renderBefore: function(elm) { + var self = this; + + elm.parentNode.insertBefore(DomUtils.createFragment(self.renderHtml()), elm); + self.postRender(); + + return self; + }, + + /** + * Renders the control to the specified element. + * + * @method renderBefore + * @param {Element} elm Element to render to. + * @return {tinymce.ui.Control} Current control instance. + */ + renderTo: function(elm) { + var self = this; + + elm = elm || self.getContainerElm(); + elm.appendChild(DomUtils.createFragment(self.renderHtml())); + self.postRender(); + + return self; + }, + + /** + * Post render method. Called after the control has been rendered to the target. + * + * @method postRender + * @return {tinymce.ui.Control} Current control instance. + */ + postRender: function() { + var self = this, settings = self.settings, elm, box, parent, name, parentEventsRoot; + + // Bind on<event> settings + for (name in settings) { + if (name.indexOf("on") === 0) { + self.on(name.substr(2), settings[name]); + } + } + + if (self._eventsRoot) { + for (parent = self.parent(); !parentEventsRoot && parent; parent = parent.parent()) { + parentEventsRoot = parent._eventsRoot; + } + + if (parentEventsRoot) { + for (name in parentEventsRoot._nativeEvents) { + self._nativeEvents[name] = true; + } + } + } + + self.bindPendingEvents(); + + if (settings.style) { + elm = self.getEl(); + if (elm) { + elm.setAttribute('style', settings.style); + elm.style.cssText = settings.style; + } + } + + if (!self._visible) { + DomUtils.css(self.getEl(), 'display', 'none'); + } + + if (self.settings.border) { + box = self.borderBox(); + DomUtils.css(self.getEl(), { + 'border-top-width': box.top, + 'border-right-width': box.right, + 'border-bottom-width': box.bottom, + 'border-left-width': box.left + }); + } + + // Add instance to lookup + var root = self.getRoot(); + if (!root.controlIdLookup) { + root.controlIdLookup = {}; + } + + root.controlIdLookup[self._id] = self; + + for (var key in self._aria) { + self.aria(key, self._aria[key]); + } + + self.fire('postrender', {}, false); + }, + + /** + * Scrolls the current control into view. + * + * @method scrollIntoView + * @param {String} align Alignment in view top|center|bottom. + * @return {tinymce.ui.Control} Current control instance. + */ + scrollIntoView: function(align) { + function getOffset(elm, rootElm) { + var x, y, parent = elm; + + x = y = 0; + while (parent && parent != rootElm && parent.nodeType) { + x += parent.offsetLeft || 0; + y += parent.offsetTop || 0; + parent = parent.offsetParent; + } + + return {x: x, y: y}; + } + + var elm = this.getEl(), parentElm = elm.parentNode; + var x, y, width, height, parentWidth, parentHeight; + var pos = getOffset(elm, parentElm); + + x = pos.x; + y = pos.y; + width = elm.offsetWidth; + height = elm.offsetHeight; + parentWidth = parentElm.clientWidth; + parentHeight = parentElm.clientHeight; + + if (align == "end") { + x -= parentWidth - width; + y -= parentHeight - height; + } else if (align == "center") { + x -= (parentWidth / 2) - (width / 2); + y -= (parentHeight / 2) - (height / 2); + } + + parentElm.scrollLeft = x; + parentElm.scrollTop = y; + + return this; + }, + + /** + * Binds pending DOM events. + * + * @private + */ + bindPendingEvents: function() { + var self = this, i, l, parents, eventRootCtrl, nativeEvents, name; + + function delegate(e) { + var control = self.getParentCtrl(e.target); + + if (control) { + control.fire(e.type, e); + } + } + + function mouseLeaveHandler() { + var ctrl = eventRootCtrl._lastHoverCtrl; + + if (ctrl) { + ctrl.fire("mouseleave", {target: ctrl.getEl()}); + + ctrl.parents().each(function(ctrl) { + ctrl.fire("mouseleave", {target: ctrl.getEl()}); + }); + + eventRootCtrl._lastHoverCtrl = null; + } + } + + function mouseEnterHandler(e) { + var ctrl = self.getParentCtrl(e.target), lastCtrl = eventRootCtrl._lastHoverCtrl, idx = 0, i, parents, lastParents; + + // Over on a new control + if (ctrl !== lastCtrl) { + eventRootCtrl._lastHoverCtrl = ctrl; + + parents = ctrl.parents().toArray().reverse(); + parents.push(ctrl); + + if (lastCtrl) { + lastParents = lastCtrl.parents().toArray().reverse(); + lastParents.push(lastCtrl); + + for (idx = 0; idx < lastParents.length; idx++) { + if (parents[idx] !== lastParents[idx]) { + break; + } + } + + for (i = lastParents.length - 1; i >= idx; i--) { + lastCtrl = lastParents[i]; + lastCtrl.fire("mouseleave", { + target : lastCtrl.getEl() + }); + } + } + + for (i = idx; i < parents.length; i++) { + ctrl = parents[i]; + ctrl.fire("mouseenter", { + target : ctrl.getEl() + }); + } + } + } + + function fixWheelEvent(e) { + e.preventDefault(); + + if (e.type == "mousewheel") { + e.deltaY = -1 / 40 * e.wheelDelta; + + if (e.wheelDeltaX) { + e.deltaX = -1 / 40 * e.wheelDeltaX; + } + } else { + e.deltaX = 0; + e.deltaY = e.detail; + } + + e = self.fire("wheel", e); + } + + self._rendered = true; + + nativeEvents = self._nativeEvents; + if (nativeEvents) { + // Find event root element if it exists + parents = self.parents().toArray(); + parents.unshift(self); + for (i = 0, l = parents.length; !eventRootCtrl && i < l; i++) { + eventRootCtrl = parents[i]._eventsRoot; + } + + // Event root wasn't found the use the root control + if (!eventRootCtrl) { + eventRootCtrl = parents[parents.length - 1] || self; + } + + // Set the eventsRoot property on children that didn't have it + self._eventsRoot = eventRootCtrl; + for (l = i, i = 0; i < l; i++) { + parents[i]._eventsRoot = eventRootCtrl; + } + + // Bind native event delegates + for (name in nativeEvents) { + if (!nativeEvents) { + return false; + } + + if (name === "wheel" && !hasWheelEventSupport) { + if (hasMouseWheelEventSupport) { + DomUtils.on(self.getEl(), "mousewheel", fixWheelEvent); + } else { + DomUtils.on(self.getEl(), "DOMMouseScroll", fixWheelEvent); + } + + continue; + } + + // Special treatment for mousenter/mouseleave since these doesn't bubble + if (name === "mouseenter" || name === "mouseleave") { + // Fake mousenter/mouseleave + if (!eventRootCtrl._hasMouseEnter) { + DomUtils.on(eventRootCtrl.getEl(), "mouseleave", mouseLeaveHandler); + DomUtils.on(eventRootCtrl.getEl(), "mouseover", mouseEnterHandler); + eventRootCtrl._hasMouseEnter = 1; + } + } else if (!eventRootCtrl[name]) { + DomUtils.on(eventRootCtrl.getEl(), name, delegate); + eventRootCtrl[name] = true; + } + + // Remove the event once it's bound + nativeEvents[name] = false; + } + } + }, + + getRoot: function() { + var ctrl = this, rootControl, parents = []; + + while (ctrl) { + if (ctrl.rootControl) { + rootControl = ctrl.rootControl; + break; + } + + parents.push(ctrl); + rootControl = ctrl; + ctrl = ctrl.parent(); + } + + if (!rootControl) { + rootControl = this; + } + + var i = parents.length; + while (i--) { + parents[i].rootControl = rootControl; + } + + return rootControl; + }, + + /** + * Reflows the current control and it's parents. + * This should be used after you for example append children to the current control so + * that the layout managers know that they need to reposition everything. + * + * @example + * container.append({type: 'button', text: 'My button'}).reflow(); + * + * @method reflow + * @return {tinymce.ui.Control} Current control instance. + */ + reflow: function() { + this.repaint(); + + return this; + } + + /** + * Sets/gets the parent container for the control. + * + * @method parent + * @param {tinymce.ui.Container} parent Optional parent to set. + * @return {tinymce.ui.Control} Parent control or the current control on a set action. + */ + // parent: function(parent) {} -- Generated + + /** + * Sets/gets the text for the control. + * + * @method text + * @param {String} value Value to set to control. + * @return {String/tinymce.ui.Control} Current control on a set operation or current value on a get. + */ + // text: function(value) {} -- Generated + + /** + * Sets/gets the width for the control. + * + * @method width + * @param {Number} value Value to set to control. + * @return {Number/tinymce.ui.Control} Current control on a set operation or current value on a get. + */ + // width: function(value) {} -- Generated + + /** + * Sets/gets the height for the control. + * + * @method height + * @param {Number} value Value to set to control. + * @return {Number/tinymce.ui.Control} Current control on a set operation or current value on a get. + */ + // height: function(value) {} -- Generated + + /** + * Sets/gets the disabled state on the control. + * + * @method disabled + * @param {Boolean} state Value to set to control. + * @return {Boolean/tinymce.ui.Control} Current control on a set operation or current state on a get. + */ + // disabled: function(state) {} -- Generated + + /** + * Sets/gets the active for the control. + * + * @method active + * @param {Boolean} state Value to set to control. + * @return {Boolean/tinymce.ui.Control} Current control on a set operation or current state on a get. + */ + // active: function(state) {} -- Generated + + /** + * Sets/gets the name for the control. + * + * @method name + * @param {String} value Value to set to control. + * @return {String/tinymce.ui.Control} Current control on a set operation or current value on a get. + */ + // name: function(value) {} -- Generated + + /** + * Sets/gets the title for the control. + * + * @method title + * @param {String} value Value to set to control. + * @return {String/tinymce.ui.Control} Current control on a set operation or current value on a get. + */ + // title: function(value) {} -- Generated + }); + + return Control; +}); + +// Included from: js/tinymce/classes/ui/Factory.js + +/** + * Factory.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*global tinymce:true */ + +/** + * This class is a factory for control instances. This enables you + * to create instances of controls without having to require the UI controls directly. + * + * It also allow you to override or add new control types. + * + * @class tinymce.ui.Factory + */ +define("tinymce/ui/Factory", [], function() { + "use strict"; + + var types = {}, namespaceInit; + + return { + /** + * Adds a new control instance type to the factory. + * + * @method add + * @param {String} type Type name for example "button". + * @param {function} typeClass Class type function. + */ + add: function(type, typeClass) { + types[type.toLowerCase()] = typeClass; + }, + + /** + * Returns true/false if the specified type exists or not. + * + * @method has + * @param {String} type Type to look for. + * @return {Boolean} true/false if the control by name exists. + */ + has: function(type) { + return !!types[type.toLowerCase()]; + }, + + /** + * Creates a new control instance based on the settings provided. The instance created will be + * based on the specified type property it can also create whole structures of components out of + * the specified JSON object. + * + * @example + * tinymce.ui.Factory.create({ + * type: 'button', + * text: 'Hello world!' + * }); + * + * @method create + * @param {Object/String} settings Name/Value object with items used to create the type. + * @return {tinymce.ui.Control} Control instance based on the specified type. + */ + create: function(type, settings) { + var ControlType, name, namespace; + + // Build type lookup + if (!namespaceInit) { + namespace = tinymce.ui; + + for (name in namespace) { + types[name.toLowerCase()] = namespace[name]; + } + + namespaceInit = true; + } + + // If string is specified then use it as the type + if (typeof(type) == 'string') { + settings = settings || {}; + settings.type = type; + } else { + settings = type; + type = settings.type; + } + + // Find control type + type = type.toLowerCase(); + ControlType = types[type]; + + // #if debug + + if (!ControlType) { + throw new Error("Could not find control by type: " + type); + } + + // #endif + + ControlType = new ControlType(settings); + ControlType.type = type; // Set the type on the instance, this will be used by the Selector engine + + return ControlType; + } + }; +}); + +// Included from: js/tinymce/classes/ui/KeyboardNavigation.js + +/** + * KeyboardNavigation.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles keyboard navigation of controls and elements. + * + * @class tinymce.ui.KeyboardNavigation + */ +define("tinymce/ui/KeyboardNavigation", [ +], function() { + "use strict"; + + /** + * This class handles all keyboard navigation for WAI-ARIA support. Each root container + * gets an instance of this class. + * + * @constructor + */ + return function(settings) { + var root = settings.root, focusedElement, focusedControl; + + focusedElement = document.activeElement; + focusedControl = root.getParentCtrl(focusedElement); + + /** + * Returns the currently focused elements wai aria role of the currently + * focused element or specified element. + * + * @private + * @param {Element} elm Optional element to get role from. + * @return {String} Role of specified element. + */ + function getRole(elm) { + elm = elm || focusedElement; + + return elm && elm.getAttribute('role'); + } + + /** + * Returns the wai role of the parent element of the currently + * focused element or specified element. + * + * @private + * @param {Element} elm Optional element to get parent role from. + * @return {String} Role of the first parent that has a role. + */ + function getParentRole(elm) { + var role, parent = elm || focusedElement; + + while ((parent = parent.parentNode)) { + if ((role = getRole(parent))) { + return role; + } + } + } + + /** + * Returns a wai aria property by name for example aria-selected. + * + * @private + * @param {String} name Name of the aria property to get for example "disabled". + * @return {String} Aria property value. + */ + function getAriaProp(name) { + var elm = focusedElement; + + if (elm) { + return elm.getAttribute('aria-' + name); + } + } + + /** + * Is the element a text input element or not. + * + * @private + * @param {Element} elm Element to check if it's an text input element or not. + * @return {Boolean} True/false if the element is a text element or not. + */ + function isTextInputElement(elm) { + // Notice: since type can be "email" etc we don't check the type + // So all input elements gets treated as text input elements + return elm.tagName == "INPUT" || elm.tagName == "TEXTAREA"; + } + + /** + * Returns true/false if the specified element can be focused or not. + * + * @private + * @param {Element} elm DOM element to check if it can be focused or not. + * @return {Boolean} True/false if the element can have focus. + */ + function canFocus(elm) { + if (isTextInputElement(elm) && !elm.hidden) { + return true; + } + + if (/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell)$/.test(getRole(elm))) { + return true; + } + + return false; + } + + /** + * Returns an array of focusable visible elements within the specified container element. + * + * @private + * @param {Element} elm DOM element to find focusable elements within. + * @return {Array} Array of focusable elements. + */ + function getFocusElements(elm) { + var elements = []; + + function collect(elm) { + if (elm.nodeType != 1 || elm.style.display == 'none') { + return; + } + + if (canFocus(elm)) { + elements.push(elm); + } + + for (var i = 0; i < elm.childNodes.length; i++) { + collect(elm.childNodes[i]); + } + } + + collect(elm || root.getEl()); + + return elements; + } + + /** + * Returns the navigation root control for the specified control. The navigation root + * is the control that the keyboard navigation gets scoped to for example a menubar or toolbar group. + * It will look for parents of the specified target control or the currenty focused control if this option is omitted. + * + * @private + * @param {tinymce.ui.Control} targetControl Optional target control to find root of. + * @return {tinymce.ui.Control} Navigation root control. + */ + function getNavigationRoot(targetControl) { + var navigationRoot, controls; + + targetControl = targetControl || focusedControl; + controls = targetControl.parents().toArray(); + controls.unshift(targetControl); + + for (var i = 0; i < controls.length; i++) { + navigationRoot = controls[i]; + + if (navigationRoot.settings.ariaRoot) { + break; + } + } + + return navigationRoot; + } + + /** + * Focuses the first item in the specified targetControl element or the last aria index if the + * navigation root has the ariaRemember option enabled. + * + * @private + * @param {tinymce.ui.Control} targetControl Target control to focus the first item in. + */ + function focusFirst(targetControl) { + var navigationRoot = getNavigationRoot(targetControl); + var focusElements = getFocusElements(navigationRoot.getEl()); + + if (navigationRoot.settings.ariaRemember && "lastAriaIndex" in navigationRoot) { + moveFocusToIndex(navigationRoot.lastAriaIndex, focusElements); + } else { + moveFocusToIndex(0, focusElements); + } + } + + /** + * Moves the focus to the specified index within the elements list. + * This will scope the index to the size of the element list if it changed. + * + * @private + * @param {Number} idx Specified index to move to. + * @param {Array} elements Array with dom elements to move focus within. + * @return {Number} Input index or a changed index if it was out of range. + */ + function moveFocusToIndex(idx, elements) { + if (idx < 0) { + idx = elements.length - 1; + } else if (idx >= elements.length) { + idx = 0; + } + + if (elements[idx]) { + elements[idx].focus(); + } + + return idx; + } + + /** + * Moves the focus forwards or backwards. + * + * @private + * @param {Number} dir Direction to move in positive means forward, negative means backwards. + * @param {Array} elements Optional array of elements to move within defaults to the current navigation roots elements. + */ + function moveFocus(dir, elements) { + var idx = -1, navigationRoot = getNavigationRoot(); + + elements = elements || getFocusElements(navigationRoot.getEl()); + + for (var i = 0; i < elements.length; i++) { + if (elements[i] === focusedElement) { + idx = i; + } + } + + idx += dir; + navigationRoot.lastAriaIndex = moveFocusToIndex(idx, elements); + } + + /** + * Moves the focus to the left this is called by the left key. + * + * @private + */ + function left() { + var parentRole = getParentRole(); + + if (parentRole == "tablist") { + moveFocus(-1, getFocusElements(focusedElement.parentNode)); + } else if (focusedControl.parent().submenu) { + cancel(); + } else { + moveFocus(-1); + } + } + + /** + * Moves the focus to the right this is called by the right key. + * + * @private + */ + function right() { + var role = getRole(), parentRole = getParentRole(); + + if (parentRole == "tablist") { + moveFocus(1, getFocusElements(focusedElement.parentNode)); + } else if (role == "menuitem" && parentRole == "menu" && getAriaProp('haspopup')) { + enter(); + } else { + moveFocus(1); + } + } + + /** + * Moves the focus to the up this is called by the up key. + * + * @private + */ + function up() { + moveFocus(-1); + } + + /** + * Moves the focus to the up this is called by the down key. + * + * @private + */ + function down() { + var role = getRole(), parentRole = getParentRole(); + + if (role == "menuitem" && parentRole == "menubar") { + enter(); + } else if (role == "button" && getAriaProp('haspopup')) { + enter({key: 'down'}); + } else { + moveFocus(1); + } + } + + /** + * Moves the focus to the next item or previous item depending on shift key. + * + * @private + * @param {DOMEvent} e DOM event object. + */ + function tab(e) { + var parentRole = getParentRole(); + + if (parentRole == "tablist") { + var elm = getFocusElements(focusedControl.getEl('body'))[0]; + + if (elm) { + elm.focus(); + } + } else { + moveFocus(e.shiftKey ? -1 : 1); + } + } + + /** + * Calls the cancel event on the currently focused control. This is normally done using the Esc key. + * + * @private + */ + function cancel() { + focusedControl.fire('cancel'); + } + + /** + * Calls the click event on the currently focused control. This is normally done using the Enter/Space keys. + * + * @private + * @param {Object} aria Optional aria data to pass along with the enter event. + */ + function enter(aria) { + aria = aria || {}; + focusedControl.fire('click', {target: focusedElement, aria: aria}); + } + + root.on('keydown', function(e) { + function handleNonTabEvent(e, handler) { + // Ignore non tab keys for text elements + if (isTextInputElement(focusedElement)) { + return; + } + + if (handler(e) !== false) { + e.preventDefault(); + } + } + + if (e.isDefaultPrevented()) { + return; + } + + switch (e.keyCode) { + case 37: // DOM_VK_LEFT + handleNonTabEvent(e, left); + break; + + case 39: // DOM_VK_RIGHT + handleNonTabEvent(e, right); + break; + + case 38: // DOM_VK_UP + handleNonTabEvent(e, up); + break; + + case 40: // DOM_VK_DOWN + handleNonTabEvent(e, down); + break; + + case 27: // DOM_VK_ESCAPE + handleNonTabEvent(e, cancel); + break; + + case 14: // DOM_VK_ENTER + case 13: // DOM_VK_RETURN + case 32: // DOM_VK_SPACE + handleNonTabEvent(e, enter); + break; + + case 9: // DOM_VK_TAB + if (tab(e) !== false) { + e.preventDefault(); + } + break; + } + }); + + root.on('focusin', function(e) { + focusedElement = e.target; + focusedControl = e.control; + }); + + return { + focusFirst: focusFirst + }; + }; +}); + +// Included from: js/tinymce/classes/ui/Container.js + +/** + * Container.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Container control. This is extended by all controls that can have + * children such as panels etc. You can also use this class directly as an + * generic container instance. The container doesn't have any specific role or style. + * + * @-x-less Container.less + * @class tinymce.ui.Container + * @extends tinymce.ui.Control + */ +define("tinymce/ui/Container", [ + "tinymce/ui/Control", + "tinymce/ui/Collection", + "tinymce/ui/Selector", + "tinymce/ui/Factory", + "tinymce/ui/KeyboardNavigation", + "tinymce/util/Tools", + "tinymce/ui/DomUtils" +], function(Control, Collection, Selector, Factory, KeyboardNavigation, Tools, DomUtils) { + "use strict"; + + var selectorCache = {}; + + return Control.extend({ + layout: '', + innerClass: 'container-inner', + + /** + * Constructs a new control instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {Array} items Items to add to container in JSON format or control instances. + * @setting {String} layout Layout manager by name to use. + * @setting {Object} defaults Default settings to apply to all items. + */ + init: function(settings) { + var self = this; + + self._super(settings); + settings = self.settings; + self._fixed = settings.fixed; + self._items = new Collection(); + + if (self.isRtl()) { + self.addClass('rtl'); + } + + self.addClass('container'); + self.addClass('container-body', 'body'); + + if (settings.containerCls) { + self.addClass(settings.containerCls); + } + + self._layout = Factory.create((settings.layout || self.layout) + 'layout'); + + if (self.settings.items) { + self.add(self.settings.items); + } + + // TODO: Fix this! + self._hasBody = true; + }, + + /** + * Returns a collection of child items that the container currently have. + * + * @method items + * @return {tinymce.ui.Collection} Control collection direct child controls. + */ + items: function() { + return this._items; + }, + + /** + * Find child controls by selector. + * + * @method find + * @param {String} selector Selector CSS pattern to find children by. + * @return {tinymce.ui.Collection} Control collection with child controls. + */ + find: function(selector) { + selector = selectorCache[selector] = selectorCache[selector] || new Selector(selector); + + return selector.find(this); + }, + + /** + * Adds one or many items to the current container. This will create instances of + * the object representations if needed. + * + * @method add + * @param {Array/Object/tinymce.ui.Control} items Array or item that will be added to the container. + * @return {tinymce.ui.Collection} Current collection control. + */ + add: function(items) { + var self = this; + + self.items().add(self.create(items)).parent(self); + + return self; + }, + + /** + * Focuses the current container instance. This will look + * for the first control in the container and focus that. + * + * @method focus + * @param {Boolean} keyboard Optional true/false if the focus was a keyboard focus or not. + * @return {tinymce.ui.Collection} Current instance. + */ + focus: function(keyboard) { + var self = this, focusCtrl, keyboardNav, items; + + if (keyboard) { + keyboardNav = self.keyboardNav || self.parents().eq(-1)[0].keyboardNav; + + if (keyboardNav) { + keyboardNav.focusFirst(self); + return; + } + } + + items = self.find('*'); + + // TODO: Figure out a better way to auto focus alert dialog buttons + if (self.statusbar) { + items.add(self.statusbar.items()); + } + + items.each(function(ctrl) { + if (ctrl.settings.autofocus) { + focusCtrl = null; + return false; + } + + if (ctrl.canFocus) { + focusCtrl = focusCtrl || ctrl; + } + }); + + if (focusCtrl) { + focusCtrl.focus(); + } + + return self; + }, + + /** + * Replaces the specified child control with a new control. + * + * @method replace + * @param {tinymce.ui.Control} oldItem Old item to be replaced. + * @param {tinymce.ui.Control} newItem New item to be inserted. + */ + replace: function(oldItem, newItem) { + var ctrlElm, items = this.items(), i = items.length; + + // Replace the item in collection + while (i--) { + if (items[i] === oldItem) { + items[i] = newItem; + break; + } + } + + if (i >= 0) { + // Remove new item from DOM + ctrlElm = newItem.getEl(); + if (ctrlElm) { + ctrlElm.parentNode.removeChild(ctrlElm); + } + + // Remove old item from DOM + ctrlElm = oldItem.getEl(); + if (ctrlElm) { + ctrlElm.parentNode.removeChild(ctrlElm); + } + } + + // Adopt the item + newItem.parent(this); + }, + + /** + * Creates the specified items. If any of the items is plain JSON style objects + * it will convert these into real tinymce.ui.Control instances. + * + * @method create + * @param {Array} items Array of items to convert into control instances. + * @return {Array} Array with control instances. + */ + create: function(items) { + var self = this, settings, ctrlItems = []; + + // Non array structure, then force it into an array + if (!Tools.isArray(items)) { + items = [items]; + } + + // Add default type to each child control + Tools.each(items, function(item) { + if (item) { + // Construct item if needed + if (!(item instanceof Control)) { + // Name only then convert it to an object + if (typeof(item) == "string") { + item = {type: item}; + } + + // Create control instance based on input settings and default settings + settings = Tools.extend({}, self.settings.defaults, item); + item.type = settings.type = settings.type || item.type || self.settings.defaultType || + (settings.defaults ? settings.defaults.type : null); + item = Factory.create(settings); + } + + ctrlItems.push(item); + } + }); + + return ctrlItems; + }, + + /** + * Renders new control instances. + * + * @private + */ + renderNew: function() { + var self = this; + + // Render any new items + self.items().each(function(ctrl, index) { + var containerElm, fragment; + + ctrl.parent(self); + + if (!ctrl._rendered) { + containerElm = self.getEl('body'); + fragment = DomUtils.createFragment(ctrl.renderHtml()); + + // Insert or append the item + if (containerElm.hasChildNodes() && index <= containerElm.childNodes.length - 1) { + containerElm.insertBefore(fragment, containerElm.childNodes[index]); + } else { + containerElm.appendChild(fragment); + } + + ctrl.postRender(); + } + }); + + self._layout.applyClasses(self); + self._lastRect = null; + + return self; + }, + + /** + * Appends new instances to the current container. + * + * @method append + * @param {Array/tinymce.ui.Collection} items Array if controls to append. + * @return {tinymce.ui.Container} Current container instance. + */ + append: function(items) { + return this.add(items).renderNew(); + }, + + /** + * Prepends new instances to the current container. + * + * @method prepend + * @param {Array/tinymce.ui.Collection} items Array if controls to prepend. + * @return {tinymce.ui.Container} Current container instance. + */ + prepend: function(items) { + var self = this; + + self.items().set(self.create(items).concat(self.items().toArray())); + + return self.renderNew(); + }, + + /** + * Inserts an control at a specific index. + * + * @method insert + * @param {Array/tinymce.ui.Collection} items Array if controls to insert. + * @param {Number} index Index to insert controls at. + * @param {Boolean} [before=false] Inserts controls before the index. + */ + insert: function(items, index, before) { + var self = this, curItems, beforeItems, afterItems; + + items = self.create(items); + curItems = self.items(); + + if (!before && index < curItems.length - 1) { + index += 1; + } + + if (index >= 0 && index < curItems.length) { + beforeItems = curItems.slice(0, index).toArray(); + afterItems = curItems.slice(index).toArray(); + curItems.set(beforeItems.concat(items, afterItems)); + } + + return self.renderNew(); + }, + + /** + * Populates the form fields from the specified JSON data object. + * + * Control items in the form that matches the data will have it's value set. + * + * @method fromJSON + * @param {Object} data JSON data object to set control values by. + * @return {tinymce.ui.Container} Current form instance. + */ + fromJSON: function(data) { + var self = this; + + for (var name in data) { + self.find('#' + name).value(data[name]); + } + + return self; + }, + + /** + * Serializes the form into a JSON object by getting all items + * that has a name and a value. + * + * @method toJSON + * @return {Object} JSON object with form data. + */ + toJSON: function() { + var self = this, data = {}; + + self.find('*').each(function(ctrl) { + var name = ctrl.name(), value = ctrl.value(); + + if (name && typeof(value) != "undefined") { + data[name] = value; + } + }); + + return data; + }, + + preRender: function() { + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, layout = self._layout, role = this.settings.role; + + self.preRender(); + layout.preRender(self); + + return ( + '<div id="' + self._id + '" class="' + self.classes() + '"' + (role ? ' role="' + this.settings.role + '"' : '') + '>' + + '<div id="' + self._id + '-body" class="' + self.classes('body') + '">' + + (self.settings.html || '') + layout.renderHtml(self) + + '</div>' + + '</div>' + ); + }, + + /** + * Post render method. Called after the control has been rendered to the target. + * + * @method postRender + * @return {tinymce.ui.Container} Current combobox instance. + */ + postRender: function() { + var self = this, box; + + self.items().exec('postRender'); + self._super(); + + self._layout.postRender(self); + self._rendered = true; + + if (self.settings.style) { + DomUtils.css(self.getEl(), self.settings.style); + } + + if (self.settings.border) { + box = self.borderBox(); + DomUtils.css(self.getEl(), { + 'border-top-width': box.top, + 'border-right-width': box.right, + 'border-bottom-width': box.bottom, + 'border-left-width': box.left + }); + } + + if (!self.parent()) { + self.keyboardNav = new KeyboardNavigation({ + root: self + }); + } + + return self; + }, + + /** + * Initializes the current controls layout rect. + * This will be executed by the layout managers to determine the + * default minWidth/minHeight etc. + * + * @method initLayoutRect + * @return {Object} Layout rect instance. + */ + initLayoutRect: function() { + var self = this, layoutRect = self._super(); + + // Recalc container size by asking layout manager + self._layout.recalc(self); + + return layoutRect; + }, + + /** + * Recalculates the positions of the controls in the current container. + * This is invoked by the reflow method and shouldn't be called directly. + * + * @method recalc + */ + recalc: function() { + var self = this, rect = self._layoutRect, lastRect = self._lastRect; + + if (!lastRect || lastRect.w != rect.w || lastRect.h != rect.h) { + self._layout.recalc(self); + rect = self.layoutRect(); + self._lastRect = {x: rect.x, y: rect.y, w: rect.w, h: rect.h}; + return true; + } + }, + + /** + * Reflows the current container and it's children and possible parents. + * This should be used after you for example append children to the current control so + * that the layout managers know that they need to reposition everything. + * + * @example + * container.append({type: 'button', text: 'My button'}).reflow(); + * + * @method reflow + * @return {tinymce.ui.Container} Current container instance. + */ + reflow: function() { + var i; + + if (this.visible()) { + Control.repaintControls = []; + Control.repaintControls.map = {}; + + this.recalc(); + i = Control.repaintControls.length; + + while (i--) { + Control.repaintControls[i].repaint(); + } + + // TODO: Fix me! + if (this.settings.layout !== "flow" && this.settings.layout !== "stack") { + this.repaint(); + } + + Control.repaintControls = []; + } + + return this; + } + }); +}); + +// Included from: js/tinymce/classes/ui/DragHelper.js + +/** + * DragHelper.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Drag/drop helper class. + * + * @example + * var dragHelper = new tinymce.ui.DragHelper('mydiv', { + * start: function(evt) { + * }, + * + * drag: function(evt) { + * }, + * + * end: function(evt) { + * } + * }); + * + * @class tinymce.ui.DragHelper + */ +define("tinymce/ui/DragHelper", [ + "tinymce/ui/DomUtils" +], function(DomUtils) { + "use strict"; + + function getDocumentSize() { + var doc = document, documentElement, body, scrollWidth, clientWidth; + var offsetWidth, scrollHeight, clientHeight, offsetHeight, max = Math.max; + + documentElement = doc.documentElement; + body = doc.body; + + scrollWidth = max(documentElement.scrollWidth, body.scrollWidth); + clientWidth = max(documentElement.clientWidth, body.clientWidth); + offsetWidth = max(documentElement.offsetWidth, body.offsetWidth); + + scrollHeight = max(documentElement.scrollHeight, body.scrollHeight); + clientHeight = max(documentElement.clientHeight, body.clientHeight); + offsetHeight = max(documentElement.offsetHeight, body.offsetHeight); + + return { + width: scrollWidth < offsetWidth ? clientWidth : scrollWidth, + height: scrollHeight < offsetHeight ? clientHeight : scrollHeight + }; + } + + return function(id, settings) { + var eventOverlayElm, doc = document, downButton, start, stop, drag, startX, startY; + + settings = settings || {}; + + function getHandleElm() { + return doc.getElementById(settings.handle || id); + } + + start = function(e) { + var docSize = getDocumentSize(), handleElm, cursor; + + e.preventDefault(); + downButton = e.button; + handleElm = getHandleElm(); + startX = e.screenX; + startY = e.screenY; + + // Grab cursor from handle + if (window.getComputedStyle) { + cursor = window.getComputedStyle(handleElm, null).getPropertyValue("cursor"); + } else { + cursor = handleElm.runtimeStyle.cursor; + } + + // Create event overlay and add it to document + eventOverlayElm = doc.createElement('div'); + DomUtils.css(eventOverlayElm, { + position: "absolute", + top: 0, left: 0, + width: docSize.width, + height: docSize.height, + zIndex: 0x7FFFFFFF, + opacity: 0.0001, + background: 'red', + cursor: cursor + }); + + doc.body.appendChild(eventOverlayElm); + + // Bind mouse events + DomUtils.on(doc, 'mousemove', drag); + DomUtils.on(doc, 'mouseup', stop); + + // Begin drag + settings.start(e); + }; + + drag = function(e) { + if (e.button !== downButton) { + return stop(e); + } + + e.deltaX = e.screenX - startX; + e.deltaY = e.screenY - startY; + + e.preventDefault(); + settings.drag(e); + }; + + stop = function(e) { + DomUtils.off(doc, 'mousemove', drag); + DomUtils.off(doc, 'mouseup', stop); + + eventOverlayElm.parentNode.removeChild(eventOverlayElm); + + if (settings.stop) { + settings.stop(e); + } + }; + + /** + * Destroys the drag/drop helper instance. + * + * @method destroy + */ + this.destroy = function() { + DomUtils.off(getHandleElm()); + }; + + DomUtils.on(getHandleElm(), 'mousedown', start); + }; +}); + +// Included from: js/tinymce/classes/ui/Scrollable.js + +/** + * Scrollable.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This mixin makes controls scrollable using custom scrollbars. + * + * @-x-less Scrollable.less + * @mixin tinymce.ui.Scrollable + */ +define("tinymce/ui/Scrollable", [ + "tinymce/ui/DomUtils", + "tinymce/ui/DragHelper" +], function(DomUtils, DragHelper) { + "use strict"; + + return { + init: function() { + var self = this; + self.on('repaint', self.renderScroll); + }, + + renderScroll: function() { + var self = this, margin = 2; + + function repaintScroll() { + var hasScrollH, hasScrollV, bodyElm; + + function repaintAxis(axisName, posName, sizeName, contentSizeName, hasScroll, ax) { + var containerElm, scrollBarElm, scrollThumbElm; + var containerSize, scrollSize, ratio, rect; + var posNameLower, sizeNameLower; + + scrollBarElm = self.getEl('scroll' + axisName); + if (scrollBarElm) { + posNameLower = posName.toLowerCase(); + sizeNameLower = sizeName.toLowerCase(); + + if (self.getEl('absend')) { + DomUtils.css(self.getEl('absend'), posNameLower, self.layoutRect()[contentSizeName] - 1); + } + + if (!hasScroll) { + DomUtils.css(scrollBarElm, 'display', 'none'); + return; + } + + DomUtils.css(scrollBarElm, 'display', 'block'); + containerElm = self.getEl('body'); + scrollThumbElm = self.getEl('scroll' + axisName + "t"); + containerSize = containerElm["client" + sizeName] - (margin * 2); + containerSize -= hasScrollH && hasScrollV ? scrollBarElm["client" + ax] : 0; + scrollSize = containerElm["scroll" + sizeName]; + ratio = containerSize / scrollSize; + + rect = {}; + rect[posNameLower] = containerElm["offset" + posName] + margin; + rect[sizeNameLower] = containerSize; + DomUtils.css(scrollBarElm, rect); + + rect = {}; + rect[posNameLower] = containerElm["scroll" + posName] * ratio; + rect[sizeNameLower] = containerSize * ratio; + DomUtils.css(scrollThumbElm, rect); + } + } + + bodyElm = self.getEl('body'); + hasScrollH = bodyElm.scrollWidth > bodyElm.clientWidth; + hasScrollV = bodyElm.scrollHeight > bodyElm.clientHeight; + + repaintAxis("h", "Left", "Width", "contentW", hasScrollH, "Height"); + repaintAxis("v", "Top", "Height", "contentH", hasScrollV, "Width"); + } + + function addScroll() { + function addScrollAxis(axisName, posName, sizeName, deltaPosName, ax) { + var scrollStart, axisId = self._id + '-scroll' + axisName, prefix = self.classPrefix; + + self.getEl().appendChild(DomUtils.createFragment( + '<div id="' + axisId + '" class="' + prefix + 'scrollbar ' + prefix + 'scrollbar-' + axisName + '">' + + '<div id="' + axisId + 't" class="' + prefix + 'scrollbar-thumb"></div>' + + '</div>' + )); + + self.draghelper = new DragHelper(axisId + 't', { + start: function() { + scrollStart = self.getEl('body')["scroll" + posName]; + DomUtils.addClass(DomUtils.get(axisId), prefix + 'active'); + }, + + drag: function(e) { + var ratio, hasScrollH, hasScrollV, containerSize, layoutRect = self.layoutRect(); + + hasScrollH = layoutRect.contentW > layoutRect.innerW; + hasScrollV = layoutRect.contentH > layoutRect.innerH; + containerSize = self.getEl('body')["client" + sizeName] - (margin * 2); + containerSize -= hasScrollH && hasScrollV ? self.getEl('scroll' + axisName)["client" + ax] : 0; + + ratio = containerSize / self.getEl('body')["scroll" + sizeName]; + self.getEl('body')["scroll" + posName] = scrollStart + (e["delta" + deltaPosName] / ratio); + }, + + stop: function() { + DomUtils.removeClass(DomUtils.get(axisId), prefix + 'active'); + } + }); +/* + self.on('click', function(e) { + if (e.target.id == self._id + '-scrollv') { + + } + });*/ + } + + self.addClass('scroll'); + + addScrollAxis("v", "Top", "Height", "Y", "Width"); + addScrollAxis("h", "Left", "Width", "X", "Height"); + } + + if (self.settings.autoScroll) { + if (!self._hasScroll) { + self._hasScroll = true; + addScroll(); + + self.on('wheel', function(e) { + var bodyEl = self.getEl('body'); + + bodyEl.scrollLeft += (e.deltaX || 0) * 10; + bodyEl.scrollTop += e.deltaY * 10; + + repaintScroll(); + }); + + DomUtils.on(self.getEl('body'), "scroll", repaintScroll); + } + + repaintScroll(); + } + } + }; +}); + +// Included from: js/tinymce/classes/ui/Panel.js + +/** + * Panel.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new panel. + * + * @-x-less Panel.less + * @class tinymce.ui.Panel + * @extends tinymce.ui.Container + * @mixes tinymce.ui.Scrollable + */ +define("tinymce/ui/Panel", [ + "tinymce/ui/Container", + "tinymce/ui/Scrollable" +], function(Container, Scrollable) { + "use strict"; + + return Container.extend({ + Defaults: { + layout: 'fit', + containerCls: 'panel' + }, + + Mixins: [Scrollable], + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, layout = self._layout, innerHtml = self.settings.html; + + self.preRender(); + layout.preRender(self); + + if (typeof(innerHtml) == "undefined") { + innerHtml = ( + '<div id="' + self._id + '-body" class="' + self.classes('body') + '">' + + layout.renderHtml(self) + + '</div>' + ); + } else { + if (typeof(innerHtml) == 'function') { + innerHtml = innerHtml.call(self); + } + + self._hasBody = false; + } + + return ( + '<div id="' + self._id + '" class="' + self.classes() + '" hideFocus="1" tabIndex="-1" role="group">' + + (self._preBodyHtml || '') + + innerHtml + + '</div>' + ); + } + }); +}); + +// Included from: js/tinymce/classes/ui/Movable.js + +/** + * Movable.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Movable mixin. Makes controls movable absolute and relative to other elements. + * + * @mixin tinymce.ui.Movable + */ +define("tinymce/ui/Movable", [ + "tinymce/ui/DomUtils" +], function(DomUtils) { + "use strict"; + + function calculateRelativePosition(ctrl, targetElm, rel) { + var ctrlElm, pos, x, y, selfW, selfH, targetW, targetH, viewport, size; + + viewport = DomUtils.getViewPort(); + + // Get pos of target + pos = DomUtils.getPos(targetElm); + x = pos.x; + y = pos.y; + + if (ctrl._fixed) { + x -= viewport.x; + y -= viewport.y; + } + + // Get size of self + ctrlElm = ctrl.getEl(); + size = DomUtils.getSize(ctrlElm); + selfW = size.width; + selfH = size.height; + + // Get size of target + size = DomUtils.getSize(targetElm); + targetW = size.width; + targetH = size.height; + + // Parse align string + rel = (rel || '').split(''); + + // Target corners + if (rel[0] === 'b') { + y += targetH; + } + + if (rel[1] === 'r') { + x += targetW; + } + + if (rel[0] === 'c') { + y += Math.round(targetH / 2); + } + + if (rel[1] === 'c') { + x += Math.round(targetW / 2); + } + + // Self corners + if (rel[3] === 'b') { + y -= selfH; + } + + if (rel[4] === 'r') { + x -= selfW; + } + + if (rel[3] === 'c') { + y -= Math.round(selfH / 2); + } + + if (rel[4] === 'c') { + x -= Math.round(selfW / 2); + } + + return { + x: x, + y: y, + w: selfW, + h: selfH + }; + } + + return { + /** + * Tests various positions to get the most suitable one. + * + * @method testMoveRel + * @param {DOMElement} elm Element to position against. + * @param {Array} rels Array with relative positions. + * @return {String} Best suitable relative position. + */ + testMoveRel: function(elm, rels) { + var viewPortRect = DomUtils.getViewPort(); + + for (var i = 0; i < rels.length; i++) { + var pos = calculateRelativePosition(this, elm, rels[i]); + + if (this._fixed) { + if (pos.x > 0 && pos.x + pos.w < viewPortRect.w && pos.y > 0 && pos.y + pos.h < viewPortRect.h) { + return rels[i]; + } + } else { + if (pos.x > viewPortRect.x && pos.x + pos.w < viewPortRect.w + viewPortRect.x && + pos.y > viewPortRect.y && pos.y + pos.h < viewPortRect.h + viewPortRect.y) { + return rels[i]; + } + } + } + + return rels[0]; + }, + + /** + * Move relative to the specified element. + * + * @method moveRel + * @param {Element} elm Element to move relative to. + * @param {String} rel Relative mode. For example: br-tl. + * @return {tinymce.ui.Control} Current control instance. + */ + moveRel: function(elm, rel) { + if (typeof(rel) != 'string') { + rel = this.testMoveRel(elm, rel); + } + + var pos = calculateRelativePosition(this, elm, rel); + return this.moveTo(pos.x, pos.y); + }, + + /** + * Move by a relative x, y values. + * + * @method moveBy + * @param {Number} dx Relative x position. + * @param {Number} dy Relative y position. + * @return {tinymce.ui.Control} Current control instance. + */ + moveBy: function(dx, dy) { + var self = this, rect = self.layoutRect(); + + self.moveTo(rect.x + dx, rect.y + dy); + + return self; + }, + + /** + * Move to absolute position. + * + * @method moveTo + * @param {Number} x Absolute x position. + * @param {Number} y Absolute y position. + * @return {tinymce.ui.Control} Current control instance. + */ + moveTo: function(x, y) { + var self = this; + + // TODO: Move this to some global class + function contrain(value, max, size) { + if (value < 0) { + return 0; + } + + if (value + size > max) { + value = max - size; + return value < 0 ? 0 : value; + } + + return value; + } + + if (self.settings.constrainToViewport) { + var viewPortRect = DomUtils.getViewPort(window); + var layoutRect = self.layoutRect(); + + x = contrain(x, viewPortRect.w + viewPortRect.x, layoutRect.w); + y = contrain(y, viewPortRect.h + viewPortRect.y, layoutRect.h); + } + + if (self._rendered) { + self.layoutRect({x: x, y: y}).repaint(); + } else { + self.settings.x = x; + self.settings.y = y; + } + + self.fire('move', {x: x, y: y}); + + return self; + } + }; +}); + +// Included from: js/tinymce/classes/ui/Resizable.js + +/** + * Resizable.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Resizable mixin. Enables controls to be resized. + * + * @mixin tinymce.ui.Resizable + */ +define("tinymce/ui/Resizable", [ + "tinymce/ui/DomUtils" +], function(DomUtils) { + "use strict"; + + return { + /** + * Resizes the control to contents. + * + * @method resizeToContent + */ + resizeToContent: function() { + this._layoutRect.autoResize = true; + this._lastRect = null; + this.reflow(); + }, + + /** + * Resizes the control to a specific width/height. + * + * @method resizeTo + * @param {Number} w Control width. + * @param {Number} h Control height. + * @return {tinymce.ui.Control} Current control instance. + */ + resizeTo: function(w, h) { + // TODO: Fix hack + if (w <= 1 || h <= 1) { + var rect = DomUtils.getWindowSize(); + + w = w <= 1 ? w * rect.w : w; + h = h <= 1 ? h * rect.h : h; + } + + this._layoutRect.autoResize = false; + return this.layoutRect({minW: w, minH: h, w: w, h: h}).reflow(); + }, + + /** + * Resizes the control to a specific relative width/height. + * + * @method resizeBy + * @param {Number} dw Relative control width. + * @param {Number} dh Relative control height. + * @return {tinymce.ui.Control} Current control instance. + */ + resizeBy: function(dw, dh) { + var self = this, rect = self.layoutRect(); + + return self.resizeTo(rect.w + dw, rect.h + dh); + } + }; +}); + +// Included from: js/tinymce/classes/ui/FloatPanel.js + +/** + * FloatPanel.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class creates a floating panel. + * + * @-x-less FloatPanel.less + * @class tinymce.ui.FloatPanel + * @extends tinymce.ui.Panel + * @mixes tinymce.ui.Movable + * @mixes tinymce.ui.Resizable + */ +define("tinymce/ui/FloatPanel", [ + "tinymce/ui/Panel", + "tinymce/ui/Movable", + "tinymce/ui/Resizable", + "tinymce/ui/DomUtils" +], function(Panel, Movable, Resizable, DomUtils) { + "use strict"; + + var documentClickHandler, documentScrollHandler, visiblePanels = []; + var zOrder = [], hasModal; + + var FloatPanel = Panel.extend({ + Mixins: [Movable, Resizable], + + /** + * Constructs a new control instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {Boolean} autohide Automatically hide the panel. + */ + init: function(settings) { + var self = this; + + function reorder() { + var i, zIndex = FloatPanel.zIndex || 0xFFFF, topModal; + + if (zOrder.length) { + for (i = 0; i < zOrder.length; i++) { + if (zOrder[i].modal) { + zIndex++; + topModal = zOrder[i]; + } + + zOrder[i].getEl().style.zIndex = zIndex; + zOrder[i].zIndex = zIndex; + zIndex++; + } + } + + var modalBlockEl = document.getElementById(self.classPrefix + 'modal-block'); + + if (topModal) { + DomUtils.css(modalBlockEl, 'z-index', topModal.zIndex - 1); + } else if (modalBlockEl) { + modalBlockEl.parentNode.removeChild(modalBlockEl); + hasModal = false; + } + + FloatPanel.currentZIndex = zIndex; + } + + function isChildOf(ctrl, parent) { + while (ctrl) { + if (ctrl == parent) { + return true; + } + + ctrl = ctrl.parent(); + } + } + + /** + * Repositions the panel to the top of page if the panel is outside of the visual viewport. It will + * also reposition all child panels of the current panel. + */ + function repositionPanel(panel) { + var scrollY = DomUtils.getViewPort().y; + + function toggleFixedChildPanels(fixed, deltaY) { + var parent; + + for (var i = 0; i < visiblePanels.length; i++) { + if (visiblePanels[i] != panel) { + parent = visiblePanels[i].parent(); + + while (parent && (parent = parent.parent())) { + if (parent == panel) { + visiblePanels[i].fixed(fixed).moveBy(0, deltaY).repaint(); + } + } + } + } + } + + if (panel.settings.autofix) { + if (!panel._fixed) { + panel._autoFixY = panel.layoutRect().y; + + if (panel._autoFixY < scrollY) { + panel.fixed(true).layoutRect({y: 0}).repaint(); + toggleFixedChildPanels(true, scrollY - panel._autoFixY); + } + } else { + if (panel._autoFixY > scrollY) { + panel.fixed(false).layoutRect({y: panel._autoFixY}).repaint(); + toggleFixedChildPanels(false, panel._autoFixY - scrollY); + } + } + } + } + + self._super(settings); + self._eventsRoot = self; + + self.addClass('floatpanel'); + + // Hide floatpanes on click out side the root button + if (settings.autohide) { + if (!documentClickHandler) { + documentClickHandler = function(e) { + // Hide any float panel when a click is out side that float panel and the + // float panels direct parent for example a click on a menu button + var i = visiblePanels.length; + while (i--) { + var panel = visiblePanels[i], clickCtrl = panel.getParentCtrl(e.target); + + if (panel.settings.autohide) { + if (clickCtrl) { + if (isChildOf(clickCtrl, panel) || panel.parent() === clickCtrl) { + continue; + } + } + + e = panel.fire('autohide', {target: e.target}); + if (!e.isDefaultPrevented()) { + panel.hide(); + } + } + } + }; + + DomUtils.on(document, 'click', documentClickHandler); + } + + visiblePanels.push(self); + } + + if (settings.autofix) { + if (!documentScrollHandler) { + documentScrollHandler = function() { + var i; + + i = visiblePanels.length; + while (i--) { + repositionPanel(visiblePanels[i]); + } + }; + + DomUtils.on(window, 'scroll', documentScrollHandler); + } + + self.on('move', function() { + repositionPanel(this); + }); + } + + self.on('postrender show', function(e) { + if (e.control == self) { + var modalBlockEl, prefix = self.classPrefix; + + if (self.modal && !hasModal) { + modalBlockEl = DomUtils.createFragment('<div id="' + prefix + 'modal-block" class="' + + prefix + 'reset ' + prefix + 'fade"></div>'); + modalBlockEl = modalBlockEl.firstChild; + + self.getContainerElm().appendChild(modalBlockEl); + + setTimeout(function() { + DomUtils.addClass(modalBlockEl, prefix + 'in'); + DomUtils.addClass(self.getEl(), prefix + 'in'); + }, 0); + + hasModal = true; + } + + zOrder.push(self); + reorder(); + } + }); + + self.on('close hide', function(e) { + if (e.control == self) { + var i = zOrder.length; + + while (i--) { + if (zOrder[i] === self) { + zOrder.splice(i, 1); + } + } + + reorder(); + } + }); + + self.on('show', function() { + self.parents().each(function(ctrl) { + if (ctrl._fixed) { + self.fixed(true); + return false; + } + }); + }); + + if (settings.popover) { + self._preBodyHtml = '<div class="' + self.classPrefix + 'arrow"></div>'; + self.addClass('popover').addClass('bottom').addClass(self.isRtl() ? 'end' : 'start'); + } + }, + + fixed: function(state) { + var self = this; + + if (self._fixed != state) { + if (self._rendered) { + var viewport = DomUtils.getViewPort(); + + if (state) { + self.layoutRect().y -= viewport.y; + } else { + self.layoutRect().y += viewport.y; + } + } + + self.toggleClass('fixed', state); + self._fixed = state; + } + + return self; + }, + + /** + * Shows the current float panel. + * + * @method show + * @return {tinymce.ui.FloatPanel} Current floatpanel instance. + */ + show: function() { + var self = this, i, state = self._super(); + + i = visiblePanels.length; + while (i--) { + if (visiblePanels[i] === self) { + break; + } + } + + if (i === -1) { + visiblePanels.push(self); + } + + return state; + }, + + /** + * Hides the current float panel. + * + * @method hide + * @return {tinymce.ui.FloatPanel} Current floatpanel instance. + */ + hide: function() { + removeVisiblePanel(this); + return this._super(); + }, + + /** + * Hides all visible the float panels. + * + * @method hideAll + */ + hideAll: function() { + FloatPanel.hideAll(); + }, + + /** + * Closes the float panel. This will remove the float panel from page and fire the close event. + * + * @method close + */ + close: function() { + var self = this; + + self.fire('close'); + + return self.remove(); + }, + + /** + * Removes the float panel from page. + * + * @method remove + */ + remove: function() { + removeVisiblePanel(this); + this._super(); + }, + + postRender: function() { + var self = this; + + if (self.settings.bodyRole) { + this.getEl('body').setAttribute('role', self.settings.bodyRole); + } + + return self._super(); + } + }); + + /** + * Hides all visible the float panels. + * + * @static + * @method hideAll + */ + FloatPanel.hideAll = function() { + var i = visiblePanels.length; + + while (i--) { + var panel = visiblePanels[i]; + + if (panel && panel.settings.autohide) { + panel.hide(); + visiblePanels.splice(i, 1); + } + } + }; + + function removeVisiblePanel(panel) { + var i; + + i = visiblePanels.length; + while (i--) { + if (visiblePanels[i] === panel) { + visiblePanels.splice(i, 1); + } + } + + i = zOrder.length; + while (i--) { + if (zOrder[i] === panel) { + zOrder.splice(i, 1); + } + } + } + + return FloatPanel; +}); + +// Included from: js/tinymce/classes/ui/Window.js + +/** + * Window.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new window. + * + * @-x-less Window.less + * @class tinymce.ui.Window + * @extends tinymce.ui.FloatPanel + */ +define("tinymce/ui/Window", [ + "tinymce/ui/FloatPanel", + "tinymce/ui/Panel", + "tinymce/ui/DomUtils", + "tinymce/ui/DragHelper" +], function(FloatPanel, Panel, DomUtils, DragHelper) { + "use strict"; + + var Window = FloatPanel.extend({ + modal: true, + + Defaults: { + border: 1, + layout: 'flex', + containerCls: 'panel', + role: 'dialog', + callbacks: { + submit: function() { + this.fire('submit', {data: this.toJSON()}); + }, + + close: function() { + this.close(); + } + } + }, + + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + */ + init: function(settings) { + var self = this; + + self._super(settings); + + if (self.isRtl()) { + self.addClass('rtl'); + } + + self.addClass('window'); + self._fixed = true; + + // Create statusbar + if (settings.buttons) { + self.statusbar = new Panel({ + layout: 'flex', + border: '1 0 0 0', + spacing: 3, + padding: 10, + align: 'center', + pack: self.isRtl() ? 'start' : 'end', + defaults: { + type: 'button' + }, + items: settings.buttons + }); + + self.statusbar.addClass('foot'); + self.statusbar.parent(self); + } + + self.on('click', function(e) { + if (e.target.className.indexOf(self.classPrefix + 'close') != -1) { + self.close(); + } + }); + + self.on('cancel', function() { + self.close(); + }); + + self.aria('describedby', self.describedBy || self._id + '-none'); + self.aria('label', settings.title); + self._fullscreen = false; + }, + + /** + * Recalculates the positions of the controls in the current container. + * This is invoked by the reflow method and shouldn't be called directly. + * + * @method recalc + */ + recalc: function() { + var self = this, statusbar = self.statusbar, layoutRect, width, x, needsRecalc; + + if (self._fullscreen) { + self.layoutRect(DomUtils.getWindowSize()); + self.layoutRect().contentH = self.layoutRect().innerH; + } + + self._super(); + + layoutRect = self.layoutRect(); + + // Resize window based on title width + if (self.settings.title && !self._fullscreen) { + width = layoutRect.headerW; + if (width > layoutRect.w) { + x = layoutRect.x - Math.max(0, width / 2); + self.layoutRect({w: width, x: x}); + needsRecalc = true; + } + } + + // Resize window based on statusbar width + if (statusbar) { + statusbar.layoutRect({w: self.layoutRect().innerW}).recalc(); + + width = statusbar.layoutRect().minW + layoutRect.deltaW; + if (width > layoutRect.w) { + x = layoutRect.x - Math.max(0, width - layoutRect.w); + self.layoutRect({w: width, x: x}); + needsRecalc = true; + } + } + + // Recalc body and disable auto resize + if (needsRecalc) { + self.recalc(); + } + }, + + /** + * Initializes the current controls layout rect. + * This will be executed by the layout managers to determine the + * default minWidth/minHeight etc. + * + * @method initLayoutRect + * @return {Object} Layout rect instance. + */ + initLayoutRect: function() { + var self = this, layoutRect = self._super(), deltaH = 0, headEl; + + // Reserve vertical space for title + if (self.settings.title && !self._fullscreen) { + headEl = self.getEl('head'); + + var size = DomUtils.getSize(headEl); + + layoutRect.headerW = size.width; + layoutRect.headerH = size.height; + + deltaH += layoutRect.headerH; + } + + // Reserve vertical space for statusbar + if (self.statusbar) { + deltaH += self.statusbar.layoutRect().h; + } + + layoutRect.deltaH += deltaH; + layoutRect.minH += deltaH; + //layoutRect.innerH -= deltaH; + layoutRect.h += deltaH; + + var rect = DomUtils.getWindowSize(); + + layoutRect.x = Math.max(0, rect.w / 2 - layoutRect.w / 2); + layoutRect.y = Math.max(0, rect.h / 2 - layoutRect.h / 2); + + return layoutRect; + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, layout = self._layout, id = self._id, prefix = self.classPrefix; + var settings = self.settings, headerHtml = '', footerHtml = '', html = settings.html; + + self.preRender(); + layout.preRender(self); + + if (settings.title) { + headerHtml = ( + '<div id="' + id + '-head" class="' + prefix + 'window-head">' + + '<div id="' + id + '-title" class="' + prefix + 'title">' + self.encode(settings.title) + '</div>' + + '<button type="button" class="' + prefix + 'close" aria-hidden="true">×</button>' + + '<div id="' + id + '-dragh" class="' + prefix + 'dragh"></div>' + + '</div>' + ); + } + + if (settings.url) { + html = '<iframe src="' + settings.url + '" tabindex="-1"></iframe>'; + } + + if (typeof(html) == "undefined") { + html = layout.renderHtml(self); + } + + if (self.statusbar) { + footerHtml = self.statusbar.renderHtml(); + } + + return ( + '<div id="' + id + '" class="' + self.classes() + '" hideFocus="1">' + + '<div class="' + self.classPrefix + 'reset" role="application">' + + headerHtml + + '<div id="' + id + '-body" class="' + self.classes('body') + '">' + + html + + '</div>' + + footerHtml + + '</div>' + + '</div>' + ); + }, + + /** + * Switches the window fullscreen mode. + * + * @method fullscreen + * @param {Boolean} state True/false state. + * @return {tinymce.ui.Window} Current window instance. + */ + fullscreen: function(state) { + var self = this, documentElement = document.documentElement, slowRendering, prefix = self.classPrefix, layoutRect; + + if (state != self._fullscreen) { + DomUtils.on(window, 'resize', function() { + var time; + + if (self._fullscreen) { + // Time the layout time if it's to slow use a timeout to not hog the CPU + if (!slowRendering) { + time = new Date().getTime(); + + var rect = DomUtils.getWindowSize(); + self.moveTo(0, 0).resizeTo(rect.w, rect.h); + + if ((new Date().getTime()) - time > 50) { + slowRendering = true; + } + } else { + if (!self._timer) { + self._timer = setTimeout(function() { + var rect = DomUtils.getWindowSize(); + self.moveTo(0, 0).resizeTo(rect.w, rect.h); + + self._timer = 0; + }, 50); + } + } + } + }); + + layoutRect = self.layoutRect(); + self._fullscreen = state; + + if (!state) { + self._borderBox = self.parseBox(self.settings.border); + self.getEl('head').style.display = ''; + layoutRect.deltaH += layoutRect.headerH; + DomUtils.removeClass(documentElement, prefix + 'fullscreen'); + DomUtils.removeClass(document.body, prefix + 'fullscreen'); + self.removeClass('fullscreen'); + self.moveTo(self._initial.x, self._initial.y).resizeTo(self._initial.w, self._initial.h); + } else { + self._initial = {x: layoutRect.x, y: layoutRect.y, w: layoutRect.w, h: layoutRect.h}; + + self._borderBox = self.parseBox('0'); + self.getEl('head').style.display = 'none'; + layoutRect.deltaH -= layoutRect.headerH + 2; + DomUtils.addClass(documentElement, prefix + 'fullscreen'); + DomUtils.addClass(document.body, prefix + 'fullscreen'); + self.addClass('fullscreen'); + + var rect = DomUtils.getWindowSize(); + self.moveTo(0, 0).resizeTo(rect.w, rect.h); + } + } + + return self.reflow(); + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this, startPos; + + setTimeout(function() { + self.addClass('in'); + }, 0); + + self._super(); + + if (self.statusbar) { + self.statusbar.postRender(); + } + + self.focus(); + + this.dragHelper = new DragHelper(self._id + '-dragh', { + start: function() { + startPos = { + x: self.layoutRect().x, + y: self.layoutRect().y + }; + }, + + drag: function(e) { + self.moveTo(startPos.x + e.deltaX, startPos.y + e.deltaY); + } + }); + + self.on('submit', function(e) { + if (!e.isDefaultPrevented()) { + self.close(); + } + }); + }, + + /** + * Fires a submit event with the serialized form. + * + * @method submit + * @return {Object} Event arguments object. + */ + submit: function() { + return this.fire('submit', {data: this.toJSON()}); + }, + + /** + * Removes the current control from DOM and from UI collections. + * + * @method remove + * @return {tinymce.ui.Control} Current control instance. + */ + remove: function() { + var self = this, prefix = self.classPrefix; + + self.dragHelper.destroy(); + self._super(); + + if (self.statusbar) { + this.statusbar.remove(); + } + + if (self._fullscreen) { + DomUtils.removeClass(document.documentElement, prefix + 'fullscreen'); + DomUtils.removeClass(document.body, prefix + 'fullscreen'); + } + } + }); + + return Window; +}); + +// Included from: js/tinymce/classes/ui/MessageBox.js + +/** + * MessageBox.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class is used to create MessageBoxes like alerts/confirms etc. + * + * @class tinymce.ui.Window + * @extends tinymce.ui.FloatPanel + */ +define("tinymce/ui/MessageBox", [ + "tinymce/ui/Window" +], function(Window) { + "use strict"; + + var MessageBox = Window.extend({ + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + */ + init: function(settings) { + settings = { + border: 1, + padding: 20, + layout: 'flex', + pack: "center", + align: "center", + containerCls: 'panel', + autoScroll: true, + buttons: {type: "button", text: "Ok", action: "ok"}, + items: { + type: "label", + multiline: true, + maxWidth: 500, + maxHeight: 200 + } + }; + + this._super(settings); + }, + + Statics: { + /** + * Ok buttons constant. + * + * @static + * @final + * @field {Number} OK + */ + OK: 1, + + /** + * Ok/cancel buttons constant. + * + * @static + * @final + * @field {Number} OK_CANCEL + */ + OK_CANCEL: 2, + + /** + * yes/no buttons constant. + * + * @static + * @final + * @field {Number} YES_NO + */ + YES_NO: 3, + + /** + * yes/no/cancel buttons constant. + * + * @static + * @final + * @field {Number} YES_NO_CANCEL + */ + YES_NO_CANCEL: 4, + + /** + * Constructs a new message box and renders it to the body element. + * + * @static + * @method msgBox + * @param {Object} settings Name/value object with settings. + */ + msgBox: function(settings) { + var buttons, callback = settings.callback || function() {}; + + switch (settings.buttons) { + case MessageBox.OK_CANCEL: + buttons = [ + {type: "button", text: "Ok", subtype: "primary", onClick: function(e) { + e.control.parents()[1].close(); + callback(true); + }}, + + {type: "button", text: "Cancel", onClick: function(e) { + e.control.parents()[1].close(); + callback(false); + }} + ]; + break; + + case MessageBox.YES_NO: + buttons = [ + {type: "button", text: "Ok", subtype: "primary", onClick: function(e) { + e.control.parents()[1].close(); + callback(true); + }} + ]; + break; + + case MessageBox.YES_NO_CANCEL: + buttons = [ + {type: "button", text: "Ok", subtype: "primary", onClick: function(e) { + e.control.parents()[1].close(); + }} + ]; + break; + + default: + buttons = [ + {type: "button", text: "Ok", subtype: "primary", onClick: function(e) { + e.control.parents()[1].close(); + callback(true); + }} + ]; + break; + } + + return new Window({ + padding: 20, + x: settings.x, + y: settings.y, + minWidth: 300, + minHeight: 100, + layout: "flex", + pack: "center", + align: "center", + buttons: buttons, + title: settings.title, + role: 'alertdialog', + items: { + type: "label", + multiline: true, + maxWidth: 500, + maxHeight: 200, + text: settings.text + }, + onPostRender: function() { + this.aria('describedby', this.items()[0]._id); + }, + onClose: settings.onClose, + onCancel: function() { + callback(false); + } + }).renderTo(document.body).reflow(); + }, + + /** + * Creates a new alert dialog. + * + * @method alert + * @param {Object} settings Settings for the alert dialog. + * @param {function} [callback] Callback to execute when the user makes a choice. + */ + alert: function(settings, callback) { + if (typeof(settings) == "string") { + settings = {text: settings}; + } + + settings.callback = callback; + return MessageBox.msgBox(settings); + }, + + /** + * Creates a new confirm dialog. + * + * @method confirm + * @param {Object} settings Settings for the confirm dialog. + * @param {function} [callback] Callback to execute when the user makes a choice. + */ + confirm: function(settings, callback) { + if (typeof(settings) == "string") { + settings = {text: settings}; + } + + settings.callback = callback; + settings.buttons = MessageBox.OK_CANCEL; + + return MessageBox.msgBox(settings); + } + } + }); + + return MessageBox; +}); + +// Included from: js/tinymce/classes/WindowManager.js + +/** + * WindowManager.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles the creation of native windows and dialogs. This class can be extended to provide for example inline dialogs. + * + * @class tinymce.WindowManager + * @example + * // Opens a new dialog with the file.htm file and the size 320x240 + * // It also adds a custom parameter this can be retrieved by using tinyMCEPopup.getWindowArg inside the dialog. + * tinymce.activeEditor.windowManager.open({ + * url: 'file.htm', + * width: 320, + * height: 240 + * }, { + * custom_param: 1 + * }); + * + * // Displays an alert box using the active editors window manager instance + * tinymce.activeEditor.windowManager.alert('Hello world!'); + * + * // Displays an confirm box and an alert message will be displayed depending on what you choose in the confirm + * tinymce.activeEditor.windowManager.confirm("Do you want to do something", function(s) { + * if (s) + * tinymce.activeEditor.windowManager.alert("Ok"); + * else + * tinymce.activeEditor.windowManager.alert("Cancel"); + * }); + */ +define("tinymce/WindowManager", [ + "tinymce/ui/Window", + "tinymce/ui/MessageBox" +], function(Window, MessageBox) { + return function(editor) { + var self = this, windows = []; + + function getTopMostWindow() { + if (windows.length) { + return windows[windows.length - 1]; + } + } + + self.windows = windows; + + /** + * Opens a new window. + * + * @method open + * @param {Object} args Optional name/value settings collection contains things like width/height/url etc. + * @option {String} title Window title. + * @option {String} file URL of the file to open in the window. + * @option {Number} width Width in pixels. + * @option {Number} height Height in pixels. + * @option {Boolean} resizable Specifies whether the popup window is resizable or not. + * @option {Boolean} maximizable Specifies whether the popup window has a "maximize" button and can get maximized or not. + * @option {String/Boolean} scrollbars Specifies whether the popup window can have scrollbars if required (i.e. content + * larger than the popup size specified). + */ + self.open = function(args, params) { + var win; + + editor.editorManager.activeEditor = editor; + + args.title = args.title || ' '; + + // Handle URL + args.url = args.url || args.file; // Legacy + if (args.url) { + args.width = parseInt(args.width || 320, 10); + args.height = parseInt(args.height || 240, 10); + } + + // Handle body + if (args.body) { + args.items = { + defaults: args.defaults, + type: args.bodyType || 'form', + items: args.body + }; + } + + if (!args.url && !args.buttons) { + args.buttons = [ + {text: 'Ok', subtype: 'primary', onclick: function() { + win.find('form')[0].submit(); + }}, + + {text: 'Cancel', onclick: function() { + win.close(); + }} + ]; + } + + win = new Window(args); + windows.push(win); + + win.on('close', function() { + var i = windows.length; + + while (i--) { + if (windows[i] === win) { + windows.splice(i, 1); + } + } + + editor.focus(); + }); + + // Handle data + if (args.data) { + win.on('postRender', function() { + this.find('*').each(function(ctrl) { + var name = ctrl.name(); + + if (name in args.data) { + ctrl.value(args.data[name]); + } + }); + }); + } + + // store args and parameters + win.features = args || {}; + win.params = params || {}; + + // Takes a snapshot in the FocusManager of the selection before focus is lost to dialog + editor.nodeChanged(); + + return win.renderTo(document.body).reflow(); + }; + + /** + * Creates a alert dialog. Please don't use the blocking behavior of this + * native version use the callback method instead then it can be extended. + * + * @method alert + * @param {String} message Text to display in the new alert dialog. + * @param {function} callback Callback function to be executed after the user has selected ok. + * @param {Object} scope Optional scope to execute the callback in. + * @example + * // Displays an alert box using the active editors window manager instance + * tinymce.activeEditor.windowManager.alert('Hello world!'); + */ + self.alert = function(message, callback, scope) { + MessageBox.alert(message, function() { + if (callback) { + callback.call(scope || this); + } else { + editor.focus(); + } + }); + }; + + /** + * Creates a confirm dialog. Please don't use the blocking behavior of this + * native version use the callback method instead then it can be extended. + * + * @method confirm + * @param {String} messageText to display in the new confirm dialog. + * @param {function} callback Callback function to be executed after the user has selected ok or cancel. + * @param {Object} scope Optional scope to execute the callback in. + * @example + * // Displays an confirm box and an alert message will be displayed depending on what you choose in the confirm + * tinymce.activeEditor.windowManager.confirm("Do you want to do something", function(s) { + * if (s) + * tinymce.activeEditor.windowManager.alert("Ok"); + * else + * tinymce.activeEditor.windowManager.alert("Cancel"); + * }); + */ + self.confirm = function(message, callback, scope) { + MessageBox.confirm(message, function(state) { + callback.call(scope || this, state); + }); + }; + + /** + * Closes the top most window. + * + * @method close + */ + self.close = function() { + if (getTopMostWindow()) { + getTopMostWindow().close(); + } + }; + + /** + * Returns the params of the last window open call. This can be used in iframe based + * dialog to get params passed from the tinymce plugin. + * + * @example + * var dialogArguments = top.tinymce.activeEditor.windowManager.getParams(); + * + * @method getParams + * @return {Object} Name/value object with parameters passed from windowManager.open call. + */ + self.getParams = function() { + return getTopMostWindow() ? getTopMostWindow().params : null; + }; + + /** + * Sets the params of the last opened window. + * + * @method setParams + * @param {Object} params Params object to set for the last opened window. + */ + self.setParams = function(params) { + if (getTopMostWindow()) { + getTopMostWindow().params = params; + } + }; + }; +}); + +// Included from: js/tinymce/classes/util/Quirks.js + +/** + * Quirks.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + * + * @ignore-file + */ + +/** + * This file includes fixes for various browser quirks it's made to make it easy to add/remove browser specific fixes. + * + * @class tinymce.util.Quirks + */ +define("tinymce/util/Quirks", [ + "tinymce/util/VK", + "tinymce/dom/RangeUtils", + "tinymce/html/Node", + "tinymce/html/Entities", + "tinymce/Env", + "tinymce/util/Tools" +], function(VK, RangeUtils, Node, Entities, Env, Tools) { + return function(editor) { + var each = Tools.each; + var BACKSPACE = VK.BACKSPACE, DELETE = VK.DELETE, dom = editor.dom, selection = editor.selection, + settings = editor.settings, parser = editor.parser, serializer = editor.serializer; + var isGecko = Env.gecko, isIE = Env.ie, isWebKit = Env.webkit; + + /** + * Executes a command with a specific state this can be to enable/disable browser editing features. + */ + function setEditorCommandState(cmd, state) { + try { + editor.getDoc().execCommand(cmd, false, state); + } catch (ex) { + // Ignore + } + } + + /** + * Returns current IE document mode. + */ + function getDocumentMode() { + var documentMode = editor.getDoc().documentMode; + + return documentMode ? documentMode : 6; + } + + /** + * Returns true/false if the event is prevented or not. + * + * @private + * @param {Event} e Event object. + * @return {Boolean} true/false if the event is prevented or not. + */ + function isDefaultPrevented(e) { + return e.isDefaultPrevented(); + } + + /** + * Fixes a WebKit bug when deleting contents using backspace or delete key. + * WebKit will produce a span element if you delete across two block elements. + * + * Example: + * <h1>a</h1><p>|b</p> + * + * Will produce this on backspace: + * <h1>a<span style="<all runtime styles>">b</span></p> + * + * This fixes the backspace to produce: + * <h1>a|b</p> + * + * See bug: https://bugs.webkit.org/show_bug.cgi?id=45784 + * + * This fixes the following delete scenarios: + * 1. Delete by pressing backspace key. + * 2. Delete by pressing delete key. + * 3. Delete by pressing backspace key with ctrl/cmd (Word delete). + * 4. Delete by pressing delete key with ctrl/cmd (Word delete). + * 5. Delete by drag/dropping contents inside the editor. + * 6. Delete by using Cut Ctrl+X/Cmd+X. + * 7. Delete by selecting contents and writing a character.' + * + * This code is a ugly hack since writing full custom delete logic for just this bug + * fix seemed like a huge task. I hope we can remove this before the year 2030. + */ + function cleanupStylesWhenDeleting() { + var doc = editor.getDoc(), urlPrefix = 'data:text/mce-internal,'; + var MutationObserver = window.MutationObserver, olderWebKit; + + // Add mini polyfill for older WebKits + // TODO: Remove this when old Safari versions gets updated + if (!MutationObserver) { + olderWebKit = true; + + MutationObserver = function() { + var records = [], target; + + function nodeInsert(e) { + var target = e.relatedNode || e.target; + records.push({target: target, addedNodes: [target]}); + } + + function attrModified(e) { + var target = e.relatedNode || e.target; + records.push({target: target, attributeName: e.attrName}); + } + + this.observe = function(node) { + target = node; + target.addEventListener('DOMSubtreeModified', nodeInsert, false); + target.addEventListener('DOMNodeInsertedIntoDocument', nodeInsert, false); + target.addEventListener('DOMNodeInserted', nodeInsert, false); + target.addEventListener('DOMAttrModified', attrModified, false); + }; + + this.disconnect = function() { + target.removeEventListener('DOMNodeInserted', nodeInsert); + target.removeEventListener('DOMAttrModified', attrModified); + target.removeEventListener('DOMSubtreeModified', nodeInsert, false); + }; + + this.takeRecords = function() { + return records; + }; + }; + } + + function customDelete(isForward) { + var mutationObserver = new MutationObserver(function() {}); + + Tools.each(editor.getBody().getElementsByTagName('*'), function(elm) { + // Mark existing spans + if (elm.tagName == 'SPAN') { + elm.setAttribute('mce-data-marked', 1); + } + + // Make sure all elements has a data-mce-style attribute + if (!elm.hasAttribute('data-mce-style') && elm.hasAttribute('style')) { + editor.dom.setAttrib(elm, 'style', elm.getAttribute('style')); + } + }); + + // Observe added nodes and style attribute changes + mutationObserver.observe(editor.getDoc(), { + childList: true, + attributes: true, + subtree: true, + attributeFilter: ['style'] + }); + + editor.getDoc().execCommand(isForward ? 'ForwardDelete' : 'Delete', false, null); + + var rng = editor.selection.getRng(); + var caretElement = rng.startContainer.parentNode; + + Tools.each(mutationObserver.takeRecords(), function(record) { + // Restore style attribute to previous value + if (record.attributeName == "style") { + var oldValue = record.target.getAttribute('data-mce-style'); + + if (oldValue) { + record.target.setAttribute("style", oldValue); + } else { + record.target.removeAttribute("style"); + } + } + + // Remove all spans that isn't maked and retain selection + Tools.each(record.addedNodes, function(node) { + if (node.nodeName == "SPAN" && !node.getAttribute('mce-data-marked')) { + var offset, container; + + if (node == caretElement) { + offset = rng.startOffset; + container = node.firstChild; + } + + dom.remove(node, true); + + if (container) { + rng.setStart(container, offset); + rng.setEnd(container, offset); + editor.selection.setRng(rng); + } + } + }); + }); + + mutationObserver.disconnect(); + + // Remove any left over marks + Tools.each(editor.dom.select('span[mce-data-marked]'), function(span) { + span.removeAttribute('mce-data-marked'); + }); + } + + editor.on('keydown', function(e) { + var isForward = e.keyCode == DELETE, isMeta = VK.metaKeyPressed(e); + + if (!isDefaultPrevented(e) && (isForward || e.keyCode == BACKSPACE)) { + var rng = editor.selection.getRng(), container = rng.startContainer, offset = rng.startOffset; + + // Ignore non meta delete in the where there is text before/after the caret + if (!isMeta && rng.collapsed && container.nodeType == 3) { + if (isForward ? offset < container.data.length : offset > 0) { + return; + } + } + + e.preventDefault(); + + if (isMeta) { + editor.selection.getSel().modify("extend", isForward ? "forward" : "backward", "word"); + } + + customDelete(isForward); + } + }); + + editor.on('keypress', function(e) { + if (!isDefaultPrevented(e) && !selection.isCollapsed() && e.charCode && !VK.metaKeyPressed(e)) { + e.preventDefault(); + customDelete(true); + editor.selection.setContent(String.fromCharCode(e.charCode)); + } + }); + + editor.addCommand('Delete', function() { + customDelete(); + }); + + editor.addCommand('ForwardDelete', function() { + customDelete(true); + }); + + // Older WebKits doesn't properly handle the clipboard so we can't add the rest + if (olderWebKit) { + return; + } + + editor.on('dragstart', function(e) { + // Safari doesn't support custom dataTransfer items so we can only use URL and Text + e.dataTransfer.setData('URL', 'data:text/mce-internal,' + escape(editor.selection.getContent())); + }); + + editor.on('drop', function(e) { + if (!isDefaultPrevented(e)) { + var internalContent = e.dataTransfer.getData('URL'); + + if (!internalContent || internalContent.indexOf(urlPrefix) == -1 || !doc.caretRangeFromPoint) { + return; + } + + internalContent = unescape(internalContent.substr(urlPrefix.length)); + if (doc.caretRangeFromPoint) { + e.preventDefault(); + customDelete(); + editor.selection.setRng(doc.caretRangeFromPoint(e.x, e.y)); + editor.insertContent(internalContent); + } + } + }); + + editor.on('cut', function(e) { + if (!isDefaultPrevented(e) && e.clipboardData) { + e.preventDefault(); + e.clipboardData.clearData(); + e.clipboardData.setData('text/html', editor.selection.getContent()); + e.clipboardData.setData('text/plain', editor.selection.getContent({format: 'text'})); + customDelete(true); + } + }); + } + + /** + * Makes sure that the editor body becomes empty when backspace or delete is pressed in empty editors. + * + * For example: + * <p><b>|</b></p> + * + * Or: + * <h1>|</h1> + * + * Or: + * [<h1></h1>] + */ + function emptyEditorWhenDeleting() { + function serializeRng(rng) { + var body = dom.create("body"); + var contents = rng.cloneContents(); + body.appendChild(contents); + return selection.serializer.serialize(body, {format: 'html'}); + } + + function allContentsSelected(rng) { + if (!rng.setStart) { + if (rng.item) { + return false; + } + + var bodyRng = rng.duplicate(); + bodyRng.moveToElementText(editor.getBody()); + return RangeUtils.compareRanges(rng, bodyRng); + } + + var selection = serializeRng(rng); + + var allRng = dom.createRng(); + allRng.selectNode(editor.getBody()); + + var allSelection = serializeRng(allRng); + return selection === allSelection; + } + + editor.on('keydown', function(e) { + var keyCode = e.keyCode, isCollapsed, body; + + // Empty the editor if it's needed for example backspace at <p><b>|</b></p> + if (!isDefaultPrevented(e) && (keyCode == DELETE || keyCode == BACKSPACE)) { + isCollapsed = editor.selection.isCollapsed(); + body = editor.getBody(); + + // Selection is collapsed but the editor isn't empty + if (isCollapsed && !dom.isEmpty(body)) { + return; + } + + // Selection isn't collapsed but not all the contents is selected + if (!isCollapsed && !allContentsSelected(editor.selection.getRng())) { + return; + } + + // Manually empty the editor + e.preventDefault(); + editor.setContent(''); + + if (body.firstChild && dom.isBlock(body.firstChild)) { + editor.selection.setCursorLocation(body.firstChild, 0); + } else { + editor.selection.setCursorLocation(body, 0); + } + + editor.nodeChanged(); + } + }); + } + + /** + * WebKit doesn't select all the nodes in the body when you press Ctrl+A. + * IE selects more than the contents <body>[<p>a</p>]</body> instead of <body><p>[a]</p]</body> see bug #6438 + * This selects the whole body so that backspace/delete logic will delete everything + */ + function selectAll() { + editor.on('keydown', function(e) { + if (!isDefaultPrevented(e) && e.keyCode == 65 && VK.metaKeyPressed(e)) { + e.preventDefault(); + editor.execCommand('SelectAll'); + } + }); + } + + /** + * WebKit has a weird issue where it some times fails to properly convert keypresses to input method keystrokes. + * The IME on Mac doesn't initialize when it doesn't fire a proper focus event. + * + * This seems to happen when the user manages to click the documentElement element then the window doesn't get proper focus until + * you enter a character into the editor. + * + * It also happens when the first focus in made to the body. + * + * See: https://bugs.webkit.org/show_bug.cgi?id=83566 + */ + function inputMethodFocus() { + if (!editor.settings.content_editable) { + // Case 1 IME doesn't initialize if you focus the document + dom.bind(editor.getDoc(), 'focusin', function() { + selection.setRng(selection.getRng()); + }); + + // Case 2 IME doesn't initialize if you click the documentElement it also doesn't properly fire the focusin event + dom.bind(editor.getDoc(), 'mousedown', function(e) { + if (e.target == editor.getDoc().documentElement) { + editor.getBody().focus(); + selection.setRng(selection.getRng()); + } + }); + } + } + + /** + * Backspacing in FireFox/IE from a paragraph into a horizontal rule results in a floating text node because the + * browser just deletes the paragraph - the browser fails to merge the text node with a horizontal rule so it is + * left there. TinyMCE sees a floating text node and wraps it in a paragraph on the key up event (ForceBlocks.js + * addRootBlocks), meaning the action does nothing. With this code, FireFox/IE matche the behaviour of other + * browsers. + * + * It also fixes a bug on Firefox where it's impossible to delete HR elements. + */ + function removeHrOnBackspace() { + editor.on('keydown', function(e) { + if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) { + if (selection.isCollapsed() && selection.getRng(true).startOffset === 0) { + var node = selection.getNode(); + var previousSibling = node.previousSibling; + + if (node.nodeName == 'HR') { + dom.remove(node); + e.preventDefault(); + return; + } + + if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === "hr") { + dom.remove(previousSibling); + e.preventDefault(); + } + } + } + }); + } + + /** + * Firefox 3.x has an issue where the body element won't get proper focus if you click out + * side it's rectangle. + */ + function focusBody() { + // Fix for a focus bug in FF 3.x where the body element + // wouldn't get proper focus if the user clicked on the HTML element + if (!window.Range.prototype.getClientRects) { // Detect getClientRects got introduced in FF 4 + editor.on('mousedown', function(e) { + if (!isDefaultPrevented(e) && e.target.nodeName === "HTML") { + var body = editor.getBody(); + + // Blur the body it's focused but not correctly focused + body.blur(); + + // Refocus the body after a little while + setTimeout(function() { + body.focus(); + }, 0); + } + }); + } + } + + /** + * WebKit has a bug where it isn't possible to select image, hr or anchor elements + * by clicking on them so we need to fake that. + */ + function selectControlElements() { + editor.on('click', function(e) { + e = e.target; + + // Workaround for bug, http://bugs.webkit.org/show_bug.cgi?id=12250 + // WebKit can't even do simple things like selecting an image + // Needs tobe the setBaseAndExtend or it will fail to select floated images + if (/^(IMG|HR)$/.test(e.nodeName)) { + selection.getSel().setBaseAndExtent(e, 0, e, 1); + } + + if (e.nodeName == 'A' && dom.hasClass(e, 'mce-item-anchor')) { + selection.select(e); + } + + editor.nodeChanged(); + }); + } + + /** + * Fixes a Gecko bug where the style attribute gets added to the wrong element when deleting between two block elements. + * + * Fixes do backspace/delete on this: + * <p>bla[ck</p><p style="color:red">r]ed</p> + * + * Would become: + * <p>bla|ed</p> + * + * Instead of: + * <p style="color:red">bla|ed</p> + */ + function removeStylesWhenDeletingAcrossBlockElements() { + function getAttributeApplyFunction() { + var template = dom.getAttribs(selection.getStart().cloneNode(false)); + + return function() { + var target = selection.getStart(); + + if (target !== editor.getBody()) { + dom.setAttrib(target, "style", null); + + each(template, function(attr) { + target.setAttributeNode(attr.cloneNode(true)); + }); + } + }; + } + + function isSelectionAcrossElements() { + return !selection.isCollapsed() && + dom.getParent(selection.getStart(), dom.isBlock) != dom.getParent(selection.getEnd(), dom.isBlock); + } + + editor.on('keypress', function(e) { + var applyAttributes; + + if (!isDefaultPrevented(e) && (e.keyCode == 8 || e.keyCode == 46) && isSelectionAcrossElements()) { + applyAttributes = getAttributeApplyFunction(); + editor.getDoc().execCommand('delete', false, null); + applyAttributes(); + e.preventDefault(); + return false; + } + }); + + dom.bind(editor.getDoc(), 'cut', function(e) { + var applyAttributes; + + if (!isDefaultPrevented(e) && isSelectionAcrossElements()) { + applyAttributes = getAttributeApplyFunction(); + + setTimeout(function() { + applyAttributes(); + }, 0); + } + }); + } + + /** + * Fire a nodeChanged when the selection is changed on WebKit this fixes selection issues on iOS5. It only fires the nodeChange + * event every 50ms since it would other wise update the UI when you type and it hogs the CPU. + */ + function selectionChangeNodeChanged() { + var lastRng, selectionTimer; + + editor.on('selectionchange', function() { + if (selectionTimer) { + clearTimeout(selectionTimer); + selectionTimer = 0; + } + + selectionTimer = window.setTimeout(function() { + if (editor.removed) { + return; + } + + var rng = selection.getRng(); + + // Compare the ranges to see if it was a real change or not + if (!lastRng || !RangeUtils.compareRanges(rng, lastRng)) { + editor.nodeChanged(); + lastRng = rng; + } + }, 50); + }); + } + + /** + * Screen readers on IE needs to have the role application set on the body. + */ + function ensureBodyHasRoleApplication() { + document.body.setAttribute("role", "application"); + } + + /** + * Backspacing into a table behaves differently depending upon browser type. + * Therefore, disable Backspace when cursor immediately follows a table. + */ + function disableBackspaceIntoATable() { + editor.on('keydown', function(e) { + if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) { + if (selection.isCollapsed() && selection.getRng(true).startOffset === 0) { + var previousSibling = selection.getNode().previousSibling; + if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === "table") { + e.preventDefault(); + return false; + } + } + } + }); + } + + /** + * Old IE versions can't properly render BR elements in PRE tags white in contentEditable mode. So this + * logic adds a \n before the BR so that it will get rendered. + */ + function addNewLinesBeforeBrInPre() { + // IE8+ rendering mode does the right thing with BR in PRE + if (getDocumentMode() > 7) { + return; + } + + // Enable display: none in area and add a specific class that hides all BR elements in PRE to + // avoid the caret from getting stuck at the BR elements while pressing the right arrow key + setEditorCommandState('RespectVisibilityInDesign', true); + editor.contentStyles.push('.mceHideBrInPre pre br {display: none}'); + dom.addClass(editor.getBody(), 'mceHideBrInPre'); + + // Adds a \n before all BR elements in PRE to get them visual + parser.addNodeFilter('pre', function(nodes) { + var i = nodes.length, brNodes, j, brElm, sibling; + + while (i--) { + brNodes = nodes[i].getAll('br'); + j = brNodes.length; + while (j--) { + brElm = brNodes[j]; + + // Add \n before BR in PRE elements on older IE:s so the new lines get rendered + sibling = brElm.prev; + if (sibling && sibling.type === 3 && sibling.value.charAt(sibling.value - 1) != '\n') { + sibling.value += '\n'; + } else { + brElm.parent.insert(new Node('#text', 3), brElm, true).value = '\n'; + } + } + } + }); + + // Removes any \n before BR elements in PRE since other browsers and in contentEditable=false mode they will be visible + serializer.addNodeFilter('pre', function(nodes) { + var i = nodes.length, brNodes, j, brElm, sibling; + + while (i--) { + brNodes = nodes[i].getAll('br'); + j = brNodes.length; + while (j--) { + brElm = brNodes[j]; + sibling = brElm.prev; + if (sibling && sibling.type == 3) { + sibling.value = sibling.value.replace(/\r?\n$/, ''); + } + } + } + }); + } + + /** + * Moves style width/height to attribute width/height when the user resizes an image on IE. + */ + function removePreSerializedStylesWhenSelectingControls() { + dom.bind(editor.getBody(), 'mouseup', function() { + var value, node = selection.getNode(); + + // Moved styles to attributes on IMG eements + if (node.nodeName == 'IMG') { + // Convert style width to width attribute + if ((value = dom.getStyle(node, 'width'))) { + dom.setAttrib(node, 'width', value.replace(/[^0-9%]+/g, '')); + dom.setStyle(node, 'width', ''); + } + + // Convert style height to height attribute + if ((value = dom.getStyle(node, 'height'))) { + dom.setAttrib(node, 'height', value.replace(/[^0-9%]+/g, '')); + dom.setStyle(node, 'height', ''); + } + } + }); + } + + /** + * Removes a blockquote when backspace is pressed at the beginning of it. + * + * For example: + * <blockquote><p>|x</p></blockquote> + * + * Becomes: + * <p>|x</p> + */ + function removeBlockQuoteOnBackSpace() { + // Add block quote deletion handler + editor.on('keydown', function(e) { + var rng, container, offset, root, parent; + + if (isDefaultPrevented(e) || e.keyCode != VK.BACKSPACE) { + return; + } + + rng = selection.getRng(); + container = rng.startContainer; + offset = rng.startOffset; + root = dom.getRoot(); + parent = container; + + if (!rng.collapsed || offset !== 0) { + return; + } + + while (parent && parent.parentNode && parent.parentNode.firstChild == parent && parent.parentNode != root) { + parent = parent.parentNode; + } + + // Is the cursor at the beginning of a blockquote? + if (parent.tagName === 'BLOCKQUOTE') { + // Remove the blockquote + editor.formatter.toggle('blockquote', null, parent); + + // Move the caret to the beginning of container + rng = dom.createRng(); + rng.setStart(container, 0); + rng.setEnd(container, 0); + selection.setRng(rng); + } + }); + } + + /** + * Sets various Gecko editing options on mouse down and before a execCommand to disable inline table editing that is broken etc. + */ + function setGeckoEditingOptions() { + function setOpts() { + editor._refreshContentEditable(); + + setEditorCommandState("StyleWithCSS", false); + setEditorCommandState("enableInlineTableEditing", false); + + if (!settings.object_resizing) { + setEditorCommandState("enableObjectResizing", false); + } + } + + if (!settings.readonly) { + editor.on('BeforeExecCommand MouseDown', setOpts); + } + } + + /** + * Fixes a gecko link bug, when a link is placed at the end of block elements there is + * no way to move the caret behind the link. This fix adds a bogus br element after the link. + * + * For example this: + * <p><b><a href="#">x</a></b></p> + * + * Becomes this: + * <p><b><a href="#">x</a></b><br></p> + */ + function addBrAfterLastLinks() { + function fixLinks() { + each(dom.select('a'), function(node) { + var parentNode = node.parentNode, root = dom.getRoot(); + + if (parentNode.lastChild === node) { + while (parentNode && !dom.isBlock(parentNode)) { + if (parentNode.parentNode.lastChild !== parentNode || parentNode === root) { + return; + } + + parentNode = parentNode.parentNode; + } + + dom.add(parentNode, 'br', {'data-mce-bogus': 1}); + } + }); + } + + editor.on('SetContent ExecCommand', function(e) { + if (e.type == "setcontent" || e.command === 'mceInsertLink') { + fixLinks(); + } + }); + } + + /** + * WebKit will produce DIV elements here and there by default. But since TinyMCE uses paragraphs by + * default we want to change that behavior. + */ + function setDefaultBlockType() { + if (settings.forced_root_block) { + editor.on('init', function() { + setEditorCommandState('DefaultParagraphSeparator', settings.forced_root_block); + }); + } + } + + /** + * Removes ghost selections from images/tables on Gecko. + */ + function removeGhostSelection() { + editor.on('Undo Redo SetContent', function(e) { + if (!e.initial) { + editor.execCommand('mceRepaint'); + } + }); + } + + /** + * Deletes the selected image on IE instead of navigating to previous page. + */ + function deleteControlItemOnBackSpace() { + editor.on('keydown', function(e) { + var rng; + + if (!isDefaultPrevented(e) && e.keyCode == BACKSPACE) { + rng = editor.getDoc().selection.createRange(); + if (rng && rng.item) { + e.preventDefault(); + editor.undoManager.beforeChange(); + dom.remove(rng.item(0)); + editor.undoManager.add(); + } + } + }); + } + + /** + * IE10 doesn't properly render block elements with the right height until you add contents to them. + * This fixes that by adding a padding-right to all empty text block elements. + * See: https://connect.microsoft.com/IE/feedback/details/743881 + */ + function renderEmptyBlocksFix() { + var emptyBlocksCSS; + + // IE10+ + if (getDocumentMode() >= 10) { + emptyBlocksCSS = ''; + each('p div h1 h2 h3 h4 h5 h6'.split(' '), function(name, i) { + emptyBlocksCSS += (i > 0 ? ',' : '') + name + ':empty'; + }); + + editor.contentStyles.push(emptyBlocksCSS + '{padding-right: 1px !important}'); + } + } + + /** + * Old IE versions can't retain contents within noscript elements so this logic will store the contents + * as a attribute and the insert that value as it's raw text when the DOM is serialized. + */ + function keepNoScriptContents() { + if (getDocumentMode() < 9) { + parser.addNodeFilter('noscript', function(nodes) { + var i = nodes.length, node, textNode; + + while (i--) { + node = nodes[i]; + textNode = node.firstChild; + + if (textNode) { + node.attr('data-mce-innertext', textNode.value); + } + } + }); + + serializer.addNodeFilter('noscript', function(nodes) { + var i = nodes.length, node, textNode, value; + + while (i--) { + node = nodes[i]; + textNode = nodes[i].firstChild; + + if (textNode) { + textNode.value = Entities.decode(textNode.value); + } else { + // Old IE can't retain noscript value so an attribute is used to store it + value = node.attributes.map['data-mce-innertext']; + if (value) { + node.attr('data-mce-innertext', null); + textNode = new Node('#text', 3); + textNode.value = value; + textNode.raw = true; + node.append(textNode); + } + } + } + }); + } + } + + /** + * IE has an issue where you can't select/move the caret by clicking outside the body if the document is in standards mode. + */ + function fixCaretSelectionOfDocumentElementOnIe() { + var doc = dom.doc, body = doc.body, started, startRng, htmlElm; + + // Return range from point or null if it failed + function rngFromPoint(x, y) { + var rng = body.createTextRange(); + + try { + rng.moveToPoint(x, y); + } catch (ex) { + // IE sometimes throws and exception, so lets just ignore it + rng = null; + } + + return rng; + } + + // Fires while the selection is changing + function selectionChange(e) { + var pointRng; + + // Check if the button is down or not + if (e.button) { + // Create range from mouse position + pointRng = rngFromPoint(e.x, e.y); + + if (pointRng) { + // Check if pointRange is before/after selection then change the endPoint + if (pointRng.compareEndPoints('StartToStart', startRng) > 0) { + pointRng.setEndPoint('StartToStart', startRng); + } else { + pointRng.setEndPoint('EndToEnd', startRng); + } + + pointRng.select(); + } + } else { + endSelection(); + } + } + + // Removes listeners + function endSelection() { + var rng = doc.selection.createRange(); + + // If the range is collapsed then use the last start range + if (startRng && !rng.item && rng.compareEndPoints('StartToEnd', rng) === 0) { + startRng.select(); + } + + dom.unbind(doc, 'mouseup', endSelection); + dom.unbind(doc, 'mousemove', selectionChange); + startRng = started = 0; + } + + // Make HTML element unselectable since we are going to handle selection by hand + doc.documentElement.unselectable = true; + + // Detect when user selects outside BODY + dom.bind(doc, 'mousedown contextmenu', function(e) { + if (e.target.nodeName === 'HTML') { + if (started) { + endSelection(); + } + + // Detect vertical scrollbar, since IE will fire a mousedown on the scrollbar and have target set as HTML + htmlElm = doc.documentElement; + if (htmlElm.scrollHeight > htmlElm.clientHeight) { + return; + } + + started = 1; + // Setup start position + startRng = rngFromPoint(e.x, e.y); + if (startRng) { + // Listen for selection change events + dom.bind(doc, 'mouseup', endSelection); + dom.bind(doc, 'mousemove', selectionChange); + + dom.getRoot().focus(); + startRng.select(); + } + } + }); + } + + /** + * Fixes selection issues where the caret can be placed between two inline elements like <b>a</b>|<b>b</b> + * this fix will lean the caret right into the closest inline element. + */ + function normalizeSelection() { + // Normalize selection for example <b>a</b><i>|a</i> becomes <b>a|</b><i>a</i> except for Ctrl+A since it selects everything + editor.on('keyup focusin mouseup', function(e) { + if (e.keyCode != 65 || !VK.metaKeyPressed(e)) { + selection.normalize(); + } + }, true); + } + + /** + * Forces Gecko to render a broken image icon if it fails to load an image. + */ + function showBrokenImageIcon() { + editor.contentStyles.push( + 'img:-moz-broken {' + + '-moz-force-broken-image-icon:1;' + + 'min-width:24px;' + + 'min-height:24px' + + '}' + ); + } + + /** + * iOS has a bug where it's impossible to type if the document has a touchstart event + * bound and the user touches the document while having the on screen keyboard visible. + * + * The touch event moves the focus to the parent document while having the caret inside the iframe + * this fix moves the focus back into the iframe document. + */ + function restoreFocusOnKeyDown() { + if (!editor.inline) { + editor.on('keydown', function() { + if (document.activeElement == document.body) { + editor.getWin().focus(); + } + }); + } + } + + /** + * IE 11 has an annoying issue where you can't move focus into the editor + * by clicking on the white area HTML element. We used to be able to to fix this with + * the fixCaretSelectionOfDocumentElementOnIe fix. But since M$ removed the selection + * object it's not possible anymore. So we need to hack in a ungly CSS to force the + * body to be at least 150px. If the user clicks the HTML element out side this 150px region + * we simply move the focus into the first paragraph. Not ideal since you loose the + * positioning of the caret but goot enough for most cases. + */ + function bodyHeight() { + if (!editor.inline) { + editor.contentStyles.push('body {min-height: 150px}'); + editor.on('click', function(e) { + if (e.target.nodeName == 'HTML') { + editor.getBody().focus(); + editor.selection.normalize(); + editor.nodeChanged(); + } + }); + } + } + + /** + * Firefox on Mac OS will move the browser back to the previous page if you press CMD+Left arrow. + * You might then loose all your work so we need to block that behavior and replace it with our own. + */ + function blockCmdArrowNavigation() { + if (Env.mac) { + editor.on('keydown', function(e) { + if (VK.metaKeyPressed(e) && (e.keyCode == 37 || e.keyCode == 39)) { + e.preventDefault(); + editor.selection.getSel().modify('move', e.keyCode == 37 ? 'backward' : 'forward', 'word'); + } + }); + } + } + + /** + * Disables the autolinking in IE 9+ this is then re-enabled by the autolink plugin. + */ + function disableAutoUrlDetect() { + setEditorCommandState("AutoUrlDetect", false); + } + + /** + * IE 11 has a fantastic bug where it will produce two trailing BR elements to iframe bodies when + * the iframe is hidden by display: none on a parent container. The DOM is actually out of sync + * with innerHTML in this case. It's like IE adds shadow DOM BR elements that appears on innerHTML + * but not as the lastChild of the body. However is we add a BR element to the body then remove it + * it doesn't seem to add these BR elements makes sence right?! + * + * Example of what happens: <body>text</body> becomes <body>text<br><br></body> + */ + function doubleTrailingBrElements() { + if (!editor.inline) { + editor.on('focus blur', function() { + var br = editor.dom.create('br'); + editor.getBody().appendChild(br); + br.parentNode.removeChild(br); + }, true); + } + } + + /** + * iOS 7.1 introduced two new bugs: + * 1) It's possible to open links within a contentEditable area by clicking on them. + * 2) If you hold down the finger it will display the link/image touch callout menu. + */ + function tapLinksAndImages() { + editor.on('click', function(e) { + if (e.target.tagName === 'A') { + e.preventDefault(); + } + }); + + editor.contentStyles.push('.mce-content-body {-webkit-touch-callout: none}'); + } + + // All browsers + disableBackspaceIntoATable(); + removeBlockQuoteOnBackSpace(); + emptyEditorWhenDeleting(); + normalizeSelection(); + + // WebKit + if (isWebKit) { + cleanupStylesWhenDeleting(); + inputMethodFocus(); + selectControlElements(); + setDefaultBlockType(); + + // iOS + if (Env.iOS) { + selectionChangeNodeChanged(); + restoreFocusOnKeyDown(); + bodyHeight(); + tapLinksAndImages(); + } else { + selectAll(); + } + } + + // IE + if (isIE && Env.ie < 11) { + removeHrOnBackspace(); + ensureBodyHasRoleApplication(); + addNewLinesBeforeBrInPre(); + removePreSerializedStylesWhenSelectingControls(); + deleteControlItemOnBackSpace(); + renderEmptyBlocksFix(); + keepNoScriptContents(); + fixCaretSelectionOfDocumentElementOnIe(); + } + + if (Env.ie >= 11) { + bodyHeight(); + doubleTrailingBrElements(); + } + + if (Env.ie) { + selectAll(); + disableAutoUrlDetect(); + } + + // Gecko + if (isGecko) { + removeHrOnBackspace(); + focusBody(); + removeStylesWhenDeletingAcrossBlockElements(); + setGeckoEditingOptions(); + addBrAfterLastLinks(); + removeGhostSelection(); + showBrokenImageIcon(); + blockCmdArrowNavigation(); + } + }; +}); + +// Included from: js/tinymce/classes/util/Observable.js + +/** + * Observable.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This mixin will add event binding logic to classes. + * + * @mixin tinymce.util.Observable + */ +define("tinymce/util/Observable", [ + "tinymce/util/Tools" +], function(Tools) { + var bindingsName = "__bindings"; + var nativeEvents = Tools.makeMap( + "focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange" + + " mouseout mouseenter mouseleave keydown keypress keyup contextmenu dragstart dragend dragover draggesture dragdrop drop drag", ' ' + ); + + function returnFalse() { + return false; + } + + function returnTrue() { + return true; + } + + return { + /** + * Fires the specified event by name. + * + * @method fire + * @param {String} name Name of the event to fire. + * @param {tinymce.Event/Object?} args Event arguments. + * @param {Boolean?} bubble True/false if the event is to be bubbled. + * @return {tinymce.Event} Event instance passed in converted into tinymce.Event instance. + * @example + * instance.fire('event', {...}); + */ + fire: function(name, args, bubble) { + var self = this, handlers, i, l, callback, parent; + + if (self.removed) { + return; + } + + name = name.toLowerCase(); + args = args || {}; + args.type = name; + + // Setup target is there isn't one + if (!args.target) { + args.target = self; + } + + // Add event delegation methods if they are missing + if (!args.preventDefault) { + // Add preventDefault method + args.preventDefault = function() { + args.isDefaultPrevented = returnTrue; + }; + + // Add stopPropagation + args.stopPropagation = function() { + args.isPropagationStopped = returnTrue; + }; + + // Add stopImmediatePropagation + args.stopImmediatePropagation = function() { + args.isImmediatePropagationStopped = returnTrue; + }; + + // Add event delegation states + args.isDefaultPrevented = returnFalse; + args.isPropagationStopped = returnFalse; + args.isImmediatePropagationStopped = returnFalse; + } + + //console.log(name, args); + + if (self[bindingsName]) { + handlers = self[bindingsName][name]; + + if (handlers) { + for (i = 0, l = handlers.length; i < l; i++) { + handlers[i] = callback = handlers[i]; + + // Stop immediate propagation if needed + if (args.isImmediatePropagationStopped()) { + break; + } + + // If callback returns false then prevent default and stop all propagation + if (callback.call(self, args) === false) { + args.preventDefault(); + return args; + } + } + } + } + + // Bubble event up to parents + if (bubble !== false && self.parent) { + parent = self.parent(); + while (parent && !args.isPropagationStopped()) { + parent.fire(name, args, false); + parent = parent.parent(); + } + } + + return args; + }, + + /** + * Binds an event listener to a specific event by name. + * + * @method on + * @param {String} name Event name or space separated list of events to bind. + * @param {callback} callback Callback to be executed when the event occurs. + * @param {Boolean} first Optional flag if the event should be prepended. Use this with care. + * @return {Object} Current class instance. + * @example + * instance.on('event', function(e) { + * // Callback logic + * }); + */ + on: function(name, callback, prepend) { + var self = this, bindings, handlers, names, i; + + if (callback === false) { + callback = function() { + return false; + }; + } + + if (callback) { + names = name.toLowerCase().split(' '); + i = names.length; + while (i--) { + name = names[i]; + + bindings = self[bindingsName]; + if (!bindings) { + bindings = self[bindingsName] = {}; + } + + handlers = bindings[name]; + if (!handlers) { + handlers = bindings[name] = []; + if (self.bindNative && nativeEvents[name]) { + self.bindNative(name); + } + } + + if (prepend) { + handlers.unshift(callback); + } else { + handlers.push(callback); + } + } + } + + return self; + }, + + /** + * Unbinds an event listener to a specific event by name. + * + * @method off + * @param {String?} name Name of the event to unbind. + * @param {callback?} callback Callback to unbind. + * @return {Object} Current class instance. + * @example + * // Unbind specific callback + * instance.off('event', handler); + * + * // Unbind all listeners by name + * instance.off('event'); + * + * // Unbind all events + * instance.off(); + */ + off: function(name, callback) { + var self = this, i, bindings = self[bindingsName], handlers, bindingName, names, hi; + + if (bindings) { + if (name) { + names = name.toLowerCase().split(' '); + i = names.length; + while (i--) { + name = names[i]; + handlers = bindings[name]; + + // Unbind all handlers + if (!name) { + for (bindingName in bindings) { + bindings[name].length = 0; + } + + return self; + } + + if (handlers) { + // Unbind all by name + if (!callback) { + handlers.length = 0; + } else { + // Unbind specific ones + hi = handlers.length; + while (hi--) { + if (handlers[hi] === callback) { + handlers.splice(hi, 1); + } + } + } + + if (!handlers.length && self.unbindNative && nativeEvents[name]) { + self.unbindNative(name); + delete bindings[name]; + } + } + } + } else { + if (self.unbindNative) { + for (name in bindings) { + self.unbindNative(name); + } + } + + self[bindingsName] = []; + } + } + + return self; + }, + + hasEventListeners: function(name) { + var bindings = this[bindingsName]; + + name = name.toLowerCase(); + + return !(!bindings || !bindings[name] || bindings[name].length === 0); + } + }; +}); + +// Included from: js/tinymce/classes/Shortcuts.js + +/** + * Shortcuts.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Contains all logic for handling of keyboard shortcuts. + */ +define("tinymce/Shortcuts", [ + "tinymce/util/Tools", + "tinymce/Env" +], function(Tools, Env) { + var each = Tools.each, explode = Tools.explode; + + var keyCodeLookup = { + "f9": 120, + "f10": 121, + "f11": 122 + }; + + return function(editor) { + var self = this, shortcuts = {}; + + editor.on('keyup keypress keydown', function(e) { + if (e.altKey || e.ctrlKey || e.metaKey) { + each(shortcuts, function(shortcut) { + var ctrlKey = Env.mac ? e.metaKey : e.ctrlKey; + + if (shortcut.ctrl != ctrlKey || shortcut.alt != e.altKey || shortcut.shift != e.shiftKey) { + return; + } + + if (e.keyCode == shortcut.keyCode || (e.charCode && e.charCode == shortcut.charCode)) { + e.preventDefault(); + + if (e.type == "keydown") { + shortcut.func.call(shortcut.scope); + } + + return true; + } + }); + } + }); + + /** + * Adds a keyboard shortcut for some command or function. + * + * @method addShortcut + * @param {String} pattern Shortcut pattern. Like for example: ctrl+alt+o. + * @param {String} desc Text description for the command. + * @param {String/Function} cmdFunc Command name string or function to execute when the key is pressed. + * @param {Object} sc Optional scope to execute the function in. + * @return {Boolean} true/false state if the shortcut was added or not. + */ + self.add = function(pattern, desc, cmdFunc, scope) { + var cmd; + + cmd = cmdFunc; + + if (typeof(cmdFunc) === 'string') { + cmdFunc = function() { + editor.execCommand(cmd, false, null); + }; + } else if (Tools.isArray(cmd)) { + cmdFunc = function() { + editor.execCommand(cmd[0], cmd[1], cmd[2]); + }; + } + + each(explode(pattern.toLowerCase()), function(pattern) { + var shortcut = { + func: cmdFunc, + scope: scope || editor, + desc: editor.translate(desc), + alt: false, + ctrl: false, + shift: false + }; + + each(explode(pattern, '+'), function(value) { + switch (value) { + case 'alt': + case 'ctrl': + case 'shift': + shortcut[value] = true; + break; + + default: + shortcut.charCode = value.charCodeAt(0); + shortcut.keyCode = keyCodeLookup[value] || value.toUpperCase().charCodeAt(0); + } + }); + + shortcuts[ + (shortcut.ctrl ? 'ctrl' : '') + ',' + + (shortcut.alt ? 'alt' : '') + ',' + + (shortcut.shift ? 'shift' : '') + ',' + + shortcut.keyCode + ] = shortcut; + }); + + return true; + }; + }; +}); + +// Included from: js/tinymce/classes/Editor.js + +/** + * Editor.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*jshint scripturl:true */ + +/** + * Include the base event class documentation. + * + * @include ../../../tools/docs/tinymce.Event.js + */ + +/** + * This class contains the core logic for a TinyMCE editor. + * + * @class tinymce.Editor + * @mixes tinymce.util.Observable + * @example + * // Add a class to all paragraphs in the editor. + * tinymce.activeEditor.dom.addClass(tinymce.activeEditor.dom.select('p'), 'someclass'); + * + * // Gets the current editors selection as text + * tinymce.activeEditor.selection.getContent({format: 'text'}); + * + * // Creates a new editor instance + * var ed = new tinymce.Editor('textareaid', { + * some_setting: 1 + * }, tinymce.EditorManager); + * + * // Select each item the user clicks on + * ed.on('click', function(e) { + * ed.selection.select(e.target); + * }); + * + * ed.render(); + */ +define("tinymce/Editor", [ + "tinymce/dom/DOMUtils", + "tinymce/AddOnManager", + "tinymce/html/Node", + "tinymce/dom/Serializer", + "tinymce/html/Serializer", + "tinymce/dom/Selection", + "tinymce/Formatter", + "tinymce/UndoManager", + "tinymce/EnterKey", + "tinymce/ForceBlocks", + "tinymce/EditorCommands", + "tinymce/util/URI", + "tinymce/dom/ScriptLoader", + "tinymce/dom/EventUtils", + "tinymce/WindowManager", + "tinymce/html/Schema", + "tinymce/html/DomParser", + "tinymce/util/Quirks", + "tinymce/Env", + "tinymce/util/Tools", + "tinymce/util/Observable", + "tinymce/Shortcuts" +], function( + DOMUtils, AddOnManager, Node, DomSerializer, Serializer, + Selection, Formatter, UndoManager, EnterKey, ForceBlocks, EditorCommands, + URI, ScriptLoader, EventUtils, WindowManager, + Schema, DomParser, Quirks, Env, Tools, Observable, Shortcuts +) { + // Shorten these names + var DOM = DOMUtils.DOM, ThemeManager = AddOnManager.ThemeManager, PluginManager = AddOnManager.PluginManager; + var extend = Tools.extend, each = Tools.each, explode = Tools.explode; + var inArray = Tools.inArray, trim = Tools.trim, resolve = Tools.resolve; + var Event = EventUtils.Event; + var isGecko = Env.gecko, ie = Env.ie; + + function getEventTarget(editor, eventName) { + if (eventName == 'selectionchange') { + return editor.getDoc(); + } + + // Need to bind mousedown/mouseup etc to document not body in iframe mode + // Since the user might click on the HTML element not the BODY + if (!editor.inline && /^mouse|click|contextmenu|drop/.test(eventName)) { + return editor.getDoc(); + } + + return editor.getBody(); + } + + /** + * Include documentation for all the events. + * + * @include ../../../tools/docs/tinymce.Editor.js + */ + + /** + * Constructs a editor instance by id. + * + * @constructor + * @method Editor + * @param {String} id Unique id for the editor. + * @param {Object} settings Settings for the editor. + * @param {tinymce.EditorManager} editorManager EditorManager instance. + * @author Moxiecode + */ + function Editor(id, settings, editorManager) { + var self = this, documentBaseUrl, baseUri; + + documentBaseUrl = self.documentBaseUrl = editorManager.documentBaseURL; + baseUri = editorManager.baseURI; + + /** + * Name/value collection with editor settings. + * + * @property settings + * @type Object + * @example + * // Get the value of the theme setting + * tinymce.activeEditor.windowManager.alert("You are using the " + tinymce.activeEditor.settings.theme + " theme"); + */ + self.settings = settings = extend({ + id: id, + theme: 'modern', + delta_width: 0, + delta_height: 0, + popup_css: '', + plugins: '', + document_base_url: documentBaseUrl, + add_form_submit_trigger: true, + submit_patch: true, + add_unload_trigger: true, + convert_urls: true, + relative_urls: true, + remove_script_host: true, + object_resizing: true, + doctype: '<!DOCTYPE html>', + visual: true, + font_size_style_values: 'xx-small,x-small,small,medium,large,x-large,xx-large', + + // See: http://www.w3.org/TR/CSS2/fonts.html#propdef-font-size + font_size_legacy_values: 'xx-small,small,medium,large,x-large,xx-large,300%', + forced_root_block: 'p', + hidden_input: true, + padd_empty_editor: true, + render_ui: true, + indentation: '30px', + inline_styles: true, + convert_fonts_to_spans: true, + indent: 'simple', + indent_before: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,' + + 'tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist', + indent_after: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,' + + 'tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist', + validate: true, + entity_encoding: 'named', + url_converter: self.convertURL, + url_converter_scope: self, + ie7_compat: true + }, settings); + + AddOnManager.language = settings.language || 'en'; + AddOnManager.languageLoad = settings.language_load; + + AddOnManager.baseURL = editorManager.baseURL; + + /** + * Editor instance id, normally the same as the div/textarea that was replaced. + * + * @property id + * @type String + */ + self.id = settings.id = id; + + /** + * State to force the editor to return false on a isDirty call. + * + * @property isNotDirty + * @type Boolean + * @example + * function ajaxSave() { + * var ed = tinymce.get('elm1'); + * + * // Save contents using some XHR call + * alert(ed.getContent()); + * + * ed.isNotDirty = true; // Force not dirty state + * } + */ + self.isNotDirty = true; + + /** + * Name/Value object containting plugin instances. + * + * @property plugins + * @type Object + * @example + * // Execute a method inside a plugin directly + * tinymce.activeEditor.plugins.someplugin.someMethod(); + */ + self.plugins = {}; + + /** + * URI object to document configured for the TinyMCE instance. + * + * @property documentBaseURI + * @type tinymce.util.URI + * @example + * // Get relative URL from the location of document_base_url + * tinymce.activeEditor.documentBaseURI.toRelative('/somedir/somefile.htm'); + * + * // Get absolute URL from the location of document_base_url + * tinymce.activeEditor.documentBaseURI.toAbsolute('somefile.htm'); + */ + self.documentBaseURI = new URI(settings.document_base_url || documentBaseUrl, { + base_uri: baseUri + }); + + /** + * URI object to current document that holds the TinyMCE editor instance. + * + * @property baseURI + * @type tinymce.util.URI + * @example + * // Get relative URL from the location of the API + * tinymce.activeEditor.baseURI.toRelative('/somedir/somefile.htm'); + * + * // Get absolute URL from the location of the API + * tinymce.activeEditor.baseURI.toAbsolute('somefile.htm'); + */ + self.baseURI = baseUri; + + /** + * Array with CSS files to load into the iframe. + * + * @property contentCSS + * @type Array + */ + self.contentCSS = []; + + /** + * Array of CSS styles to add to head of document when the editor loads. + * + * @property contentStyles + * @type Array + */ + self.contentStyles = []; + + // Creates all events like onClick, onSetContent etc see Editor.Events.js for the actual logic + self.shortcuts = new Shortcuts(self); + + // Internal command handler objects + self.execCommands = {}; + self.queryStateCommands = {}; + self.queryValueCommands = {}; + self.loadedCSS = {}; + + self.suffix = editorManager.suffix; + self.editorManager = editorManager; + self.inline = settings.inline; + + // Call setup + editorManager.fire('SetupEditor', self); + self.execCallback('setup', self); + } + + Editor.prototype = { + /** + * Renderes the editor/adds it to the page. + * + * @method render + */ + render: function() { + var self = this, settings = self.settings, id = self.id, suffix = self.suffix; + + function readyHandler() { + DOM.unbind(window, 'ready', readyHandler); + self.render(); + } + + // Page is not loaded yet, wait for it + if (!Event.domLoaded) { + DOM.bind(window, 'ready', readyHandler); + return; + } + + // Element not found, then skip initialization + if (!self.getElement()) { + return; + } + + // No editable support old iOS versions etc + if (!Env.contentEditable) { + return; + } + + // Hide target element early to prevent content flashing + if (!settings.inline) { + self.orgVisibility = self.getElement().style.visibility; + self.getElement().style.visibility = 'hidden'; + } else { + self.inline = true; + } + + var form = self.getElement().form || DOM.getParent(id, 'form'); + if (form) { + self.formElement = form; + + // Add hidden input for non input elements inside form elements + if (settings.hidden_input && !/TEXTAREA|INPUT/i.test(self.getElement().nodeName)) { + DOM.insertAfter(DOM.create('input', {type: 'hidden', name: id}), id); + self.hasHiddenInput = true; + } + + // Pass submit/reset from form to editor instance + self.formEventDelegate = function(e) { + self.fire(e.type, e); + }; + + DOM.bind(form, 'submit reset', self.formEventDelegate); + + // Reset contents in editor when the form is reset + self.on('reset', function() { + self.setContent(self.startContent, {format: 'raw'}); + }); + + // Check page uses id="submit" or name="submit" for it's submit button + if (settings.submit_patch && !form.submit.nodeType && !form.submit.length && !form._mceOldSubmit) { + form._mceOldSubmit = form.submit; + form.submit = function() { + self.editorManager.triggerSave(); + self.isNotDirty = true; + + return form._mceOldSubmit(form); + }; + } + } + + /** + * Window manager reference, use this to open new windows and dialogs. + * + * @property windowManager + * @type tinymce.WindowManager + * @example + * // Shows an alert message + * tinymce.activeEditor.windowManager.alert('Hello world!'); + * + * // Opens a new dialog with the file.htm file and the size 320x240 + * // It also adds a custom parameter this can be retrieved by using tinyMCEPopup.getWindowArg inside the dialog. + * tinymce.activeEditor.windowManager.open({ + * url: 'file.htm', + * width: 320, + * height: 240 + * }, { + * custom_param: 1 + * }); + */ + self.windowManager = new WindowManager(self); + + if (settings.encoding == 'xml') { + self.on('GetContent', function(e) { + if (e.save) { + e.content = DOM.encode(e.content); + } + }); + } + + if (settings.add_form_submit_trigger) { + self.on('submit', function() { + if (self.initialized) { + self.save(); + } + }); + } + + if (settings.add_unload_trigger) { + self._beforeUnload = function() { + if (self.initialized && !self.destroyed && !self.isHidden()) { + self.save({format: 'raw', no_events: true, set_dirty: false}); + } + }; + + self.editorManager.on('BeforeUnload', self._beforeUnload); + } + + // Load scripts + function loadScripts() { + var scriptLoader = ScriptLoader.ScriptLoader; + + if (settings.language && settings.language != 'en' && !settings.language_url) { + settings.language_url = self.editorManager.baseURL + '/langs/' + settings.language + '.js'; + } + + if (settings.language_url) { + scriptLoader.add(settings.language_url); + } + + if (settings.theme && typeof settings.theme != "function" && + settings.theme.charAt(0) != '-' && !ThemeManager.urls[settings.theme]) { + var themeUrl = settings.theme_url; + + if (themeUrl) { + themeUrl = self.documentBaseURI.toAbsolute(themeUrl); + } else { + themeUrl = 'themes/' + settings.theme + '/theme' + suffix + '.js'; + } + + ThemeManager.load(settings.theme, themeUrl); + } + + if (Tools.isArray(settings.plugins)) { + settings.plugins = settings.plugins.join(' '); + } + + each(settings.external_plugins, function(url, name) { + PluginManager.load(name, url); + settings.plugins += ' ' + name; + }); + + each(settings.plugins.split(/[ ,]/), function(plugin) { + plugin = trim(plugin); + + if (plugin && !PluginManager.urls[plugin]) { + if (plugin.charAt(0) == '-') { + plugin = plugin.substr(1, plugin.length); + + var dependencies = PluginManager.dependencies(plugin); + + each(dependencies, function(dep) { + var defaultSettings = { + prefix:'plugins/', + resource: dep, + suffix:'/plugin' + suffix + '.js' + }; + + dep = PluginManager.createUrl(defaultSettings, dep); + PluginManager.load(dep.resource, dep); + }); + } else { + PluginManager.load(plugin, { + prefix: 'plugins/', + resource: plugin, + suffix: '/plugin' + suffix + '.js' + }); + } + } + }); + + scriptLoader.loadQueue(function() { + if (!self.removed) { + self.init(); + } + }); + } + + loadScripts(); + }, + + /** + * Initializes the editor this will be called automatically when + * all plugins/themes and language packs are loaded by the rendered method. + * This method will setup the iframe and create the theme and plugin instances. + * + * @method init + */ + init: function() { + var self = this, settings = self.settings, elm = self.getElement(); + var w, h, minHeight, n, o, Theme, url, bodyId, bodyClass, re, i, initializedPlugins = []; + + self.rtl = this.editorManager.i18n.rtl; + self.editorManager.add(self); + + settings.aria_label = settings.aria_label || DOM.getAttrib(elm, 'aria-label', self.getLang('aria.rich_text_area')); + + /** + * Reference to the theme instance that was used to generate the UI. + * + * @property theme + * @type tinymce.Theme + * @example + * // Executes a method on the theme directly + * tinymce.activeEditor.theme.someMethod(); + */ + if (settings.theme) { + if (typeof settings.theme != "function") { + settings.theme = settings.theme.replace(/-/, ''); + Theme = ThemeManager.get(settings.theme); + self.theme = new Theme(self, ThemeManager.urls[settings.theme]); + + if (self.theme.init) { + self.theme.init(self, ThemeManager.urls[settings.theme] || self.documentBaseUrl.replace(/\/$/, '')); + } + } else { + self.theme = settings.theme; + } + } + + function initPlugin(plugin) { + var Plugin = PluginManager.get(plugin), pluginUrl, pluginInstance; + + pluginUrl = PluginManager.urls[plugin] || self.documentBaseUrl.replace(/\/$/, ''); + plugin = trim(plugin); + if (Plugin && inArray(initializedPlugins, plugin) === -1) { + each(PluginManager.dependencies(plugin), function(dep){ + initPlugin(dep); + }); + + pluginInstance = new Plugin(self, pluginUrl); + + self.plugins[plugin] = pluginInstance; + + if (pluginInstance.init) { + pluginInstance.init(self, pluginUrl); + initializedPlugins.push(plugin); + } + } + } + + // Create all plugins + each(settings.plugins.replace(/\-/g, '').split(/[ ,]/), initPlugin); + + // Measure box + if (settings.render_ui && self.theme) { + self.orgDisplay = elm.style.display; + + if (typeof settings.theme != "function") { + w = settings.width || elm.style.width || elm.offsetWidth; + h = settings.height || elm.style.height || elm.offsetHeight; + minHeight = settings.min_height || 100; + re = /^[0-9\.]+(|px)$/i; + + if (re.test('' + w)) { + w = Math.max(parseInt(w, 10), 100); + } + + if (re.test('' + h)) { + h = Math.max(parseInt(h, 10), minHeight); + } + + // Render UI + o = self.theme.renderUI({ + targetNode: elm, + width: w, + height: h, + deltaWidth: settings.delta_width, + deltaHeight: settings.delta_height + }); + + // Resize editor + if (!settings.content_editable) { + DOM.setStyles(o.sizeContainer || o.editorContainer, { + wi2dth: w, + // TODO: Fix this + h2eight: h + }); + + h = (o.iframeHeight || h) + (typeof(h) == 'number' ? (o.deltaHeight || 0) : ''); + if (h < minHeight) { + h = minHeight; + } + } + } else { + o = settings.theme(self, elm); + + // Convert element type to id:s + if (o.editorContainer.nodeType) { + o.editorContainer = o.editorContainer.id = o.editorContainer.id || self.id + "_parent"; + } + + // Convert element type to id:s + if (o.iframeContainer.nodeType) { + o.iframeContainer = o.iframeContainer.id = o.iframeContainer.id || self.id + "_iframecontainer"; + } + + // Use specified iframe height or the targets offsetHeight + h = o.iframeHeight || elm.offsetHeight; + } + + self.editorContainer = o.editorContainer; + } + + // Load specified content CSS last + if (settings.content_css) { + each(explode(settings.content_css), function(u) { + self.contentCSS.push(self.documentBaseURI.toAbsolute(u)); + }); + } + + // Load specified content CSS last + if (settings.content_style) { + self.contentStyles.push(settings.content_style); + } + + // Content editable mode ends here + if (settings.content_editable) { + elm = n = o = null; // Fix IE leak + return self.initContentBody(); + } + + self.iframeHTML = settings.doctype + '<html><head>'; + + // We only need to override paths if we have to + // IE has a bug where it remove site absolute urls to relative ones if this is specified + if (settings.document_base_url != self.documentBaseUrl) { + self.iframeHTML += '<base href="' + self.documentBaseURI.getURI() + '" />'; + } + + // IE8 doesn't support carets behind images setting ie7_compat would force IE8+ to run in IE7 compat mode. + if (!Env.caretAfter && settings.ie7_compat) { + self.iframeHTML += '<meta http-equiv="X-UA-Compatible" content="IE=7" />'; + } + + self.iframeHTML += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'; + + // Load the CSS by injecting them into the HTML this will reduce "flicker" + for (i = 0; i < self.contentCSS.length; i++) { + var cssUrl = self.contentCSS[i]; + self.iframeHTML += '<link type="text/css" rel="stylesheet" href="' + cssUrl + '" />'; + self.loadedCSS[cssUrl] = true; + } + + bodyId = settings.body_id || 'tinymce'; + if (bodyId.indexOf('=') != -1) { + bodyId = self.getParam('body_id', '', 'hash'); + bodyId = bodyId[self.id] || bodyId; + } + + bodyClass = settings.body_class || ''; + if (bodyClass.indexOf('=') != -1) { + bodyClass = self.getParam('body_class', '', 'hash'); + bodyClass = bodyClass[self.id] || ''; + } + + self.iframeHTML += '</head><body id="' + bodyId + '" class="mce-content-body ' + bodyClass + '" ' + + 'onload="window.parent.tinymce.get(\'' + self.id + '\').fire(\'load\');"><br></body></html>'; + + /*eslint no-script-url:0 */ + var domainRelaxUrl = 'javascript:(function(){' + + 'document.open();document.domain="' + document.domain + '";' + + 'var ed = window.parent.tinymce.get("' + self.id + '");document.write(ed.iframeHTML);' + + 'document.close();ed.initContentBody(true);})()'; + + // Domain relaxing is required since the user has messed around with document.domain + if (document.domain != location.hostname) { + url = domainRelaxUrl; + } + + // Create iframe + // TODO: ACC add the appropriate description on this. + n = DOM.add(o.iframeContainer, 'iframe', { + id: self.id + "_ifr", + src: url || 'javascript:""', // Workaround for HTTPS warning in IE6/7 + frameBorder: '0', + allowTransparency: "true", + title: self.editorManager.translate( + "Rich Text Area. Press ALT-F9 for menu. " + + "Press ALT-F10 for toolbar. Press ALT-0 for help" + ), + style: { + width: '100%', + height: h, + display: 'block' // Important for Gecko to render the iframe correctly + } + }); + + // Try accessing the document this will fail on IE when document.domain is set to the same as location.hostname + // Then we have to force domain relaxing using the domainRelaxUrl approach very ugly!! + if (ie) { + try { + self.getDoc(); + } catch (e) { + n.src = url = domainRelaxUrl; + } + } + + self.contentAreaContainer = o.iframeContainer; + + if (o.editorContainer) { + DOM.get(o.editorContainer).style.display = self.orgDisplay; + } + + DOM.get(self.id).style.display = 'none'; + DOM.setAttrib(self.id, 'aria-hidden', true); + + if (!url) { + self.initContentBody(); + } + + elm = n = o = null; // Cleanup + }, + + /** + * This method get called by the init method ones the iframe is loaded. + * It will fill the iframe with contents, setups DOM and selection objects for the iframe. + * + * @method initContentBody + * @private + */ + initContentBody: function(skipWrite) { + var self = this, settings = self.settings, targetElm = DOM.get(self.id), doc = self.getDoc(), body, contentCssText; + + // Restore visibility on target element + if (!settings.inline) { + self.getElement().style.visibility = self.orgVisibility; + } + + // Setup iframe body + if (!skipWrite && !settings.content_editable) { + doc.open(); + doc.write(self.iframeHTML); + doc.close(); + } + + if (settings.content_editable) { + self.on('remove', function() { + var bodyEl = this.getBody(); + + DOM.removeClass(bodyEl, 'mce-content-body'); + DOM.removeClass(bodyEl, 'mce-edit-focus'); + DOM.setAttrib(bodyEl, 'tabIndex', null); + DOM.setAttrib(bodyEl, 'contentEditable', null); + }); + + DOM.addClass(targetElm, 'mce-content-body'); + targetElm.tabIndex = -1; + self.contentDocument = doc = settings.content_document || document; + self.contentWindow = settings.content_window || window; + self.bodyElement = targetElm; + + // Prevent leak in IE + settings.content_document = settings.content_window = null; + + // TODO: Fix this + settings.root_name = targetElm.nodeName.toLowerCase(); + } + + // It will not steal focus while setting contentEditable + body = self.getBody(); + body.disabled = true; + + if (!settings.readonly) { + if (self.inline && DOM.getStyle(body, 'position', true) == 'static') { + body.style.position = 'relative'; + } + + body.contentEditable = self.getParam('content_editable_state', true); + } + + body.disabled = false; + + /** + * Schema instance, enables you to validate elements and it's children. + * + * @property schema + * @type tinymce.html.Schema + */ + self.schema = new Schema(settings); + + /** + * DOM instance for the editor. + * + * @property dom + * @type tinymce.dom.DOMUtils + * @example + * // Adds a class to all paragraphs within the editor + * tinymce.activeEditor.dom.addClass(tinymce.activeEditor.dom.select('p'), 'someclass'); + */ + self.dom = new DOMUtils(doc, { + keep_values: true, + url_converter: self.convertURL, + url_converter_scope: self, + hex_colors: settings.force_hex_style_colors, + class_filter: settings.class_filter, + update_styles: true, + root_element: settings.content_editable ? self.id : null, + collect: settings.content_editable, + schema: self.schema, + onSetAttrib: function(e) { + self.fire('SetAttrib', e); + } + }); + + /** + * HTML parser will be used when contents is inserted into the editor. + * + * @property parser + * @type tinymce.html.DomParser + */ + self.parser = new DomParser(settings, self.schema); + + // Convert src and href into data-mce-src, data-mce-href and data-mce-style + self.parser.addAttributeFilter('src,href,style', function(nodes, name) { + var i = nodes.length, node, dom = self.dom, value, internalName; + + while (i--) { + node = nodes[i]; + value = node.attr(name); + internalName = 'data-mce-' + name; + + // Add internal attribute if we need to we don't on a refresh of the document + if (!node.attributes.map[internalName]) { + if (name === "style") { + node.attr(internalName, dom.serializeStyle(dom.parseStyle(value), node.name)); + } else { + node.attr(internalName, self.convertURL(value, name, node.name)); + } + } + } + }); + + // Keep scripts from executing + self.parser.addNodeFilter('script', function(nodes) { + var i = nodes.length, node; + + while (i--) { + node = nodes[i]; + node.attr('type', 'mce-' + (node.attr('type') || 'text/javascript')); + } + }); + + self.parser.addNodeFilter('#cdata', function(nodes) { + var i = nodes.length, node; + + while (i--) { + node = nodes[i]; + node.type = 8; + node.name = '#comment'; + node.value = '[CDATA[' + node.value + ']]'; + } + }); + + self.parser.addNodeFilter('p,h1,h2,h3,h4,h5,h6,div', function(nodes) { + var i = nodes.length, node, nonEmptyElements = self.schema.getNonEmptyElements(); + + while (i--) { + node = nodes[i]; + + if (node.isEmpty(nonEmptyElements)) { + node.empty().append(new Node('br', 1)).shortEnded = true; + } + } + }); + + /** + * DOM serializer for the editor. Will be used when contents is extracted from the editor. + * + * @property serializer + * @type tinymce.dom.Serializer + * @example + * // Serializes the first paragraph in the editor into a string + * tinymce.activeEditor.serializer.serialize(tinymce.activeEditor.dom.select('p')[0]); + */ + self.serializer = new DomSerializer(settings, self); + + /** + * Selection instance for the editor. + * + * @property selection + * @type tinymce.dom.Selection + * @example + * // Sets some contents to the current selection in the editor + * tinymce.activeEditor.selection.setContent('Some contents'); + * + * // Gets the current selection + * alert(tinymce.activeEditor.selection.getContent()); + * + * // Selects the first paragraph found + * tinymce.activeEditor.selection.select(tinymce.activeEditor.dom.select('p')[0]); + */ + self.selection = new Selection(self.dom, self.getWin(), self.serializer, self); + + /** + * Formatter instance. + * + * @property formatter + * @type tinymce.Formatter + */ + self.formatter = new Formatter(self); + + /** + * Undo manager instance, responsible for handling undo levels. + * + * @property undoManager + * @type tinymce.UndoManager + * @example + * // Undoes the last modification to the editor + * tinymce.activeEditor.undoManager.undo(); + */ + self.undoManager = new UndoManager(self); + + self.forceBlocks = new ForceBlocks(self); + self.enterKey = new EnterKey(self); + self.editorCommands = new EditorCommands(self); + + self.fire('PreInit'); + + if (!settings.browser_spellcheck && !settings.gecko_spellcheck) { + doc.body.spellcheck = false; // Gecko + DOM.setAttrib(body, "spellcheck", "false"); + } + + self.fire('PostRender'); + + self.quirks = Quirks(self); + + if (settings.directionality) { + body.dir = settings.directionality; + } + + if (settings.nowrap) { + body.style.whiteSpace = "nowrap"; + } + + if (settings.protect) { + self.on('BeforeSetContent', function(e) { + each(settings.protect, function(pattern) { + e.content = e.content.replace(pattern, function(str) { + return '<!--mce:protected ' + escape(str) + '-->'; + }); + }); + }); + } + + self.on('SetContent', function() { + self.addVisual(self.getBody()); + }); + + // Remove empty contents + if (settings.padd_empty_editor) { + self.on('PostProcess', function(e) { + e.content = e.content.replace(/^(<p[^>]*>( | |\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/, ''); + }); + } + + self.load({initial: true, format: 'html'}); + self.startContent = self.getContent({format: 'raw'}); + + /** + * Is set to true after the editor instance has been initialized + * + * @property initialized + * @type Boolean + * @example + * function isEditorInitialized(editor) { + * return editor && editor.initialized; + * } + */ + self.initialized = true; + + each(self._pendingNativeEvents, function(name) { + self.dom.bind(getEventTarget(self, name), name, function(e) { + self.fire(e.type, e); + }); + }); + + self.fire('init'); + self.focus(true); + self.nodeChanged({initial: true}); + self.execCallback('init_instance_callback', self); + + // Add editor specific CSS styles + if (self.contentStyles.length > 0) { + contentCssText = ''; + + each(self.contentStyles, function(style) { + contentCssText += style + "\r\n"; + }); + + self.dom.addStyle(contentCssText); + } + + // Load specified content CSS last + each(self.contentCSS, function(cssUrl) { + if (!self.loadedCSS[cssUrl]) { + self.dom.loadCSS(cssUrl); + self.loadedCSS[cssUrl] = true; + } + }); + + // Handle auto focus + if (settings.auto_focus) { + setTimeout(function () { + var ed = self.editorManager.get(settings.auto_focus); + + ed.selection.select(ed.getBody(), 1); + ed.selection.collapse(1); + ed.getBody().focus(); + ed.getWin().focus(); + }, 100); + } + + // Clean up references for IE + targetElm = doc = body = null; + }, + + /** + * Focuses/activates the editor. This will set this editor as the activeEditor in the tinymce collection + * it will also place DOM focus inside the editor. + * + * @method focus + * @param {Boolean} skip_focus Skip DOM focus. Just set is as the active editor. + */ + focus: function(skip_focus) { + var oed, self = this, selection = self.selection, contentEditable = self.settings.content_editable, rng; + var controlElm, doc = self.getDoc(), body; + + if (!skip_focus) { + // Get selected control element + rng = selection.getRng(); + if (rng.item) { + controlElm = rng.item(0); + } + + self._refreshContentEditable(); + + // Focus the window iframe + if (!contentEditable) { + // WebKit needs this call to fire focusin event properly see #5948 + // But Opera pre Blink engine will produce an empty selection so skip Opera + if (!Env.opera) { + self.getBody().focus(); + } + + self.getWin().focus(); + } + + // Focus the body as well since it's contentEditable + if (isGecko || contentEditable) { + body = self.getBody(); + + // Check for setActive since it doesn't scroll to the element + if (body.setActive && Env.ie < 11) { + body.setActive(); + } else { + body.focus(); + } + + if (contentEditable) { + selection.normalize(); + } + } + + // Restore selected control element + // This is needed when for example an image is selected within a + // layer a call to focus will then remove the control selection + if (controlElm && controlElm.ownerDocument == doc) { + rng = doc.body.createControlRange(); + rng.addElement(controlElm); + rng.select(); + } + } + + if (self.editorManager.activeEditor != self) { + if ((oed = self.editorManager.activeEditor)) { + oed.fire('deactivate', {relatedTarget: self}); + } + + self.fire('activate', {relatedTarget: oed}); + } + + self.editorManager.activeEditor = self; + }, + + /** + * Executes a legacy callback. This method is useful to call old 2.x option callbacks. + * There new event model is a better way to add callback so this method might be removed in the future. + * + * @method execCallback + * @param {String} name Name of the callback to execute. + * @return {Object} Return value passed from callback function. + */ + execCallback: function(name) { + var self = this, callback = self.settings[name], scope; + + if (!callback) { + return; + } + + // Look through lookup + if (self.callbackLookup && (scope = self.callbackLookup[name])) { + callback = scope.func; + scope = scope.scope; + } + + if (typeof(callback) === 'string') { + scope = callback.replace(/\.\w+$/, ''); + scope = scope ? resolve(scope) : 0; + callback = resolve(callback); + self.callbackLookup = self.callbackLookup || {}; + self.callbackLookup[name] = {func: callback, scope: scope}; + } + + return callback.apply(scope || self, Array.prototype.slice.call(arguments, 1)); + }, + + /** + * Translates the specified string by replacing variables with language pack items it will also check if there is + * a key mathcin the input. + * + * @method translate + * @param {String} text String to translate by the language pack data. + * @return {String} Translated string. + */ + translate: function(text) { + var lang = this.settings.language || 'en', i18n = this.editorManager.i18n; + + if (!text) { + return ''; + } + + return i18n.data[lang + '.' + text] || text.replace(/\{\#([^\}]+)\}/g, function(a, b) { + return i18n.data[lang + '.' + b] || '{#' + b + '}'; + }); + }, + + /** + * Returns a language pack item by name/key. + * + * @method getLang + * @param {String} name Name/key to get from the language pack. + * @param {String} defaultVal Optional default value to retrive. + */ + getLang: function(name, defaultVal) { + return ( + this.editorManager.i18n.data[(this.settings.language || 'en') + '.' + name] || + (defaultVal !== undefined ? defaultVal : '{#' + name + '}') + ); + }, + + /** + * Returns a configuration parameter by name. + * + * @method getParam + * @param {String} name Configruation parameter to retrive. + * @param {String} defaultVal Optional default value to return. + * @param {String} type Optional type parameter. + * @return {String} Configuration parameter value or default value. + * @example + * // Returns a specific config value from the currently active editor + * var someval = tinymce.activeEditor.getParam('myvalue'); + * + * // Returns a specific config value from a specific editor instance by id + * var someval2 = tinymce.get('my_editor').getParam('myvalue'); + */ + getParam: function(name, defaultVal, type) { + var value = name in this.settings ? this.settings[name] : defaultVal, output; + + if (type === 'hash') { + output = {}; + + if (typeof(value) === 'string') { + each(value.indexOf('=') > 0 ? value.split(/[;,](?![^=;,]*(?:[;,]|$))/) : value.split(','), function(value) { + value = value.split('='); + + if (value.length > 1) { + output[trim(value[0])] = trim(value[1]); + } else { + output[trim(value[0])] = trim(value); + } + }); + } else { + output = value; + } + + return output; + } + + return value; + }, + + /** + * Distpaches out a onNodeChange event to all observers. This method should be called when you + * need to update the UI states or element path etc. + * + * @method nodeChanged + */ + nodeChanged: function() { + var self = this, selection = self.selection, node, parents, root; + + // Fix for bug #1896577 it seems that this can not be fired while the editor is loading + if (self.initialized && !self.settings.disable_nodechange && !self.settings.readonly) { + // Get start node + root = self.getBody(); + node = selection.getStart() || root; + node = ie && node.ownerDocument != self.getDoc() ? self.getBody() : node; // Fix for IE initial state + + // Edge case for <p>|<img></p> + if (node.nodeName == 'IMG' && selection.isCollapsed()) { + node = node.parentNode; + } + + // Get parents and add them to object + parents = []; + self.dom.getParent(node, function(node) { + if (node === root) { + return true; + } + + parents.push(node); + }); + + self.fire('NodeChange', {element: node, parents: parents}); + } + }, + + /** + * Adds a button that later gets created by the theme in the editors toolbars. + * + * @method addButton + * @param {String} name Button name to add. + * @param {Object} settings Settings object with title, cmd etc. + * @example + * // Adds a custom button to the editor that inserts contents when clicked + * tinymce.init({ + * ... + * + * toolbar: 'example' + * + * setup: function(ed) { + * ed.addButton('example', { + * title: 'My title', + * image: '../js/tinymce/plugins/example/img/example.gif', + * onclick: function() { + * ed.insertContent('Hello world!!'); + * } + * }); + * } + * }); + */ + addButton: function(name, settings) { + var self = this; + + if (settings.cmd) { + settings.onclick = function() { + self.execCommand(settings.cmd); + }; + } + + if (!settings.text && !settings.icon) { + settings.icon = name; + } + + self.buttons = self.buttons || {}; + settings.tooltip = settings.tooltip || settings.title; + self.buttons[name] = settings; + }, + + /** + * Adds a menu item to be used in the menus of the theme. There might be multiple instances + * of this menu item for example it might be used in the main menus of the theme but also in + * the context menu so make sure that it's self contained and supports multiple instances. + * + * @method addMenuItem + * @param {String} name Menu item name to add. + * @param {Object} settings Settings object with title, cmd etc. + * @example + * // Adds a custom menu item to the editor that inserts contents when clicked + * // The context option allows you to add the menu item to an existing default menu + * tinymce.init({ + * ... + * + * setup: function(ed) { + * ed.addMenuItem('example', { + * text: 'My menu item', + * context: 'tools', + * onclick: function() { + * ed.insertContent('Hello world!!'); + * } + * }); + * } + * }); + */ + addMenuItem: function(name, settings) { + var self = this; + + if (settings.cmd) { + settings.onclick = function() { + self.execCommand(settings.cmd); + }; + } + + self.menuItems = self.menuItems || {}; + self.menuItems[name] = settings; + }, + + /** + * Adds a custom command to the editor, you can also override existing commands with this method. + * The command that you add can be executed with execCommand. + * + * @method addCommand + * @param {String} name Command name to add/override. + * @param {addCommandCallback} callback Function to execute when the command occurs. + * @param {Object} scope Optional scope to execute the function in. + * @example + * // Adds a custom command that later can be executed using execCommand + * tinymce.init({ + * ... + * + * setup: function(ed) { + * // Register example command + * ed.addCommand('mycommand', function(ui, v) { + * ed.windowManager.alert('Hello world!! Selection: ' + ed.selection.getContent({format: 'text'})); + * }); + * } + * }); + */ + addCommand: function(name, callback, scope) { + /** + * Callback function that gets called when a command is executed. + * + * @callback addCommandCallback + * @param {Boolean} ui Display UI state true/false. + * @param {Object} value Optional value for command. + * @return {Boolean} True/false state if the command was handled or not. + */ + this.execCommands[name] = {func: callback, scope: scope || this}; + }, + + /** + * Adds a custom query state command to the editor, you can also override existing commands with this method. + * The command that you add can be executed with queryCommandState function. + * + * @method addQueryStateHandler + * @param {String} name Command name to add/override. + * @param {addQueryStateHandlerCallback} callback Function to execute when the command state retrival occurs. + * @param {Object} scope Optional scope to execute the function in. + */ + addQueryStateHandler: function(name, callback, scope) { + /** + * Callback function that gets called when a queryCommandState is executed. + * + * @callback addQueryStateHandlerCallback + * @return {Boolean} True/false state if the command is enabled or not like is it bold. + */ + this.queryStateCommands[name] = {func: callback, scope: scope || this}; + }, + + /** + * Adds a custom query value command to the editor, you can also override existing commands with this method. + * The command that you add can be executed with queryCommandValue function. + * + * @method addQueryValueHandler + * @param {String} name Command name to add/override. + * @param {addQueryValueHandlerCallback} callback Function to execute when the command value retrival occurs. + * @param {Object} scope Optional scope to execute the function in. + */ + addQueryValueHandler: function(name, callback, scope) { + /** + * Callback function that gets called when a queryCommandValue is executed. + * + * @callback addQueryValueHandlerCallback + * @return {Object} Value of the command or undefined. + */ + this.queryValueCommands[name] = {func: callback, scope: scope || this}; + }, + + /** + * Adds a keyboard shortcut for some command or function. + * + * @method addShortcut + * @param {String} pattern Shortcut pattern. Like for example: ctrl+alt+o. + * @param {String} desc Text description for the command. + * @param {String/Function} cmdFunc Command name string or function to execute when the key is pressed. + * @param {Object} sc Optional scope to execute the function in. + * @return {Boolean} true/false state if the shortcut was added or not. + */ + addShortcut: function(pattern, desc, cmdFunc, scope) { + this.shortcuts.add(pattern, desc, cmdFunc, scope); + }, + + /** + * Executes a command on the current instance. These commands can be TinyMCE internal commands prefixed with "mce" or + * they can be build in browser commands such as "Bold". A compleate list of browser commands is available on MSDN or Mozilla.org. + * This function will dispatch the execCommand function on each plugin, theme or the execcommand_callback option if none of these + * return true it will handle the command as a internal browser command. + * + * @method execCommand + * @param {String} cmd Command name to execute, for example mceLink or Bold. + * @param {Boolean} ui True/false state if a UI (dialog) should be presented or not. + * @param {mixed} value Optional command value, this can be anything. + * @param {Object} a Optional arguments object. + */ + execCommand: function(cmd, ui, value, args) { + var self = this, state = 0, cmdItem; + + if (!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(cmd) && (!args || !args.skip_focus)) { + self.focus(); + } + + args = extend({}, args); + args = self.fire('BeforeExecCommand', {command: cmd, ui: ui, value: value}); + if (args.isDefaultPrevented()) { + return false; + } + + // Registred commands + if ((cmdItem = self.execCommands[cmd])) { + // Fall through on true + if (cmdItem.func.call(cmdItem.scope, ui, value) !== true) { + self.fire('ExecCommand', {command: cmd, ui: ui, value: value}); + return true; + } + } + + // Plugin commands + each(self.plugins, function(p) { + if (p.execCommand && p.execCommand(cmd, ui, value)) { + self.fire('ExecCommand', {command: cmd, ui: ui, value: value}); + state = true; + return false; + } + }); + + if (state) { + return state; + } + + // Theme commands + if (self.theme && self.theme.execCommand && self.theme.execCommand(cmd, ui, value)) { + self.fire('ExecCommand', {command: cmd, ui: ui, value: value}); + return true; + } + + // Editor commands + if (self.editorCommands.execCommand(cmd, ui, value)) { + self.fire('ExecCommand', {command: cmd, ui: ui, value: value}); + return true; + } + + // Browser commands + self.getDoc().execCommand(cmd, ui, value); + self.fire('ExecCommand', {command: cmd, ui: ui, value: value}); + }, + + /** + * Returns a command specific state, for example if bold is enabled or not. + * + * @method queryCommandState + * @param {string} cmd Command to query state from. + * @return {Boolean} Command specific state, for example if bold is enabled or not. + */ + queryCommandState: function(cmd) { + var self = this, queryItem, returnVal; + + // Is hidden then return undefined + if (self._isHidden()) { + return; + } + + // Registred commands + if ((queryItem = self.queryStateCommands[cmd])) { + returnVal = queryItem.func.call(queryItem.scope); + + // Fall though on true + if (returnVal !== true) { + return returnVal; + } + } + + // Editor commands + returnVal = self.editorCommands.queryCommandState(cmd); + if (returnVal !== -1) { + return returnVal; + } + + // Browser commands + try { + return self.getDoc().queryCommandState(cmd); + } catch (ex) { + // Fails sometimes see bug: 1896577 + } + }, + + /** + * Returns a command specific value, for example the current font size. + * + * @method queryCommandValue + * @param {string} cmd Command to query value from. + * @return {Object} Command specific value, for example the current font size. + */ + queryCommandValue: function(cmd) { + var self = this, queryItem, returnVal; + + // Is hidden then return undefined + if (self._isHidden()) { + return; + } + + // Registred commands + if ((queryItem = self.queryValueCommands[cmd])) { + returnVal = queryItem.func.call(queryItem.scope); + + // Fall though on true + if (returnVal !== true) { + return returnVal; + } + } + + // Editor commands + returnVal = self.editorCommands.queryCommandValue(cmd); + if (returnVal !== undefined) { + return returnVal; + } + + // Browser commands + try { + return self.getDoc().queryCommandValue(cmd); + } catch (ex) { + // Fails sometimes see bug: 1896577 + } + }, + + /** + * Shows the editor and hides any textarea/div that the editor is supposed to replace. + * + * @method show + */ + show: function() { + var self = this; + + DOM.show(self.getContainer()); + DOM.hide(self.id); + self.load(); + self.fire('show'); + }, + + /** + * Hides the editor and shows any textarea/div that the editor is supposed to replace. + * + * @method hide + */ + hide: function() { + var self = this, doc = self.getDoc(); + + // Fixed bug where IE has a blinking cursor left from the editor + if (ie && doc && !self.inline) { + doc.execCommand('SelectAll'); + } + + // We must save before we hide so Safari doesn't crash + self.save(); + + // defer the call to hide to prevent an IE9 crash #4921 + DOM.hide(self.getContainer()); + DOM.setStyle(self.id, 'display', self.orgDisplay); + self.fire('hide'); + }, + + /** + * Returns true/false if the editor is hidden or not. + * + * @method isHidden + * @return {Boolean} True/false if the editor is hidden or not. + */ + isHidden: function() { + return !DOM.isHidden(this.id); + }, + + /** + * Sets the progress state, this will display a throbber/progess for the editor. + * This is ideal for asycronous operations like an AJAX save call. + * + * @method setProgressState + * @param {Boolean} state Boolean state if the progress should be shown or hidden. + * @param {Number} time Optional time to wait before the progress gets shown. + * @return {Boolean} Same as the input state. + * @example + * // Show progress for the active editor + * tinymce.activeEditor.setProgressState(true); + * + * // Hide progress for the active editor + * tinymce.activeEditor.setProgressState(false); + * + * // Show progress after 3 seconds + * tinymce.activeEditor.setProgressState(true, 3000); + */ + setProgressState: function(state, time) { + this.fire('ProgressState', {state: state, time: time}); + }, + + /** + * Loads contents from the textarea or div element that got converted into an editor instance. + * This method will move the contents from that textarea or div into the editor by using setContent + * so all events etc that method has will get dispatched as well. + * + * @method load + * @param {Object} args Optional content object, this gets passed around through the whole load process. + * @return {String} HTML string that got set into the editor. + */ + load: function(args) { + var self = this, elm = self.getElement(), html; + + if (elm) { + args = args || {}; + args.load = true; + + html = self.setContent(elm.value !== undefined ? elm.value : elm.innerHTML, args); + args.element = elm; + + if (!args.no_events) { + self.fire('LoadContent', args); + } + + args.element = elm = null; + + return html; + } + }, + + /** + * Saves the contents from a editor out to the textarea or div element that got converted into an editor instance. + * This method will move the HTML contents from the editor into that textarea or div by getContent + * so all events etc that method has will get dispatched as well. + * + * @method save + * @param {Object} args Optional content object, this gets passed around through the whole save process. + * @return {String} HTML string that got set into the textarea/div. + */ + save: function(args) { + var self = this, elm = self.getElement(), html, form; + + if (!elm || !self.initialized) { + return; + } + + args = args || {}; + args.save = true; + + args.element = elm; + html = args.content = self.getContent(args); + + if (!args.no_events) { + self.fire('SaveContent', args); + } + + html = args.content; + + if (!/TEXTAREA|INPUT/i.test(elm.nodeName)) { + // Update DIV element when not in inline mode + if (!self.inline) { + elm.innerHTML = html; + } + + // Update hidden form element + if ((form = DOM.getParent(self.id, 'form'))) { + each(form.elements, function(elm) { + if (elm.name == self.id) { + elm.value = html; + return false; + } + }); + } + } else { + elm.value = html; + } + + args.element = elm = null; + + if (args.set_dirty !== false) { + self.isNotDirty = true; + } + + return html; + }, + + /** + * Sets the specified content to the editor instance, this will cleanup the content before it gets set using + * the different cleanup rules options. + * + * @method setContent + * @param {String} content Content to set to editor, normally HTML contents but can be other formats as well. + * @param {Object} args Optional content object, this gets passed around through the whole set process. + * @return {String} HTML string that got set into the editor. + * @example + * // Sets the HTML contents of the activeEditor editor + * tinymce.activeEditor.setContent('<span>some</span> html'); + * + * // Sets the raw contents of the activeEditor editor + * tinymce.activeEditor.setContent('<span>some</span> html', {format: 'raw'}); + * + * // Sets the content of a specific editor (my_editor in this example) + * tinymce.get('my_editor').setContent(data); + * + * // Sets the bbcode contents of the activeEditor editor if the bbcode plugin was added + * tinymce.activeEditor.setContent('[b]some[/b] html', {format: 'bbcode'}); + */ + setContent: function(content, args) { + var self = this, body = self.getBody(), forcedRootBlockName; + + // Setup args object + args = args || {}; + args.format = args.format || 'html'; + args.set = true; + args.content = content; + + // Do preprocessing + if (!args.no_events) { + self.fire('BeforeSetContent', args); + } + + content = args.content; + + // Padd empty content in Gecko and Safari. Commands will otherwise fail on the content + // It will also be impossible to place the caret in the editor unless there is a BR element present + if (content.length === 0 || /^\s+$/.test(content)) { + forcedRootBlockName = self.settings.forced_root_block; + + // Check if forcedRootBlock is configured and that the block is a valid child of the body + if (forcedRootBlockName && self.schema.isValidChild(body.nodeName.toLowerCase(), forcedRootBlockName.toLowerCase())) { + // Padd with bogus BR elements on modern browsers and IE 7 and 8 since they don't render empty P tags properly + content = ie && ie < 11 ? '' : '<br data-mce-bogus="1">'; + content = self.dom.createHTML(forcedRootBlockName, self.settings.forced_root_block_attrs, content); + } else if (!ie) { + // We need to add a BR when forced_root_block is disabled on non IE browsers to place the caret + content = '<br data-mce-bogus="1">'; + } + + body.innerHTML = content; + + self.fire('SetContent', args); + } else { + // Parse and serialize the html + if (args.format !== 'raw') { + content = new Serializer({}, self.schema).serialize( + self.parser.parse(content, {isRootContent: true}) + ); + } + + // Set the new cleaned contents to the editor + args.content = trim(content); + self.dom.setHTML(body, args.content); + + // Do post processing + if (!args.no_events) { + self.fire('SetContent', args); + } + + // Don't normalize selection if the focused element isn't the body in + // content editable mode since it will steal focus otherwise + /*if (!self.settings.content_editable || document.activeElement === self.getBody()) { + self.selection.normalize(); + }*/ + } + + return args.content; + }, + + /** + * Gets the content from the editor instance, this will cleanup the content before it gets returned using + * the different cleanup rules options. + * + * @method getContent + * @param {Object} args Optional content object, this gets passed around through the whole get process. + * @return {String} Cleaned content string, normally HTML contents. + * @example + * // Get the HTML contents of the currently active editor + * console.debug(tinymce.activeEditor.getContent()); + * + * // Get the raw contents of the currently active editor + * tinymce.activeEditor.getContent({format: 'raw'}); + * + * // Get content of a specific editor: + * tinymce.get('content id').getContent() + */ + getContent: function(args) { + var self = this, content, body = self.getBody(); + + // Setup args object + args = args || {}; + args.format = args.format || 'html'; + args.get = true; + args.getInner = true; + + // Do preprocessing + if (!args.no_events) { + self.fire('BeforeGetContent', args); + } + + // Get raw contents or by default the cleaned contents + if (args.format == 'raw') { + content = body.innerHTML; + } else if (args.format == 'text') { + content = body.innerText || body.textContent; + } else { + content = self.serializer.serialize(body, args); + } + + // Trim whitespace in beginning/end of HTML + if (args.format != 'text') { + args.content = trim(content); + } else { + args.content = content; + } + + // Do post processing + if (!args.no_events) { + self.fire('GetContent', args); + } + + return args.content; + }, + + /** + * Inserts content at caret position. + * + * @method insertContent + * @param {String} content Content to insert. + */ + insertContent: function(content) { + this.execCommand('mceInsertContent', false, content); + }, + + /** + * Returns true/false if the editor is dirty or not. It will get dirty if the user has made modifications to the contents. + * + * @method isDirty + * @return {Boolean} True/false if the editor is dirty or not. It will get dirty if the user has made modifications to the contents. + * @example + * if (tinymce.activeEditor.isDirty()) + * alert("You must save your contents."); + */ + isDirty: function() { + return !this.isNotDirty; + }, + + /** + * Returns the editors container element. The container element wrappes in + * all the elements added to the page for the editor. Such as UI, iframe etc. + * + * @method getContainer + * @return {Element} HTML DOM element for the editor container. + */ + getContainer: function() { + var self = this; + + if (!self.container) { + self.container = DOM.get(self.editorContainer || self.id + '_parent'); + } + + return self.container; + }, + + /** + * Returns the editors content area container element. The this element is the one who + * holds the iframe or the editable element. + * + * @method getContentAreaContainer + * @return {Element} HTML DOM element for the editor area container. + */ + getContentAreaContainer: function() { + return this.contentAreaContainer; + }, + + /** + * Returns the target element/textarea that got replaced with a TinyMCE editor instance. + * + * @method getElement + * @return {Element} HTML DOM element for the replaced element. + */ + getElement: function() { + return DOM.get(this.settings.content_element || this.id); + }, + + /** + * Returns the iframes window object. + * + * @method getWin + * @return {Window} Iframe DOM window object. + */ + getWin: function() { + var self = this, elm; + + if (!self.contentWindow) { + elm = DOM.get(self.id + "_ifr"); + + if (elm) { + self.contentWindow = elm.contentWindow; + } + } + + return self.contentWindow; + }, + + /** + * Returns the iframes document object. + * + * @method getDoc + * @return {Document} Iframe DOM document object. + */ + getDoc: function() { + var self = this, win; + + if (!self.contentDocument) { + win = self.getWin(); + + if (win) { + self.contentDocument = win.document; + } + } + + return self.contentDocument; + }, + + /** + * Returns the iframes body element. + * + * @method getBody + * @return {Element} Iframe body element. + */ + getBody: function() { + return this.bodyElement || this.getDoc().body; + }, + + /** + * URL converter function this gets executed each time a user adds an img, a or + * any other element that has a URL in it. This will be called both by the DOM and HTML + * manipulation functions. + * + * @method convertURL + * @param {string} url URL to convert. + * @param {string} name Attribute name src, href etc. + * @param {string/HTMLElement} elm Tag name or HTML DOM element depending on HTML or DOM insert. + * @return {string} Converted URL string. + */ + convertURL: function(url, name, elm) { + var self = this, settings = self.settings; + + // Use callback instead + if (settings.urlconverter_callback) { + return self.execCallback('urlconverter_callback', url, elm, true, name); + } + + // Don't convert link href since thats the CSS files that gets loaded into the editor also skip local file URLs + if (!settings.convert_urls || (elm && elm.nodeName == 'LINK') || url.indexOf('file:') === 0 || url.length === 0) { + return url; + } + + // Convert to relative + if (settings.relative_urls) { + return self.documentBaseURI.toRelative(url); + } + + // Convert to absolute + url = self.documentBaseURI.toAbsolute(url, settings.remove_script_host); + + return url; + }, + + /** + * Adds visual aid for tables, anchors etc so they can be more easily edited inside the editor. + * + * @method addVisual + * @param {Element} elm Optional root element to loop though to find tables etc that needs the visual aid. + */ + addVisual: function(elm) { + var self = this, settings = self.settings, dom = self.dom, cls; + + elm = elm || self.getBody(); + + if (self.hasVisual === undefined) { + self.hasVisual = settings.visual; + } + + each(dom.select('table,a', elm), function(elm) { + var value; + + switch (elm.nodeName) { + case 'TABLE': + cls = settings.visual_table_class || 'mce-item-table'; + value = dom.getAttrib(elm, 'border'); + + if (!value || value == '0') { + if (self.hasVisual) { + dom.addClass(elm, cls); + } else { + dom.removeClass(elm, cls); + } + } + + return; + + case 'A': + if (!dom.getAttrib(elm, 'href', false)) { + value = dom.getAttrib(elm, 'name') || elm.id; + cls = settings.visual_anchor_class || 'mce-item-anchor'; + + if (value) { + if (self.hasVisual) { + dom.addClass(elm, cls); + } else { + dom.removeClass(elm, cls); + } + } + } + + return; + } + }); + + self.fire('VisualAid', {element: elm, hasVisual: self.hasVisual}); + }, + + /** + * Removes the editor from the dom and tinymce collection. + * + * @method remove + */ + remove: function() { + var self = this; + + if (!self.removed) { + self.save(); + self.fire('remove'); + self.off(); + self.removed = 1; // Cancels post remove event execution + + // Remove any hidden input + if (self.hasHiddenInput) { + DOM.remove(self.getElement().nextSibling); + } + + DOM.setStyle(self.id, 'display', self.orgDisplay); + + // Don't clear the window or document if content editable + // is enabled since other instances might still be present + if (!self.settings.content_editable) { + Event.unbind(self.getWin()); + Event.unbind(self.getDoc()); + } + + var elm = self.getContainer(); + Event.unbind(self.getBody()); + Event.unbind(elm); + + self.editorManager.remove(self); + DOM.remove(elm); + self.destroy(); + } + }, + + bindNative: function(name) { + var self = this; + + if (self.settings.readonly) { + return; + } + + if (self.initialized) { + self.dom.bind(getEventTarget(self, name), name, function(e) { + self.fire(name, e); + }); + } else { + if (!self._pendingNativeEvents) { + self._pendingNativeEvents = [name]; + } else { + self._pendingNativeEvents.push(name); + } + } + }, + + unbindNative: function(name) { + var self = this; + + if (self.initialized) { + self.dom.unbind(name); + } + }, + + /** + * Destroys the editor instance by removing all events, element references or other resources + * that could leak memory. This method will be called automatically when the page is unloaded + * but you can also call it directly if you know what you are doing. + * + * @method destroy + * @param {Boolean} automatic Optional state if the destroy is an automatic destroy or user called one. + */ + destroy: function(automatic) { + var self = this, form; + + // One time is enough + if (self.destroyed) { + return; + } + + // If user manually calls destroy and not remove + // Users seems to have logic that calls destroy instead of remove + if (!automatic && !self.removed) { + self.remove(); + return; + } + + // We must unbind on Gecko since it would otherwise produce the pesky "attempt + // to run compile-and-go script on a cleared scope" message + if (automatic && isGecko) { + Event.unbind(self.getDoc()); + Event.unbind(self.getWin()); + Event.unbind(self.getBody()); + } + + if (!automatic) { + self.editorManager.off('beforeunload', self._beforeUnload); + + // Manual destroy + if (self.theme && self.theme.destroy) { + self.theme.destroy(); + } + + // Destroy controls, selection and dom + self.selection.destroy(); + self.dom.destroy(); + } + + form = self.formElement; + if (form) { + if (form._mceOldSubmit) { + form.submit = form._mceOldSubmit; + form._mceOldSubmit = null; + } + + DOM.unbind(form, 'submit reset', self.formEventDelegate); + } + + self.contentAreaContainer = self.formElement = self.container = self.editorContainer = null; + self.settings.content_element = self.bodyElement = self.contentDocument = self.contentWindow = null; + + if (self.selection) { + self.selection = self.selection.win = self.selection.dom = self.selection.dom.doc = null; + } + + self.destroyed = 1; + }, + + // Internal functions + + _refreshContentEditable: function() { + var self = this, body, parent; + + // Check if the editor was hidden and the re-initalize contentEditable mode by removing and adding the body again + if (self._isHidden()) { + body = self.getBody(); + parent = body.parentNode; + + parent.removeChild(body); + parent.appendChild(body); + + body.focus(); + } + }, + + _isHidden: function() { + var sel; + + if (!isGecko) { + return 0; + } + + // Weird, wheres that cursor selection? + sel = this.selection.getSel(); + return (!sel || !sel.rangeCount || sel.rangeCount === 0); + } + }; + + extend(Editor.prototype, Observable); + + return Editor; +}); + +// Included from: js/tinymce/classes/util/I18n.js + +/** + * I18n.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * I18n class that handles translation of TinyMCE UI. + * Uses po style with csharp style parameters. + * + * @class tinymce.util.I18n + */ +define("tinymce/util/I18n", [], function() { + "use strict"; + + var data = {}; + + return { + /** + * Property gets set to true if a RTL language pack was loaded. + * + * @property rtl + * @type Boolean + */ + rtl: false, + + /** + * Adds translations for a specific language code. + * + * @method add + * @param {String} code Language code like sv_SE. + * @param {Array} items Name/value array with English en_US to sv_SE. + */ + add: function(code, items) { + for (var name in items) { + data[name] = items[name]; + } + + this.rtl = this.rtl || data._dir === 'rtl'; + }, + + /** + * Translates the specified text. + * + * It has a few formats: + * I18n.translate("Text"); + * I18n.translate(["Text {0}/{1}", 0, 1]); + * I18n.translate({raw: "Raw string"}); + * + * @method translate + * @param {String/Object/Array} text Text to translate. + * @return {String} String that got translated. + */ + translate: function(text) { + if (typeof(text) == "undefined") { + return text; + } + + if (typeof(text) != "string" && text.raw) { + return text.raw; + } + + if (text.push) { + var values = text.slice(1); + + text = (data[text[0]] || text[0]).replace(/\{([^\}]+)\}/g, function(match1, match2) { + return values[match2]; + }); + } + + return data[text] || text; + }, + + data: data + }; +}); + +// Included from: js/tinymce/classes/FocusManager.js + +/** + * FocusManager.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class manages the focus/blur state of the editor. This class is needed since some + * browsers fire false focus/blur states when the selection is moved to a UI dialog or similar. + * + * This class will fire two events focus and blur on the editor instances that got affected. + * It will also handle the restore of selection when the focus is lost and returned. + * + * @class tinymce.FocusManager + */ +define("tinymce/FocusManager", [ + "tinymce/dom/DOMUtils", + "tinymce/Env" +], function(DOMUtils, Env) { + var selectionChangeHandler, documentFocusInHandler, DOM = DOMUtils.DOM; + + /** + * Constructs a new focus manager instance. + * + * @constructor FocusManager + * @param {tinymce.EditorManager} editorManager Editor manager instance to handle focus for. + */ + function FocusManager(editorManager) { + function getActiveElement() { + try { + return document.activeElement; + } catch (ex) { + // IE sometimes fails to get the activeElement when resizing table + // TODO: Investigate this + return document.body; + } + } + + // We can't store a real range on IE 11 since it gets mutated so we need to use a bookmark object + // TODO: Move this to a separate range utils class since it's it's logic is present in Selection as well. + function createBookmark(rng) { + if (rng && rng.startContainer) { + return { + startContainer: rng.startContainer, + startOffset: rng.startOffset, + endContainer: rng.endContainer, + endOffset: rng.endOffset + }; + } + + return rng; + } + + function bookmarkToRng(editor, bookmark) { + var rng; + + if (bookmark.startContainer) { + rng = editor.getDoc().createRange(); + rng.setStart(bookmark.startContainer, bookmark.startOffset); + rng.setEnd(bookmark.endContainer, bookmark.endOffset); + } else { + rng = bookmark; + } + + return rng; + } + + function isUIElement(elm) { + return !!DOM.getParent(elm, FocusManager.isEditorUIElement); + } + + function isNodeInBodyOfEditor(node, editor) { + var body = editor.getBody(); + + while (node) { + if (node == body) { + return true; + } + + node = node.parentNode; + } + } + + function registerEvents(e) { + var editor = e.editor; + + editor.on('init', function() { + // Gecko/WebKit has ghost selections in iframes and IE only has one selection per browser tab + if (editor.inline || Env.ie) { + // On other browsers take snapshot on nodechange in inline mode since they have Ghost selections for iframes + editor.on('nodechange keyup', function() { + var node = document.activeElement; + + // IE 11 reports active element as iframe not body of iframe + if (node && node.id == editor.id + '_ifr') { + node = editor.getBody(); + } + + if (isNodeInBodyOfEditor(node, editor)) { + editor.lastRng = editor.selection.getRng(); + } + }); + + // Handles the issue with WebKit not retaining selection within inline document + // If the user releases the mouse out side the body since a mouse up event wont occur on the body + if (Env.webkit && !selectionChangeHandler) { + selectionChangeHandler = function() { + var activeEditor = editorManager.activeEditor; + + if (activeEditor && activeEditor.selection) { + var rng = activeEditor.selection.getRng(); + + // Store when it's non collapsed + if (rng && !rng.collapsed) { + editor.lastRng = rng; + } + } + }; + + DOM.bind(document, 'selectionchange', selectionChangeHandler); + } + } + }); + + editor.on('setcontent', function() { + editor.lastRng = null; + }); + + // Remove last selection bookmark on mousedown see #6305 + editor.on('mousedown', function() { + editor.selection.lastFocusBookmark = null; + }); + + editor.on('focusin', function() { + var focusedEditor = editorManager.focusedEditor; + + if (editor.selection.lastFocusBookmark) { + editor.selection.setRng(bookmarkToRng(editor, editor.selection.lastFocusBookmark)); + editor.selection.lastFocusBookmark = null; + } + + if (focusedEditor != editor) { + if (focusedEditor) { + focusedEditor.fire('blur', {focusedEditor: editor}); + } + + editorManager.activeEditor = editor; + editorManager.focusedEditor = editor; + editor.fire('focus', {blurredEditor: focusedEditor}); + editor.focus(true); + } + + editor.lastRng = null; + }); + + editor.on('focusout', function() { + window.setTimeout(function() { + var focusedEditor = editorManager.focusedEditor; + + // Still the same editor the the blur was outside any editor UI + if (!isUIElement(getActiveElement()) && focusedEditor == editor) { + editor.fire('blur', {focusedEditor: null}); + editorManager.focusedEditor = null; + + // Make sure selection is valid could be invalid if the editor is blured and removed before the timeout occurs + if (editor.selection) { + editor.selection.lastFocusBookmark = null; + } + } + }, 0); + }); + + if (!documentFocusInHandler) { + documentFocusInHandler = function(e) { + var activeEditor = editorManager.activeEditor; + + if (activeEditor && e.target.ownerDocument == document) { + // Check to make sure we have a valid selection + if (activeEditor.selection) { + activeEditor.selection.lastFocusBookmark = createBookmark(activeEditor.lastRng); + } + + // Fire a blur event if the element isn't a UI element + if (!isUIElement(e.target) && editorManager.focusedEditor == activeEditor) { + activeEditor.fire('blur', {focusedEditor: null}); + editorManager.focusedEditor = null; + } + } + }; + + // Check if focus is moved to an element outside the active editor by checking if the target node + // isn't within the body of the activeEditor nor a UI element such as a dialog child control + DOM.bind(document, 'focusin', documentFocusInHandler); + } + } + + function unregisterDocumentEvents(e) { + if (editorManager.focusedEditor == e.editor) { + editorManager.focusedEditor = null; + } + + if (!editorManager.activeEditor) { + DOM.unbind(document, 'selectionchange', selectionChangeHandler); + DOM.unbind(document, 'focusin', documentFocusInHandler); + selectionChangeHandler = documentFocusInHandler = null; + } + } + + editorManager.on('AddEditor', registerEvents); + editorManager.on('RemoveEditor', unregisterDocumentEvents); + } + + /** + * Returns true if the specified element is part of the UI for example an button or text input. + * + * @method isEditorUIElement + * @param {Element} elm Element to check if it's part of the UI or not. + * @return {Boolean} True/false state if the element is part of the UI or not. + */ + FocusManager.isEditorUIElement = function(elm) { + // Needs to be converted to string since svg can have focus: #6776 + return elm.className.toString().indexOf('mce-') !== -1; + }; + + return FocusManager; +}); + +// Included from: js/tinymce/classes/EditorManager.js + +/** + * EditorManager.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class used as a factory for manager for tinymce.Editor instances. + * + * @example + * tinymce.EditorManager.init({}); + * + * @class tinymce.EditorManager + * @mixes tinymce.util.Observable + * @static + */ +define("tinymce/EditorManager", [ + "tinymce/Editor", + "tinymce/dom/DOMUtils", + "tinymce/util/URI", + "tinymce/Env", + "tinymce/util/Tools", + "tinymce/util/Observable", + "tinymce/util/I18n", + "tinymce/FocusManager" +], function(Editor, DOMUtils, URI, Env, Tools, Observable, I18n, FocusManager) { + var DOM = DOMUtils.DOM; + var explode = Tools.explode, each = Tools.each, extend = Tools.extend; + var instanceCounter = 0, beforeUnloadDelegate; + + var EditorManager = { + /** + * Major version of TinyMCE build. + * + * @property majorVersion + * @type String + */ + majorVersion : '4', + + /** + * Minor version of TinyMCE build. + * + * @property minorVersion + * @type String + */ + minorVersion : '0.20', + + /** + * Release date of TinyMCE build. + * + * @property releaseDate + * @type String + */ + releaseDate: '2014-03-18', + + /** + * Collection of editor instances. + * + * @property editors + * @type Object + * @example + * for (edId in tinymce.editors) + * tinymce.editors[edId].save(); + */ + editors: [], + + /** + * Collection of language pack data. + * + * @property i18n + * @type Object + */ + i18n: I18n, + + /** + * Currently active editor instance. + * + * @property activeEditor + * @type tinymce.Editor + * @example + * tinyMCE.activeEditor.selection.getContent(); + * tinymce.EditorManager.activeEditor.selection.getContent(); + */ + activeEditor: null, + + setup: function() { + var self = this, baseURL, documentBaseURL, suffix = "", preInit; + + // Get base URL for the current document + documentBaseURL = document.location.href.replace(/[\?#].*$/, '').replace(/[\/\\][^\/]+$/, ''); + if (!/[\/\\]$/.test(documentBaseURL)) { + documentBaseURL += '/'; + } + + // If tinymce is defined and has a base use that or use the old tinyMCEPreInit + preInit = window.tinymce || window.tinyMCEPreInit; + if (preInit) { + baseURL = preInit.base || preInit.baseURL; + suffix = preInit.suffix; + } else { + // Get base where the tinymce script is located + var scripts = document.getElementsByTagName('script'); + for (var i = 0; i < scripts.length; i++) { + var src = scripts[i].src; + + // Script types supported: + // tinymce.js tinymce.min.js tinymce.dev.js + // tinymce.jquery.js tinymce.jquery.min.js tinymce.jquery.dev.js + // tinymce.full.js tinymce.full.min.js tinymce.full.dev.js + if (/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(src)) { + if (src.indexOf('.min') != -1) { + suffix = '.min'; + } + + baseURL = src.substring(0, src.lastIndexOf('/')); + break; + } + } + } + + /** + * Base URL where the root directory if TinyMCE is located. + * + * @property baseURL + * @type String + */ + self.baseURL = new URI(documentBaseURL).toAbsolute(baseURL); + + /** + * Document base URL where the current document is located. + * + * @property documentBaseURL + * @type String + */ + self.documentBaseURL = documentBaseURL; + + /** + * Absolute baseURI for the installation path of TinyMCE. + * + * @property baseURI + * @type tinymce.util.URI + */ + self.baseURI = new URI(self.baseURL); + + /** + * Current suffix to add to each plugin/theme that gets loaded for example ".min". + * + * @property suffix + * @type String + */ + self.suffix = suffix; + + self.focusManager = new FocusManager(self); + }, + + /** + * Initializes a set of editors. This method will create editors based on various settings. + * + * @method init + * @param {Object} settings Settings object to be passed to each editor instance. + * @example + * // Initializes a editor using the longer method + * tinymce.EditorManager.init({ + * some_settings : 'some value' + * }); + * + * // Initializes a editor instance using the shorter version + * tinyMCE.init({ + * some_settings : 'some value' + * }); + */ + init: function(settings) { + var self = this, editors = [], editor; + + function createId(elm) { + var id = elm.id; + + // Use element id, or unique name or generate a unique id + if (!id) { + id = elm.name; + + if (id && !DOM.get(id)) { + id = elm.name; + } else { + // Generate unique name + id = DOM.uniqueId(); + } + + elm.setAttribute('id', id); + } + + return id; + } + + function execCallback(se, n, s) { + var f = se[n]; + + if (!f) { + return; + } + + return f.apply(s || this, Array.prototype.slice.call(arguments, 2)); + } + + function hasClass(n, c) { + return c.constructor === RegExp ? c.test(n.className) : DOM.hasClass(n, c); + } + + function readyHandler() { + var l, co; + + DOM.unbind(window, 'ready', readyHandler); + + execCallback(settings, 'onpageload'); + + if (settings.types) { + // Process type specific selector + each(settings.types, function(type) { + each(DOM.select(type.selector), function(elm) { + var editor = new Editor(createId(elm), extend({}, settings, type), self); + editors.push(editor); + editor.render(1); + }); + }); + + return; + } else if (settings.selector) { + // Process global selector + each(DOM.select(settings.selector), function(elm) { + var editor = new Editor(createId(elm), settings, self); + editors.push(editor); + editor.render(1); + }); + + return; + } + + // Fallback to old setting + switch (settings.mode) { + case "exact": + l = settings.elements || ''; + + if(l.length > 0) { + each(explode(l), function(v) { + if (DOM.get(v)) { + editor = new Editor(v, settings, self); + editors.push(editor); + editor.render(true); + } else { + each(document.forms, function(f) { + each(f.elements, function(e) { + if (e.name === v) { + v = 'mce_editor_' + instanceCounter++; + DOM.setAttrib(e, 'id', v); + + editor = new Editor(v, settings, self); + editors.push(editor); + editor.render(1); + } + }); + }); + } + }); + } + break; + + case "textareas": + case "specific_textareas": + each(DOM.select('textarea'), function(elm) { + if (settings.editor_deselector && hasClass(elm, settings.editor_deselector)) { + return; + } + + if (!settings.editor_selector || hasClass(elm, settings.editor_selector)) { + editor = new Editor(createId(elm), settings, self); + editors.push(editor); + editor.render(true); + } + }); + break; + } + + // Call onInit when all editors are initialized + if (settings.oninit) { + l = co = 0; + + each(editors, function(ed) { + co++; + + if (!ed.initialized) { + // Wait for it + ed.on('init', function() { + l++; + + // All done + if (l == co) { + execCallback(settings, 'oninit'); + } + }); + } else { + l++; + } + + // All done + if (l == co) { + execCallback(settings, 'oninit'); + } + }); + } + } + + self.settings = settings; + + DOM.bind(window, 'ready', readyHandler); + }, + + /** + * Returns a editor instance by id. + * + * @method get + * @param {String/Number} id Editor instance id or index to return. + * @return {tinymce.Editor} Editor instance to return. + * @example + * // Adds an onclick event to an editor by id (shorter version) + * tinymce.get('mytextbox').on('click', function(e) { + * ed.windowManager.alert('Hello world!'); + * }); + * + * // Adds an onclick event to an editor by id (longer version) + * tinymce.EditorManager.get('mytextbox').on('click', function(e) { + * ed.windowManager.alert('Hello world!'); + * }); + */ + get: function(id) { + if (id === undefined) { + return this.editors; + } + + return this.editors[id]; + }, + + /** + * Adds an editor instance to the editor collection. This will also set it as the active editor. + * + * @method add + * @param {tinymce.Editor} editor Editor instance to add to the collection. + * @return {tinymce.Editor} The same instance that got passed in. + */ + add: function(editor) { + var self = this, editors = self.editors; + + // Add named and index editor instance + editors[editor.id] = editor; + editors.push(editor); + + self.activeEditor = editor; + + /** + * Fires when an editor is added to the EditorManager collection. + * + * @event AddEditor + * @param {Object} e Event arguments. + */ + self.fire('AddEditor', {editor: editor}); + + if (!beforeUnloadDelegate) { + beforeUnloadDelegate = function() { + self.fire('BeforeUnload'); + }; + + DOM.bind(window, 'beforeunload', beforeUnloadDelegate); + } + + return editor; + }, + + /** + * Creates an editor instance and adds it to the EditorManager collection. + * + * @method createEditor + * @param {String} id Instance id to use for editor. + * @param {Object} settings Editor instance settings. + * @return {tinymce.Editor} Editor instance that got created. + */ + createEditor: function(id, settings) { + return this.add(new Editor(id, settings, this)); + }, + + /** + * Removes a editor or editors form page. + * + * @example + * // Remove all editors bound to divs + * tinymce.remove('div'); + * + * // Remove all editors bound to textareas + * tinymce.remove('textarea'); + * + * // Remove all editors + * tinymce.remove(); + * + * // Remove specific instance by id + * tinymce.remove('#id'); + * + * @method remove + * @param {tinymce.Editor/String/Object} [selector] CSS selector or editor instance to remove. + * @return {tinymce.Editor} The editor that got passed in will be return if it was found otherwise null. + */ + remove: function(selector) { + var self = this, i, editors = self.editors, editor, removedFromList; + + // Remove all editors + if (!selector) { + for (i = editors.length - 1; i >= 0; i--) { + self.remove(editors[i]); + } + + return; + } + + // Remove editors by selector + if (typeof(selector) == "string") { + selector = selector.selector || selector; + + each(DOM.select(selector), function(elm) { + self.remove(editors[elm.id]); + }); + + return; + } + + // Remove specific editor + editor = selector; + + // Not in the collection + if (!editors[editor.id]) { + return null; + } + + delete editors[editor.id]; + + for (i = 0; i < editors.length; i++) { + if (editors[i] == editor) { + editors.splice(i, 1); + removedFromList = true; + break; + } + } + + // Select another editor since the active one was removed + if (self.activeEditor == editor) { + self.activeEditor = editors[0]; + } + + /** + * Fires when an editor is removed from EditorManager collection. + * + * @event RemoveEditor + * @param {Object} e Event arguments. + */ + if (removedFromList) { + self.fire('RemoveEditor', {editor: editor}); + } + + if (!editors.length) { + DOM.unbind(window, 'beforeunload', beforeUnloadDelegate); + } + + editor.remove(); + + return editor; + }, + + /** + * Executes a specific command on the currently active editor. + * + * @method execCommand + * @param {String} c Command to perform for example Bold. + * @param {Boolean} u Optional boolean state if a UI should be presented for the command or not. + * @param {String} v Optional value parameter like for example an URL to a link. + * @return {Boolean} true/false if the command was executed or not. + */ + execCommand: function(cmd, ui, value) { + var self = this, editor = self.get(value); + + // Manager commands + switch (cmd) { + case "mceAddEditor": + if (!self.get(value)) { + new Editor(value, self.settings, self).render(); + } + + return true; + + case "mceRemoveEditor": + if (editor) { + editor.remove(); + } + + return true; + + case 'mceToggleEditor': + if (!editor) { + self.execCommand('mceAddEditor', 0, value); + return true; + } + + if (editor.isHidden()) { + editor.show(); + } else { + editor.hide(); + } + + return true; + } + + // Run command on active editor + if (self.activeEditor) { + return self.activeEditor.execCommand(cmd, ui, value); + } + + return false; + }, + + /** + * Calls the save method on all editor instances in the collection. This can be useful when a form is to be submitted. + * + * @method triggerSave + * @example + * // Saves all contents + * tinyMCE.triggerSave(); + */ + triggerSave: function() { + each(this.editors, function(editor) { + editor.save(); + }); + }, + + /** + * Adds a language pack, this gets called by the loaded language files like en.js. + * + * @method addI18n + * @param {String} code Optional language code. + * @param {Object} items Name/value object with translations. + */ + addI18n: function(code, items) { + I18n.add(code, items); + }, + + /** + * Translates the specified string using the language pack items. + * + * @method translate + * @param {String/Array/Object} text String to translate + * @return {String} Translated string. + */ + translate: function(text) { + return I18n.translate(text); + } + }; + + extend(EditorManager, Observable); + + EditorManager.setup(); + + // Export EditorManager as tinymce/tinymce in global namespace + window.tinymce = window.tinyMCE = EditorManager; + + return EditorManager; +}); + +// Included from: js/tinymce/classes/LegacyInput.js + +/** + * LegacyInput.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +define("tinymce/LegacyInput", [ + "tinymce/EditorManager", + "tinymce/util/Tools" +], function(EditorManager, Tools) { + var each = Tools.each, explode = Tools.explode; + + EditorManager.on('AddEditor', function(e) { + var editor = e.editor; + + editor.on('preInit', function() { + var filters, fontSizes, dom, settings = editor.settings; + + function replaceWithSpan(node, styles) { + each(styles, function(value, name) { + if (value) { + dom.setStyle(node, name, value); + } + }); + + dom.rename(node, 'span'); + } + + function convert(e) { + dom = editor.dom; + + if (settings.convert_fonts_to_spans) { + each(dom.select('font,u,strike', e.node), function(node) { + filters[node.nodeName.toLowerCase()](dom, node); + }); + } + } + + if (settings.inline_styles) { + fontSizes = explode(settings.font_size_legacy_values); + + filters = { + font: function(dom, node) { + replaceWithSpan(node, { + backgroundColor: node.style.backgroundColor, + color: node.color, + fontFamily: node.face, + fontSize: fontSizes[parseInt(node.size, 10) - 1] + }); + }, + + u: function(dom, node) { + replaceWithSpan(node, { + textDecoration: 'underline' + }); + }, + + strike: function(dom, node) { + replaceWithSpan(node, { + textDecoration: 'line-through' + }); + } + }; + + editor.on('PreProcess SetContent', convert); + } + }); + }); +}); + +// Included from: js/tinymce/classes/util/XHR.js + +/** + * XHR.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class enables you to send XMLHTTPRequests cross browser. + * @class tinymce.util.XHR + * @static + * @example + * // Sends a low level Ajax request + * tinymce.util.XHR.send({ + * url: 'someurl', + * success: function(text) { + * console.debug(text); + * } + * }); + */ +define("tinymce/util/XHR", [], function() { + return { + /** + * Sends a XMLHTTPRequest. + * Consult the Wiki for details on what settings this method takes. + * + * @method send + * @param {Object} settings Object will target URL, callbacks and other info needed to make the request. + */ + send: function(settings) { + var xhr, count = 0; + + function ready() { + if (!settings.async || xhr.readyState == 4 || count++ > 10000) { + if (settings.success && count < 10000 && xhr.status == 200) { + settings.success.call(settings.success_scope, '' + xhr.responseText, xhr, settings); + } else if (settings.error) { + settings.error.call(settings.error_scope, count > 10000 ? 'TIMED_OUT' : 'GENERAL', xhr, settings); + } + + xhr = null; + } else { + setTimeout(ready, 10); + } + } + + // Default settings + settings.scope = settings.scope || this; + settings.success_scope = settings.success_scope || settings.scope; + settings.error_scope = settings.error_scope || settings.scope; + settings.async = settings.async === false ? false : true; + settings.data = settings.data || ''; + + xhr = new XMLHttpRequest(); + + if (xhr) { + if (xhr.overrideMimeType) { + xhr.overrideMimeType(settings.content_type); + } + + xhr.open(settings.type || (settings.data ? 'POST' : 'GET'), settings.url, settings.async); + + if (settings.content_type) { + xhr.setRequestHeader('Content-Type', settings.content_type); + } + + xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); + + xhr.send(settings.data); + + // Syncronous request + if (!settings.async) { + return ready(); + } + + // Wait for response, onReadyStateChange can not be used since it leaks memory in IE + setTimeout(ready, 10); + } + } + }; +}); + +// Included from: js/tinymce/classes/util/JSON.js + +/** + * JSON.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * JSON parser and serializer class. + * + * @class tinymce.util.JSON + * @static + * @example + * // JSON parse a string into an object + * var obj = tinymce.util.JSON.parse(somestring); + * + * // JSON serialize a object into an string + * var str = tinymce.util.JSON.serialize(obj); + */ +define("tinymce/util/JSON", [], function() { + function serialize(o, quote) { + var i, v, t, name; + + quote = quote || '"'; + + if (o === null) { + return 'null'; + } + + t = typeof o; + + if (t == 'string') { + v = '\bb\tt\nn\ff\rr\""\'\'\\\\'; + + return quote + o.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g, function(a, b) { + // Make sure single quotes never get encoded inside double quotes for JSON compatibility + if (quote === '"' && a === "'") { + return a; + } + + i = v.indexOf(b); + + if (i + 1) { + return '\\' + v.charAt(i + 1); + } + + a = b.charCodeAt().toString(16); + + return '\\u' + '0000'.substring(a.length) + a; + }) + quote; + } + + if (t == 'object') { + if (o.hasOwnProperty && Object.prototype.toString.call(o) === '[object Array]') { + for (i = 0, v = '['; i < o.length; i++) { + v += (i > 0 ? ',' : '') + serialize(o[i], quote); + } + + return v + ']'; + } + + v = '{'; + + for (name in o) { + if (o.hasOwnProperty(name)) { + v += typeof o[name] != 'function' ? (v.length > 1 ? ',' + quote : quote) + name + + quote + ':' + serialize(o[name], quote) : ''; + } + } + + return v + '}'; + } + + return '' + o; + } + + return { + /** + * Serializes the specified object as a JSON string. + * + * @method serialize + * @param {Object} obj Object to serialize as a JSON string. + * @param {String} quote Optional quote string defaults to ". + * @return {string} JSON string serialized from input. + */ + serialize: serialize, + + /** + * Unserializes/parses the specified JSON string into a object. + * + * @method parse + * @param {string} s JSON String to parse into a JavaScript object. + * @return {Object} Object from input JSON string or undefined if it failed. + */ + parse: function(text) { + try { + // Trick uglify JS + return window[String.fromCharCode(101) + 'val']('(' + text + ')'); + } catch (ex) { + // Ignore + } + } + + /**#@-*/ + }; +}); + +// Included from: js/tinymce/classes/util/JSONRequest.js + +/** + * JSONRequest.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class enables you to use JSON-RPC to call backend methods. + * + * @class tinymce.util.JSONRequest + * @example + * var json = new tinymce.util.JSONRequest({ + * url: 'somebackend.php' + * }); + * + * // Send RPC call 1 + * json.send({ + * method: 'someMethod1', + * params: ['a', 'b'], + * success: function(result) { + * console.dir(result); + * } + * }); + * + * // Send RPC call 2 + * json.send({ + * method: 'someMethod2', + * params: ['a', 'b'], + * success: function(result) { + * console.dir(result); + * } + * }); + */ +define("tinymce/util/JSONRequest", [ + "tinymce/util/JSON", + "tinymce/util/XHR", + "tinymce/util/Tools" +], function(JSON, XHR, Tools) { + var extend = Tools.extend; + + function JSONRequest(settings) { + this.settings = extend({}, settings); + this.count = 0; + } + + /** + * Simple helper function to send a JSON-RPC request without the need to initialize an object. + * Consult the Wiki API documentation for more details on what you can pass to this function. + * + * @method sendRPC + * @static + * @param {Object} o Call object where there are three field id, method and params this object should also contain callbacks etc. + */ + JSONRequest.sendRPC = function(o) { + return new JSONRequest().send(o); + }; + + JSONRequest.prototype = { + /** + * Sends a JSON-RPC call. Consult the Wiki API documentation for more details on what you can pass to this function. + * + * @method send + * @param {Object} args Call object where there are three field id, method and params this object should also contain callbacks etc. + */ + send: function(args) { + var ecb = args.error, scb = args.success; + + args = extend(this.settings, args); + + args.success = function(c, x) { + c = JSON.parse(c); + + if (typeof(c) == 'undefined') { + c = { + error : 'JSON Parse error.' + }; + } + + if (c.error) { + ecb.call(args.error_scope || args.scope, c.error, x); + } else { + scb.call(args.success_scope || args.scope, c.result); + } + }; + + args.error = function(ty, x) { + if (ecb) { + ecb.call(args.error_scope || args.scope, ty, x); + } + }; + + args.data = JSON.serialize({ + id: args.id || 'c' + (this.count++), + method: args.method, + params: args.params + }); + + // JSON content type for Ruby on rails. Bug: #1883287 + args.content_type = 'application/json'; + + XHR.send(args); + } + }; + + return JSONRequest; +}); + +// Included from: js/tinymce/classes/util/JSONP.js + +/** + * JSONP.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +define("tinymce/util/JSONP", [ + "tinymce/dom/DOMUtils" +], function(DOMUtils) { + return { + callbacks: {}, + count: 0, + + send: function(settings) { + var self = this, dom = DOMUtils.DOM, count = settings.count !== undefined ? settings.count : self.count; + var id = 'tinymce_jsonp_' + count; + + self.callbacks[count] = function(json) { + dom.remove(id); + delete self.callbacks[count]; + + settings.callback(json); + }; + + dom.add(dom.doc.body, 'script', { + id: id, + src: settings.url, + type: 'text/javascript' + }); + + self.count++; + } + }; +}); + +// Included from: js/tinymce/classes/util/LocalStorage.js + +/** + * LocalStorage.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class will simulate LocalStorage on IE 7 and return the native version on modern browsers. + * Storage is done using userData on IE 7 and a special serialization format. The format is designed + * to be as small as possible by making sure that the keys and values doesn't need to be encoded. This + * makes it possible to store for example HTML data. + * + * Storage format for userData: + * <base 32 key length>,<key string>,<base 32 value length>,<value>,... + * + * For example this data key1=value1,key2=value2 would be: + * 4,key1,6,value1,4,key2,6,value2 + * + * @class tinymce.util.LocalStorage + * @static + * @version 4.0 + * @example + * tinymce.util.LocalStorage.setItem('key', 'value'); + * var value = tinymce.util.LocalStorage.getItem('key'); + */ +define("tinymce/util/LocalStorage", [], function() { + var LocalStorage, storageElm, items, keys, userDataKey, hasOldIEDataSupport; + + // Check for native support + try { + if (window.localStorage) { + return localStorage; + } + } catch (ex) { + // Ignore + } + + userDataKey = "tinymce"; + storageElm = document.documentElement; + hasOldIEDataSupport = !!storageElm.addBehavior; + + if (hasOldIEDataSupport) { + storageElm.addBehavior('#default#userData'); + } + + /** + * Gets the keys names and updates LocalStorage.length property. Since IE7 doesn't have any getters/setters. + */ + function updateKeys() { + keys = []; + + for (var key in items) { + keys.push(key); + } + + LocalStorage.length = keys.length; + } + + /** + * Loads the userData string and parses it into the items structure. + */ + function load() { + var key, data, value, pos = 0; + + items = {}; + + // localStorage can be disabled on WebKit/Gecko so make a dummy storage + if (!hasOldIEDataSupport) { + return; + } + + function next(end) { + var value, nextPos; + + nextPos = end !== undefined ? pos + end : data.indexOf(',', pos); + if (nextPos === -1 || nextPos > data.length) { + return null; + } + + value = data.substring(pos, nextPos); + pos = nextPos + 1; + + return value; + } + + storageElm.load(userDataKey); + data = storageElm.getAttribute(userDataKey) || ''; + + do { + var offset = next(); + if (offset === null) { + break; + } + + key = next(parseInt(offset, 32) || 0); + if (key !== null) { + offset = next(); + if (offset === null) { + break; + } + + value = next(parseInt(offset, 32) || 0); + + if (key) { + items[key] = value; + } + } + } while (key !== null); + + updateKeys(); + } + + /** + * Saves the items structure into a the userData format. + */ + function save() { + var value, data = ''; + + // localStorage can be disabled on WebKit/Gecko so make a dummy storage + if (!hasOldIEDataSupport) { + return; + } + + for (var key in items) { + value = items[key]; + data += (data ? ',' : '') + key.length.toString(32) + ',' + key + ',' + value.length.toString(32) + ',' + value; + } + + storageElm.setAttribute(userDataKey, data); + + try { + storageElm.save(userDataKey); + } catch (ex) { + // Ignore disk full + } + + updateKeys(); + } + + LocalStorage = { + /** + * Length of the number of items in storage. + * + * @property length + * @type Number + * @return {Number} Number of items in storage. + */ + //length:0, + + /** + * Returns the key name by index. + * + * @method key + * @param {Number} index Index of key to return. + * @return {String} Key value or null if it wasn't found. + */ + key: function(index) { + return keys[index]; + }, + + /** + * Returns the value if the specified key or null if it wasn't found. + * + * @method getItem + * @param {String} key Key of item to retrive. + * @return {String} Value of the specified item or null if it wasn't found. + */ + getItem: function(key) { + return key in items ? items[key] : null; + }, + + /** + * Sets the value of the specified item by it's key. + * + * @method setItem + * @param {String} key Key of the item to set. + * @param {String} value Value of the item to set. + */ + setItem: function(key, value) { + items[key] = "" + value; + save(); + }, + + /** + * Removes the specified item by key. + * + * @method removeItem + * @param {String} key Key of item to remove. + */ + removeItem: function(key) { + delete items[key]; + save(); + }, + + /** + * Removes all items. + * + * @method clear + */ + clear: function() { + items = {}; + save(); + } + }; + + load(); + + return LocalStorage; +}); + +// Included from: js/tinymce/classes/Compat.js + +/** + * Compat.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * TinyMCE core class. + * + * @static + * @class tinymce + * @borrow-members tinymce.EditorManager + * @borrow-members tinymce.util.Tools + */ +define("tinymce/Compat", [ + "tinymce/dom/DOMUtils", + "tinymce/dom/EventUtils", + "tinymce/dom/ScriptLoader", + "tinymce/AddOnManager", + "tinymce/util/Tools", + "tinymce/Env" +], function(DOMUtils, EventUtils, ScriptLoader, AddOnManager, Tools, Env) { + var tinymce = window.tinymce; + + /** + * @property {tinymce.dom.DOMUtils} DOM Global DOM instance. + * @property {tinymce.dom.ScriptLoader} ScriptLoader Global ScriptLoader instance. + * @property {tinymce.AddOnManager} PluginManager Global PluginManager instance. + * @property {tinymce.AddOnManager} ThemeManager Global ThemeManager instance. + */ + tinymce.DOM = DOMUtils.DOM; + tinymce.ScriptLoader = ScriptLoader.ScriptLoader; + tinymce.PluginManager = AddOnManager.PluginManager; + tinymce.ThemeManager = AddOnManager.ThemeManager; + + tinymce.dom = tinymce.dom || {}; + tinymce.dom.Event = EventUtils.Event; + + Tools.each(Tools, function(func, key) { + tinymce[key] = func; + }); + + Tools.each('isOpera isWebKit isIE isGecko isMac'.split(' '), function(name) { + tinymce[name] = Env[name.substr(2).toLowerCase()]; + }); + + return {}; +}); + +// Describe the different namespaces + +/** + * Root level namespace this contains classes directly releated to the TinyMCE editor. + * + * @namespace tinymce + */ + +/** + * Contains classes for handling the browsers DOM. + * + * @namespace tinymce.dom + */ + +/** + * Contains html parser and serializer logic. + * + * @namespace tinymce.html + */ + +/** + * Contains the different UI types such as buttons, listboxes etc. + * + * @namespace tinymce.ui + */ + +/** + * Contains various utility classes such as json parser, cookies etc. + * + * @namespace tinymce.util + */ + +// Included from: js/tinymce/classes/ui/Layout.js + +/** + * Layout.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Base layout manager class. + * + * @class tinymce.ui.Layout + */ +define("tinymce/ui/Layout", [ + "tinymce/util/Class", + "tinymce/util/Tools" +], function(Class, Tools) { + "use strict"; + + return Class.extend({ + Defaults: { + firstControlClass: 'first', + lastControlClass: 'last' + }, + + /** + * Constructs a layout instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + */ + init: function(settings) { + this.settings = Tools.extend({}, this.Defaults, settings); + }, + + /** + * This method gets invoked before the layout renders the controls. + * + * @method preRender + * @param {tinymce.ui.Container} container Container instance to preRender. + */ + preRender: function(container) { + container.addClass(this.settings.containerClass, 'body'); + }, + + /** + * Applies layout classes to the container. + * + * @private + */ + applyClasses: function(container) { + var self = this, settings = self.settings, items, firstClass, lastClass; + + items = container.items().filter(':visible'); + firstClass = settings.firstControlClass; + lastClass = settings.lastControlClass; + + items.each(function(item) { + item.removeClass(firstClass).removeClass(lastClass); + + if (settings.controlClass) { + item.addClass(settings.controlClass); + } + }); + + items.eq(0).addClass(firstClass); + items.eq(-1).addClass(lastClass); + }, + + /** + * Renders the specified container and any layout specific HTML. + * + * @method renderHtml + * @param {tinymce.ui.Container} container Container to render HTML for. + */ + renderHtml: function(container) { + var self = this, settings = self.settings, items, html = ''; + + items = container.items(); + items.eq(0).addClass(settings.firstControlClass); + items.eq(-1).addClass(settings.lastControlClass); + + items.each(function(item) { + if (settings.controlClass) { + item.addClass(settings.controlClass); + } + + html += item.renderHtml(); + }); + + return html; + }, + + /** + * Recalculates the positions of the controls in the specified container. + * + * @method recalc + * @param {tinymce.ui.Container} container Container instance to recalc. + */ + recalc: function() { + }, + + /** + * This method gets invoked after the layout renders the controls. + * + * @method postRender + * @param {tinymce.ui.Container} container Container instance to postRender. + */ + postRender: function() { + } + }); +}); + +// Included from: js/tinymce/classes/ui/AbsoluteLayout.js + +/** + * AbsoluteLayout.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * LayoutManager for absolute positioning. This layout manager is more of + * a base class for other layouts but can be created and used directly. + * + * @-x-less AbsoluteLayout.less + * @class tinymce.ui.AbsoluteLayout + * @extends tinymce.ui.Layout + */ +define("tinymce/ui/AbsoluteLayout", [ + "tinymce/ui/Layout" +], function(Layout) { + "use strict"; + + return Layout.extend({ + Defaults: { + containerClass: 'abs-layout', + controlClass: 'abs-layout-item' + }, + + /** + * Recalculates the positions of the controls in the specified container. + * + * @method recalc + * @param {tinymce.ui.Container} container Container instance to recalc. + */ + recalc: function(container) { + container.items().filter(':visible').each(function(ctrl) { + var settings = ctrl.settings; + + ctrl.layoutRect({ + x: settings.x, + y: settings.y, + w: settings.w, + h: settings.h + }); + + if (ctrl.recalc) { + ctrl.recalc(); + } + }); + }, + + /** + * Renders the specified container and any layout specific HTML. + * + * @method renderHtml + * @param {tinymce.ui.Container} container Container to render HTML for. + */ + renderHtml: function(container) { + return '<div id="' + container._id + '-absend" class="' + container.classPrefix + 'abs-end"></div>' + this._super(container); + } + }); +}); + +// Included from: js/tinymce/classes/ui/Tooltip.js + +/** + * Tooltip.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a tooltip instance. + * + * @-x-less ToolTip.less + * @class tinymce.ui.ToolTip + * @extends tinymce.ui.Control + * @mixes tinymce.ui.Movable + */ +define("tinymce/ui/Tooltip", [ + "tinymce/ui/Control", + "tinymce/ui/Movable" +], function(Control, Movable) { + return Control.extend({ + Mixins: [Movable], + + Defaults: { + classes: 'widget tooltip tooltip-n' + }, + + /** + * Sets/gets the current label text. + * + * @method text + * @param {String} [text] New label text. + * @return {String|tinymce.ui.Tooltip} Current text or current label instance. + */ + text: function(value) { + var self = this; + + if (typeof(value) != "undefined") { + self._value = value; + + if (self._rendered) { + self.getEl().lastChild.innerHTML = self.encode(value); + } + + return self; + } + + return self._value; + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, prefix = self.classPrefix; + + return ( + '<div id="' + self._id + '" class="' + self.classes() + '" role="presentation">' + + '<div class="' + prefix + 'tooltip-arrow"></div>' + + '<div class="' + prefix + 'tooltip-inner">' + self.encode(self._text) + '</div>' + + '</div>' + ); + }, + + /** + * Repaints the control after a layout operation. + * + * @method repaint + */ + repaint: function() { + var self = this, style, rect; + + style = self.getEl().style; + rect = self._layoutRect; + + style.left = rect.x + 'px'; + style.top = rect.y + 'px'; + style.zIndex = 0xFFFF + 0xFFFF; + } + }); +}); + +// Included from: js/tinymce/classes/ui/Widget.js + +/** + * Widget.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Widget base class a widget is a control that has a tooltip and some basic states. + * + * @class tinymce.ui.Widget + * @extends tinymce.ui.Control + */ +define("tinymce/ui/Widget", [ + "tinymce/ui/Control", + "tinymce/ui/Tooltip" +], function(Control, Tooltip) { + "use strict"; + + var tooltip; + + var Widget = Control.extend({ + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {String} tooltip Tooltip text to display when hovering. + * @setting {Boolean} autofocus True if the control should be focused when rendered. + * @setting {String} text Text to display inside widget. + */ + init: function(settings) { + var self = this; + + self._super(settings); + self.canFocus = true; + + if (settings.tooltip && Widget.tooltips !== false) { + self.on('mouseenter', function(e) { + var tooltip = self.tooltip().moveTo(-0xFFFF); + + if (e.control == self) { + var rel = tooltip.text(settings.tooltip).show().testMoveRel(self.getEl(), ['bc-tc', 'bc-tl', 'bc-tr']); + + tooltip.toggleClass('tooltip-n', rel == 'bc-tc'); + tooltip.toggleClass('tooltip-nw', rel == 'bc-tl'); + tooltip.toggleClass('tooltip-ne', rel == 'bc-tr'); + + tooltip.moveRel(self.getEl(), rel); + } else { + tooltip.hide(); + } + }); + + self.on('mouseleave mousedown click', function() { + self.tooltip().hide(); + }); + } + + self.aria('label', settings.ariaLabel || settings.tooltip); + }, + + /** + * Returns the current tooltip instance. + * + * @method tooltip + * @return {tinymce.ui.Tooltip} Tooltip instance. + */ + tooltip: function() { + if (!tooltip) { + tooltip = new Tooltip({type: 'tooltip'}); + tooltip.renderTo(); + } + + return tooltip; + }, + + /** + * Sets/gets the active state of the widget. + * + * @method active + * @param {Boolean} [state] State if the control is active. + * @return {Boolean|tinymce.ui.Widget} True/false or current widget instance. + */ + active: function(state) { + var self = this, undef; + + if (state !== undef) { + self.aria('pressed', state); + self.toggleClass('active', state); + } + + return self._super(state); + }, + + /** + * Sets/gets the disabled state of the widget. + * + * @method disabled + * @param {Boolean} [state] State if the control is disabled. + * @return {Boolean|tinymce.ui.Widget} True/false or current widget instance. + */ + disabled: function(state) { + var self = this, undef; + + if (state !== undef) { + self.aria('disabled', state); + self.toggleClass('disabled', state); + } + + return self._super(state); + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this, settings = self.settings; + + self._rendered = true; + + self._super(); + + if (!self.parent() && (settings.width || settings.height)) { + self.initLayoutRect(); + self.repaint(); + } + + if (settings.autofocus) { + self.focus(); + } + }, + + /** + * Removes the current control from DOM and from UI collections. + * + * @method remove + * @return {tinymce.ui.Control} Current control instance. + */ + remove: function() { + this._super(); + + if (tooltip) { + tooltip.remove(); + tooltip = null; + } + } + }); + + return Widget; +}); + +// Included from: js/tinymce/classes/ui/Button.js + +/** + * Button.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class is used to create buttons. You can create them directly or through the Factory. + * + * @example + * // Create and render a button to the body element + * tinymce.ui.Factory.create({ + * type: 'button', + * text: 'My button' + * }).renderTo(document.body); + * + * @-x-less Button.less + * @class tinymce.ui.Button + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/Button", [ + "tinymce/ui/Widget" +], function(Widget) { + "use strict"; + + return Widget.extend({ + Defaults: { + classes: "widget btn", + role: "button" + }, + + /** + * Constructs a new button instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {String} size Size of the button small|medium|large. + * @setting {String} image Image to use for icon. + * @setting {String} icon Icon to use for button. + */ + init: function(settings) { + var self = this, size; + + self.on('click mousedown', function(e) { + e.preventDefault(); + }); + + self._super(settings); + size = settings.size; + + if (settings.subtype) { + self.addClass(settings.subtype); + } + + if (size) { + self.addClass('btn-' + size); + } + }, + + /** + * Sets/gets the current button icon. + * + * @method icon + * @param {String} [icon] New icon identifier. + * @return {String|tinymce.ui.MenuButton} Current icon or current MenuButton instance. + */ + icon: function(icon) { + var self = this, prefix = self.classPrefix; + + if (typeof(icon) == 'undefined') { + return self.settings.icon; + } + + self.settings.icon = icon; + icon = icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : ''; + + if (self._rendered) { + var btnElm = self.getEl().firstChild, iconElm = btnElm.getElementsByTagName('i')[0]; + + if (icon) { + if (!iconElm || iconElm != btnElm.firstChild) { + iconElm = document.createElement('i'); + btnElm.insertBefore(iconElm, btnElm.firstChild); + } + + iconElm.className = icon; + } else if (iconElm) { + btnElm.removeChild(iconElm); + } + + self.text(self._text); // Set text again to fix whitespace between icon + text + } + + return self; + }, + + /** + * Repaints the button for example after it's been resizes by a layout engine. + * + * @method repaint + */ + repaint: function() { + var btnStyle = this.getEl().firstChild.style; + + btnStyle.width = btnStyle.height = "100%"; + + this._super(); + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, id = self._id, prefix = self.classPrefix; + var icon = self.settings.icon, image = ''; + + if (self.settings.image) { + icon = 'none'; + image = ' style="background-image: url(\'' + self.settings.image + '\')"'; + } + + icon = self.settings.icon ? prefix + 'ico ' + prefix + 'i-' + icon : ''; + + return ( + '<div id="' + id + '" class="' + self.classes() + '" tabindex="-1" aria-labelledby="' + id + '">' + + '<button role="presentation" type="button" tabindex="-1">' + + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + + (self._text ? (icon ? '\u00a0' : '') + self.encode(self._text) : '') + + '</button>' + + '</div>' + ); + } + }); +}); + +// Included from: js/tinymce/classes/ui/ButtonGroup.js + +/** + * ButtonGroup.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This control enables you to put multiple buttons into a group. This is + * useful when you want to combine similar toolbar buttons into a group. + * + * @example + * // Create and render a buttongroup with two buttons to the body element + * tinymce.ui.Factory.create({ + * type: 'buttongroup', + * items: [ + * {text: 'Button A'}, + * {text: 'Button B'} + * ] + * }).renderTo(document.body); + * + * @-x-less ButtonGroup.less + * @class tinymce.ui.ButtonGroup + * @extends tinymce.ui.Container + */ +define("tinymce/ui/ButtonGroup", [ + "tinymce/ui/Container" +], function(Container) { + "use strict"; + + return Container.extend({ + Defaults: { + defaultType: 'button', + role: 'group' + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, layout = self._layout; + + self.addClass('btn-group'); + self.preRender(); + layout.preRender(self); + + return ( + '<div id="' + self._id + '" class="' + self.classes() + '">' + + '<div id="' + self._id + '-body">' + + (self.settings.html || '') + layout.renderHtml(self) + + '</div>' + + '</div>' + ); + } + }); +}); + +// Included from: js/tinymce/classes/ui/Checkbox.js + +/** + * Checkbox.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This control creates a custom checkbox. + * + * @example + * // Create and render a checkbox to the body element + * tinymce.ui.Factory.create({ + * type: 'checkbox', + * checked: true, + * text: 'My checkbox' + * }).renderTo(document.body); + * + * @-x-less Checkbox.less + * @class tinymce.ui.Checkbox + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/Checkbox", [ + "tinymce/ui/Widget" +], function(Widget) { + "use strict"; + + return Widget.extend({ + Defaults: { + classes: "checkbox", + role: "checkbox", + checked: false + }, + + /** + * Constructs a new Checkbox instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {Boolean} checked True if the checkbox should be checked by default. + */ + init: function(settings) { + var self = this; + + self._super(settings); + + self.on('click mousedown', function(e) { + e.preventDefault(); + }); + + self.on('click', function(e) { + e.preventDefault(); + + if (!self.disabled()) { + self.checked(!self.checked()); + } + }); + + self.checked(self.settings.checked); + }, + + /** + * Getter/setter function for the checked state. + * + * @method checked + * @param {Boolean} [state] State to be set. + * @return {Boolean|tinymce.ui.Checkbox} True/false or checkbox if it's a set operation. + */ + checked: function(state) { + var self = this; + + if (typeof state != "undefined") { + if (state) { + self.addClass('checked'); + } else { + self.removeClass('checked'); + } + + self._checked = state; + self.aria('checked', state); + + return self; + } + + return self._checked; + }, + + /** + * Getter/setter function for the value state. + * + * @method value + * @param {Boolean} [state] State to be set. + * @return {Boolean|tinymce.ui.Checkbox} True/false or checkbox if it's a set operation. + */ + value: function(state) { + return this.checked(state); + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, id = self._id, prefix = self.classPrefix; + + return ( + '<div id="' + id + '" class="' + self.classes() + '" unselectable="on" aria-labelledby="' + id + '-al" tabindex="-1">' + + '<i class="' + prefix + 'ico ' + prefix + 'i-checkbox"></i>' + + '<span id="' + id + '-al" class="' + prefix + 'label">' + self.encode(self._text) + '</span>' + + '</div>' + ); + } + }); +}); + +// Included from: js/tinymce/classes/ui/PanelButton.js + +/** + * PanelButton.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new panel button. + * + * @class tinymce.ui.PanelButton + * @extends tinymce.ui.Button + */ +define("tinymce/ui/PanelButton", [ + "tinymce/ui/Button", + "tinymce/ui/FloatPanel" +], function(Button, FloatPanel) { + "use strict"; + + return Button.extend({ + /** + * Shows the panel for the button. + * + * @method showPanel + */ + showPanel: function() { + var self = this, settings = self.settings; + + self.active(true); + + if (!self.panel) { + var panelSettings = settings.panel; + + // Wrap panel in grid layout if type if specified + // This makes it possible to add forms or other containers directly in the panel option + if (panelSettings.type) { + panelSettings = { + layout: 'grid', + items: panelSettings + }; + } + + panelSettings.role = panelSettings.role || 'dialog'; + panelSettings.popover = true; + panelSettings.autohide = true; + panelSettings.ariaRoot = true; + + self.panel = new FloatPanel(panelSettings).on('hide', function() { + self.active(false); + }).on('cancel', function(e) { + e.stopPropagation(); + self.focus(); + self.hidePanel(); + }).parent(self).renderTo(self.getContainerElm()); + + self.panel.fire('show'); + self.panel.reflow(); + } else { + self.panel.show(); + } + + self.panel.moveRel(self.getEl(), settings.popoverAlign || (self.isRtl() ? ['bc-tr', 'bc-tc'] : ['bc-tl', 'bc-tc'])); + }, + + /** + * Hides the panel for the button. + * + * @method hidePanel + */ + hidePanel: function() { + var self = this; + + if (self.panel) { + self.panel.hide(); + } + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this; + + self.aria('haspopup', true); + + self.on('click', function(e) { + if (e.control === self) { + if (self.panel && self.panel.visible()) { + self.hidePanel(); + } else { + self.showPanel(); + self.panel.focus(!!e.aria); + } + } + }); + + return self._super(); + } + }); +}); + +// Included from: js/tinymce/classes/ui/ColorButton.js + +/** + * ColorButton.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class creates a color button control. This is a split button in which the main + * button has a visual representation of the currently selected color. When clicked + * the caret button displays a color picker, allowing the user to select a new color. + * + * @-x-less ColorButton.less + * @class tinymce.ui.ColorButton + * @extends tinymce.ui.PanelButton + */ +define("tinymce/ui/ColorButton", [ + "tinymce/ui/PanelButton", + "tinymce/dom/DOMUtils" +], function(PanelButton, DomUtils) { + "use strict"; + + var DOM = DomUtils.DOM; + + return PanelButton.extend({ + /** + * Constructs a new ColorButton instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + */ + init: function(settings) { + this._super(settings); + this.addClass('colorbutton'); + }, + + /** + * Getter/setter for the current color. + * + * @method color + * @param {String} [color] Color to set. + * @return {String|tinymce.ui.ColorButton} Current color or current instance. + */ + color: function(color) { + if (color) { + this._color = color; + this.getEl('preview').style.backgroundColor = color; + return this; + } + + return this._color; + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, id = self._id, prefix = self.classPrefix; + var icon = self.settings.icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : ''; + var image = self.settings.image ? ' style="background-image: url(\'' + self.settings.image + '\')"' : ''; + + return ( + '<div id="' + id + '" class="' + self.classes() + '" role="button" tabindex="-1" aria-haspopup="true">' + + '<button role="presentation" hidefocus type="button" tabindex="-1">' + + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + + '<span id="' + id + '-preview" class="' + prefix + 'preview"></span>' + + (self._text ? (icon ? ' ' : '') + (self._text) : '') + + '</button>' + + '<button type="button" class="' + prefix + 'open" hidefocus tabindex="-1">' + + ' <i class="' + prefix + 'caret"></i>' + + '</button>' + + '</div>' + ); + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this, onClickHandler = self.settings.onclick; + + self.on('click', function(e) { + if (e.aria && e.aria.key == 'down') { + return; + } + + if (e.control == self && !DOM.getParent(e.target, '.' + self.classPrefix + 'open')) { + e.stopImmediatePropagation(); + onClickHandler.call(self, e); + } + }); + + delete self.settings.onclick; + + return self._super(); + } + + }); +}); + +// Included from: js/tinymce/classes/ui/ComboBox.js + +/** + * ComboBox.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class creates a combobox control. Select box that you select a value from or + * type a value into. + * + * @-x-less ComboBox.less + * @class tinymce.ui.ComboBox + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/ComboBox", [ + "tinymce/ui/Widget", + "tinymce/ui/Factory", + "tinymce/ui/DomUtils" +], function(Widget, Factory, DomUtils) { + "use strict"; + + return Widget.extend({ + /** + * Constructs a new control instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {String} placeholder Placeholder text to display. + */ + init: function(settings) { + var self = this; + + self._super(settings); + self.addClass('combobox'); + self.subinput = true; + self.ariaTarget = 'inp'; // TODO: Figure out a better way + + settings = self.settings; + settings.menu = settings.menu || settings.values; + + if (settings.menu) { + settings.icon = 'caret'; + } + + self.on('click', function(e) { + var elm = e.target, root = self.getEl(); + + while (elm && elm != root) { + if (elm.id && elm.id.indexOf('-open') != -1) { + self.fire('action'); + + if (settings.menu) { + self.showMenu(); + + if (e.aria) { + self.menu.items()[0].focus(); + } + } + } + + elm = elm.parentNode; + } + }); + + // TODO: Rework this + self.on('keydown', function(e) { + if (e.target.nodeName == "INPUT" && e.keyCode == 13) { + self.parents().reverse().each(function(ctrl) { + e.preventDefault(); + self.fire('change'); + + if (ctrl.hasEventListeners('submit') && ctrl.toJSON) { + ctrl.fire('submit', {data: ctrl.toJSON()}); + return false; + } + }); + } + }); + + if (settings.placeholder) { + self.addClass('placeholder'); + + self.on('focusin', function() { + if (!self._hasOnChange) { + DomUtils.on(self.getEl('inp'), 'change', function() { + self.fire('change'); + }); + + self._hasOnChange = true; + } + + if (self.hasClass('placeholder')) { + self.getEl('inp').value = ''; + self.removeClass('placeholder'); + } + }); + + self.on('focusout', function() { + if (self.value().length === 0) { + self.getEl('inp').value = settings.placeholder; + self.addClass('placeholder'); + } + }); + } + }, + + showMenu: function() { + var self = this, settings = self.settings, menu; + + if (!self.menu) { + menu = settings.menu || []; + + // Is menu array then auto constuct menu control + if (menu.length) { + menu = { + type: 'menu', + items: menu + }; + } else { + menu.type = menu.type || 'menu'; + } + + self.menu = Factory.create(menu).parent(self).renderTo(self.getContainerElm()); + self.fire('createmenu'); + self.menu.reflow(); + self.menu.on('cancel', function(e) { + if (e.control === self.menu) { + self.focus(); + } + }); + + self.menu.on('show hide', function(e) { + e.control.items().each(function(ctrl) { + ctrl.active(ctrl.value() == self.value()); + }); + }).fire('show'); + + self.menu.on('select', function(e) { + self.value(e.control.value()); + }); + + self.on('focusin', function(e) { + if (e.target.tagName == 'INPUT') { + self.menu.hide(); + } + }); + + self.aria('expanded', true); + } + + self.menu.show(); + self.menu.layoutRect({w: self.layoutRect().w}); + self.menu.moveRel(self.getEl(), self.isRtl() ? ['br-tr', 'tr-br'] : ['bl-tl', 'tl-bl']); + }, + + /** + * Getter/setter function for the control value. + * + * @method value + * @param {String} [value] Value to be set. + * @return {String|tinymce.ui.ComboBox} Value or self if it's a set operation. + */ + value: function(value) { + var self = this; + + if (typeof(value) != "undefined") { + self._value = value; + self.removeClass('placeholder'); + + if (self._rendered) { + self.getEl('inp').value = value; + } + + return self; + } + + if (self._rendered) { + value = self.getEl('inp').value; + + if (value != self.settings.placeholder) { + return value; + } + + return ''; + } + + return self._value; + }, + + /** + * Getter/setter function for the disabled state. + * + * @method value + * @param {Boolean} [state] State to be set. + * @return {Boolean|tinymce.ui.ComboBox} True/false or self if it's a set operation. + */ + disabled: function(state) { + var self = this; + + if (self._rendered && typeof(state) != 'undefined') { + self.getEl('inp').disabled = state; + } + + return self._super(state); + }, + + /** + * Focuses the input area of the control. + * + * @method focus + */ + focus: function() { + this.getEl('inp').focus(); + }, + + /** + * Repaints the control after a layout operation. + * + * @method repaint + */ + repaint: function() { + var self = this, elm = self.getEl(), openElm = self.getEl('open'), rect = self.layoutRect(); + var width, lineHeight; + + if (openElm) { + width = rect.w - DomUtils.getSize(openElm).width - 10; + } else { + width = rect.w - 10; + } + + // Detect old IE 7+8 add lineHeight to align caret vertically in the middle + var doc = document; + if (doc.all && (!doc.documentMode || doc.documentMode <= 8)) { + lineHeight = (self.layoutRect().h - 2) + 'px'; + } + + DomUtils.css(elm.firstChild, { + width: width, + lineHeight: lineHeight + }); + + self._super(); + + return self; + }, + + /** + * Post render method. Called after the control has been rendered to the target. + * + * @method postRender + * @return {tinymce.ui.ComboBox} Current combobox instance. + */ + postRender: function() { + var self = this; + + DomUtils.on(this.getEl('inp'), 'change', function() { + self.fire('change'); + }); + + return self._super(); + }, + + remove: function() { + DomUtils.off(this.getEl('inp')); + this._super(); + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, id = self._id, settings = self.settings, prefix = self.classPrefix; + var value = settings.value || settings.placeholder || ''; + var icon, text, openBtnHtml = '', extraAttrs = ''; + + if ("spellcheck" in settings) { + extraAttrs += ' spellcheck="' + settings.spellcheck + '"'; + } + + if (settings.maxLength) { + extraAttrs += ' maxlength="' + settings.maxLength + '"'; + } + + if (settings.size) { + extraAttrs += ' size="' + settings.size + '"'; + } + + if (settings.subtype) { + extraAttrs += ' type="' + settings.subtype + '"'; + } + + if (self.disabled()) { + extraAttrs += ' disabled="disabled"'; + } + + icon = settings.icon; + if (icon && icon != 'caret') { + icon = prefix + 'ico ' + prefix + 'i-' + settings.icon; + } + + text = self._text; + + if (icon || text) { + openBtnHtml = ( + '<div id="' + id + '-open" class="' + prefix + 'btn ' + prefix + 'open" tabIndex="-1" role="button">' + + '<button id="' + id + '-action" type="button" hidefocus tabindex="-1">' + + (icon != 'caret' ? '<i class="' + icon + '"></i>' : '<i class="' + prefix + 'caret"></i>') + + (text ? (icon ? ' ' : '') + text : '') + + '</button>' + + '</div>' + ); + + self.addClass('has-open'); + } + + return ( + '<div id="' + id + '" class="' + self.classes() + '">' + + '<input id="' + id + '-inp" class="' + prefix + 'textbox ' + prefix + 'placeholder" value="' + + value + '" hidefocus="true"' + extraAttrs + '>' + + openBtnHtml + + '</div>' + ); + } + }); +}); + +// Included from: js/tinymce/classes/ui/Path.js + +/** + * Path.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new path control. + * + * @-x-less Path.less + * @class tinymce.ui.Path + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/Path", [ + "tinymce/ui/Widget" +], function(Widget) { + "use strict"; + + return Widget.extend({ + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {String} delimiter Delimiter to display between items in path. + */ + init: function(settings) { + var self = this; + + if (!settings.delimiter) { + settings.delimiter = '\u00BB'; + } + + self._super(settings); + self.addClass('path'); + self.canFocus = true; + + self.on('click', function(e) { + var index, target = e.target; + + if ((index = target.getAttribute('data-index'))) { + self.fire('select', {value: self.data()[index], index: index}); + } + }); + }, + + /** + * Focuses the current control. + * + * @method focus + * @return {tinymce.ui.Control} Current control instance. + */ + focus: function() { + var self = this; + + self.getEl().firstChild.focus(); + + return self; + }, + + /** + * Sets/gets the data to be used for the path. + * + * @method data + * @param {Array} data Array with items name is rendered to path. + */ + data: function(data) { + var self = this; + + if (typeof(data) !== "undefined") { + self._data = data; + self.update(); + + return self; + } + + return self._data; + }, + + /** + * Updated the path. + * + * @private + */ + update: function() { + this.innerHtml(this._getPathHtml()); + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this; + + self._super(); + + self.data(self.settings.data); + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this; + + return ( + '<div id="' + self._id + '" class="' + self.classes() + '">' + + self._getPathHtml() + + '</div>' + ); + }, + + _getPathHtml: function() { + var self = this, parts = self._data || [], i, l, html = '', prefix = self.classPrefix; + + for (i = 0, l = parts.length; i < l; i++) { + html += ( + (i > 0 ? '<div class="' + prefix + 'divider" aria-hidden="true"> ' + self.settings.delimiter + ' </div>' : '') + + '<div role="button" class="' + prefix + 'path-item' + (i == l - 1 ? ' ' + prefix + 'last' : '') + '" data-index="' + + i + '" tabindex="-1" id="' + self._id + '-' + i + '" aria-level="' + i + '">' + parts[i].name + '</div>' + ); + } + + if (!html) { + html = '<div class="' + prefix + 'path-item"> </div>'; + } + + return html; + } + }); +}); + +// Included from: js/tinymce/classes/ui/ElementPath.js + +/** + * ElementPath.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This control creates an path for the current selections parent elements in TinyMCE. + * + * @class tinymce.ui.ElementPath + * @extends tinymce.ui.Path + */ +define("tinymce/ui/ElementPath", [ + "tinymce/ui/Path", + "tinymce/EditorManager" +], function(Path, EditorManager) { + return Path.extend({ + /** + * Post render method. Called after the control has been rendered to the target. + * + * @method postRender + * @return {tinymce.ui.ElementPath} Current combobox instance. + */ + postRender: function() { + var self = this, editor = EditorManager.activeEditor; + + function isHidden(elm) { + if (elm.nodeType === 1) { + if (elm.nodeName == "BR" || !!elm.getAttribute('data-mce-bogus')) { + return true; + } + + if (elm.getAttribute('data-mce-type') === 'bookmark') { + return true; + } + } + + return false; + } + + self.on('select', function(e) { + var parents = [], node, body = editor.getBody(); + + editor.focus(); + + node = editor.selection.getStart(); + while (node && node != body) { + if (!isHidden(node)) { + parents.push(node); + } + + node = node.parentNode; + } + + editor.selection.select(parents[parents.length - 1 - e.index]); + editor.nodeChanged(); + }); + + editor.on('nodeChange', function(e) { + var parents = [], selectionParents = e.parents, i = selectionParents.length; + + while (i--) { + if (selectionParents[i].nodeType == 1 && !isHidden(selectionParents[i])) { + var args = editor.fire('ResolveName', { + name: selectionParents[i].nodeName.toLowerCase(), + target: selectionParents[i] + }); + + parents.push({name: args.name}); + } + } + + self.data(parents); + }); + + return self._super(); + } + }); +}); + +// Included from: js/tinymce/classes/ui/FormItem.js + +/** + * FormItem.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class is a container created by the form element with + * a label and control item. + * + * @class tinymce.ui.FormItem + * @extends tinymce.ui.Container + * @setting {String} label Label to display for the form item. + */ +define("tinymce/ui/FormItem", [ + "tinymce/ui/Container" +], function(Container) { + "use strict"; + + return Container.extend({ + Defaults: { + layout: 'flex', + align: 'center', + defaults: { + flex: 1 + } + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, layout = self._layout, prefix = self.classPrefix; + + self.addClass('formitem'); + layout.preRender(self); + + return ( + '<div id="' + self._id + '" class="' + self.classes() + '" hideFocus="1" tabIndex="-1">' + + (self.settings.title ? ('<div id="' + self._id + '-title" class="' + prefix + 'title">' + + self.settings.title + '</div>') : '') + + '<div id="' + self._id + '-body" class="' + self.classes('body') + '">' + + (self.settings.html || '') + layout.renderHtml(self) + + '</div>' + + '</div>' + ); + } + }); +}); + +// Included from: js/tinymce/classes/ui/Form.js + +/** + * Form.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class creates a form container. A form container has the ability + * to automatically wrap items in tinymce.ui.FormItem instances. + * + * Each FormItem instance is a container for the label and the item. + * + * @example + * tinymce.ui.Factory.create({ + * type: 'form', + * items: [ + * {type: 'textbox', label: 'My text box'} + * ] + * }).renderTo(document.body); + * + * @class tinymce.ui.Form + * @extends tinymce.ui.Container + */ +define("tinymce/ui/Form", [ + "tinymce/ui/Container", + "tinymce/ui/FormItem" +], function(Container, FormItem) { + "use strict"; + + return Container.extend({ + Defaults: { + containerCls: 'form', + layout: 'flex', + direction: 'column', + align: 'stretch', + flex: 1, + padding: 20, + labelGap: 30, + spacing: 10, + callbacks: { + submit: function() { + this.submit(); + } + } + }, + + /** + * This method gets invoked before the control is rendered. + * + * @method preRender + */ + preRender: function() { + var self = this, items = self.items(); + + // Wrap any labeled items in FormItems + items.each(function(ctrl) { + var formItem, label = ctrl.settings.label; + + if (label) { + formItem = new FormItem({ + layout: 'flex', + autoResize: "overflow", + defaults: {flex: 1}, + items: [ + {type: 'label', id: ctrl._id + '-l', text: label, flex: 0, forId: ctrl._id, disabled: ctrl.disabled()} + ] + }); + + formItem.type = 'formitem'; + ctrl.aria('labelledby', ctrl._id + '-l'); + + if (typeof(ctrl.settings.flex) == "undefined") { + ctrl.settings.flex = 1; + } + + self.replace(ctrl, formItem); + formItem.add(ctrl); + } + }); + }, + + /** + * Recalcs label widths. + * + * @private + */ + recalcLabels: function() { + var self = this, maxLabelWidth = 0, labels = [], i, labelGap; + + if (self.settings.labelGapCalc === false) { + return; + } + + self.items().filter('formitem').each(function(item) { + var labelCtrl = item.items()[0], labelWidth = labelCtrl.getEl().clientWidth; + + maxLabelWidth = labelWidth > maxLabelWidth ? labelWidth : maxLabelWidth; + labels.push(labelCtrl); + }); + + labelGap = self.settings.labelGap || 0; + + i = labels.length; + while (i--) { + labels[i].settings.minWidth = maxLabelWidth + labelGap; + } + }, + + /** + * Getter/setter for the visibility state. + * + * @method visible + * @param {Boolean} [state] True/false state to show/hide. + * @return {tinymce.ui.Form|Boolean} True/false state or current control. + */ + visible: function(state) { + var val = this._super(state); + + if (state === true && this._rendered) { + this.recalcLabels(); + } + + return val; + }, + + /** + * Fires a submit event with the serialized form. + * + * @method submit + * @return {Object} Event arguments object. + */ + submit: function() { + return this.fire('submit', {data: this.toJSON()}); + }, + + /** + * Post render method. Called after the control has been rendered to the target. + * + * @method postRender + * @return {tinymce.ui.ComboBox} Current combobox instance. + */ + postRender: function() { + var self = this; + + self._super(); + self.recalcLabels(); + self.fromJSON(self.settings.data); + } + }); +}); + +// Included from: js/tinymce/classes/ui/FieldSet.js + +/** + * FieldSet.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class creates fieldset containers. + * + * @-x-less FieldSet.less + * @class tinymce.ui.FieldSet + * @extends tinymce.ui.Form + */ +define("tinymce/ui/FieldSet", [ + "tinymce/ui/Form" +], function(Form) { + "use strict"; + + return Form.extend({ + Defaults: { + containerCls: 'fieldset', + layout: 'flex', + direction: 'column', + align: 'stretch', + flex: 1, + padding: "25 15 5 15", + labelGap: 30, + spacing: 10, + border: 1 + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, layout = self._layout, prefix = self.classPrefix; + + self.preRender(); + layout.preRender(self); + + return ( + '<fieldset id="' + self._id + '" class="' + self.classes() + '" hideFocus="1" tabIndex="-1">' + + (self.settings.title ? ('<legend id="' + self._id + '-title" class="' + prefix + 'fieldset-title">' + + self.settings.title + '</legend>') : '') + + '<div id="' + self._id + '-body" class="' + self.classes('body') + '">' + + (self.settings.html || '') + layout.renderHtml(self) + + '</div>' + + '</fieldset>' + ); + } + }); +}); + +// Included from: js/tinymce/classes/ui/FilePicker.js + +/** + * FilePicker.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*global tinymce:true */ + +/** + * This class creates a file picker control. + * + * @class tinymce.ui.FilePicker + * @extends tinymce.ui.ComboBox + */ +define("tinymce/ui/FilePicker", [ + "tinymce/ui/ComboBox" +], function(ComboBox) { + "use strict"; + + return ComboBox.extend({ + /** + * Constructs a new control instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + */ + init: function(settings) { + var self = this, editor = tinymce.activeEditor, fileBrowserCallback; + + settings.spellcheck = false; + + fileBrowserCallback = editor.settings.file_browser_callback; + if (fileBrowserCallback) { + settings.icon = 'browse'; + + settings.onaction = function() { + fileBrowserCallback( + self.getEl('inp').id, + self.getEl('inp').value, + settings.filetype, + window + ); + }; + } + + self._super(settings); + } + }); +}); + +// Included from: js/tinymce/classes/ui/FitLayout.js + +/** + * FitLayout.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This layout manager will resize the control to be the size of it's parent container. + * In other words width: 100% and height: 100%. + * + * @-x-less FitLayout.less + * @class tinymce.ui.FitLayout + * @extends tinymce.ui.AbsoluteLayout + */ +define("tinymce/ui/FitLayout", [ + "tinymce/ui/AbsoluteLayout" +], function(AbsoluteLayout) { + "use strict"; + + return AbsoluteLayout.extend({ + /** + * Recalculates the positions of the controls in the specified container. + * + * @method recalc + * @param {tinymce.ui.Container} container Container instance to recalc. + */ + recalc: function(container) { + var contLayoutRect = container.layoutRect(), paddingBox = container.paddingBox(); + + container.items().filter(':visible').each(function(ctrl) { + ctrl.layoutRect({ + x: paddingBox.left, + y: paddingBox.top, + w: contLayoutRect.innerW - paddingBox.right - paddingBox.left, + h: contLayoutRect.innerH - paddingBox.top - paddingBox.bottom + }); + + if (ctrl.recalc) { + ctrl.recalc(); + } + }); + } + }); +}); + +// Included from: js/tinymce/classes/ui/FlexLayout.js + +/** + * FlexLayout.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This layout manager works similar to the CSS flex box. + * + * @setting {String} direction row|row-reverse|column|column-reverse + * @setting {Number} flex A positive-number to flex by. + * @setting {String} align start|end|center|stretch + * @setting {String} pack start|end|justify + * + * @class tinymce.ui.FlexLayout + * @extends tinymce.ui.AbsoluteLayout + */ +define("tinymce/ui/FlexLayout", [ + "tinymce/ui/AbsoluteLayout" +], function(AbsoluteLayout) { + "use strict"; + + return AbsoluteLayout.extend({ + /** + * Recalculates the positions of the controls in the specified container. + * + * @method recalc + * @param {tinymce.ui.Container} container Container instance to recalc. + */ + recalc: function(container) { + // A ton of variables, needs to be in the same scope for performance + var i, l, items, contLayoutRect, contPaddingBox, contSettings, align, pack, spacing, totalFlex, availableSpace, direction; + var ctrl, ctrlLayoutRect, ctrlSettings, flex, maxSizeItems = [], size, maxSize, ratio, rect, pos, maxAlignEndPos; + var sizeName, minSizeName, posName, maxSizeName, beforeName, innerSizeName, deltaSizeName, contentSizeName; + var alignAxisName, alignInnerSizeName, alignSizeName, alignMinSizeName, alignBeforeName, alignAfterName; + var alignDeltaSizeName, alignContentSizeName; + var max = Math.max, min = Math.min; + + // Get container items, properties and settings + items = container.items().filter(':visible'); + contLayoutRect = container.layoutRect(); + contPaddingBox = container._paddingBox; + contSettings = container.settings; + direction = container.isRtl() ? (contSettings.direction || 'row-reversed') : contSettings.direction; + align = contSettings.align; + pack = container.isRtl() ? (contSettings.pack || 'end') : contSettings.pack; + spacing = contSettings.spacing || 0; + + if (direction == "row-reversed" || direction == "column-reverse") { + items = items.set(items.toArray().reverse()); + direction = direction.split('-')[0]; + } + + // Setup axis variable name for row/column direction since the calculations is the same + if (direction == "column") { + posName = "y"; + sizeName = "h"; + minSizeName = "minH"; + maxSizeName = "maxH"; + innerSizeName = "innerH"; + beforeName = 'top'; + deltaSizeName = "deltaH"; + contentSizeName = "contentH"; + + alignBeforeName = "left"; + alignSizeName = "w"; + alignAxisName = "x"; + alignInnerSizeName = "innerW"; + alignMinSizeName = "minW"; + alignAfterName = "right"; + alignDeltaSizeName = "deltaW"; + alignContentSizeName = "contentW"; + } else { + posName = "x"; + sizeName = "w"; + minSizeName = "minW"; + maxSizeName = "maxW"; + innerSizeName = "innerW"; + beforeName = 'left'; + deltaSizeName = "deltaW"; + contentSizeName = "contentW"; + + alignBeforeName = "top"; + alignSizeName = "h"; + alignAxisName = "y"; + alignInnerSizeName = "innerH"; + alignMinSizeName = "minH"; + alignAfterName = "bottom"; + alignDeltaSizeName = "deltaH"; + alignContentSizeName = "contentH"; + } + + // Figure out total flex, availableSpace and collect any max size elements + availableSpace = contLayoutRect[innerSizeName] - contPaddingBox[beforeName] - contPaddingBox[beforeName]; + maxAlignEndPos = totalFlex = 0; + for (i = 0, l = items.length; i < l; i++) { + ctrl = items[i]; + ctrlLayoutRect = ctrl.layoutRect(); + ctrlSettings = ctrl.settings; + flex = ctrlSettings.flex; + availableSpace -= (i < l - 1 ? spacing : 0); + + if (flex > 0) { + totalFlex += flex; + + // Flexed item has a max size then we need to check if we will hit that size + if (ctrlLayoutRect[maxSizeName]) { + maxSizeItems.push(ctrl); + } + + ctrlLayoutRect.flex = flex; + } + + availableSpace -= ctrlLayoutRect[minSizeName]; + + // Calculate the align end position to be used to check for overflow/underflow + size = contPaddingBox[alignBeforeName] + ctrlLayoutRect[alignMinSizeName] + contPaddingBox[alignAfterName]; + if (size > maxAlignEndPos) { + maxAlignEndPos = size; + } + } + + // Calculate minW/minH + rect = {}; + if (availableSpace < 0) { + rect[minSizeName] = contLayoutRect[minSizeName] - availableSpace + contLayoutRect[deltaSizeName]; + } else { + rect[minSizeName] = contLayoutRect[innerSizeName] - availableSpace + contLayoutRect[deltaSizeName]; + } + + rect[alignMinSizeName] = maxAlignEndPos + contLayoutRect[alignDeltaSizeName]; + + rect[contentSizeName] = contLayoutRect[innerSizeName] - availableSpace; + rect[alignContentSizeName] = maxAlignEndPos; + rect.minW = min(rect.minW, contLayoutRect.maxW); + rect.minH = min(rect.minH, contLayoutRect.maxH); + rect.minW = max(rect.minW, contLayoutRect.startMinWidth); + rect.minH = max(rect.minH, contLayoutRect.startMinHeight); + + // Resize container container if minSize was changed + if (contLayoutRect.autoResize && (rect.minW != contLayoutRect.minW || rect.minH != contLayoutRect.minH)) { + rect.w = rect.minW; + rect.h = rect.minH; + + container.layoutRect(rect); + this.recalc(container); + + // Forced recalc for example if items are hidden/shown + if (container._lastRect === null) { + var parentCtrl = container.parent(); + if (parentCtrl) { + parentCtrl._lastRect = null; + parentCtrl.recalc(); + } + } + + return; + } + + // Handle max size elements, check if they will become to wide with current options + ratio = availableSpace / totalFlex; + for (i = 0, l = maxSizeItems.length; i < l; i++) { + ctrl = maxSizeItems[i]; + ctrlLayoutRect = ctrl.layoutRect(); + maxSize = ctrlLayoutRect[maxSizeName]; + size = ctrlLayoutRect[minSizeName] + ctrlLayoutRect.flex * ratio; + + if (size > maxSize) { + availableSpace -= (ctrlLayoutRect[maxSizeName] - ctrlLayoutRect[minSizeName]); + totalFlex -= ctrlLayoutRect.flex; + ctrlLayoutRect.flex = 0; + ctrlLayoutRect.maxFlexSize = maxSize; + } else { + ctrlLayoutRect.maxFlexSize = 0; + } + } + + // Setup new ratio, target layout rect, start position + ratio = availableSpace / totalFlex; + pos = contPaddingBox[beforeName]; + rect = {}; + + // Handle pack setting moves the start position to end, center + if (totalFlex === 0) { + if (pack == "end") { + pos = availableSpace + contPaddingBox[beforeName]; + } else if (pack == "center") { + pos = Math.round( + (contLayoutRect[innerSizeName] / 2) - ((contLayoutRect[innerSizeName] - availableSpace) / 2) + ) + contPaddingBox[beforeName]; + + if (pos < 0) { + pos = contPaddingBox[beforeName]; + } + } else if (pack == "justify") { + pos = contPaddingBox[beforeName]; + spacing = Math.floor(availableSpace / (items.length - 1)); + } + } + + // Default aligning (start) the other ones needs to be calculated while doing the layout + rect[alignAxisName] = contPaddingBox[alignBeforeName]; + + // Start laying out controls + for (i = 0, l = items.length; i < l; i++) { + ctrl = items[i]; + ctrlLayoutRect = ctrl.layoutRect(); + size = ctrlLayoutRect.maxFlexSize || ctrlLayoutRect[minSizeName]; + + // Align the control on the other axis + if (align === "center") { + rect[alignAxisName] = Math.round((contLayoutRect[alignInnerSizeName] / 2) - (ctrlLayoutRect[alignSizeName] / 2)); + } else if (align === "stretch") { + rect[alignSizeName] = max( + ctrlLayoutRect[alignMinSizeName] || 0, + contLayoutRect[alignInnerSizeName] - contPaddingBox[alignBeforeName] - contPaddingBox[alignAfterName] + ); + rect[alignAxisName] = contPaddingBox[alignBeforeName]; + } else if (align === "end") { + rect[alignAxisName] = contLayoutRect[alignInnerSizeName] - ctrlLayoutRect[alignSizeName] - contPaddingBox.top; + } + + // Calculate new size based on flex + if (ctrlLayoutRect.flex > 0) { + size += ctrlLayoutRect.flex * ratio; + } + + rect[sizeName] = size; + rect[posName] = pos; + ctrl.layoutRect(rect); + + // Recalculate containers + if (ctrl.recalc) { + ctrl.recalc(); + } + + // Move x/y position + pos += size + spacing; + } + } + }); +}); + +// Included from: js/tinymce/classes/ui/FlowLayout.js + +/** + * FlowLayout.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This layout manager will place the controls by using the browsers native layout. + * + * @-x-less FlowLayout.less + * @class tinymce.ui.FlowLayout + * @extends tinymce.ui.Layout + */ +define("tinymce/ui/FlowLayout", [ + "tinymce/ui/Layout" +], function(Layout) { + return Layout.extend({ + Defaults: { + containerClass: 'flow-layout', + controlClass: 'flow-layout-item', + endClass : 'break' + }, + + /** + * Recalculates the positions of the controls in the specified container. + * + * @method recalc + * @param {tinymce.ui.Container} container Container instance to recalc. + */ + recalc: function(container) { + container.items().filter(':visible').each(function(ctrl) { + if (ctrl.recalc) { + ctrl.recalc(); + } + }); + } + }); +}); + +// Included from: js/tinymce/classes/ui/FormatControls.js + +/** + * FormatControls.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Internal class containing all TinyMCE specific control types such as + * format listboxes, fontlist boxes, toolbar buttons etc. + * + * @class tinymce.ui.FormatControls + */ +define("tinymce/ui/FormatControls", [ + "tinymce/ui/Control", + "tinymce/ui/Widget", + "tinymce/ui/FloatPanel", + "tinymce/util/Tools", + "tinymce/EditorManager", + "tinymce/Env" +], function(Control, Widget, FloatPanel, Tools, EditorManager, Env) { + var each = Tools.each; + + EditorManager.on('AddEditor', function(e) { + if (e.editor.rtl) { + Control.rtl = true; + } + + registerControls(e.editor); + }); + + Control.translate = function(text) { + return EditorManager.translate(text); + }; + + Widget.tooltips = !Env.iOS; + + function registerControls(editor) { + var formatMenu; + + // Generates a preview for a format + function getPreviewCss(format) { + var name, previewElm, dom = editor.dom; + var previewCss = '', parentFontSize, previewStyles; + + previewStyles = editor.settings.preview_styles; + + // No preview forced + if (previewStyles === false) { + return ''; + } + + // Default preview + if (!previewStyles) { + previewStyles = 'font-family font-size font-weight font-style text-decoration ' + + 'text-transform color background-color border border-radius outline text-shadow'; + } + + // Removes any variables since these can't be previewed + function removeVars(val) { + return val.replace(/%(\w+)/g, ''); + } + + // Create block/inline element to use for preview + format = editor.formatter.get(format); + if (!format) { + return; + } + + format = format[0]; + name = format.block || format.inline || 'span'; + previewElm = dom.create(name); + + // Add format styles to preview element + each(format.styles, function(value, name) { + value = removeVars(value); + + if (value) { + dom.setStyle(previewElm, name, value); + } + }); + + // Add attributes to preview element + each(format.attributes, function(value, name) { + value = removeVars(value); + + if (value) { + dom.setAttrib(previewElm, name, value); + } + }); + + // Add classes to preview element + each(format.classes, function(value) { + value = removeVars(value); + + if (!dom.hasClass(previewElm, value)) { + dom.addClass(previewElm, value); + } + }); + + editor.fire('PreviewFormats'); + + // Add the previewElm outside the visual area + dom.setStyles(previewElm, {position: 'absolute', left: -0xFFFF}); + editor.getBody().appendChild(previewElm); + + // Get parent container font size so we can compute px values out of em/% for older IE:s + parentFontSize = dom.getStyle(editor.getBody(), 'fontSize', true); + parentFontSize = /px$/.test(parentFontSize) ? parseInt(parentFontSize, 10) : 0; + + each(previewStyles.split(' '), function(name) { + var value = dom.getStyle(previewElm, name, true); + + // If background is transparent then check if the body has a background color we can use + if (name == 'background-color' && /transparent|rgba\s*\([^)]+,\s*0\)/.test(value)) { + value = dom.getStyle(editor.getBody(), name, true); + + // Ignore white since it's the default color, not the nicest fix + // TODO: Fix this by detecting runtime style + if (dom.toHex(value).toLowerCase() == '#ffffff') { + return; + } + } + + if (name == 'color') { + // Ignore black since it's the default color, not the nicest fix + // TODO: Fix this by detecting runtime style + if (dom.toHex(value).toLowerCase() == '#000000') { + return; + } + } + + // Old IE won't calculate the font size so we need to do that manually + if (name == 'font-size') { + if (/em|%$/.test(value)) { + if (parentFontSize === 0) { + return; + } + + // Convert font size from em/% to px + value = parseFloat(value, 10) / (/%$/.test(value) ? 100 : 1); + value = (value * parentFontSize) + 'px'; + } + } + + if (name == "border" && value) { + previewCss += 'padding:0 2px;'; + } + + previewCss += name + ':' + value + ';'; + }); + + editor.fire('AfterPreviewFormats'); + + //previewCss += 'line-height:normal'; + + dom.remove(previewElm); + + return previewCss; + } + + function createListBoxChangeHandler(items, formatName) { + return function() { + var self = this; + + editor.on('nodeChange', function(e) { + var formatter = editor.formatter; + var value = null; + + each(e.parents, function(node) { + each(items, function(item) { + if (formatName) { + if (formatter.matchNode(node, formatName, {value: item.value})) { + value = item.value; + } + } else { + if (formatter.matchNode(node, item.value)) { + value = item.value; + } + } + + if (value) { + return false; + } + }); + + if (value) { + return false; + } + }); + + self.value(value); + }); + }; + } + + function createFormats(formats) { + formats = formats.split(';'); + + var i = formats.length; + while (i--) { + formats[i] = formats[i].split('='); + } + + return formats; + } + + function createFormatMenu() { + var count = 0, newFormats = []; + + var defaultStyleFormats = [ + {title: 'Headers', items: [ + {title: 'Header 1', format: 'h1'}, + {title: 'Header 2', format: 'h2'}, + {title: 'Header 3', format: 'h3'}, + {title: 'Header 4', format: 'h4'}, + {title: 'Header 5', format: 'h5'}, + {title: 'Header 6', format: 'h6'} + ]}, + + {title: 'Inline', items: [ + {title: 'Bold', icon: 'bold', format: 'bold'}, + {title: 'Italic', icon: 'italic', format: 'italic'}, + {title: 'Underline', icon: 'underline', format: 'underline'}, + {title: 'Strikethrough', icon: 'strikethrough', format: 'strikethrough'}, + {title: 'Superscript', icon: 'superscript', format: 'superscript'}, + {title: 'Subscript', icon: 'subscript', format: 'subscript'}, + {title: 'Code', icon: 'code', format: 'code'} + ]}, + + {title: 'Blocks', items: [ + {title: 'Paragraph', format: 'p'}, + {title: 'Blockquote', format: 'blockquote'}, + {title: 'Div', format: 'div'}, + {title: 'Pre', format: 'pre'} + ]}, + + {title: 'Alignment', items: [ + {title: 'Left', icon: 'alignleft', format: 'alignleft'}, + {title: 'Center', icon: 'aligncenter', format: 'aligncenter'}, + {title: 'Right', icon: 'alignright', format: 'alignright'}, + {title: 'Justify', icon: 'alignjustify', format: 'alignjustify'} + ]} + ]; + + function createMenu(formats) { + var menu = []; + + if (!formats) { + return; + } + + each(formats, function(format) { + var menuItem = { + text: format.title, + icon: format.icon + }; + + if (format.items) { + menuItem.menu = createMenu(format.items); + } else { + var formatName = format.format || "custom" + count++; + + if (!format.format) { + format.name = formatName; + newFormats.push(format); + } + + menuItem.format = formatName; + } + + menu.push(menuItem); + }); + + return menu; + } + + function createStylesMenu() { + var menu; + + if (editor.settings.style_formats_merge) { + if (editor.settings.style_formats) { + menu = createMenu(defaultStyleFormats.concat(editor.settings.style_formats)); + } else { + menu = createMenu(defaultStyleFormats); + } + } else { + menu = createMenu(editor.settings.style_formats || defaultStyleFormats); + } + + return menu; + } + + editor.on('init', function() { + each(newFormats, function(format) { + editor.formatter.register(format.name, format); + }); + }); + + return { + type: 'menu', + items: createStylesMenu(), + onPostRender: function(e) { + editor.fire('renderFormatsMenu', {control: e.control}); + }, + itemDefaults: { + preview: true, + + textStyle: function() { + if (this.settings.format) { + return getPreviewCss(this.settings.format); + } + }, + + onPostRender: function() { + var self = this, formatName = this.settings.format; + + if (formatName) { + self.parent().on('show', function() { + self.disabled(!editor.formatter.canApply(formatName)); + self.active(editor.formatter.match(formatName)); + }); + } + }, + + onclick: function() { + if (this.settings.format) { + toggleFormat(this.settings.format); + } + } + } + }; + } + + formatMenu = createFormatMenu(); + + // Simple format controls <control/format>:<UI text> + each({ + bold: 'Bold', + italic: 'Italic', + underline: 'Underline', + strikethrough: 'Strikethrough', + subscript: 'Subscript', + superscript: 'Superscript' + }, function(text, name) { + editor.addButton(name, { + tooltip: text, + onPostRender: function() { + var self = this; + + // TODO: Fix this + if (editor.formatter) { + editor.formatter.formatChanged(name, function(state) { + self.active(state); + }); + } else { + editor.on('init', function() { + editor.formatter.formatChanged(name, function(state) { + self.active(state); + }); + }); + } + }, + onclick: function() { + toggleFormat(name); + } + }); + }); + + // Simple command controls <control>:[<UI text>,<Command>] + each({ + outdent: ['Decrease indent', 'Outdent'], + indent: ['Increase indent', 'Indent'], + cut: ['Cut', 'Cut'], + copy: ['Copy', 'Copy'], + paste: ['Paste', 'Paste'], + help: ['Help', 'mceHelp'], + selectall: ['Select all', 'SelectAll'], + hr: ['Insert horizontal rule', 'InsertHorizontalRule'], + removeformat: ['Clear formatting', 'RemoveFormat'], + visualaid: ['Visual aids', 'mceToggleVisualAid'], + newdocument: ['New document', 'mceNewDocument'] + }, function(item, name) { + editor.addButton(name, { + tooltip: item[0], + cmd: item[1] + }); + }); + + // Simple command controls with format state + each({ + blockquote: ['Blockquote', 'mceBlockQuote'], + numlist: ['Numbered list', 'InsertOrderedList'], + bullist: ['Bullet list', 'InsertUnorderedList'], + subscript: ['Subscript', 'Subscript'], + superscript: ['Superscript', 'Superscript'], + alignleft: ['Align left', 'JustifyLeft'], + aligncenter: ['Align center', 'JustifyCenter'], + alignright: ['Align right', 'JustifyRight'], + alignjustify: ['Justify', 'JustifyFull'] + }, function(item, name) { + editor.addButton(name, { + tooltip: item[0], + cmd: item[1], + onPostRender: function() { + var self = this; + + // TODO: Fix this + if (editor.formatter) { + editor.formatter.formatChanged(name, function(state) { + self.active(state); + }); + } else { + editor.on('init', function() { + editor.formatter.formatChanged(name, function(state) { + self.active(state); + }); + }); + } + } + }); + }); + + function hasUndo() { + return editor.undoManager ? editor.undoManager.hasUndo() : false; + } + + function hasRedo() { + return editor.undoManager ? editor.undoManager.hasRedo() : false; + } + + function toggleUndoState() { + var self = this; + + self.disabled(!hasUndo()); + editor.on('Undo Redo AddUndo TypingUndo', function() { + self.disabled(!hasUndo()); + }); + } + + function toggleRedoState() { + var self = this; + + self.disabled(!hasRedo()); + editor.on('Undo Redo AddUndo TypingUndo', function() { + self.disabled(!hasRedo()); + }); + } + + function toggleVisualAidState() { + var self = this; + + editor.on('VisualAid', function(e) { + self.active(e.hasVisual); + }); + + self.active(editor.hasVisual); + } + + editor.addButton('undo', { + tooltip: 'Undo', + onPostRender: toggleUndoState, + cmd: 'undo' + }); + + editor.addButton('redo', { + tooltip: 'Redo', + onPostRender: toggleRedoState, + cmd: 'redo' + }); + + editor.addMenuItem('newdocument', { + text: 'New document', + shortcut: 'Ctrl+N', + icon: 'newdocument', + cmd: 'mceNewDocument' + }); + + editor.addMenuItem('undo', { + text: 'Undo', + icon: 'undo', + shortcut: 'Ctrl+Z', + onPostRender: toggleUndoState, + cmd: 'undo' + }); + + editor.addMenuItem('redo', { + text: 'Redo', + icon: 'redo', + shortcut: 'Ctrl+Y', + onPostRender: toggleRedoState, + cmd: 'redo' + }); + + editor.addMenuItem('visualaid', { + text: 'Visual aids', + selectable: true, + onPostRender: toggleVisualAidState, + cmd: 'mceToggleVisualAid' + }); + + each({ + cut: ['Cut', 'Cut', 'Ctrl+X'], + copy: ['Copy', 'Copy', 'Ctrl+C'], + paste: ['Paste', 'Paste', 'Ctrl+V'], + selectall: ['Select all', 'SelectAll', 'Ctrl+A'], + bold: ['Bold', 'Bold', 'Ctrl+B'], + italic: ['Italic', 'Italic', 'Ctrl+I'], + underline: ['Underline', 'Underline'], + strikethrough: ['Strikethrough', 'Strikethrough'], + subscript: ['Subscript', 'Subscript'], + superscript: ['Superscript', 'Superscript'], + removeformat: ['Clear formatting', 'RemoveFormat'] + }, function(item, name) { + editor.addMenuItem(name, { + text: item[0], + icon: name, + shortcut: item[2], + cmd: item[1] + }); + }); + + editor.on('mousedown', function() { + FloatPanel.hideAll(); + }); + + function toggleFormat(fmt) { + if (fmt.control) { + fmt = fmt.control.value(); + } + + if (fmt) { + editor.execCommand('mceToggleFormat', false, fmt); + } + } + + editor.addButton('styleselect', { + type: 'menubutton', + text: 'Formats', + menu: formatMenu + }); + + editor.addButton('formatselect', function() { + var items = [], blocks = createFormats(editor.settings.block_formats || + 'Paragraph=p;' + + 'Address=address;' + + 'Pre=pre;' + + 'Header 1=h1;' + + 'Header 2=h2;' + + 'Header 3=h3;' + + 'Header 4=h4;' + + 'Header 5=h5;' + + 'Header 6=h6' + ); + + each(blocks, function(block) { + items.push({ + text: block[0], + value: block[1], + textStyle: function() { + return getPreviewCss(block[1]); + } + }); + }); + + return { + type: 'listbox', + text: blocks[0][0], + values: items, + fixedWidth: true, + onselect: toggleFormat, + onPostRender: createListBoxChangeHandler(items) + }; + }); + + editor.addButton('fontselect', function() { + var defaultFontsFormats = + 'Andale Mono=andale mono,times;' + + 'Arial=arial,helvetica,sans-serif;' + + 'Arial Black=arial black,avant garde;' + + 'Book Antiqua=book antiqua,palatino;' + + 'Comic Sans MS=comic sans ms,sans-serif;' + + 'Courier New=courier new,courier;' + + 'Georgia=georgia,palatino;' + + 'Helvetica=helvetica;' + + 'Impact=impact,chicago;' + + 'Symbol=symbol;' + + 'Tahoma=tahoma,arial,helvetica,sans-serif;' + + 'Terminal=terminal,monaco;' + + 'Times New Roman=times new roman,times;' + + 'Trebuchet MS=trebuchet ms,geneva;' + + 'Verdana=verdana,geneva;' + + 'Webdings=webdings;' + + 'Wingdings=wingdings,zapf dingbats'; + + var items = [], fonts = createFormats(editor.settings.font_formats || defaultFontsFormats); + + each(fonts, function(font) { + items.push({ + text: {raw: font[0]}, + value: font[1], + textStyle: font[1].indexOf('dings') == -1 ? 'font-family:' + font[1] : '' + }); + }); + + return { + type: 'listbox', + text: 'Font Family', + tooltip: 'Font Family', + values: items, + fixedWidth: true, + onPostRender: createListBoxChangeHandler(items, 'fontname'), + onselect: function(e) { + if (e.control.settings.value) { + editor.execCommand('FontName', false, e.control.settings.value); + } + } + }; + }); + + editor.addButton('fontsizeselect', function() { + var items = [], defaultFontsizeFormats = '8pt 10pt 12pt 14pt 18pt 24pt 36pt'; + var fontsize_formats = editor.settings.fontsize_formats || defaultFontsizeFormats; + + each(fontsize_formats.split(' '), function(item) { + items.push({text: item, value: item}); + }); + + return { + type: 'listbox', + text: 'Font Sizes', + tooltip: 'Font Sizes', + values: items, + fixedWidth: true, + onPostRender: createListBoxChangeHandler(items, 'fontsize'), + onclick: function(e) { + if (e.control.settings.value) { + editor.execCommand('FontSize', false, e.control.settings.value); + } + } + }; + }); + + editor.addMenuItem('formats', { + text: 'Formats', + menu: formatMenu + }); + } +}); + +// Included from: js/tinymce/classes/ui/GridLayout.js + +/** + * GridLayout.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This layout manager places controls in a grid. + * + * @setting {Number} spacing Spacing between controls. + * @setting {Number} spacingH Horizontal spacing between controls. + * @setting {Number} spacingV Vertical spacing between controls. + * @setting {Number} columns Number of columns to use. + * @setting {String/Array} alignH start|end|center|stretch or array of values for each column. + * @setting {String/Array} alignV start|end|center|stretch or array of values for each column. + * @setting {String} pack start|end + * + * @class tinymce.ui.GridLayout + * @extends tinymce.ui.AbsoluteLayout + */ +define("tinymce/ui/GridLayout", [ + "tinymce/ui/AbsoluteLayout" +], function(AbsoluteLayout) { + "use strict"; + + return AbsoluteLayout.extend({ + /** + * Recalculates the positions of the controls in the specified container. + * + * @method recalc + * @param {tinymce.ui.Container} container Container instance to recalc. + */ + recalc: function(container) { + var settings = container.settings, rows, cols, items, contLayoutRect, width, height, rect, + ctrlLayoutRect, ctrl, x, y, posX, posY, ctrlSettings, contPaddingBox, align, spacingH, spacingV, alignH, alignV, maxX, maxY, + colWidths = [], rowHeights = [], ctrlMinWidth, ctrlMinHeight, availableWidth, availableHeight; + + // Get layout settings + settings = container.settings; + items = container.items().filter(':visible'); + contLayoutRect = container.layoutRect(); + cols = settings.columns || Math.ceil(Math.sqrt(items.length)); + rows = Math.ceil(items.length / cols); + spacingH = settings.spacingH || settings.spacing || 0; + spacingV = settings.spacingV || settings.spacing || 0; + alignH = settings.alignH || settings.align; + alignV = settings.alignV || settings.align; + contPaddingBox = container._paddingBox; + + if (alignH && typeof(alignH) == "string") { + alignH = [alignH]; + } + + if (alignV && typeof(alignV) == "string") { + alignV = [alignV]; + } + + // Zero padd columnWidths + for (x = 0; x < cols; x++) { + colWidths.push(0); + } + + // Zero padd rowHeights + for (y = 0; y < rows; y++) { + rowHeights.push(0); + } + + // Calculate columnWidths and rowHeights + for (y = 0; y < rows; y++) { + for (x = 0; x < cols; x++) { + ctrl = items[y * cols + x]; + + // Out of bounds + if (!ctrl) { + break; + } + + ctrlLayoutRect = ctrl.layoutRect(); + ctrlMinWidth = ctrlLayoutRect.minW; + ctrlMinHeight = ctrlLayoutRect.minH; + + colWidths[x] = ctrlMinWidth > colWidths[x] ? ctrlMinWidth : colWidths[x]; + rowHeights[y] = ctrlMinHeight > rowHeights[y] ? ctrlMinHeight : rowHeights[y]; + } + } + + // Calculate maxX + availableWidth = contLayoutRect.innerW - contPaddingBox.left - contPaddingBox.right; + for (maxX = 0, x = 0; x < cols; x++) { + maxX += colWidths[x] + (x > 0 ? spacingH : 0); + availableWidth -= (x > 0 ? spacingH : 0) + colWidths[x]; + } + + // Calculate maxY + availableHeight = contLayoutRect.innerH - contPaddingBox.top - contPaddingBox.bottom; + for (maxY = 0, y = 0; y < rows; y++) { + maxY += rowHeights[y] + (y > 0 ? spacingV : 0); + availableHeight -= (y > 0 ? spacingV : 0) + rowHeights[y]; + } + + maxX += contPaddingBox.left + contPaddingBox.right; + maxY += contPaddingBox.top + contPaddingBox.bottom; + + // Calculate minW/minH + rect = {}; + rect.minW = maxX + (contLayoutRect.w - contLayoutRect.innerW); + rect.minH = maxY + (contLayoutRect.h - contLayoutRect.innerH); + + rect.contentW = rect.minW - contLayoutRect.deltaW; + rect.contentH = rect.minH - contLayoutRect.deltaH; + rect.minW = Math.min(rect.minW, contLayoutRect.maxW); + rect.minH = Math.min(rect.minH, contLayoutRect.maxH); + rect.minW = Math.max(rect.minW, contLayoutRect.startMinWidth); + rect.minH = Math.max(rect.minH, contLayoutRect.startMinHeight); + + // Resize container container if minSize was changed + if (contLayoutRect.autoResize && (rect.minW != contLayoutRect.minW || rect.minH != contLayoutRect.minH)) { + rect.w = rect.minW; + rect.h = rect.minH; + + container.layoutRect(rect); + this.recalc(container); + + // Forced recalc for example if items are hidden/shown + if (container._lastRect === null) { + var parentCtrl = container.parent(); + if (parentCtrl) { + parentCtrl._lastRect = null; + parentCtrl.recalc(); + } + } + + return; + } + + // Update contentW/contentH so absEnd moves correctly + if (contLayoutRect.autoResize) { + rect = container.layoutRect(rect); + rect.contentW = rect.minW - contLayoutRect.deltaW; + rect.contentH = rect.minH - contLayoutRect.deltaH; + } + + var flexV; + + if (settings.packV == 'start') { + flexV = 0; + } else { + flexV = availableHeight > 0 ? Math.floor(availableHeight / rows) : 0; + } + + // Calculate totalFlex + var totalFlex = 0; + var flexWidths = settings.flexWidths; + if (flexWidths) { + for (x = 0; x < flexWidths.length; x++) { + totalFlex += flexWidths[x]; + } + } else { + totalFlex = cols; + } + + // Calculate new column widths based on flex values + var ratio = availableWidth / totalFlex; + for (x = 0; x < cols; x++) { + colWidths[x] += flexWidths ? flexWidths[x] * ratio : ratio; + } + + // Move/resize controls + posY = contPaddingBox.top; + for (y = 0; y < rows; y++) { + posX = contPaddingBox.left; + height = rowHeights[y] + flexV; + + for (x = 0; x < cols; x++) { + ctrl = items[y * cols + x]; + + // No more controls to render then break + if (!ctrl) { + break; + } + + // Get control settings and calculate x, y + ctrlSettings = ctrl.settings; + ctrlLayoutRect = ctrl.layoutRect(); + width = Math.max(colWidths[x], ctrlLayoutRect.startMinWidth); + ctrlLayoutRect.x = posX; + ctrlLayoutRect.y = posY; + + // Align control horizontal + align = ctrlSettings.alignH || (alignH ? (alignH[x] || alignH[0]) : null); + if (align == "center") { + ctrlLayoutRect.x = posX + (width / 2) - (ctrlLayoutRect.w / 2); + } else if (align == "right") { + ctrlLayoutRect.x = posX + width - ctrlLayoutRect.w; + } else if (align == "stretch") { + ctrlLayoutRect.w = width; + } + + // Align control vertical + align = ctrlSettings.alignV || (alignV ? (alignV[x] || alignV[0]) : null); + if (align == "center") { + ctrlLayoutRect.y = posY + (height / 2) - (ctrlLayoutRect.h / 2); + } else if (align == "bottom") { + ctrlLayoutRect.y = posY + height - ctrlLayoutRect.h; + } else if (align == "stretch") { + ctrlLayoutRect.h = height; + } + + ctrl.layoutRect(ctrlLayoutRect); + + posX += width + spacingH; + + if (ctrl.recalc) { + ctrl.recalc(); + } + } + + posY += height + spacingV; + } + } + }); +}); + +// Included from: js/tinymce/classes/ui/Iframe.js + +/** + * Iframe.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*jshint scripturl:true */ + +/** + * This class creates an iframe. + * + * @setting {String} url Url to open in the iframe. + * + * @-x-less Iframe.less + * @class tinymce.ui.Iframe + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/Iframe", [ + "tinymce/ui/Widget" +], function(Widget) { + "use strict"; + + return Widget.extend({ + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this; + + self.addClass('iframe'); + self.canFocus = false; + + return ( + '<iframe id="' + self._id + '" class="' + self.classes() + '" tabindex="-1" src="' + + (self.settings.url || "javascript:\'\'") + '" frameborder="0"></iframe>' + ); + }, + + /** + * Setter for the iframe source. + * + * @method src + * @param {String} src Source URL for iframe. + */ + src: function(src) { + this.getEl().src = src; + }, + + /** + * Inner HTML for the iframe. + * + * @method html + * @param {String} html HTML string to set as HTML inside the iframe. + * @param {function} callback Optional callback to execute when the iframe body is filled with contents. + * @return {tinymce.ui.Iframe} Current iframe control. + */ + html: function(html, callback) { + var self = this, body = this.getEl().contentWindow.document.body; + + // Wait for iframe to initialize IE 10 takes time + if (!body) { + setTimeout(function() { + self.html(html); + }, 0); + } else { + body.innerHTML = html; + + if (callback) { + callback(); + } + } + + return this; + } + }); +}); + +// Included from: js/tinymce/classes/ui/Label.js + +/** + * Label.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class creates a label element. A label is a simple text control + * that can be bound to other controls. + * + * @-x-less Label.less + * @class tinymce.ui.Label + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/Label", [ + "tinymce/ui/Widget", + "tinymce/ui/DomUtils" +], function(Widget, DomUtils) { + "use strict"; + + return Widget.extend({ + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @param {Boolean} multiline Multiline label. + */ + init: function(settings) { + var self = this; + + self._super(settings); + self.addClass('widget'); + self.addClass('label'); + self.canFocus = false; + + if (settings.multiline) { + self.addClass('autoscroll'); + } + + if (settings.strong) { + self.addClass('strong'); + } + }, + + /** + * Initializes the current controls layout rect. + * This will be executed by the layout managers to determine the + * default minWidth/minHeight etc. + * + * @method initLayoutRect + * @return {Object} Layout rect instance. + */ + initLayoutRect: function() { + var self = this, layoutRect = self._super(); + + if (self.settings.multiline) { + var size = DomUtils.getSize(self.getEl()); + + // Check if the text fits within maxW if not then try word wrapping it + if (size.width > layoutRect.maxW) { + layoutRect.minW = layoutRect.maxW; + self.addClass('multiline'); + } + + self.getEl().style.width = layoutRect.minW + 'px'; + layoutRect.startMinH = layoutRect.h = layoutRect.minH = Math.min(layoutRect.maxH, DomUtils.getSize(self.getEl()).height); + } + + return layoutRect; + }, + + /** + * Repaints the control after a layout operation. + * + * @method repaint + */ + repaint: function() { + var self = this; + + if (!self.settings.multiline) { + self.getEl().style.lineHeight = self.layoutRect().h + 'px'; + } + + return self._super(); + }, + + /** + * Sets/gets the current label text. + * + * @method text + * @param {String} [text] New label text. + * @return {String|tinymce.ui.Label} Current text or current label instance. + */ + text: function(text) { + var self = this; + + if (self._rendered && text) { + this.innerHtml(self.encode(text)); + } + + return self._super(text); + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, forId = self.settings.forId; + + return ( + '<label id="' + self._id + '" class="' + self.classes() + '"' + (forId ? ' for="' + forId + '"' : '') + '>' + + self.encode(self._text) + + '</label>' + ); + } + }); +}); + +// Included from: js/tinymce/classes/ui/Toolbar.js + +/** + * Toolbar.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new toolbar. + * + * @class tinymce.ui.Toolbar + * @extends tinymce.ui.Container + */ +define("tinymce/ui/Toolbar", [ + "tinymce/ui/Container" +], function(Container) { + "use strict"; + + return Container.extend({ + Defaults: { + role: 'toolbar', + layout: 'flow' + }, + + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + */ + init: function(settings) { + var self = this; + + self._super(settings); + self.addClass('toolbar'); + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this; + + self.items().addClass('toolbar-item'); + + return self._super(); + } + }); +}); + +// Included from: js/tinymce/classes/ui/MenuBar.js + +/** + * MenuBar.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new menubar. + * + * @-x-less MenuBar.less + * @class tinymce.ui.MenuBar + * @extends tinymce.ui.Container + */ +define("tinymce/ui/MenuBar", [ + "tinymce/ui/Toolbar" +], function(Toolbar) { + "use strict"; + + return Toolbar.extend({ + Defaults: { + role: 'menubar', + containerCls: 'menubar', + ariaRoot: true, + defaults: { + type: 'menubutton' + } + } + }); +}); + +// Included from: js/tinymce/classes/ui/MenuButton.js + +/** + * MenuButton.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new menu button. + * + * @-x-less MenuButton.less + * @class tinymce.ui.MenuButton + * @extends tinymce.ui.Button + */ +define("tinymce/ui/MenuButton", [ + "tinymce/ui/Button", + "tinymce/ui/Factory", + "tinymce/ui/MenuBar" +], function(Button, Factory, MenuBar) { + "use strict"; + + // TODO: Maybe add as some global function + function isChildOf(node, parent) { + while (node) { + if (parent === node) { + return true; + } + + node = node.parentNode; + } + + return false; + } + + var MenuButton = Button.extend({ + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + */ + init: function(settings) { + var self = this; + + self._renderOpen = true; + self._super(settings); + + self.addClass('menubtn'); + + if (settings.fixedWidth) { + self.addClass('fixed-width'); + } + + self.aria('haspopup', true); + self.hasPopup = true; + }, + + /** + * Shows the menu for the button. + * + * @method showMenu + */ + showMenu: function() { + var self = this, settings = self.settings, menu; + + if (self.menu && self.menu.visible()) { + return self.hideMenu(); + } + + if (!self.menu) { + menu = settings.menu || []; + + // Is menu array then auto constuct menu control + if (menu.length) { + menu = { + type: 'menu', + items: menu + }; + } else { + menu.type = menu.type || 'menu'; + } + + self.menu = Factory.create(menu).parent(self).renderTo(); + self.fire('createmenu'); + self.menu.reflow(); + self.menu.on('cancel', function(e) { + if (e.control.parent() === self.menu) { + e.stopPropagation(); + self.focus(); + self.hideMenu(); + } + }); + + // Move focus to button when a menu item is selected/clicked + self.menu.on('select', function() { + self.focus(); + }); + + self.menu.on('show hide', function(e) { + if (e.control == self.menu) { + self.activeMenu(e.type == 'show'); + } + + self.aria('expanded', e.type == 'show'); + }).fire('show'); + } + + self.menu.show(); + self.menu.layoutRect({w: self.layoutRect().w}); + self.menu.moveRel(self.getEl(), self.isRtl() ? ['br-tr', 'tr-br'] : ['bl-tl', 'tl-bl']); + }, + + /** + * Hides the menu for the button. + * + * @method hideMenu + */ + hideMenu: function() { + var self = this; + + if (self.menu) { + self.menu.items().each(function(item) { + if (item.hideMenu) { + item.hideMenu(); + } + }); + + self.menu.hide(); + } + }, + + /** + * Sets the active menu state. + * + * @private + */ + activeMenu: function(state) { + this.toggleClass('active', state); + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, id = self._id, prefix = self.classPrefix; + var icon = self.settings.icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : ''; + + self.aria('role', self.parent() instanceof MenuBar ? 'menuitem' : 'button'); + + return ( + '<div id="' + id + '" class="' + self.classes() + '" tabindex="-1" aria-labelledby="' + id + '">' + + '<button id="' + id + '-open" role="presentation" type="button" tabindex="-1">' + + (icon ? '<i class="' + icon + '"></i>' : '') + + '<span>' + (self._text ? (icon ? '\u00a0' : '') + self.encode(self._text) : '') + '</span>' + + ' <i class="' + prefix + 'caret"></i>' + + '</button>' + + '</div>' + ); + }, + + /** + * Gets invoked after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this; + + self.on('click', function(e) { + if (e.control === self && isChildOf(e.target, self.getEl())) { + self.showMenu(); + + if (e.aria) { + self.menu.items()[0].focus(); + } + } + }); + + self.on('mouseenter', function(e) { + var overCtrl = e.control, parent = self.parent(), hasVisibleSiblingMenu; + + if (overCtrl && parent && overCtrl instanceof MenuButton && overCtrl.parent() == parent) { + parent.items().filter('MenuButton').each(function(ctrl) { + if (ctrl.hideMenu && ctrl != overCtrl) { + if (ctrl.menu && ctrl.menu.visible()) { + hasVisibleSiblingMenu = true; + } + + ctrl.hideMenu(); + } + }); + + if (hasVisibleSiblingMenu) { + overCtrl.focus(); // Fix for: #5887 + overCtrl.showMenu(); + } + } + }); + + return self._super(); + }, + + /** + * Sets/gets the current button text. + * + * @method text + * @param {String} [text] New button text. + * @return {String|tinymce.ui.MenuButton} Current text or current MenuButton instance. + */ + text: function(text) { + var self = this, i, children; + + if (self._rendered) { + children = self.getEl('open').getElementsByTagName('span'); + for (i = 0; i < children.length; i++) { + children[i].innerHTML = (self.settings.icon && text ? '\u00a0' : '') + self.encode(text); + } + } + + return this._super(text); + }, + + /** + * Removes the control and it's menus. + * + * @method remove + */ + remove: function() { + this._super(); + + if (this.menu) { + this.menu.remove(); + } + } + }); + + return MenuButton; +}); + +// Included from: js/tinymce/classes/ui/ListBox.js + +/** + * ListBox.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new list box control. + * + * @-x-less ListBox.less + * @class tinymce.ui.ListBox + * @extends tinymce.ui.MenuButton + */ +define("tinymce/ui/ListBox", [ + "tinymce/ui/MenuButton" +], function(MenuButton) { + "use strict"; + + return MenuButton.extend({ + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {Array} values Array with values to add to list box. + */ + init: function(settings) { + var self = this, values, i, selected, selectedText, lastItemCtrl; + + self._values = values = settings.values; + if (values) { + for (i = 0; i < values.length; i++) { + selected = values[i].selected || settings.value === values[i].value; + + if (selected) { + selectedText = selectedText || values[i].text; + self._value = values[i].value; + break; + } + } + + // Default with first item + if (!selected && values.length > 0) { + selectedText = values[0].text; + self._value = values[0].value; + } + + settings.menu = values; + } + + settings.text = settings.text || selectedText || values[0].text; + + self._super(settings); + self.addClass('listbox'); + + self.on('select', function(e) { + var ctrl = e.control; + + if (lastItemCtrl) { + e.lastControl = lastItemCtrl; + } + + if (settings.multiple) { + ctrl.active(!ctrl.active()); + } else { + self.value(e.control.settings.value); + } + + lastItemCtrl = ctrl; + }); + }, + + /** + * Getter/setter function for the control value. + * + * @method value + * @param {String} [value] Value to be set. + * @return {Boolean/tinymce.ui.ListBox} Value or self if it's a set operation. + */ + value: function(value) { + var self = this, active, selectedText, menu, i; + + function activateByValue(menu, value) { + menu.items().each(function(ctrl) { + active = ctrl.value() === value; + + if (active) { + selectedText = selectedText || ctrl.text(); + } + + ctrl.active(active); + + if (ctrl.menu) { + activateByValue(ctrl.menu, value); + } + }); + } + + if (typeof(value) != "undefined") { + if (self.menu) { + activateByValue(self.menu, value); + } else { + menu = self.settings.menu; + for (i = 0; i < menu.length; i++) { + active = menu[i].value == value; + + if (active) { + selectedText = selectedText || menu[i].text; + } + + menu[i].active = active; + } + } + + self.text(selectedText || this.settings.text); + } + + return self._super(value); + } + }); +}); + +// Included from: js/tinymce/classes/ui/MenuItem.js + +/** + * MenuItem.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new menu item. + * + * @-x-less MenuItem.less + * @class tinymce.ui.MenuItem + * @extends tinymce.ui.Control + */ +define("tinymce/ui/MenuItem", [ + "tinymce/ui/Widget", + "tinymce/ui/Factory", + "tinymce/Env" +], function(Widget, Factory, Env) { + "use strict"; + + return Widget.extend({ + Defaults: { + border: 0, + role: 'menuitem' + }, + + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {Boolean} selectable Selectable menu. + * @setting {Array} menu Submenu array with items. + * @setting {String} shortcut Shortcut to display for menu item. Example: Ctrl+X + */ + init: function(settings) { + var self = this; + + self.hasPopup = true; + + self._super(settings); + + settings = self.settings; + + self.addClass('menu-item'); + + if (settings.menu) { + self.addClass('menu-item-expand'); + } + + if (settings.preview) { + self.addClass('menu-item-preview'); + } + + if (self._text === '-' || self._text === '|') { + self.addClass('menu-item-sep'); + self.aria('role', 'separator'); + self._text = '-'; + } + + if (settings.selectable) { + self.aria('role', 'menuitemcheckbox'); + self.addClass('menu-item-checkbox'); + settings.icon = 'selected'; + } + + if (!settings.preview && !settings.selectable) { + self.addClass('menu-item-normal'); + } + + self.on('mousedown', function(e) { + e.preventDefault(); + }); + + if (settings.menu) { + self.aria('haspopup', true); + } + }, + + /** + * Returns true/false if the menuitem has sub menu. + * + * @method hasMenus + * @return {Boolean} True/false state if it has submenu. + */ + hasMenus: function() { + return !!this.settings.menu; + }, + + /** + * Shows the menu for the menu item. + * + * @method showMenu + */ + showMenu: function() { + var self = this, settings = self.settings, menu, parent = self.parent(); + + parent.items().each(function(ctrl) { + if (ctrl !== self) { + ctrl.hideMenu(); + } + }); + + if (settings.menu) { + menu = self.menu; + + if (!menu) { + menu = settings.menu; + + // Is menu array then auto constuct menu control + if (menu.length) { + menu = { + type: 'menu', + items: menu + }; + } else { + menu.type = menu.type || 'menu'; + } + + if (parent.settings.itemDefaults) { + menu.itemDefaults = parent.settings.itemDefaults; + } + + menu = self.menu = Factory.create(menu).parent(self).renderTo(); + menu.reflow(); + menu.fire('show'); + menu.on('cancel', function(e) { + e.stopPropagation(); + self.focus(); + menu.hide(); + }); + + menu.on('hide', function(e) { + if (e.control === menu) { + self.removeClass('selected'); + } + }); + + menu.submenu = true; + } else { + menu.show(); + } + + menu._parentMenu = parent; + + menu.addClass('menu-sub'); + + var rel = menu.testMoveRel( + self.getEl(), + self.isRtl() ? ['tl-tr', 'bl-br', 'tr-tl', 'br-bl'] : ['tr-tl', 'br-bl', 'tl-tr', 'bl-br'] + ); + + menu.moveRel(self.getEl(), rel); + menu.rel = rel; + + rel = 'menu-sub-' + rel; + menu.removeClass(menu._lastRel); + menu.addClass(rel); + menu._lastRel = rel; + + self.addClass('selected'); + self.aria('expanded', true); + } + }, + + /** + * Hides the menu for the menu item. + * + * @method hideMenu + */ + hideMenu: function() { + var self = this; + + if (self.menu) { + self.menu.items().each(function(item) { + if (item.hideMenu) { + item.hideMenu(); + } + }); + + self.menu.hide(); + self.aria('expanded', false); + } + + return self; + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, id = self._id, settings = self.settings, prefix = self.classPrefix, text = self.encode(self._text); + var icon = self.settings.icon, image = '', shortcut = settings.shortcut; + + if (icon) { + self.parent().addClass('menu-has-icons'); + } + + if (settings.image) { + icon = 'none'; + image = ' style="background-image: url(\'' + settings.image + '\')"'; + } + + if (shortcut && Env.mac) { + // format shortcut for Mac + shortcut = shortcut.replace(/ctrl\+alt\+/i, '⌥⌘'); // ctrl+cmd + shortcut = shortcut.replace(/ctrl\+/i, '⌘'); // ctrl symbol + shortcut = shortcut.replace(/alt\+/i, '⌥'); // cmd symbol + shortcut = shortcut.replace(/shift\+/i, '⇧'); // shift symbol + } + + icon = prefix + 'ico ' + prefix + 'i-' + (self.settings.icon || 'none'); + + return ( + '<div id="' + id + '" class="' + self.classes() + '" tabindex="-1">' + + (text !== '-' ? '<i class="' + icon + '"' + image + '></i> ' : '') + + (text !== '-' ? '<span id="' + id + '-text" class="' + prefix + 'text">' + text + '</span>' : '') + + (shortcut ? '<div id="' + id + '-shortcut" class="' + prefix + 'menu-shortcut">' + shortcut + '</div>' : '') + + (settings.menu ? '<div class="' + prefix + 'caret"></div>' : '') + + '</div>' + ); + }, + + /** + * Gets invoked after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this, settings = self.settings; + + var textStyle = settings.textStyle; + if (typeof(textStyle) == "function") { + textStyle = textStyle.call(this); + } + + if (textStyle) { + var textElm = self.getEl('text'); + if (textElm) { + textElm.setAttribute('style', textStyle); + } + } + + self.on('mouseenter click', function(e) { + if (e.control === self) { + if (!settings.menu && e.type === 'click') { + self.fire('select'); + self.parent().hideAll(); + } else { + self.showMenu(); + + if (e.aria) { + self.menu.focus(true); + } + } + } + }); + + self._super(); + + return self; + }, + + active: function(state) { + if (typeof(state) != "undefined") { + this.aria('checked', state); + } + + return this._super(state); + }, + + /** + * Removes the control and it's menus. + * + * @method remove + */ + remove: function() { + this._super(); + + if (this.menu) { + this.menu.remove(); + } + } + }); +}); + +// Included from: js/tinymce/classes/ui/Menu.js + +/** + * Menu.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new menu. + * + * @-x-less Menu.less + * @class tinymce.ui.Menu + * @extends tinymce.ui.FloatPanel + */ +define("tinymce/ui/Menu", [ + "tinymce/ui/FloatPanel", + "tinymce/ui/MenuItem", + "tinymce/util/Tools" +], function(FloatPanel, MenuItem, Tools) { + "use strict"; + + var Menu = FloatPanel.extend({ + Defaults: { + defaultType: 'menuitem', + border: 1, + layout: 'stack', + role: 'application', + bodyRole: 'menu', + ariaRoot: true + }, + + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + */ + init: function(settings) { + var self = this; + + settings.autohide = true; + settings.constrainToViewport = true; + + if (settings.itemDefaults) { + var items = settings.items, i = items.length; + + while (i--) { + items[i] = Tools.extend({}, settings.itemDefaults, items[i]); + } + } + + self._super(settings); + self.addClass('menu'); + }, + + /** + * Repaints the control after a layout operation. + * + * @method repaint + */ + repaint: function() { + this.toggleClass('menu-align', true); + + this._super(); + + this.getEl().style.height = ''; + this.getEl('body').style.height = ''; + + return this; + }, + + /** + * Hides/closes the menu. + * + * @method cancel + */ + cancel: function() { + var self = this; + + self.hideAll(); + self.fire('select'); + }, + + /** + * Hide menu and all sub menus. + * + * @method hideAll + */ + hideAll: function() { + var self = this; + + this.find('menuitem').exec('hideMenu'); + + return self._super(); + }, +/* + getContainerElm: function() { + var doc = document, id = this.classPrefix + 'menucontainer'; + + var elm = doc.getElementById(id); + if (!elm) { + elm = doc.createElement('div'); + elm.id = id; + elm.setAttribute('role', 'application'); + elm.className = this.classPrefix + '-reset'; + elm.style.position = 'absolute'; + elm.style.top = elm.style.left = '0'; + elm.style.overflow = 'visible'; + doc.body.appendChild(elm); + } + + return elm; + }, +*/ + /** + * Invoked before the menu is rendered. + * + * @method preRender + */ + preRender: function() { + var self = this; + + self.items().each(function(ctrl) { + var settings = ctrl.settings; + + if (settings.icon || settings.selectable) { + self._hasIcons = true; + return false; + } + }); + + return self._super(); + } + }); + + return Menu; +}); + +// Included from: js/tinymce/classes/ui/Radio.js + +/** + * Radio.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new radio button. + * + * @-x-less Radio.less + * @class tinymce.ui.Radio + * @extends tinymce.ui.Checkbox + */ +define("tinymce/ui/Radio", [ + "tinymce/ui/Checkbox" +], function(Checkbox) { + "use strict"; + + return Checkbox.extend({ + Defaults: { + classes: "radio", + role: "radio" + } + }); +}); + +// Included from: js/tinymce/classes/ui/ResizeHandle.js + +/** + * ResizeHandle.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Renders a resize handle that fires ResizeStart, Resize and ResizeEnd events. + * + * @-x-less ResizeHandle.less + * @class tinymce.ui.ResizeHandle + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/ResizeHandle", [ + "tinymce/ui/Widget", + "tinymce/ui/DragHelper" +], function(Widget, DragHelper) { + "use strict"; + + return Widget.extend({ + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, prefix = self.classPrefix; + + self.addClass('resizehandle'); + + if (self.settings.direction == "both") { + self.addClass('resizehandle-both'); + } + + self.canFocus = false; + + return ( + '<div id="' + self._id + '" class="' + self.classes() + '">' + + '<i class="' + prefix + 'ico ' + prefix + 'i-resize"></i>' + + '</div>' + ); + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this; + + self._super(); + + self.resizeDragHelper = new DragHelper(this._id, { + start: function() { + self.fire('ResizeStart'); + }, + + drag: function(e) { + if (self.settings.direction != "both") { + e.deltaX = 0; + } + + self.fire('Resize', e); + }, + + stop: function() { + self.fire('ResizeEnd'); + } + }); + }, + + remove: function() { + if (this.resizeDragHelper) { + this.resizeDragHelper.destroy(); + } + + return this._super(); + } + }); +}); + +// Included from: js/tinymce/classes/ui/Spacer.js + +/** + * Spacer.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a spacer. This control is used in flex layouts for example. + * + * @-x-less Spacer.less + * @class tinymce.ui.Spacer + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/Spacer", [ + "tinymce/ui/Widget" +], function(Widget) { + "use strict"; + + return Widget.extend({ + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this; + + self.addClass('spacer'); + self.canFocus = false; + + return '<div id="' + self._id + '" class="' + self.classes() + '"></div>'; + } + }); +}); + +// Included from: js/tinymce/classes/ui/SplitButton.js + +/** + * SplitButton.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a split button. + * + * @-x-less SplitButton.less + * @class tinymce.ui.SplitButton + * @extends tinymce.ui.Button + */ +define("tinymce/ui/SplitButton", [ + "tinymce/ui/MenuButton", + "tinymce/ui/DomUtils" +], function(MenuButton, DomUtils) { + return MenuButton.extend({ + Defaults: { + classes: "widget btn splitbtn", + role: "button" + }, + + /** + * Repaints the control after a layout operation. + * + * @method repaint + */ + repaint: function() { + var self = this, elm = self.getEl(), rect = self.layoutRect(), mainButtonElm, menuButtonElm; + + self._super(); + + mainButtonElm = elm.firstChild; + menuButtonElm = elm.lastChild; + + DomUtils.css(mainButtonElm, { + width: rect.w - DomUtils.getSize(menuButtonElm).width, + height: rect.h - 2 + }); + + DomUtils.css(menuButtonElm, { + height: rect.h - 2 + }); + + return self; + }, + + /** + * Sets the active menu state. + * + * @private + */ + activeMenu: function(state) { + var self = this; + + DomUtils.toggleClass(self.getEl().lastChild, self.classPrefix + 'active', state); + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, id = self._id, prefix = self.classPrefix; + var icon = self.settings.icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : ''; + + return ( + '<div id="' + id + '" class="' + self.classes() + '" role="button" tabindex="-1">' + + '<button type="button" hidefocus tabindex="-1">' + + (icon ? '<i class="' + icon + '"></i>' : '') + + (self._text ? (icon ? ' ' : '') + self._text : '') + + '</button>' + + '<button type="button" class="' + prefix + 'open" hidefocus tabindex="-1">' + + //(icon ? '<i class="' + icon + '"></i>' : '') + + (self._menuBtnText ? (icon ? '\u00a0' : '') + self._menuBtnText : '') + + ' <i class="' + prefix + 'caret"></i>' + + '</button>' + + '</div>' + ); + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this, onClickHandler = self.settings.onclick; + + self.on('click', function(e) { + var node = e.target; + + if (e.control == this) { + // Find clicks that is on the main button + while (node) { + if ((e.aria && e.aria.key != 'down') || (node.nodeName == 'BUTTON' && node.className.indexOf('open') == -1)) { + e.stopImmediatePropagation(); + onClickHandler.call(this, e); + return; + } + + node = node.parentNode; + } + } + }); + + delete self.settings.onclick; + + return self._super(); + } + }); +}); + +// Included from: js/tinymce/classes/ui/StackLayout.js + +/** + * StackLayout.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This layout uses the browsers layout when the items are blocks. + * + * @-x-less StackLayout.less + * @class tinymce.ui.StackLayout + * @extends tinymce.ui.FlowLayout + */ +define("tinymce/ui/StackLayout", [ + "tinymce/ui/FlowLayout" +], function(FlowLayout) { + "use strict"; + + return FlowLayout.extend({ + Defaults: { + containerClass: 'stack-layout', + controlClass: 'stack-layout-item', + endClass : 'break' + } + }); +}); + +// Included from: js/tinymce/classes/ui/TabPanel.js + +/** + * TabPanel.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a tab panel control. + * + * @-x-less TabPanel.less + * @class tinymce.ui.TabPanel + * @extends tinymce.ui.Panel + * + * @setting {Number} activeTab Active tab index. + */ +define("tinymce/ui/TabPanel", [ + "tinymce/ui/Panel", + "tinymce/ui/DomUtils" +], function(Panel, DomUtils) { + "use strict"; + + return Panel.extend({ + lastIdx: 0, + + Defaults: { + layout: 'absolute', + defaults: { + type: 'panel' + } + }, + + /** + * Activates the specified tab by index. + * + * @method activateTab + * @param {Number} idx Index of the tab to activate. + */ + activateTab: function(idx) { + var activeTabElm; + + if (this.activeTabId) { + activeTabElm = this.getEl(this.activeTabId); + DomUtils.removeClass(activeTabElm, this.classPrefix + 'active'); + activeTabElm.setAttribute('aria-selected', "false"); + } + + this.activeTabId = 't' + idx; + + activeTabElm = this.getEl('t' + idx); + activeTabElm.setAttribute('aria-selected', "true"); + DomUtils.addClass(activeTabElm, this.classPrefix + 'active'); + + if (idx != this.lastIdx) { + this.items()[this.lastIdx].hide(); + this.lastIdx = idx; + } + + this.items()[idx].show().fire('showtab'); + this.reflow(); + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, layout = self._layout, tabsHtml = '', prefix = self.classPrefix; + + self.preRender(); + layout.preRender(self); + + self.items().each(function(ctrl, i) { + var id = self._id + '-t' + i; + + ctrl.aria('role', 'tabpanel'); + ctrl.aria('labelledby', id); + + tabsHtml += ( + '<div id="' + id + '" class="' + prefix + 'tab" ' + + 'unselectable="on" role="tab" aria-controls="' + ctrl._id + '" aria-selected="false" tabIndex="-1">' + + self.encode(ctrl.settings.title) + + '</div>' + ); + }); + + return ( + '<div id="' + self._id + '" class="' + self.classes() + '" hideFocus="1" tabIndex="-1">' + + '<div id="' + self._id + '-head" class="' + prefix + 'tabs" role="tablist">' + + tabsHtml + + '</div>' + + '<div id="' + self._id + '-body" class="' + self.classes('body') + '">' + + layout.renderHtml(self) + + '</div>' + + '</div>' + ); + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this; + + self._super(); + + self.settings.activeTab = self.settings.activeTab || 0; + self.activateTab(self.settings.activeTab); + + this.on('click', function(e) { + var targetParent = e.target.parentNode; + + if (e.target.parentNode.id == self._id + '-head') { + var i = targetParent.childNodes.length; + + while (i--) { + if (targetParent.childNodes[i] == e.target) { + self.activateTab(i); + } + } + } + }); + }, + + /** + * Initializes the current controls layout rect. + * This will be executed by the layout managers to determine the + * default minWidth/minHeight etc. + * + * @method initLayoutRect + * @return {Object} Layout rect instance. + */ + initLayoutRect: function() { + var self = this, rect, minW, minH; + + minW = DomUtils.getSize(self.getEl('head')).width; + minW = minW < 0 ? 0 : minW; + minH = 0; + self.items().each(function(item, i) { + minW = Math.max(minW, item.layoutRect().minW); + minH = Math.max(minH, item.layoutRect().minH); + if (self.settings.activeTab != i) { + item.hide(); + } + }); + + self.items().each(function(ctrl) { + ctrl.settings.x = 0; + ctrl.settings.y = 0; + ctrl.settings.w = minW; + ctrl.settings.h = minH; + + ctrl.layoutRect({ + x: 0, + y: 0, + w: minW, + h: minH + }); + }); + + var headH = DomUtils.getSize(self.getEl('head')).height; + + self.settings.minWidth = minW; + self.settings.minHeight = minH + headH; + + rect = self._super(); + rect.deltaH += headH; + rect.innerH = rect.h - rect.deltaH; + + return rect; + } + }); +}); + +// Included from: js/tinymce/classes/ui/TextBox.js + +/** + * TextBox.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new textbox. + * + * @-x-less TextBox.less + * @class tinymce.ui.TextBox + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/TextBox", [ + "tinymce/ui/Widget", + "tinymce/ui/DomUtils" +], function(Widget, DomUtils) { + "use strict"; + + return Widget.extend({ + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {Boolean} multiline True if the textbox is a multiline control. + * @setting {Number} maxLength Max length for the textbox. + * @setting {Number} size Size of the textbox in characters. + */ + init: function(settings) { + var self = this; + + self._super(settings); + + self._value = settings.value || ''; + self.addClass('textbox'); + + if (settings.multiline) { + self.addClass('multiline'); + } else { + // TODO: Rework this + self.on('keydown', function(e) { + if (e.keyCode == 13) { + self.parents().reverse().each(function(ctrl) { + e.preventDefault(); + + if (ctrl.hasEventListeners('submit') && ctrl.toJSON) { + ctrl.fire('submit', {data: ctrl.toJSON()}); + return false; + } + }); + } + }); + } + }, + + /** + * Getter/setter function for the disabled state. + * + * @method value + * @param {Boolean} [state] State to be set. + * @return {Boolean|tinymce.ui.ComboBox} True/false or self if it's a set operation. + */ + disabled: function(state) { + var self = this; + + if (self._rendered && typeof(state) != 'undefined') { + self.getEl().disabled = state; + } + + return self._super(state); + }, + + /** + * Getter/setter function for the control value. + * + * @method value + * @param {String} [value] Value to be set. + * @return {String|tinymce.ui.ComboBox} Value or self if it's a set operation. + */ + value: function(value) { + var self = this; + + if (typeof(value) != "undefined") { + self._value = value; + + if (self._rendered) { + self.getEl().value = value; + } + + return self; + } + + if (self._rendered) { + return self.getEl().value; + } + + return self._value; + }, + + /** + * Repaints the control after a layout operation. + * + * @method repaint + */ + repaint: function() { + var self = this, style, rect, borderBox, borderW = 0, borderH = 0, lastRepaintRect; + + style = self.getEl().style; + rect = self._layoutRect; + lastRepaintRect = self._lastRepaintRect || {}; + + // Detect old IE 7+8 add lineHeight to align caret vertically in the middle + var doc = document; + if (!self.settings.multiline && doc.all && (!doc.documentMode || doc.documentMode <= 8)) { + style.lineHeight = (rect.h - borderH) + 'px'; + } + + borderBox = self._borderBox; + borderW = borderBox.left + borderBox.right + 8; + borderH = borderBox.top + borderBox.bottom + (self.settings.multiline ? 8 : 0); + + if (rect.x !== lastRepaintRect.x) { + style.left = rect.x + 'px'; + lastRepaintRect.x = rect.x; + } + + if (rect.y !== lastRepaintRect.y) { + style.top = rect.y + 'px'; + lastRepaintRect.y = rect.y; + } + + if (rect.w !== lastRepaintRect.w) { + style.width = (rect.w - borderW) + 'px'; + lastRepaintRect.w = rect.w; + } + + if (rect.h !== lastRepaintRect.h) { + style.height = (rect.h - borderH) + 'px'; + lastRepaintRect.h = rect.h; + } + + self._lastRepaintRect = lastRepaintRect; + self.fire('repaint', {}, false); + + return self; + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this, id = self._id, settings = self.settings, value = self.encode(self._value, false), extraAttrs = ''; + + if ("spellcheck" in settings) { + extraAttrs += ' spellcheck="' + settings.spellcheck + '"'; + } + + if (settings.maxLength) { + extraAttrs += ' maxlength="' + settings.maxLength + '"'; + } + + if (settings.size) { + extraAttrs += ' size="' + settings.size + '"'; + } + + if (settings.subtype) { + extraAttrs += ' type="' + settings.subtype + '"'; + } + + if (self.disabled()) { + extraAttrs += ' disabled="disabled"'; + } + + if (settings.multiline) { + return ( + '<textarea id="' + id + '" class="' + self.classes() + '" ' + + (settings.rows ? ' rows="' + settings.rows + '"' : '') + + ' hidefocus="true"' + extraAttrs + '>' + value + + '</textarea>' + ); + } + + return '<input id="' + id + '" class="' + self.classes() + '" value="' + value + '" hidefocus="true"' + extraAttrs + '>'; + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this; + + DomUtils.on(self.getEl(), 'change', function(e) { + self.fire('change', e); + }); + + return self._super(); + }, + + remove: function() { + DomUtils.off(this.getEl()); + this._super(); + } + }); +}); + +// Included from: js/tinymce/classes/ui/Throbber.js + +/** + * Throbber.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class enables you to display a Throbber for any element. + * + * @-x-less Throbber.less + * @class tinymce.ui.Throbber + */ +define("tinymce/ui/Throbber", [ + "tinymce/ui/DomUtils" +], function(DomUtils) { + "use strict"; + + /** + * Constructs a new throbber. + * + * @constructor + * @param {Element} elm DOM Html element to display throbber in. + */ + return function(elm) { + var self = this, state; + + /** + * Shows the throbber. + * + * @method show + * @param {Number} [time] Time to wait before showing. + * @return {tinymce.ui.Throbber} Current throbber instance. + */ + self.show = function(time) { + self.hide(); + + state = true; + + window.setTimeout(function() { + if (state) { + elm.appendChild(DomUtils.createFragment('<div class="mce-throbber"></div>')); + } + }, time || 0); + + return self; + }; + + /** + * Hides the throbber. + * + * @method hide + * @return {tinymce.ui.Throbber} Current throbber instance. + */ + self.hide = function() { + var child = elm.lastChild; + + if (child && child.className.indexOf('throbber') != -1) { + child.parentNode.removeChild(child); + } + + state = false; + + return self; + }; + }; +}); + +expose(["tinymce/dom/EventUtils","tinymce/dom/Sizzle","tinymce/dom/DomQuery","tinymce/html/Styles","tinymce/dom/TreeWalker","tinymce/util/Tools","tinymce/dom/Range","tinymce/html/Entities","tinymce/Env","tinymce/dom/StyleSheetLoader","tinymce/dom/DOMUtils","tinymce/dom/ScriptLoader","tinymce/AddOnManager","tinymce/html/Node","tinymce/html/Schema","tinymce/html/SaxParser","tinymce/html/DomParser","tinymce/html/Writer","tinymce/html/Serializer","tinymce/dom/Serializer","tinymce/dom/TridentSelection","tinymce/util/VK","tinymce/dom/ControlSelection","tinymce/dom/RangeUtils","tinymce/dom/Selection","tinymce/Formatter","tinymce/UndoManager","tinymce/EnterKey","tinymce/ForceBlocks","tinymce/EditorCommands","tinymce/util/URI","tinymce/util/Class","tinymce/ui/Selector","tinymce/ui/Collection","tinymce/ui/DomUtils","tinymce/ui/Control","tinymce/ui/Factory","tinymce/ui/KeyboardNavigation","tinymce/ui/Container","tinymce/ui/DragHelper","tinymce/ui/Scrollable","tinymce/ui/Panel","tinymce/ui/Movable","tinymce/ui/Resizable","tinymce/ui/FloatPanel","tinymce/ui/Window","tinymce/ui/MessageBox","tinymce/WindowManager","tinymce/util/Quirks","tinymce/util/Observable","tinymce/Shortcuts","tinymce/Editor","tinymce/util/I18n","tinymce/FocusManager","tinymce/EditorManager","tinymce/LegacyInput","tinymce/util/XHR","tinymce/util/JSON","tinymce/util/JSONRequest","tinymce/util/JSONP","tinymce/util/LocalStorage","tinymce/Compat","tinymce/ui/Layout","tinymce/ui/AbsoluteLayout","tinymce/ui/Tooltip","tinymce/ui/Widget","tinymce/ui/Button","tinymce/ui/ButtonGroup","tinymce/ui/Checkbox","tinymce/ui/PanelButton","tinymce/ui/ColorButton","tinymce/ui/ComboBox","tinymce/ui/Path","tinymce/ui/ElementPath","tinymce/ui/FormItem","tinymce/ui/Form","tinymce/ui/FieldSet","tinymce/ui/FilePicker","tinymce/ui/FitLayout","tinymce/ui/FlexLayout","tinymce/ui/FlowLayout","tinymce/ui/FormatControls","tinymce/ui/GridLayout","tinymce/ui/Iframe","tinymce/ui/Label","tinymce/ui/Toolbar","tinymce/ui/MenuBar","tinymce/ui/MenuButton","tinymce/ui/ListBox","tinymce/ui/MenuItem","tinymce/ui/Menu","tinymce/ui/Radio","tinymce/ui/ResizeHandle","tinymce/ui/Spacer","tinymce/ui/SplitButton","tinymce/ui/StackLayout","tinymce/ui/TabPanel","tinymce/ui/TextBox","tinymce/ui/Throbber"]); +})(this); \ No newline at end of file diff --git a/common/static/js/vendor/tinymce/js/tinymce/tinymce.min.js b/common/static/js/vendor/tinymce/js/tinymce/tinymce.min.js new file mode 100644 index 00000000000..7ae33541171 --- /dev/null +++ b/common/static/js/vendor/tinymce/js/tinymce/tinymce.min.js @@ -0,0 +1,10 @@ +// 4.0.20 (2014-03-18) +!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i<e.length;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){for(var r=0;r<n.length;r++){for(var i=e,o=n[r],a=o.split(/[.\/]/),l=0;l<a.length-1;++l)i[a[l]]===t&&(i[a[l]]={}),i=i[a[l]];i[a[a.length-1]]=s[o]}}var s={},l="tinymce/dom/EventUtils",c="tinymce/dom/Sizzle",u="tinymce/dom/DomQuery",d="tinymce/html/Styles",f="tinymce/dom/TreeWalker",p="tinymce/util/Tools",m="tinymce/dom/Range",h="tinymce/html/Entities",g="tinymce/Env",v="tinymce/dom/StyleSheetLoader",y="tinymce/dom/DOMUtils",b="tinymce/dom/ScriptLoader",C="tinymce/AddOnManager",x="tinymce/html/Node",w="tinymce/html/Schema",_="tinymce/html/SaxParser",N="tinymce/html/DomParser",E="tinymce/html/Writer",S="tinymce/html/Serializer",k="tinymce/dom/Serializer",T="tinymce/dom/TridentSelection",R="tinymce/util/VK",A="tinymce/dom/ControlSelection",B="tinymce/dom/RangeUtils",L="tinymce/dom/Selection",D="tinymce/Formatter",M="tinymce/UndoManager",H="tinymce/EnterKey",P="tinymce/ForceBlocks",O="tinymce/EditorCommands",I="tinymce/util/URI",F="tinymce/util/Class",z="tinymce/ui/Selector",W="tinymce/ui/Collection",V="tinymce/ui/DomUtils",U="tinymce/ui/Control",q="tinymce/ui/Factory",$="tinymce/ui/KeyboardNavigation",j="tinymce/ui/Container",K="tinymce/ui/DragHelper",Y="tinymce/ui/Scrollable",G="tinymce/ui/Panel",X="tinymce/ui/Movable",J="tinymce/ui/Resizable",Q="tinymce/ui/FloatPanel",Z="tinymce/ui/Window",et="tinymce/ui/MessageBox",tt="tinymce/WindowManager",nt="tinymce/util/Quirks",rt="tinymce/util/Observable",it="tinymce/Shortcuts",ot="tinymce/Editor",at="tinymce/util/I18n",st="tinymce/FocusManager",lt="tinymce/EditorManager",ct="tinymce/LegacyInput",ut="tinymce/util/XHR",dt="tinymce/util/JSON",ft="tinymce/util/JSONRequest",pt="tinymce/util/JSONP",mt="tinymce/util/LocalStorage",ht="tinymce/Compat",gt="tinymce/ui/Layout",vt="tinymce/ui/AbsoluteLayout",yt="tinymce/ui/Tooltip",bt="tinymce/ui/Widget",Ct="tinymce/ui/Button",xt="tinymce/ui/ButtonGroup",wt="tinymce/ui/Checkbox",_t="tinymce/ui/PanelButton",Nt="tinymce/ui/ColorButton",Et="tinymce/ui/ComboBox",St="tinymce/ui/Path",kt="tinymce/ui/ElementPath",Tt="tinymce/ui/FormItem",Rt="tinymce/ui/Form",At="tinymce/ui/FieldSet",Bt="tinymce/ui/FilePicker",Lt="tinymce/ui/FitLayout",Dt="tinymce/ui/FlexLayout",Mt="tinymce/ui/FlowLayout",Ht="tinymce/ui/FormatControls",Pt="tinymce/ui/GridLayout",Ot="tinymce/ui/Iframe",It="tinymce/ui/Label",Ft="tinymce/ui/Toolbar",zt="tinymce/ui/MenuBar",Wt="tinymce/ui/MenuButton",Vt="tinymce/ui/ListBox",Ut="tinymce/ui/MenuItem",qt="tinymce/ui/Menu",$t="tinymce/ui/Radio",jt="tinymce/ui/ResizeHandle",Kt="tinymce/ui/Spacer",Yt="tinymce/ui/SplitButton",Gt="tinymce/ui/StackLayout",Xt="tinymce/ui/TabPanel",Jt="tinymce/ui/TextBox",Qt="tinymce/ui/Throbber";r(l,[],function(){function e(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r||!1):e.attachEvent&&e.attachEvent("on"+t,n)}function t(e,t,n,r){e.removeEventListener?e.removeEventListener(t,n,r||!1):e.detachEvent&&e.detachEvent("on"+t,n)}function n(e,t){function n(){return!1}function r(){return!0}var i,o=t||{},l;for(i in e)s[i]||(o[i]=e[i]);if(o.target||(o.target=o.srcElement||document),e&&a.test(e.type)&&e.pageX===l&&e.clientX!==l){var c=o.target.ownerDocument||document,u=c.documentElement,d=c.body;o.pageX=e.clientX+(u&&u.scrollLeft||d&&d.scrollLeft||0)-(u&&u.clientLeft||d&&d.clientLeft||0),o.pageY=e.clientY+(u&&u.scrollTop||d&&d.scrollTop||0)-(u&&u.clientTop||d&&d.clientTop||0)}return o.preventDefault=function(){o.isDefaultPrevented=r,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},o.stopPropagation=function(){o.isPropagationStopped=r,e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)},o.stopImmediatePropagation=function(){o.isImmediatePropagationStopped=r,o.stopPropagation()},o.isDefaultPrevented||(o.isDefaultPrevented=n,o.isPropagationStopped=n,o.isImmediatePropagationStopped=n),o}function r(n,r,i){function o(){i.domLoaded||(i.domLoaded=!0,r(c))}function a(){("complete"===l.readyState||"interactive"===l.readyState&&l.body)&&(t(l,"readystatechange",a),o())}function s(){try{l.documentElement.doScroll("left")}catch(e){return void setTimeout(s,0)}o()}var l=n.document,c={type:"ready"};return i.domLoaded?void r(c):(l.addEventListener?"complete"===l.readyState?o():e(n,"DOMContentLoaded",o):(e(l,"readystatechange",a),l.documentElement.doScroll&&n.self===n.top&&s()),void e(n,"load",o))}function i(){function i(e,t){var n,r,i,o,a=s[t];if(n=a&&a[e.type])for(r=0,i=n.length;i>r;r++)if(o=n[r],o&&o.func.call(o.scope,e)===!1&&e.preventDefault(),e.isImmediatePropagationStopped())return}var a=this,s={},l,c,u,d,f;c=o+(+new Date).toString(32),d="onmouseenter"in document.documentElement,u="onfocusin"in document.documentElement,f={mouseenter:"mouseover",mouseleave:"mouseout"},l=1,a.domLoaded=!1,a.events=s,a.bind=function(t,o,p,m){function h(e){i(n(e||_.event),g)}var g,v,y,b,C,x,w,_=window;if(t&&3!==t.nodeType&&8!==t.nodeType){for(t[c]?g=t[c]:(g=l++,t[c]=g,s[g]={}),m=m||t,o=o.split(" "),y=o.length;y--;)b=o[y],x=h,C=w=!1,"DOMContentLoaded"===b&&(b="ready"),a.domLoaded&&"ready"===b&&"complete"==t.readyState?p.call(m,n({type:b})):(d||(C=f[b],C&&(x=function(e){var t,r;if(t=e.currentTarget,r=e.relatedTarget,r&&t.contains)r=t.contains(r);else for(;r&&r!==t;)r=r.parentNode;r||(e=n(e||_.event),e.type="mouseout"===e.type?"mouseleave":"mouseenter",e.target=t,i(e,g))})),u||"focusin"!==b&&"focusout"!==b||(w=!0,C="focusin"===b?"focus":"blur",x=function(e){e=n(e||_.event),e.type="focus"===e.type?"focusin":"focusout",i(e,g)}),v=s[g][b],v?"ready"===b&&a.domLoaded?p({type:b}):v.push({func:p,scope:m}):(s[g][b]=v=[{func:p,scope:m}],v.fakeName=C,v.capture=w,v.nativeHandler=x,"ready"===b?r(t,x,a):e(t,C||b,x,w)));return t=v=0,p}},a.unbind=function(e,n,r){var i,o,l,u,d,f;if(!e||3===e.nodeType||8===e.nodeType)return a;if(i=e[c]){if(f=s[i],n){for(n=n.split(" "),l=n.length;l--;)if(d=n[l],o=f[d]){if(r)for(u=o.length;u--;)if(o[u].func===r){var p=o.nativeHandler,m=o.fakeName,h=o.capture;o=o.slice(0,u).concat(o.slice(u+1)),o.nativeHandler=p,o.fakeName=m,o.capture=h,f[d]=o}r&&0!==o.length||(delete f[d],t(e,o.fakeName||d,o.nativeHandler,o.capture))}}else{for(d in f)o=f[d],t(e,o.fakeName||d,o.nativeHandler,o.capture);f={}}for(d in f)return a;delete s[i];try{delete e[c]}catch(g){e[c]=null}}return a},a.fire=function(e,t,r){var o;if(!e||3===e.nodeType||8===e.nodeType)return a;r=n(null,r),r.type=t,r.target=e;do o=e[c],o&&i(r,o),e=e.parentNode||e.ownerDocument||e.defaultView||e.parentWindow;while(e&&!r.isPropagationStopped());return a},a.clean=function(e){var t,n,r=a.unbind;if(!e||3===e.nodeType||8===e.nodeType)return a;if(e[c]&&r(e),e.getElementsByTagName||(e=e.document),e&&e.getElementsByTagName)for(r(e),n=e.getElementsByTagName("*"),t=n.length;t--;)e=n[t],e[c]&&r(e);return a},a.destroy=function(){s={}},a.cancel=function(e){return e&&(e.preventDefault(),e.stopImmediatePropagation()),!1}}var o="mce-data-",a=/^(?:mouse|contextmenu)|click/,s={keyLocation:1,layerX:1,layerY:1,returnValue:1};return i.Event=new i,i.Event.bind(window,"ready",function(){}),i}),r(c,[],function(){function e(e){return ht.test(e+"")}function n(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>_.cacheLength&&delete e[t.shift()],e[n]=r,r}}function r(e){return e[I]=!0,e}function i(e){var t=B.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t=null}}function o(e,t,n,r){var i,o,a,s,l,c,f,p,m,h;if((t?t.ownerDocument||t:F)!==B&&A(t),t=t||B,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(D&&!r){if(i=gt.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&O(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return Z.apply(n,t.getElementsByTagName(e)),n;if((a=i[3])&&z.getElementsByClassName&&t.getElementsByClassName)return Z.apply(n,t.getElementsByClassName(a)),n}if(z.qsa&&!M.test(e)){if(f=!0,p=I,m=t,h=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(c=u(e),(f=t.getAttribute("id"))?p=f.replace(bt,"\\$&"):t.setAttribute("id",p),p="[id='"+p+"'] ",l=c.length;l--;)c[l]=p+d(c[l]);m=mt.test(e)&&t.parentNode||t,h=c.join(",")}if(h)try{return Z.apply(n,m.querySelectorAll(h)),n}catch(g){}finally{f||t.removeAttribute("id")}}}return b(e.replace(lt,"$1"),t,n,r)}function a(e,t){var n=t&&e,r=n&&(~t.sourceIndex||G)-(~e.sourceIndex||G);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function u(e,t){var n,r,i,a,s,l,c,u=q[e+" "];if(u)return t?0:u.slice(0);for(s=e,l=[],c=_.preFilter;s;){(!n||(r=ct.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=ut.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(lt," ")}),s=s.slice(n.length));for(a in _.filter)!(r=pt[a].exec(s))||c[a]&&!(r=c[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?o.error(e):q(e,l).slice(0)}function d(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function f(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=V++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,l,c,u=W+" "+o;if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i)if(c=t[I]||(t[I]={}),(l=c[r])&&l[0]===u){if((s=l[1])===!0||s===w)return s===!0}else if(l=c[r]=[u],l[1]=e(t,n,a)||w,l[1]===!0)return!0}}function p(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function m(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,c=null!=t;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),c&&t.push(s));return a}function h(e,t,n,i,o,a){return i&&!i[I]&&(i=h(i)),o&&!o[I]&&(o=h(o,a)),r(function(r,a,s,l){var c,u,d,f=[],p=[],h=a.length,g=r||y(t||"*",s.nodeType?[s]:s,[]),v=!e||!r&&t?g:m(g,f,e,s,l),b=n?o||(r?e:h||i)?[]:a:v;if(n&&n(v,b,s,l),i)for(c=m(b,p),i(c,[],s,l),u=c.length;u--;)(d=c[u])&&(b[p[u]]=!(v[p[u]]=d));if(r){if(o||e){if(o){for(c=[],u=b.length;u--;)(d=b[u])&&c.push(v[u]=d);o(null,b=[],c,l)}for(u=b.length;u--;)(d=b[u])&&(c=o?tt.call(r,d):f[u])>-1&&(r[c]=!(a[c]=d))}}else b=m(b===a?b.splice(h,b.length):b),o?o(null,a,b,l):Z.apply(a,b)})}function g(e){for(var t,n,r,i=e.length,o=_.relative[e[0].type],a=o||_.relative[" "],s=o?1:0,l=f(function(e){return e===t},a,!0),c=f(function(e){return tt.call(t,e)>-1},a,!0),u=[function(e,n,r){return!o&&(r||n!==k)||((t=n).nodeType?l(e,n,r):c(e,n,r))}];i>s;s++)if(n=_.relative[e[s].type])u=[f(p(u),n)];else{if(n=_.filter[e[s].type].apply(null,e[s].matches),n[I]){for(r=++s;i>r&&!_.relative[e[r].type];r++);return h(s>1&&p(u),s>1&&d(e.slice(0,s-1)).replace(lt,"$1"),n,r>s&&g(e.slice(s,r)),i>r&&g(e=e.slice(r)),i>r&&d(e))}u.push(n)}return p(u)}function v(e,t){var n=0,i=t.length>0,a=e.length>0,s=function(r,s,l,c,u){var d,f,p,h=[],g=0,v="0",y=r&&[],b=null!=u,C=k,x=r||a&&_.find.TAG("*",u&&s.parentNode||s),N=W+=null==C?1:Math.random()||.1;for(b&&(k=s!==B&&s,w=n);null!=(d=x[v]);v++){if(a&&d){for(f=0;p=e[f++];)if(p(d,s,l)){c.push(d);break}b&&(W=N,w=++n)}i&&((d=!p&&d)&&g--,r&&y.push(d))}if(g+=v,i&&v!==g){for(f=0;p=t[f++];)p(y,h,s,l);if(r){if(g>0)for(;v--;)y[v]||h[v]||(h[v]=J.call(c));h=m(h)}Z.apply(c,h),b&&!r&&h.length>0&&g+t.length>1&&o.uniqueSort(c)}return b&&(W=N,k=C),y};return i?r(s):s}function y(e,t,n){for(var r=0,i=t.length;i>r;r++)o(e,t[r],n);return n}function b(e,t,n,r){var i,o,a,s,l,c=u(e);if(!r&&1===c.length){if(o=c[0]=c[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&9===t.nodeType&&D&&_.relative[o[1].type]){if(t=(_.find.ID(a.matches[0].replace(xt,wt),t)||[])[0],!t)return n;e=e.slice(o.shift().value.length)}for(i=pt.needsContext.test(e)?0:o.length;i--&&(a=o[i],!_.relative[s=a.type]);)if((l=_.find[s])&&(r=l(a.matches[0].replace(xt,wt),mt.test(o[0].type)&&t.parentNode||t))){if(o.splice(i,1),e=r.length&&d(o),!e)return Z.apply(n,r),n;break}}return S(e,c)(r,t,!D,n,mt.test(e)),n}function C(){}var x,w,_,N,E,S,k,T,R,A,B,L,D,M,H,P,O,I="sizzle"+-new Date,F=window.document,z={},W=0,V=0,U=n(),q=n(),$=n(),j=!1,K=function(){return 0},Y=typeof t,G=1<<31,X=[],J=X.pop,Q=X.push,Z=X.push,et=X.slice,tt=X.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},nt="[\\x20\\t\\r\\n\\f]",rt="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",it=rt.replace("w","w#"),ot="([*^$|!~]?=)",at="\\["+nt+"*("+rt+")"+nt+"*(?:"+ot+nt+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+it+")|)|)"+nt+"*\\]",st=":("+rt+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+at.replace(3,8)+")*)|.*)\\)|)",lt=new RegExp("^"+nt+"+|((?:^|[^\\\\])(?:\\\\.)*)"+nt+"+$","g"),ct=new RegExp("^"+nt+"*,"+nt+"*"),ut=new RegExp("^"+nt+"*([\\x20\\t\\r\\n\\f>+~])"+nt+"*"),dt=new RegExp(st),ft=new RegExp("^"+it+"$"),pt={ID:new RegExp("^#("+rt+")"),CLASS:new RegExp("^\\.("+rt+")"),NAME:new RegExp("^\\[name=['\"]?("+rt+")['\"]?\\]"),TAG:new RegExp("^("+rt.replace("w","w*")+")"),ATTR:new RegExp("^"+at),PSEUDO:new RegExp("^"+st),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+nt+"*(even|odd|(([+-]|)(\\d*)n|)"+nt+"*(?:([+-]|)"+nt+"*(\\d+)|))"+nt+"*\\)|)","i"),needsContext:new RegExp("^"+nt+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+nt+"*((?:-\\d)?\\d*)"+nt+"*\\)|)(?=[^-]|$)","i")},mt=/[\x20\t\r\n\f]*[+~]/,ht=/^[^{]+\{\s*\[native code/,gt=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,vt=/^(?:input|select|textarea|button)$/i,yt=/^h\d$/i,bt=/'|\\/g,Ct=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,xt=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,wt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320)};try{Z.apply(X=et.call(F.childNodes),F.childNodes),X[F.childNodes.length].nodeType}catch(_t){Z={apply:X.length?function(e,t){Q.apply(e,et.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}E=o.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},A=o.setDocument=function(n){var r=n?n.ownerDocument||n:F;return r!==B&&9===r.nodeType&&r.documentElement?(B=r,L=r.documentElement,D=!E(r),z.getElementsByTagName=i(function(e){return e.appendChild(r.createComment("")),!e.getElementsByTagName("*").length}),z.attributes=i(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),z.getElementsByClassName=i(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),z.getByName=i(function(e){e.id=I+0,e.appendChild(B.createElement("a")).setAttribute("name",I),e.appendChild(B.createElement("i")).setAttribute("name",I),L.appendChild(e);var t=r.getElementsByName&&r.getElementsByName(I).length===2+r.getElementsByName(I+0).length;return L.removeChild(e),t}),z.sortDetached=i(function(e){return e.compareDocumentPosition&&1&e.compareDocumentPosition(B.createElement("div"))}),_.attrHandle=i(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==Y&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},z.getByName?(_.find.ID=function(e,t){if(typeof t.getElementById!==Y&&D){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},_.filter.ID=function(e){var t=e.replace(xt,wt);return function(e){return e.getAttribute("id")===t}}):(_.find.ID=function(e,n){if(typeof n.getElementById!==Y&&D){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==Y&&r.getAttributeNode("id").value===e?[r]:t:[]}},_.filter.ID=function(e){var t=e.replace(xt,wt);return function(e){var n=typeof e.getAttributeNode!==Y&&e.getAttributeNode("id");return n&&n.value===t}}),_.find.TAG=z.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==Y?t.getElementsByTagName(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},_.find.NAME=z.getByName&&function(e,t){return typeof t.getElementsByName!==Y?t.getElementsByName(name):void 0},_.find.CLASS=z.getElementsByClassName&&function(e,t){return typeof t.getElementsByClassName!==Y&&D?t.getElementsByClassName(e):void 0},H=[],M=[":focus"],(z.qsa=e(r.querySelectorAll))&&(i(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||M.push("\\["+nt+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||M.push(":checked")}),i(function(e){e.innerHTML="<input type='hidden' i=''/>",e.querySelectorAll("[i^='']").length&&M.push("[*^$]="+nt+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length||M.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),M.push(",.*:")})),(z.matchesSelector=e(P=L.matchesSelector||L.mozMatchesSelector||L.webkitMatchesSelector||L.oMatchesSelector||L.msMatchesSelector))&&i(function(e){z.disconnectedMatch=P.call(e,"div"),P.call(e,"[s!='']:x"),H.push("!=",st)}),M=new RegExp(M.join("|")),H=H.length&&new RegExp(H.join("|")),O=e(L.contains)||L.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},K=L.compareDocumentPosition?function(e,t){if(e===t)return j=!0,0;var n=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return n?1&n||T&&t.compareDocumentPosition(e)===n?e===r||O(F,e)?-1:t===r||O(F,t)?1:R?tt.call(R,e)-tt.call(R,t):0:4&n?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var n,i=0,o=e.parentNode,s=t.parentNode,l=[e],c=[t];if(e===t)return j=!0,0;if(!o||!s)return e===r?-1:t===r?1:o?-1:s?1:0;if(o===s)return a(e,t);for(n=e;n=n.parentNode;)l.unshift(n);for(n=t;n=n.parentNode;)c.unshift(n);for(;l[i]===c[i];)i++;return i?a(l[i],c[i]):l[i]===F?-1:c[i]===F?1:0},B):B},o.matches=function(e,t){return o(e,null,null,t)},o.matchesSelector=function(e,t){if((e.ownerDocument||e)!==B&&A(e),t=t.replace(Ct,"='$1']"),z.matchesSelector&&D&&(!H||!H.test(t))&&!M.test(t))try{var n=P.call(e,t);if(n||z.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return o(t,B,null,[e]).length>0},o.contains=function(e,t){return(e.ownerDocument||e)!==B&&A(e),O(e,t)},o.attr=function(e,t){var n;return(e.ownerDocument||e)!==B&&A(e),D&&(t=t.toLowerCase()),(n=_.attrHandle[t])?n(e):!D||z.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},o.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},o.uniqueSort=function(e){var t,n=[],r=0,i=0;if(j=!z.detectDuplicates,T=!z.sortDetached,R=!z.sortStable&&e.slice(0),e.sort(K),j){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return e},N=o.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=N(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=N(t);return n},_=o.selectors={cacheLength:50,createPseudo:r,match:pt,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(xt,wt),e[3]=(e[4]||e[5]||"").replace(xt,wt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||o.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&o.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return pt.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&dt.test(n)&&(t=u(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(xt,wt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=U[e+" "];return t||(t=new RegExp("(^|"+nt+")"+e+"("+nt+"|$)"))&&U(e,function(e){return t.test(e.className||typeof e.getAttribute!==Y&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=o.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var c,u,d,f,p,m,h=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!l&&!s;if(g){if(o){for(;h;){for(d=t;d=d[h];)if(s?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;m=h="only"===e&&!m&&"nextSibling"}return!0}if(m=[a?g.firstChild:g.lastChild],a&&y){for(u=g[I]||(g[I]={}),c=u[e]||[],p=c[0]===W&&c[1],f=c[0]===W&&c[2],d=p&&g.childNodes[p];d=++p&&d&&d[h]||(f=p=0)||m.pop();)if(1===d.nodeType&&++f&&d===t){u[e]=[W,p,f];break}}else if(y&&(c=(t[I]||(t[I]={}))[e])&&c[0]===W)f=c[1];else for(;(d=++p&&d&&d[h]||(f=p=0)||m.pop())&&((s?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++f||(y&&((d[I]||(d[I]={}))[e]=[W,f]),d!==t)););return f-=i,f===r||f%r===0&&f/r>=0}}},PSEUDO:function(e,t){var n,i=_.pseudos[e]||_.setFilters[e.toLowerCase()]||o.error("unsupported pseudo: "+e);return i[I]?i(t):i.length>1?(n=[e,e,"",t],_.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,n){for(var r,o=i(e,t),a=o.length;a--;)r=tt.call(e,o[a]),e[r]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:r(function(e){var t=[],n=[],i=S(e.replace(lt,"$1"));return i[I]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),!n.pop()}}),has:r(function(e){return function(t){return o(e,t).length>0}}),contains:r(function(e){return function(t){return(t.textContent||t.innerText||N(t)).indexOf(e)>-1}}),lang:r(function(e){return ft.test(e||"")||o.error("unsupported lang: "+e),e=e.replace(xt,wt).toLowerCase(),function(t){var n;do if(n=D?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(e){var t=window.location&&window.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===L},focus:function(e){return e===B.activeElement&&(!B.hasFocus||B.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!_.pseudos.empty(e)},header:function(e){return yt.test(e.nodeName)},input:function(e){return vt.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:c(function(){return[0]}),last:c(function(e,t){return[t-1]}),eq:c(function(e,t,n){return[0>n?n+t:n]}),even:c(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:c(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:c(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:c(function(e,t,n){for(var r=0>n?n+t:n;++r<t;)e.push(r);return e})}};for(x in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})_.pseudos[x]=s(x);for(x in{submit:!0,reset:!0})_.pseudos[x]=l(x);return S=o.compile=function(e,t){var n,r=[],i=[],o=$[e+" "];if(!o){for(t||(t=u(e)),n=t.length;n--;)o=g(t[n]),o[I]?r.push(o):i.push(o);o=$(e,v(i,r))}return o},_.pseudos.nth=_.pseudos.eq,C.prototype=_.filters=_.pseudos,_.setFilters=new C,z.sortStable=I.split("").sort(K).join("")===I,A(),[0,0].sort(K),z.detectDuplicates=j,o}),r(u,[l,c],function(e,n){function r(e){return"undefined"!=typeof e}function i(e){return"string"==typeof e}function o(e){var t,n,r;for(r=v.createElement("div"),t=v.createDocumentFragment(),r.innerHTML=e;n=r.firstChild;)t.appendChild(n);return t}function a(e,t,n){var r;if("string"==typeof t)t=o(t);else if(t.length){for(r=0;r<t.length;r++)a(e,t[r],n);return e}for(r=e.length;r--;)n.call(e[r],t.parentNode?t:t);return e}function s(e,t){return e&&t&&-1!==(" "+e.className+" ").indexOf(" "+t+" ")}function l(e,t){var n;for(e=e||[],"string"==typeof e&&(e=e.split(" ")),t=t||{},n=e.length;n--;)t[e[n]]={};return t}function c(e,t){return new c.fn.init(e,t)}function u(e){var t=arguments,n,r,i;for(r=1;r<t.length;r++){n=t[r];for(i in n)e[i]=n[i]}return e}function d(e){var t=[],n,r;for(n=0,r=e.length;r>n;n++)t[n]=e[n];return t}function f(e,t){var n;if(t.indexOf)return t.indexOf(e);for(n=t.length;n--;)if(t[n]===e)return n;return-1}function p(e){return null===e||e===t?"":(""+e).replace(N,"")}function m(e,t){var n,r,i,o,a;if(e)if(n=e.length,n===o){for(r in e)if(e.hasOwnProperty(r)&&(a=e[r],t.call(a,a,r)===!1))break}else for(i=0;n>i&&(a=e[i],t.call(a,a,r)!==!1);i++);return e}function h(e,n,r){for(var i=[],o=e[n];o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!c(o).is(r));)1===o.nodeType&&i.push(o),o=o[n];return i}function g(e,t,n,r){for(var i=[];e;e=e[n])r&&e.nodeType!==r||e===t||i.push(e);return i}var v=document,y=Array.prototype.push,b=Array.prototype.slice,C=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,x=e.Event,w=l("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"),_=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},N=/^\s*|\s*$/g;return c.fn=c.prototype={constructor:c,selector:"",length:0,init:function(e,t){var n=this,r,a;if(!e)return n;if(e.nodeType)return n.context=n[0]=e,n.length=1,n;if(i(e)){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:C.exec(e),!r)return c(t||document).find(e);if(r[1])for(a=o(e).firstChild;a;)this.add(a),a=a.nextSibling;else{if(a=v.getElementById(r[2]),a.id!==r[2])return n.find(e);n.length=1,n[0]=a}}else this.add(e);return n},toArray:function(){return d(this)},add:function(e){var t=this;return _(e)?y.apply(t,e):e instanceof c?t.add(e.toArray()):y.call(t,e),t},attr:function(e,n){var i=this;if("object"==typeof e)m(e,function(e,t){i.attr(t,e)});else{if(!r(n))return i[0]&&1===i[0].nodeType?i[0].getAttribute(e):t;this.each(function(){1===this.nodeType&&this.setAttribute(e,n)})}return i},css:function(e,n){var i=this;if("object"==typeof e)m(e,function(e,t){i.css(t,e)});else{if(e=e.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),!r(n))return i[0]?i[0].style[e]:t;"number"!=typeof n||w[e]||(n+="px"),i.each(function(){var t=this.style;"opacity"===e&&this.runtimeStyle&&"undefined"==typeof this.runtimeStyle.opacity&&(t.filter=""===n?"":"alpha(opacity="+100*n+")");try{t[e]=n}catch(r){}})}return i},remove:function(){for(var e=this,t,n=this.length;n--;)t=e[n],x.clean(t),t.parentNode&&t.parentNode.removeChild(t);return this},empty:function(){for(var e=this,t,n=this.length;n--;)for(t=e[n];t.firstChild;)t.removeChild(t.firstChild);return this},html:function(e){var t=this,n;if(r(e)){for(n=t.length;n--;)t[n].innerHTML=e;return t}return t[0]?t[0].innerHTML:""},text:function(e){var t=this,n;if(r(e)){for(n=t.length;n--;)t[n].innerText=t[0].textContent=e;return t}return t[0]?t[0].innerText||t[0].textContent:""},append:function(){return a(this,arguments,function(e){1===this.nodeType&&this.appendChild(e)})},prepend:function(){return a(this,arguments,function(e){1===this.nodeType&&this.insertBefore(e,this.firstChild)})},before:function(){var e=this;return e[0]&&e[0].parentNode?a(e,arguments,function(e){this.parentNode.insertBefore(e,this.nextSibling)}):e},after:function(){var e=this;return e[0]&&e[0].parentNode?a(e,arguments,function(e){this.parentNode.insertBefore(e,this)}):e},appendTo:function(e){return c(e).append(this),this},addClass:function(e){return this.toggleClass(e,!0)},removeClass:function(e){return this.toggleClass(e,!1)},toggleClass:function(e,t){var n=this;return-1!==e.indexOf(" ")?m(e.split(" "),function(){n.toggleClass(this,t)}):n.each(function(n){var r;s(n,e)!==t&&(r=n.className,t?n.className+=r?" "+e:e:n.className=p((" "+r+" ").replace(" "+e+" "," ")))}),n},hasClass:function(e){return s(this[0],e)},each:function(e){return m(this,e)},on:function(e,t){return this.each(function(){x.bind(this,e,t)})},off:function(e,t){return this.each(function(){x.unbind(this,e,t)})},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},slice:function(){return new c(b.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},replaceWith:function(e){var t=this;return t[0]&&t[0].parentNode.replaceChild(c(e)[0],t[0]),t},wrap:function(e){return e=c(e)[0],this.each(function(){var t=this,n=e.cloneNode(!1);t.parentNode.insertBefore(n,t),n.appendChild(t)})},unwrap:function(){return this.each(function(){for(var e=this,t=e.firstChild,n;t;)n=t,t=t.nextSibling,e.parentNode.insertBefore(n,e)})},clone:function(){var e=[];return this.each(function(){e.push(this.cloneNode(!0))}),c(e)},find:function(e){var t,n,r=[];for(t=0,n=this.length;n>t;t++)c.find(e,this[t],r);return c(r)},push:y,sort:[].sort,splice:[].splice},u(c,{extend:u,toArray:d,inArray:f,isArray:_,each:m,trim:p,makeMap:l,find:n,expr:n.selectors,unique:n.uniqueSort,text:n.getText,isXMLDoc:n.isXML,contains:n.contains,filter:function(e,t,n){return n&&(e=":not("+e+")"),t=1===t.length?c.find.matchesSelector(t[0],e)?[t[0]]:[]:c.find.matches(e,t)}}),m({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t){return h(e,"parentNode",t)},next:function(e){return g(e,"nextSibling",1)},prev:function(e){return g(e,"previousSibling",1)},nextNodes:function(e){return g(e,"nextSibling")},prevNodes:function(e){return g(e,"previousSibling")},children:function(e){return g(e.firstChild,"nextSibling",1)},contents:function(e){return d(("iframe"===e.nodeName?e.contentDocument||e.contentWindow.document:e).childNodes)}},function(e,t){c.fn[e]=function(n){var r=this,i;if(r.length>1)throw new Error("DomQuery only supports traverse functions on a single node.");return r[0]&&(i=t(r[0],n)),i=c(i),n&&"parentsUntil"!==e?i.filter(n):i}}),c.fn.filter=function(e){return c.filter(e)},c.fn.is=function(e){return!!e&&this.filter(e).length>0},c.fn.init.prototype=c.fn,c}),r(d,[],function(){return function(e,t){function n(e,t,n,r){function i(e){return e=parseInt(e,10).toString(16),e.length>1?e:"0"+e}return"#"+i(t)+i(n)+i(r)}var r=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,i=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,o=/\s*([^:]+):\s*([^;]+);?/g,a=/\s+$/,s,l,c={},u,d="\ufeff"; +for(e=e||{},u=("\\\" \\' \\; \\: ; : "+d).split(" "),l=0;l<u.length;l++)c[u[l]]=d+l,c[d+l]=u[l];return{toHex:function(e){return e.replace(r,n)},parse:function(t){function s(e,t,n){var r,i,o,a;if(r=h[e+"-top"+t],r&&(i=h[e+"-right"+t],i&&(o=h[e+"-bottom"+t],o&&(a=h[e+"-left"+t])))){var s=[r,i,o,a];for(l=s.length-1;l--&&s[l]===s[l+1];);l>-1&&n||(h[e+t]=-1==l?s[0]:s.join(" "),delete h[e+"-top"+t],delete h[e+"-right"+t],delete h[e+"-bottom"+t],delete h[e+"-left"+t])}}function u(e){var t=h[e],n;if(t){for(t=t.split(" "),n=t.length;n--;)if(t[n]!==t[0])return!1;return h[e]=t[0],!0}}function d(e,t,n,r){u(t)&&u(n)&&u(r)&&(h[e]=h[t]+" "+h[n]+" "+h[r],delete h[t],delete h[n],delete h[r])}function f(e){return b=!0,c[e]}function p(e,t){return b&&(e=e.replace(/\uFEFF[0-9]/g,function(e){return c[e]})),t||(e=e.replace(/\\([\'\";:])/g,"$1")),e}function m(t,n,r,i,o,a){return(o=o||a)?(o=p(o),"'"+o.replace(/\'/g,"\\'")+"'"):(n=p(n||r||i),!e.allow_script_urls&&/(java|vb)script:/i.test(n.replace(/[\s\r\n]+/,""))?"":(C&&(n=C.call(x,n,"style")),"url('"+n.replace(/\'/g,"\\'")+"')"))}var h={},g,v,y,b,C=e.url_converter,x=e.url_converter_scope||this;if(t){for(t=t.replace(/[\u0000-\u001F]/g,""),t=t.replace(/\\[\"\';:\uFEFF]/g,f).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(e){return e.replace(/[;:]/g,f)});g=o.exec(t);){if(v=g[1].replace(a,"").toLowerCase(),y=g[2].replace(a,""),v&&y.length>0){if(!e.allow_script_urls&&("behavior"==v||/expression\s*\(/.test(y)))continue;"font-weight"===v&&"700"===y?y="bold":("color"===v||"background-color"===v)&&(y=y.toLowerCase()),y=y.replace(r,n),y=y.replace(i,m),h[v]=b?p(y,!0):y}o.lastIndex=g.index+g[0].length}s("border","",!0),s("border","-width"),s("border","-color"),s("border","-style"),s("padding",""),s("margin",""),d("border","border-width","border-style","border-color"),"medium none"===h.border&&delete h.border,"none"===h["border-image"]&&delete h["border-image"]}return h},serialize:function(e,n){function r(n){var r,o,a,l;if(r=t.styles[n])for(o=0,a=r.length;a>o;o++)n=r[o],l=e[n],l!==s&&l.length>0&&(i+=(i.length>0?" ":"")+n+": "+l+";")}var i="",o,a;if(n&&t&&t.styles)r("*"),r(n);else for(o in e)a=e[o],a!==s&&a.length>0&&(i+=(i.length>0?" ":"")+o+": "+a+";");return i}}}}),r(f,[],function(){return function(e,t){function n(e,n,r,i){var o,a;if(e){if(!i&&e[n])return e[n];if(e!=t){if(o=e[r])return o;for(a=e.parentNode;a&&a!=t;a=a.parentNode)if(o=a[r])return o}}}var r=e;this.current=function(){return r},this.next=function(e){return r=n(r,"firstChild","nextSibling",e)},this.prev=function(e){return r=n(r,"lastChild","previousSibling",e)}}}),r(p,[],function(){function e(e){return null===e||e===t?"":(""+e).replace(h,"")}function n(e,n){return n?"array"==n&&g(e)?!0:typeof e==n:e!==t}function r(e){var t=[],n,r;for(n=0,r=e.length;r>n;n++)t[n]=e[n];return t}function i(e,t,n){var r;for(e=e||[],t=t||",","string"==typeof e&&(e=e.split(t)),n=n||{},r=e.length;r--;)n[e[r]]={};return n}function o(e,n,r){var i,o;if(!e)return 0;if(r=r||e,e.length!==t){for(i=0,o=e.length;o>i;i++)if(n.call(r,e[i],i,e)===!1)return 0}else for(i in e)if(e.hasOwnProperty(i)&&n.call(r,e[i],i,e)===!1)return 0;return 1}function a(e,t){var n=[];return o(e,function(e){n.push(t(e))}),n}function s(e,t){var n=[];return o(e,function(e){(!t||t(e))&&n.push(e)}),n}function l(e,t,n){var r=this,i,o,a,s,l,c=0;if(e=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(e),a=e[3].match(/(^|\.)(\w+)$/i)[2],o=r.createNS(e[3].replace(/\.\w+$/,""),n),!o[a]){if("static"==e[2])return o[a]=t,void(this.onCreate&&this.onCreate(e[2],e[3],o[a]));t[a]||(t[a]=function(){},c=1),o[a]=t[a],r.extend(o[a].prototype,t),e[5]&&(i=r.resolve(e[5]).prototype,s=e[5].match(/\.(\w+)$/i)[1],l=o[a],o[a]=c?function(){return i[s].apply(this,arguments)}:function(){return this.parent=i[s],l.apply(this,arguments)},o[a].prototype[a]=o[a],r.each(i,function(e,t){o[a].prototype[t]=i[t]}),r.each(t,function(e,t){i[t]?o[a].prototype[t]=function(){return this.parent=i[t],e.apply(this,arguments)}:t!=a&&(o[a].prototype[t]=e)})),r.each(t["static"],function(e,t){o[a][t]=e})}}function c(e,t){var n,r;if(e)for(n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1}function u(e,n){var r,i,o,a=arguments,s;for(r=1,i=a.length;i>r;r++){n=a[r];for(o in n)n.hasOwnProperty(o)&&(s=n[o],s!==t&&(e[o]=s))}return e}function d(e,t,n,r){r=r||this,e&&(n&&(e=e[n]),o(e,function(e,i){return t.call(r,e,i,n)===!1?!1:void d(e,t,n,r)}))}function f(e,t){var n,r;for(t=t||window,e=e.split("."),n=0;n<e.length;n++)r=e[n],t[r]||(t[r]={}),t=t[r];return t}function p(e,t){var n,r;for(t=t||window,e=e.split("."),n=0,r=e.length;r>n&&(t=t[e[n]],t);n++);return t}function m(t,r){return!t||n(t,"array")?t:a(t.split(r||","),e)}var h=/^\s*|\s*$/g,g=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};return{trim:e,isArray:g,is:n,toArray:r,makeMap:i,each:o,map:a,grep:s,inArray:c,extend:u,create:l,walk:d,createNS:f,resolve:p,explode:m}}),r(m,[p],function(e){function t(n){function r(){return H.createDocumentFragment()}function i(e,t){_(F,e,t)}function o(e,t){_(z,e,t)}function a(e){i(e.parentNode,j(e))}function s(e){i(e.parentNode,j(e)+1)}function l(e){o(e.parentNode,j(e))}function c(e){o(e.parentNode,j(e)+1)}function u(e){e?(M[U]=M[V],M[q]=M[W]):(M[V]=M[U],M[W]=M[q]),M.collapsed=F}function d(e){a(e),c(e)}function f(e){i(e,0),o(e,1===e.nodeType?e.childNodes.length:e.nodeValue.length)}function p(e,t){var n=M[V],r=M[W],i=M[U],o=M[q],a=t.startContainer,s=t.startOffset,l=t.endContainer,c=t.endOffset;return 0===e?w(n,r,a,s):1===e?w(i,o,a,s):2===e?w(i,o,l,c):3===e?w(n,r,l,c):void 0}function m(){N(I)}function h(){return N(P)}function g(){return N(O)}function v(e){var t=this[V],r=this[W],i,o;3!==t.nodeType&&4!==t.nodeType||!t.nodeValue?(t.childNodes.length>0&&(o=t.childNodes[r]),o?t.insertBefore(e,o):3==t.nodeType?n.insertAfter(e,t):t.appendChild(e)):r?r>=t.nodeValue.length?n.insertAfter(e,t):(i=t.splitText(r),t.parentNode.insertBefore(e,i)):t.parentNode.insertBefore(e,t)}function y(e){var t=M.extractContents();M.insertNode(e),e.appendChild(t),M.selectNode(e)}function b(){return $(new t(n),{startContainer:M[V],startOffset:M[W],endContainer:M[U],endOffset:M[q],collapsed:M.collapsed,commonAncestorContainer:M.commonAncestorContainer})}function C(e,t){var n;if(3==e.nodeType)return e;if(0>t)return e;for(n=e.firstChild;n&&t>0;)--t,n=n.nextSibling;return n?n:e}function x(){return M[V]==M[U]&&M[W]==M[q]}function w(e,t,r,i){var o,a,s,l,c,u;if(e==r)return t==i?0:i>t?-1:1;for(o=r;o&&o.parentNode!=e;)o=o.parentNode;if(o){for(a=0,s=e.firstChild;s!=o&&t>a;)a++,s=s.nextSibling;return a>=t?-1:1}for(o=e;o&&o.parentNode!=r;)o=o.parentNode;if(o){for(a=0,s=r.firstChild;s!=o&&i>a;)a++,s=s.nextSibling;return i>a?-1:1}for(l=n.findCommonAncestor(e,r),c=e;c&&c.parentNode!=l;)c=c.parentNode;for(c||(c=l),u=r;u&&u.parentNode!=l;)u=u.parentNode;if(u||(u=l),c==u)return 0;for(s=l.firstChild;s;){if(s==c)return-1;if(s==u)return 1;s=s.nextSibling}}function _(e,t,r){var i,o;for(e?(M[V]=t,M[W]=r):(M[U]=t,M[q]=r),i=M[U];i.parentNode;)i=i.parentNode;for(o=M[V];o.parentNode;)o=o.parentNode;o==i?w(M[V],M[W],M[U],M[q])>0&&M.collapse(e):M.collapse(e),M.collapsed=x(),M.commonAncestorContainer=n.findCommonAncestor(M[V],M[U])}function N(e){var t,n=0,r=0,i,o,a,s,l,c;if(M[V]==M[U])return E(e);for(t=M[U],i=t.parentNode;i;t=i,i=i.parentNode){if(i==M[V])return S(t,e);++n}for(t=M[V],i=t.parentNode;i;t=i,i=i.parentNode){if(i==M[U])return k(t,e);++r}for(o=r-n,a=M[V];o>0;)a=a.parentNode,o--;for(s=M[U];0>o;)s=s.parentNode,o++;for(l=a.parentNode,c=s.parentNode;l!=c;l=l.parentNode,c=c.parentNode)a=l,s=c;return T(a,s,e)}function E(e){var t,n,i,o,a,s,l,c,u;if(e!=I&&(t=r()),M[W]==M[q])return t;if(3==M[V].nodeType){if(n=M[V].nodeValue,i=n.substring(M[W],M[q]),e!=O&&(o=M[V],c=M[W],u=M[q]-M[W],0===c&&u>=o.nodeValue.length-1?o.parentNode.removeChild(o):o.deleteData(c,u),M.collapse(F)),e==I)return;return i.length>0&&t.appendChild(H.createTextNode(i)),t}for(o=C(M[V],M[W]),a=M[q]-M[W];o&&a>0;)s=o.nextSibling,l=L(o,e),t&&t.appendChild(l),--a,o=s;return e!=O&&M.collapse(F),t}function S(e,t){var n,i,o,a,s,l;if(t!=I&&(n=r()),i=R(e,t),n&&n.appendChild(i),o=j(e),a=o-M[W],0>=a)return t!=O&&(M.setEndBefore(e),M.collapse(z)),n;for(i=e.previousSibling;a>0;)s=i.previousSibling,l=L(i,t),n&&n.insertBefore(l,n.firstChild),--a,i=s;return t!=O&&(M.setEndBefore(e),M.collapse(z)),n}function k(e,t){var n,i,o,a,s,l;for(t!=I&&(n=r()),o=A(e,t),n&&n.appendChild(o),i=j(e),++i,a=M[q]-i,o=e.nextSibling;o&&a>0;)s=o.nextSibling,l=L(o,t),n&&n.appendChild(l),--a,o=s;return t!=O&&(M.setStartAfter(e),M.collapse(F)),n}function T(e,t,n){var i,o,a,s,l,c,u;for(n!=I&&(o=r()),i=A(e,n),o&&o.appendChild(i),a=j(e),s=j(t),++a,l=s-a,c=e.nextSibling;l>0;)u=c.nextSibling,i=L(c,n),o&&o.appendChild(i),c=u,--l;return i=R(t,n),o&&o.appendChild(i),n!=O&&(M.setStartAfter(e),M.collapse(F)),o}function R(e,t){var n=C(M[U],M[q]-1),r,i,o,a,s,l=n!=M[U];if(n==e)return B(n,l,z,t);for(r=n.parentNode,i=B(r,z,z,t);r;){for(;n;)o=n.previousSibling,a=B(n,l,z,t),t!=I&&i.insertBefore(a,i.firstChild),l=F,n=o;if(r==e)return i;n=r.previousSibling,r=r.parentNode,s=B(r,z,z,t),t!=I&&s.appendChild(i),i=s}}function A(e,t){var n=C(M[V],M[W]),r=n!=M[V],i,o,a,s,l;if(n==e)return B(n,r,F,t);for(i=n.parentNode,o=B(i,z,F,t);i;){for(;n;)a=n.nextSibling,s=B(n,r,F,t),t!=I&&o.appendChild(s),r=F,n=a;if(i==e)return o;n=i.nextSibling,i=i.parentNode,l=B(i,z,F,t),t!=I&&l.appendChild(o),o=l}}function B(e,t,r,i){var o,a,s,l,c;if(t)return L(e,i);if(3==e.nodeType){if(o=e.nodeValue,r?(l=M[W],a=o.substring(l),s=o.substring(0,l)):(l=M[q],a=o.substring(0,l),s=o.substring(l)),i!=O&&(e.nodeValue=s),i==I)return;return c=n.clone(e,z),c.nodeValue=a,c}if(i!=I)return n.clone(e,z)}function L(e,t){return t!=I?t==O?n.clone(e,F):e:void e.parentNode.removeChild(e)}function D(){return n.create("body",null,g()).outerText}var M=this,H=n.doc,P=0,O=1,I=2,F=!0,z=!1,W="startOffset",V="startContainer",U="endContainer",q="endOffset",$=e.extend,j=n.nodeIndex;return $(M,{startContainer:H,startOffset:0,endContainer:H,endOffset:0,collapsed:F,commonAncestorContainer:H,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:i,setEnd:o,setStartBefore:a,setStartAfter:s,setEndBefore:l,setEndAfter:c,collapse:u,selectNode:d,selectNodeContents:f,compareBoundaryPoints:p,deleteContents:m,extractContents:h,cloneContents:g,insertNode:v,surroundContents:y,cloneRange:b,toStringIE:D}),M}return t.prototype.toString=function(){return this.toStringIE()},t}),r(h,[p],function(e){function t(e){var t;return t=document.createElement("div"),t.innerHTML=e,t.textContent||t.innerText||e}function n(e,t){var n,r,i,a={};if(e){for(e=e.split(","),t=t||10,n=0;n<e.length;n+=2)r=String.fromCharCode(parseInt(e[n],t)),o[r]||(i="&"+e[n+1]+";",a[r]=i,a[i]=r);return a}}var r=e.makeMap,i,o,a,s=/[&<>\"\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,l=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=/[<>&\"\']/g,u=/&(#x|#)?([\w]+);/g,d={128:"\u20ac",130:"\u201a",131:"\u0192",132:"\u201e",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02c6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017d",145:"\u2018",146:"\u2019",147:"\u201c",148:"\u201d",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02dc",153:"\u2122",154:"\u0161",155:"\u203a",156:"\u0153",158:"\u017e",159:"\u0178"};o={'"':""","'":"'","<":"<",">":">","&":"&"},a={"<":"<",">":">","&":"&",""":'"',"'":"'"},i=n("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);var f={encodeRaw:function(e,t){return e.replace(t?s:l,function(e){return o[e]||e})},encodeAllRaw:function(e){return(""+e).replace(c,function(e){return o[e]||e})},encodeNumeric:function(e,t){return e.replace(t?s:l,function(e){return e.length>1?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":o[e]||"&#"+e.charCodeAt(0)+";"})},encodeNamed:function(e,t,n){return n=n||i,e.replace(t?s:l,function(e){return o[e]||n[e]||e})},getEncodeFunc:function(e,t){function a(e,n){return e.replace(n?s:l,function(e){return o[e]||t[e]||"&#"+e.charCodeAt(0)+";"||e})}function c(e,n){return f.encodeNamed(e,n,t)}return t=n(t)||i,e=r(e.replace(/\+/g,",")),e.named&&e.numeric?a:e.named?t?c:f.encodeNamed:e.numeric?f.encodeNumeric:f.encodeRaw},decode:function(e){return e.replace(u,function(e,n,r){return n?(r=parseInt(r,2===n.length?16:10),r>65535?(r-=65536,String.fromCharCode(55296+(r>>10),56320+(1023&r))):d[r]||String.fromCharCode(r)):a[e]||i[e]||t(e)})}};return f}),r(g,[],function(){var e=navigator,t=e.userAgent,n,r,i,o,a,s,l;n=window.opera&&window.opera.buildNumber,r=/WebKit/.test(t),i=!r&&!n&&/MSIE/gi.test(t)&&/Explorer/gi.test(e.appName),i=i&&/MSIE (\w+)\./.exec(t)[1],o=-1==t.indexOf("Trident/")||-1==t.indexOf("rv:")&&-1==e.appName.indexOf("Netscape")?!1:11,i=i||o,a=!r&&!o&&/Gecko/.test(t),s=-1!=t.indexOf("Mac"),l=/(iPad|iPhone)/.test(t);var c=!l||t.match(/AppleWebKit\/(\d*)/)[1]>=534;return{opera:n,webkit:r,ie:i,gecko:a,mac:s,iOS:l,contentEditable:c,transparentSrc:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",caretAfter:8!=i,range:window.getSelection&&"Range"in window,documentMode:i?document.documentMode||7:10}}),r(v,[],function(){return function(e,t){function n(t){e.getElementsByTagName("head")[0].appendChild(t)}function r(t,r,s){function l(){for(var e=v.passed,t=e.length;t--;)e[t]();v.status=2,v.passed=[],v.failed=[]}function c(){for(var e=v.failed,t=e.length;t--;)e[t]();v.status=3,v.passed=[],v.failed=[]}function u(){var e=navigator.userAgent.match(/WebKit\/(\d*)/);return!!(e&&e[1]<536)}function d(e,t){e()||((new Date).getTime()-g<a?window.setTimeout(t,0):c())}function f(){d(function(){for(var t=e.styleSheets,n,r=t.length,i;r--;)if(n=t[r],i=n.ownerNode?n.ownerNode:n.owningElement,i&&i.id===m.id)return l(),!0},f)}function p(){d(function(){try{var e=h.sheet.cssRules;return l(),!!e}catch(t){}},p)}var m,h,g,v;if(o[t]?v=o[t]:(v={passed:[],failed:[]},o[t]=v),r&&v.passed.push(r),s&&v.failed.push(s),1!=v.status){if(2==v.status)return void l();if(3==v.status)return void c();if(v.status=1,m=e.createElement("link"),m.rel="stylesheet",m.type="text/css",m.id="u"+i++,m.async=!1,m.defer=!1,g=(new Date).getTime(),"onload"in m&&!u())m.onload=f,m.onerror=c;else{if(navigator.userAgent.indexOf("Firefox")>0)return h=e.createElement("style"),h.textContent='@import "'+t+'"',p(),void n(h);f()}n(m),m.href=t}}var i=0,o={},a;t=t||{},a=t.maxLoadTime||5e3,this.load=r}}),r(y,[c,d,l,f,m,h,g,p,v],function(e,n,r,i,o,a,s,l,c){function u(e,t){var i=this,o;i.doc=e,i.win=window,i.files={},i.counter=0,i.stdMode=!v||e.documentMode>=8,i.boxModel=!v||"CSS1Compat"==e.compatMode||i.stdMode,i.hasOuterHTML="outerHTML"in e.createElement("a"),i.styleSheetLoader=new c(e),this.boundEvents=[],i.settings=t=h({keep_values:!1,hex_colors:1},t),i.schema=t.schema,i.styles=new n({url_converter:t.url_converter,url_converter_scope:t.url_converter_scope},t.schema),i.fixDoc(e),i.events=t.ownEvents?new r(t.proxy):r.Event,o=t.schema?t.schema.getBlockElements():{},i.isBlock=function(e){if(!e)return!1;var t=e.nodeType;return t?!(1!==t||!o[e.nodeName]):!!o[e]}}var d=l.each,f=l.is,p=l.grep,m=l.trim,h=l.extend,g=s.webkit,v=s.ie,y=/^([a-z0-9],?)+$/i,b=/^[ \t\r\n]*$/,C=l.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"," ");return u.prototype={root:null,props:{"for":"htmlFor","class":"className",className:"className",checked:"checked",disabled:"disabled",maxlength:"maxLength",readonly:"readOnly",selected:"selected",value:"value",id:"id",name:"name",type:"type"},fixDoc:function(e){var t=this.settings,n;if(v&&t.schema){"abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video".replace(/\w+/g,function(t){e.createElement(t)});for(n in t.schema.getCustomElements())e.createElement(n)}},clone:function(e,t){var n=this,r,i;return!v||1!==e.nodeType||t?e.cloneNode(t):(i=n.doc,t?r.firstChild:(r=i.createElement(e.nodeName),d(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),r))},getRoot:function(){var e=this;return e.get(e.settings.root_element)||e.doc.body},getViewPort:function(e){var t,n;return e=e?e:this.win,t=e.document,n=this.boxModel?t.documentElement:t.body,{x:e.pageXOffset||n.scrollLeft,y:e.pageYOffset||n.scrollTop,w:e.innerWidth||n.clientWidth,h:e.innerHeight||n.clientHeight}},getRect:function(e){var t=this,n,r;return e=t.get(e),n=t.getPos(e),r=t.getSize(e),{x:n.x,y:n.y,w:r.w,h:r.h}},getSize:function(e){var t=this,n,r;return e=t.get(e),n=t.getStyle(e,"width"),r=t.getStyle(e,"height"),-1===n.indexOf("px")&&(n=0),-1===r.indexOf("px")&&(r=0),{w:parseInt(n,10)||e.offsetWidth||e.clientWidth,h:parseInt(r,10)||e.offsetHeight||e.clientHeight}},getParent:function(e,t,n){return this.getParents(e,t,n,!1)},getParents:function(e,n,r,i){var o=this,a,s=[];for(e=o.get(e),i=i===t,r=r||("BODY"!=o.getRoot().nodeName?o.getRoot().parentNode:null),f(n,"string")&&(a=n,n="*"===n?function(e){return 1==e.nodeType}:function(e){return o.is(e,a)});e&&e!=r&&e.nodeType&&9!==e.nodeType;){if(!n||n(e)){if(!i)return e;s.push(e)}e=e.parentNode}return i?s:null},get:function(e){var t;return e&&this.doc&&"string"==typeof e&&(t=e,e=this.doc.getElementById(e),e&&e.id!==t)?this.doc.getElementsByName(t)[1]:e},getNext:function(e,t){return this._findSib(e,t,"nextSibling")},getPrev:function(e,t){return this._findSib(e,t,"previousSibling")},select:function(t,n){var r=this;return e(t,r.get(n)||r.get(r.settings.root_element)||r.doc,[])},is:function(n,r){var i;if(n.length===t){if("*"===r)return 1==n.nodeType;if(y.test(r)){for(r=r.toLowerCase().split(/,/),n=n.nodeName.toLowerCase(),i=r.length-1;i>=0;i--)if(r[i]==n)return!0;return!1}}if(n.nodeType&&1!=n.nodeType)return!1;var o=n.nodeType?[n]:n;return e(r,o[0].ownerDocument||o[0],null,o).length>0},add:function(e,t,n,r,i){var o=this;return this.run(e,function(e){var a;return a=f(t,"string")?o.doc.createElement(t):t,o.setAttribs(a,n),r&&(r.nodeType?a.appendChild(r):o.setHTML(a,r)),i?a:e.appendChild(a)})},create:function(e,t,n){return this.add(this.doc.createElement(e),e,t,n,1)},createHTML:function(e,t,n){var r="",i;r+="<"+e;for(i in t)t.hasOwnProperty(i)&&null!==t[i]&&(r+=" "+i+'="'+this.encode(t[i])+'"');return"undefined"!=typeof n?r+">"+n+"</"+e+">":r+" />"},createFragment:function(e){var t,n,r=this.doc,i;for(i=r.createElement("div"),t=r.createDocumentFragment(),e&&(i.innerHTML=e);n=i.firstChild;)t.appendChild(n);return t},remove:function(e,t){return this.run(e,function(e){var n,r=e.parentNode;if(!r)return null;if(t)for(;n=e.firstChild;)!v||3!==n.nodeType||n.nodeValue?r.insertBefore(n,e):e.removeChild(n);return r.removeChild(e)})},setStyle:function(e,t,n){return this.run(e,function(e){var r=this,i,o;if(t)if("string"==typeof t){i=e.style,t=t.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),"number"!=typeof n||C[t]||(n+="px"),"opacity"===t&&e.runtimeStyle&&"undefined"==typeof e.runtimeStyle.opacity&&(i.filter=""===n?"":"alpha(opacity="+100*n+")"),"float"==t&&(t="cssFloat"in e.style?"cssFloat":"styleFloat");try{i[t]=n}catch(a){}r.settings.update_styles&&e.removeAttribute("data-mce-style")}else for(o in t)r.setStyle(e,o,t[o])})},getStyle:function(e,n,r){if(e=this.get(e)){if(this.doc.defaultView&&r){n=n.replace(/[A-Z]/g,function(e){return"-"+e});try{return this.doc.defaultView.getComputedStyle(e,null).getPropertyValue(n)}catch(i){return null}}return n=n.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),"float"==n&&(n=v?"styleFloat":"cssFloat"),e.currentStyle&&r?e.currentStyle[n]:e.style?e.style[n]:t}},setStyles:function(e,t){this.setStyle(e,t)},css:function(e,t,n){this.setStyle(e,t,n)},removeAllAttribs:function(e){return this.run(e,function(e){var t,n=e.attributes;for(t=n.length-1;t>=0;t--)e.removeAttributeNode(n.item(t))})},setAttrib:function(e,t,n){var r=this;if(e&&t)return this.run(e,function(e){var i=r.settings,o=e.getAttribute(t);if(null!==n)switch(t){case"style":if(!f(n,"string"))return void d(n,function(t,n){r.setStyle(e,n,t)});i.keep_values&&(n?e.setAttribute("data-mce-style",n,2):e.removeAttribute("data-mce-style",2)),e.style.cssText=n;break;case"class":e.className=n||"";break;case"src":case"href":i.keep_values&&(i.url_converter&&(n=i.url_converter.call(i.url_converter_scope||r,n,t,e)),r.setAttrib(e,"data-mce-"+t,n,2));break;case"shape":e.setAttribute("data-mce-style",n)}f(n)&&null!==n&&0!==n.length?e.setAttribute(t,""+n,2):e.removeAttribute(t,2),o!=n&&i.onSetAttrib&&i.onSetAttrib({attrElm:e,attrName:t,attrValue:n})})},setAttribs:function(e,t){var n=this;return this.run(e,function(e){d(t,function(t,r){n.setAttrib(e,r,t)})})},getAttrib:function(e,t,n){var r,i=this,o;if(e=i.get(e),!e||1!==e.nodeType)return n===o?!1:n;if(f(n)||(n=""),/^(src|href|style|coords|shape)$/.test(t)&&(r=e.getAttribute("data-mce-"+t)))return r;if(v&&i.props[t]&&(r=e[i.props[t]],r=r&&r.nodeValue?r.nodeValue:r),r||(r=e.getAttribute(t,2)),/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(t))return e[i.props[t]]===!0&&""===r?t:r?t:"";if("FORM"===e.nodeName&&e.getAttributeNode(t))return e.getAttributeNode(t).nodeValue;if("style"===t&&(r=r||e.style.cssText,r&&(r=i.serializeStyle(i.parseStyle(r),e.nodeName),i.settings.keep_values&&e.setAttribute("data-mce-style",r))),g&&"class"===t&&r&&(r=r.replace(/(apple|webkit)\-[a-z\-]+/gi,"")),v)switch(t){case"rowspan":case"colspan":1===r&&(r="");break;case"size":("+0"===r||20===r||0===r)&&(r="");break;case"width":case"height":case"vspace":case"checked":case"disabled":case"readonly":0===r&&(r="");break;case"hspace":-1===r&&(r="");break;case"maxlength":case"tabindex":(32768===r||2147483647===r||"32768"===r)&&(r="");break;case"multiple":case"compact":case"noshade":case"nowrap":return 65535===r?t:n;case"shape":r=r.toLowerCase();break;default:0===t.indexOf("on")&&r&&(r=(""+r).replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/,"$1"))}return r!==o&&null!==r&&""!==r?""+r:n},getPos:function(e,t){var n=this,r=0,i=0,o,a=n.doc,s;if(e=n.get(e),t=t||a.body,e){if(t===a.body&&e.getBoundingClientRect)return s=e.getBoundingClientRect(),t=n.boxModel?a.documentElement:a.body,r=s.left+(a.documentElement.scrollLeft||a.body.scrollLeft)-t.clientLeft,i=s.top+(a.documentElement.scrollTop||a.body.scrollTop)-t.clientTop,{x:r,y:i};for(o=e;o&&o!=t&&o.nodeType;)r+=o.offsetLeft||0,i+=o.offsetTop||0,o=o.offsetParent;for(o=e.parentNode;o&&o!=t&&o.nodeType;)r-=o.scrollLeft||0,i-=o.scrollTop||0,o=o.parentNode}return{x:r,y:i}},parseStyle:function(e){return this.styles.parse(e)},serializeStyle:function(e,t){return this.styles.serialize(e,t)},addStyle:function(e){var t=this,n=t.doc,r,i;if(t!==u.DOM&&n===document){var o=u.DOM.addedStyles;if(o=o||[],o[e])return;o[e]=!0,u.DOM.addedStyles=o}i=n.getElementById("mceDefaultStyles"),i||(i=n.createElement("style"),i.id="mceDefaultStyles",i.type="text/css",r=n.getElementsByTagName("head")[0],r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i)),i.styleSheet?i.styleSheet.cssText+=e:i.appendChild(n.createTextNode(e))},loadCSS:function(e){var t=this,n=t.doc,r;return t!==u.DOM&&n===document?void u.DOM.loadCSS(e):(e||(e=""),r=n.getElementsByTagName("head")[0],void d(e.split(","),function(e){var i;t.files[e]||(t.files[e]=!0,i=t.create("link",{rel:"stylesheet",href:e}),v&&n.documentMode&&n.recalc&&(i.onload=function(){n.recalc&&n.recalc(),i.onload=null}),r.appendChild(i))}))},addClass:function(e,t){return this.run(e,function(e){var n;return t?this.hasClass(e,t)?e.className:(n=this.removeClass(e,t),e.className=n=(""!==n?n+" ":"")+t,n):0})},removeClass:function(e,t){var n=this,r;return n.run(e,function(e){var i;return n.hasClass(e,t)?(r||(r=new RegExp("(^|\\s+)"+t+"(\\s+|$)","g")),i=e.className.replace(r," "),i=m(" "!=i?i:""),e.className=i,i||(e.removeAttribute("class"),e.removeAttribute("className")),i):e.className})},hasClass:function(e,t){return e=this.get(e),e&&t?-1!==(" "+e.className+" ").indexOf(" "+t+" "):!1},toggleClass:function(e,n,r){r=r===t?!this.hasClass(e,n):r,this.hasClass(e,n)!==r&&(r?this.addClass(e,n):this.removeClass(e,n))},show:function(e){return this.setStyle(e,"display","block")},hide:function(e){return this.setStyle(e,"display","none")},isHidden:function(e){return e=this.get(e),!e||"none"==e.style.display||"none"==this.getStyle(e,"display")},uniqueId:function(e){return(e?e:"mce_")+this.counter++},setHTML:function(e,t){var n=this;return n.run(e,function(e){if(v){for(;e.firstChild;)e.removeChild(e.firstChild);try{e.innerHTML="<br />"+t,e.removeChild(e.firstChild)}catch(r){var i=n.create("div");i.innerHTML="<br />"+t,d(p(i.childNodes),function(t,n){n&&e.canHaveHTML&&e.appendChild(t)})}}else e.innerHTML=t;return t})},getOuterHTML:function(e){var t,n=this;return(e=n.get(e))?1===e.nodeType&&n.hasOuterHTML?e.outerHTML:(t=(e.ownerDocument||n.doc).createElement("body"),t.appendChild(e.cloneNode(!0)),t.innerHTML):null},setOuterHTML:function(e,t,n){var r=this;return r.run(e,function(e){function i(){var i,o;for(o=n.createElement("body"),o.innerHTML=t,i=o.lastChild;i;)r.insertAfter(i.cloneNode(!0),e),i=i.previousSibling;r.remove(e)}if(1==e.nodeType)if(n=n||e.ownerDocument||r.doc,v)try{1==e.nodeType&&r.hasOuterHTML?e.outerHTML=t:i()}catch(o){i()}else i()})},decode:a.decode,encode:a.encodeAllRaw,insertAfter:function(e,t){return t=this.get(t),this.run(e,function(e){var n,r;return n=t.parentNode,r=t.nextSibling,r?n.insertBefore(e,r):n.appendChild(e),e})},replace:function(e,t,n){var r=this;return r.run(t,function(t){return f(t,"array")&&(e=e.cloneNode(!0)),n&&d(p(t.childNodes),function(t){e.appendChild(t)}),t.parentNode.replaceChild(e,t)})},rename:function(e,t){var n=this,r;return e.nodeName!=t.toUpperCase()&&(r=n.create(t),d(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),n.replace(r,e,1)),r||e},findCommonAncestor:function(e,t){for(var n=e,r;n;){for(r=t;r&&n!=r;)r=r.parentNode;if(n==r)break;n=n.parentNode}return!n&&e.ownerDocument?e.ownerDocument.documentElement:n},toHex:function(e){return this.styles.toHex(l.trim(e))},run:function(e,t,n){var r=this,i;return"string"==typeof e&&(e=r.get(e)),e?(n=n||this,e.nodeType||!e.length&&0!==e.length?t.call(n,e):(i=[],d(e,function(e,o){e&&("string"==typeof e&&(e=r.get(e)),i.push(t.call(n,e,o)))}),i)):!1},getAttribs:function(e){var t;if(e=this.get(e),!e)return[];if(v){if(t=[],"OBJECT"==e.nodeName)return e.attributes;"OPTION"===e.nodeName&&this.getAttrib(e,"selected")&&t.push({specified:1,nodeName:"selected"});var n=/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi;return e.cloneNode(!1).outerHTML.replace(n,"").replace(/[\w:\-]+/gi,function(e){t.push({specified:1,nodeName:e})}),t}return e.attributes},isEmpty:function(e,t){var n=this,r,o,a,s,l,c=0;if(e=e.firstChild){s=new i(e,e.parentNode),t=t||n.schema?n.schema.getNonEmptyElements():null;do{if(a=e.nodeType,1===a){if(e.getAttribute("data-mce-bogus"))continue;if(l=e.nodeName.toLowerCase(),t&&t[l]){if("br"===l){c++;continue}return!1}for(o=n.getAttribs(e),r=e.attributes.length;r--;)if(l=e.attributes[r].nodeName,"name"===l||"data-mce-bookmark"===l)return!1}if(8==a)return!1;if(3===a&&!b.test(e.nodeValue))return!1}while(e=s.next())}return 1>=c},createRng:function(){var e=this.doc;return e.createRange?e.createRange():new o(this)},nodeIndex:function(e,t){var n=0,r,i;if(e)for(r=e.nodeType,e=e.previousSibling;e;e=e.previousSibling)i=e.nodeType,(!t||3!=i||i!=r&&e.nodeValue.length)&&(n++,r=i);return n},split:function(e,t,n){function r(e){function t(e){var t=e.previousSibling&&"SPAN"==e.previousSibling.nodeName,n=e.nextSibling&&"SPAN"==e.nextSibling.nodeName;return t&&n}var n,o=e.childNodes,a=e.nodeType;if(1!=a||"bookmark"!=e.getAttribute("data-mce-type")){for(n=o.length-1;n>=0;n--)r(o[n]);if(9!=a){if(3==a&&e.nodeValue.length>0){var s=m(e.nodeValue).length;if(!i.isBlock(e.parentNode)||s>0||0===s&&t(e))return}else if(1==a&&(o=e.childNodes,1==o.length&&o[0]&&1==o[0].nodeType&&"bookmark"==o[0].getAttribute("data-mce-type")&&e.parentNode.insertBefore(o[0],e),o.length||/^(br|hr|input|img)$/i.test(e.nodeName)))return;i.remove(e)}return e}}var i=this,o=i.createRng(),a,s,l;return e&&t?(o.setStart(e.parentNode,i.nodeIndex(e)),o.setEnd(t.parentNode,i.nodeIndex(t)),a=o.extractContents(),o=i.createRng(),o.setStart(t.parentNode,i.nodeIndex(t)+1),o.setEnd(e.parentNode,i.nodeIndex(e)+1),s=o.extractContents(),l=e.parentNode,l.insertBefore(r(a),e),n?l.replaceChild(n,t):l.insertBefore(t,e),l.insertBefore(r(s),e),i.remove(e),n||t):void 0},bind:function(e,t,n,r){var i=this;if(l.isArray(e)){for(var o=e.length;o--;)e[o]=i.bind(e[o],t,n,r);return e}return!i.settings.collect||e!==i.doc&&e!==i.win||i.boundEvents.push([e,t,n,r]),i.events.bind(e,t,n,r||i)},unbind:function(e,t,n){var r=this,i;if(l.isArray(e)){for(i=e.length;i--;)e[i]=r.unbind(e[i],t,n);return e}if(r.boundEvents&&(e===r.doc||e===r.win))for(i=r.boundEvents.length;i--;){var o=r.boundEvents[i];e!=o[0]||t&&t!=o[1]||n&&n!=o[2]||this.events.unbind(o[0],o[1],o[2])}return this.events.unbind(e,t,n)},fire:function(e,t,n){return this.events.fire(e,t,n)},getContentEditable:function(e){var t;return 1!=e.nodeType?null:(t=e.getAttribute("data-mce-contenteditable"),t&&"inherit"!==t?t:"inherit"!==e.contentEditable?e.contentEditable:null)},destroy:function(){var t=this;if(t.boundEvents){for(var n=t.boundEvents.length;n--;){var r=t.boundEvents[n];this.events.unbind(r[0],r[1],r[2])}t.boundEvents=null}e.setDocument&&e.setDocument(),t.win=t.doc=t.root=t.events=t.frag=null},dumpRng:function(e){return"startContainer: "+e.startContainer.nodeName+", startOffset: "+e.startOffset+", endContainer: "+e.endContainer.nodeName+", endOffset: "+e.endOffset},_findSib:function(e,t,n){var r=this,i=t;if(e)for("string"==typeof i&&(i=function(e){return r.is(e,t)}),e=e[n];e;e=e[n])if(i(e))return e;return null}},u.DOM=new u(document),u}),r(b,[y,p],function(e,t){function n(){function e(e,t){function n(){o.remove(s),a&&(a.onreadystatechange=a.onload=a=null),t() +}function i(){"undefined"!=typeof console&&console.log&&console.log("Failed to load: "+e)}var o=r,a,s;s=o.uniqueId(),a=document.createElement("script"),a.id=s,a.type="text/javascript",a.src=e,"onreadystatechange"in a?a.onreadystatechange=function(){/loaded|complete/.test(a.readyState)&&n()}:a.onload=n,a.onerror=i,(document.getElementsByTagName("head")[0]||document.body).appendChild(a)}var t=0,n=1,a=2,s={},l=[],c={},u=[],d=0,f;this.isDone=function(e){return s[e]==a},this.markDone=function(e){s[e]=a},this.add=this.load=function(e,n,r){var i=s[e];i==f&&(l.push(e),s[e]=t),n&&(c[e]||(c[e]=[]),c[e].push({func:n,scope:r||this}))},this.loadQueue=function(e,t){this.loadScripts(l,e,t)},this.loadScripts=function(t,r,l){function p(e){i(c[e],function(e){e.func.call(e.scope)}),c[e]=f}var m;u.push({func:r,scope:l||this}),(m=function(){var r=o(t);t.length=0,i(r,function(t){return s[t]==a?void p(t):void(s[t]!=n&&(s[t]=n,d++,e(t,function(){s[t]=a,d--,p(t),m()})))}),d||(i(u,function(e){e.func.call(e.scope)}),u.length=0)})()}}var r=e.DOM,i=t.each,o=t.grep;return n.ScriptLoader=new n,n}),r(C,[b,p],function(e,n){function r(){var e=this;e.items=[],e.urls={},e.lookup={}}var i=n.each;return r.prototype={get:function(e){return this.lookup[e]?this.lookup[e].instance:t},dependencies:function(e){var t;return this.lookup[e]&&(t=this.lookup[e].dependencies),t||[]},requireLangPack:function(t,n){if(r.language&&r.languageLoad!==!1){if(n&&new RegExp("([, ]|\\b)"+r.language+"([, ]|\\b)").test(n)===!1)return;e.ScriptLoader.add(this.urls[t]+"/langs/"+r.language+".js")}},add:function(e,t,n){return this.items.push(t),this.lookup[e]={instance:t,dependencies:n},t},createUrl:function(e,t){return"object"==typeof t?t:{prefix:e.prefix,resource:t,suffix:e.suffix}},addComponents:function(t,n){var r=this.urls[t];i(n,function(t){e.ScriptLoader.add(r+"/"+t)})},load:function(n,o,a,s){function l(){var r=c.dependencies(n);i(r,function(e){var n=c.createUrl(o,e);c.load(n.resource,n,t,t)}),a&&a.call(s?s:e)}var c=this,u=o;c.urls[n]||("object"==typeof o&&(u=o.prefix+o.resource+o.suffix),0!==u.indexOf("/")&&-1==u.indexOf("://")&&(u=r.baseURL+"/"+u),c.urls[n]=u.substring(0,u.lastIndexOf("/")),c.lookup[n]?l():e.ScriptLoader.add(u,l,s))}},r.PluginManager=new r,r.ThemeManager=new r,r}),r(x,[],function(){function e(e,t,n){var r,i,o=n?"lastChild":"firstChild",a=n?"prev":"next";if(e[o])return e[o];if(e!==t){if(r=e[a])return r;for(i=e.parent;i&&i!==t;i=i.parent)if(r=i[a])return r}}function t(e,t){this.name=e,this.type=t,1===t&&(this.attributes=[],this.attributes.map={})}var n=/^[ \t\r\n]*$/,r={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11};return t.prototype={replace:function(e){var t=this;return e.parent&&e.remove(),t.insert(e,t),t.remove(),t},attr:function(e,t){var n=this,r,i,o;if("string"!=typeof e){for(i in e)n.attr(i,e[i]);return n}if(r=n.attributes){if(t!==o){if(null===t){if(e in r.map)for(delete r.map[e],i=r.length;i--;)if(r[i].name===e)return r=r.splice(i,1),n;return n}if(e in r.map){for(i=r.length;i--;)if(r[i].name===e){r[i].value=t;break}}else r.push({name:e,value:t});return r.map[e]=t,n}return r.map[e]}},clone:function(){var e=this,n=new t(e.name,e.type),r,i,o,a,s;if(o=e.attributes){for(s=[],s.map={},r=0,i=o.length;i>r;r++)a=o[r],"id"!==a.name&&(s[s.length]={name:a.name,value:a.value},s.map[a.name]=a.value);n.attributes=s}return n.value=e.value,n.shortEnded=e.shortEnded,n},wrap:function(e){var t=this;return t.parent.insert(e,t),e.append(t),t},unwrap:function(){var e=this,t,n;for(t=e.firstChild;t;)n=t.next,e.insert(t,e,!0),t=n;e.remove()},remove:function(){var e=this,t=e.parent,n=e.next,r=e.prev;return t&&(t.firstChild===e?(t.firstChild=n,n&&(n.prev=null)):r.next=n,t.lastChild===e?(t.lastChild=r,r&&(r.next=null)):n.prev=r,e.parent=e.next=e.prev=null),e},append:function(e){var t=this,n;return e.parent&&e.remove(),n=t.lastChild,n?(n.next=e,e.prev=n,t.lastChild=e):t.lastChild=t.firstChild=e,e.parent=t,e},insert:function(e,t,n){var r;return e.parent&&e.remove(),r=t.parent||this,n?(t===r.firstChild?r.firstChild=e:t.prev.next=e,e.prev=t.prev,e.next=t,t.prev=e):(t===r.lastChild?r.lastChild=e:t.next.prev=e,e.next=t.next,e.prev=t,t.next=e),e.parent=r,e},getAll:function(t){var n=this,r,i=[];for(r=n.firstChild;r;r=e(r,n))r.name===t&&i.push(r);return i},empty:function(){var t=this,n,r,i;if(t.firstChild){for(n=[],i=t.firstChild;i;i=e(i,t))n.push(i);for(r=n.length;r--;)i=n[r],i.parent=i.firstChild=i.lastChild=i.next=i.prev=null}return t.firstChild=t.lastChild=null,t},isEmpty:function(t){var r=this,i=r.firstChild,o,a;if(i)do{if(1===i.type){if(i.attributes.map["data-mce-bogus"])continue;if(t[i.name])return!1;for(o=i.attributes.length;o--;)if(a=i.attributes[o].name,"name"===a||0===a.indexOf("data-mce-"))return!1}if(8===i.type)return!1;if(3===i.type&&!n.test(i.value))return!1}while(i=e(i,r));return!0},walk:function(t){return e(this,null,t)}},t.create=function(e,n){var i,o;if(i=new t(e,r[e]||1),n)for(o in n)i.attr(o,n[o]);return i},t}),r(w,[p],function(e){function t(e,t){return e?e.split(t||" "):[]}function n(e){function n(e,n,r){function i(e){var t={},n,r;for(n=0,r=e.length;r>n;n++)t[e[n]]={};return t}var o,l,c,u=arguments;for(r=r||[],n=n||"","string"==typeof r&&(r=t(r)),l=3;l<u.length;l++)"string"==typeof u[l]&&(u[l]=t(u[l])),r.push.apply(r,u[l]);for(e=t(e),o=e.length;o--;)c=[].concat(s,t(n)),a[e[o]]={attributes:i(c),attributesOrder:c,children:i(r)}}function i(e,n){var r,i,o,s;for(e=t(e),r=e.length,n=t(n);r--;)for(i=a[e[r]],o=0,s=n.length;s>o;o++)i.attributes[n[o]]={},i.attributesOrder.push(n[o])}var a={},s,l,c,u,d,f;return r[e]?r[e]:(s=t("id accesskey class dir lang style tabindex title"),l=t("address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul"),c=t("a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd label map noscript object q s samp script select small span strong sub sup textarea u var #text #comment"),"html4"!=e&&(s.push.apply(s,t("contenteditable contextmenu draggable dropzone hidden spellcheck translate")),l.push.apply(l,t("article aside details dialog figure header footer hgroup section nav")),c.push.apply(c,t("audio canvas command datalist mark meter output progress time wbr video ruby bdi keygen"))),"html5-strict"!=e&&(s.push("xml:lang"),f=t("acronym applet basefont big font strike tt"),c.push.apply(c,f),o(f,function(e){n(e,"",c)}),d=t("center dir isindex noframes"),l.push.apply(l,d),u=[].concat(l,c),o(d,function(e){n(e,"",u)})),u=u||[].concat(l,c),n("html","manifest","head body"),n("head","","base command link meta noscript script style title"),n("title hr noscript br"),n("base","href target"),n("link","href rel media hreflang type sizes hreflang"),n("meta","name http-equiv content charset"),n("style","media type scoped"),n("script","src async defer type charset"),n("body","onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload",u),n("address dt dd div caption","",u),n("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn","",c),n("blockquote","cite",u),n("ol","reversed start type","li"),n("ul","","li"),n("li","value",u),n("dl","","dt dd"),n("a","href target rel media hreflang type",c),n("q","cite",c),n("ins del","cite datetime",u),n("img","src alt usemap ismap width height"),n("iframe","src name width height",u),n("embed","src type width height"),n("object","data type typemustmatch name usemap form width height",u,"param"),n("param","name value"),n("map","name",u,"area"),n("area","alt coords shape href target rel media hreflang type"),n("table","border","caption colgroup thead tfoot tbody tr"+("html4"==e?" col":"")),n("colgroup","span","col"),n("col","span"),n("tbody thead tfoot","","tr"),n("tr","","td th"),n("td","colspan rowspan headers",u),n("th","colspan rowspan headers scope abbr",u),n("form","accept-charset action autocomplete enctype method name novalidate target",u),n("fieldset","disabled form name",u,"legend"),n("label","form for",c),n("input","accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern readonly required size src step type value width"),n("button","disabled form formaction formenctype formmethod formnovalidate formtarget name type value","html4"==e?u:c),n("select","disabled form multiple name required size","option optgroup"),n("optgroup","disabled label","option"),n("option","disabled label selected value"),n("textarea","cols dirname disabled form maxlength name readonly required rows wrap"),n("menu","type label",u,"li"),n("noscript","",u),"html4"!=e&&(n("wbr"),n("ruby","",c,"rt rp"),n("figcaption","",u),n("mark rt rp summary bdi","",c),n("canvas","width height",u),n("video","src crossorigin poster preload autoplay mediagroup loop muted controls width height",u,"track source"),n("audio","src crossorigin preload autoplay mediagroup loop muted controls",u,"track source"),n("source","src type media"),n("track","kind src srclang label default"),n("datalist","",c,"option"),n("article section nav aside header footer","",u),n("hgroup","","h1 h2 h3 h4 h5 h6"),n("figure","",u,"figcaption"),n("time","datetime",c),n("dialog","open",u),n("command","type label icon disabled checked radiogroup command"),n("output","for form name",c),n("progress","value max",c),n("meter","value min max low high optimum",c),n("details","open",u,"summary"),n("keygen","autofocus challenge disabled form keytype name")),"html5-strict"!=e&&(i("script","language xml:space"),i("style","xml:space"),i("object","declare classid codebase codetype archive standby align border hspace vspace"),i("param","valuetype type"),i("a","charset name rev shape coords"),i("br","clear"),i("applet","codebase archive code object alt name width height align hspace vspace"),i("img","name longdesc align border hspace vspace"),i("iframe","longdesc frameborder marginwidth marginheight scrolling align"),i("font basefont","size color face"),i("input","usemap align"),i("select","onchange"),i("textarea"),i("h1 h2 h3 h4 h5 h6 div p legend caption","align"),i("ul","type compact"),i("li","type"),i("ol dl menu dir","compact"),i("pre","width xml:space"),i("hr","align noshade size width"),i("isindex","prompt"),i("table","summary width frame rules cellspacing cellpadding align bgcolor"),i("col","width align char charoff valign"),i("colgroup","width align char charoff valign"),i("thead","align char charoff valign"),i("tr","align char charoff valign bgcolor"),i("th","axis align char charoff valign nowrap bgcolor width height"),i("form","accept"),i("td","abbr axis scope align char charoff valign nowrap bgcolor width height"),i("tfoot","align char charoff valign"),i("tbody","align char charoff valign"),i("area","nohref"),i("body","background bgcolor text link vlink alink")),"html4"!=e&&(i("input button select textarea","autofocus"),i("input textarea","placeholder"),i("a","download"),i("link script img","crossorigin"),i("iframe","srcdoc sandbox seamless allowfullscreen")),o(t("a form meter progress dfn"),function(e){a[e]&&delete a[e].children[e]}),delete a.caption.children.table,r[e]=a,a)}var r={},i=e.makeMap,o=e.each,a=e.extend,s=e.explode,l=e.inArray;return function(e){function c(t,n,o){var s=e[t];return s?s=i(s,",",i(s.toUpperCase()," ")):(s=r[t],s||(s=i(n," ",i(n.toUpperCase()," ")),s=a(s,o),r[t]=s)),s}function u(e){return new RegExp("^"+e.replace(/([?+*])/g,".$1")+"$")}function d(e){var n,r,o,a,s,c,d,f,p,m,h,g,y,C,x,w,_,N,E,S=/^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/,k=/^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,T=/[*?+]/;if(e)for(e=t(e,","),v["@"]&&(w=v["@"].attributes,_=v["@"].attributesOrder),n=0,r=e.length;r>n;n++)if(s=S.exec(e[n])){if(C=s[1],p=s[2],x=s[3],f=s[5],g={},y=[],c={attributes:g,attributesOrder:y},"#"===C&&(c.paddEmpty=!0),"-"===C&&(c.removeEmpty=!0),"!"===s[4]&&(c.removeEmptyAttrs=!0),w){for(N in w)g[N]=w[N];y.push.apply(y,_)}if(f)for(f=t(f,"|"),o=0,a=f.length;a>o;o++)if(s=k.exec(f[o])){if(d={},h=s[1],m=s[2].replace(/::/g,":"),C=s[3],E=s[4],"!"===h&&(c.attributesRequired=c.attributesRequired||[],c.attributesRequired.push(m),d.required=!0),"-"===h){delete g[m],y.splice(l(y,m),1);continue}C&&("="===C&&(c.attributesDefault=c.attributesDefault||[],c.attributesDefault.push({name:m,value:E}),d.defaultValue=E),":"===C&&(c.attributesForced=c.attributesForced||[],c.attributesForced.push({name:m,value:E}),d.forcedValue=E),"<"===C&&(d.validValues=i(E,"?"))),T.test(m)?(c.attributePatterns=c.attributePatterns||[],d.pattern=u(m),c.attributePatterns.push(d)):(g[m]||y.push(m),g[m]=d)}w||"@"!=p||(w=g,_=y),x&&(c.outputName=p,v[x]=c),T.test(p)?(c.pattern=u(p),b.push(c)):v[p]=c}}function f(e){v={},b=[],d(e),o(x,function(e,t){y[t]=e.children})}function p(e){var n=/^(~)?(.+)$/;e&&(r.text_block_elements=r.block_elements=null,o(t(e,","),function(e){var t=n.exec(e),r="~"===t[1],i=r?"span":"div",s=t[2];if(y[s]=y[i],R[s]=i,r||(S[s.toUpperCase()]={},S[s]={}),!v[s]){var l=v[i];l=a({},l),delete l.removeEmptyAttrs,delete l.removeEmpty,v[s]=l}o(y,function(e,t){e[i]&&(y[t]=e=a({},y[t]),e[s]=e[i])})}))}function m(e){var n=/^([+\-]?)(\w+)\[([^\]]+)\]$/;e&&o(t(e,","),function(e){var r=n.exec(e),i,s;r&&(s=r[1],i=s?y[r[2]]:y[r[2]]={"#comment":{}},i=y[r[2]],o(t(r[3],"|"),function(e){"-"===s?(y[r[2]]=i=a({},y[r[2]]),delete i[e]):i[e]={}}))})}function h(e){var t=v[e],n;if(t)return t;for(n=b.length;n--;)if(t=b[n],t.pattern.test(e))return t}var g=this,v={},y={},b=[],C,x,w,_,N,E,S,k,T,R={},A={};e=e||{},x=n(e.schema),e.verify_html===!1&&(e.valid_elements="*[*]"),e.valid_styles&&(C={},o(e.valid_styles,function(e,t){C[t]=s(e)})),w=c("whitespace_elements","pre script noscript style textarea video audio iframe object"),_=c("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr"),N=c("short_ended_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr track"),E=c("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"),k=c("non_empty_elements","td th iframe video audio object script",N),T=c("text_block_elements","h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure"),S=c("block_elements","hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex option datalist select optgroup",T),o((e.special||"script noscript style textarea").split(" "),function(e){A[e]=new RegExp("</"+e+"[^>]*>","gi")}),e.valid_elements?f(e.valid_elements):(o(x,function(e,t){v[t]={attributes:e.attributes,attributesOrder:e.attributesOrder},y[t]=e.children}),"html5"!=e.schema&&o(t("strong/b em/i"),function(e){e=t(e,"/"),v[e[1]].outputName=e[0]}),v.img.attributesDefault=[{name:"alt",value:""}],o(t("ol ul sub sup blockquote span font a table tbody tr strong em b i"),function(e){v[e]&&(v[e].removeEmpty=!0)}),o(t("p h1 h2 h3 h4 h5 h6 th td pre div address caption"),function(e){v[e].paddEmpty=!0}),o(t("span"),function(e){v[e].removeEmptyAttrs=!0})),p(e.custom_elements),m(e.valid_children),d(e.extended_valid_elements),m("+ol[ul|ol],+ul[ul|ol]"),e.invalid_elements&&o(s(e.invalid_elements),function(e){v[e]&&delete v[e]}),h("span")||d("span[!data-mce-type|*]"),g.children=y,g.styles=C,g.getBoolAttrs=function(){return E},g.getBlockElements=function(){return S},g.getTextBlockElements=function(){return T},g.getShortEndedElements=function(){return N},g.getSelfClosingElements=function(){return _},g.getNonEmptyElements=function(){return k},g.getWhiteSpaceElements=function(){return w},g.getSpecialElements=function(){return A},g.isValidChild=function(e,t){var n=y[e];return!(!n||!n[t])},g.isValid=function(e,t){var n,r,i=h(e);if(i){if(!t)return!0;if(i.attributes[t])return!0;if(n=i.attributePatterns)for(r=n.length;r--;)if(n[r].pattern.test(e))return!0}return!1},g.getElementRule=h,g.getCustomElements=function(){return R},g.addValidElements=d,g.setValidElements=f,g.addCustomElements=p,g.addValidChildren=m,g.elements=v}}),r(_,[w,h,p],function(e,t,n){var r=n.each;return function(i,o){function a(){}var s=this;i=i||{},s.schema=o=o||new e,i.fix_self_closing!==!1&&(i.fix_self_closing=!0),r("comment cdata text start end pi doctype".split(" "),function(e){e&&(s[e]=i[e]||a)}),s.parse=function(e){function r(e){var t,n;for(t=f.length;t--&&f[t].name!==e;);if(t>=0){for(n=f.length-1;n>=t;n--)e=f[n],e.valid&&s.end(e.name);f.length=t}}function a(e,t,n,r,o){var a,s,l=/[\s\u0000-\u001F]+/g;if(t=t.toLowerCase(),n=t in C?t:F(n||r||o||""),w&&!v&&0!==t.indexOf("data-")){if(a=k[t],!a&&T){for(s=T.length;s--&&(a=T[s],!a.pattern.test(t)););-1===s&&(a=null)}if(!a)return;if(a.validValues&&!(n in a.validValues))return}if(W[t]&&!i.allow_script_urls){var c=n.replace(l,"");try{if(c=decodeURIComponent(c),V.test(c))return}catch(u){if(c=unescape(c),V.test(c))return}}p.map[t]=n,p.push({name:t,value:n})}var s=this,l,c=0,u,d,f=[],p,m,h,g,v,y,b,C,x,w,_,N,E,S,k,T,R,A,B,L,D,M,H,P,O,I=0,F=t.decode,z,W=n.makeMap("src,href"),V=/(java|vb)script:/i;for(M=new RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([^>]+)>)|(?:([A-Za-z0-9\\-\\:\\.]+)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))","g"),H=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g,b=o.getShortEndedElements(),D=i.self_closing_elements||o.getSelfClosingElements(),C=o.getBoolAttrs(),w=i.validate,y=i.remove_internals,z=i.fix_self_closing,P=o.getSpecialElements();l=M.exec(e);){if(c<l.index&&s.text(F(e.substr(c,l.index-c))),u=l[6])u=u.toLowerCase(),":"===u.charAt(0)&&(u=u.substr(1)),r(u);else if(u=l[7]){if(u=u.toLowerCase(),":"===u.charAt(0)&&(u=u.substr(1)),x=u in b,z&&D[u]&&f.length>0&&f[f.length-1].name===u&&r(u),!w||(_=o.getElementRule(u))){if(N=!0,w&&(k=_.attributes,T=_.attributePatterns),(S=l[8])?(v=-1!==S.indexOf("data-mce-type"),v&&y&&(N=!1),p=[],p.map={},S.replace(H,a)):(p=[],p.map={}),w&&!v){if(R=_.attributesRequired,A=_.attributesDefault,B=_.attributesForced,L=_.removeEmptyAttrs,L&&!p.length&&(N=!1),B)for(m=B.length;m--;)E=B[m],g=E.name,O=E.value,"{$uid}"===O&&(O="mce_"+I++),p.map[g]=O,p.push({name:g,value:O});if(A)for(m=A.length;m--;)E=A[m],g=E.name,g in p.map||(O=E.value,"{$uid}"===O&&(O="mce_"+I++),p.map[g]=O,p.push({name:g,value:O}));if(R){for(m=R.length;m--&&!(R[m]in p.map););-1===m&&(N=!1)}p.map["data-mce-bogus"]&&(N=!1)}N&&s.start(u,p,x)}else N=!1;if(d=P[u]){d.lastIndex=c=l.index+l[0].length,(l=d.exec(e))?(N&&(h=e.substr(c,l.index-c)),c=l.index+l[0].length):(h=e.substr(c),c=e.length),N&&(h.length>0&&s.text(h,!0),s.end(u)),M.lastIndex=c;continue}x||(S&&S.indexOf("/")==S.length-1?N&&s.end(u):f.push({name:u,valid:N}))}else(u=l[1])?(">"===u.charAt(0)&&(u=" "+u),i.allow_conditional_comments||"[if"!==u.substr(0,3)||(u=" "+u),s.comment(u)):(u=l[2])?s.cdata(u):(u=l[3])?s.doctype(u):(u=l[4])&&s.pi(u,l[5]);c=l.index+l[0].length}for(c<e.length&&s.text(F(e.substr(c))),m=f.length-1;m>=0;m--)u=f[m],u.valid&&s.end(u.name)}}}),r(N,[x,w,_,p],function(e,t,n,r){var i=r.makeMap,o=r.each,a=r.explode,s=r.extend;return function(r,l){function c(t){var n,r,o,a,s,c,d,f,p,m,h,g,v,y;for(h=i("tr,td,th,tbody,thead,tfoot,table"),m=l.getNonEmptyElements(),g=l.getTextBlockElements(),n=0;n<t.length;n++)if(r=t[n],r.parent&&!r.fixed)if(g[r.name]&&"li"==r.parent.name){for(v=r.next;v&&g[v.name];)v.name="li",v.fixed=!0,r.parent.insert(v,r.parent),v=v.next;r.unwrap(r)}else{for(a=[r],o=r.parent;o&&!l.isValidChild(o.name,r.name)&&!h[o.name];o=o.parent)a.push(o);if(o&&a.length>1){for(a.reverse(),s=c=u.filterNode(a[0].clone()),p=0;p<a.length-1;p++){for(l.isValidChild(c.name,a[p].name)?(d=u.filterNode(a[p].clone()),c.append(d)):d=c,f=a[p].firstChild;f&&f!=a[p+1];)y=f.next,d.append(f),f=y;c=d}s.isEmpty(m)?o.insert(r,a[0],!0):(o.insert(s,a[0],!0),o.insert(r,s)),o=a[0],(o.isEmpty(m)||o.firstChild===o.lastChild&&"br"===o.firstChild.name)&&o.empty().remove()}else if(r.parent){if("li"===r.name){if(v=r.prev,v&&("ul"===v.name||"ul"===v.name)){v.append(r);continue}if(v=r.next,v&&("ul"===v.name||"ul"===v.name)){v.insert(r,v.firstChild,!0);continue}r.wrap(u.filterNode(new e("ul",1)));continue}l.isValidChild(r.parent.name,"div")&&l.isValidChild("div",r.name)?r.wrap(u.filterNode(new e("div",1))):"style"===r.name||"script"===r.name?r.empty().remove():r.unwrap()}}}var u=this,d={},f=[],p={},m={};r=r||{},r.validate="validate"in r?r.validate:!0,r.root_name=r.root_name||"body",u.schema=l=l||new t,u.filterNode=function(e){var t,n,r;n in d&&(r=p[n],r?r.push(e):p[n]=[e]),t=f.length;for(;t--;)n=f[t].name,n in e.attributes.map&&(r=m[n],r?r.push(e):m[n]=[e]);return e},u.addNodeFilter=function(e,t){o(a(e),function(e){var n=d[e];n||(d[e]=n=[]),n.push(t)})},u.addAttributeFilter=function(e,t){o(a(e),function(e){var n;for(n=0;n<f.length;n++)if(f[n].name===e)return void f[n].callbacks.push(t);f.push({name:e,callbacks:[t]})})},u.parse=function(t,o){function a(){function e(e){e&&(t=e.firstChild,t&&3==t.type&&(t.value=t.value.replace(R,"")),t=e.lastChild,t&&3==t.type&&(t.value=t.value.replace(L,"")))}var t=y.firstChild,n,i;if(l.isValidChild(y.name,I.toLowerCase())){for(;t;)n=t.next,3==t.type||1==t.type&&"p"!==t.name&&!T[t.name]&&!t.attr("data-mce-type")?i?i.append(t):(i=u(I,1),i.attr(r.forced_root_block_attrs),y.insert(i,t),i.append(t)):(e(i),i=null),t=n;e(i)}}function u(t,n){var r=new e(t,n),i;return t in d&&(i=p[t],i?i.push(r):p[t]=[r]),r}function h(e){var t,n,r;for(t=e.prev;t&&3===t.type;)n=t.value.replace(L,""),n.length>0?(t.value=n,t=t.prev):(r=t.prev,t.remove(),t=r)}function g(e){var t,n={};for(t in e)"li"!==t&&"p"!=t&&(n[t]=e[t]);return n}var v,y,b,C,x,w,_,N,E,S,k,T,R,A=[],B,L,D,M,H,P,O,I;if(o=o||{},p={},m={},T=s(i("script,style,head,html,body,title,meta,param"),l.getBlockElements()),O=l.getNonEmptyElements(),P=l.children,k=r.validate,I="forced_root_block"in o?o.forced_root_block:r.forced_root_block,H=l.getWhiteSpaceElements(),R=/^[ \t\r\n]+/,L=/[ \t\r\n]+$/,D=/[ \t\r\n]+/g,M=/^[ \t\r\n]+$/,v=new n({validate:k,allow_script_urls:r.allow_script_urls,allow_conditional_comments:r.allow_conditional_comments,self_closing_elements:g(l.getSelfClosingElements()),cdata:function(e){b.append(u("#cdata",4)).value=e},text:function(e,t){var n;B||(e=e.replace(D," "),b.lastChild&&T[b.lastChild.name]&&(e=e.replace(R,""))),0!==e.length&&(n=u("#text",3),n.raw=!!t,b.append(n).value=e)},comment:function(e){b.append(u("#comment",8)).value=e},pi:function(e,t){b.append(u(e,7)).value=t,h(b)},doctype:function(e){var t;t=b.append(u("#doctype",10)),t.value=e,h(b)},start:function(e,t,n){var r,i,o,a,s;if(o=k?l.getElementRule(e):{}){for(r=u(o.outputName||e,1),r.attributes=t,r.shortEnded=n,b.append(r),s=P[b.name],s&&P[r.name]&&!s[r.name]&&A.push(r),i=f.length;i--;)a=f[i].name,a in t.map&&(E=m[a],E?E.push(r):m[a]=[r]);T[e]&&h(r),n||(b=r),!B&&H[e]&&(B=!0)}},end:function(t){var n,r,i,o,a;if(r=k?l.getElementRule(t):{}){if(T[t]&&!B){if(n=b.firstChild,n&&3===n.type)if(i=n.value.replace(R,""),i.length>0)n.value=i,n=n.next;else for(o=n.next,n.remove(),n=o;n&&3===n.type;)i=n.value,o=n.next,(0===i.length||M.test(i))&&(n.remove(),n=o),n=o;if(n=b.lastChild,n&&3===n.type)if(i=n.value.replace(L,""),i.length>0)n.value=i,n=n.prev;else for(o=n.prev,n.remove(),n=o;n&&3===n.type;)i=n.value,o=n.prev,(0===i.length||M.test(i))&&(n.remove(),n=o),n=o}if(B&&H[t]&&(B=!1),(r.removeEmpty||r.paddEmpty)&&b.isEmpty(O))if(r.paddEmpty)b.empty().append(new e("#text","3")).value="\xa0";else if(!b.attributes.map.name&&!b.attributes.map.id)return a=b.parent,b.empty().remove(),void(b=a);b=b.parent}}},l),y=b=new e(o.context||r.root_name,11),v.parse(t),k&&A.length&&(o.context?o.invalid=!0:c(A)),I&&("body"==y.name||o.isRootContent)&&a(),!o.invalid){for(S in p){for(E=d[S],C=p[S],_=C.length;_--;)C[_].parent||C.splice(_,1);for(x=0,w=E.length;w>x;x++)E[x](C,S,o)}for(x=0,w=f.length;w>x;x++)if(E=f[x],E.name in m){for(C=m[E.name],_=C.length;_--;)C[_].parent||C.splice(_,1);for(_=0,N=E.callbacks.length;N>_;_++)E.callbacks[_](C,E.name,o)}}return y},r.remove_trailing_brs&&u.addNodeFilter("br",function(t){var n,r=t.length,i,o=s({},l.getBlockElements()),a=l.getNonEmptyElements(),c,u,d,f,p,m;for(o.body=1,n=0;r>n;n++)if(i=t[n],c=i.parent,o[i.parent.name]&&i===c.lastChild){for(d=i.prev;d;){if(f=d.name,"span"!==f||"bookmark"!==d.attr("data-mce-type")){if("br"!==f)break;if("br"===f){i=null;break}}d=d.prev}i&&(i.remove(),c.isEmpty(a)&&(p=l.getElementRule(c.name),p&&(p.removeEmpty?c.remove():p.paddEmpty&&(c.empty().append(new e("#text",3)).value="\xa0"))))}else{for(u=i;c&&c.firstChild===u&&c.lastChild===u&&(u=c,!o[c.name]);)c=c.parent;u===c&&(m=new e("#text",3),m.value="\xa0",i.replace(m))}}),r.allow_html_in_named_anchor||u.addAttributeFilter("id,name",function(e){for(var t=e.length,n,r,i,o;t--;)if(o=e[t],"a"===o.name&&o.firstChild&&!o.attr("href")){i=o.parent,n=o.lastChild;do r=n.prev,i.insert(n,o),n=r;while(n)}})}}),r(E,[h,p],function(e,t){var n=t.makeMap;return function(t){var r=[],i,o,a,s,l;return t=t||{},i=t.indent,o=n(t.indent_before||""),a=n(t.indent_after||""),s=e.getEncodeFunc(t.entity_encoding||"raw",t.entities),l="html"==t.element_format,{start:function(e,t,n){var c,u,d,f;if(i&&o[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n")),r.push("<",e),t)for(c=0,u=t.length;u>c;c++)d=t[c],r.push(" ",d.name,'="',s(d.value,!0),'"');r[r.length]=!n||l?">":" />",n&&i&&a[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n"))},end:function(e){var t;r.push("</",e,">"),i&&a[e]&&r.length>0&&(t=r[r.length-1],t.length>0&&"\n"!==t&&r.push("\n"))},text:function(e,t){e.length>0&&(r[r.length]=t?e:s(e))},cdata:function(e){r.push("<![CDATA[",e,"]]>")},comment:function(e){r.push("<!--",e,"-->")},pi:function(e,t){t?r.push("<?",e," ",t,"?>"):r.push("<?",e,"?>"),i&&r.push("\n")},doctype:function(e){r.push("<!DOCTYPE",e,">",i?"\n":"")},reset:function(){r.length=0},getContent:function(){return r.join("").replace(/\n$/,"")}}}}),r(S,[E,w],function(e,t){return function(n,r){var i=this,o=new e(n);n=n||{},n.validate="validate"in n?n.validate:!0,i.schema=r=r||new t,i.writer=o,i.serialize=function(e){function t(e){var n=i[e.type],s,l,c,u,d,f,p,m,h;if(n)n(e);else{if(s=e.name,l=e.shortEnded,c=e.attributes,a&&c&&c.length>1){for(f=[],f.map={},h=r.getElementRule(e.name),p=0,m=h.attributesOrder.length;m>p;p++)u=h.attributesOrder[p],u in c.map&&(d=c.map[u],f.map[u]=d,f.push({name:u,value:d}));for(p=0,m=c.length;m>p;p++)u=c[p].name,u in f.map||(d=c.map[u],f.map[u]=d,f.push({name:u,value:d}));c=f}if(o.start(e.name,c,l),!l){if(e=e.firstChild)do t(e);while(e=e.next);o.end(s)}}}var i,a;return a=n.validate,i={3:function(e){o.text(e.value,e.raw)},8:function(e){o.comment(e.value)},7:function(e){o.pi(e.name,e.value)},10:function(e){o.doctype(e.value)},4:function(e){o.cdata(e.value)},11:function(e){if(e=e.firstChild)do t(e);while(e=e.next)}},o.reset(),1!=e.type||n.inner?i[11](e):t(e),o.getContent()}}}),r(k,[y,N,h,S,x,w,g,p],function(e,t,n,r,i,o,a,s){var l=s.each,c=s.trim,u=e.DOM;return function(e,i){var s,d,f;return i&&(s=i.dom,d=i.schema),s=s||u,d=d||new o(e),e.entity_encoding=e.entity_encoding||"named",e.remove_trailing_brs="remove_trailing_brs"in e?e.remove_trailing_brs:!0,f=new t(e,d),f.addAttributeFilter("src,href,style",function(t,n){for(var r=t.length,i,o,a="data-mce-"+n,l=e.url_converter,c=e.url_converter_scope,u;r--;)i=t[r],o=i.attributes.map[a],o!==u?(i.attr(n,o.length>0?o:null),i.attr(a,null)):(o=i.attributes.map[n],"style"===n?o=s.serializeStyle(s.parseStyle(o),i.name):l&&(o=l.call(c,o,n,i.name)),i.attr(n,o.length>0?o:null))}),f.addAttributeFilter("class",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.attr("class").replace(/(?:^|\s)mce-item-\w+(?!\S)/g,""),n.attr("class",r.length>0?r:null)}),f.addAttributeFilter("data-mce-type",function(e,t,n){for(var r=e.length,i;r--;)i=e[r],"bookmark"!==i.attributes.map["data-mce-type"]||n.cleanup||i.remove()}),f.addAttributeFilter("data-mce-expando",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),f.addNodeFilter("noscript",function(e){for(var t=e.length,r;t--;)r=e[t].firstChild,r&&(r.value=n.decode(r.value))}),f.addNodeFilter("script,style",function(e,t){function n(e){return e.replace(/(<!--\[CDATA\[|\]\]-->)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi,"").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")}for(var r=e.length,i,o;r--;)if(i=e[r],o=i.firstChild?i.firstChild.value:"","script"===t){var a=(i.attr("type")||"text/javascript").replace(/^mce\-/,"");i.attr("type","text/javascript"===a?null:a),o.length>0&&(i.firstChild.value="// <![CDATA[\n"+n(o)+"\n// ]]>")}else o.length>0&&(i.firstChild.value="<!--\n"+n(o)+"\n-->")}),f.addNodeFilter("#comment",function(e){for(var t=e.length,n;t--;)n=e[t],0===n.value.indexOf("[CDATA[")?(n.name="#cdata",n.type=4,n.value=n.value.replace(/^\[CDATA\[|\]\]$/g,"")):0===n.value.indexOf("mce:protected ")&&(n.name="#text",n.type=3,n.raw=!0,n.value=unescape(n.value).substr(14))}),f.addNodeFilter("xml:namespace,input",function(e,t){for(var n=e.length,r;n--;)r=e[n],7===r.type?r.remove():1===r.type&&("input"!==t||"type"in r.attributes.map||r.attr("type","text"))}),e.fix_list_elements&&f.addNodeFilter("ul,ol",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.parent,("ul"===r.name||"ol"===r.name)&&n.prev&&"li"===n.prev.name&&n.prev.append(n)}),f.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style,data-mce-selected",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),{schema:d,addNodeFilter:f.addNodeFilter,addAttributeFilter:f.addAttributeFilter,serialize:function(t,n){var i=this,o,u,p,m,h;return a.ie&&s.select("script,style,select,map").length>0?(h=t.innerHTML,t=t.cloneNode(!1),s.setHTML(t,h)):t=t.cloneNode(!0),o=t.ownerDocument.implementation,o.createHTMLDocument&&(u=o.createHTMLDocument(""),l("BODY"==t.nodeName?t.childNodes:[t],function(e){u.body.appendChild(u.importNode(e,!0))}),t="BODY"!=t.nodeName?u.body.firstChild:u.body,p=s.doc,s.doc=u),n=n||{},n.format=n.format||"html",n.selection&&(n.forced_root_block=""),n.no_events||(n.node=t,i.onPreProcess(n)),m=new r(e,d),n.content=m.serialize(f.parse(c(n.getInner?t.innerHTML:s.getOuterHTML(t)),n)),n.cleanup||(n.content=n.content.replace(/\uFEFF/g,"")),n.no_events||i.onPostProcess(n),p&&(s.doc=p),n.node=null,n.content},addRules:function(e){d.addValidElements(e)},setRules:function(e){d.setValidElements(e)},onPreProcess:function(e){i&&i.fire("PreProcess",e)},onPostProcess:function(e){i&&i.fire("PostProcess",e)}}}}),r(T,[],function(){function e(e){function t(t,n){var r,i=0,o,a,s,l,c,u,d=-1,f;if(r=t.duplicate(),r.collapse(n),f=r.parentElement(),f.ownerDocument===e.dom.doc){for(;"false"===f.contentEditable;)f=f.parentNode;if(!f.hasChildNodes())return{node:f,inside:1};for(s=f.children,o=s.length-1;o>=i;)if(u=Math.floor((i+o)/2),l=s[u],r.moveToElementText(l),d=r.compareEndPoints(n?"StartToStart":"EndToEnd",t),d>0)o=u-1;else{if(!(0>d))return{node:l};i=u+1}if(0>d)for(l?r.collapse(!1):(r.moveToElementText(f),r.collapse(!0),l=f,a=!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",1)&&f==r.parentElement();)c++;else for(r.collapse(!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",-1)&&f==r.parentElement();)c++;return{node:l,position:d,offset:c,inside:a}}}function n(){function n(e){var n=t(o,e),r,i,s=0,l,c,u;if(r=n.node,i=n.offset,n.inside&&!r.hasChildNodes())return void a[e?"setStart":"setEnd"](r,0);if(i===c)return void a[e?"setStartBefore":"setEndAfter"](r);if(n.position<0){if(l=n.inside?r.firstChild:r.nextSibling,!l)return void a[e?"setStartAfter":"setEndAfter"](r);if(!i)return void(3==l.nodeType?a[e?"setStart":"setEnd"](l,0):a[e?"setStartBefore":"setEndBefore"](l)); +for(;l;){if(u=l.nodeValue,s+=u.length,s>=i){r=l,s-=i,s=u.length-s;break}l=l.nextSibling}}else{if(l=r.previousSibling,!l)return a[e?"setStartBefore":"setEndBefore"](r);if(!i)return void(3==r.nodeType?a[e?"setStart":"setEnd"](l,r.nodeValue.length):a[e?"setStartAfter":"setEndAfter"](l));for(;l;){if(s+=l.nodeValue.length,s>=i){r=l,s-=i;break}l=l.previousSibling}}a[e?"setStart":"setEnd"](r,s)}var o=e.getRng(),a=i.createRng(),s,l,c,u,d;if(s=o.item?o.item(0):o.parentElement(),s.ownerDocument!=i.doc)return a;if(l=e.isCollapsed(),o.item)return a.setStart(s.parentNode,i.nodeIndex(s)),a.setEnd(a.startContainer,a.startOffset+1),a;try{n(!0),l||n()}catch(f){if(-2147024809!=f.number)throw f;d=r.getBookmark(2),c=o.duplicate(),c.collapse(!0),s=c.parentElement(),l||(c=o.duplicate(),c.collapse(!1),u=c.parentElement(),u.innerHTML=u.innerHTML),s.innerHTML=s.innerHTML,r.moveToBookmark(d),o=e.getRng(),n(!0),l||n()}return a}var r=this,i=e.dom,o=!1;this.getBookmark=function(n){function r(e){var t,n,r,o,a=[];for(t=e.parentNode,n=i.getRoot().parentNode;t!=n&&9!==t.nodeType;){for(r=t.children,o=r.length;o--;)if(e===r[o]){a.push(o);break}e=t,t=t.parentNode}return a}function o(e){var n;return n=t(a,e),n?{position:n.position,offset:n.offset,indexes:r(n.node),inside:n.inside}:void 0}var a=e.getRng(),s={};return 2===n&&(a.item?s.start={ctrl:!0,indexes:r(a.item(0))}:(s.start=o(!0),e.isCollapsed()||(s.end=o()))),s},this.moveToBookmark=function(e){function t(e){var t,n,r,o;for(t=i.getRoot(),n=e.length-1;n>=0;n--)o=t.children,r=e[n],r<=o.length-1&&(t=o[r]);return t}function n(n){var i=e[n?"start":"end"],a,s,l,c;i&&(a=i.position>0,s=o.createTextRange(),s.moveToElementText(t(i.indexes)),c=i.offset,c!==l?(s.collapse(i.inside||a),s.moveStart("character",a?-c:c)):s.collapse(n),r.setEndPoint(n?"StartToStart":"EndToStart",s),n&&r.collapse(!0))}var r,o=i.doc.body;e.start&&(e.start.ctrl?(r=o.createControlRange(),r.addElement(t(e.start.indexes)),r.select()):(r=o.createTextRange(),n(!0),n(),r.select()))},this.addRange=function(t){function n(e){var t,n,a,d,m;a=i.create("a"),t=e?s:c,n=e?l:u,d=r.duplicate(),(t==f||t==f.documentElement)&&(t=p,n=0),3==t.nodeType?(t.parentNode.insertBefore(a,t),d.moveToElementText(a),d.moveStart("character",n),i.remove(a),r.setEndPoint(e?"StartToStart":"EndToEnd",d)):(m=t.childNodes,m.length?(n>=m.length?i.insertAfter(a,m[m.length-1]):t.insertBefore(a,m[n]),d.moveToElementText(a)):t.canHaveHTML&&(t.innerHTML="<span></span>",a=t.firstChild,d.moveToElementText(a),d.collapse(o)),r.setEndPoint(e?"StartToStart":"EndToEnd",d),i.remove(a))}var r,a,s,l,c,u,d,f=e.dom.doc,p=f.body,m,h;if(s=t.startContainer,l=t.startOffset,c=t.endContainer,u=t.endOffset,r=p.createTextRange(),s==c&&1==s.nodeType){if(l==u&&!s.hasChildNodes()){if(s.canHaveHTML)return d=s.previousSibling,d&&!d.hasChildNodes()&&i.isBlock(d)?d.innerHTML="":d=null,s.innerHTML="<span></span><span></span>",r.moveToElementText(s.lastChild),r.select(),i.doc.selection.clear(),s.innerHTML="",void(d&&(d.innerHTML=""));l=i.nodeIndex(s),s=s.parentNode}if(l==u-1)try{if(h=s.childNodes[l],a=p.createControlRange(),a.addElement(h),a.select(),m=e.getRng(),m.item&&h===m.item(0))return}catch(g){}}n(!0),n(),r.select()},this.getRangeAt=n}return e}),r(R,[g],function(e){return{BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,LEFT:37,RIGHT:39,SPACEBAR:32,TAB:9,UP:38,modifierPressed:function(e){return e.shiftKey||e.ctrlKey||e.altKey},metaKeyPressed:function(t){return(e.mac?t.metaKey:t.ctrlKey)&&!t.altKey}}}),r(A,[R,p,g],function(e,t,n){return function(r,i){function o(e){var t=i.settings.object_resizing;return t===!1||n.iOS?!1:("string"!=typeof t&&(t="table,img,div"),"false"===e.getAttribute("data-mce-resize")?!1:i.dom.is(e,t))}function a(t){var n,r;n=t.screenX-k,r=t.screenY-T,H=n*E[2]+B,P=r*E[3]+L,H=5>H?5:H,P=5>P?5:P,(e.modifierPressed(t)||"IMG"==w.nodeName&&E[2]*E[3]!==0)&&(H=Math.round(P/D),P=Math.round(H*D)),C.setStyles(_,{width:H,height:P}),E[2]<0&&_.clientWidth<=H&&C.setStyle(_,"left",R+(B-H)),E[3]<0&&_.clientHeight<=P&&C.setStyle(_,"top",A+(L-P)),M||(i.fire("ObjectResizeStart",{target:w,width:B,height:L}),M=!0)}function s(){function e(e,t){t&&(w.style[e]||!i.schema.isValid(w.nodeName.toLowerCase(),e)?C.setStyle(w,e,t):C.setAttrib(w,e,t))}M=!1,e("width",H),e("height",P),C.unbind(O,"mousemove",a),C.unbind(O,"mouseup",s),I!=O&&(C.unbind(I,"mousemove",a),C.unbind(I,"mouseup",s)),C.remove(_),F&&"TABLE"!=w.nodeName||l(w),i.fire("ObjectResized",{target:w,width:H,height:P}),i.nodeChanged()}function l(e,t,r){var l,u,d,f,p,m=i.getBody();g(),l=C.getPos(e,m),R=l.x,A=l.y,p=e.getBoundingClientRect(),u=p.width||p.right-p.left,d=p.height||p.bottom-p.top,w!=e&&(h(),w=e,H=P=0),f=i.fire("ObjectSelected",{target:e}),o(e)&&!f.isDefaultPrevented()?x(N,function(e,o){function l(t){k=t.screenX,T=t.screenY,B=w.clientWidth,L=w.clientHeight,D=L/B,E=e,_=w.cloneNode(!0),C.addClass(_,"mce-clonedresizable"),_.contentEditable=!1,_.unSelectabe=!0,C.setStyles(_,{left:R,top:A,margin:0}),_.removeAttribute("data-mce-selected"),i.getBody().appendChild(_),C.bind(O,"mousemove",a),C.bind(O,"mouseup",s),I!=O&&(C.bind(I,"mousemove",a),C.bind(I,"mouseup",s))}var c,f;return t?void(o==t&&l(r)):(c=C.get("mceResizeHandle"+o),c?C.show(c):(f=i.getBody(),c=C.add(f,"div",{id:"mceResizeHandle"+o,"data-mce-bogus":!0,"class":"mce-resizehandle",unselectable:!0,style:"cursor:"+o+"-resize; margin:0; padding:0"}),n.ie&&(c.contentEditable=!1)),e.elm||(C.bind(c,"mousedown",function(e){e.stopImmediatePropagation(),e.preventDefault(),l(e)}),e.elm=c),void C.setStyles(c,{left:u*e[0]+R-c.offsetWidth/2,top:d*e[1]+A-c.offsetHeight/2}))}):c(),w.setAttribute("data-mce-selected","1")}function c(){var e,t;g(),w&&w.removeAttribute("data-mce-selected");for(e in N)t=C.get("mceResizeHandle"+e),t&&(C.unbind(t),C.remove(t))}function u(e){function t(e,t){if(e)do if(e===t)return!0;while(e=e.parentNode)}var n;return x(C.select("img[data-mce-selected],hr[data-mce-selected]"),function(e){e.removeAttribute("data-mce-selected")}),n="mousedown"==e.type?e.target:r.getNode(),n=C.getParent(n,F?"table":"table,img,hr"),t(n,i.getBody())&&(v(),t(r.getStart(),n)&&t(r.getEnd(),n)&&(!F||n!=r.getStart()&&"IMG"!==r.getStart().nodeName))?void l(n):void c()}function d(e,t,n){e&&e.attachEvent&&e.attachEvent("on"+t,n)}function f(e,t,n){e&&e.detachEvent&&e.detachEvent("on"+t,n)}function p(e){var t=e.srcElement,n,r,o,a,s,c,u;n=t.getBoundingClientRect(),c=S.clientX-n.left,u=S.clientY-n.top;for(r in N)if(o=N[r],a=t.offsetWidth*o[0],s=t.offsetHeight*o[1],Math.abs(a-c)<8&&Math.abs(s-u)<8){E=o;break}M=!0,i.getDoc().selection.empty(),l(t,r,S)}function m(e){var t=e.srcElement;if(t!=w){if(h(),0===t.id.indexOf("mceResizeHandle"))return void(e.returnValue=!1);("IMG"==t.nodeName||"TABLE"==t.nodeName)&&(c(),w=t,d(t,"resizestart",p))}}function h(){f(w,"resizestart",p)}function g(){for(var e in N){var t=N[e];t.elm&&(C.unbind(t.elm),delete t.elm)}}function v(){try{i.getDoc().execCommand("enableObjectResizing",!1,!1)}catch(e){}}function y(e){var t;if(F){t=O.body.createControlRange();try{return t.addElement(e),t.select(),!0}catch(n){}}}function b(){w=_=null,F&&(h(),f(i.getBody(),"controlselect",m))}var C=i.dom,x=t.each,w,_,N,E,S,k,T,R,A,B,L,D,M,H,P,O=i.getDoc(),I=document,F=n.ie&&n.ie<11;N={n:[.5,0,0,-1],e:[1,.5,1,0],s:[.5,1,0,1],w:[0,.5,-1,0],nw:[0,0,-1,-1],ne:[1,0,1,-1],se:[1,1,1,1],sw:[0,1,-1,1]};var z=".mce-content-body";return i.contentStyles.push(z+" div.mce-resizehandle {position: absolute;border: 1px solid black;background: #FFF;width: 5px;height: 5px;z-index: 10000}"+z+" .mce-resizehandle:hover {background: #000}"+z+" img[data-mce-selected], hr[data-mce-selected] {outline: 1px solid black;resize: none}"+z+" .mce-clonedresizable {position: absolute;"+(n.gecko?"":"outline: 1px dashed black;")+"opacity: .5;filter: alpha(opacity=50);z-index: 10000}"),i.on("init",function(){F?(i.on("ObjectResized",function(e){"TABLE"!=e.target.nodeName&&(c(),y(e.target))}),d(i.getBody(),"controlselect",m),i.on("mousedown",function(e){S=e})):(v(),n.ie>=11&&(i.on("mouseup",function(e){var t=e.target.nodeName;/^(TABLE|IMG|HR)$/.test(t)&&(i.selection.select(e.target,"TABLE"==t),i.nodeChanged())}),i.dom.bind(i.getBody(),"mscontrolselect",function(e){/^(TABLE|IMG|HR)$/.test(e.target.nodeName)&&(e.preventDefault(),"IMG"==e.target.tagName&&window.setTimeout(function(){i.selection.select(e.target)},0))}))),i.on("nodechange mousedown mouseup ResizeEditor",u),i.on("keydown keyup",function(e){w&&"TABLE"==w.nodeName&&u(e)})}),i.on("remove",g),{isResizable:o,showResizeRect:l,hideResizeRect:c,updateResizeRect:u,controlSelect:y,destroy:b}}}),r(B,[p,f],function(e,t){function n(e){this.walk=function(t,n){function i(e){var t;return t=e[0],3===t.nodeType&&t===l&&c>=t.nodeValue.length&&e.splice(0,1),t=e[e.length-1],0===d&&e.length>0&&t===u&&3===t.nodeType&&e.splice(e.length-1,1),e}function o(e,t,n){for(var r=[];e&&e!=n;e=e[t])r.push(e);return r}function a(e,t){do{if(e.parentNode==t)return e;e=e.parentNode}while(e)}function s(e,t,r){var a=r?"nextSibling":"previousSibling";for(h=e,g=h.parentNode;h&&h!=t;h=g)g=h.parentNode,v=o(h==e?h:h[a],a),v.length&&(r||v.reverse(),n(i(v)))}var l=t.startContainer,c=t.startOffset,u=t.endContainer,d=t.endOffset,f,p,m,h,g,v,y;if(y=e.select("td.mce-item-selected,th.mce-item-selected"),y.length>0)return void r(y,function(e){n([e])});if(1==l.nodeType&&l.hasChildNodes()&&(l=l.childNodes[c]),1==u.nodeType&&u.hasChildNodes()&&(u=u.childNodes[Math.min(d-1,u.childNodes.length-1)]),l==u)return n(i([l]));for(f=e.findCommonAncestor(l,u),h=l;h;h=h.parentNode){if(h===u)return s(l,f,!0);if(h===f)break}for(h=u;h;h=h.parentNode){if(h===l)return s(u,f);if(h===f)break}p=a(l,f)||l,m=a(u,f)||u,s(l,p,!0),v=o(p==l?p:p.nextSibling,"nextSibling",m==u?m.nextSibling:m),v.length&&n(i(v)),s(u,m)},this.split=function(e){function t(e,t){return e.splitText(t)}var n=e.startContainer,r=e.startOffset,i=e.endContainer,o=e.endOffset;return n==i&&3==n.nodeType?r>0&&r<n.nodeValue.length&&(i=t(n,r),n=i.previousSibling,o>r?(o-=r,n=i=t(i,o).previousSibling,o=i.nodeValue.length,r=0):o=0):(3==n.nodeType&&r>0&&r<n.nodeValue.length&&(n=t(n,r),r=0),3==i.nodeType&&o>0&&o<i.nodeValue.length&&(i=t(i,o).previousSibling,o=i.nodeValue.length)),{startContainer:n,startOffset:r,endContainer:i,endOffset:o}},this.normalize=function(n){function r(r){function a(n,r){for(var i=new t(n,e.getParent(n.parentNode,e.isBlock)||f);n=i[r?"prev":"next"]();)if("BR"===n.nodeName)return!0}function s(e,t){return e.previousSibling&&e.previousSibling.nodeName==t}function l(n,r){var a,s,l;if(r=r||c,l=e.getParent(r.parentNode,e.isBlock)||f,n&&"BR"==r.nodeName&&v&&e.isEmpty(l))return c=r.parentNode,u=e.nodeIndex(r),void(i=!0);for(a=new t(r,l);p=a[n?"prev":"next"]();){if(3===p.nodeType&&p.nodeValue.length>0)return c=p,u=n?p.nodeValue.length:0,void(i=!0);if(e.isBlock(p)||m[p.nodeName.toLowerCase()])return;s=p}o&&s&&(c=s,i=!0,u=0)}var c,u,d,f=e.getRoot(),p,m,h,g,v;if(c=n[(r?"start":"end")+"Container"],u=n[(r?"start":"end")+"Offset"],v=1==c.nodeType&&u===c.childNodes.length,m=e.schema.getNonEmptyElements(),g=r,1==c.nodeType&&u>c.childNodes.length-1&&(g=!1),9===c.nodeType&&(c=e.getRoot(),u=0),c===f){if(g&&(p=c.childNodes[u>0?u-1:0],p&&(h=p.nodeName.toLowerCase(),m[p.nodeName]||"TABLE"==p.nodeName)))return;if(c.hasChildNodes()&&(u=Math.min(!g&&u>0?u-1:u,c.childNodes.length-1),c=c.childNodes[u],u=0,c.hasChildNodes()&&!/TABLE/.test(c.nodeName))){p=c,d=new t(c,f);do{if(3===p.nodeType&&p.nodeValue.length>0){u=g?0:p.nodeValue.length,c=p,i=!0;break}if(m[p.nodeName.toLowerCase()]){u=e.nodeIndex(p),c=p.parentNode,"IMG"!=p.nodeName||g||u++,i=!0;break}}while(p=g?d.next():d.prev())}}o&&(3===c.nodeType&&0===u&&l(!0),1===c.nodeType&&(p=c.childNodes[u],p||(p=c.childNodes[u-1]),!p||"BR"!==p.nodeName||s(p,"A")||a(p)||a(p,!0)||l(!0,p))),g&&!o&&3===c.nodeType&&u===c.nodeValue.length&&l(!1),i&&n["set"+(r?"Start":"End")](c,u)}var i,o;return o=n.collapsed,r(!0),o||r(),i&&o&&n.collapse(!0),i}}var r=e.each;return n.compareRanges=function(e,t){if(e&&t){if(!e.item&&!e.duplicate)return e.startContainer==t.startContainer&&e.startOffset==t.startOffset;if(e.item&&t.item&&e.item(0)===t.item(0))return!0;if(e.isEqual&&t.isEqual&&t.isEqual(e))return!0}return!1},n}),r(L,[f,T,A,B,g,p],function(e,n,r,i,o,a){function s(e,t,i,o){var a=this;a.dom=e,a.win=t,a.serializer=i,a.editor=o,a.controlSelection=new r(a,o),a.win.getSelection||(a.tridentSel=new n(a))}var l=a.each,c=a.grep,u=a.trim,d=o.ie,f=o.opera;return s.prototype={setCursorLocation:function(e,t){var n=this,r=n.dom.createRng();e?(r.setStart(e,t),r.setEnd(e,t),n.setRng(r),n.collapse(!1)):(n._moveEndPoint(r,n.editor.getBody(),!0),n.setRng(r))},getContent:function(e){var n=this,r=n.getRng(),i=n.dom.create("body"),o=n.getSel(),a,s,l;return e=e||{},a=s="",e.get=!0,e.format=e.format||"html",e.selection=!0,n.editor.fire("BeforeGetContent",e),"text"==e.format?n.isCollapsed()?"":r.text||(o.toString?o.toString():""):(r.cloneContents?(l=r.cloneContents(),l&&i.appendChild(l)):r.item!==t||r.htmlText!==t?(i.innerHTML="<br>"+(r.item?r.item(0).outerHTML:r.htmlText),i.removeChild(i.firstChild)):i.innerHTML=r.toString(),/^\s/.test(i.innerHTML)&&(a=" "),/\s+$/.test(i.innerHTML)&&(s=" "),e.getInner=!0,e.content=n.isCollapsed()?"":a+n.serializer.serialize(i,e)+s,n.editor.fire("GetContent",e),e.content)},setContent:function(e,t){var n=this,r=n.getRng(),i,o=n.win.document,a,s;if(t=t||{format:"html"},t.set=!0,t.selection=!0,e=t.content=e,t.no_events||n.editor.fire("BeforeSetContent",t),e=t.content,r.insertNode){e+='<span id="__caret">_</span>',r.startContainer==o&&r.endContainer==o?o.body.innerHTML=e:(r.deleteContents(),0===o.body.childNodes.length?o.body.innerHTML=e:r.createContextualFragment?r.insertNode(r.createContextualFragment(e)):(a=o.createDocumentFragment(),s=o.createElement("div"),a.appendChild(s),s.outerHTML=e,r.insertNode(a))),i=n.dom.get("__caret"),r=o.createRange(),r.setStartBefore(i),r.setEndBefore(i),n.setRng(r),n.dom.remove("__caret");try{n.setRng(r)}catch(l){}}else r.item&&(o.execCommand("Delete",!1,null),r=n.getRng()),/^\s+/.test(e)?(r.pasteHTML('<span id="__mce_tmp">_</span>'+e),n.dom.remove("__mce_tmp")):r.pasteHTML(e);t.no_events||n.editor.fire("SetContent",t)},getStart:function(){var e=this,t=e.getRng(),n,r,i,o;if(t.duplicate||t.item){if(t.item)return t.item(0);for(i=t.duplicate(),i.collapse(1),n=i.parentElement(),n.ownerDocument!==e.dom.doc&&(n=e.dom.getRoot()),r=o=t.parentElement();o=o.parentNode;)if(o==n){n=r;break}return n}return n=t.startContainer,1==n.nodeType&&n.hasChildNodes()&&(n=n.childNodes[Math.min(n.childNodes.length-1,t.startOffset)]),n&&3==n.nodeType?n.parentNode:n},getEnd:function(){var e=this,t=e.getRng(),n,r;return t.duplicate||t.item?t.item?t.item(0):(t=t.duplicate(),t.collapse(0),n=t.parentElement(),n.ownerDocument!==e.dom.doc&&(n=e.dom.getRoot()),n&&"BODY"==n.nodeName?n.lastChild||n:n):(n=t.endContainer,r=t.endOffset,1==n.nodeType&&n.hasChildNodes()&&(n=n.childNodes[r>0?r-1:r]),n&&3==n.nodeType?n.parentNode:n)},getBookmark:function(e,t){function n(e,t){var n=0;return l(a.select(e),function(e,r){e==t&&(n=r)}),n}function r(e){function t(t){var n,r,i,o=t?"start":"end";n=e[o+"Container"],r=e[o+"Offset"],1==n.nodeType&&"TR"==n.nodeName&&(i=n.childNodes,n=i[Math.min(t?r:r-1,i.length-1)],n&&(r=t?0:n.childNodes.length,e["set"+(t?"Start":"End")](n,r)))}return t(!0),t(),e}function i(){function e(e,n){var i=e[n?"startContainer":"endContainer"],a=e[n?"startOffset":"endOffset"],s=[],l,c,u=0;if(3==i.nodeType){if(t)for(l=i.previousSibling;l&&3==l.nodeType;l=l.previousSibling)a+=l.nodeValue.length;s.push(a)}else c=i.childNodes,a>=c.length&&c.length&&(u=1,a=Math.max(0,c.length-1)),s.push(o.dom.nodeIndex(c[a],t)+u);for(;i&&i!=r;i=i.parentNode)s.push(o.dom.nodeIndex(i,t));return s}var n=o.getRng(!0),r=a.getRoot(),i={};return i.start=e(n,!0),o.isCollapsed()||(i.end=e(n)),i}var o=this,a=o.dom,s,c,u,d,f,p,m="",h;if(2==e)return p=o.getNode(),f=p?p.nodeName:null,"IMG"==f?{name:f,index:n(f,p)}:o.tridentSel?o.tridentSel.getBookmark(e):i();if(e)return{rng:o.getRng()};if(s=o.getRng(),u=a.uniqueId(),d=o.isCollapsed(),h="overflow:hidden;line-height:0px",s.duplicate||s.item){if(s.item)return p=s.item(0),f=p.nodeName,{name:f,index:n(f,p)};c=s.duplicate();try{s.collapse(),s.pasteHTML('<span data-mce-type="bookmark" id="'+u+'_start" style="'+h+'">'+m+"</span>"),d||(c.collapse(!1),s.moveToElementText(c.parentElement()),0===s.compareEndPoints("StartToEnd",c)&&c.move("character",-1),c.pasteHTML('<span data-mce-type="bookmark" id="'+u+'_end" style="'+h+'">'+m+"</span>"))}catch(g){return null}}else{if(p=o.getNode(),f=p.nodeName,"IMG"==f)return{name:f,index:n(f,p)};c=r(s.cloneRange()),d||(c.collapse(!1),c.insertNode(a.create("span",{"data-mce-type":"bookmark",id:u+"_end",style:h},m))),s=r(s),s.collapse(!0),s.insertNode(a.create("span",{"data-mce-type":"bookmark",id:u+"_start",style:h},m))}return o.moveToBookmark({id:u,keep:1}),{id:u}},moveToBookmark:function(e){function t(t){var n=e[t?"start":"end"],r,i,o,l;if(n){for(o=n[0],i=s,r=n.length-1;r>=1;r--){if(l=i.childNodes,n[r]>l.length-1)return;i=l[n[r]]}3===i.nodeType&&(o=Math.min(n[0],i.nodeValue.length)),1===i.nodeType&&(o=Math.min(n[0],i.childNodes.length)),t?a.setStart(i,o):a.setEnd(i,o)}return!0}function n(t){var n=o.get(e.id+"_"+t),r,i,a,s,d=e.keep;if(n&&(r=n.parentNode,"start"==t?(d?(r=n.firstChild,i=1):i=o.nodeIndex(n),u=p=r,m=h=i):(d?(r=n.firstChild,i=1):i=o.nodeIndex(n),p=r,h=i),!d)){for(s=n.previousSibling,a=n.nextSibling,l(c(n.childNodes),function(e){3==e.nodeType&&(e.nodeValue=e.nodeValue.replace(/\uFEFF/g,""))});n=o.get(e.id+"_"+t);)o.remove(n,1);s&&a&&s.nodeType==a.nodeType&&3==s.nodeType&&!f&&(i=s.nodeValue.length,s.appendData(a.nodeValue),o.remove(a),"start"==t?(u=p=s,m=h=i):(p=s,h=i))}}function r(e){return!o.isBlock(e)||e.innerHTML||d||(e.innerHTML='<br data-mce-bogus="1" />'),e}var i=this,o=i.dom,a,s,u,p,m,h;if(e)if(e.start){if(a=o.createRng(),s=o.getRoot(),i.tridentSel)return i.tridentSel.moveToBookmark(e);t(!0)&&t()&&i.setRng(a)}else e.id?(n("start"),n("end"),u&&(a=o.createRng(),a.setStart(r(u),m),a.setEnd(r(p),h),i.setRng(a))):e.name?i.select(o.select(e.name)[e.index]):e.rng&&i.setRng(e.rng)},select:function(e,t){var n=this,r=n.dom,i=r.createRng(),o;if(n.lastFocusBookmark=null,e){if(!t&&n.controlSelection.controlSelect(e))return;o=r.nodeIndex(e),i.setStart(e.parentNode,o),i.setEnd(e.parentNode,o+1),t&&(n._moveEndPoint(i,e,!0),n._moveEndPoint(i,e)),n.setRng(i)}return e},isCollapsed:function(){var e=this,t=e.getRng(),n=e.getSel();return!t||t.item?!1:t.compareEndPoints?0===t.compareEndPoints("StartToEnd",t):!n||t.collapsed},collapse:function(e){var t=this,n=t.getRng(),r;n.item&&(r=n.item(0),n=t.win.document.body.createTextRange(),n.moveToElementText(r)),n.collapse(!!e),t.setRng(n)},getSel:function(){var e=this.win;return e.getSelection?e.getSelection():e.document.selection},getRng:function(e){function t(e,t,n){try{return t.compareBoundaryPoints(e,n)}catch(r){return-1}}var n=this,r,i,o,a=n.win.document,s;if(!e&&n.lastFocusBookmark){var l=n.lastFocusBookmark;return l.startContainer?(i=a.createRange(),i.setStart(l.startContainer,l.startOffset),i.setEnd(l.endContainer,l.endOffset)):i=l,i}if(e&&n.tridentSel)return n.tridentSel.getRangeAt(0);try{(r=n.getSel())&&(i=r.rangeCount>0?r.getRangeAt(0):r.createRange?r.createRange():a.createRange())}catch(c){}if(d&&i&&i.setStart&&a.selection){try{s=a.selection.createRange()}catch(c){}s&&s.item&&(o=s.item(0),i=a.createRange(),i.setStartBefore(o),i.setEndAfter(o))}return i||(i=a.createRange?a.createRange():a.body.createTextRange()),i.setStart&&9===i.startContainer.nodeType&&i.collapsed&&(o=n.dom.getRoot(),i.setStart(o,0),i.setEnd(o,0)),n.selectedRange&&n.explicitRange&&(0===t(i.START_TO_START,i,n.selectedRange)&&0===t(i.END_TO_END,i,n.selectedRange)?i=n.explicitRange:(n.selectedRange=null,n.explicitRange=null)),i},setRng:function(e,t){var n=this,r;if(e.select)try{e.select()}catch(i){}else if(n.tridentSel){if(e.cloneRange)try{return void n.tridentSel.addRange(e)}catch(i){}}else if(r=n.getSel()){n.explicitRange=e;try{r.removeAllRanges(),r.addRange(e)}catch(i){}t===!1&&r.extend&&(r.collapse(e.endContainer,e.endOffset),r.extend(e.startContainer,e.startOffset)),n.selectedRange=r.rangeCount>0?r.getRangeAt(0):null}},setNode:function(e){var t=this;return t.setContent(t.dom.getOuterHTML(e)),e},getNode:function(){function e(e,t){for(var n=e;e&&3===e.nodeType&&0===e.length;)e=t?e.nextSibling:e.previousSibling;return e||n}var t=this,n=t.getRng(),r,i=n.startContainer,o=n.endContainer,a=n.startOffset,s=n.endOffset,l=t.dom.getRoot();return n?n.setStart?(r=n.commonAncestorContainer,!n.collapsed&&(i==o&&2>s-a&&i.hasChildNodes()&&(r=i.childNodes[a]),3===i.nodeType&&3===o.nodeType&&(i=i.length===a?e(i.nextSibling,!0):i.parentNode,o=0===s?e(o.previousSibling,!1):o.parentNode,i&&i===o))?i:r&&3==r.nodeType?r.parentNode:r):(r=n.item?n.item(0):n.parentElement(),r.ownerDocument!==t.win.document&&(r=l),r):l},getSelectedBlocks:function(t,n){var r=this,i=r.dom,o,a,s=[];if(a=i.getRoot(),t=i.getParent(t||r.getStart(),i.isBlock),n=i.getParent(n||r.getEnd(),i.isBlock),t&&t!=a&&s.push(t),t&&n&&t!=n){o=t;for(var l=new e(t,a);(o=l.next())&&o!=n;)i.isBlock(o)&&s.push(o)}return n&&t!=n&&n!=a&&s.push(n),s},isForward:function(){var e=this.dom,t=this.getSel(),n,r;return t&&t.anchorNode&&t.focusNode?(n=e.createRng(),n.setStart(t.anchorNode,t.anchorOffset),n.collapse(!0),r=e.createRng(),r.setStart(t.focusNode,t.focusOffset),r.collapse(!0),n.compareBoundaryPoints(n.START_TO_START,r)<=0):!0},normalize:function(){var e=this,t=e.getRng();return!d&&new i(e.dom).normalize(t)&&e.setRng(t,e.isForward()),t},selectorChanged:function(e,t){var n=this,r;return n.selectorChangedData||(n.selectorChangedData={},r={},n.editor.on("NodeChange",function(e){var t=e.element,i=n.dom,o=i.getParents(t,null,i.getRoot()),a={};l(n.selectorChangedData,function(e,t){l(o,function(n){return i.is(n,t)?(r[t]||(l(e,function(e){e(!0,{node:n,selector:t,parents:o})}),r[t]=e),a[t]=e,!1):void 0})}),l(r,function(e,n){a[n]||(delete r[n],l(e,function(e){e(!1,{node:t,selector:n,parents:o})}))})})),n.selectorChangedData[e]||(n.selectorChangedData[e]=[]),n.selectorChangedData[e].push(t),n},getScrollContainer:function(){for(var e,t=this.dom.getRoot();t&&"BODY"!=t.nodeName;){if(t.scrollHeight>t.clientHeight){e=t;break}t=t.parentNode}return e},scrollIntoView:function(e){function t(e){for(var t=0,n=0,r=e;r&&r.nodeType;)t+=r.offsetLeft||0,n+=r.offsetTop||0,r=r.offsetParent;return{x:t,y:n}}var n,r,i=this,o=i.dom,a=o.getRoot(),s,l;if("BODY"!=a.nodeName){var c=i.getScrollContainer();if(c)return n=t(e).y-t(c).y,l=c.clientHeight,s=c.scrollTop,void((s>n||n+25>s+l)&&(c.scrollTop=s>n?n:n-l+25))}r=o.getViewPort(i.editor.getWin()),n=o.getPos(e).y,s=r.y,l=r.h,(n<r.y||n+25>s+l)&&i.editor.getWin().scrollTo(0,s>n?n:n-l+25)},_moveEndPoint:function(t,n,r){var i=n,a=new e(n,i),s=this.dom.schema.getNonEmptyElements();do{if(3==n.nodeType&&0!==u(n.nodeValue).length)return void(r?t.setStart(n,0):t.setEnd(n,n.nodeValue.length));if(s[n.nodeName])return void(r?t.setStartBefore(n):"BR"==n.nodeName?t.setEndBefore(n):t.setEndAfter(n));if(o.ie&&o.ie<11&&this.dom.isBlock(n)&&this.dom.isEmpty(n))return void(r?t.setStart(n,0):t.setEnd(n,0))}while(n=r?a.next():a.prev());"BODY"==i.nodeName&&(r?t.setStart(i,0):t.setEnd(i,i.childNodes.length))},destroy:function(){this.win=null,this.controlSelection.destroy()}},s}),r(D,[f,B,p],function(e,t,n){return function(r){function i(e){return e.nodeType&&(e=e.nodeName),!!r.schema.getTextBlockElements()[e.toLowerCase()]}function o(e,t){return I.getParents(e,t,I.getRoot())}function a(e){return 1===e.nodeType&&"_mce_caret"===e.id}function s(){u({alignleft:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"left"},defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"left"}}],aligncenter:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"center"},defaultBlock:"div"},{selector:"img",collapsed:!1,styles:{display:"block",marginLeft:"auto",marginRight:"auto"}},{selector:"table",collapsed:!1,styles:{marginLeft:"auto",marginRight:"auto"}}],alignright:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"right"},defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"right"}}],alignjustify:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"justify"},defaultBlock:"div"}],bold:[{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}},{inline:"b",remove:"all"}],italic:[{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}},{inline:"i",remove:"all"}],underline:[{inline:"span",styles:{textDecoration:"underline"},exact:!0},{inline:"u",remove:"all"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:!0},{inline:"strike",remove:"all"}],forecolor:{inline:"span",styles:{color:"%value"},wrap_links:!1},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"},wrap_links:!1},fontname:{inline:"span",styles:{fontFamily:"%value"}},fontsize:{inline:"span",styles:{fontSize:"%value"}},fontsize_class:{inline:"span",attributes:{"class":"%value"}},blockquote:{block:"blockquote",wrapper:1,remove:"all"},subscript:{inline:"sub"},superscript:{inline:"sup"},code:{inline:"code"},link:{inline:"a",selector:"a",remove:"all",split:!0,deep:!0,onmatch:function(){return!0},onformat:function(e,t,n){et(n,function(t,n){I.setAttrib(e,n,t)})}},removeformat:[{selector:"b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q",remove:"all",split:!0,expand:!1,block_expand:!0,deep:!0},{selector:"span",attributes:["style","class"],remove:"empty",split:!0,expand:!1,deep:!0},{selector:"*",attributes:["style","class"],split:!1,expand:!1,deep:!0}]}),et("p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp".split(/\s/),function(e){u(e,{block:e,remove:"all"})}),u(r.settings.formats)}function l(){r.addShortcut("ctrl+b","bold_desc","Bold"),r.addShortcut("ctrl+i","italic_desc","Italic"),r.addShortcut("ctrl+u","underline_desc","Underline");for(var e=1;6>=e;e++)r.addShortcut("ctrl+"+e,"",["FormatBlock",!1,"h"+e]);r.addShortcut("ctrl+7","",["FormatBlock",!1,"p"]),r.addShortcut("ctrl+8","",["FormatBlock",!1,"div"]),r.addShortcut("ctrl+9","",["FormatBlock",!1,"address"])}function c(e){return e?O[e]:O}function u(e,t){e&&("string"!=typeof e?et(e,function(e,t){u(t,e)}):(t=t.length?t:[t],et(t,function(e){e.deep===X&&(e.deep=!e.selector),e.split===X&&(e.split=!e.selector||e.inline),e.remove===X&&e.selector&&!e.inline&&(e.remove="none"),e.selector&&e.inline&&(e.mixed=!0,e.block_expand=!0),"string"==typeof e.classes&&(e.classes=e.classes.split(/\s+/))}),O[e]=t))}function d(e){var t;return r.dom.getParent(e,function(e){return t=r.dom.getStyle(e,"text-decoration"),t&&"none"!==t}),t}function f(e){var t;1===e.nodeType&&e.parentNode&&1===e.parentNode.nodeType&&(t=d(e.parentNode),r.dom.getStyle(e,"color")&&t?r.dom.setStyle(e,"text-decoration",t):r.dom.getStyle(e,"textdecoration")===t&&r.dom.setStyle(e,"text-decoration",null))}function p(t,n,o){function s(e,t){t=t||h,e&&(t.onformat&&t.onformat(e,t,n,o),et(t.styles,function(t,r){I.setStyle(e,r,E(t,n))}),et(t.attributes,function(t,r){I.setAttrib(e,r,E(t,n))}),et(t.classes,function(t){t=E(t,n),I.hasClass(e,t)||I.addClass(e,t)}))}function l(){function t(t,n){var r=new e(n);for(o=r.current();o;o=r.prev())if(o.childNodes.length>1||o==t||"BR"==o.tagName)return o}var n=r.selection.getRng(),i=n.startContainer,a=n.endContainer;if(i!=a&&0===n.endOffset){var s=t(i,a),l=3==s.nodeType?s.length:s.childNodes.length;n.setEnd(s,l)}return n}function u(e,t,n,r,i){var o=[],a=-1,s,l=-1,c=-1,u;return et(e.childNodes,function(e,t){return"UL"===e.nodeName||"OL"===e.nodeName?(a=t,s=e,!1):void 0}),et(e.childNodes,function(e,n){"SPAN"===e.nodeName&&"bookmark"==I.getAttrib(e,"data-mce-type")&&(e.id==t.id+"_start"?l=n:e.id==t.id+"_end"&&(c=n))}),0>=a||a>l&&c>a?(et(tt(e.childNodes),i),0):(u=I.clone(n,K),et(tt(e.childNodes),function(e,t){(a>l&&a>t||l>a&&t>a)&&(o.push(e),e.parentNode.removeChild(e))}),a>l?e.insertBefore(u,s):l>a&&e.insertBefore(u,s.nextSibling),r.push(u),et(o,function(e){u.appendChild(e)}),u)}function d(e,r,o){var l=[],c,d,f=!0;c=h.inline||h.block,d=I.create(c),s(d),z.walk(e,function(e){function p(e){var y,C,x,_,N;return N=f,y=e.nodeName.toLowerCase(),C=e.parentNode.nodeName.toLowerCase(),1===e.nodeType&&J(e)&&(N=f,f="true"===J(e),_=!0),w(y,"br")?(v=0,void(h.block&&I.remove(e))):h.wrapper&&g(e,t,n)?void(v=0):f&&!_&&h.block&&!h.wrapper&&i(y)&&W(C,c)?(e=I.rename(e,c),s(e),l.push(e),void(v=0)):h.selector&&(et(m,function(t){"collapsed"in t&&t.collapsed!==b||I.is(e,t.selector)&&!a(e)&&(s(e,t),x=!0)}),!h.inline||x)?void(v=0):void(!f||_||!W(c,y)||!W(C,c)||!o&&3===e.nodeType&&1===e.nodeValue.length&&65279===e.nodeValue.charCodeAt(0)||a(e)||h.inline&&V(e)?"li"==y&&r?v=u(e,r,d,l,p):(v=0,et(tt(e.childNodes),p),_&&(f=N),v=0):(v||(v=I.clone(d,K),e.parentNode.insertBefore(v,e),l.push(v)),v.appendChild(e)))}var v;et(e,p)}),h.wrap_links===!1&&et(l,function(e){function t(e){var n,r,i;if("A"===e.nodeName){for(r=I.clone(d,K),l.push(r),i=tt(e.childNodes),n=0;n<i.length;n++)r.appendChild(i[n]);e.appendChild(r)}et(tt(e.childNodes),t)}t(e)}),et(l,function(e){function r(e){var t=0;return et(e.childNodes,function(e){S(e)||L(e)||t++}),t}function i(e){var t,n;return et(e.childNodes,function(e){return 1!=e.nodeType||L(e)||a(e)?void 0:(t=e,K)}),t&&!L(t)&&x(t,h)&&(n=I.clone(t,K),s(n),I.replace(n,e,Y),I.remove(t,1)),n||e}var o;if(o=r(e),(l.length>1||!V(e))&&0===o)return void I.remove(e,1);if(h.inline||h.wrapper){if(h.exact||1!==o||(e=i(e)),et(m,function(t){et(I.select(t.inline,e),function(e){var r;if(!L(e)){if(t.wrap_links===!1){r=e.parentNode;do if("A"===r.nodeName)return;while(r=r.parentNode)}R(t,n,e,t.exact?e:null)}})}),g(e.parentNode,t,n))return I.remove(e,1),e=0,Y;h.merge_with_parents&&I.getParent(e.parentNode,function(r){return g(r,t,n)?(I.remove(e,1),e=0,Y):void 0}),e&&h.merge_siblings!==!1&&(e=D(B(e),e),e=D(e,B(e,Y)))}})}var m=c(t),h=m[0],v,y,b=!o&&F.isCollapsed();if(h)if(o)o.nodeType?(y=I.createRng(),y.setStartBefore(o),y.setEndAfter(o),d(T(y,m),null,!0)):d(o,null,!0);else if(b&&h.inline&&!I.select("td.mce-item-selected,th.mce-item-selected").length)H("apply",t,n);else{var C=r.selection.getNode();U||!m[0].defaultBlock||I.getParent(C,I.isBlock)||p(m[0].defaultBlock),r.selection.setRng(l()),v=F.getBookmark(),d(T(F.getRng(Y),m),v),h.styles&&(h.styles.color||h.styles.textDecoration)&&(nt(C,f,"childNodes"),f(C)),F.moveToBookmark(v),P(F.getRng(Y)),r.nodeChanged()}}function m(e,t,n){function i(e){var n,r,o,a,s;if(1===e.nodeType&&J(e)&&(a=b,b="true"===J(e),s=!0),n=tt(e.childNodes),b&&!s)for(r=0,o=p.length;o>r&&!R(p[r],t,e,e);r++);if(m.deep&&n.length){for(r=0,o=n.length;o>r;r++)i(n[r]);s&&(b=a)}}function a(n){var r;return et(o(n.parentNode).reverse(),function(n){var i;r||"_start"==n.id||"_end"==n.id||(i=g(n,e,t),i&&i.split!==!1&&(r=n))}),r}function s(e,n,r,i){var o,a,s,l,c,u;if(e){for(u=e.parentNode,o=n.parentNode;o&&o!=u;o=o.parentNode){for(a=I.clone(o,K),c=0;c<p.length;c++)if(R(p[c],t,a,a)){a=0;break}a&&(s&&a.appendChild(s),l||(l=a),s=a)}!i||m.mixed&&V(e)||(n=I.split(e,n)),s&&(r.parentNode.insertBefore(s,r),l.appendChild(r))}return n}function l(e){return s(a(e),e,e,!0)}function u(e){var t=I.get(e?"_start":"_end"),n=t[e?"firstChild":"lastChild"];return L(n)&&(n=n[e?"firstChild":"lastChild"]),I.remove(t,!0),n}function f(e){var t,n,o=e.commonAncestorContainer;e=T(e,p,Y),m.split&&(t=M(e,Y),n=M(e),t!=n?(/^(TR|TH|TD)$/.test(t.nodeName)&&t.firstChild&&(t="TR"==t.nodeName?t.firstChild.firstChild||t:t.firstChild||t),o&&/^T(HEAD|BODY|FOOT|R)$/.test(o.nodeName)&&/^(TH|TD)$/.test(n.nodeName)&&n.firstChild&&(n=n.firstChild||n),t=k(t,"span",{id:"_start","data-mce-type":"bookmark"}),n=k(n,"span",{id:"_end","data-mce-type":"bookmark"}),l(t),l(n),t=u(Y),n=u()):t=n=l(t),e.startContainer=t.parentNode,e.startOffset=q(t),e.endContainer=n.parentNode,e.endOffset=q(n)+1),z.walk(e,function(e){et(e,function(e){i(e),1===e.nodeType&&"underline"===r.dom.getStyle(e,"text-decoration")&&e.parentNode&&"underline"===d(e.parentNode)&&R({deep:!1,exact:!0,inline:"span",styles:{textDecoration:"underline"}},null,e) +})})}var p=c(e),m=p[0],h,y,b=!0;return n?void(n.nodeType?(y=I.createRng(),y.setStartBefore(n),y.setEndAfter(n),f(y)):f(n)):void(F.isCollapsed()&&m.inline&&!I.select("td.mce-item-selected,th.mce-item-selected").length?H("remove",e,t):(h=F.getBookmark(),f(F.getRng(Y)),F.moveToBookmark(h),m.inline&&v(e,t,F.getStart())&&P(F.getRng(!0)),r.nodeChanged()))}function h(e,t,n){var r=c(e);!v(e,t,n)||"toggle"in r[0]&&!r[0].toggle?p(e,t,n):m(e,t,n)}function g(e,t,n,r){function i(e,t,i){var o,a,s=t[i],l;if(t.onmatch)return t.onmatch(e,t,i);if(s)if(s.length===X){for(o in s)if(s.hasOwnProperty(o)){if(a="attributes"===i?I.getAttrib(e,o):_(e,o),r&&!a&&!t.exact)return;if((!r||t.exact)&&!w(a,N(E(s[o],n),o)))return}}else for(l=0;l<s.length;l++)if("attributes"===i?I.getAttrib(e,s[l]):_(e,s[l]))return t;return t}var o=c(t),a,s,l;if(o&&e)for(s=0;s<o.length;s++)if(a=o[s],x(e,a)&&i(e,a,"attributes")&&i(e,a,"styles")){if(l=a.classes)for(s=0;s<l.length;s++)if(!I.hasClass(e,l[s]))return;return a}}function v(e,t,n){function r(n){var r=I.getRoot();return n===r?!1:(n=I.getParent(n,function(n){return n.parentNode===r||!!g(n,e,t,!0)}),g(n,e,t))}var i;return n?r(n):(n=F.getNode(),r(n)?Y:(i=F.getStart(),i!=n&&r(i)?Y:K))}function y(e,t){var n,r=[],i={};return n=F.getStart(),I.getParent(n,function(n){var o,a;for(o=0;o<e.length;o++)a=e[o],!i[a]&&g(n,a,t)&&(i[a]=!0,r.push(a))},I.getRoot()),r}function b(e){var t=c(e),n,r,i,a,s;if(t)for(n=F.getStart(),r=o(n),a=t.length-1;a>=0;a--){if(s=t[a].selector,!s||t[a].defaultBlock)return Y;for(i=r.length-1;i>=0;i--)if(I.is(r[i],s))return Y}return K}function C(e,t,n){var i;return G||(G={},i={},r.on("NodeChange",function(e){var t=o(e.element),n={};et(G,function(e,r){et(t,function(o){return g(o,r,{},e.similar)?(i[r]||(et(e,function(e){e(!0,{node:o,format:r,parents:t})}),i[r]=e),n[r]=e,!1):void 0})}),et(i,function(r,o){n[o]||(delete i[o],et(r,function(n){n(!1,{node:e.element,format:o,parents:t})}))})})),et(e.split(","),function(e){G[e]||(G[e]=[],G[e].similar=n),G[e].push(t)}),this}function x(e,t){return w(e,t.inline)?Y:w(e,t.block)?Y:t.selector?1==e.nodeType&&I.is(e,t.selector):void 0}function w(e,t){return e=e||"",t=t||"",e=""+(e.nodeName||e),t=""+(t.nodeName||t),e.toLowerCase()==t.toLowerCase()}function _(e,t){return N(I.getStyle(e,t),t)}function N(e,t){return("color"==t||"backgroundColor"==t)&&(e=I.toHex(e)),"fontWeight"==t&&700==e&&(e="bold"),"fontFamily"==t&&(e=e.replace(/[\'\"]/g,"").replace(/,\s+/g,",")),""+e}function E(e,t){return"string"!=typeof e?e=e(t):t&&(e=e.replace(/%(\w+)/g,function(e,n){return t[n]||e})),e}function S(e){return e&&3===e.nodeType&&/^([\t \r\n]+|)$/.test(e.nodeValue)}function k(e,t,n){var r=I.create(t,n);return e.parentNode.insertBefore(r,e),r.appendChild(e),r}function T(t,n,a){function s(e){function t(e){return"BR"==e.nodeName&&e.getAttribute("data-mce-bogus")&&!e.nextSibling}var r,i,o,a,s;if(r=i=e?g:y,a=e?"previousSibling":"nextSibling",s=I.getRoot(),3==r.nodeType&&!S(r)&&(e?v>0:b<r.nodeValue.length))return r;for(;;){if(!n[0].block_expand&&V(i))return i;for(o=i[a];o;o=o[a])if(!L(o)&&!S(o)&&!t(o))return i;if(i.parentNode==s){r=i;break}i=i.parentNode}return r}function l(e,t){for(t===X&&(t=3===e.nodeType?e.length:e.childNodes.length);e&&e.hasChildNodes();)e=e.childNodes[t],e&&(t=3===e.nodeType?e.length:e.childNodes.length);return{node:e,offset:t}}function c(e){for(var t=e;t;){if(1===t.nodeType&&J(t))return"false"===J(t)?t:e;t=t.parentNode}return e}function u(t,n,i){function o(e,t){var n,r,o=e.nodeValue;return"undefined"==typeof t&&(t=i?o.length:0),i?(n=o.lastIndexOf(" ",t),r=o.lastIndexOf("\xa0",t),n=n>r?n:r,-1===n||a||n++):(n=o.indexOf(" ",t),r=o.indexOf("\xa0",t),n=-1!==n&&(-1===r||r>n)?n:r),n}var s,l,c,u;if(3===t.nodeType){if(c=o(t,n),-1!==c)return{container:t,offset:c};u=t}for(s=new e(t,I.getParent(t,V)||r.getBody());l=s[i?"prev":"next"]();)if(3===l.nodeType){if(u=l,c=o(l),-1!==c)return{container:l,offset:c}}else if(V(l))break;return u?(n=i?0:u.length,{container:u,offset:n}):void 0}function d(e,r){var i,a,s,l;for(3==e.nodeType&&0===e.nodeValue.length&&e[r]&&(e=e[r]),i=o(e),a=0;a<i.length;a++)for(s=0;s<n.length;s++)if(l=n[s],!("collapsed"in l&&l.collapsed!==t.collapsed)&&I.is(i[a],l.selector))return i[a];return e}function f(e,t){var r,a=I.getRoot();if(n[0].wrapper||(r=I.getParent(e,n[0].block,a)),r||(r=I.getParent(3==e.nodeType?e.parentNode:e,function(e){return e!=a&&i(e)})),r&&n[0].wrapper&&(r=o(r,"ul,ol").reverse()[0]||r),!r)for(r=e;r[t]&&!V(r[t])&&(r=r[t],!w(r,"br")););return r||e}var p,m,h,g=t.startContainer,v=t.startOffset,y=t.endContainer,b=t.endOffset;if(1==g.nodeType&&g.hasChildNodes()&&(p=g.childNodes.length-1,g=g.childNodes[v>p?p:v],3==g.nodeType&&(v=0)),1==y.nodeType&&y.hasChildNodes()&&(p=y.childNodes.length-1,y=y.childNodes[b>p?p:b-1],3==y.nodeType&&(b=y.nodeValue.length)),g=c(g),y=c(y),(L(g.parentNode)||L(g))&&(g=L(g)?g:g.parentNode,g=g.nextSibling||g,3==g.nodeType&&(v=0)),(L(y.parentNode)||L(y))&&(y=L(y)?y:y.parentNode,y=y.previousSibling||y,3==y.nodeType&&(b=y.length)),n[0].inline&&(t.collapsed&&(h=u(g,v,!0),h&&(g=h.container,v=h.offset),h=u(y,b),h&&(y=h.container,b=h.offset)),m=l(y,b),m.node)){for(;m.node&&0===m.offset&&m.node.previousSibling;)m=l(m.node.previousSibling);m.node&&m.offset>0&&3===m.node.nodeType&&" "===m.node.nodeValue.charAt(m.offset-1)&&m.offset>1&&(y=m.node,y.splitText(m.offset-1))}return(n[0].inline||n[0].block_expand)&&(n[0].inline&&3==g.nodeType&&0!==v||(g=s(!0)),n[0].inline&&3==y.nodeType&&b!==y.nodeValue.length||(y=s())),n[0].selector&&n[0].expand!==K&&!n[0].inline&&(g=d(g,"previousSibling"),y=d(y,"nextSibling")),(n[0].block||n[0].selector)&&(g=f(g,"previousSibling"),y=f(y,"nextSibling"),n[0].block&&(V(g)||(g=s(!0)),V(y)||(y=s()))),1==g.nodeType&&(v=q(g),g=g.parentNode),1==y.nodeType&&(b=q(y)+1,y=y.parentNode),{startContainer:g,startOffset:v,endContainer:y,endOffset:b}}function R(e,t,n,r){var i,o,a;if(!x(n,e))return K;if("all"!=e.remove)for(et(e.styles,function(e,i){e=N(E(e,t),i),"number"==typeof i&&(i=e,r=0),(!r||w(_(r,i),e))&&I.setStyle(n,i,""),a=1}),a&&""===I.getAttrib(n,"style")&&(n.removeAttribute("style"),n.removeAttribute("data-mce-style")),et(e.attributes,function(e,i){var o;if(e=E(e,t),"number"==typeof i&&(i=e,r=0),!r||w(I.getAttrib(r,i),e)){if("class"==i&&(e=I.getAttrib(n,i),e&&(o="",et(e.split(/\s+/),function(e){/mce\w+/.test(e)&&(o+=(o?" ":"")+e)}),o)))return void I.setAttrib(n,i,o);"class"==i&&n.removeAttribute("className"),j.test(i)&&n.removeAttribute("data-mce-"+i),n.removeAttribute(i)}}),et(e.classes,function(e){e=E(e,t),(!r||I.hasClass(r,e))&&I.removeClass(n,e)}),o=I.getAttribs(n),i=0;i<o.length;i++)if(0!==o[i].nodeName.indexOf("_"))return K;return"none"!=e.remove?(A(n,e),Y):void 0}function A(e,t){function n(e,t,n){return e=B(e,t,n),!e||"BR"==e.nodeName||V(e)}var i=e.parentNode,o;t.block&&(U?i==I.getRoot()&&(t.list_block&&w(e,t.list_block)||et(tt(e.childNodes),function(e){W(U,e.nodeName.toLowerCase())?o?o.appendChild(e):(o=k(e,U),I.setAttribs(o,r.settings.forced_root_block_attrs)):o=0})):V(e)&&!V(i)&&(n(e,K)||n(e.firstChild,Y,1)||e.insertBefore(I.create("br"),e.firstChild),n(e,Y)||n(e.lastChild,K,1)||e.appendChild(I.create("br")))),t.selector&&t.inline&&!w(t.inline,e)||I.remove(e,1)}function B(e,t,n){if(e)for(t=t?"nextSibling":"previousSibling",e=n?e:e[t];e;e=e[t])if(1==e.nodeType||!S(e))return e}function L(e){return e&&1==e.nodeType&&"bookmark"==e.getAttribute("data-mce-type")}function D(e,t){function n(e,t){function n(e){var t={};return et(I.getAttribs(e),function(n){var r=n.nodeName.toLowerCase();0!==r.indexOf("_")&&"style"!==r&&"data-mce-style"!==r&&(t[r]=I.getAttrib(e,r))}),t}function r(e,t){var n,r;for(r in e)if(e.hasOwnProperty(r)){if(n=t[r],n===X)return K;if(e[r]!=n)return K;delete t[r]}for(r in t)if(t.hasOwnProperty(r))return K;return Y}return e.nodeName!=t.nodeName?K:r(n(e),n(t))&&r(I.parseStyle(I.getAttrib(e,"style")),I.parseStyle(I.getAttrib(t,"style")))?!L(e)&&!L(t):K}function r(e,t){for(i=e;i;i=i[t]){if(3==i.nodeType&&0!==i.nodeValue.length)return e;if(1==i.nodeType&&!L(i))return i}return e}var i,o;if(e&&t&&(e=r(e,"previousSibling"),t=r(t,"nextSibling"),n(e,t))){for(i=e.nextSibling;i&&i!=t;)o=i,i=i.nextSibling,e.appendChild(o);return I.remove(t),et(tt(t.childNodes),function(t){e.appendChild(t)}),e}return t}function M(t,n){var i,o,a;return i=t[n?"startContainer":"endContainer"],o=t[n?"startOffset":"endOffset"],1==i.nodeType&&(a=i.childNodes.length-1,!n&&o&&o--,i=i.childNodes[o>a?a:o]),3===i.nodeType&&n&&o>=i.nodeValue.length&&(i=new e(i,r.getBody()).next()||i),3!==i.nodeType||n||0!==o||(i=new e(i,r.getBody()).prev()||i),i}function H(t,n,o){function a(e){var t=I.create("span",{id:y,"data-mce-bogus":!0,style:b?"color:red":""});return e&&t.appendChild(r.getDoc().createTextNode($)),t}function s(e,t){for(;e;){if(3===e.nodeType&&e.nodeValue!==$||e.childNodes.length>1)return!1;t&&1===e.nodeType&&t.push(e),e=e.firstChild}return!0}function l(e){for(;e;){if(e.id===y)return e;e=e.parentNode}}function u(t){var n;if(t)for(n=new e(t,t),t=n.current();t;t=n.next())if(3===t.nodeType)return t}function d(e,t){var n,r;if(e)r=F.getRng(!0),s(e)?(t!==!1&&(r.setStartBefore(e),r.setEndBefore(e)),I.remove(e)):(n=u(e),n.nodeValue.charAt(0)===$&&(n=n.deleteData(0,1)),I.remove(e,1)),F.setRng(r);else if(e=l(F.getStart()),!e)for(;e=I.get(y);)d(e,!1)}function f(){var e,t,r,i,s,d,f;e=F.getRng(!0),i=e.startOffset,d=e.startContainer,f=d.nodeValue,t=l(F.getStart()),t&&(r=u(t)),f&&i>0&&i<f.length&&/\w/.test(f.charAt(i))&&/\w/.test(f.charAt(i-1))?(s=F.getBookmark(),e.collapse(!0),e=T(e,c(n)),e=z.split(e),p(n,o,e),F.moveToBookmark(s)):(t&&r.nodeValue===$?p(n,o,t):(t=a(!0),r=t.firstChild,e.insertNode(t),i=1,p(n,o,t)),F.setCursorLocation(r,i))}function h(){var e=F.getRng(!0),t,r,s,l,u,d,f=[],p,h;for(t=e.startContainer,r=e.startOffset,u=t,3==t.nodeType&&((r!=t.nodeValue.length||t.nodeValue===$)&&(l=!0),u=u.parentNode);u;){if(g(u,n,o)){d=u;break}u.nextSibling&&(l=!0),f.push(u),u=u.parentNode}if(d)if(l)s=F.getBookmark(),e.collapse(!0),e=T(e,c(n),!0),e=z.split(e),m(n,o,e),F.moveToBookmark(s);else{for(h=a(),u=h,p=f.length-1;p>=0;p--)u.appendChild(I.clone(f[p],!1)),u=u.firstChild;u.appendChild(I.doc.createTextNode($)),u=u.firstChild;var v=I.getParent(d,i);v&&I.isEmpty(v)?d.parentNode.replaceChild(h,d):I.insertAfter(h,d),F.setCursorLocation(u,1),I.isEmpty(d)&&I.remove(d)}}function v(){var e;e=l(F.getStart()),e&&!I.isEmpty(e)&&nt(e,function(e){1!=e.nodeType||e.id===y||I.isEmpty(e)||I.setAttrib(e,"data-mce-bogus",null)},"childNodes")}var y="_mce_caret",b=r.settings.caret_debug;r._hasCaretEvents||(Z=function(){var e=[],t;if(s(l(F.getStart()),e))for(t=e.length;t--;)I.setAttrib(e[t],"data-mce-bogus","1")},Q=function(e){var t=e.keyCode;d(),(8==t||37==t||39==t)&&d(l(F.getStart())),v()},r.on("SetContent",function(e){e.selection&&v()}),r._hasCaretEvents=!0),"apply"==t?f():h()}function P(t){var n=t.startContainer,r=t.startOffset,i,o,a,s,l;if(3==n.nodeType&&r>=n.nodeValue.length&&(r=q(n),n=n.parentNode,i=!0),1==n.nodeType)for(s=n.childNodes,n=s[Math.min(r,s.length-1)],o=new e(n,I.getParent(n,I.isBlock)),(r>s.length-1||i)&&o.next(),a=o.current();a;a=o.next())if(3==a.nodeType&&!S(a))return l=I.create("a",null,$),a.parentNode.insertBefore(l,a),t.setStart(a,0),F.setRng(t),void I.remove(l)}var O={},I=r.dom,F=r.selection,z=new t(I),W=r.schema.isValidChild,V=I.isBlock,U=r.settings.forced_root_block,q=I.nodeIndex,$="\ufeff",j=/^(src|href|style)$/,K=!1,Y=!0,G,X,J=I.getContentEditable,Q,Z,et=n.each,tt=n.grep,nt=n.walk,rt=n.extend;rt(this,{get:c,register:u,apply:p,remove:m,toggle:h,match:v,matchAll:y,matchNode:g,canApply:b,formatChanged:C}),s(),l(),r.on("BeforeGetContent",function(){Z&&Z()}),r.on("mouseup keydown",function(e){Q&&Q(e)})}}),r(M,[g,p],function(e,t){var n=t.trim,r;return r=new RegExp(["<span[^>]+data-mce-bogus[^>]+>[\u200b\ufeff]+<\\/span>","<div[^>]+data-mce-bogus[^>]+><\\/div>",'\\s?data-mce-selected="[^"]+"'].join("|"),"gi"),function(t){function i(){return n(t.getContent({format:"raw",no_events:1}).replace(r,""))}function o(e){a.typing=!1,a.add({},e)}var a=this,s=0,l=[],c,u,d;return t.on("init",function(){a.add()}),t.on("BeforeExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&a.beforeChange()}),t.on("ExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&o(e)}),t.on("ObjectResizeStart",function(){a.beforeChange()}),t.on("SaveContent ObjectResized blur",o),t.dom.bind(t.dom.getRoot(),"dragend",o),t.on("KeyUp",function(n){var r=n.keyCode;(r>=33&&36>=r||r>=37&&40>=r||45==r||13==r||n.ctrlKey)&&(o(),t.nodeChanged()),(46==r||8==r||e.mac&&(91==r||93==r))&&t.nodeChanged(),u&&a.typing&&(t.isDirty()||(t.isNotDirty=!l[0]||i()==l[0].content,t.isNotDirty||t.fire("change",{level:l[0],lastLevel:null})),t.fire("TypingUndo"),u=!1,t.nodeChanged())}),t.on("KeyDown",function(e){var t=e.keyCode;return t>=33&&36>=t||t>=37&&40>=t||45==t?void(a.typing&&o(e)):void((16>t||t>20)&&224!=t&&91!=t&&!a.typing&&(a.beforeChange(),a.typing=!0,a.add({},e),u=!0))}),t.on("MouseDown",function(e){a.typing&&o(e)}),t.addShortcut("ctrl+z","","Undo"),t.addShortcut("ctrl+y,ctrl+shift+z","","Redo"),t.on("AddUndo Undo Redo ClearUndos MouseUp",function(e){e.isDefaultPrevented()||t.nodeChanged()}),a={data:l,typing:!1,beforeChange:function(){d||(c=t.selection.getBookmark(2,!0))},add:function(e,n){var r,o=t.settings,a;if(e=e||{},e.content=i(),d||t.removed)return null;if(t.fire("BeforeAddUndo",{level:e,originalEvent:n}).isDefaultPrevented())return null;if(a=l[s],a&&a.content==e.content)return null;if(l[s]&&(l[s].beforeBookmark=c),o.custom_undo_redo_levels&&l.length>o.custom_undo_redo_levels){for(r=0;r<l.length-1;r++)l[r]=l[r+1];l.length--,s=l.length}e.bookmark=t.selection.getBookmark(2,!0),s<l.length-1&&(l.length=s+1),l.push(e),s=l.length-1;var u={level:e,lastLevel:a,originalEvent:n};return t.fire("AddUndo",u),s>0&&(t.isNotDirty=!1,t.fire("change",u)),e},undo:function(){var e;return a.typing&&(a.add(),a.typing=!1),s>0&&(e=l[--s],0===s&&(t.isNotDirty=!0),t.setContent(e.content,{format:"raw"}),t.selection.moveToBookmark(e.beforeBookmark),t.fire("undo",{level:e})),e},redo:function(){var e;return s<l.length-1&&(e=l[++s],t.setContent(e.content,{format:"raw"}),t.selection.moveToBookmark(e.bookmark),t.fire("redo",{level:e})),e},clear:function(){l=[],s=0,a.typing=!1,t.fire("ClearUndos")},hasUndo:function(){return s>0||a.typing&&l[0]&&i()!=l[0].content},hasRedo:function(){return s<l.length-1&&!this.typing},transact:function(e){a.beforeChange(),d=!0,e(),d=!1,a.add()}}}}),r(H,[f,B,g],function(e,t,n){var r=n.ie&&n.ie<11;return function(i){function o(o){function f(e){return e&&a.isBlock(e)&&!/^(TD|TH|CAPTION|FORM)$/.test(e.nodeName)&&!/^(fixed|absolute)/i.test(e.style.position)&&"true"!==a.getContentEditable(e)}function p(e){var t;a.isBlock(e)&&(t=s.getRng(),e.appendChild(a.create("span",null,"\xa0")),s.select(e),e.lastChild.outerHTML="",s.setRng(t))}function m(e){for(var t=e,n=[],r;t=t.firstChild;){if(a.isBlock(t))return;1!=t.nodeType||d[t.nodeName.toLowerCase()]||n.push(t)}for(r=n.length;r--;)t=n[r],!t.hasChildNodes()||t.firstChild==t.lastChild&&""===t.firstChild.nodeValue?a.remove(t):"A"==t.nodeName&&" "===(t.innerText||t.textContent)&&a.remove(t)}function h(t){function r(e){for(;e;){if(1==e.nodeType||3==e.nodeType&&e.data&&/[\r\n\s]/.test(e.data))return e;e=e.nextSibling}}var i,o,l,c=t,u;if(n.ie&&n.ie<9&&B&&B.firstChild&&B.firstChild==B.lastChild&&"BR"==B.firstChild.tagName&&a.remove(B.firstChild),"LI"==t.nodeName){var f=r(t.firstChild);f&&/^(UL|OL)$/.test(f.nodeName)&&t.insertBefore(a.doc.createTextNode("\xa0"),t.firstChild)}if(l=a.createRng(),t.hasChildNodes()){for(i=new e(t,t);o=i.current();){if(3==o.nodeType){l.setStart(o,0),l.setEnd(o,0);break}if(d[o.nodeName.toLowerCase()]){l.setStartBefore(o),l.setEndBefore(o);break}c=o,o=i.next()}o||(l.setStart(c,0),l.setEnd(c,0))}else"BR"==t.nodeName?t.nextSibling&&a.isBlock(t.nextSibling)?((!L||9>L)&&(u=a.create("br"),t.parentNode.insertBefore(u,t)),l.setStartBefore(t),l.setEndBefore(t)):(l.setStartAfter(t),l.setEndAfter(t)):(l.setStart(t,0),l.setEnd(t,0));s.setRng(l),a.remove(u),s.scrollIntoView(t)}function g(e){var t=l.forced_root_block;t&&t.toLowerCase()===e.tagName.toLowerCase()&&a.setAttribs(e,l.forced_root_block_attrs)}function v(e){var t=R,n,i,o;if(e||"TABLE"==O?(n=a.create(e||F),g(n)):n=B.cloneNode(!1),o=n,l.keep_styles!==!1)do if(/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U|VAR|CITE|DFN|CODE|MARK|Q|SUP|SUB|SAMP)$/.test(t.nodeName)){if("_mce_caret"==t.id)continue;i=t.cloneNode(!1),a.setAttrib(i,"id",""),n.hasChildNodes()?(i.appendChild(n.firstChild),n.appendChild(i)):(o=i,n.appendChild(i))}while(t=t.parentNode);return r||(o.innerHTML='<br data-mce-bogus="1">'),n}function y(t){var n,r,i;if(3==R.nodeType&&(t?A>0:A<R.nodeValue.length))return!1;if(R.parentNode==B&&z&&!t)return!0;if(t&&1==R.nodeType&&R==B.firstChild)return!0;if("TABLE"===R.nodeName||R.previousSibling&&"TABLE"==R.previousSibling.nodeName)return z&&!t||!z&&t;for(n=new e(R,B),3==R.nodeType&&(t&&0===A?n.prev():t||A!=R.nodeValue.length||n.next());r=n.current();){if(1===r.nodeType){if(!r.getAttribute("data-mce-bogus")&&(i=r.nodeName.toLowerCase(),d[i]&&"br"!==i))return!1}else if(3===r.nodeType&&!/^[ \t\r\n]*$/.test(r.nodeValue))return!1;t?n.prev():n.next()}return!0}function b(e,t){var n,r,o,s,l,c,d=F||"P";if(r=a.getParent(e,a.isBlock),c=i.getBody().nodeName.toLowerCase(),!r||!f(r)){if(r=r||T,!r.hasChildNodes())return n=a.create(d),g(n),r.appendChild(n),S.setStart(n,0),S.setEnd(n,0),n;for(s=e;s.parentNode!=r;)s=s.parentNode;for(;s&&!a.isBlock(s);)o=s,s=s.previousSibling;if(o&&u.isValidChild(c,d.toLowerCase())){for(n=a.create(d),g(n),o.parentNode.insertBefore(n,o),s=o;s&&!a.isBlock(s);)l=s.nextSibling,n.appendChild(s),s=l;S.setStart(e,t),S.setEnd(e,t)}}return e}function C(){function e(e){for(var t=P[e?"firstChild":"lastChild"];t&&1!=t.nodeType;)t=t[e?"nextSibling":"previousSibling"];return t===B}function t(){var e=P.parentNode;return"LI"==e.nodeName?e:P}var n=P.parentNode.nodeName;/^(OL|UL|LI)$/.test(n)&&(F="LI"),M=F?v(F):a.create("BR"),e(!0)&&e()?"LI"==n?a.insertAfter(M,t()):a.replace(M,P):e(!0)?"LI"==n?(a.insertAfter(M,t()),M.appendChild(a.doc.createTextNode(" ")),M.appendChild(P)):P.parentNode.insertBefore(M,P):e()?(a.insertAfter(M,t()),p(M)):(P=t(),k=S.cloneRange(),k.setStartAfter(B),k.setEndAfter(P),H=k.extractContents(),"LI"==F&&"LI"==H.firstChild.nodeName?(M=H.firstChild,a.insertAfter(H,P)):(a.insertAfter(H,P),a.insertAfter(M,P))),a.remove(B),h(M),c.add()}function x(){for(var t=new e(R,B),n;n=t.next();)if(d[n.nodeName.toLowerCase()]||n.length>0)return!0}function w(){var e,t,n;R&&3==R.nodeType&&A>=R.nodeValue.length&&(r||x()||(e=a.create("br"),S.insertNode(e),S.setStartAfter(e),S.setEndAfter(e),t=!0)),e=a.create("br"),S.insertNode(e),r&&"PRE"==O&&(!L||8>L)&&e.parentNode.insertBefore(a.doc.createTextNode("\r"),e),n=a.create("span",{}," "),e.parentNode.insertBefore(n,e),s.scrollIntoView(n),a.remove(n),t?(S.setStartBefore(e),S.setEndBefore(e)):(S.setStartAfter(e),S.setEndAfter(e)),s.setRng(S),c.add()}function _(e){do 3===e.nodeType&&(e.nodeValue=e.nodeValue.replace(/^[\r\n]+/,"")),e=e.firstChild;while(e)}function N(e){var t=a.getRoot(),n,r;for(n=e;n!==t&&"false"!==a.getContentEditable(n);)"true"===a.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==t?r:t}function E(e){var t;r||(e.normalize(),t=e.lastChild,(!t||/^(left|right)$/gi.test(a.getStyle(t,"float",!0)))&&a.add(e,"br"))}var S,k,T,R,A,B,L,D,M,H,P,O,I,F,z;if(S=s.getRng(!0),!o.isDefaultPrevented()){if(!S.collapsed)return void i.execCommand("Delete");if(new t(a).normalize(S),R=S.startContainer,A=S.startOffset,F=(l.force_p_newlines?"p":"")||l.forced_root_block,F=F?F.toUpperCase():"",L=a.doc.documentMode,D=o.shiftKey,1==R.nodeType&&R.hasChildNodes()&&(z=A>R.childNodes.length-1,R=R.childNodes[Math.min(A,R.childNodes.length-1)]||R,A=z&&3==R.nodeType?R.nodeValue.length:0),T=N(R)){if(c.beforeChange(),!a.isBlock(T)&&T!=a.getRoot())return void((!F||D)&&w());if((F&&!D||!F&&D)&&(R=b(R,A)),B=a.getParent(R,a.isBlock),P=B?a.getParent(B.parentNode,a.isBlock):null,O=B?B.nodeName.toUpperCase():"",I=P?P.nodeName.toUpperCase():"","LI"!=I||o.ctrlKey||(B=P,O=I),"LI"==O){if(!F&&D)return void w();if(a.isEmpty(B))return void C()}if("PRE"==O&&l.br_in_pre!==!1){if(!D)return void w()}else if(!F&&!D&&"LI"!=O||F&&D)return void w();F&&B===i.getBody()||(F=F||"P",y()?(M=/^(H[1-6]|PRE|FIGURE)$/.test(O)&&"HGROUP"!=I?v(F):v(),l.end_container_on_empty_block&&f(P)&&a.isEmpty(B)?M=a.split(P,B):a.insertAfter(M,B),h(M)):y(!0)?(M=B.parentNode.insertBefore(v(),B),p(M),h(B)):(k=S.cloneRange(),k.setEndAfter(B),H=k.extractContents(),_(H),M=H.firstChild,a.insertAfter(H,B),m(M),E(B),h(M)),a.setAttrib(M,"id",""),i.fire("NewBlock",{newBlock:M}),c.add())}}}var a=i.dom,s=i.selection,l=i.settings,c=i.undoManager,u=i.schema,d=u.getNonEmptyElements();i.on("keydown",function(e){13==e.keyCode&&o(e)!==!1&&e.preventDefault()})}}),r(P,[],function(){return function(e){function t(){var t=i.getStart(),s=e.getBody(),l,c,u,d,f,p,m,h=-16777215,g,v,y,b,C;if(C=n.forced_root_block,t&&1===t.nodeType&&C){for(;t&&t!=s;){if(a[t.nodeName])return;t=t.parentNode}if(l=i.getRng(),l.setStart){c=l.startContainer,u=l.startOffset,d=l.endContainer,f=l.endOffset;try{v=e.getDoc().activeElement===s}catch(x){}}else l.item&&(t=l.item(0),l=e.getDoc().body.createTextRange(),l.moveToElementText(t)),v=l.parentElement().ownerDocument===e.getDoc(),y=l.duplicate(),y.collapse(!0),u=-1*y.move("character",h),y.collapsed||(y=l.duplicate(),y.collapse(!1),f=-1*y.move("character",h)-u);for(t=s.firstChild,b=s.nodeName.toLowerCase();t;)if((3===t.nodeType||1==t.nodeType&&!a[t.nodeName])&&o.isValidChild(b,C.toLowerCase())){if(3===t.nodeType&&0===t.nodeValue.length){m=t,t=t.nextSibling,r.remove(m);continue}p||(p=r.create(C,e.settings.forced_root_block_attrs),t.parentNode.insertBefore(p,t),g=!0),m=t,t=t.nextSibling,p.appendChild(m)}else p=null,t=t.nextSibling;if(g&&v){if(l.setStart)l.setStart(c,u),l.setEnd(d,f),i.setRng(l);else try{l=e.getDoc().body.createTextRange(),l.moveToElementText(s),l.collapse(!0),l.moveStart("character",u),f>0&&l.moveEnd("character",f),l.select()}catch(x){}e.nodeChanged()}}}var n=e.settings,r=e.dom,i=e.selection,o=e.schema,a=o.getBlockElements();n.forced_root_block&&e.on("NodeChange",t)}}),r(O,[S,g,p],function(e,n,r){var i=r.each,o=r.extend,a=r.map,s=r.inArray,l=r.explode,c=n.gecko,u=n.ie,d=!0,f=!1;return function(r){function p(e,t,n){var r;return e=e.toLowerCase(),(r=N.exec[e])?(r(e,t,n),d):f}function m(e){var t;return e=e.toLowerCase(),(t=N.state[e])?t(e):-1}function h(e){var t;return e=e.toLowerCase(),(t=N.value[e])?t(e):f}function g(e,t){t=t||"exec",i(e,function(e,n){i(n.toLowerCase().split(","),function(n){N[t][n]=e})})}function v(e,n,i){return n===t&&(n=f),i===t&&(i=null),r.getDoc().execCommand(e,n,i)}function y(e){return S.match(e)}function b(e,n){S.toggle(e,n?{value:n}:t),r.nodeChanged()}function C(e){k=_.getBookmark(e)}function x(){_.moveToBookmark(k)}var w=r.dom,_=r.selection,N={state:{},exec:{},value:{}},E=r.settings,S=r.formatter,k;o(this,{execCommand:p,queryCommandState:m,queryCommandValue:h,addCommands:g}),g({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){r.undoManager.add()},"Cut,Copy,Paste":function(e){var t=r.getDoc(),i;try{v(e)}catch(o){i=d}if(i||!t.queryCommandSupported(e)){var a=r.translate("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.");n.mac&&(a=a.replace(/Ctrl\+/g,"\u2318+")),r.windowManager.alert(a)}},unlink:function(){if(_.isCollapsed()){var e=_.getNode();return void("A"==e.tagName&&r.dom.remove(e,!0))}S.remove("link")},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t=e.substring(7);"full"==t&&(t="justify"),i("left,center,right,justify".split(","),function(e){t!=e&&S.remove("align"+e)}),b("align"+t),p("mceRepaint")},"InsertUnorderedList,InsertOrderedList":function(e){var t,n;v(e),t=w.getParent(_.getNode(),"ol,ul"),t&&(n=t.parentNode,/^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName)&&(C(),w.split(n,t),x()))},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){b(e)},"ForeColor,HiliteColor,FontName":function(e,t,n){b(e,n)},FontSize:function(e,t,n){var r,i;n>=1&&7>=n&&(i=l(E.font_size_style_values),r=l(E.font_size_classes),n=r?r[n-1]||n:i[n-1]||n),b(e,n)},RemoveFormat:function(e){S.remove(e)},mceBlockQuote:function(){b("blockquote")},FormatBlock:function(e,t,n){return b(n||"p")},mceCleanup:function(){var e=_.getBookmark();r.setContent(r.getContent({cleanup:d}),{cleanup:d}),_.moveToBookmark(e)},mceRemoveNode:function(e,t,n){var i=n||_.getNode();i!=r.getBody()&&(C(),r.dom.remove(i,d),x())},mceSelectNodeDepth:function(e,t,n){var i=0;w.getParent(_.getNode(),function(e){return 1==e.nodeType&&i++==n?(_.select(e),f):void 0},r.getBody())},mceSelectNode:function(e,t,n){_.select(n)},mceInsertContent:function(t,n,i){function o(e){function t(e){return r[e]&&3==r[e].nodeType}var n,r,i;return n=_.getRng(!0),r=n.startContainer,i=n.startOffset,3==r.nodeType&&(i>0?e=e.replace(/^ /," "):t("previousSibling")||(e=e.replace(/^ /," ")),i<r.length?e=e.replace(/ (<br>|)$/," "):t("nextSibling")||(e=e.replace(/( | )(<br>|)$/," "))),e}var a,s,l,c,d,f,p,m,h,g,v;/^ | $/.test(i)&&(i=o(i)),a=r.parser,s=new e({},r.schema),v='<span id="mce_marker" data-mce-type="bookmark">ÈB;</span>',f={content:i,format:"html",selection:!0},r.fire("BeforeSetContent",f),i=f.content,-1==i.indexOf("{$caret}")&&(i+="{$caret}"),i=i.replace(/\{\$caret\}/,v),m=_.getRng();var y=m.startContainer||(m.parentElement?m.parentElement():null),b=r.getBody();y===b&&_.isCollapsed()&&w.isBlock(b.firstChild)&&w.isEmpty(b.firstChild)&&(m=w.createRng(),m.setStart(b.firstChild,0),m.setEnd(b.firstChild,0),_.setRng(m)),_.isCollapsed()||r.getDoc().execCommand("Delete",!1,null),l=_.getNode();var C={context:l.nodeName.toLowerCase()};if(d=a.parse(i,C),h=d.lastChild,"mce_marker"==h.attr("id"))for(p=h,h=h.prev;h;h=h.walk(!0))if(3==h.type||!w.isBlock(h.name)){h.parent.insert(p,h,"br"===h.name);break}if(C.invalid){for(_.setContent(v),l=_.getNode(),c=r.getBody(),9==l.nodeType?l=h=c:h=l;h!==c;)l=h,h=h.parentNode;i=l==c?c.innerHTML:w.getOuterHTML(l),i=s.serialize(a.parse(i.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i,function(){return s.serialize(d)}))),l==c?w.setHTML(c,i):w.setOuterHTML(l,i)}else i=s.serialize(d),h=l.firstChild,g=l.lastChild,!h||h===g&&"BR"===h.nodeName?w.setHTML(l,i):_.setContent(i);p=w.get("mce_marker"),_.scrollIntoView(p),m=w.createRng(),h=p.previousSibling,h&&3==h.nodeType?(m.setStart(h,h.nodeValue.length),u||(g=p.nextSibling,g&&3==g.nodeType&&(h.appendData(g.data),g.parentNode.removeChild(g)))):(m.setStartBefore(p),m.setEndBefore(p)),w.remove(p),_.setRng(m),r.fire("SetContent",f),r.addVisual()},mceInsertRawHTML:function(e,t,n){_.setContent("tiny_mce_marker"),r.setContent(r.getContent().replace(/tiny_mce_marker/g,function(){return n}))},mceToggleFormat:function(e,t,n){b(n)},mceSetContent:function(e,t,n){r.setContent(n)},"Indent,Outdent":function(e){var t,n,o;t=E.indentation,n=/[a-z%]+$/i.exec(t),t=parseInt(t,10),m("InsertUnorderedList")||m("InsertOrderedList")?v(e):(E.forced_root_block||w.getParent(_.getNode(),w.isBlock)||S.apply("div"),i(_.getSelectedBlocks(),function(i){if("LI"!=i.nodeName){var a=r.getParam("indent_use_margin",!1)?"margin":"padding";a+="rtl"==w.getStyle(i,"direction",!0)?"Right":"Left","outdent"==e?(o=Math.max(0,parseInt(i.style[a]||0,10)-t),w.setStyle(i,a,o?o+n:"")):(o=parseInt(i.style[a]||0,10)+t+n,w.setStyle(i,a,o))}}))},mceRepaint:function(){if(c)try{C(d),_.getSel()&&_.getSel().selectAllChildren(r.getBody()),_.collapse(d),x()}catch(e){}},InsertHorizontalRule:function(){r.execCommand("mceInsertContent",!1,"<hr />")},mceToggleVisualAid:function(){r.hasVisual=!r.hasVisual,r.addVisual()},mceReplaceContent:function(e,t,n){r.execCommand("mceInsertContent",!1,n.replace(/\{\$selection\}/g,_.getContent({format:"text"})))},mceInsertLink:function(e,t,n){var r;"string"==typeof n&&(n={href:n}),r=w.getParent(_.getNode(),"a"),n.href=n.href.replace(" ","%20"),r&&n.href||S.remove("link"),n.href&&S.apply("link",n,r)},selectAll:function(){var e=w.getRoot(),t;_.getRng().setStart?(t=w.createRng(),t.setStart(e,0),t.setEnd(e,e.childNodes.length),_.setRng(t)):(t=_.getRng(),t.item||(t.moveToElementText(e),t.select()))},"delete":function(){v("Delete");var e=r.getBody();w.isEmpty(e)&&(r.setContent(""),e.firstChild&&w.isBlock(e.firstChild)?r.selection.setCursorLocation(e.firstChild,0):r.selection.setCursorLocation(e,0))},mceNewDocument:function(){r.setContent("")}}),g({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t="align"+e.substring(7),n=_.isCollapsed()?[w.getParent(_.getNode(),w.isBlock)]:_.getSelectedBlocks(),r=a(n,function(e){return!!S.matchNode(e,t)});return-1!==s(r,d)},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){return y(e)},mceBlockQuote:function(){return y("blockquote")},Outdent:function(){var e;if(E.inline_styles){if((e=w.getParent(_.getStart(),w.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return d;if((e=w.getParent(_.getEnd(),w.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return d}return m("InsertUnorderedList")||m("InsertOrderedList")||!E.inline_styles&&!!w.getParent(_.getNode(),"BLOCKQUOTE")},"InsertUnorderedList,InsertOrderedList":function(e){var t=w.getParent(_.getNode(),"ul,ol");return t&&("insertunorderedlist"===e&&"UL"===t.tagName||"insertorderedlist"===e&&"OL"===t.tagName)}},"state"),g({"FontSize,FontName":function(e){var t=0,n;return(n=w.getParent(_.getNode(),"span"))&&(t="fontsize"==e?n.style.fontSize:n.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()),t}},"value"),g({Undo:function(){r.undoManager.undo()},Redo:function(){r.undoManager.redo()}})}}),r(I,[p],function(e){function t(e,i){var o=this,a,s;if(e=r(e),i=o.settings=i||{},/^([\w\-]+):([^\/]{2})/i.test(e)||/^\s*#/.test(e))return void(o.source=e);var l=0===e.indexOf("//");0!==e.indexOf("/")||l||(e=(i.base_uri?i.base_uri.protocol||"http":"http")+"://mce_host"+e),/^[\w\-]*:?\/\//.test(e)||(s=i.base_uri?i.base_uri.path:new t(location.href).directory,e=""===i.base_uri.protocol?"//mce_host"+o.toAbsPath(s,e):(i.base_uri&&i.base_uri.protocol||"http")+"://mce_host"+o.toAbsPath(s,e)),e=e.replace(/@@/g,"(mce_at)"),e=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e),n(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],function(t,n){var r=e[n];r&&(r=r.replace(/\(mce_at\)/g,"@@")),o[t]=r}),a=i.base_uri,a&&(o.protocol||(o.protocol=a.protocol),o.userInfo||(o.userInfo=a.userInfo),o.port||"mce_host"!==o.host||(o.port=a.port),o.host&&"mce_host"!==o.host||(o.host=a.host),o.source=""),l&&(o.protocol="")}var n=e.each,r=e.trim;return t.prototype={setPath:function(e){var t=this;e=/^(.*?)\/?(\w+)?$/.exec(e),t.path=e[0],t.directory=e[1],t.file=e[2],t.source="",t.getURI()},toRelative:function(e){var n=this,r;if("./"===e)return e;if(e=new t(e,{base_uri:n}),"mce_host"!=e.host&&n.host!=e.host&&e.host||n.port!=e.port||n.protocol!=e.protocol&&""!==e.protocol)return e.getURI();var i=n.getURI(),o=e.getURI();return i==o||"/"==i.charAt(i.length-1)&&i.substr(0,i.length-1)==o?i:(r=n.toRelPath(n.path,e.path),e.query&&(r+="?"+e.query),e.anchor&&(r+="#"+e.anchor),r)},toAbsolute:function(e,n){return e=new t(e,{base_uri:this}),e.getURI(this.host==e.host&&this.protocol==e.protocol?n:0)},toRelPath:function(e,t){var n,r=0,i="",o,a;if(e=e.substring(0,e.lastIndexOf("/")),e=e.split("/"),n=t.split("/"),e.length>=n.length)for(o=0,a=e.length;a>o;o++)if(o>=n.length||e[o]!=n[o]){r=o+1;break}if(e.length<n.length)for(o=0,a=n.length;a>o;o++)if(o>=e.length||e[o]!=n[o]){r=o+1;break}if(1===r)return t;for(o=0,a=e.length-(r-1);a>o;o++)i+="../";for(o=r-1,a=n.length;a>o;o++)i+=o!=r-1?"/"+n[o]:n[o]; +return i},toAbsPath:function(e,t){var r,i=0,o=[],a,s;for(a=/\/$/.test(t)?"/":"",e=e.split("/"),t=t.split("/"),n(e,function(e){e&&o.push(e)}),e=o,r=t.length-1,o=[];r>=0;r--)0!==t[r].length&&"."!==t[r]&&(".."!==t[r]?i>0?i--:o.push(t[r]):i++);return r=e.length-i,s=0>=r?o.reverse().join("/"):e.slice(0,r).join("/")+"/"+o.reverse().join("/"),0!==s.indexOf("/")&&(s="/"+s),a&&s.lastIndexOf("/")!==s.length-1&&(s+=a),s},getURI:function(e){var t,n=this;return(!n.source||e)&&(t="",e||(t+=n.protocol?n.protocol+"://":"//",n.userInfo&&(t+=n.userInfo+"@"),n.host&&(t+=n.host),n.port&&(t+=":"+n.port)),n.path&&(t+=n.path),n.query&&(t+="?"+n.query),n.anchor&&(t+="#"+n.anchor),n.source=t),n.source}},t}),r(F,[p],function(e){function t(){}var n=e.each,r=e.extend,i,o;return t.extend=i=function(e){function t(){var e,t,n,r=this;if(!o&&(r.init&&r.init.apply(r,arguments),t=r.Mixins))for(e=t.length;e--;)n=t[e],n.init&&n.init.apply(r,arguments)}function a(){return this}function s(e,t){return function(){var n=this,r=n._super,i;return n._super=c[e],i=t.apply(n,arguments),n._super=r,i}}var l=this,c=l.prototype,u,d,f;o=!0,u=new l,o=!1,e.Mixins&&(n(e.Mixins,function(t){t=t;for(var n in t)"init"!==n&&(e[n]=t[n])}),c.Mixins&&(e.Mixins=c.Mixins.concat(e.Mixins))),e.Methods&&n(e.Methods.split(","),function(t){e[t]=a}),e.Properties&&n(e.Properties.split(","),function(t){var n="_"+t;e[t]=function(e){var t=this,r;return e!==r?(t[n]=e,t):t[n]}}),e.Statics&&n(e.Statics,function(e,n){t[n]=e}),e.Defaults&&c.Defaults&&(e.Defaults=r({},c.Defaults,e.Defaults));for(d in e)f=e[d],u[d]="function"==typeof f&&c[d]?s(d,f):f;return t.prototype=u,t.constructor=t,t.extend=i,t},t}),r(z,[F],function(e){function t(e){for(var t=[],n=e.length,r;n--;)r=e[n],r.__checked||(t.push(r),r.__checked=1);for(n=t.length;n--;)delete t[n].__checked;return t}var n=/^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i,r=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,i=/^\s*|\s*$/g,o,a=e.extend({init:function(e){function t(e){return e?(e=e.toLowerCase(),function(t){return"*"===e||t.type===e}):void 0}function o(e){return e?function(t){return t._name===e}:void 0}function a(e){return e?(e=e.split("."),function(t){for(var n=e.length;n--;)if(!t.hasClass(e[n]))return!1;return!0}):void 0}function s(e,t,n){return e?function(r){var i=r[e]?r[e]():"";return t?"="===t?i===n:"*="===t?i.indexOf(n)>=0:"~="===t?(" "+i+" ").indexOf(" "+n+" ")>=0:"!="===t?i!=n:"^="===t?0===i.indexOf(n):"$="===t?i.substr(i.length-n.length)===n:!1:!!n}:void 0}function l(e){var t;return e?(e=/(?:not\((.+)\))|(.+)/i.exec(e),e[1]?(t=u(e[1],[]),function(e){return!d(e,t)}):(e=e[2],function(t,n,r){return"first"===e?0===n:"last"===e?n===r-1:"even"===e?n%2===0:"odd"===e?n%2===1:t[e]?t[e]():!1})):void 0}function c(e,r,c){function u(e){e&&r.push(e)}var d;return d=n.exec(e.replace(i,"")),u(t(d[1])),u(o(d[2])),u(a(d[3])),u(s(d[4],d[5],d[6])),u(l(d[7])),r.psuedo=!!d[7],r.direct=c,r}function u(e,t){var n=[],i,o,a;do if(r.exec(""),o=r.exec(e),o&&(e=o[3],n.push(o[1]),o[2])){i=o[3];break}while(o);for(i&&u(i,t),e=[],a=0;a<n.length;a++)">"!=n[a]&&e.push(c(n[a],[],">"===n[a-1]));return t.push(e),t}var d=this.match;this._selectors=u(e,[])},match:function(e,t){var n,r,i,o,a,s,l,c,u,d,f,p,m;for(t=t||this._selectors,n=0,r=t.length;r>n;n++){for(a=t[n],o=a.length,m=e,p=0,i=o-1;i>=0;i--)for(c=a[i];m;){if(c.psuedo)for(f=m.parent().items(),u=d=f.length;u--&&f[u]!==m;);for(s=0,l=c.length;l>s;s++)if(!c[s](m,u,d)){s=l+1;break}if(s===l){p++;break}if(i===o-1)break;m=m.parent()}if(p===o)return!0}return!1},find:function(e){function n(e,t,i){var o,a,s,l,c,u=t[i];for(o=0,a=e.length;a>o;o++){for(c=e[o],s=0,l=u.length;l>s;s++)if(!u[s](c,o,a)){s=l+1;break}if(s===l)i==t.length-1?r.push(c):c.items&&n(c.items(),t,i+1);else if(u.direct)return;c.items&&n(c.items(),t,i)}}var r=[],i,s,l=this._selectors;if(e.items){for(i=0,s=l.length;s>i;i++)n(e.items(),l[i],0);s>1&&(r=t(r))}return o||(o=a.Collection),new o(r)}});return a}),r(W,[p,z,F],function(e,t,n){var r,i,o=Array.prototype.push,a=Array.prototype.slice;return i={length:0,init:function(e){e&&this.add(e)},add:function(t){var n=this;return e.isArray(t)?o.apply(n,t):t instanceof r?n.add(t.toArray()):o.call(n,t),n},set:function(e){var t=this,n=t.length,r;for(t.length=0,t.add(e),r=t.length;n>r;r++)delete t[r];return t},filter:function(e){var n=this,i,o,a=[],s,l;for("string"==typeof e?(e=new t(e),l=function(t){return e.match(t)}):l=e,i=0,o=n.length;o>i;i++)s=n[i],l(s)&&a.push(s);return new r(a)},slice:function(){return new r(a.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},each:function(t){return e.each(this,t),this},toArray:function(){return e.toArray(this)},indexOf:function(e){for(var t=this,n=t.length;n--&&t[n]!==e;);return n},reverse:function(){return new r(e.toArray(this).reverse())},hasClass:function(e){return this[0]?this[0].hasClass(e):!1},prop:function(e,t){var n=this,r,i;return t!==r?(n.each(function(n){n[e]&&n[e](t)}),n):(i=n[0],i&&i[e]?i[e]():void 0)},exec:function(t){var n=this,r=e.toArray(arguments).slice(1);return n.each(function(e){e[t]&&e[t].apply(e,r)}),n},remove:function(){for(var e=this.length;e--;)this[e].remove();return this}},e.each("fire on off show hide addClass removeClass append prepend before after reflow".split(" "),function(t){i[t]=function(){var n=e.toArray(arguments);return this.each(function(e){t in e&&e[t].apply(e,n)}),this}}),e.each("text name disabled active selected checked visible parent value data".split(" "),function(e){i[e]=function(t){return this.prop(e,t)}}),r=n.extend(i),t.Collection=r,r}),r(V,[p,y],function(e,t){return{id:function(){return t.DOM.uniqueId()},createFragment:function(e){return t.DOM.createFragment(e)},getWindowSize:function(){return t.DOM.getViewPort()},getSize:function(e){var t,n;if(e.getBoundingClientRect){var r=e.getBoundingClientRect();t=Math.max(r.width||r.right-r.left,e.offsetWidth),n=Math.max(r.height||r.bottom-r.bottom,e.offsetHeight)}else t=e.offsetWidth,n=e.offsetHeight;return{width:t,height:n}},getPos:function(e,n){return t.DOM.getPos(e,n)},getViewPort:function(e){return t.DOM.getViewPort(e)},get:function(e){return document.getElementById(e)},addClass:function(e,n){return t.DOM.addClass(e,n)},removeClass:function(e,n){return t.DOM.removeClass(e,n)},hasClass:function(e,n){return t.DOM.hasClass(e,n)},toggleClass:function(e,n,r){return t.DOM.toggleClass(e,n,r)},css:function(e,n,r){return t.DOM.setStyle(e,n,r)},on:function(e,n,r,i){return t.DOM.bind(e,n,r,i)},off:function(e,n,r){return t.DOM.unbind(e,n,r)},fire:function(e,n,r){return t.DOM.fire(e,n,r)},innerHtml:function(e,n){t.DOM.setHTML(e,n)}}}),r(U,[F,p,W,V],function(e,t,n,r){var i=t.makeMap("focusin focusout scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave wheel keydown keypress keyup contextmenu"," "),o={},a="onmousewheel"in document,s=!1,l=e.extend({Statics:{elementIdCache:o},isRtl:function(){return l.rtl},classPrefix:"mce-",init:function(e){var n=this,i,o;if(n.settings=e=t.extend({},n.Defaults,e),n._id=e.id||r.id(),n._text=n._name="",n._width=n._height=0,n._aria={role:e.role},i=e.classes)for(i=i.split(" "),i.map={},o=i.length;o--;)i.map[i[o]]=!0;n._classes=i||[],n.visible(!0),t.each("title text width height name classes visible disabled active value".split(" "),function(t){var r=e[t],i;r!==i?n[t](r):n["_"+t]===i&&(n["_"+t]=!1)}),n.on("click",function(){return n.disabled()?!1:void 0}),e.classes&&t.each(e.classes.split(" "),function(e){n.addClass(e)}),n.settings=e,n._borderBox=n.parseBox(e.border),n._paddingBox=n.parseBox(e.padding),n._marginBox=n.parseBox(e.margin),e.hidden&&n.hide()},Properties:"parent,title,text,width,height,disabled,active,name,value",Methods:"renderHtml",getContainerElm:function(){return document.body},getParentCtrl:function(e){for(var t,n=this.getRoot().controlIdLookup;e&&n&&!(t=n[e.id]);)e=e.parentNode;return t},parseBox:function(e){var t,n=10;if(e)return"number"==typeof e?(e=e||0,{top:e,left:e,bottom:e,right:e}):(e=e.split(" "),t=e.length,1===t?e[1]=e[2]=e[3]=e[0]:2===t?(e[2]=e[0],e[3]=e[1]):3===t&&(e[3]=e[1]),{top:parseInt(e[0],n)||0,right:parseInt(e[1],n)||0,bottom:parseInt(e[2],n)||0,left:parseInt(e[3],n)||0})},borderBox:function(){return this._borderBox},paddingBox:function(){return this._paddingBox},marginBox:function(){return this._marginBox},measureBox:function(e,t){function n(t){var n=document.defaultView;return n?(t=t.replace(/[A-Z]/g,function(e){return"-"+e}),n.getComputedStyle(e,null).getPropertyValue(t)):e.currentStyle[t]}function r(e){var t=parseFloat(n(e),10);return isNaN(t)?0:t}return{top:r(t+"TopWidth"),right:r(t+"RightWidth"),bottom:r(t+"BottomWidth"),left:r(t+"LeftWidth")}},initLayoutRect:function(){var e=this,t=e.settings,n,i,o=e.getEl(),a,s,l,c,u,d,f,p;n=e._borderBox=e._borderBox||e.measureBox(o,"border"),e._paddingBox=e._paddingBox||e.measureBox(o,"padding"),e._marginBox=e._marginBox||e.measureBox(o,"margin"),p=r.getSize(o),d=t.minWidth,f=t.minHeight,l=d||p.width,c=f||p.height,a=t.width,s=t.height,u=t.autoResize,u="undefined"!=typeof u?u:!a&&!s,a=a||l,s=s||c;var m=n.left+n.right,h=n.top+n.bottom,g=t.maxWidth||65535,v=t.maxHeight||65535;return e._layoutRect=i={x:t.x||0,y:t.y||0,w:a,h:s,deltaW:m,deltaH:h,contentW:a-m,contentH:s-h,innerW:a-m,innerH:s-h,startMinWidth:d||0,startMinHeight:f||0,minW:Math.min(l,g),minH:Math.min(c,v),maxW:g,maxH:v,autoResize:u,scrollW:0},e._lastLayoutRect={},i},layoutRect:function(e){var t=this,n=t._layoutRect,r,i,o,a,s,c;return n||(n=t.initLayoutRect()),e?(o=n.deltaW,a=n.deltaH,e.x!==s&&(n.x=e.x),e.y!==s&&(n.y=e.y),e.minW!==s&&(n.minW=e.minW),e.minH!==s&&(n.minH=e.minH),i=e.w,i!==s&&(i=i<n.minW?n.minW:i,i=i>n.maxW?n.maxW:i,n.w=i,n.innerW=i-o),i=e.h,i!==s&&(i=i<n.minH?n.minH:i,i=i>n.maxH?n.maxH:i,n.h=i,n.innerH=i-a),i=e.innerW,i!==s&&(i=i<n.minW-o?n.minW-o:i,i=i>n.maxW-o?n.maxW-o:i,n.innerW=i,n.w=i+o),i=e.innerH,i!==s&&(i=i<n.minH-a?n.minH-a:i,i=i>n.maxH-a?n.maxH-a:i,n.innerH=i,n.h=i+a),e.contentW!==s&&(n.contentW=e.contentW),e.contentH!==s&&(n.contentH=e.contentH),r=t._lastLayoutRect,(r.x!==n.x||r.y!==n.y||r.w!==n.w||r.h!==n.h)&&(c=l.repaintControls,c&&c.map&&!c.map[t._id]&&(c.push(t),c.map[t._id]=!0),r.x=n.x,r.y=n.y,r.w=n.w,r.h=n.h),t):n},repaint:function(){var e=this,t,n,r,i,o=0,a=0,s,l;l=document.createRange?function(e){return e}:Math.round,t=e.getEl().style,r=e._layoutRect,s=e._lastRepaintRect||{},i=e._borderBox,o=i.left+i.right,a=i.top+i.bottom,r.x!==s.x&&(t.left=l(r.x)+"px",s.x=r.x),r.y!==s.y&&(t.top=l(r.y)+"px",s.y=r.y),r.w!==s.w&&(t.width=l(r.w-o)+"px",s.w=r.w),r.h!==s.h&&(t.height=l(r.h-a)+"px",s.h=r.h),e._hasBody&&r.innerW!==s.innerW&&(n=e.getEl("body").style,n.width=l(r.innerW)+"px",s.innerW=r.innerW),e._hasBody&&r.innerH!==s.innerH&&(n=n||e.getEl("body").style,n.height=l(r.innerH)+"px",s.innerH=r.innerH),e._lastRepaintRect=s,e.fire("repaint",{},!1)},on:function(e,t){function n(e){var t,n;return function(i){return t||r.parents().each(function(r){var i=r.settings.callbacks;return i&&(t=i[e])?(n=r,!1):void 0}),t.call(n,i)}}var r=this,o,a,s,l;if(t)for("string"==typeof t&&(t=n(t)),s=e.toLowerCase().split(" "),l=s.length;l--;)e=s[l],o=r._bindings,o||(o=r._bindings={}),a=o[e],a||(a=o[e]=[]),a.push(t),i[e]&&(r._nativeEvents?r._nativeEvents[e]=!0:r._nativeEvents={name:!0},r._rendered&&r.bindPendingEvents());return r},off:function(e,t){var n=this,r,i=n._bindings,o,a,s,l;if(i)if(e)for(s=e.toLowerCase().split(" "),r=s.length;r--;){if(e=s[r],o=i[e],!e){for(a in i)i[a].length=0;return n}if(o)if(t)for(l=o.length;l--;)o[l]===t&&o.splice(l,1);else o.length=0}else n._bindings=[];return n},fire:function(e,t,n){function r(){return!1}function i(){return!0}var o=this,a,s,l,c;if(e=e.toLowerCase(),t=t||{},t.type||(t.type=e),t.control||(t.control=o),t.preventDefault||(t.preventDefault=function(){t.isDefaultPrevented=i},t.stopPropagation=function(){t.isPropagationStopped=i},t.stopImmediatePropagation=function(){t.isImmediatePropagationStopped=i},t.isDefaultPrevented=r,t.isPropagationStopped=r,t.isImmediatePropagationStopped=r),o._bindings&&(l=o._bindings[e]))for(a=0,s=l.length;s>a&&(t.isImmediatePropagationStopped()||l[a].call(o,t)!==!1);a++);if(n!==!1)for(c=o.parent();c&&!t.isPropagationStopped();)c.fire(e,t,!1),c=c.parent();return t},hasEventListeners:function(e){return e in this._bindings},parents:function(e){var t=this,r,i=new n;for(r=t.parent();r;r=r.parent())i.add(r);return e&&(i=i.filter(e)),i},next:function(){var e=this.parent().items();return e[e.indexOf(this)+1]},prev:function(){var e=this.parent().items();return e[e.indexOf(this)-1]},findCommonAncestor:function(e,t){for(var n;e;){for(n=t;n&&e!=n;)n=n.parent();if(e==n)break;e=e.parent()}return e},hasClass:function(e,t){var n=this._classes[t||"control"];return e=this.classPrefix+e,n&&!!n.map[e]},addClass:function(e,t){var n=this,r,i;return e=this.classPrefix+e,r=n._classes[t||"control"],r||(r=[],r.map={},n._classes[t||"control"]=r),r.map[e]||(r.map[e]=e,r.push(e),n._rendered&&(i=n.getEl(t),i&&(i.className=r.join(" ")))),n},removeClass:function(e,t){var n=this,r,i,o;if(e=this.classPrefix+e,r=n._classes[t||"control"],r&&r.map[e])for(delete r.map[e],i=r.length;i--;)r[i]===e&&r.splice(i,1);return n._rendered&&(o=n.getEl(t),o&&(o.className=r.join(" "))),n},toggleClass:function(e,t,n){var r=this;return t?r.addClass(e,n):r.removeClass(e,n),r},classes:function(e){var t=this._classes[e||"control"];return t?t.join(" "):""},innerHtml:function(e){return r.innerHtml(this.getEl(),e),this},getEl:function(e,t){var n,i=e?this._id+"-"+e:this._id;return n=o[i]=(t===!0?null:o[i])||r.get(i)},visible:function(e){var t=this,n;return"undefined"!=typeof e?(t._visible!==e&&(t._rendered&&(t.getEl().style.display=e?"":"none"),t._visible=e,n=t.parent(),n&&(n._lastRect=null),t.fire(e?"show":"hide")),t):t._visible},show:function(){return this.visible(!0)},hide:function(){return this.visible(!1)},focus:function(){try{this.getEl().focus()}catch(e){}return this},blur:function(){return this.getEl().blur(),this},aria:function(e,t){var n=this,r=n.getEl(n.ariaTarget);return"undefined"==typeof t?n._aria[e]:(n._aria[e]=t,n._rendered&&r.setAttribute("role"==e?e:"aria-"+e,t),n)},encode:function(e,t){return t!==!1&&l.translate&&(e=l.translate(e)),(e||"").replace(/[&<>"]/g,function(e){return"&#"+e.charCodeAt(0)+";"})},before:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t),!0),t},after:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t)),t},remove:function(){var e=this,t=e.getEl(),n=e.parent(),i,a;if(e.items){var s=e.items().toArray();for(a=s.length;a--;)s[a].remove()}n&&n.items&&(i=[],n.items().each(function(t){t!==e&&i.push(t)}),n.items().set(i),n._lastRect=null),e._eventsRoot&&e._eventsRoot==e&&r.off(t);var l=e.getRoot().controlIdLookup;if(l&&delete l[e._id],delete o[e._id],t&&t.parentNode){var c=t.getElementsByTagName("*");for(a=c.length;a--;)delete o[c[a].id];t.parentNode.removeChild(t)}return e._rendered=!1,e},renderBefore:function(e){var t=this;return e.parentNode.insertBefore(r.createFragment(t.renderHtml()),e),t.postRender(),t},renderTo:function(e){var t=this;return e=e||t.getContainerElm(),e.appendChild(r.createFragment(t.renderHtml())),t.postRender(),t},postRender:function(){var e=this,t=e.settings,n,i,o,a,s;for(a in t)0===a.indexOf("on")&&e.on(a.substr(2),t[a]);if(e._eventsRoot){for(o=e.parent();!s&&o;o=o.parent())s=o._eventsRoot;if(s)for(a in s._nativeEvents)e._nativeEvents[a]=!0}e.bindPendingEvents(),t.style&&(n=e.getEl(),n&&(n.setAttribute("style",t.style),n.style.cssText=t.style)),e._visible||r.css(e.getEl(),"display","none"),e.settings.border&&(i=e.borderBox(),r.css(e.getEl(),{"border-top-width":i.top,"border-right-width":i.right,"border-bottom-width":i.bottom,"border-left-width":i.left}));var l=e.getRoot();l.controlIdLookup||(l.controlIdLookup={}),l.controlIdLookup[e._id]=e;for(var c in e._aria)e.aria(c,e._aria[c]);e.fire("postrender",{},!1)},scrollIntoView:function(e){function t(e,t){var n,r,i=e;for(n=r=0;i&&i!=t&&i.nodeType;)n+=i.offsetLeft||0,r+=i.offsetTop||0,i=i.offsetParent;return{x:n,y:r}}var n=this.getEl(),r=n.parentNode,i,o,a,s,l,c,u=t(n,r);return i=u.x,o=u.y,a=n.offsetWidth,s=n.offsetHeight,l=r.clientWidth,c=r.clientHeight,"end"==e?(i-=l-a,o-=c-s):"center"==e&&(i-=l/2-a/2,o-=c/2-s/2),r.scrollLeft=i,r.scrollTop=o,this},bindPendingEvents:function(){function e(e){var t=o.getParentCtrl(e.target);t&&t.fire(e.type,e)}function t(){var e=d._lastHoverCtrl;e&&(e.fire("mouseleave",{target:e.getEl()}),e.parents().each(function(e){e.fire("mouseleave",{target:e.getEl()})}),d._lastHoverCtrl=null)}function n(e){var t=o.getParentCtrl(e.target),n=d._lastHoverCtrl,r=0,i,a,s;if(t!==n){if(d._lastHoverCtrl=t,a=t.parents().toArray().reverse(),a.push(t),n){for(s=n.parents().toArray().reverse(),s.push(n),r=0;r<s.length&&a[r]===s[r];r++);for(i=s.length-1;i>=r;i--)n=s[i],n.fire("mouseleave",{target:n.getEl()})}for(i=r;i<a.length;i++)t=a[i],t.fire("mouseenter",{target:t.getEl()})}}function i(e){e.preventDefault(),"mousewheel"==e.type?(e.deltaY=-1/40*e.wheelDelta,e.wheelDeltaX&&(e.deltaX=-1/40*e.wheelDeltaX)):(e.deltaX=0,e.deltaY=e.detail),e=o.fire("wheel",e)}var o=this,l,c,u,d,f,p;if(o._rendered=!0,f=o._nativeEvents){for(u=o.parents().toArray(),u.unshift(o),l=0,c=u.length;!d&&c>l;l++)d=u[l]._eventsRoot;for(d||(d=u[u.length-1]||o),o._eventsRoot=d,c=l,l=0;c>l;l++)u[l]._eventsRoot=d;for(p in f){if(!f)return!1;"wheel"!==p||s?("mouseenter"===p||"mouseleave"===p?d._hasMouseEnter||(r.on(d.getEl(),"mouseleave",t),r.on(d.getEl(),"mouseover",n),d._hasMouseEnter=1):d[p]||(r.on(d.getEl(),p,e),d[p]=!0),f[p]=!1):a?r.on(o.getEl(),"mousewheel",i):r.on(o.getEl(),"DOMMouseScroll",i)}}},getRoot:function(){for(var e=this,t,n=[];e;){if(e.rootControl){t=e.rootControl;break}n.push(e),t=e,e=e.parent()}t||(t=this);for(var r=n.length;r--;)n[r].rootControl=t;return t},reflow:function(){return this.repaint(),this}});return l}),r(q,[],function(){var e={},t;return{add:function(t,n){e[t.toLowerCase()]=n},has:function(t){return!!e[t.toLowerCase()]},create:function(n,r){var i,o,a;if(!t){a=tinymce.ui;for(o in a)e[o.toLowerCase()]=a[o];t=!0}if("string"==typeof n?(r=r||{},r.type=n):(r=n,n=r.type),n=n.toLowerCase(),i=e[n],!i)throw new Error("Could not find control by type: "+n);return i=new i(r),i.type=n,i}}}),r($,[],function(){return function(e){function t(e){return e=e||b,e&&e.getAttribute("role")}function n(e){for(var n,r=e||b;r=r.parentNode;)if(n=t(r))return n}function r(e){var t=b;return t?t.getAttribute("aria-"+e):void 0}function i(e){return"INPUT"==e.tagName||"TEXTAREA"==e.tagName}function o(e){return i(e)&&!e.hidden?!0:/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell)$/.test(t(e))?!0:!1}function a(e){function t(e){if(1==e.nodeType&&"none"!=e.style.display){o(e)&&n.push(e);for(var r=0;r<e.childNodes.length;r++)t(e.childNodes[r])}}var n=[];return t(e||y.getEl()),n}function s(e){var t,n;e=e||C,n=e.parents().toArray(),n.unshift(e);for(var r=0;r<n.length&&(t=n[r],!t.settings.ariaRoot);r++);return t}function l(e){var t=s(e),n=a(t.getEl());t.settings.ariaRemember&&"lastAriaIndex"in t?c(t.lastAriaIndex,n):c(0,n)}function c(e,t){return 0>e?e=t.length-1:e>=t.length&&(e=0),t[e]&&t[e].focus(),e}function u(e,t){var n=-1,r=s();t=t||a(r.getEl());for(var i=0;i<t.length;i++)t[i]===b&&(n=i);n+=e,r.lastAriaIndex=c(n,t)}function d(){var e=n();"tablist"==e?u(-1,a(b.parentNode)):C.parent().submenu?g():u(-1)}function f(){var e=t(),i=n();"tablist"==i?u(1,a(b.parentNode)):"menuitem"==e&&"menu"==i&&r("haspopup")?v():u(1)}function p(){u(-1)}function m(){var e=t(),i=n();"menuitem"==e&&"menubar"==i?v():"button"==e&&r("haspopup")?v({key:"down"}):u(1)}function h(e){var t=n();if("tablist"==t){var r=a(C.getEl("body"))[0];r&&r.focus()}else u(e.shiftKey?-1:1)}function g(){C.fire("cancel")}function v(e){e=e||{},C.fire("click",{target:b,aria:e})}var y=e.root,b,C;return b=document.activeElement,C=y.getParentCtrl(b),y.on("keydown",function(e){function t(e,t){i(b)||t(e)!==!1&&e.preventDefault()}if(!e.isDefaultPrevented())switch(e.keyCode){case 37:t(e,d);break;case 39:t(e,f);break;case 38:t(e,p);break;case 40:t(e,m);break;case 27:t(e,g);break;case 14:case 13:case 32:t(e,v);break;case 9:h(e)!==!1&&e.preventDefault()}}),y.on("focusin",function(e){b=e.target,C=e.control}),{focusFirst:l}}}),r(j,[U,W,z,q,$,p,V],function(e,t,n,r,i,o,a){var s={};return e.extend({layout:"",innerClass:"container-inner",init:function(e){var n=this;n._super(e),e=n.settings,n._fixed=e.fixed,n._items=new t,n.isRtl()&&n.addClass("rtl"),n.addClass("container"),n.addClass("container-body","body"),e.containerCls&&n.addClass(e.containerCls),n._layout=r.create((e.layout||n.layout)+"layout"),n.settings.items&&n.add(n.settings.items),n._hasBody=!0},items:function(){return this._items},find:function(e){return e=s[e]=s[e]||new n(e),e.find(this)},add:function(e){var t=this;return t.items().add(t.create(e)).parent(t),t},focus:function(e){var t=this,n,r,i;return e&&(r=t.keyboardNav||t.parents().eq(-1)[0].keyboardNav)?void r.focusFirst(t):(i=t.find("*"),t.statusbar&&i.add(t.statusbar.items()),i.each(function(e){return e.settings.autofocus?(n=null,!1):void(e.canFocus&&(n=n||e))}),n&&n.focus(),t)},replace:function(e,t){for(var n,r=this.items(),i=r.length;i--;)if(r[i]===e){r[i]=t;break}i>=0&&(n=t.getEl(),n&&n.parentNode.removeChild(n),n=e.getEl(),n&&n.parentNode.removeChild(n)),t.parent(this)},create:function(t){var n=this,i,a=[];return o.isArray(t)||(t=[t]),o.each(t,function(t){t&&(t instanceof e||("string"==typeof t&&(t={type:t}),i=o.extend({},n.settings.defaults,t),t.type=i.type=i.type||t.type||n.settings.defaultType||(i.defaults?i.defaults.type:null),t=r.create(i)),a.push(t))}),a},renderNew:function(){var e=this;return e.items().each(function(t,n){var r,i;t.parent(e),t._rendered||(r=e.getEl("body"),i=a.createFragment(t.renderHtml()),r.hasChildNodes()&&n<=r.childNodes.length-1?r.insertBefore(i,r.childNodes[n]):r.appendChild(i),t.postRender())}),e._layout.applyClasses(e),e._lastRect=null,e},append:function(e){return this.add(e).renderNew()},prepend:function(e){var t=this;return t.items().set(t.create(e).concat(t.items().toArray())),t.renderNew()},insert:function(e,t,n){var r=this,i,o,a;return e=r.create(e),i=r.items(),!n&&t<i.length-1&&(t+=1),t>=0&&t<i.length&&(o=i.slice(0,t).toArray(),a=i.slice(t).toArray(),i.set(o.concat(e,a))),r.renderNew()},fromJSON:function(e){var t=this;for(var n in e)t.find("#"+n).value(e[n]);return t},toJSON:function(){var e=this,t={};return e.find("*").each(function(e){var n=e.name(),r=e.value();n&&"undefined"!=typeof r&&(t[n]=r)}),t},preRender:function(){},renderHtml:function(){var e=this,t=e._layout,n=this.settings.role;return e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'"'+(n?' role="'+this.settings.role+'"':"")+'><div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"},postRender:function(){var e=this,t;return e.items().exec("postRender"),e._super(),e._layout.postRender(e),e._rendered=!0,e.settings.style&&a.css(e.getEl(),e.settings.style),e.settings.border&&(t=e.borderBox(),a.css(e.getEl(),{"border-top-width":t.top,"border-right-width":t.right,"border-bottom-width":t.bottom,"border-left-width":t.left})),e.parent()||(e.keyboardNav=new i({root:e})),e},initLayoutRect:function(){var e=this,t=e._super();return e._layout.recalc(e),t},recalc:function(){var e=this,t=e._layoutRect,n=e._lastRect;return n&&n.w==t.w&&n.h==t.h?void 0:(e._layout.recalc(e),t=e.layoutRect(),e._lastRect={x:t.x,y:t.y,w:t.w,h:t.h},!0)},reflow:function(){var t;if(this.visible()){for(e.repaintControls=[],e.repaintControls.map={},this.recalc(),t=e.repaintControls.length;t--;)e.repaintControls[t].repaint();"flow"!==this.settings.layout&&"stack"!==this.settings.layout&&this.repaint(),e.repaintControls=[]}return this}})}),r(K,[V],function(e){function t(){var e=document,t,n,r,i,o,a,s,l,c=Math.max;return t=e.documentElement,n=e.body,r=c(t.scrollWidth,n.scrollWidth),i=c(t.clientWidth,n.clientWidth),o=c(t.offsetWidth,n.offsetWidth),a=c(t.scrollHeight,n.scrollHeight),s=c(t.clientHeight,n.clientHeight),l=c(t.offsetHeight,n.offsetHeight),{width:o>r?i:r,height:l>a?s:a}}return function(n,r){function i(){return a.getElementById(r.handle||n)}var o,a=document,s,l,c,u,d,f;r=r||{},l=function(n){var l=t(),p,m;n.preventDefault(),s=n.button,p=i(),d=n.screenX,f=n.screenY,m=window.getComputedStyle?window.getComputedStyle(p,null).getPropertyValue("cursor"):p.runtimeStyle.cursor,o=a.createElement("div"),e.css(o,{position:"absolute",top:0,left:0,width:l.width,height:l.height,zIndex:2147483647,opacity:1e-4,background:"red",cursor:m}),a.body.appendChild(o),e.on(a,"mousemove",u),e.on(a,"mouseup",c),r.start(n)},u=function(e){return e.button!==s?c(e):(e.deltaX=e.screenX-d,e.deltaY=e.screenY-f,e.preventDefault(),void r.drag(e))},c=function(t){e.off(a,"mousemove",u),e.off(a,"mouseup",c),o.parentNode.removeChild(o),r.stop&&r.stop(t)},this.destroy=function(){e.off(i())},e.on(i(),"mousedown",l)}}),r(Y,[V,K],function(e,t){return{init:function(){var e=this;e.on("repaint",e.renderScroll)},renderScroll:function(){function n(){function t(t,a,s,l,c,u){var d,f,p,m,h,g,v,y,b;if(f=i.getEl("scroll"+t)){if(y=a.toLowerCase(),b=s.toLowerCase(),i.getEl("absend")&&e.css(i.getEl("absend"),y,i.layoutRect()[l]-1),!c)return void e.css(f,"display","none");e.css(f,"display","block"),d=i.getEl("body"),p=i.getEl("scroll"+t+"t"),m=d["client"+s]-2*o,m-=n&&r?f["client"+u]:0,h=d["scroll"+s],g=m/h,v={},v[y]=d["offset"+a]+o,v[b]=m,e.css(f,v),v={},v[y]=d["scroll"+a]*g,v[b]=m*g,e.css(p,v)}}var n,r,a;a=i.getEl("body"),n=a.scrollWidth>a.clientWidth,r=a.scrollHeight>a.clientHeight,t("h","Left","Width","contentW",n,"Height"),t("v","Top","Height","contentH",r,"Width")}function r(){function n(n,r,a,s,l){var c,u=i._id+"-scroll"+n,d=i.classPrefix;i.getEl().appendChild(e.createFragment('<div id="'+u+'" class="'+d+"scrollbar "+d+"scrollbar-"+n+'"><div id="'+u+'t" class="'+d+'scrollbar-thumb"></div></div>')),i.draghelper=new t(u+"t",{start:function(){c=i.getEl("body")["scroll"+r],e.addClass(e.get(u),d+"active")},drag:function(e){var t,u,d,f,p=i.layoutRect();u=p.contentW>p.innerW,d=p.contentH>p.innerH,f=i.getEl("body")["client"+a]-2*o,f-=u&&d?i.getEl("scroll"+n)["client"+l]:0,t=f/i.getEl("body")["scroll"+a],i.getEl("body")["scroll"+r]=c+e["delta"+s]/t},stop:function(){e.removeClass(e.get(u),d+"active")}})}i.addClass("scroll"),n("v","Top","Height","Y","Width"),n("h","Left","Width","X","Height")}var i=this,o=2;i.settings.autoScroll&&(i._hasScroll||(i._hasScroll=!0,r(),i.on("wheel",function(e){var t=i.getEl("body");t.scrollLeft+=10*(e.deltaX||0),t.scrollTop+=10*e.deltaY,n()}),e.on(i.getEl("body"),"scroll",n)),n())}}}),r(G,[j,Y],function(e,t){return e.extend({Defaults:{layout:"fit",containerCls:"panel"},Mixins:[t],renderHtml:function(){var e=this,t=e._layout,n=e.settings.html;return e.preRender(),t.preRender(e),"undefined"==typeof n?n='<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+t.renderHtml(e)+"</div>":("function"==typeof n&&(n=n.call(e)),e._hasBody=!1),'<div id="'+e._id+'" class="'+e.classes()+'" hideFocus="1" tabIndex="-1" role="group">'+(e._preBodyHtml||"")+n+"</div>"}})}),r(X,[V],function(e){function t(t,n,r){var i,o,a,s,l,c,u,d,f,p;return f=e.getViewPort(),o=e.getPos(n),a=o.x,s=o.y,t._fixed&&(a-=f.x,s-=f.y),i=t.getEl(),p=e.getSize(i),l=p.width,c=p.height,p=e.getSize(n),u=p.width,d=p.height,r=(r||"").split(""),"b"===r[0]&&(s+=d),"r"===r[1]&&(a+=u),"c"===r[0]&&(s+=Math.round(d/2)),"c"===r[1]&&(a+=Math.round(u/2)),"b"===r[3]&&(s-=c),"r"===r[4]&&(a-=l),"c"===r[3]&&(s-=Math.round(c/2)),"c"===r[4]&&(a-=Math.round(l/2)),{x:a,y:s,w:l,h:c}}return{testMoveRel:function(n,r){for(var i=e.getViewPort(),o=0;o<r.length;o++){var a=t(this,n,r[o]);if(this._fixed){if(a.x>0&&a.x+a.w<i.w&&a.y>0&&a.y+a.h<i.h)return r[o]}else if(a.x>i.x&&a.x+a.w<i.w+i.x&&a.y>i.y&&a.y+a.h<i.h+i.y)return r[o]}return r[0]},moveRel:function(e,n){"string"!=typeof n&&(n=this.testMoveRel(e,n));var r=t(this,e,n);return this.moveTo(r.x,r.y)},moveBy:function(e,t){var n=this,r=n.layoutRect();return n.moveTo(r.x+e,r.y+t),n},moveTo:function(t,n){function r(e,t,n){return 0>e?0:e+n>t?(e=t-n,0>e?0:e):e}var i=this;if(i.settings.constrainToViewport){var o=e.getViewPort(window),a=i.layoutRect();t=r(t,o.w+o.x,a.w),n=r(n,o.h+o.y,a.h)}return i._rendered?i.layoutRect({x:t,y:n}).repaint():(i.settings.x=t,i.settings.y=n),i.fire("move",{x:t,y:n}),i}}}),r(J,[V],function(e){return{resizeToContent:function(){this._layoutRect.autoResize=!0,this._lastRect=null,this.reflow()},resizeTo:function(t,n){if(1>=t||1>=n){var r=e.getWindowSize();t=1>=t?t*r.w:t,n=1>=n?n*r.h:n}return this._layoutRect.autoResize=!1,this.layoutRect({minW:t,minH:n,w:t,h:n}).reflow()},resizeBy:function(e,t){var n=this,r=n.layoutRect();return n.resizeTo(r.w+e,r.h+t)}}}),r(Q,[G,X,J,V],function(e,t,n,r){function i(e){var t;for(t=s.length;t--;)s[t]===e&&s.splice(t,1);for(t=l.length;t--;)l[t]===e&&l.splice(t,1)}var o,a,s=[],l=[],c,u=e.extend({Mixins:[t,n],init:function(e){function t(){var e,t=u.zIndex||65535,n;if(l.length)for(e=0;e<l.length;e++)l[e].modal&&(t++,n=l[e]),l[e].getEl().style.zIndex=t,l[e].zIndex=t,t++;var i=document.getElementById(d.classPrefix+"modal-block");n?r.css(i,"z-index",n.zIndex-1):i&&(i.parentNode.removeChild(i),c=!1),u.currentZIndex=t}function n(e,t){for(;e;){if(e==t)return!0;e=e.parent()}}function i(e){function t(t,n){for(var r,i=0;i<s.length;i++)if(s[i]!=e)for(r=s[i].parent();r&&(r=r.parent());)r==e&&s[i].fixed(t).moveBy(0,n).repaint()}var n=r.getViewPort().y;e.settings.autofix&&(e._fixed?e._autoFixY>n&&(e.fixed(!1).layoutRect({y:e._autoFixY}).repaint(),t(!1,e._autoFixY-n)):(e._autoFixY=e.layoutRect().y,e._autoFixY<n&&(e.fixed(!0).layoutRect({y:0}).repaint(),t(!0,n-e._autoFixY))))}var d=this;d._super(e),d._eventsRoot=d,d.addClass("floatpanel"),e.autohide&&(o||(o=function(e){for(var t=s.length;t--;){var r=s[t],i=r.getParentCtrl(e.target);if(r.settings.autohide){if(i&&(n(i,r)||r.parent()===i))continue;e=r.fire("autohide",{target:e.target}),e.isDefaultPrevented()||r.hide()}}},r.on(document,"click",o)),s.push(d)),e.autofix&&(a||(a=function(){var e;for(e=s.length;e--;)i(s[e])},r.on(window,"scroll",a)),d.on("move",function(){i(this)})),d.on("postrender show",function(e){if(e.control==d){var n,i=d.classPrefix;d.modal&&!c&&(n=r.createFragment('<div id="'+i+'modal-block" class="'+i+"reset "+i+'fade"></div>'),n=n.firstChild,d.getContainerElm().appendChild(n),setTimeout(function(){r.addClass(n,i+"in"),r.addClass(d.getEl(),i+"in")},0),c=!0),l.push(d),t()}}),d.on("close hide",function(e){if(e.control==d){for(var n=l.length;n--;)l[n]===d&&l.splice(n,1);t()}}),d.on("show",function(){d.parents().each(function(e){return e._fixed?(d.fixed(!0),!1):void 0})}),e.popover&&(d._preBodyHtml='<div class="'+d.classPrefix+'arrow"></div>',d.addClass("popover").addClass("bottom").addClass(d.isRtl()?"end":"start"))},fixed:function(e){var t=this;if(t._fixed!=e){if(t._rendered){var n=r.getViewPort();e?t.layoutRect().y-=n.y:t.layoutRect().y+=n.y}t.toggleClass("fixed",e),t._fixed=e}return t},show:function(){var e=this,t,n=e._super();for(t=s.length;t--&&s[t]!==e;);return-1===t&&s.push(e),n},hide:function(){return i(this),this._super()},hideAll:function(){u.hideAll()},close:function(){var e=this;return e.fire("close"),e.remove()},remove:function(){i(this),this._super()},postRender:function(){var e=this;return e.settings.bodyRole&&this.getEl("body").setAttribute("role",e.settings.bodyRole),e._super()}});return u.hideAll=function(){for(var e=s.length;e--;){var t=s[e];t&&t.settings.autohide&&(t.hide(),s.splice(e,1))}},u}),r(Z,[Q,G,V,K],function(e,t,n,r){var i=e.extend({modal:!0,Defaults:{border:1,layout:"flex",containerCls:"panel",role:"dialog",callbacks:{submit:function(){this.fire("submit",{data:this.toJSON()})},close:function(){this.close()}}},init:function(e){var n=this;n._super(e),n.isRtl()&&n.addClass("rtl"),n.addClass("window"),n._fixed=!0,e.buttons&&(n.statusbar=new t({layout:"flex",border:"1 0 0 0",spacing:3,padding:10,align:"center",pack:n.isRtl()?"start":"end",defaults:{type:"button"},items:e.buttons}),n.statusbar.addClass("foot"),n.statusbar.parent(n)),n.on("click",function(e){-1!=e.target.className.indexOf(n.classPrefix+"close")&&n.close() +}),n.on("cancel",function(){n.close()}),n.aria("describedby",n.describedBy||n._id+"-none"),n.aria("label",e.title),n._fullscreen=!1},recalc:function(){var e=this,t=e.statusbar,r,i,o,a;e._fullscreen&&(e.layoutRect(n.getWindowSize()),e.layoutRect().contentH=e.layoutRect().innerH),e._super(),r=e.layoutRect(),e.settings.title&&!e._fullscreen&&(i=r.headerW,i>r.w&&(o=r.x-Math.max(0,i/2),e.layoutRect({w:i,x:o}),a=!0)),t&&(t.layoutRect({w:e.layoutRect().innerW}).recalc(),i=t.layoutRect().minW+r.deltaW,i>r.w&&(o=r.x-Math.max(0,i-r.w),e.layoutRect({w:i,x:o}),a=!0)),a&&e.recalc()},initLayoutRect:function(){var e=this,t=e._super(),r=0,i;if(e.settings.title&&!e._fullscreen){i=e.getEl("head");var o=n.getSize(i);t.headerW=o.width,t.headerH=o.height,r+=t.headerH}e.statusbar&&(r+=e.statusbar.layoutRect().h),t.deltaH+=r,t.minH+=r,t.h+=r;var a=n.getWindowSize();return t.x=Math.max(0,a.w/2-t.w/2),t.y=Math.max(0,a.h/2-t.h/2),t},renderHtml:function(){var e=this,t=e._layout,n=e._id,r=e.classPrefix,i=e.settings,o="",a="",s=i.html;return e.preRender(),t.preRender(e),i.title&&(o='<div id="'+n+'-head" class="'+r+'window-head"><div id="'+n+'-title" class="'+r+'title">'+e.encode(i.title)+'</div><button type="button" class="'+r+'close" aria-hidden="true">×</button><div id="'+n+'-dragh" class="'+r+'dragh"></div></div>'),i.url&&(s='<iframe src="'+i.url+'" tabindex="-1"></iframe>'),"undefined"==typeof s&&(s=t.renderHtml(e)),e.statusbar&&(a=e.statusbar.renderHtml()),'<div id="'+n+'" class="'+e.classes()+'" hideFocus="1"><div class="'+e.classPrefix+'reset" role="application">'+o+'<div id="'+n+'-body" class="'+e.classes("body")+'">'+s+"</div>"+a+"</div></div>"},fullscreen:function(e){var t=this,r=document.documentElement,i,o=t.classPrefix,a;if(e!=t._fullscreen)if(n.on(window,"resize",function(){var e;if(t._fullscreen)if(i)t._timer||(t._timer=setTimeout(function(){var e=n.getWindowSize();t.moveTo(0,0).resizeTo(e.w,e.h),t._timer=0},50));else{e=(new Date).getTime();var r=n.getWindowSize();t.moveTo(0,0).resizeTo(r.w,r.h),(new Date).getTime()-e>50&&(i=!0)}}),a=t.layoutRect(),t._fullscreen=e,e){t._initial={x:a.x,y:a.y,w:a.w,h:a.h},t._borderBox=t.parseBox("0"),t.getEl("head").style.display="none",a.deltaH-=a.headerH+2,n.addClass(r,o+"fullscreen"),n.addClass(document.body,o+"fullscreen"),t.addClass("fullscreen");var s=n.getWindowSize();t.moveTo(0,0).resizeTo(s.w,s.h)}else t._borderBox=t.parseBox(t.settings.border),t.getEl("head").style.display="",a.deltaH+=a.headerH,n.removeClass(r,o+"fullscreen"),n.removeClass(document.body,o+"fullscreen"),t.removeClass("fullscreen"),t.moveTo(t._initial.x,t._initial.y).resizeTo(t._initial.w,t._initial.h);return t.reflow()},postRender:function(){var e=this,t;setTimeout(function(){e.addClass("in")},0),e._super(),e.statusbar&&e.statusbar.postRender(),e.focus(),this.dragHelper=new r(e._id+"-dragh",{start:function(){t={x:e.layoutRect().x,y:e.layoutRect().y}},drag:function(n){e.moveTo(t.x+n.deltaX,t.y+n.deltaY)}}),e.on("submit",function(t){t.isDefaultPrevented()||e.close()})},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var e=this,t=e.classPrefix;e.dragHelper.destroy(),e._super(),e.statusbar&&this.statusbar.remove(),e._fullscreen&&(n.removeClass(document.documentElement,t+"fullscreen"),n.removeClass(document.body,t+"fullscreen"))}});return i}),r(et,[Z],function(e){var t=e.extend({init:function(e){e={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(e)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(n){var r,i=n.callback||function(){};switch(n.buttons){case t.OK_CANCEL:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close(),i(!0)}},{type:"button",text:"Cancel",onClick:function(e){e.control.parents()[1].close(),i(!1)}}];break;case t.YES_NO:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close(),i(!0)}}];break;case t.YES_NO_CANCEL:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close()}}];break;default:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close(),i(!0)}}]}return new e({padding:20,x:n.x,y:n.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:r,title:n.title,role:"alertdialog",items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:n.text},onPostRender:function(){this.aria("describedby",this.items()[0]._id)},onClose:n.onClose,onCancel:function(){i(!1)}}).renderTo(document.body).reflow()},alert:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,t.msgBox(e)},confirm:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,e.buttons=t.OK_CANCEL,t.msgBox(e)}}});return t}),r(tt,[Z,et],function(e,t){return function(n){function r(){return o.length?o[o.length-1]:void 0}var i=this,o=[];i.windows=o,i.open=function(t,r){var i;return n.editorManager.activeEditor=n,t.title=t.title||" ",t.url=t.url||t.file,t.url&&(t.width=parseInt(t.width||320,10),t.height=parseInt(t.height||240,10)),t.body&&(t.items={defaults:t.defaults,type:t.bodyType||"form",items:t.body}),t.url||t.buttons||(t.buttons=[{text:"Ok",subtype:"primary",onclick:function(){i.find("form")[0].submit()}},{text:"Cancel",onclick:function(){i.close()}}]),i=new e(t),o.push(i),i.on("close",function(){for(var e=o.length;e--;)o[e]===i&&o.splice(e,1);n.focus()}),t.data&&i.on("postRender",function(){this.find("*").each(function(e){var n=e.name();n in t.data&&e.value(t.data[n])})}),i.features=t||{},i.params=r||{},n.nodeChanged(),i.renderTo(document.body).reflow()},i.alert=function(e,r,i){t.alert(e,function(){r?r.call(i||this):n.focus()})},i.confirm=function(e,n,r){t.confirm(e,function(e){n.call(r||this,e)})},i.close=function(){r()&&r().close()},i.getParams=function(){return r()?r().params:null},i.setParams=function(e){r()&&(r().params=e)}}}),r(nt,[R,B,x,h,g,p],function(e,t,n,r,i,o){return function(a){function s(e,t){try{a.getDoc().execCommand(e,!1,t)}catch(n){}}function l(){var e=a.getDoc().documentMode;return e?e:6}function c(e){return e.isDefaultPrevented()}function u(){function t(e){var t=new i(function(){});o.each(a.getBody().getElementsByTagName("*"),function(e){"SPAN"==e.tagName&&e.setAttribute("mce-data-marked",1),!e.hasAttribute("data-mce-style")&&e.hasAttribute("style")&&a.dom.setAttrib(e,"style",e.getAttribute("style"))}),t.observe(a.getDoc(),{childList:!0,attributes:!0,subtree:!0,attributeFilter:["style"]}),a.getDoc().execCommand(e?"ForwardDelete":"Delete",!1,null);var n=a.selection.getRng(),r=n.startContainer.parentNode;o.each(t.takeRecords(),function(e){if("style"==e.attributeName){var t=e.target.getAttribute("data-mce-style");t?e.target.setAttribute("style",t):e.target.removeAttribute("style")}o.each(e.addedNodes,function(e){if("SPAN"==e.nodeName&&!e.getAttribute("mce-data-marked")){var t,i;e==r&&(t=n.startOffset,i=e.firstChild),U.remove(e,!0),i&&(n.setStart(i,t),n.setEnd(i,t),a.selection.setRng(n))}})}),t.disconnect(),o.each(a.dom.select("span[mce-data-marked]"),function(e){e.removeAttribute("mce-data-marked")})}var n=a.getDoc(),r="data:text/mce-internal,",i=window.MutationObserver,s;i||(s=!0,i=function(){function e(e){var t=e.relatedNode||e.target;n.push({target:t,addedNodes:[t]})}function t(e){var t=e.relatedNode||e.target;n.push({target:t,attributeName:e.attrName})}var n=[],r;this.observe=function(n){r=n,r.addEventListener("DOMSubtreeModified",e,!1),r.addEventListener("DOMNodeInsertedIntoDocument",e,!1),r.addEventListener("DOMNodeInserted",e,!1),r.addEventListener("DOMAttrModified",t,!1)},this.disconnect=function(){r.removeEventListener("DOMNodeInserted",e),r.removeEventListener("DOMAttrModified",t),r.removeEventListener("DOMSubtreeModified",e,!1)},this.takeRecords=function(){return n}}),a.on("keydown",function(n){var r=n.keyCode==V,i=e.metaKeyPressed(n);if(!c(n)&&(r||n.keyCode==W)){var o=a.selection.getRng(),s=o.startContainer,l=o.startOffset;if(!i&&o.collapsed&&3==s.nodeType&&(r?l<s.data.length:l>0))return;n.preventDefault(),i&&a.selection.getSel().modify("extend",r?"forward":"backward","word"),t(r)}}),a.on("keypress",function(n){c(n)||q.isCollapsed()||!n.charCode||e.metaKeyPressed(n)||(n.preventDefault(),t(!0),a.selection.setContent(String.fromCharCode(n.charCode)))}),a.addCommand("Delete",function(){t()}),a.addCommand("ForwardDelete",function(){t(!0)}),s||(a.on("dragstart",function(e){e.dataTransfer.setData("URL","data:text/mce-internal,"+escape(a.selection.getContent()))}),a.on("drop",function(e){if(!c(e)){var i=e.dataTransfer.getData("URL");if(!i||-1==i.indexOf(r)||!n.caretRangeFromPoint)return;i=unescape(i.substr(r.length)),n.caretRangeFromPoint&&(e.preventDefault(),t(),a.selection.setRng(n.caretRangeFromPoint(e.x,e.y)),a.insertContent(i))}}),a.on("cut",function(e){!c(e)&&e.clipboardData&&(e.preventDefault(),e.clipboardData.clearData(),e.clipboardData.setData("text/html",a.selection.getContent()),e.clipboardData.setData("text/plain",a.selection.getContent({format:"text"})),t(!0))}))}function d(){function e(e){var t=U.create("body"),n=e.cloneContents();return t.appendChild(n),q.serializer.serialize(t,{format:"html"})}function n(n){if(!n.setStart){if(n.item)return!1;var r=n.duplicate();return r.moveToElementText(a.getBody()),t.compareRanges(n,r)}var i=e(n),o=U.createRng();o.selectNode(a.getBody());var s=e(o);return i===s}a.on("keydown",function(e){var t=e.keyCode,r,i;if(!c(e)&&(t==V||t==W)){if(r=a.selection.isCollapsed(),i=a.getBody(),r&&!U.isEmpty(i))return;if(!r&&!n(a.selection.getRng()))return;e.preventDefault(),a.setContent(""),i.firstChild&&U.isBlock(i.firstChild)?a.selection.setCursorLocation(i.firstChild,0):a.selection.setCursorLocation(i,0),a.nodeChanged()}})}function f(){a.on("keydown",function(t){!c(t)&&65==t.keyCode&&e.metaKeyPressed(t)&&(t.preventDefault(),a.execCommand("SelectAll"))})}function p(){a.settings.content_editable||(U.bind(a.getDoc(),"focusin",function(){q.setRng(q.getRng())}),U.bind(a.getDoc(),"mousedown",function(e){e.target==a.getDoc().documentElement&&(a.getBody().focus(),q.setRng(q.getRng()))}))}function m(){a.on("keydown",function(e){if(!c(e)&&e.keyCode===W&&q.isCollapsed()&&0===q.getRng(!0).startOffset){var t=q.getNode(),n=t.previousSibling;if("HR"==t.nodeName)return U.remove(t),void e.preventDefault();n&&n.nodeName&&"hr"===n.nodeName.toLowerCase()&&(U.remove(n),e.preventDefault())}})}function h(){window.Range.prototype.getClientRects||a.on("mousedown",function(e){if(!c(e)&&"HTML"===e.target.nodeName){var t=a.getBody();t.blur(),setTimeout(function(){t.focus()},0)}})}function g(){a.on("click",function(e){e=e.target,/^(IMG|HR)$/.test(e.nodeName)&&q.getSel().setBaseAndExtent(e,0,e,1),"A"==e.nodeName&&U.hasClass(e,"mce-item-anchor")&&q.select(e),a.nodeChanged()})}function v(){function e(){var e=U.getAttribs(q.getStart().cloneNode(!1));return function(){var t=q.getStart();t!==a.getBody()&&(U.setAttrib(t,"style",null),z(e,function(e){t.setAttributeNode(e.cloneNode(!0))}))}}function t(){return!q.isCollapsed()&&U.getParent(q.getStart(),U.isBlock)!=U.getParent(q.getEnd(),U.isBlock)}a.on("keypress",function(n){var r;return c(n)||8!=n.keyCode&&46!=n.keyCode||!t()?void 0:(r=e(),a.getDoc().execCommand("delete",!1,null),r(),n.preventDefault(),!1)}),U.bind(a.getDoc(),"cut",function(n){var r;!c(n)&&t()&&(r=e(),setTimeout(function(){r()},0))})}function y(){var e,n;a.on("selectionchange",function(){n&&(clearTimeout(n),n=0),n=window.setTimeout(function(){if(!a.removed){var n=q.getRng();e&&t.compareRanges(n,e)||(a.nodeChanged(),e=n)}},50)})}function b(){document.body.setAttribute("role","application")}function C(){a.on("keydown",function(e){if(!c(e)&&e.keyCode===W&&q.isCollapsed()&&0===q.getRng(!0).startOffset){var t=q.getNode().previousSibling;if(t&&t.nodeName&&"table"===t.nodeName.toLowerCase())return e.preventDefault(),!1}})}function x(){l()>7||(s("RespectVisibilityInDesign",!0),a.contentStyles.push(".mceHideBrInPre pre br {display: none}"),U.addClass(a.getBody(),"mceHideBrInPre"),j.addNodeFilter("pre",function(e){for(var t=e.length,r,i,o,a;t--;)for(r=e[t].getAll("br"),i=r.length;i--;)o=r[i],a=o.prev,a&&3===a.type&&"\n"!=a.value.charAt(a.value-1)?a.value+="\n":o.parent.insert(new n("#text",3),o,!0).value="\n"}),K.addNodeFilter("pre",function(e){for(var t=e.length,n,r,i,o;t--;)for(n=e[t].getAll("br"),r=n.length;r--;)i=n[r],o=i.prev,o&&3==o.type&&(o.value=o.value.replace(/\r?\n$/,""))}))}function w(){U.bind(a.getBody(),"mouseup",function(){var e,t=q.getNode();"IMG"==t.nodeName&&((e=U.getStyle(t,"width"))&&(U.setAttrib(t,"width",e.replace(/[^0-9%]+/g,"")),U.setStyle(t,"width","")),(e=U.getStyle(t,"height"))&&(U.setAttrib(t,"height",e.replace(/[^0-9%]+/g,"")),U.setStyle(t,"height","")))})}function _(){a.on("keydown",function(t){var n,r,i,o,s;if(!c(t)&&t.keyCode==e.BACKSPACE&&(n=q.getRng(),r=n.startContainer,i=n.startOffset,o=U.getRoot(),s=r,n.collapsed&&0===i)){for(;s&&s.parentNode&&s.parentNode.firstChild==s&&s.parentNode!=o;)s=s.parentNode;"BLOCKQUOTE"===s.tagName&&(a.formatter.toggle("blockquote",null,s),n=U.createRng(),n.setStart(r,0),n.setEnd(r,0),q.setRng(n))}})}function N(){function e(){a._refreshContentEditable(),s("StyleWithCSS",!1),s("enableInlineTableEditing",!1),$.object_resizing||s("enableObjectResizing",!1)}$.readonly||a.on("BeforeExecCommand MouseDown",e)}function E(){function e(){z(U.select("a"),function(e){var t=e.parentNode,n=U.getRoot();if(t.lastChild===e){for(;t&&!U.isBlock(t);){if(t.parentNode.lastChild!==t||t===n)return;t=t.parentNode}U.add(t,"br",{"data-mce-bogus":1})}})}a.on("SetContent ExecCommand",function(t){("setcontent"==t.type||"mceInsertLink"===t.command)&&e()})}function S(){$.forced_root_block&&a.on("init",function(){s("DefaultParagraphSeparator",$.forced_root_block)})}function k(){a.on("Undo Redo SetContent",function(e){e.initial||a.execCommand("mceRepaint")})}function T(){a.on("keydown",function(e){var t;c(e)||e.keyCode!=W||(t=a.getDoc().selection.createRange(),t&&t.item&&(e.preventDefault(),a.undoManager.beforeChange(),U.remove(t.item(0)),a.undoManager.add()))})}function R(){var e;l()>=10&&(e="",z("p div h1 h2 h3 h4 h5 h6".split(" "),function(t,n){e+=(n>0?",":"")+t+":empty"}),a.contentStyles.push(e+"{padding-right: 1px !important}"))}function A(){l()<9&&(j.addNodeFilter("noscript",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.firstChild,r&&n.attr("data-mce-innertext",r.value)}),K.addNodeFilter("noscript",function(e){for(var t=e.length,i,o,a;t--;)i=e[t],o=e[t].firstChild,o?o.value=r.decode(o.value):(a=i.attributes.map["data-mce-innertext"],a&&(i.attr("data-mce-innertext",null),o=new n("#text",3),o.value=a,o.raw=!0,i.append(o)))}))}function B(){function e(e,t){var n=i.createTextRange();try{n.moveToPoint(e,t)}catch(r){n=null}return n}function t(t){var r;t.button?(r=e(t.x,t.y),r&&(r.compareEndPoints("StartToStart",a)>0?r.setEndPoint("StartToStart",a):r.setEndPoint("EndToEnd",a),r.select())):n()}function n(){var e=r.selection.createRange();a&&!e.item&&0===e.compareEndPoints("StartToEnd",e)&&a.select(),U.unbind(r,"mouseup",n),U.unbind(r,"mousemove",t),a=o=0}var r=U.doc,i=r.body,o,a,s;r.documentElement.unselectable=!0,U.bind(r,"mousedown contextmenu",function(i){if("HTML"===i.target.nodeName){if(o&&n(),s=r.documentElement,s.scrollHeight>s.clientHeight)return;o=1,a=e(i.x,i.y),a&&(U.bind(r,"mouseup",n),U.bind(r,"mousemove",t),U.getRoot().focus(),a.select())}})}function L(){a.on("keyup focusin mouseup",function(t){65==t.keyCode&&e.metaKeyPressed(t)||q.normalize()},!0)}function D(){a.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}")}function M(){a.inline||a.on("keydown",function(){document.activeElement==document.body&&a.getWin().focus()})}function H(){a.inline||(a.contentStyles.push("body {min-height: 150px}"),a.on("click",function(e){"HTML"==e.target.nodeName&&(a.getBody().focus(),a.selection.normalize(),a.nodeChanged())}))}function P(){i.mac&&a.on("keydown",function(t){!e.metaKeyPressed(t)||37!=t.keyCode&&39!=t.keyCode||(t.preventDefault(),a.selection.getSel().modify("move",37==t.keyCode?"backward":"forward","word"))})}function O(){s("AutoUrlDetect",!1)}function I(){a.inline||a.on("focus blur",function(){var e=a.dom.create("br");a.getBody().appendChild(e),e.parentNode.removeChild(e)},!0)}function F(){a.on("click",function(e){"A"===e.target.tagName&&e.preventDefault()}),a.contentStyles.push(".mce-content-body {-webkit-touch-callout: none}")}var z=o.each,W=e.BACKSPACE,V=e.DELETE,U=a.dom,q=a.selection,$=a.settings,j=a.parser,K=a.serializer,Y=i.gecko,G=i.ie,X=i.webkit;C(),_(),d(),L(),X&&(u(),p(),g(),S(),i.iOS?(y(),M(),H(),F()):f()),G&&i.ie<11&&(m(),b(),x(),w(),T(),R(),A(),B()),i.ie>=11&&(H(),I()),i.ie&&(f(),O()),Y&&(m(),h(),v(),N(),E(),k(),D(),P())}}),r(rt,[p],function(e){function t(){return!1}function n(){return!0}var r="__bindings",i=e.makeMap("focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave keydown keypress keyup contextmenu dragstart dragend dragover draggesture dragdrop drop drag"," ");return{fire:function(e,i,o){var a=this,s,l,c,u,d;if(!a.removed){if(e=e.toLowerCase(),i=i||{},i.type=e,i.target||(i.target=a),i.preventDefault||(i.preventDefault=function(){i.isDefaultPrevented=n},i.stopPropagation=function(){i.isPropagationStopped=n},i.stopImmediatePropagation=function(){i.isImmediatePropagationStopped=n},i.isDefaultPrevented=t,i.isPropagationStopped=t,i.isImmediatePropagationStopped=t),a[r]&&(s=a[r][e]))for(l=0,c=s.length;c>l&&(s[l]=u=s[l],!i.isImmediatePropagationStopped());l++)if(u.call(a,i)===!1)return i.preventDefault(),i;if(o!==!1&&a.parent)for(d=a.parent();d&&!i.isPropagationStopped();)d.fire(e,i,!1),d=d.parent();return i}},on:function(e,t,n){var o=this,a,s,l,c;if(t===!1&&(t=function(){return!1}),t)for(l=e.toLowerCase().split(" "),c=l.length;c--;)e=l[c],a=o[r],a||(a=o[r]={}),s=a[e],s||(s=a[e]=[],o.bindNative&&i[e]&&o.bindNative(e)),n?s.unshift(t):s.push(t);return o},off:function(e,t){var n=this,o,a=n[r],s,l,c,u;if(a)if(e)for(c=e.toLowerCase().split(" "),o=c.length;o--;){if(e=c[o],s=a[e],!e){for(l in a)a[e].length=0;return n}if(s){if(t)for(u=s.length;u--;)s[u]===t&&s.splice(u,1);else s.length=0;!s.length&&n.unbindNative&&i[e]&&(n.unbindNative(e),delete a[e])}}else{if(n.unbindNative)for(e in a)n.unbindNative(e);n[r]=[]}return n},hasEventListeners:function(e){var t=this[r];return e=e.toLowerCase(),!(!t||!t[e]||0===t[e].length)}}}),r(it,[p,g],function(e,t){var n=e.each,r=e.explode,i={f9:120,f10:121,f11:122};return function(o){var a=this,s={};o.on("keyup keypress keydown",function(e){(e.altKey||e.ctrlKey||e.metaKey)&&n(s,function(n){var r=t.mac?e.metaKey:e.ctrlKey;if(n.ctrl==r&&n.alt==e.altKey&&n.shift==e.shiftKey)return e.keyCode==n.keyCode||e.charCode&&e.charCode==n.charCode?(e.preventDefault(),"keydown"==e.type&&n.func.call(n.scope),!0):void 0})}),a.add=function(t,a,l,c){var u;return u=l,"string"==typeof l?l=function(){o.execCommand(u,!1,null)}:e.isArray(u)&&(l=function(){o.execCommand(u[0],u[1],u[2])}),n(r(t.toLowerCase()),function(e){var t={func:l,scope:c||o,desc:o.translate(a),alt:!1,ctrl:!1,shift:!1};n(r(e,"+"),function(e){switch(e){case"alt":case"ctrl":case"shift":t[e]=!0;break;default:t.charCode=e.charCodeAt(0),t.keyCode=i[e]||e.toUpperCase().charCodeAt(0)}}),s[(t.ctrl?"ctrl":"")+","+(t.alt?"alt":"")+","+(t.shift?"shift":"")+","+t.keyCode]=t}),!0}}}),r(ot,[y,C,x,k,S,L,D,M,H,P,O,I,b,l,tt,w,N,nt,g,p,rt,it],function(e,n,r,i,o,a,s,l,c,u,d,f,p,m,h,g,v,y,b,C,x,w){function _(e,t){return"selectionchange"==t?e.getDoc():!e.inline&&/^mouse|click|contextmenu|drop/.test(t)?e.getDoc():e.getBody()}function N(e,t,r){var i=this,o,a;o=i.documentBaseUrl=r.documentBaseURL,a=r.baseURI,i.settings=t=T({id:e,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:o,add_form_submit_trigger:!0,submit_patch:!0,add_unload_trigger:!0,convert_urls:!0,relative_urls:!0,remove_script_host:!0,object_resizing:!0,doctype:"<!DOCTYPE html>",visual:!0,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",forced_root_block:"p",hidden_input:!0,padd_empty_editor:!0,render_ui:!0,indentation:"30px",inline_styles:!0,convert_fonts_to_spans:!0,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",validate:!0,entity_encoding:"named",url_converter:i.convertURL,url_converter_scope:i,ie7_compat:!0},t),n.language=t.language||"en",n.languageLoad=t.language_load,n.baseURL=r.baseURL,i.id=t.id=e,i.isNotDirty=!0,i.plugins={},i.documentBaseURI=new f(t.document_base_url||o,{base_uri:a}),i.baseURI=a,i.contentCSS=[],i.contentStyles=[],i.shortcuts=new w(i),i.execCommands={},i.queryStateCommands={},i.queryValueCommands={},i.loadedCSS={},i.suffix=r.suffix,i.editorManager=r,i.inline=t.inline,r.fire("SetupEditor",i),i.execCallback("setup",i)}var E=e.DOM,S=n.ThemeManager,k=n.PluginManager,T=C.extend,R=C.each,A=C.explode,B=C.inArray,L=C.trim,D=C.resolve,M=m.Event,H=b.gecko,P=b.ie;return N.prototype={render:function(){function e(){E.unbind(window,"ready",e),n.render()}function t(){var e=p.ScriptLoader;if(r.language&&"en"!=r.language&&!r.language_url&&(r.language_url=n.editorManager.baseURL+"/langs/"+r.language+".js"),r.language_url&&e.add(r.language_url),r.theme&&"function"!=typeof r.theme&&"-"!=r.theme.charAt(0)&&!S.urls[r.theme]){var t=r.theme_url;t=t?n.documentBaseURI.toAbsolute(t):"themes/"+r.theme+"/theme"+o+".js",S.load(r.theme,t)}C.isArray(r.plugins)&&(r.plugins=r.plugins.join(" ")),R(r.external_plugins,function(e,t){k.load(t,e),r.plugins+=" "+t}),R(r.plugins.split(/[ ,]/),function(e){if(e=L(e),e&&!k.urls[e])if("-"==e.charAt(0)){e=e.substr(1,e.length);var t=k.dependencies(e);R(t,function(e){var t={prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"};e=k.createUrl(t,e),k.load(e.resource,e)})}else k.load(e,{prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"})}),e.loadQueue(function(){n.removed||n.init()})}var n=this,r=n.settings,i=n.id,o=n.suffix;if(!M.domLoaded)return void E.bind(window,"ready",e);if(n.getElement()&&b.contentEditable){r.inline?n.inline=!0:(n.orgVisibility=n.getElement().style.visibility,n.getElement().style.visibility="hidden");var a=n.getElement().form||E.getParent(i,"form");a&&(n.formElement=a,r.hidden_input&&!/TEXTAREA|INPUT/i.test(n.getElement().nodeName)&&(E.insertAfter(E.create("input",{type:"hidden",name:i}),i),n.hasHiddenInput=!0),n.formEventDelegate=function(e){n.fire(e.type,e)},E.bind(a,"submit reset",n.formEventDelegate),n.on("reset",function(){n.setContent(n.startContent,{format:"raw"})}),!r.submit_patch||a.submit.nodeType||a.submit.length||a._mceOldSubmit||(a._mceOldSubmit=a.submit,a.submit=function(){return n.editorManager.triggerSave(),n.isNotDirty=!0,a._mceOldSubmit(a)})),n.windowManager=new h(n),"xml"==r.encoding&&n.on("GetContent",function(e){e.save&&(e.content=E.encode(e.content))}),r.add_form_submit_trigger&&n.on("submit",function(){n.initialized&&n.save()}),r.add_unload_trigger&&(n._beforeUnload=function(){!n.initialized||n.destroyed||n.isHidden()||n.save({format:"raw",no_events:!0,set_dirty:!1})},n.editorManager.on("BeforeUnload",n._beforeUnload)),t()}},init:function(){function e(n){var r=k.get(n),i,o;i=k.urls[n]||t.documentBaseUrl.replace(/\/$/,""),n=L(n),r&&-1===B(h,n)&&(R(k.dependencies(n),function(t){e(t)}),o=new r(t,i),t.plugins[n]=o,o.init&&(o.init(t,i),h.push(n)))}var t=this,n=t.settings,r=t.getElement(),i,o,a,s,l,c,u,d,f,p,m,h=[];if(t.rtl=this.editorManager.i18n.rtl,t.editorManager.add(t),n.aria_label=n.aria_label||E.getAttrib(r,"aria-label",t.getLang("aria.rich_text_area")),n.theme&&("function"!=typeof n.theme?(n.theme=n.theme.replace(/-/,""),c=S.get(n.theme),t.theme=new c(t,S.urls[n.theme]),t.theme.init&&t.theme.init(t,S.urls[n.theme]||t.documentBaseUrl.replace(/\/$/,""))):t.theme=n.theme),R(n.plugins.replace(/\-/g,"").split(/[ ,]/),e),n.render_ui&&t.theme&&(t.orgDisplay=r.style.display,"function"!=typeof n.theme?(i=n.width||r.style.width||r.offsetWidth,o=n.height||r.style.height||r.offsetHeight,a=n.min_height||100,p=/^[0-9\.]+(|px)$/i,p.test(""+i)&&(i=Math.max(parseInt(i,10),100)),p.test(""+o)&&(o=Math.max(parseInt(o,10),a)),l=t.theme.renderUI({targetNode:r,width:i,height:o,deltaWidth:n.delta_width,deltaHeight:n.delta_height}),n.content_editable||(E.setStyles(l.sizeContainer||l.editorContainer,{wi2dth:i,h2eight:o}),o=(l.iframeHeight||o)+("number"==typeof o?l.deltaHeight||0:""),a>o&&(o=a))):(l=n.theme(t,r),l.editorContainer.nodeType&&(l.editorContainer=l.editorContainer.id=l.editorContainer.id||t.id+"_parent"),l.iframeContainer.nodeType&&(l.iframeContainer=l.iframeContainer.id=l.iframeContainer.id||t.id+"_iframecontainer"),o=l.iframeHeight||r.offsetHeight),t.editorContainer=l.editorContainer),n.content_css&&R(A(n.content_css),function(e){t.contentCSS.push(t.documentBaseURI.toAbsolute(e))}),n.content_style&&t.contentStyles.push(n.content_style),n.content_editable)return r=s=l=null,t.initContentBody();for(t.iframeHTML=n.doctype+"<html><head>",n.document_base_url!=t.documentBaseUrl&&(t.iframeHTML+='<base href="'+t.documentBaseURI.getURI()+'" />'),!b.caretAfter&&n.ie7_compat&&(t.iframeHTML+='<meta http-equiv="X-UA-Compatible" content="IE=7" />'),t.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />',m=0;m<t.contentCSS.length;m++){var g=t.contentCSS[m];t.iframeHTML+='<link type="text/css" rel="stylesheet" href="'+g+'" />',t.loadedCSS[g]=!0}d=n.body_id||"tinymce",-1!=d.indexOf("=")&&(d=t.getParam("body_id","","hash"),d=d[t.id]||d),f=n.body_class||"",-1!=f.indexOf("=")&&(f=t.getParam("body_class","","hash"),f=f[t.id]||""),t.iframeHTML+='</head><body id="'+d+'" class="mce-content-body '+f+'" onload="window.parent.tinymce.get(\''+t.id+"').fire('load');\"><br></body></html>";var v='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinymce.get("'+t.id+'");document.write(ed.iframeHTML);document.close();ed.initContentBody(true);})()';if(document.domain!=location.hostname&&(u=v),s=E.add(l.iframeContainer,"iframe",{id:t.id+"_ifr",src:u||'javascript:""',frameBorder:"0",allowTransparency:"true",title:t.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"),style:{width:"100%",height:o,display:"block"}}),P)try{t.getDoc()}catch(y){s.src=u=v}t.contentAreaContainer=l.iframeContainer,l.editorContainer&&(E.get(l.editorContainer).style.display=t.orgDisplay),E.get(t.id).style.display="none",E.setAttrib(t.id,"aria-hidden",!0),u||t.initContentBody(),r=s=l=null},initContentBody:function(t){var n=this,o=n.settings,f=E.get(n.id),p=n.getDoc(),m,h;o.inline||(n.getElement().style.visibility=n.orgVisibility),t||o.content_editable||(p.open(),p.write(n.iframeHTML),p.close()),o.content_editable&&(n.on("remove",function(){var e=this.getBody();E.removeClass(e,"mce-content-body"),E.removeClass(e,"mce-edit-focus"),E.setAttrib(e,"tabIndex",null),E.setAttrib(e,"contentEditable",null)}),E.addClass(f,"mce-content-body"),f.tabIndex=-1,n.contentDocument=p=o.content_document||document,n.contentWindow=o.content_window||window,n.bodyElement=f,o.content_document=o.content_window=null,o.root_name=f.nodeName.toLowerCase()),m=n.getBody(),m.disabled=!0,o.readonly||(n.inline&&"static"==E.getStyle(m,"position",!0)&&(m.style.position="relative"),m.contentEditable=n.getParam("content_editable_state",!0)),m.disabled=!1,n.schema=new g(o),n.dom=new e(p,{keep_values:!0,url_converter:n.convertURL,url_converter_scope:n,hex_colors:o.force_hex_style_colors,class_filter:o.class_filter,update_styles:!0,root_element:o.content_editable?n.id:null,collect:o.content_editable,schema:n.schema,onSetAttrib:function(e){n.fire("SetAttrib",e)}}),n.parser=new v(o,n.schema),n.parser.addAttributeFilter("src,href,style",function(e,t){for(var r=e.length,i,o=n.dom,a,s;r--;)i=e[r],a=i.attr(t),s="data-mce-"+t,i.attributes.map[s]||("style"===t?i.attr(s,o.serializeStyle(o.parseStyle(a),i.name)):i.attr(s,n.convertURL(a,t,i.name)))}),n.parser.addNodeFilter("script",function(e){for(var t=e.length,n;t--;)n=e[t],n.attr("type","mce-"+(n.attr("type")||"text/javascript"))}),n.parser.addNodeFilter("#cdata",function(e){for(var t=e.length,n;t--;)n=e[t],n.type=8,n.name="#comment",n.value="[CDATA["+n.value+"]]"}),n.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(e){for(var t=e.length,i,o=n.schema.getNonEmptyElements();t--;)i=e[t],i.isEmpty(o)&&(i.empty().append(new r("br",1)).shortEnded=!0)}),n.serializer=new i(o,n),n.selection=new a(n.dom,n.getWin(),n.serializer,n),n.formatter=new s(n),n.undoManager=new l(n),n.forceBlocks=new u(n),n.enterKey=new c(n),n.editorCommands=new d(n),n.fire("PreInit"),o.browser_spellcheck||o.gecko_spellcheck||(p.body.spellcheck=!1,E.setAttrib(m,"spellcheck","false")),n.fire("PostRender"),n.quirks=y(n),o.directionality&&(m.dir=o.directionality),o.nowrap&&(m.style.whiteSpace="nowrap"),o.protect&&n.on("BeforeSetContent",function(e){R(o.protect,function(t){e.content=e.content.replace(t,function(e){return"<!--mce:protected "+escape(e)+"-->"})})}),n.on("SetContent",function(){n.addVisual(n.getBody())}),o.padd_empty_editor&&n.on("PostProcess",function(e){e.content=e.content.replace(/^(<p[^>]*>( | |\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,"")}),n.load({initial:!0,format:"html"}),n.startContent=n.getContent({format:"raw"}),n.initialized=!0,R(n._pendingNativeEvents,function(e){n.dom.bind(_(n,e),e,function(e){n.fire(e.type,e)})}),n.fire("init"),n.focus(!0),n.nodeChanged({initial:!0}),n.execCallback("init_instance_callback",n),n.contentStyles.length>0&&(h="",R(n.contentStyles,function(e){h+=e+"\r\n"}),n.dom.addStyle(h)),R(n.contentCSS,function(e){n.loadedCSS[e]||(n.dom.loadCSS(e),n.loadedCSS[e]=!0)}),o.auto_focus&&setTimeout(function(){var e=n.editorManager.get(o.auto_focus);e.selection.select(e.getBody(),1),e.selection.collapse(1),e.getBody().focus(),e.getWin().focus()},100),f=p=m=null},focus:function(e){var t,n=this,r=n.selection,i=n.settings.content_editable,o,a,s=n.getDoc(),l;e||(o=r.getRng(),o.item&&(a=o.item(0)),n._refreshContentEditable(),i||(b.opera||n.getBody().focus(),n.getWin().focus()),(H||i)&&(l=n.getBody(),l.setActive&&b.ie<11?l.setActive():l.focus(),i&&r.normalize()),a&&a.ownerDocument==s&&(o=s.body.createControlRange(),o.addElement(a),o.select())),n.editorManager.activeEditor!=n&&((t=n.editorManager.activeEditor)&&t.fire("deactivate",{relatedTarget:n}),n.fire("activate",{relatedTarget:t})),n.editorManager.activeEditor=n},execCallback:function(e){var t=this,n=t.settings[e],r;if(n)return t.callbackLookup&&(r=t.callbackLookup[e])&&(n=r.func,r=r.scope),"string"==typeof n&&(r=n.replace(/\.\w+$/,""),r=r?D(r):0,n=D(n),t.callbackLookup=t.callbackLookup||{},t.callbackLookup[e]={func:n,scope:r}),n.apply(r||t,Array.prototype.slice.call(arguments,1))},translate:function(e){var t=this.settings.language||"en",n=this.editorManager.i18n;return e?n.data[t+"."+e]||e.replace(/\{\#([^\}]+)\}/g,function(e,r){return n.data[t+"."+r]||"{#"+r+"}"}):""},getLang:function(e,n){return this.editorManager.i18n.data[(this.settings.language||"en")+"."+e]||(n!==t?n:"{#"+e+"}")},getParam:function(e,t,n){var r=e in this.settings?this.settings[e]:t,i;return"hash"===n?(i={},"string"==typeof r?R(r.split(r.indexOf("=")>0?/[;,](?![^=;,]*(?:[;,]|$))/:","),function(e){e=e.split("="),i[L(e[0])]=L(e.length>1?e[1]:e)}):i=r,i):r},nodeChanged:function(){var e=this,t=e.selection,n,r,i;!e.initialized||e.settings.disable_nodechange||e.settings.readonly||(i=e.getBody(),n=t.getStart()||i,n=P&&n.ownerDocument!=e.getDoc()?e.getBody():n,"IMG"==n.nodeName&&t.isCollapsed()&&(n=n.parentNode),r=[],e.dom.getParent(n,function(e){return e===i?!0:void r.push(e) +}),e.fire("NodeChange",{element:n,parents:r}))},addButton:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),t.text||t.icon||(t.icon=e),n.buttons=n.buttons||{},t.tooltip=t.tooltip||t.title,n.buttons[e]=t},addMenuItem:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),n.menuItems=n.menuItems||{},n.menuItems[e]=t},addCommand:function(e,t,n){this.execCommands[e]={func:t,scope:n||this}},addQueryStateHandler:function(e,t,n){this.queryStateCommands[e]={func:t,scope:n||this}},addQueryValueHandler:function(e,t,n){this.queryValueCommands[e]={func:t,scope:n||this}},addShortcut:function(e,t,n,r){this.shortcuts.add(e,t,n,r)},execCommand:function(e,t,n,r){var i=this,o=0,a;return/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(e)||r&&r.skip_focus||i.focus(),r=T({},r),r=i.fire("BeforeExecCommand",{command:e,ui:t,value:n}),r.isDefaultPrevented()?!1:(a=i.execCommands[e])&&a.func.call(a.scope,t,n)!==!0?(i.fire("ExecCommand",{command:e,ui:t,value:n}),!0):(R(i.plugins,function(r){return r.execCommand&&r.execCommand(e,t,n)?(i.fire("ExecCommand",{command:e,ui:t,value:n}),o=!0,!1):void 0}),o?o:i.theme&&i.theme.execCommand&&i.theme.execCommand(e,t,n)?(i.fire("ExecCommand",{command:e,ui:t,value:n}),!0):i.editorCommands.execCommand(e,t,n)?(i.fire("ExecCommand",{command:e,ui:t,value:n}),!0):(i.getDoc().execCommand(e,t,n),void i.fire("ExecCommand",{command:e,ui:t,value:n})))},queryCommandState:function(e){var t=this,n,r;if(!t._isHidden()){if((n=t.queryStateCommands[e])&&(r=n.func.call(n.scope),r!==!0))return r;if(r=t.editorCommands.queryCommandState(e),-1!==r)return r;try{return t.getDoc().queryCommandState(e)}catch(i){}}},queryCommandValue:function(e){var n=this,r,i;if(!n._isHidden()){if((r=n.queryValueCommands[e])&&(i=r.func.call(r.scope),i!==!0))return i;if(i=n.editorCommands.queryCommandValue(e),i!==t)return i;try{return n.getDoc().queryCommandValue(e)}catch(o){}}},show:function(){var e=this;E.show(e.getContainer()),E.hide(e.id),e.load(),e.fire("show")},hide:function(){var e=this,t=e.getDoc();P&&t&&!e.inline&&t.execCommand("SelectAll"),e.save(),E.hide(e.getContainer()),E.setStyle(e.id,"display",e.orgDisplay),e.fire("hide")},isHidden:function(){return!E.isHidden(this.id)},setProgressState:function(e,t){this.fire("ProgressState",{state:e,time:t})},load:function(e){var n=this,r=n.getElement(),i;return r?(e=e||{},e.load=!0,i=n.setContent(r.value!==t?r.value:r.innerHTML,e),e.element=r,e.no_events||n.fire("LoadContent",e),e.element=r=null,i):void 0},save:function(e){var t=this,n=t.getElement(),r,i;if(n&&t.initialized)return e=e||{},e.save=!0,e.element=n,r=e.content=t.getContent(e),e.no_events||t.fire("SaveContent",e),r=e.content,/TEXTAREA|INPUT/i.test(n.nodeName)?n.value=r:(t.inline||(n.innerHTML=r),(i=E.getParent(t.id,"form"))&&R(i.elements,function(e){return e.name==t.id?(e.value=r,!1):void 0})),e.element=n=null,e.set_dirty!==!1&&(t.isNotDirty=!0),r},setContent:function(e,t){var n=this,r=n.getBody(),i;return t=t||{},t.format=t.format||"html",t.set=!0,t.content=e,t.no_events||n.fire("BeforeSetContent",t),e=t.content,0===e.length||/^\s+$/.test(e)?(i=n.settings.forced_root_block,i&&n.schema.isValidChild(r.nodeName.toLowerCase(),i.toLowerCase())?(e=P&&11>P?"":'<br data-mce-bogus="1">',e=n.dom.createHTML(i,n.settings.forced_root_block_attrs,e)):P||(e='<br data-mce-bogus="1">'),r.innerHTML=e,n.fire("SetContent",t)):("raw"!==t.format&&(e=new o({},n.schema).serialize(n.parser.parse(e,{isRootContent:!0}))),t.content=L(e),n.dom.setHTML(r,t.content),t.no_events||n.fire("SetContent",t)),t.content},getContent:function(e){var t=this,n,r=t.getBody();return e=e||{},e.format=e.format||"html",e.get=!0,e.getInner=!0,e.no_events||t.fire("BeforeGetContent",e),n="raw"==e.format?r.innerHTML:"text"==e.format?r.innerText||r.textContent:t.serializer.serialize(r,e),e.content="text"!=e.format?L(n):n,e.no_events||t.fire("GetContent",e),e.content},insertContent:function(e){this.execCommand("mceInsertContent",!1,e)},isDirty:function(){return!this.isNotDirty},getContainer:function(){var e=this;return e.container||(e.container=E.get(e.editorContainer||e.id+"_parent")),e.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return E.get(this.settings.content_element||this.id)},getWin:function(){var e=this,t;return e.contentWindow||(t=E.get(e.id+"_ifr"),t&&(e.contentWindow=t.contentWindow)),e.contentWindow},getDoc:function(){var e=this,t;return e.contentDocument||(t=e.getWin(),t&&(e.contentDocument=t.document)),e.contentDocument},getBody:function(){return this.bodyElement||this.getDoc().body},convertURL:function(e,t,n){var r=this,i=r.settings;return i.urlconverter_callback?r.execCallback("urlconverter_callback",e,n,!0,t):!i.convert_urls||n&&"LINK"==n.nodeName||0===e.indexOf("file:")||0===e.length?e:i.relative_urls?r.documentBaseURI.toRelative(e):e=r.documentBaseURI.toAbsolute(e,i.remove_script_host)},addVisual:function(e){var n=this,r=n.settings,i=n.dom,o;e=e||n.getBody(),n.hasVisual===t&&(n.hasVisual=r.visual),R(i.select("table,a",e),function(e){var t;switch(e.nodeName){case"TABLE":return o=r.visual_table_class||"mce-item-table",t=i.getAttrib(e,"border"),void(t&&"0"!=t||(n.hasVisual?i.addClass(e,o):i.removeClass(e,o)));case"A":return void(i.getAttrib(e,"href",!1)||(t=i.getAttrib(e,"name")||e.id,o=r.visual_anchor_class||"mce-item-anchor",t&&(n.hasVisual?i.addClass(e,o):i.removeClass(e,o))))}}),n.fire("VisualAid",{element:e,hasVisual:n.hasVisual})},remove:function(){var e=this;if(!e.removed){e.save(),e.fire("remove"),e.off(),e.removed=1,e.hasHiddenInput&&E.remove(e.getElement().nextSibling),E.setStyle(e.id,"display",e.orgDisplay),e.settings.content_editable||(M.unbind(e.getWin()),M.unbind(e.getDoc()));var t=e.getContainer();M.unbind(e.getBody()),M.unbind(t),e.editorManager.remove(e),E.remove(t),e.destroy()}},bindNative:function(e){var t=this;t.settings.readonly||(t.initialized?t.dom.bind(_(t,e),e,function(n){t.fire(e,n)}):t._pendingNativeEvents?t._pendingNativeEvents.push(e):t._pendingNativeEvents=[e])},unbindNative:function(e){var t=this;t.initialized&&t.dom.unbind(e)},destroy:function(e){var t=this,n;if(!t.destroyed){if(!e&&!t.removed)return void t.remove();e&&H&&(M.unbind(t.getDoc()),M.unbind(t.getWin()),M.unbind(t.getBody())),e||(t.editorManager.off("beforeunload",t._beforeUnload),t.theme&&t.theme.destroy&&t.theme.destroy(),t.selection.destroy(),t.dom.destroy()),n=t.formElement,n&&(n._mceOldSubmit&&(n.submit=n._mceOldSubmit,n._mceOldSubmit=null),E.unbind(n,"submit reset",t.formEventDelegate)),t.contentAreaContainer=t.formElement=t.container=t.editorContainer=null,t.settings.content_element=t.bodyElement=t.contentDocument=t.contentWindow=null,t.selection&&(t.selection=t.selection.win=t.selection.dom=t.selection.dom.doc=null),t.destroyed=1}},_refreshContentEditable:function(){var e=this,t,n;e._isHidden()&&(t=e.getBody(),n=t.parentNode,n.removeChild(t),n.appendChild(t),t.focus())},_isHidden:function(){var e;return H?(e=this.selection.getSel(),!e||!e.rangeCount||0===e.rangeCount):0}},T(N.prototype,x),N}),r(at,[],function(){var e={};return{rtl:!1,add:function(t,n){for(var r in n)e[r]=n[r];this.rtl=this.rtl||"rtl"===e._dir},translate:function(t){if("undefined"==typeof t)return t;if("string"!=typeof t&&t.raw)return t.raw;if(t.push){var n=t.slice(1);t=(e[t[0]]||t[0]).replace(/\{([^\}]+)\}/g,function(e,t){return n[t]})}return e[t]||t},data:e}}),r(st,[y,g],function(e,t){function n(e){function a(){try{return document.activeElement}catch(e){return document.body}}function s(e){return e&&e.startContainer?{startContainer:e.startContainer,startOffset:e.startOffset,endContainer:e.endContainer,endOffset:e.endOffset}:e}function l(e,t){var n;return t.startContainer?(n=e.getDoc().createRange(),n.setStart(t.startContainer,t.startOffset),n.setEnd(t.endContainer,t.endOffset)):n=t,n}function c(e){return!!o.getParent(e,n.isEditorUIElement)}function u(e,t){for(var n=t.getBody();e;){if(e==n)return!0;e=e.parentNode}}function d(n){var d=n.editor;d.on("init",function(){(d.inline||t.ie)&&(d.on("nodechange keyup",function(){var e=document.activeElement;e&&e.id==d.id+"_ifr"&&(e=d.getBody()),u(e,d)&&(d.lastRng=d.selection.getRng())}),t.webkit&&!r&&(r=function(){var t=e.activeEditor;if(t&&t.selection){var n=t.selection.getRng();n&&!n.collapsed&&(d.lastRng=n)}},o.bind(document,"selectionchange",r)))}),d.on("setcontent",function(){d.lastRng=null}),d.on("mousedown",function(){d.selection.lastFocusBookmark=null}),d.on("focusin",function(){var t=e.focusedEditor;d.selection.lastFocusBookmark&&(d.selection.setRng(l(d,d.selection.lastFocusBookmark)),d.selection.lastFocusBookmark=null),t!=d&&(t&&t.fire("blur",{focusedEditor:d}),e.activeEditor=d,e.focusedEditor=d,d.fire("focus",{blurredEditor:t}),d.focus(!0)),d.lastRng=null}),d.on("focusout",function(){window.setTimeout(function(){var t=e.focusedEditor;c(a())||t!=d||(d.fire("blur",{focusedEditor:null}),e.focusedEditor=null,d.selection&&(d.selection.lastFocusBookmark=null))},0)}),i||(i=function(t){var n=e.activeEditor;n&&t.target.ownerDocument==document&&(n.selection&&(n.selection.lastFocusBookmark=s(n.lastRng)),c(t.target)||e.focusedEditor!=n||(n.fire("blur",{focusedEditor:null}),e.focusedEditor=null))},o.bind(document,"focusin",i))}function f(t){e.focusedEditor==t.editor&&(e.focusedEditor=null),e.activeEditor||(o.unbind(document,"selectionchange",r),o.unbind(document,"focusin",i),r=i=null)}e.on("AddEditor",d),e.on("RemoveEditor",f)}var r,i,o=e.DOM;return n.isEditorUIElement=function(e){return-1!==e.className.toString().indexOf("mce-")},n}),r(lt,[ot,y,I,g,p,rt,at,st],function(e,n,r,i,o,a,s,l){var c=n.DOM,u=o.explode,d=o.each,f=o.extend,p=0,m,h={majorVersion:"4",minorVersion:"0.20",releaseDate:"2014-03-18",editors:[],i18n:s,activeEditor:null,setup:function(){var e=this,t,n,i="",o;if(n=document.location.href.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(n)||(n+="/"),o=window.tinymce||window.tinyMCEPreInit)t=o.base||o.baseURL,i=o.suffix;else for(var a=document.getElementsByTagName("script"),s=0;s<a.length;s++){var c=a[s].src;if(/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(c)){-1!=c.indexOf(".min")&&(i=".min"),t=c.substring(0,c.lastIndexOf("/"));break}}e.baseURL=new r(n).toAbsolute(t),e.documentBaseURL=n,e.baseURI=new r(e.baseURL),e.suffix=i,e.focusManager=new l(e)},init:function(t){function n(e){var t=e.id;return t||(t=e.name,t=t&&!c.get(t)?e.name:c.uniqueId(),e.setAttribute("id",t)),t}function r(e,t,n){var r=e[t];if(r)return r.apply(n||this,Array.prototype.slice.call(arguments,2))}function i(e,t){return t.constructor===RegExp?t.test(e.className):c.hasClass(e,t)}function o(){var m,h;if(c.unbind(window,"ready",o),r(t,"onpageload"),t.types)return void d(t.types,function(r){d(c.select(r.selector),function(i){var o=new e(n(i),f({},t,r),a);s.push(o),o.render(1)})});if(t.selector)return void d(c.select(t.selector),function(r){var i=new e(n(r),t,a);s.push(i),i.render(1)});switch(t.mode){case"exact":m=t.elements||"",m.length>0&&d(u(m),function(n){c.get(n)?(l=new e(n,t,a),s.push(l),l.render(!0)):d(document.forms,function(r){d(r.elements,function(r){r.name===n&&(n="mce_editor_"+p++,c.setAttrib(r,"id",n),l=new e(n,t,a),s.push(l),l.render(1))})})});break;case"textareas":case"specific_textareas":d(c.select("textarea"),function(r){t.editor_deselector&&i(r,t.editor_deselector)||(!t.editor_selector||i(r,t.editor_selector))&&(l=new e(n(r),t,a),s.push(l),l.render(!0))})}t.oninit&&(m=h=0,d(s,function(e){h++,e.initialized?m++:e.on("init",function(){m++,m==h&&r(t,"oninit")}),m==h&&r(t,"oninit")}))}var a=this,s=[],l;a.settings=t,c.bind(window,"ready",o)},get:function(e){return e===t?this.editors:this.editors[e]},add:function(e){var t=this,n=t.editors;return n[e.id]=e,n.push(e),t.activeEditor=e,t.fire("AddEditor",{editor:e}),m||(m=function(){t.fire("BeforeUnload")},c.bind(window,"beforeunload",m)),e},createEditor:function(t,n){return this.add(new e(t,n,this))},remove:function(e){var t=this,n,r=t.editors,i,o;{if(e){if("string"==typeof e)return e=e.selector||e,void d(c.select(e),function(e){t.remove(r[e.id])});if(i=e,!r[i.id])return null;for(delete r[i.id],n=0;n<r.length;n++)if(r[n]==i){r.splice(n,1),o=!0;break}return t.activeEditor==i&&(t.activeEditor=r[0]),o&&t.fire("RemoveEditor",{editor:i}),r.length||c.unbind(window,"beforeunload",m),i.remove(),i}for(n=r.length-1;n>=0;n--)t.remove(r[n])}},execCommand:function(t,n,r){var i=this,o=i.get(r);switch(t){case"mceAddEditor":return i.get(r)||new e(r,i.settings,i).render(),!0;case"mceRemoveEditor":return o&&o.remove(),!0;case"mceToggleEditor":return o?(o.isHidden()?o.show():o.hide(),!0):(i.execCommand("mceAddEditor",0,r),!0)}return i.activeEditor?i.activeEditor.execCommand(t,n,r):!1},triggerSave:function(){d(this.editors,function(e){e.save()})},addI18n:function(e,t){s.add(e,t)},translate:function(e){return s.translate(e)}};return f(h,a),h.setup(),window.tinymce=window.tinyMCE=h,h}),r(ct,[lt,p],function(e,t){var n=t.each,r=t.explode;e.on("AddEditor",function(e){var t=e.editor;t.on("preInit",function(){function e(e,t){n(t,function(t,n){t&&s.setStyle(e,n,t)}),s.rename(e,"span")}function i(e){s=t.dom,l.convert_fonts_to_spans&&n(s.select("font,u,strike",e.node),function(e){o[e.nodeName.toLowerCase()](s,e)})}var o,a,s,l=t.settings;l.inline_styles&&(a=r(l.font_size_legacy_values),o={font:function(t,n){e(n,{backgroundColor:n.style.backgroundColor,color:n.color,fontFamily:n.face,fontSize:a[parseInt(n.size,10)-1]})},u:function(t,n){e(n,{textDecoration:"underline"})},strike:function(t,n){e(n,{textDecoration:"line-through"})}},t.on("PreProcess SetContent",i))})})}),r(ut,[],function(){return{send:function(e){function t(){!e.async||4==n.readyState||r++>1e4?(e.success&&1e4>r&&200==n.status?e.success.call(e.success_scope,""+n.responseText,n,e):e.error&&e.error.call(e.error_scope,r>1e4?"TIMED_OUT":"GENERAL",n,e),n=null):setTimeout(t,10)}var n,r=0;if(e.scope=e.scope||this,e.success_scope=e.success_scope||e.scope,e.error_scope=e.error_scope||e.scope,e.async=e.async===!1?!1:!0,e.data=e.data||"",n=new XMLHttpRequest){if(n.overrideMimeType&&n.overrideMimeType(e.content_type),n.open(e.type||(e.data?"POST":"GET"),e.url,e.async),e.content_type&&n.setRequestHeader("Content-Type",e.content_type),n.setRequestHeader("X-Requested-With","XMLHttpRequest"),n.send(e.data),!e.async)return t();setTimeout(t,10)}}}}),r(dt,[],function(){function e(t,n){var r,i,o,a;if(n=n||'"',null===t)return"null";if(o=typeof t,"string"==o)return i="\bb t\nn\ff\rr\"\"''\\\\",n+t.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(e,t){return'"'===n&&"'"===e?e:(r=i.indexOf(t),r+1?"\\"+i.charAt(r+1):(e=t.charCodeAt().toString(16),"\\u"+"0000".substring(e.length)+e))})+n;if("object"==o){if(t.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(t)){for(r=0,i="[";r<t.length;r++)i+=(r>0?",":"")+e(t[r],n);return i+"]"}i="{";for(a in t)t.hasOwnProperty(a)&&(i+="function"!=typeof t[a]?(i.length>1?","+n:n)+a+n+":"+e(t[a],n):"");return i+"}"}return""+t}return{serialize:e,parse:function(e){try{return window[String.fromCharCode(101)+"val"]("("+e+")")}catch(t){}}}}),r(ft,[dt,ut,p],function(e,t,n){function r(e){this.settings=i({},e),this.count=0}var i=n.extend;return r.sendRPC=function(e){return(new r).send(e)},r.prototype={send:function(n){var r=n.error,o=n.success;n=i(this.settings,n),n.success=function(t,i){t=e.parse(t),"undefined"==typeof t&&(t={error:"JSON Parse error."}),t.error?r.call(n.error_scope||n.scope,t.error,i):o.call(n.success_scope||n.scope,t.result)},n.error=function(e,t){r&&r.call(n.error_scope||n.scope,e,t)},n.data=e.serialize({id:n.id||"c"+this.count++,method:n.method,params:n.params}),n.content_type="application/json",t.send(n)}},r}),r(pt,[y],function(e){return{callbacks:{},count:0,send:function(n){var r=this,i=e.DOM,o=n.count!==t?n.count:r.count,a="tinymce_jsonp_"+o;r.callbacks[o]=function(e){i.remove(a),delete r.callbacks[o],n.callback(e)},i.add(i.doc.body,"script",{id:a,src:n.url,type:"text/javascript"}),r.count++}}}),r(mt,[],function(){function e(){s=[];for(var e in a)s.push(e);i.length=s.length}function n(){function n(e){var n,r;return r=e!==t?u+e:i.indexOf(",",u),-1===r||r>i.length?null:(n=i.substring(u,r),u=r+1,n)}var r,i,s,u=0;if(a={},c){o.load(l),i=o.getAttribute(l)||"";do{var d=n();if(null===d)break;if(r=n(parseInt(d,32)||0),null!==r){if(d=n(),null===d)break;s=n(parseInt(d,32)||0),r&&(a[r]=s)}}while(null!==r);e()}}function r(){var t,n="";if(c){for(var r in a)t=a[r],n+=(n?",":"")+r.length.toString(32)+","+r+","+t.length.toString(32)+","+t;o.setAttribute(l,n);try{o.save(l)}catch(i){}e()}}var i,o,a,s,l,c;try{if(window.localStorage)return localStorage}catch(u){}return l="tinymce",o=document.documentElement,c=!!o.addBehavior,c&&o.addBehavior("#default#userData"),i={key:function(e){return s[e]},getItem:function(e){return e in a?a[e]:null},setItem:function(e,t){a[e]=""+t,r()},removeItem:function(e){delete a[e],r()},clear:function(){a={},r()}},n(),i}),r(ht,[y,l,b,C,p,g],function(e,t,n,r,i,o){var a=window.tinymce;return a.DOM=e.DOM,a.ScriptLoader=n.ScriptLoader,a.PluginManager=r.PluginManager,a.ThemeManager=r.ThemeManager,a.dom=a.dom||{},a.dom.Event=t.Event,i.each(i,function(e,t){a[t]=e}),i.each("isOpera isWebKit isIE isGecko isMac".split(" "),function(e){a[e]=o[e.substr(2).toLowerCase()]}),{}}),r(gt,[F,p],function(e,t){return e.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(e){this.settings=t.extend({},this.Defaults,e)},preRender:function(e){e.addClass(this.settings.containerClass,"body")},applyClasses:function(e){var t=this,n=t.settings,r,i,o;r=e.items().filter(":visible"),i=n.firstControlClass,o=n.lastControlClass,r.each(function(e){e.removeClass(i).removeClass(o),n.controlClass&&e.addClass(n.controlClass)}),r.eq(0).addClass(i),r.eq(-1).addClass(o)},renderHtml:function(e){var t=this,n=t.settings,r,i="";return r=e.items(),r.eq(0).addClass(n.firstControlClass),r.eq(-1).addClass(n.lastControlClass),r.each(function(e){n.controlClass&&e.addClass(n.controlClass),i+=e.renderHtml()}),i},recalc:function(){},postRender:function(){}})}),r(vt,[gt],function(e){return e.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(e){e.items().filter(":visible").each(function(e){var t=e.settings;e.layoutRect({x:t.x,y:t.y,w:t.w,h:t.h}),e.recalc&&e.recalc()})},renderHtml:function(e){return'<div id="'+e._id+'-absend" class="'+e.classPrefix+'abs-end"></div>'+this._super(e)}})}),r(yt,[U,X],function(e,t){return e.extend({Mixins:[t],Defaults:{classes:"widget tooltip tooltip-n"},text:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t._rendered&&(t.getEl().lastChild.innerHTML=t.encode(e)),t):t._value},renderHtml:function(){var e=this,t=e.classPrefix;return'<div id="'+e._id+'" class="'+e.classes()+'" role="presentation"><div class="'+t+'tooltip-arrow"></div><div class="'+t+'tooltip-inner">'+e.encode(e._text)+"</div></div>"},repaint:function(){var e=this,t,n;t=e.getEl().style,n=e._layoutRect,t.left=n.x+"px",t.top=n.y+"px",t.zIndex=131070}})}),r(bt,[U,yt],function(e,t){var n,r=e.extend({init:function(e){var t=this;t._super(e),t.canFocus=!0,e.tooltip&&r.tooltips!==!1&&(t.on("mouseenter",function(n){var r=t.tooltip().moveTo(-65535);if(n.control==t){var i=r.text(e.tooltip).show().testMoveRel(t.getEl(),["bc-tc","bc-tl","bc-tr"]);r.toggleClass("tooltip-n","bc-tc"==i),r.toggleClass("tooltip-nw","bc-tl"==i),r.toggleClass("tooltip-ne","bc-tr"==i),r.moveRel(t.getEl(),i)}else r.hide()}),t.on("mouseleave mousedown click",function(){t.tooltip().hide()})),t.aria("label",e.ariaLabel||e.tooltip)},tooltip:function(){return n||(n=new t({type:"tooltip"}),n.renderTo()),n},active:function(e){var t=this,n;return e!==n&&(t.aria("pressed",e),t.toggleClass("active",e)),t._super(e)},disabled:function(e){var t=this,n;return e!==n&&(t.aria("disabled",e),t.toggleClass("disabled",e)),t._super(e)},postRender:function(){var e=this,t=e.settings;e._rendered=!0,e._super(),e.parent()||!t.width&&!t.height||(e.initLayoutRect(),e.repaint()),t.autofocus&&e.focus()},remove:function(){this._super(),n&&(n.remove(),n=null)}});return r}),r(Ct,[bt],function(e){return e.extend({Defaults:{classes:"widget btn",role:"button"},init:function(e){var t=this,n;t.on("click mousedown",function(e){e.preventDefault()}),t._super(e),n=e.size,e.subtype&&t.addClass(e.subtype),n&&t.addClass("btn-"+n)},icon:function(e){var t=this,n=t.classPrefix;if("undefined"==typeof e)return t.settings.icon;if(t.settings.icon=e,e=e?n+"ico "+n+"i-"+t.settings.icon:"",t._rendered){var r=t.getEl().firstChild,i=r.getElementsByTagName("i")[0];e?(i&&i==r.firstChild||(i=document.createElement("i"),r.insertBefore(i,r.firstChild)),i.className=e):i&&r.removeChild(i),t.text(t._text)}return t},repaint:function(){var e=this.getEl().firstChild.style;e.width=e.height="100%",this._super()},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon,i="";return e.settings.image&&(r="none",i=" style=\"background-image: url('"+e.settings.image+"')\""),r=e.settings.icon?n+"ico "+n+"i-"+r:"",'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1" aria-labelledby="'+t+'"><button role="presentation" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+i+"></i>":"")+(e._text?(r?"\xa0":"")+e.encode(e._text):"")+"</button></div>"}})}),r(xt,[j],function(e){return e.extend({Defaults:{defaultType:"button",role:"group"},renderHtml:function(){var e=this,t=e._layout;return e.addClass("btn-group"),e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'"><div id="'+e._id+'-body">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}})}),r(wt,[bt],function(e){return e.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(e){var t=this;t._super(e),t.on("click mousedown",function(e){e.preventDefault()}),t.on("click",function(e){e.preventDefault(),t.disabled()||t.checked(!t.checked())}),t.checked(t.settings.checked)},checked:function(e){var t=this;return"undefined"!=typeof e?(e?t.addClass("checked"):t.removeClass("checked"),t._checked=e,t.aria("checked",e),t):t._checked},value:function(e){return this.checked(e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix;return'<div id="'+t+'" class="'+e.classes()+'" unselectable="on" aria-labelledby="'+t+'-al" tabindex="-1"><i class="'+n+"ico "+n+'i-checkbox"></i><span id="'+t+'-al" class="'+n+'label">'+e.encode(e._text)+"</span></div>"}})}),r(_t,[Ct,Q],function(e,t){return e.extend({showPanel:function(){var e=this,n=e.settings;if(e.active(!0),e.panel)e.panel.show();else{var r=n.panel;r.type&&(r={layout:"grid",items:r}),r.role=r.role||"dialog",r.popover=!0,r.autohide=!0,r.ariaRoot=!0,e.panel=new t(r).on("hide",function(){e.active(!1)}).on("cancel",function(t){t.stopPropagation(),e.focus(),e.hidePanel()}).parent(e).renderTo(e.getContainerElm()),e.panel.fire("show"),e.panel.reflow()}e.panel.moveRel(e.getEl(),n.popoverAlign||(e.isRtl()?["bc-tr","bc-tc"]:["bc-tl","bc-tc"]))},hidePanel:function(){var e=this;e.panel&&e.panel.hide()},postRender:function(){var e=this;return e.aria("haspopup",!0),e.on("click",function(t){t.control===e&&(e.panel&&e.panel.visible()?e.hidePanel():(e.showPanel(),e.panel.focus(!!t.aria)))}),e._super()}})}),r(Nt,[_t,y],function(e,t){var n=t.DOM;return e.extend({init:function(e){this._super(e),this.addClass("colorbutton")},color:function(e){return e?(this._color=e,this.getEl("preview").style.backgroundColor=e,this):this._color},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"",i=e.settings.image?" style=\"background-image: url('"+e.settings.image+"')\"":"";return'<div id="'+t+'" class="'+e.classes()+'" role="button" tabindex="-1" aria-haspopup="true"><button role="presentation" hidefocus type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+i+"></i>":"")+'<span id="'+t+'-preview" class="'+n+'preview"></span>'+(e._text?(r?" ":"")+e._text:"")+'</button><button type="button" class="'+n+'open" hidefocus tabindex="-1"> <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(r){r.aria&&"down"==r.aria.key||r.control!=e||n.getParent(r.target,"."+e.classPrefix+"open")||(r.stopImmediatePropagation(),t.call(e,r))}),delete e.settings.onclick,e._super()}})}),r(Et,[bt,q,V],function(e,t,n){return e.extend({init:function(e){var t=this;t._super(e),t.addClass("combobox"),t.subinput=!0,t.ariaTarget="inp",e=t.settings,e.menu=e.menu||e.values,e.menu&&(e.icon="caret"),t.on("click",function(n){for(var r=n.target,i=t.getEl();r&&r!=i;)r.id&&-1!=r.id.indexOf("-open")&&(t.fire("action"),e.menu&&(t.showMenu(),n.aria&&t.menu.items()[0].focus())),r=r.parentNode}),t.on("keydown",function(e){"INPUT"==e.target.nodeName&&13==e.keyCode&&t.parents().reverse().each(function(n){return e.preventDefault(),t.fire("change"),n.hasEventListeners("submit")&&n.toJSON?(n.fire("submit",{data:n.toJSON()}),!1):void 0})}),e.placeholder&&(t.addClass("placeholder"),t.on("focusin",function(){t._hasOnChange||(n.on(t.getEl("inp"),"change",function(){t.fire("change")}),t._hasOnChange=!0),t.hasClass("placeholder")&&(t.getEl("inp").value="",t.removeClass("placeholder"))}),t.on("focusout",function(){0===t.value().length&&(t.getEl("inp").value=e.placeholder,t.addClass("placeholder"))}))},showMenu:function(){var e=this,n=e.settings,r;e.menu||(r=n.menu||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(e.getContainerElm()),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control===e.menu&&e.focus()}),e.menu.on("show hide",function(t){t.control.items().each(function(t){t.active(t.value()==e.value())})}).fire("show"),e.menu.on("select",function(t){e.value(t.control.value())}),e.on("focusin",function(t){"INPUT"==t.target.tagName&&e.menu.hide()}),e.aria("expanded",!0)),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},value:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t.removeClass("placeholder"),t._rendered&&(t.getEl("inp").value=e),t):t._rendered?(e=t.getEl("inp").value,e!=t.settings.placeholder?e:""):t._value},disabled:function(e){var t=this;return t._rendered&&"undefined"!=typeof e&&(t.getEl("inp").disabled=e),t._super(e)},focus:function(){this.getEl("inp").focus()},repaint:function(){var e=this,t=e.getEl(),r=e.getEl("open"),i=e.layoutRect(),o,a;o=r?i.w-n.getSize(r).width-10:i.w-10;var s=document;return s.all&&(!s.documentMode||s.documentMode<=8)&&(a=e.layoutRect().h-2+"px"),n.css(t.firstChild,{width:o,lineHeight:a}),e._super(),e},postRender:function(){var e=this;return n.on(this.getEl("inp"),"change",function(){e.fire("change")}),e._super()},remove:function(){n.off(this.getEl("inp")),this._super()},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.classPrefix,i=n.value||n.placeholder||"",o,a,s="",l="";return"spellcheck"in n&&(l+=' spellcheck="'+n.spellcheck+'"'),n.maxLength&&(l+=' maxlength="'+n.maxLength+'"'),n.size&&(l+=' size="'+n.size+'"'),n.subtype&&(l+=' type="'+n.subtype+'"'),e.disabled()&&(l+=' disabled="disabled"'),o=n.icon,o&&"caret"!=o&&(o=r+"ico "+r+"i-"+n.icon),a=e._text,(o||a)&&(s='<div id="'+t+'-open" class="'+r+"btn "+r+'open" tabIndex="-1" role="button"><button id="'+t+'-action" type="button" hidefocus tabindex="-1">'+("caret"!=o?'<i class="'+o+'"></i>':'<i class="'+r+'caret"></i>')+(a?(o?" ":"")+a:"")+"</button></div>",e.addClass("has-open")),'<div id="'+t+'" class="'+e.classes()+'"><input id="'+t+'-inp" class="'+r+"textbox "+r+'placeholder" value="'+i+'" hidefocus="true"'+l+">"+s+"</div>"}})}),r(St,[bt],function(e){return e.extend({init:function(e){var t=this;e.delimiter||(e.delimiter="\xbb"),t._super(e),t.addClass("path"),t.canFocus=!0,t.on("click",function(e){var n,r=e.target;(n=r.getAttribute("data-index"))&&t.fire("select",{value:t.data()[n],index:n})})},focus:function(){var e=this;return e.getEl().firstChild.focus(),e},data:function(e){var t=this;return"undefined"!=typeof e?(t._data=e,t.update(),t):t._data},update:function(){this.innerHtml(this._getPathHtml())},postRender:function(){var e=this;e._super(),e.data(e.settings.data)},renderHtml:function(){var e=this;return'<div id="'+e._id+'" class="'+e.classes()+'">'+e._getPathHtml()+"</div>"},_getPathHtml:function(){var e=this,t=e._data||[],n,r,i="",o=e.classPrefix;for(n=0,r=t.length;r>n;n++)i+=(n>0?'<div class="'+o+'divider" aria-hidden="true"> '+e.settings.delimiter+" </div>":"")+'<div role="button" class="'+o+"path-item"+(n==r-1?" "+o+"last":"")+'" data-index="'+n+'" tabindex="-1" id="'+e._id+"-"+n+'" aria-level="'+n+'">'+t[n].name+"</div>";return i||(i='<div class="'+o+'path-item"> </div>'),i}})}),r(kt,[St,lt],function(e,t){return e.extend({postRender:function(){function e(e){if(1===e.nodeType){if("BR"==e.nodeName||e.getAttribute("data-mce-bogus"))return!0;if("bookmark"===e.getAttribute("data-mce-type"))return!0}return!1}var n=this,r=t.activeEditor;return n.on("select",function(t){var n=[],i,o=r.getBody();for(r.focus(),i=r.selection.getStart();i&&i!=o;)e(i)||n.push(i),i=i.parentNode;r.selection.select(n[n.length-1-t.index]),r.nodeChanged()}),r.on("nodeChange",function(t){for(var i=[],o=t.parents,a=o.length;a--;)if(1==o[a].nodeType&&!e(o[a])){var s=r.fire("ResolveName",{name:o[a].nodeName.toLowerCase(),target:o[a]});i.push({name:s.name})}n.data(i)}),n._super()}})}),r(Tt,[j],function(e){return e.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.addClass("formitem"),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'" hideFocus="1" tabIndex="-1">'+(e.settings.title?'<div id="'+e._id+'-title" class="'+n+'title">'+e.settings.title+"</div>":"")+'<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}})}),r(Rt,[j,Tt],function(e,t){return e.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:20,labelGap:30,spacing:10,callbacks:{submit:function(){this.submit()}}},preRender:function(){var e=this,n=e.items();n.each(function(n){var r,i=n.settings.label;i&&(r=new t({layout:"flex",autoResize:"overflow",defaults:{flex:1},items:[{type:"label",id:n._id+"-l",text:i,flex:0,forId:n._id,disabled:n.disabled()}]}),r.type="formitem",n.aria("labelledby",n._id+"-l"),"undefined"==typeof n.settings.flex&&(n.settings.flex=1),e.replace(n,r),r.add(n))})},recalcLabels:function(){var e=this,t=0,n=[],r,i;if(e.settings.labelGapCalc!==!1)for(e.items().filter("formitem").each(function(e){var r=e.items()[0],i=r.getEl().clientWidth;t=i>t?i:t,n.push(r)}),i=e.settings.labelGap||0,r=n.length;r--;)n[r].settings.minWidth=t+i},visible:function(e){var t=this._super(e);return e===!0&&this._rendered&&this.recalcLabels(),t},submit:function(){return this.fire("submit",{data:this.toJSON()})},postRender:function(){var e=this;e._super(),e.recalcLabels(),e.fromJSON(e.settings.data)}})}),r(At,[Rt],function(e){return e.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column",align:"stretch",flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.preRender(),t.preRender(e),'<fieldset id="'+e._id+'" class="'+e.classes()+'" hideFocus="1" tabIndex="-1">'+(e.settings.title?'<legend id="'+e._id+'-title" class="'+n+'fieldset-title">'+e.settings.title+"</legend>":"")+'<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></fieldset>"}})}),r(Bt,[Et],function(e){return e.extend({init:function(e){var t=this,n=tinymce.activeEditor,r;e.spellcheck=!1,r=n.settings.file_browser_callback,r&&(e.icon="browse",e.onaction=function(){r(t.getEl("inp").id,t.getEl("inp").value,e.filetype,window)}),t._super(e)}})}),r(Lt,[vt],function(e){return e.extend({recalc:function(e){var t=e.layoutRect(),n=e.paddingBox();e.items().filter(":visible").each(function(e){e.layoutRect({x:n.left,y:n.top,w:t.innerW-n.right-n.left,h:t.innerH-n.top-n.bottom}),e.recalc&&e.recalc() +})}})}),r(Dt,[vt],function(e){return e.extend({recalc:function(e){var t,n,r,i,o,a,s,l,c,u,d,f,p,m,h,g,v=[],y,b,C,x,w,_,N,E,S,k,T,R,A,B,L,D,M,H,P,O,I,F,z=Math.max,W=Math.min;for(r=e.items().filter(":visible"),i=e.layoutRect(),o=e._paddingBox,a=e.settings,f=e.isRtl()?a.direction||"row-reversed":a.direction,s=a.align,l=e.isRtl()?a.pack||"end":a.pack,c=a.spacing||0,("row-reversed"==f||"column-reverse"==f)&&(r=r.set(r.toArray().reverse()),f=f.split("-")[0]),"column"==f?(S="y",N="h",E="minH",k="maxH",R="innerH",T="top",A="deltaH",B="contentH",P="left",M="w",L="x",D="innerW",H="minW",O="right",I="deltaW",F="contentW"):(S="x",N="w",E="minW",k="maxW",R="innerW",T="left",A="deltaW",B="contentW",P="top",M="h",L="y",D="innerH",H="minH",O="bottom",I="deltaH",F="contentH"),d=i[R]-o[T]-o[T],_=u=0,t=0,n=r.length;n>t;t++)p=r[t],m=p.layoutRect(),h=p.settings,g=h.flex,d-=n-1>t?c:0,g>0&&(u+=g,m[k]&&v.push(p),m.flex=g),d-=m[E],y=o[P]+m[H]+o[O],y>_&&(_=y);if(x={},x[E]=0>d?i[E]-d+i[A]:i[R]-d+i[A],x[H]=_+i[I],x[B]=i[R]-d,x[F]=_,x.minW=W(x.minW,i.maxW),x.minH=W(x.minH,i.maxH),x.minW=z(x.minW,i.startMinWidth),x.minH=z(x.minH,i.startMinHeight),!i.autoResize||x.minW==i.minW&&x.minH==i.minH){for(C=d/u,t=0,n=v.length;n>t;t++)p=v[t],m=p.layoutRect(),b=m[k],y=m[E]+m.flex*C,y>b?(d-=m[k]-m[E],u-=m.flex,m.flex=0,m.maxFlexSize=b):m.maxFlexSize=0;for(C=d/u,w=o[T],x={},0===u&&("end"==l?w=d+o[T]:"center"==l?(w=Math.round(i[R]/2-(i[R]-d)/2)+o[T],0>w&&(w=o[T])):"justify"==l&&(w=o[T],c=Math.floor(d/(r.length-1)))),x[L]=o[P],t=0,n=r.length;n>t;t++)p=r[t],m=p.layoutRect(),y=m.maxFlexSize||m[E],"center"===s?x[L]=Math.round(i[D]/2-m[M]/2):"stretch"===s?(x[M]=z(m[H]||0,i[D]-o[P]-o[O]),x[L]=o[P]):"end"===s&&(x[L]=i[D]-m[M]-o.top),m.flex>0&&(y+=m.flex*C),x[N]=y,x[S]=w,p.layoutRect(x),p.recalc&&p.recalc(),w+=y+c}else if(x.w=x.minW,x.h=x.minH,e.layoutRect(x),this.recalc(e),null===e._lastRect){var V=e.parent();V&&(V._lastRect=null,V.recalc())}}})}),r(Mt,[gt],function(e){return e.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(e){e.items().filter(":visible").each(function(e){e.recalc&&e.recalc()})}})}),r(Ht,[U,bt,Q,p,lt,g],function(e,t,n,r,i,o){function a(e){function t(t){function n(e){return e.replace(/%(\w+)/g,"")}var r,i,o=e.dom,a="",l,c;return c=e.settings.preview_styles,c===!1?"":(c||(c="font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow"),(t=e.formatter.get(t))?(t=t[0],r=t.block||t.inline||"span",i=o.create(r),s(t.styles,function(e,t){e=n(e),e&&o.setStyle(i,t,e)}),s(t.attributes,function(e,t){e=n(e),e&&o.setAttrib(i,t,e)}),s(t.classes,function(e){e=n(e),o.hasClass(i,e)||o.addClass(i,e)}),e.fire("PreviewFormats"),o.setStyles(i,{position:"absolute",left:-65535}),e.getBody().appendChild(i),l=o.getStyle(e.getBody(),"fontSize",!0),l=/px$/.test(l)?parseInt(l,10):0,s(c.split(" "),function(t){var n=o.getStyle(i,t,!0);if(!("background-color"==t&&/transparent|rgba\s*\([^)]+,\s*0\)/.test(n)&&(n=o.getStyle(e.getBody(),t,!0),"#ffffff"==o.toHex(n).toLowerCase())||"color"==t&&"#000000"==o.toHex(n).toLowerCase())){if("font-size"==t&&/em|%$/.test(n)){if(0===l)return;n=parseFloat(n,10)/(/%$/.test(n)?100:1),n=n*l+"px"}"border"==t&&n&&(a+="padding:0 2px;"),a+=t+":"+n+";"}}),e.fire("AfterPreviewFormats"),o.remove(i),a):void 0)}function r(t,n){return function(){var r=this;e.on("nodeChange",function(i){var o=e.formatter,a=null;s(i.parents,function(e){return s(t,function(t){return n?o.matchNode(e,n,{value:t.value})&&(a=t.value):o.matchNode(e,t.value)&&(a=t.value),a?!1:void 0}),a?!1:void 0}),r.value(a)})}}function i(e){e=e.split(";");for(var t=e.length;t--;)e[t]=e[t].split("=");return e}function o(){function n(e){var t=[];if(e)return s(e,function(e){var r={text:e.title,icon:e.icon};if(e.items)r.menu=n(e.items);else{var a=e.format||"custom"+i++;e.format||(e.name=a,o.push(e)),r.format=a}t.push(r)}),t}function r(){var t;return t=n(e.settings.style_formats_merge?e.settings.style_formats?a.concat(e.settings.style_formats):a:e.settings.style_formats||a)}var i=0,o=[],a=[{title:"Headers",items:[{title:"Header 1",format:"h1"},{title:"Header 2",format:"h2"},{title:"Header 3",format:"h3"},{title:"Header 4",format:"h4"},{title:"Header 5",format:"h5"},{title:"Header 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}];return e.on("init",function(){s(o,function(t){e.formatter.register(t.name,t)})}),{type:"menu",items:r(),onPostRender:function(t){e.fire("renderFormatsMenu",{control:t.control})},itemDefaults:{preview:!0,textStyle:function(){return this.settings.format?t(this.settings.format):void 0},onPostRender:function(){var t=this,n=this.settings.format;n&&t.parent().on("show",function(){t.disabled(!e.formatter.canApply(n)),t.active(e.formatter.match(n))})},onclick:function(){this.settings.format&&f(this.settings.format)}}}}function a(){return e.undoManager?e.undoManager.hasUndo():!1}function l(){return e.undoManager?e.undoManager.hasRedo():!1}function c(){var t=this;t.disabled(!a()),e.on("Undo Redo AddUndo TypingUndo",function(){t.disabled(!a())})}function u(){var t=this;t.disabled(!l()),e.on("Undo Redo AddUndo TypingUndo",function(){t.disabled(!l())})}function d(){var t=this;e.on("VisualAid",function(e){t.active(e.hasVisual)}),t.active(e.hasVisual)}function f(t){t.control&&(t=t.control.value()),t&&e.execCommand("mceToggleFormat",!1,t)}var p;p=o(),s({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(t,n){e.addButton(n,{tooltip:t,onPostRender:function(){var t=this;e.formatter?e.formatter.formatChanged(n,function(e){t.active(e)}):e.on("init",function(){e.formatter.formatChanged(n,function(e){t.active(e)})})},onclick:function(){f(n)}})}),s({outdent:["Decrease indent","Outdent"],indent:["Increase indent","Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste","Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],hr:["Insert horizontal rule","InsertHorizontalRule"],removeformat:["Clear formatting","RemoveFormat"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:["New document","mceNewDocument"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1]})}),s({blockquote:["Blockquote","mceBlockQuote"],numlist:["Numbered list","InsertOrderedList"],bullist:["Bullet list","InsertUnorderedList"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1],onPostRender:function(){var t=this;e.formatter?e.formatter.formatChanged(n,function(e){t.active(e)}):e.on("init",function(){e.formatter.formatChanged(n,function(e){t.active(e)})})}})}),e.addButton("undo",{tooltip:"Undo",onPostRender:c,cmd:"undo"}),e.addButton("redo",{tooltip:"Redo",onPostRender:u,cmd:"redo"}),e.addMenuItem("newdocument",{text:"New document",shortcut:"Ctrl+N",icon:"newdocument",cmd:"mceNewDocument"}),e.addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Ctrl+Z",onPostRender:c,cmd:"undo"}),e.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Ctrl+Y",onPostRender:u,cmd:"redo"}),e.addMenuItem("visualaid",{text:"Visual aids",selectable:!0,onPostRender:d,cmd:"mceToggleVisualAid"}),s({cut:["Cut","Cut","Ctrl+X"],copy:["Copy","Copy","Ctrl+C"],paste:["Paste","Paste","Ctrl+V"],selectall:["Select all","SelectAll","Ctrl+A"],bold:["Bold","Bold","Ctrl+B"],italic:["Italic","Italic","Ctrl+I"],underline:["Underline","Underline"],strikethrough:["Strikethrough","Strikethrough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"]},function(t,n){e.addMenuItem(n,{text:t[0],icon:n,shortcut:t[2],cmd:t[1]})}),e.on("mousedown",function(){n.hideAll()}),e.addButton("styleselect",{type:"menubutton",text:"Formats",menu:p}),e.addButton("formatselect",function(){var n=[],o=i(e.settings.block_formats||"Paragraph=p;Address=address;Pre=pre;Header 1=h1;Header 2=h2;Header 3=h3;Header 4=h4;Header 5=h5;Header 6=h6");return s(o,function(e){n.push({text:e[0],value:e[1],textStyle:function(){return t(e[1])}})}),{type:"listbox",text:o[0][0],values:n,fixedWidth:!0,onselect:f,onPostRender:r(n)}}),e.addButton("fontselect",function(){var t="Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats",n=[],o=i(e.settings.font_formats||t);return s(o,function(e){n.push({text:{raw:e[0]},value:e[1],textStyle:-1==e[1].indexOf("dings")?"font-family:"+e[1]:""})}),{type:"listbox",text:"Font Family",tooltip:"Font Family",values:n,fixedWidth:!0,onPostRender:r(n,"fontname"),onselect:function(t){t.control.settings.value&&e.execCommand("FontName",!1,t.control.settings.value)}}}),e.addButton("fontsizeselect",function(){var t=[],n="8pt 10pt 12pt 14pt 18pt 24pt 36pt",i=e.settings.fontsize_formats||n;return s(i.split(" "),function(e){t.push({text:e,value:e})}),{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:t,fixedWidth:!0,onPostRender:r(t,"fontsize"),onclick:function(t){t.control.settings.value&&e.execCommand("FontSize",!1,t.control.settings.value)}}}),e.addMenuItem("formats",{text:"Formats",menu:p})}var s=r.each;i.on("AddEditor",function(t){t.editor.rtl&&(e.rtl=!0),a(t.editor)}),e.translate=function(e){return i.translate(e)},t.tooltips=!o.iOS}),r(Pt,[vt],function(e){return e.extend({recalc:function(e){var t=e.settings,n,r,i,o,a,s,l,c,u,d,f,p,m,h,g,v,y,b,C,x,w,_,N=[],E=[],S,k,T,R;for(t=e.settings,i=e.items().filter(":visible"),o=e.layoutRect(),r=t.columns||Math.ceil(Math.sqrt(i.length)),n=Math.ceil(i.length/r),y=t.spacingH||t.spacing||0,b=t.spacingV||t.spacing||0,C=t.alignH||t.align,x=t.alignV||t.align,g=e._paddingBox,C&&"string"==typeof C&&(C=[C]),x&&"string"==typeof x&&(x=[x]),d=0;r>d;d++)N.push(0);for(f=0;n>f;f++)E.push(0);for(f=0;n>f;f++)for(d=0;r>d&&(u=i[f*r+d],u);d++)c=u.layoutRect(),S=c.minW,k=c.minH,N[d]=S>N[d]?S:N[d],E[f]=k>E[f]?k:E[f];for(T=o.innerW-g.left-g.right,w=0,d=0;r>d;d++)w+=N[d]+(d>0?y:0),T-=(d>0?y:0)+N[d];for(R=o.innerH-g.top-g.bottom,_=0,f=0;n>f;f++)_+=E[f]+(f>0?b:0),R-=(f>0?b:0)+E[f];if(w+=g.left+g.right,_+=g.top+g.bottom,l={},l.minW=w+(o.w-o.innerW),l.minH=_+(o.h-o.innerH),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH,l.minW=Math.min(l.minW,o.maxW),l.minH=Math.min(l.minH,o.maxH),l.minW=Math.max(l.minW,o.startMinWidth),l.minH=Math.max(l.minH,o.startMinHeight),!o.autoResize||l.minW==o.minW&&l.minH==o.minH){o.autoResize&&(l=e.layoutRect(l),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH);var A;A="start"==t.packV?0:R>0?Math.floor(R/n):0;var B=0,L=t.flexWidths;if(L)for(d=0;d<L.length;d++)B+=L[d];else B=r;var D=T/B;for(d=0;r>d;d++)N[d]+=L?L[d]*D:D;for(m=g.top,f=0;n>f;f++){for(p=g.left,s=E[f]+A,d=0;r>d&&(u=i[f*r+d],u);d++)h=u.settings,c=u.layoutRect(),a=Math.max(N[d],c.startMinWidth),c.x=p,c.y=m,v=h.alignH||(C?C[d]||C[0]:null),"center"==v?c.x=p+a/2-c.w/2:"right"==v?c.x=p+a-c.w:"stretch"==v&&(c.w=a),v=h.alignV||(x?x[d]||x[0]:null),"center"==v?c.y=m+s/2-c.h/2:"bottom"==v?c.y=m+s-c.h:"stretch"==v&&(c.h=s),u.layoutRect(c),p+=a+y,u.recalc&&u.recalc();m+=s+b}}else if(l.w=l.minW,l.h=l.minH,e.layoutRect(l),this.recalc(e),null===e._lastRect){var M=e.parent();M&&(M._lastRect=null,M.recalc())}}})}),r(Ot,[bt],function(e){return e.extend({renderHtml:function(){var e=this;return e.addClass("iframe"),e.canFocus=!1,'<iframe id="'+e._id+'" class="'+e.classes()+'" tabindex="-1" src="'+(e.settings.url||"javascript:''")+'" frameborder="0"></iframe>'},src:function(e){this.getEl().src=e},html:function(e,t){var n=this,r=this.getEl().contentWindow.document.body;return r?(r.innerHTML=e,t&&t()):setTimeout(function(){n.html(e)},0),this}})}),r(It,[bt,V],function(e,t){return e.extend({init:function(e){var t=this;t._super(e),t.addClass("widget"),t.addClass("label"),t.canFocus=!1,e.multiline&&t.addClass("autoscroll"),e.strong&&t.addClass("strong")},initLayoutRect:function(){var e=this,n=e._super();if(e.settings.multiline){var r=t.getSize(e.getEl());r.width>n.maxW&&(n.minW=n.maxW,e.addClass("multiline")),e.getEl().style.width=n.minW+"px",n.startMinH=n.h=n.minH=Math.min(n.maxH,t.getSize(e.getEl()).height)}return n},repaint:function(){var e=this;return e.settings.multiline||(e.getEl().style.lineHeight=e.layoutRect().h+"px"),e._super()},text:function(e){var t=this;return t._rendered&&e&&this.innerHtml(t.encode(e)),t._super(e)},renderHtml:function(){var e=this,t=e.settings.forId;return'<label id="'+e._id+'" class="'+e.classes()+'"'+(t?' for="'+t+'"':"")+">"+e.encode(e._text)+"</label>"}})}),r(Ft,[j],function(e){return e.extend({Defaults:{role:"toolbar",layout:"flow"},init:function(e){var t=this;t._super(e),t.addClass("toolbar")},postRender:function(){var e=this;return e.items().addClass("toolbar-item"),e._super()}})}),r(zt,[Ft],function(e){return e.extend({Defaults:{role:"menubar",containerCls:"menubar",ariaRoot:!0,defaults:{type:"menubutton"}}})}),r(Wt,[Ct,q,zt],function(e,t,n){function r(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1}var i=e.extend({init:function(e){var t=this;t._renderOpen=!0,t._super(e),t.addClass("menubtn"),e.fixedWidth&&t.addClass("fixed-width"),t.aria("haspopup",!0),t.hasPopup=!0},showMenu:function(){var e=this,n=e.settings,r;return e.menu&&e.menu.visible()?e.hideMenu():(e.menu||(r=n.menu||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control.parent()===e.menu&&(t.stopPropagation(),e.focus(),e.hideMenu())}),e.menu.on("select",function(){e.focus()}),e.menu.on("show hide",function(t){t.control==e.menu&&e.activeMenu("show"==t.type),e.aria("expanded","show"==t.type)}).fire("show")),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),void e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"]))},hideMenu:function(){var e=this;e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide())},activeMenu:function(e){this.toggleClass("active",e)},renderHtml:function(){var e=this,t=e._id,r=e.classPrefix,i=e.settings.icon?r+"ico "+r+"i-"+e.settings.icon:"";return e.aria("role",e.parent()instanceof n?"menuitem":"button"),'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1" aria-labelledby="'+t+'"><button id="'+t+'-open" role="presentation" type="button" tabindex="-1">'+(i?'<i class="'+i+'"></i>':"")+"<span>"+(e._text?(i?"\xa0":"")+e.encode(e._text):"")+'</span> <i class="'+r+'caret"></i></button></div>'},postRender:function(){var e=this;return e.on("click",function(t){t.control===e&&r(t.target,e.getEl())&&(e.showMenu(),t.aria&&e.menu.items()[0].focus())}),e.on("mouseenter",function(t){var n=t.control,r=e.parent(),o;n&&r&&n instanceof i&&n.parent()==r&&(r.items().filter("MenuButton").each(function(e){e.hideMenu&&e!=n&&(e.menu&&e.menu.visible()&&(o=!0),e.hideMenu())}),o&&(n.focus(),n.showMenu()))}),e._super()},text:function(e){var t=this,n,r;if(t._rendered)for(r=t.getEl("open").getElementsByTagName("span"),n=0;n<r.length;n++)r[n].innerHTML=(t.settings.icon&&e?"\xa0":"")+t.encode(e);return this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}});return i}),r(Vt,[Wt],function(e){return e.extend({init:function(e){var t=this,n,r,i,o,a;if(t._values=n=e.values,n){for(r=0;r<n.length;r++)if(i=n[r].selected||e.value===n[r].value){o=o||n[r].text,t._value=n[r].value;break}!i&&n.length>0&&(o=n[0].text,t._value=n[0].value),e.menu=n}e.text=e.text||o||n[0].text,t._super(e),t.addClass("listbox"),t.on("select",function(n){var r=n.control;a&&(n.lastControl=a),e.multiple?r.active(!r.active()):t.value(n.control.settings.value),a=r})},value:function(e){function t(e,n){e.items().each(function(e){r=e.value()===n,r&&(i=i||e.text()),e.active(r),e.menu&&t(e.menu,n)})}var n=this,r,i,o,a;if("undefined"!=typeof e){if(n.menu)t(n.menu,e);else for(o=n.settings.menu,a=0;a<o.length;a++)r=o[a].value==e,r&&(i=i||o[a].text),o[a].active=r;n.text(i||this.settings.text)}return n._super(e)}})}),r(Ut,[bt,q,g],function(e,t,n){return e.extend({Defaults:{border:0,role:"menuitem"},init:function(e){var t=this;t.hasPopup=!0,t._super(e),e=t.settings,t.addClass("menu-item"),e.menu&&t.addClass("menu-item-expand"),e.preview&&t.addClass("menu-item-preview"),("-"===t._text||"|"===t._text)&&(t.addClass("menu-item-sep"),t.aria("role","separator"),t._text="-"),e.selectable&&(t.aria("role","menuitemcheckbox"),t.addClass("menu-item-checkbox"),e.icon="selected"),e.preview||e.selectable||t.addClass("menu-item-normal"),t.on("mousedown",function(e){e.preventDefault()}),e.menu&&t.aria("haspopup",!0)},hasMenus:function(){return!!this.settings.menu},showMenu:function(){var e=this,n=e.settings,r,i=e.parent();if(i.items().each(function(t){t!==e&&t.hideMenu()}),n.menu){r=e.menu,r?r.show():(r=n.menu,r.length?r={type:"menu",items:r}:r.type=r.type||"menu",i.settings.itemDefaults&&(r.itemDefaults=i.settings.itemDefaults),r=e.menu=t.create(r).parent(e).renderTo(),r.reflow(),r.fire("show"),r.on("cancel",function(t){t.stopPropagation(),e.focus(),r.hide()}),r.on("hide",function(t){t.control===r&&e.removeClass("selected")}),r.submenu=!0),r._parentMenu=i,r.addClass("menu-sub");var o=r.testMoveRel(e.getEl(),e.isRtl()?["tl-tr","bl-br","tr-tl","br-bl"]:["tr-tl","br-bl","tl-tr","bl-br"]);r.moveRel(e.getEl(),o),r.rel=o,o="menu-sub-"+o,r.removeClass(r._lastRel),r.addClass(o),r._lastRel=o,e.addClass("selected"),e.aria("expanded",!0)}},hideMenu:function(){var e=this;return e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide(),e.aria("expanded",!1)),e},renderHtml:function(){var e=this,t=e._id,r=e.settings,i=e.classPrefix,o=e.encode(e._text),a=e.settings.icon,s="",l=r.shortcut;return a&&e.parent().addClass("menu-has-icons"),r.image&&(a="none",s=" style=\"background-image: url('"+r.image+"')\""),l&&n.mac&&(l=l.replace(/ctrl\+alt\+/i,"⌥⌘"),l=l.replace(/ctrl\+/i,"⌘"),l=l.replace(/alt\+/i,"⌥"),l=l.replace(/shift\+/i,"⇧")),a=i+"ico "+i+"i-"+(e.settings.icon||"none"),'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1">'+("-"!==o?'<i class="'+a+'"'+s+"></i> ":"")+("-"!==o?'<span id="'+t+'-text" class="'+i+'text">'+o+"</span>":"")+(l?'<div id="'+t+'-shortcut" class="'+i+'menu-shortcut">'+l+"</div>":"")+(r.menu?'<div class="'+i+'caret"></div>':"")+"</div>"},postRender:function(){var e=this,t=e.settings,n=t.textStyle;if("function"==typeof n&&(n=n.call(this)),n){var r=e.getEl("text");r&&r.setAttribute("style",n)}return e.on("mouseenter click",function(n){n.control===e&&(t.menu||"click"!==n.type?(e.showMenu(),n.aria&&e.menu.focus(!0)):(e.fire("select"),e.parent().hideAll()))}),e._super(),e},active:function(e){return"undefined"!=typeof e&&this.aria("checked",e),this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}})}),r(qt,[Q,Ut,p],function(e,t,n){var r=e.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"application",bodyRole:"menu",ariaRoot:!0},init:function(e){var t=this;if(e.autohide=!0,e.constrainToViewport=!0,e.itemDefaults)for(var r=e.items,i=r.length;i--;)r[i]=n.extend({},e.itemDefaults,r[i]);t._super(e),t.addClass("menu")},repaint:function(){return this.toggleClass("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){var e=this;e.hideAll(),e.fire("select")},hideAll:function(){var e=this;return this.find("menuitem").exec("hideMenu"),e._super()},preRender:function(){var e=this;return e.items().each(function(t){var n=t.settings;return n.icon||n.selectable?(e._hasIcons=!0,!1):void 0}),e._super()}});return r}),r($t,[wt],function(e){return e.extend({Defaults:{classes:"radio",role:"radio"}})}),r(jt,[bt,K],function(e,t){return e.extend({renderHtml:function(){var e=this,t=e.classPrefix;return e.addClass("resizehandle"),"both"==e.settings.direction&&e.addClass("resizehandle-both"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes()+'"><i class="'+t+"ico "+t+'i-resize"></i></div>'},postRender:function(){var e=this;e._super(),e.resizeDragHelper=new t(this._id,{start:function(){e.fire("ResizeStart")},drag:function(t){"both"!=e.settings.direction&&(t.deltaX=0),e.fire("Resize",t)},stop:function(){e.fire("ResizeEnd")}})},remove:function(){return this.resizeDragHelper&&this.resizeDragHelper.destroy(),this._super()}})}),r(Kt,[bt],function(e){return e.extend({renderHtml:function(){var e=this;return e.addClass("spacer"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes()+'"></div>'}})}),r(Yt,[Wt,V],function(e,t){return e.extend({Defaults:{classes:"widget btn splitbtn",role:"button"},repaint:function(){var e=this,n=e.getEl(),r=e.layoutRect(),i,o;return e._super(),i=n.firstChild,o=n.lastChild,t.css(i,{width:r.w-t.getSize(o).width,height:r.h-2}),t.css(o,{height:r.h-2}),e},activeMenu:function(e){var n=this;t.toggleClass(n.getEl().lastChild,n.classPrefix+"active",e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"";return'<div id="'+t+'" class="'+e.classes()+'" role="button" tabindex="-1"><button type="button" hidefocus tabindex="-1">'+(r?'<i class="'+r+'"></i>':"")+(e._text?(r?" ":"")+e._text:"")+'</button><button type="button" class="'+n+'open" hidefocus tabindex="-1">'+(e._menuBtnText?(r?"\xa0":"")+e._menuBtnText:"")+' <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(e){var n=e.target;if(e.control==this)for(;n;){if(e.aria&&"down"!=e.aria.key||"BUTTON"==n.nodeName&&-1==n.className.indexOf("open"))return e.stopImmediatePropagation(),void t.call(this,e);n=n.parentNode}}),delete e.settings.onclick,e._super()}})}),r(Gt,[Mt],function(e){return e.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"}})}),r(Xt,[G,V],function(e,t){return e.extend({lastIdx:0,Defaults:{layout:"absolute",defaults:{type:"panel"}},activateTab:function(e){var n;this.activeTabId&&(n=this.getEl(this.activeTabId),t.removeClass(n,this.classPrefix+"active"),n.setAttribute("aria-selected","false")),this.activeTabId="t"+e,n=this.getEl("t"+e),n.setAttribute("aria-selected","true"),t.addClass(n,this.classPrefix+"active"),e!=this.lastIdx&&(this.items()[this.lastIdx].hide(),this.lastIdx=e),this.items()[e].show().fire("showtab"),this.reflow()},renderHtml:function(){var e=this,t=e._layout,n="",r=e.classPrefix;return e.preRender(),t.preRender(e),e.items().each(function(t,i){var o=e._id+"-t"+i;t.aria("role","tabpanel"),t.aria("labelledby",o),n+='<div id="'+o+'" class="'+r+'tab" unselectable="on" role="tab" aria-controls="'+t._id+'" aria-selected="false" tabIndex="-1">'+e.encode(t.settings.title)+"</div>"}),'<div id="'+e._id+'" class="'+e.classes()+'" hideFocus="1" tabIndex="-1"><div id="'+e._id+'-head" class="'+r+'tabs" role="tablist">'+n+'</div><div id="'+e._id+'-body" class="'+e.classes("body")+'">'+t.renderHtml(e)+"</div></div>"},postRender:function(){var e=this;e._super(),e.settings.activeTab=e.settings.activeTab||0,e.activateTab(e.settings.activeTab),this.on("click",function(t){var n=t.target.parentNode;if(t.target.parentNode.id==e._id+"-head")for(var r=n.childNodes.length;r--;)n.childNodes[r]==t.target&&e.activateTab(r)})},initLayoutRect:function(){var e=this,n,r,i;r=t.getSize(e.getEl("head")).width,r=0>r?0:r,i=0,e.items().each(function(t,n){r=Math.max(r,t.layoutRect().minW),i=Math.max(i,t.layoutRect().minH),e.settings.activeTab!=n&&t.hide()}),e.items().each(function(e){e.settings.x=0,e.settings.y=0,e.settings.w=r,e.settings.h=i,e.layoutRect({x:0,y:0,w:r,h:i})});var o=t.getSize(e.getEl("head")).height;return e.settings.minWidth=r,e.settings.minHeight=i+o,n=e._super(),n.deltaH+=o,n.innerH=n.h-n.deltaH,n}})}),r(Jt,[bt,V],function(e,t){return e.extend({init:function(e){var t=this;t._super(e),t._value=e.value||"",t.addClass("textbox"),e.multiline?t.addClass("multiline"):t.on("keydown",function(e){13==e.keyCode&&t.parents().reverse().each(function(t){return e.preventDefault(),t.hasEventListeners("submit")&&t.toJSON?(t.fire("submit",{data:t.toJSON()}),!1):void 0})})},disabled:function(e){var t=this;return t._rendered&&"undefined"!=typeof e&&(t.getEl().disabled=e),t._super(e)},value:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t._rendered&&(t.getEl().value=e),t):t._rendered?t.getEl().value:t._value},repaint:function(){var e=this,t,n,r,i=0,o=0,a;t=e.getEl().style,n=e._layoutRect,a=e._lastRepaintRect||{};var s=document;return!e.settings.multiline&&s.all&&(!s.documentMode||s.documentMode<=8)&&(t.lineHeight=n.h-o+"px"),r=e._borderBox,i=r.left+r.right+8,o=r.top+r.bottom+(e.settings.multiline?8:0),n.x!==a.x&&(t.left=n.x+"px",a.x=n.x),n.y!==a.y&&(t.top=n.y+"px",a.y=n.y),n.w!==a.w&&(t.width=n.w-i+"px",a.w=n.w),n.h!==a.h&&(t.height=n.h-o+"px",a.h=n.h),e._lastRepaintRect=a,e.fire("repaint",{},!1),e},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.encode(e._value,!1),i="";return"spellcheck"in n&&(i+=' spellcheck="'+n.spellcheck+'"'),n.maxLength&&(i+=' maxlength="'+n.maxLength+'"'),n.size&&(i+=' size="'+n.size+'"'),n.subtype&&(i+=' type="'+n.subtype+'"'),e.disabled()&&(i+=' disabled="disabled"'),n.multiline?'<textarea id="'+t+'" class="'+e.classes()+'" '+(n.rows?' rows="'+n.rows+'"':"")+' hidefocus="true"'+i+">"+r+"</textarea>":'<input id="'+t+'" class="'+e.classes()+'" value="'+r+'" hidefocus="true"'+i+">"},postRender:function(){var e=this;return t.on(e.getEl(),"change",function(t){e.fire("change",t)}),e._super()},remove:function(){t.off(this.getEl()),this._super()}})}),r(Qt,[V],function(e){return function(t){var n=this,r;n.show=function(i){return n.hide(),r=!0,window.setTimeout(function(){r&&t.appendChild(e.createFragment('<div class="mce-throbber"></div>'))},i||0),n},n.hide=function(){var e=t.lastChild;return e&&-1!=e.className.indexOf("throbber")&&e.parentNode.removeChild(e),r=!1,n}}}),a([l,c,u,d,f,p,m,h,g,v,y,b,C,x,w,_,N,E,S,k,T,R,A,B,L,D,M,H,P,O,I,F,z,W,V,U,q,$,j,K,Y,G,X,J,Q,Z,et,tt,nt,rt,it,ot,at,st,lt,ct,ut,dt,ft,pt,mt,ht,gt,vt,yt,bt,Ct,xt,wt,_t,Nt,Et,St,kt,Tt,Rt,At,Bt,Lt,Dt,Mt,Ht,Pt,Ot,It,Ft,zt,Wt,Vt,Ut,qt,$t,jt,Kt,Yt,Gt,Xt,Jt,Qt])}(this); \ No newline at end of file diff --git a/lms/envs/common.py b/lms/envs/common.py index 021916764f8..a5be087ba1a 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -793,7 +793,7 @@ main_vendor_js = [ 'js/vendor/ova/vjs.youtube.js', 'js/vendor/ova/rangeslider.js', 'js/vendor/ova/share-annotator.js', - 'js/vendor/ova/tinymce.min.js', + 'js/vendor/ova/tinymce.full.min.js', 'js/vendor/ova/richText-annotator.js', 'js/vendor/ova/reply-annotator.js', 'js/vendor/ova/tags-annotator.js', @@ -831,6 +831,18 @@ PIPELINE_CSS = { ], 'output_filename': 'css/lms-style-vendor.css', }, + 'style-vendor-tinymce-content': { + 'source_filenames': [ + 'js/vendor/tinymce/js/tinymce/skins/studio-tmce4/content.min.css' + ], + 'output_filename': 'css/lms-style-vendor-tinymce-content.css', + }, + 'style-vendor-tinymce-skin': { + 'source_filenames': [ + 'js/vendor/tinymce/js/tinymce/skins/studio-tmce4/skin.min.css' + ], + 'output_filename': 'css/lms-style-vendor-tinymce-skin.css', + }, 'style-app': { 'source_filenames': [ 'sass/application.css', diff --git a/lms/templates/courseware/instructor_dashboard.html b/lms/templates/courseware/instructor_dashboard.html index 2dda9274e2c..dd24e3b2224 100644 --- a/lms/templates/courseware/instructor_dashboard.html +++ b/lms/templates/courseware/instructor_dashboard.html @@ -9,6 +9,8 @@ <%block name="headextra"> <%static:css group='style-course-vendor'/> +<%static:css group='style-vendor-tinymce-content'/> +<%static:css group='style-vendor-tinymce-skin'/> <%static:css group='style-course'/> <script type="text/javascript" src="${static.url('js/vendor/flot/jquery.flot.js')}"></script> @@ -17,8 +19,8 @@ <script type="text/javascript" src="${static.url('js/vendor/jquery-jvectormap-1.1.1/jquery-jvectormap-world-mill-en.js')}"></script> <script type="text/javascript" src="${static.url('js/course_groups/cohorts.js')}"></script> <script type="text/javascript" src="${static.url('js/vendor/codemirror-compressed.js')}"></script> - <script type="text/javascript" src="${static.url('js/vendor/tiny_mce/tinymce.min.js')}"></script> - <script type="text/javascript" src="${static.url('js/vendor/tiny_mce/jquery.tinymce.min.js')}"></script> + <script type="text/javascript" src="${static.url('js/vendor/tinymce/js/tinymce/tinymce.full.min.js')}"></script> + <script type="text/javascript" src="${static.url('js/vendor/tinymce/js/tinymce/jquery.tinymce.min.js')}"></script> <script type="text/javascript"> (function() {window.baseUrl = "${settings.STATIC_URL}";})(this); </script> diff --git a/lms/templates/instructor/instructor_dashboard_2/instructor_dashboard_2.html b/lms/templates/instructor/instructor_dashboard_2/instructor_dashboard_2.html index 8191b8c3ec8..c83def06297 100644 --- a/lms/templates/instructor/instructor_dashboard_2/instructor_dashboard_2.html +++ b/lms/templates/instructor/instructor_dashboard_2/instructor_dashboard_2.html @@ -22,6 +22,8 @@ <%block name="headextra"> <%static:css group='style-course-vendor'/> + <%static:css group='style-vendor-tinymce-content'/> + <%static:css group='style-vendor-tinymce-skin'/> <%static:css group='style-course'/> <script type="text/javascript" src="${static.url('js/vendor/underscore-min.js')}"></script> <script type="text/javascript" src="${static.url('js/vendor/mustache.js')}"></script> @@ -37,8 +39,8 @@ <link rel="stylesheet" href="${static.url('css/vendor/slickgrid/smoothness/jquery-ui-1.8.16.custom.css')}"> <link rel="stylesheet" href="${static.url('css/vendor/slickgrid/slick.grid.css')}"> <script type="text/javascript" src="${static.url('js/vendor/codemirror-compressed.js')}"></script> - <script type="text/javascript" src="${static.url('js/vendor/tiny_mce/tinymce.min.js')}"></script> - <script type="text/javascript" src="${static.url('js/vendor/tiny_mce/jquery.tinymce.min.js')}"></script> + <script type="text/javascript" src="${static.url('js/vendor/tinymce/js/tinymce/tinymce.full.min.js')}"></script> + <script type="text/javascript" src="${static.url('js/vendor/tinymce/js/tinymce/jquery.tinymce.min.js')}"></script> <%static:js group='module-descriptor-js'/> <%static:js group='instructor_dash'/> </%block> diff --git a/vendor_extra/tinymce/JakePackage.zip b/vendor_extra/tinymce/JakePackage.zip new file mode 100644 index 0000000000000000000000000000000000000000..f22e4276c215a06f77daf5044bf09372c5d4b122 GIT binary patch literal 6409572 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ɑn%s? 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⩔f;Br- z%IE^cfVpoiWHtr?qx%!jzOeHkbZUL_)D$6rpZ+wd`q%O+_|Eoh(Z<@!--FX<qT8%{ zq(F_kYCO_(3I>)ldLp}VGQS`13foIj3f$6L)j8Yqugj7s9Efic`Zh{s9d}RVsv`jS zk<>x<7fClB_VBG-tY~QXRKoQitCF)Q<mhq}5i&(?8O+b;m_*H%=bAC^9qNTrcn?X6 znT~u#+aJ)fCXY*>KR>b+pPe=LH$-jmxOl65C#SddXPvKFJdr=eXypRU=aebTQFR8X zkud7`eSJM3`Ne}~nAUstR$;w0fNNyv=4-dxiTV>@-hV{0y7oXA(^QuxL&DQ{oEjx$ z)<HO(wzjJluLE^2L6{{V87J-qQS|`<_)~{73|ehVGnYmaOwV7DC<L;o7Q;UxL9c@< z0GTb}bKWzMRk%LrWIw_8aYLrV+~=@`=mDnJAl)YqCfw~`kNgomH~-yv<clY2(=^c8 zam$~~dD_`fEC}OpBP?mogni;&baw3el5@e2*;6#xHJaAW#4e$Qgynjw?FZU7Ig41i z@%4Yl#8Vj)6qqK}mD$iT$i8Xe#eS(_%tg<%Nt~JgyzEe1r|z~!TtN*GYH8H0Q1!Xh z(^HLD87FY}OGYSmgn${TBtn#>6K<FqwI8JwIPRJ1Jsx#<wNhqYXBkNG)$;=h$WMc; zV+$36UNB1ik$4}VK-+7@2=oOW@(p>$Dd0mr*WN3Q1Y3TM@9lRcQYNg$K*JUR+kNH; zB|&!S=EKYK1nm8}4RO{e)NW%|SH{&_%voj|+tRM$tIdHp$bFTZwvgdDdbL_?&qTOX zz~Xz%BZZ0r+z^@n5i$Ttlpmxhr}dLMZ@4+)1w~5ShuOc)HN~}|)(EMZOW2t5SQ?S3 ze}L(}51lg8qF-+c*mwxY7~jh!D-+n*sup#5;#9*d@)NqRgC{){MV<?TAtH3#Wv^45 z*aI;AD+agmI=28AC@7j0703r~d}um3?@owdl0vM_<C<wFpncq|(2??8@EmT4Ryp7n zes%XEE7AgE8qbF8-N8gYZTIKS7<br%D@Li16emqS=yUpyZ<Mt6lHJY^Vs#&D<dC&I z-8i%hi2#&<r_-@ZA8d++SvSCioE%#RND+yHQ8%A@8JW-~(d)YyeoG|u;+SBdC|fkq zxz$er5AU#@jqmH%>kRk<ug{Nx%iHDt+Jk9r&Ydss<;~5G&clw{H_UhK*F$b@_o)mX z?!YIUEu8!6UYSfi$f!@Sa|nG1LxnGV0S$sBqbZFhm=|mps+qZ42*Dt|7=I_RatW*% z;W3s{xD*Q`*!Mj{7nGvELsh<D0Myr<C5Sc+>z=vrLGPErK5g5&3$$gj9-G^~7?g_3 zLHFSaHfR)ExD=E5ZauJ#e%A%eAyjY@{_Nt?uy)^1L!+qVmIKd9qeRHzTtO52*Bl{` z#1oa7P3Qg7kL*%45jYF(s=gE@iaz`n6Z+|0$l{2<fPwm%bNeAI-0iOIKU&pC<X6vu ztYu}=R>9h=#e(aCF7C?hx16X+VLrL4>duub7;bviS^TjUc_z>FvnP}*T>5ed<EoUE zjR>>D<v6r<;v2x97X%9POWYTcAw=(q_iq%Zcm;CnRU?3o-qw$6C2j^j%$|LC5xYZn z(T^|y2t^Qnt6IMW<wS>`Z=$f7RQjDy6(f@J8;J7<$q?+R-8HZ7P<^^PSJ}cd50+RB z?$Cmd44MjOOjgZFrAjZRr_F*Cay{ei7S&7=g;Br1ao}vvm0~@4a)sEU(3zh1P(SVg z91A4@h_0~D=M2<par7;raHB36aIz0pQ?>R3mp>!Ip6^ySzW;V|t14|^5x8K92V{ap zjdu{BmD!DW-2~)U!U0BTCl>nxQMZiNg>C(oin3?E2RDL^xYjsE_GHnhZ|<WMJ+}Kf z=dK2rWWB_j1!PkY@CjgL=JJ5PC-u##wuUZC@k7B}HR)4wFVSt_j11~*_Lif|l7Jm> z95)Ws5Ksmh*hJRRoUv-L=PNX_6Zh}_-74JE`x=0&?`ej}q~L5FV=o@?LsJW+^AT^z z=l7fd2BivOd`d<T1a4P~mwQN2n=%c;=J4JHr(OdKxM3b&RoH6*LftM`uc2mJxsa?% zEJ;rkqicUfJ}AXGzJeQEy>#>X27XteD74EZBF8Q#d@hwHLyhL)gHYp|3W0U|IGC1F zS$|d;hK=%nM%X){glp5AM3@NgC1s$|vRKBPGo?%25+Drmd4X#gmQkc(fgcXMz(x@P zHk_(kg37JnQ<n{F{rjex%NW@z$SP1Q=M0~%XT~u(KHfk-DtJ*jG)Nij?2D@+Tt4_w zseq}X6HPO`1C63;o9Dj?IA~iOZnlI&o^ePx@YK;2R2?X4%(f7yj}U2tBvyeyF*RfE zWS`TxrOA$SQud`q#tC`zOqFA;CW_6v#6lFWI;RLA6h?n%Dk)~)IoSl(r>-oSC7sRy zjK6JK<zz-P+;DyyB0GYfT8DJ^MWnM@zWbR-)s#7U{ETF%?q_|xj>b>D8-5)@@+M~X zP%wq-c!EpI02(V##;x&PizZ|%8h|{}`~G`TfQ~B9?}19A<u!UK%^I%Hd$wB=+$ZkK z{#!u-{T80y0ujZ9%y2$d64X;f|H`t-VgBqBMDQRYs<7JDvef@+EaqHY!N6)t4PxU6 zQIGeWleEu;`tam*C_G^YNd<dYaN9uRH>ZM$)0tQBvK<d1cG6lTw~)q(*1`%*qHbt8 zwb70y>9`2LzN{s_ypRiMJx|@*+}fD;@j2K!3mxJ_-T(EhF6DxjIQ$X%2?V6mbYjVq zI~rV|z>!nbP7F>ByqgqV<|m49Mp?sQa#wn=&B7h#3|CC8$GJ-CjC*8=S=aDje$T)W zj3b9j?`0W&mtW)EhX~S#J`usbilQLyT{VF`D^!*83w8iNhTX`YJ-Y(T_!XUnsp6gl zY2j=1TGPf@*cWaV3guUfPvQ0ES2pum_=d2?_q(JvU1i45JlL@4L2(KviryPwR>ZQG z5!=NmP%;m1fir~SFIFAoQs8rD{p#LF(5229pBTc!VF_;sBFN0lUbcvSyNejjPW7dh z<=r&sk4@~nCacPP#&|?2utW}mv2U|!QG}4npz<Qr6AcEH2EGjzvyIS*@xsS4aPy18 zp}JRup&v7G-$2EjN}ubxHD+?uQE61<l?H2Yef6p0%O&mR3y#OLkw{G6Bki$jGYb!A zK_OjUvY<|9<?3W`AcgD&Fmqp*p4p(c;g0|-Zw=axIv@v%j)XZP(CgHJ*fg<fc{yc6 z%kh~S_F+Rmk_L9=<&%Bt=z5D88v<8L(QEBd^O?ZH*rQHeGJQmV>sqQETT{Yp%}7M% zq@O1>A?>S?(kQHz?tMJ{D!ZlV&xWz%Z-~NKeb^(vILvFFT}{c61DVvxKfWw9LM3nr z{^2r+tT=7#6?aDND@Zlee+3cq(|{C?_5UbA5wAT0SRhE@@)^N6S$HBA0pa|U2ubNw z;{(YdL)6sk;w`)1>3*bOJ|MyNu<kBAW`<*$iE?uqZl@xrCFU{XFK=+m3mZ^yrpOsC zKNBLrc6O0ql&T4Z8fLWZkk=QkpEhWE#Mdj?sJC)10|ToDrDUA|I*^V%R9hM4Z^N(* zeY;?Dy3G6}>7=XW>;d{W#NwIV_fmmCX!XSOJ0kaO$<FM0@~AAcqrFOnCAjG<#D>8# z7z0;72u~<1O|;2-O>;Gj{ZSc|Bv!-mMMmxq+N{%(MYX<Mc2;)NIt3Y?{M{C@0O+># z(<e6!T?MpvY<e9xG&i?f?QqU(RE0JsUjo$(eSjf&5ZV6S!0-Up{-vE$r{^gpsXMSx z;{4u8!n`R$BL3BAlvMLf43{WAb+#s!yse+VhC@&uY@QG5{@1fpbXyH|yFD`;uH9$W zCW>Qb7}@H-_=M8Jo~N&yv^~MF_r9XHm-w9>Q7`}GJ4Bxyi7<c+eM@+f`AzKb_^1LB z&^|egs2BAmd!uLZ&~b5RdYQSKmL2P-+5OH_!5|u$Ni^t4n<{i{m=S8gloDlbS&}Ai zRssbkGPqM1{S%>1znJ$dsq%*Hudhs^(8%`(JH8p$^;jOf4=#wndIXDA<56S=UYSEP z@WWNII58ol&stsPl_v)QYXVz$dr!`BH#P7P((a+<Id7M+08hIQ_f_c;8@Y1^TP$^N z-D56!+Uyw<6#I@!t#hJjnX&Nr*>8uc#K=vwl_xKqEQ+0ui9EY30A{46a+ZNgZJFW= zs75$~hgH)Q=7riYzII+iq7+^IkbR+SyXoGx1_`vu)c_7DzoWaLEEn36{1oi!iE9Z9 zY+Pte$=z16;Di+8sLAX*M{0>T6WOg|@&$;Naw)nCJUez@@pYW3b+&%ZEtrF^uOoi? z^M?xrr?`Ghh@x6kFe6^=2PiSv+G=5aTxdOboC-McE39Ildn0D&GaozWu)X#uLZtOg ziU@X`4)QoQ;G}jAe05OL{i{&|`dOFRG;iPM{M+`TEU3M(MF`7?0t&WAu!(7tmEiQ{ z`J_T>7dH9km@!8%>6VzI!VlQ1WaBCnk1L!gT7z?_vTD@2Poive75pnRUgcaEW$M!s zHwUD$kqZJK5nPf2Yb>6oP{LY)S(j14N<YjCn{4IA&OOoG%@B;U^zINz`W-KG2V%ra z`CC9K<%pY)EWxmZcL_dF@5orAFt*oS=Af(xchJyoL^S>D*!(hH2)(KXMwjI*UqWT# z+{UTa@DZa&aW(g?@t9Phl1I%UD+gGu;aT#wetRj{DhB&)kU8!7_8^Bm?Fg>p!ov_g zg1*2&%7gFx(X4IZ5_t_{^!-q65gdEOckTl`lSd(<sgb1#PEmWFn9!?(es%+e6C5mQ zdyGKECA!gD7Z63JB;+a6f0S7Yr)6xj3eAxVQy!Yz0!Zs*BYmhQ%)vM!#05qWX8Jbv zRWl>=P6(5${Xm|sy2p;sz;QAd23CtlBkAOhMA&F}FDNb=?UzY)hNh_^pJBMES5XV( zqA<BAR=3<iZYk^w*r3yh-)$3FU0?vF0}=c|hy*w<RA4RD(bpUL%(4G+gwgp?>nx`L z0qNs=wwc{J(W%JWrbF~3{bfGRv~#2E4!es{BJ&+zgz|@AI(3hX1BOw}$bKe&n>%bk z)b9;(b9Sgxyox%KjFDK`7a0*CoMQt^)Ei~1!0&GknAP$<Mb3_$3*Z|afSHySu4qKf z<1kM%jS}7tCO0q%949)}U#~yBt=@l;{^%E)W~qVs!ByoRW{Z(^a({C@*=`kDc}oKf zNV1m+u-L0<P2;#^!sCF<g6P4`%;!~oQ0y4%5}SA0nB3XyAu99~oQq@_XpaQ0wae6H zaBhaeNGSmYDrAEZOf&9I-c@Ey51mErVTC~hRo-=Xw+V0=8nIrcJHbgAr;(+63<hR$ zzZ=mJI&r)+UjRZaQg=Nb<8T4}>ua9Hp~#Q4kGa86_urCPRHjizmMS%^31xw5k0$tm z<DU;Zg-&+i9GN=2eUI*{0LkPIe_tE`K9y8IRk*}ijRP1<4M)gri!g*)ur$&?EpaW+ z!*l@KW1HdEAU}6QZ41d0t-ll@Y4hMMsjf5wam;Wq>I@Pl`pglT1!C}9on+J;Ov4z2 zqSx}TtAgg)7wRnkob^uMLK$!O#q7;2p#bGru8#K`+JuSqfE32ZxiEvhVG3Ph2WUl_ zIqJEZ)4Va)%<>~9)=qYJ{^Wv_616Y1xP55Mt9~bEwT%`jIixZgUHhE6^J!)`jY<Vh zWe73t+6v-T-ElbAvVBWT{-p*v_yzwWyno36#o+u7042J1hO1YEs%Yjot{6qC__b@I zmQ1M>JYn95k#)a89PkO~LRTPu<ICe&l<9xDQagRm7ulzaVS|h1bG13!$X1Er*hRiK z#i)tK3LVA*%XAh<4veda5hi`iQk-jCuG>0UE~$dCCO3867&8zhqaC#(w!jZ-TS;AN zzi|9Xh@Pncw!`3}---w2Ic<-%Fx|Q$E#q7UN$$(FOpPR-{Ik`ht6)TnZ^7N4Bb40T z`$&Y{@Zl}9a?d-E<O#z_%p+mjn7{nD+k=9yW525V58P%=9*^C8%mPNO^Lj5_H$F*~ znx~BW>5OU{s&)eRb=th=0;gXF^hd@n0J~r><j>UGgrj47O{T4U;;720^MVo;<OU?p zoT=HZ&VcFF<=?5#-knYSeZ{O;IXVqnyd02VWkKqk`7jZ<cKN8!uG9WxwqqHSXko-< zc?tgPcEOR79V~A=0zJO<O+iHF$1Gtm??Pm?v_&9M8y(iUp4ek|CKpuOk>K|`=M6(B z)K>7bZ?x|lFyhaR5j0duE@`QApg8^I{L5@OUnkG7_3)#2jNZ0?Hf>gLzT7GQ9?My@ zm6a2F64@R0ZgBRQV1Lf<YeC|X4axQ7BE+VP{MtkL`0?;28L?%Sk?#QaL9Q7qzzrP_ z-!P<}%CSyrKDSl?m39&-*>@prYCQ1}ac$n2Xe_xJlNXu`B$7KZ!xR!&FGR-+5kdp@ zk-;Cu`yu_)K^TW4bn&9>j-;t0z0?e&?aTmK?}1<O!8y%wH(tpm?2%Ir*6F~a-D+R6 z+l>wjsd<MtuKjfjFFZx%f@}_g2nzY4)o+}NH?!4mVnRv#pQ-sr48mnuu>Vd_{-G6a zush$gpKDzc;K6M?L4>;R`{%LMs3ZUWfkTT+CBf4Oj~gSk;Ec^ugnpX8BaS)5Dj0rD zXF+{fG_z?${#lQunV@C1b*%A9z}`1?a`9C^Ak|`o2rF7WVc(f$%i%h2Fi3*wvbVq# z?9|-|Rp#OEK|W3Yv;VPDV0rFkG}Bn2mQ-fe51f^FQbFCRz-gIsV_-eeJIo{0@5taC zMx2hL$-qfG=qDVptBW!wtkcTIlC^czoiCr;s1idTJQt>=#)?LYBEE@!1FPr#t7pt8 zSW4fWY#YF8&>=D-578Ce$84uM<kjyd*=ACpS-yaOijLNr#7WlGIwr2LeHoCF5Jl<? zz<$UKC3;R(b&%*+pG8i>O7Kq|M(Z#DWx{AOmRQFGLiVA8%t#Gf#ALp3e?&WieJJm0 zWTdxzW(w*c6oy{S&FfZ}FW;y(FP$*1#~+OPl(qiEhz2S%{7X$kV+3thNp{R7$yyz{ zzNr656R2Jn&CG2blpZCqT?;*Pn!77Plz%I$_5DbDH~UrFb3f(1a{tjAF#ss?{uOlz zKZoO~4K7ql!<m%|#T?ysjbwLsdSlTwLyLc2S794;zA8_?tmw@~KGp5`j1`kkzGqvv z-A&Hm`Qj3Q5e$IJzF{{b92UUaq~Fk>uT+`RQBknZn*0#iqA=0Ij8fLq6?4{-G+Tbp zw;-j{6+u?kYbZVwx2Ln0rhR(@8=FX*=LNOFMbMCGb#u)!E=n*#wR4bDe0a7diAt57 zR%thqao3`j?SVJu#!4>H*<+gn*hwb%8t7>(u!dfP6=4&O?mYI{kbh;9l$b%ifU1oX zrvCwS#=r@`O6$h~7arv+kaxqcfFh2g+qh8hy{pGe&HhYkjRE$vaC*ZDoZM@DOocMU zi!|YEDv8fxnU)BX!e}4ZN0^Lu0Z-?Z#W8S#@UgBimKKI1fM>NgJ!c^`D+myVrHh)P z)0Od^;z$LK)4o1EwJZKkOVrTCm-}RQo3@^t-#-w;gCv@Cnax&SfsY8lb(XyUkqNte zkH@I#dGxr|#oI1a8y$a-`kw279pP|pQ@NC-WetQTXa|j)YqiSd2jd`kqM8&Mu+P>K zYHv3S#V<mI#2CA5HW3+_E*_BJY>jTCWGhc^7lOslT;5s9#SA3^gjW7%?7)Bj<;>Z^ zlRRj~bw41V!|^zz-O-IYDOhJ8A~dizx0~F@?fLqxl@nA%?Csx<&yPueP1e&}wH;Lk zJK{9tGUoG>!lg*R&8saRJ0PdU4rib|mZRJ60n!bS^FgQZ63UU$_|dCT-CjyzhZXZp zAwnTFkT?xW_&EMsc^+r<oW5rS&t(K-(1($nu#?#lU0wc^3A0Wbp+oi%PjkScP_w4h zF`-D={>OTz-vMW-#Yci6V}DUK-nr<VGjC@KTDo<6`Lx>$k#Df2v_#M_{{F>A4}27K zZw@zDkhAdQimA872+KUDx`q&;W}>)AJlzFP(>xN<A_ztI%{=A$Dgm4X-|#}C<BrcD z2!Yi@QJKjnIT3+Cm@~8ffdj?{pByt*1|gT-Q$jUt!YVpVOF8jVqP+*aq*E$b3^oqm zjFd)m$LI!A(4b?3C<-H8Johg@v0rt0i`3!R^SM^B0|l*0Zvddam#(_9rx3qD_*Rf* z;33i^cmDJ*<+5|neYUGuz49-Pd2)<A(8AUHtpa(ywV{3TKNB6zS5kcK$7;rK8Y)q7 z@mfale^lzif!(-w;V3m+<`9;~RXAIv`rdFYm^7X<cIG2@*5v~u2D~)G3;S$R{~#(t z4?^$wL+(~}13sP4fMa$U;PwPby&AgNyy@}O`0e>tzL32!@85y3Ql7dJ#4!x@mYh<L zhgzk46XW~0iMr)l<vg7`naITHi7qhNK!c`qhu+EfmFImf{YyPix57KbMUXdQ2#2Es zSbTOb6Im|OwR`~bw`#QtzJ&$&Y5iDTtvCa<^bBg(<M>Ca2248!YTvB8zlO_*3VH@A zq2H+J_(f8(8mqpAj7cF=yvX`bA7Ym=OAm1yfkky-4o?PMYyUBY3J8h&jH=p63*7}b zu9xyxqq~WkdmLepE#ev+MuKC8=ffzfx<uL6OTkmMM=4}T9y4tSZ;}q=;Z;q~l@l<Y z<JgY-|9#8p$QeHcki*Cj%|nTfDPF$5u1CW#B&94MLZ<xgYn_Cjp1TP=BOx<7euwl8 zhMX;nuqKjeo^(<rn-A(-?{ZvWy?ZC<$f{v2GKhNYwG!}X^f7Ktgr0NQsqnFTu?B?; zB8?bd!4~uUWtf9m!XMnAVakrIV4_2+iAZjLUZYd2%0$2yT0hh$T*g$0`y+8t?=9ia zcP6z<%pI9`r!`K7HMV@bL5`Bi=3XBBz+JPGqm+rRULrb(o>LFnzE`*@&DJLN5w#DU z?`jPZk@HaEarave7na5nmQcg;=?w3|-o+njyNfuxhs9o&13EpGzL~hlx5t5vX9ANf zU`hp|q3i;sXDg>RW9SBrN(?k^{Bo{Qs%SaHaVckLb2>2xN8&}nDc8y-68$}O`ga*0 z9JGC_z+@4%A$3qTg(z;#;sU5<I$Yocw(b3AN?u{Ks^nyf|1Do7d>aG9yepbGD_wHq zaeYnw8utwJ)$1XO@DYVV4<veHbZC1_896WqN;`kq$>iA_UqE3fvN*v$sYI;_K8M`T zde;3wvt^#JavuxEzuMw$WZlxZ!r@*bkUg6O;+d?4(WWL0Mkw1YXB{V4C%-!d!bP=< z1Y2?lZa>K7^s;<W{al23#@L=)corb&Y=jcAZLcpC5c6c;vMA2{^P;$lR?)pi3oZ1- z(5qzx9~o)L)aTlu2!KhGbOJy@qqBU<7>_B;Fjz`g7vv-Gpa2(yw%0$I5zkXCmB@=> z&?EgCDtR<%m54p}giwE(vHf=c11ap{H7fJ&ZbXD_hA&gkMKUB>Q`$$D85nrqYqjpT z<}@m#Gn!%e*Qkfc(I;XvJr!)Ay2e`WRqU88Nm66BB0Mc$_06i8u4`mkWko!UuZ0xe zwul^Ec7hAO%n)z3varsUk#fai^1$mF>*)|d3(Q@&aQV+Go?gIgNV)hbBsXzhLYX#Y zNg?TBV(^Bh%Ru6kNdUL<RJ08{)Iv)ccIm{PTEq99>!Gy~Z^|fL#aqVxA@e1BbCDIR z#t%^g{vw<WpWMWk+x`cZ{J|DZbV8*tJ9fRFEnK7+)Ifb4SNPJ17H<|&xKsO)KJ}l0 z?)$7Dm<Rx$rTlRt49g+ETiSClnpm-9FZ%lw*=2-V^F2D}uRr|@*%sJ$HkCquJD&7J zgAP_g=;rQH9@_N5iCm-x+F#T#MxNol^dq9Fh2NtSYpXSD@ZR6Xf!QVe;>es}_8TZo zVTc)zVeHCM?cZf8`|_TjJQcVB`5zuqBN;gj45wc!!)W=<LrX^Y?wqsJ@H{x7e5*uH zcxH?os08pH1?8SMcW+e-jAA>oOVQlCzaqx+FP=r5sal+CbU)Kws&LSwC5xCgmCa@q z8$C=E)xmPTVP{oZd`2}Vt-P}zmHQvlHy(xK?rwb3XNG_HCw#;02%Om3jU7SW9WRS$ zwo32)b6^os6Wo1{Mv1%~48%9J2@joA;%(fqmM#HVfjTte5X%s;@n~!h1N=}|gJQ=I z-~EcI+#5<9@JM~zs`}B}MrWP(<gZ~!e>X%W*~N}?2e0!Pnpb<U`BoX?7=F-;XN(lo zx}$1M_S&#+)LPOIzA3ZRVnta1-SqG)NYG6)MXgWxmCe2$%ut)pd#afn3`gj=l#?Y* z@vE{{AB?M->@n3L4tq5CydD<15*$B%5yR@gFHSpioEagHO>AjgCXNAS)AVAX0S(?~ zDe)49Z3lM|c-j^sL~y~QiQWd{dbMd@Yb)-|^=8S0P1rTFzSUO;bRpK8BZfe}V>*)F z(=c(Bm(@v7NGlCx0ClO3J^<!SZI*B0$i5p`(ma?M;y<Y`iPy9X`g_QcgE4iwgp#8@ zy$D;yvCw;0_`v;NG~%Hlr}S;S>b1cYYXF2kXf<dYoP8%J*YZ@)o9E%aj1)bBHw#bB zntoX;@vX#brE!k?=`X2D-{<ra^?~I!&C>SHf^<Qj%$G_9HQq$5D@+NAXH0=vk94W? z3M~(qJ7;_FxOLA3!s%8$>de8;YDK1AHYhpUyl+Ss7;eAqX~<W_ruPPe`=lGUn7n)m z;2TytAl>}}2)X^p{T<xP{*pmTw*-76sUDueXgOw$!{-nxY-IUr6d-_FLq;Wc)-V@& z3qs(tJtS-aMzMNRLqPTK=+<hT84W`KAFGN)6ly|#L)j6++T67(r(74&%iQd3fQnkT zf)aGne<}63XsK~^@C_8DjG;U*Y!MYWny?^mw3IMd3<<~;z}aWU<Hvl4E6-n6M<pKS zx<zb_cE&xqd_*Rkv1fBznEeBrlcA1ZJ!9N~bZAp9G+S7<_Vcmi2T4qWrnFQ~YYb$$ zsxIp-TM#g<GXuzY#x*HZ0iK2NmZocatPA+oeqwbywtgfVD#Q(!b=8~ayVukRkDBZt zfkxn+vxci%TR{R89m0%WN}OSl9w@O-g73#7EbSIZ`KPqwueU%MW&iA?@1(8ui7AAS zMLHy+eMp~F;w*3ABd|mNUjRlxxxcXZhz(ndVj;<(>5u2?bktEb-n5N0nboV9Cg*S3 z!bCuVIxadt{ORJkIQjxY-BU(#qT)dyI~4sV6R^<|A5=|scK6uvW#cQk##747fU{?F z2lzFQmT|-o;$jOcikS4KO#&vx>yNYEB`oC#pcexU*VgFApdbxxWui$vJ#p)<L&$_> zJ|qQ{DcU=<LS3%eUZ$OEmP&f;b31fS_T$3(ruXJU2wwS9wi^nYjJ(K6AhmKNiKd}w z6sMI=?3$oQLbVDjm(`0jAv`8bK1mUv)0;=ZUpmKl4@ME?95@Ekw{(G3+lFBzHot-z zq2WzhiKTW3YeweehntXGj{Id4snn`|6U`Md$|xNu9-~xB12{}CbGWgM5AJd#>4`oG z6;L;**ZFox9BR|lYfEj+v+i^39=q)b)%{rH=hQ@?B9$0LX7s#E?^-jiH-J{Ek`2Y^ z;;MS?D!dha;J*TXT7<<vhRVoE@n7aG8IIcOF=e=E8+fUk?fh8HXWrV(3mHSCyLguP zUim#-ML5OwyY{=x3m#L^Fih>BIC9+@ew;DoR$xinVvs5fJOIuBjrA&;rXss@QQUF( zJ;S~elSwP@BGFN(HjMZ@7zLz^k_`~5(v?Y9Hk$0T!F9Wu4dP?ED>1%l#)h7V?D#mv zs32=3uVQ|rBaR~!Q%&6=e9V70G|0u7K3iixJ`|JvC}I<JKMkoOsj>VZK9MYeuYU?> zcQTZ_%+Q}cWavG4Zu_GiMhqT7_wo}yy#mc8ti)<2Vl7MWoq*wHxLJ?~-QgPerQ_|2 zcA~k=p!0QpHrwOGB%*TfOOIb<zpP2y%(U`gw)C2T@nF>pg-6IMD$J_?)VJ!hngWC! zjAflZCum6YNJY`q!&v;I?UK~MCu*F>IUchtFEFR03@Clev9UGsQCxZhv>0t}KQBV! z3uEYeLR*)s3vxT7;5HpGktJ(Um!g9v2*0J>v|BtLZJTf=Si!Dc2kuX>4dC~<n{@wh zMHfMse?+?|(reMM^YRB@(~!9VKQtoYHX+}{QYTI>+IqL6S!}Vl8yCS#>^;d<Jz~&~ zF?ZsndWigaZ?Dt(cmabwh{c5*mHpuG3WpDVyDB1VqSnnybJTOVRojmkg0$}@fsliE z<&oOgtCk<fxyuCyxa10>e5af!_N}~;Q6Abv!0%(0Vt#Eh%_=?GLffj5SZY<B7zZuH z7-JDB+|8oodq!_sqjA4v-_Qf7O{X!{s)}&ixooeaV}VNGfAHm@oQ0I9q=LfY6Q4de zlJ<5MY?3h}&sG6}eogA7gE)#%{n`Z?!#~A_qfvGl{hO&_dtG|4bN6`em$gn#JGU;+ z(7Dz`2664!n8j!T7HDfo`mW#Zk4_KBBgF&F;ejTX*zJyVGd*g&ux%S={61lz90bHf z%sE~a+fFUYkdQuBGv?rQ79~z5SM|~Z!S#t068Gp=CRoXFg&%>j_d@D6XX{ltO()>N z?QH>Po9Mf}`eL@BxEJY$d%iED>)qk#@^+Q2z7>yhr-fBI@Jv<~j{ZR0#u1=Je|DKa zZEKIh63Zs)zN3}YT>s~Kefh3D>rBoq&0bVAAB~m$BB9fwK8B+OJr}Uw-IKV+u^l2A za;*nSte1lbTR$-?RD9aq#S4E5pa|_fYcMjSZV`03sdiUx06CiPv;3X6<qYGZs@wd6 zP3wY%1=^ca9l^!eBgLEm56i^DTaUIYW%Mn47UVe31+Xc9EUO$BJrR}3KuomCk%3o; z%M;l$t7xdCW#`94FD&KF<{Y%IfI86_)I508+ca0mXJ}NEFSb?Ml_z5wcaWW~^P_bW zPG6rN;&6O_c5tjQuv`2ekRs}#sd^Gq>HqdbP=~)F{nM{>8cs~A{*Gkdv`kSdxHxB$ zO{w&cSQH;9;E=om%u4lO@i0;0B}?@*%I-SSiIiOB+&cK==9!!|2ki6cCfFmOi$4uo z{8<j7;}6O~fJbUOFa9|$$9!$mOMclZ&z|Gor`PW_f8g(4zUH5aRNSqRH9mUMEz8Ck zy-gQ;0CVv4(OCQ4U5lKIE#x?{I-;Q(2sHbIhCD}H9sOIdho=L)Rs*#h71uq;Szp3+ zI%Tkm2?VlD3q9TLg9r-q==OfO-rc_-npM_#9+}u#Xfyne|N5mHq40_=3Ti*-InmHK znmr$IloVEF!jWQ5-#hhhs54ov+I73WU83P!Rjz2Ew><HR-8fWx)tuKLrrlC@V)(u1 z3bGd*@jrB<G0Cs0tRJ~t3|tFxBVSy(O+cpqD#Z)mQm)8iY#!d7M-&FVZnOr|0e=%7 zm!sElo}gF5!2hwt{AP44ll5XK{Gb136}8^;lD!}nSIRT=!zkhci>uQQ?<dZQg=am& zHWEJTgAJdh71cP{ov<7#LQjSd&{U8U;56X!>}g&8%@PJG=}?WCrv`WQ{*NsC12CO+ z6~f!oRVFL|eoK}?15njm<SO@+Mui-=D)!h=*uuAuUcw7KaJ^noJ;U%8aV~udLSd=c z*S(9oQ?T^tb(HlO&bm#YMAi~t<o@o{;WKT92mv1a-EqX+uy^uA2{vq=#om+DsyAyD zn~W8dSk7=yeQ5biQ_6bD`<8psH^$wyO99$D&cZ%7PM{g~jd}D68pNz`uJCg)%CduS zb5)6`yydY@Osdi^hp`z6J&d!jJ?E)Sn@4OQ3~JZqoOR}a{fTB#+a)=3dwaoZKK#E) znw!?%CLgJ}MLGSFyi{(vGse1Kx9t^Ds8tzT(}-Zoz?669C{H)mR)VRT*^$ZFA|BgW z&)ATIQ;yzPoxOc*%m}-J9Y&e=W)<I-EeGGcAms_DZHEN6c)$^{@RgH@n8SsbU@5jN z0WzK99qmgEuYxx0cOP0{+)H0ylch|9X=mY13T%^*S#IL-y1+{QQMsxL&p-h`%P+_d z6Heszyl^{wz!t!RQLISyhB354CU~TAk3}ZWnJ2khx~?6C-aVu5zs<``X*=g6XAaPj zO!U8fUfOWEZ}f>h5itkq0REcI(cErn1s<|WbRT7O{PQ@S4}W;rjJWQ|@?dQPDHU`# zO&jd6T~^K5UVABY)wE<?k#fJLWwzI}mg8x=3JvwX1sBU>ieBK+sLn1OFu|kNT?f+z zxZjmL+`V>ALPyT~#{^P<3fb;G5$SuJ|NA(ur9m2qx@N}2L<vE?=60ktV4FOLg4kg4 zfykmY@Ati@Acq-KOkKs*(DUjGfXFT4hc35o&V}xySG2V%jxy-EAq(K&{077u#~>Pt z3A+wI6DwjBtXsGGN*mTX`PRNP%Flz5a+EnvV6$oOJ&@NH@;ZX7Ey3|Wj5%GRulOaV zg&}Vb^doUPS8jb>J({tH2y{vs0`ef|)Li12lw4UTk!z|yywCqdQ>-GqVaiW)rqO*$ zcbEp;SKH4y1}qWp)SWs6ay&|SwJ=YstL(G$Q}(%8m|GrhnxgMcM_hU<lhy{r_s6lY zhEMp=OFQ4amh)Ne6@?<UQHX#e2i*p%h$ElzCt_%s79=0=xhGXD*Yw=|C}EU$d1}z% zI^l2i5L1;HNg)@Hh;(*0qPvTt6S-y~B0$fd7&qW2Nm>ORM+n{yM!V{xM%_G9aJV%| zl1Cn2us<(a=0?l<rV2SGD5E{T7?e|3Y1i6+9lQK{KpVG`1A(iux)S4LVeIbd6mID2 z$mt8~qW95Xgg@Wdt#*Slaj@I<FN|9ZV#hARh<rD?XzhmpUD`wCzO{5AjS*-R-f3JA zte~q+qEUVBisd$*oD||u`xpL`S-j2}w{HL9TEja1k={+pqTAH#5*hRcUn>eSaHTs= zyIBE)EmzY^9j&bD*7c%XhiDV*eLGe!I5+koDF}rbBTxbP7hbKu3_bXW3sD_d^BdgG zVGK{`-RuEl3RQkv98Ml<XBg&)fE;Lz-H5iuw>XZ>Kkp13Vvd2o1bs@YF#K+HOPeP~ z^t`?Hh%P%g66bS=;bbN*jSUR@VDhh{<9m=5P(?dN2t!T95eQ9Gg|K_kVvzZ|fvqZw zUYu3y>xx6m1A=I{-nlTdlI&<F$qaC*4oBe;1CYB{AhK?x0-!AGQWku?&7<H@qLkul z?-!3p&I#M2f`7)LlBLd5LI$lW7vU2B#sB(Cl7&_9<|;d+#np}HGskCIEMG-y$3eZ} zoNE`u5iaA+IsG>R0ZKyG9R5KD9(0Aw4m|flDa>*}Hey$<3mhbE?Bb^xzYE|3tI|9k zqW5Mqoo{B9d?e;rvKWSzcuCMX8PbfUkh+uiP4C*vfd#J1TkU{)-z#=-hzM_q6xi+i z^WmTvkki9%@dv$IWh(d(_OhFn%St^%is8_usOrd|(AnWfM)>$~m$DIlReZ^j1`;($ zKjU{SKjrthPT@^V-T>>FiF$!#vPa=6m|i40)oy-L!L%JuYru*=PX?+pMh$&4hYTT^ z5`uX<TNt*O*nWNcYBo#;H}Hdt!r`EIGQg4(iPGUoP?S)r^S}X}eLtT8yL<H#1Gi#= z-QsW6sx7!GrL-t;CLJ2xf+UZ55XiQqBmz^k#EBy%XC&F0a?eqi3sOv$)2q$0=nsL3 zJ?aN{ZeSN$M`XdtDO(Q{;ECIgsg4Tgr=T<1qz{j|9;F*^<h8@>5&du8FF+d`ldoCb zd?y>ts(tXCFHHi2w;w3}tqZiT^Kf|mC>nwWu;^lGGH{p>9nOW!^QIeZ{gsPCgLu)r zE>X`qmjZ=N1llbr7LR53d1iBq59`|W4%%XzqCWKB93i@HkBVFP->+L(0E%~X8RunV zycY}1&vI4;JCZ$Gl}MTm2ImOda`IdDQMlE(>Pg!(MPmjfTDhP*KZp;AUYT8e2;Fk- zh*(U1;}mo@8J!1eR#qB3z%>x<yz|b1WC7mm9+;Qh-?ZChcfysn^3dy#djj?}$HszM zUnz|3W%AERhe;wzx^Iv{x(9cXIu3H{*llp@<s!QcWSV??utdJTwz?wnou}EU>>*6z zcFh%yN4r5%YYq|2o}VDfD%k`RsjejCh_&1D|KK~y5KRdDTIOd8#gl(Sd2@RG|D`)j zhL+Wv`Tu{fIoyV+d#^gm_~8GQcOAk~2;qNG1^FZLG{R%BI7x*RQn-$VY1wdvbb!VW z!+0XMF6Q4Z!<+CC-AV*PSL%=K<O7si6&|^xllh)=P1C==X;)*%k>B~VCfL)dQ`wy5 zs)>p*6l;<swz6C$!aC+6^Z)+e<Q-YJMN`2W3O}n_rxolqKyzc0Rw~4n&xLU&$;wne ziBT2VL)!LHT|B2VvFvhJtpxuTSg4Vz%6!7CFAt2-aP~$Q+gzrzxQj?eB2%g#JhOv{ zPP93-CX?)G<MHYMMrbwazohGJInbOMMl~vIswuea^!T9Z{8>Iqh2N{{Hj{71>Dzl7 z(p51@4AOR}`hDGQx@t)J`m<_PMrOUx{%6BK90ELpK^CD-t#8VD-W8h$_Qb57;)z9} zs9wE1{lmY!=Ol^?>=9KPvsHP45pGHnr;7jF)YGfES8S}|Ecry&5Ero#&f8n{^WTq) zJ6Ivi!Z0Mi3H@-AB#ywmfk2pWmbT~c*JZU?)o`#)@r=c;Fb}QH;apLE!7@PMneUyU zu``^zFox+B=X`A1HRrJfP-+ZFgDt`;RjSA#*4uHoHn~%zkRCDdR72b|JI?1I!!38~ z>LD9Ws)<K$Fi*)mEy*f>mp>&U?^w4})J2O2@ZE&NklnhU;qDhvY}-6<8|3V-t7bE- zEV;3<k)=#@8K-GUc;Cb!ShG+x!b7}>12h>b`$tVulVAxEUwwXFPd9Uuzoy62Q#|;| zx{nT5A1sWliIY!g`{!{UjHSIR@+k4;ADL9L7{KW5+v0?y`ig(VwCgmFjspI=_aNl7 zE~cvu4s5|-y$}WVyuLy4PVC!%cc3G<@-I@CP*zI6{a~rT)LOU!)?;OgsrVPE$Q67_ ziNk{fOg2$YuP$i+AE9Fy2BOu<w!s-tTD97fkwJrYvzB+wmf{C~tX3f9ULQFl1i*JW zt=Ay7Ob)(0##Aw|r;mzqzPv1l^6liy(XmI)yedCduMk7e=51rc2#9wSNmz`;kMbIL zq2I*SwPm{L2v#U#pJpy37-`U$RfUiF!}zw-RM$UI*J$F+xr~Qu6eEc)|BKPF(PJ_< z+&L*I3TU7}aTid*lep@*7*x&7faxbMpOYl2oe&t4u^n1n{dK<nx2#|PN!aJ=F+N$H zDCEfst`~yc$i|=pviJeu>5O}7uU}NtD`Wan{j~!sA8HVEcR)5oYR+j3^2~HSWaa`m zlTU+j&hj1qlL|wl9#FCJc;UyGWL@3&Bc_|UL1h4Zc@SyZWU8n^BbKv=+ERQcw%i!7 zhmM0^<3}}ia`bowY<dL*G^D20%ILL-6!b<h(QZ{7N-g;bATs4yd+=G@^@AHy*E{Gh z>KqJt>jx2hT>QZ!L|sJ4#hcw`KMjThXgETzp1}zJ96rH6Pw~(9RQewOJf+f4_~#v! z-r=90o(%5drzC{^^$NIIweE%(8Io{lkGFit$Ns2PPCw_PKaQNUFO^I&MDd|sm4)P_ zBInwtqDynrK207w@HY8=#GVO#b;u=mWZbiMsCF)&&6KmAV%8pMelVigq}L?{3NoMI zhL83;h*okQky>9BhZI*34NcvP6_G(|8qAklazjQ{sInC95=WAH_vG=&up-vPVcpaE zy?3Q!i-%9_V0JraV5jx&;rpQ7Q8R|^GbLBtJaRFgD16;N9gaTTo&NIv{eHsyyJ^`( zt^kQGlLwynDUT85s3f4&#ojW{bF4q!sEAkAB;T~|RI|s7<WQkgPkwuk5$7DXti~(y z<KJciL5ilii*wx3y^ZnhJ!jCjJ`~XugZDYA>2w^s;Lg>X>CR3p!N}Uq%|2-EQOcSf z)TiPfH~_--?nyLBFHqt>r0vb2VM!5*f3GTzbIJ+-H0694W#XOc?d^9fv^Cgs-RAch z{v-1mG2ya}FF;8=j6w)6u16Qson&(dB^^wS;=GKx$`PN_i4%~AyTgFpw(A9hXG{d; zVXi}lmOTfJDc383F|QMdq+|8$auihfd&FM$u*OJ{ceLu6XeBlBKT4{3f&)<_v0K=A zeQ9n$%`p6(AFZ&uf=m$n_Z?dy-RY5dNPR`&)3mC3M=H26@uINrOm=ZKv!q5GO$E<q z_2liS_KZ(SI=R(nkmutXR^V_RAms5RN@2CGI4l@w2=<VE+daG!_XQIb24k?hfg=JH z---LH8J4dbdW*l1oxJPKoRM3cXg{@$c-aoo9qpPJ1^na7?u@Qpi5W^Jq>^#*uLnUU zq+KUi{T8lubG+KoGXYgLk`gL$K)~&MBzfdl99ZhQ1|CQ{9Quu-R9R38q)G8^h4~TJ zt%E@>p(O*Lc4ZMlS^!>JPT5&w(yK<pFC7Gs4eJ><l0@B5{~Yy8V{FD8Lk*K!!!Osq zTa<9a=+-*M$QUn~K$+``X4t|VtKxKyfCs2LW!;3D2Tc#kS8O&B8BpRZDP;w1_Qr~P zz*e|xd|PPro)13k{8(~QkpD0_dI6XD{lT&Of}vLz7;uGur;%v5eb!7f%aFLm-eJTO zM0#)w<biQ@3y~*Pd3&OVg*6gSWN!`cT&WzAV5$yqbcu3}98UIZc!~hw#6w75Ph+Pm zy&!R<lsGJvO;{lz+v24k`><AA19q;*ITm05sDNN2PgC*8wx<ycP52m2z#)~U?eaF% zk<QadGactsX}0*t%-NSixPk^ZPNV<WRwhWz_7Pdm#VC4$L6UOrMlx#hII;~J72clC zz7Q77kS|8aVUSI%y`*Z{h4)BcU5kvu1Tx<ezKp8(u0VzE(f^06LEp4p{Gd!E<y~|@ zeSz~1fxQsNc<AWUjn2QHIXn@qfekM$v7gkJ<gVj4O~^`UmzIM}cG!ce6TQ-_N=ypv zGER(4pN*YOJ`zNJ!(;1Tx##^B(3^hy%0-($<q&4Xu&_RP07f8h7id*iNIW?CNzFUF zpq3$mD#>-$-J^E>jf*old{Ygar}X-P@o`8MQqJDWWFjh#Z-asIo~Ahk3boPe=n|tt zVri0nQO(QSs4jLC5Rqp}xZ=!{YU>2a|GDQsK~kiQw6_-4mAEDPb(`NAC=-;CUB);d z^XD=O51mORceC{ih{>9`nlE$Ug28??o=l2fGaV4Yh0N%I#lam}%C`9TH_P4KQ0r;& zJ9<yk;VDV#P=OJ{s4>#cNj7RCd>O@=yZh#*{#Hq4Z9FU-ClX4k&-uG3(S&*MoEQ+` z$Ouz82%SBLMZ+M``lYJ3(y(p-6OA_;iCt3FR$JGxL;8+k_jbab>@k!JwH>RQQFJnm ztWMWG=dqWR_M}3aW`{YnobNVMyntMnw|tAJ%IT#8!PS6|kW-~()!KxNU95@b_hAWf zH{?sib-S6*9GJ7JD6g;Z8a}3%2YwN*=xV!MwWPZ}+u&uSTcaA7d!S)^5P1E?_i)ZI z-xP3v!M$|`yO&F=n`*j2$s6X-!fM1hyl@#jO4K>dozW`^Y@8%)Hr#kZwi*36>`=&& zp)#py_$YuY+<cBNc~Ub+BEY(HBSTIIXAwR8`141`Yr;juosV?09ez3Dr;b<6y8WrH zu5EZ0w~rhdN*9O@`s)R+t*aNk!9?sTKcFOuuHDtjA$Anylh5s6H$C@Owrz6hSUzzh z&iAewMK3<b=1Gj6F99bMt1fzYGa)gChM-RPz@cn{`a@vi939mT(U>LpH#|d|BNK`> zAwR{}%=1eC{5ff<h$SZ~5~!0FA|A8a6xus+0)yW0(e}+K&bf9sGVg*U&`#}c1<~$| zqO-W|M<xzzafw=$vx-q$oZW^x55y=G62U!#3Lj0>u)Z4c86i^kG=j=phits1dJgiX zgmvXAup6h=HaN2113ajZUiAnIPV4viA-Sz@#>F`rM@dQk<m2ag;N*d+Wen34%_V^u zvQ$W?WdwJ3ca$*pKqX`)#Z0u@koVE~q+BlNw?m9fHpbkN<eJls6kWni2B_hdvvTb0 z?L|F~B4({xhE(Fvnde&ORQAh*dNeqD;h(DM5T_%x2B8$g$U$H0+gIJo2FAKVE9W7- zbs3(s;})X7fqLJQx~EW#5gkK!RKf%H;oG?`7T%GK7G8PV^RSLVOFhClvh#K^tIkVA zIoul0>x+$0fukR&r{V)kUEHjngn;Io>IlO((@zvRMa53PDY_$kmUdDrguXs19_u0( z-uXyh;3y>cEBemQC<2;q5=X`F`S(?I`?_2veUY2npQ_tV4~zK4s-B|hSEqqyQX!hL zv<-lI`H_Yaz-bo}Q=M$RIo7Z#=Ofe<k?GPObLFd!ZsH8*s5l(UqL;JpoB3@tJZ3n0 za4~zc-?+!;Xas0KB%-tZ%uL0WeS^oYdthmsujiXp_{BniZeWfLGYzMZA>*o0L>FG5 z7+1CgfX@0tRfX$9`=VN+oz?FTJgtbeR_Gp=`aF#I3m1crI5Isu?>_?uRQ+6?{i$9{ zGRLO;SYMPNicIi;e|ABEH!<Vm>-MakSHJ9ItkeFg$6vSyP&@%^w(;A4T~3oWAj7SJ z11)@$Yl_sl|8w1JtINCkPfdH>&|U=231?=5v3pSNhQD9Gdi~Ok0xJ|I{<kaobceeB zMfEyUMHPP{mTCC|km_rWEAEemhN5NYgcQWEGkk>xfCz0Qg3$oi2ClQcbx)}3vFASB zDgJ&hN}}U0gsrDz1U%?5F6heEEvu;;qo3$0{`H>h*Q#j_A{-;_{9`h04NOIR!D7x9 zKql1#dY^NBO)kss`|IWhIT{#-I}f;}8W<MHA>h>pTYB05kJDeSf7yG#`^&!jWA|n; zcbQ5}UvjAAXE_|;*<4TQsMrS(&g5>(0K(fiF3=Huzf)uPPGQgtc7@d9^}owuU1HU1 zjQg<l8ujcmN0{rG4b?vOl^5sb6!z7v&=8|}LSz+Yx#MbC9f26^!dVL7Srv<aOyEM@ z3<qyoj=7I^r5-3+l)AX1zy#47n9NBj)X}`G*@0vdtQym$Ny7FIu*p8P9vFeoJsZj3 zBaG$HJg>X8+wY06#}9MeTHTku+_XTci4dp-CMw8_KA5u@fl184k&$ljL+|ilFaOHn zxvgY|=r`j7hWTkh2i0OMvX9~#@9%o2@P&`GAmW@QPE+2)WM8^EDW}Ds4h2eLbc_){ z+i^_W#iGQQWHSm?%CPvJ^$d@3-{TZhgijX}6I?6K8tSbJrW_0HImYmzqyeb(yAuJf zp3lFdS{AsvIJ$7R3#53L4vYOaIOeVXz!y=vr=n^lO37^>E-SK<;O6w~5mHGzo2io% z7YufU71Jbf1lfgIvteK*Z<Eo&^uxf>e1#J_O2GM-FGd-s$IBs&C_l!?NCMI3x^~`) z$&$^(3ZZ0`S$ZrU`bw)RTM3IprHl4OJEcdcJSoY5fq)L221~bmiDvc>BEby7`S7_G zEMoEg5oPe18>0vIc9DUoD4MP2EL5W^Vf#Wwnb5-7(9+%DP22p8J{H<do5P!smBDcT zm$&=D`PWWHK#}z%n&Cb<(J*mGa5-BThEFzSqn`9<txSx`ZA<gxG6R>B9->j3B=xgx zUVs?f+bY-Shw|dyjyR#8ZF6r&aU;BVen&1Q*+$=TSDcX5w)!)Bv-C8}wxTqE59m#D zy2dRZ&|}gP)9~HjBPWHmt?uv5wwjTWwGWvte`p4s(y*^T*D~91%k)f-$xye=Q1@sX zvU23vW}RcKI_)2pyA*1+@#}V#oDsRklnc!^MW3(-_3M+Lh4vWu=3RM~JrAr4&k(a~ zdH)>&0Pva)4(>`6HJ`;sz579qd738`W^$5}(y>C5TM`42c%@u?d{RXhcZph$T)-z& zN>Jh$l;J<e7Xwq~6kpO(2~oKkI>iO|(NxzItfiSb<yjVe`L$>Uu`iWhaz<pzy>0L7 z_Tpk*egCmqU9akOj`pG&qMr>yDJ%4>Nb1X2DCVD&v$CtFUP>L{&P4Z?z-DnWwCzGM z|Ag`%mt4q)43;1_4`uX==QM!REquTqQ2X0<QH8>A=;Jp&Px!0+Ev2Ck|4aIKL2O_^ zip;qg>DTz|f!?g@qnjOUGA#8w4$IzR`sO|V#qp3ZnRT_oPcflj+gAh#zedY6aCfl% z{o+kaZ_5$~uERHH)H0!g(H?o%RkLulz<5}X)&*Z)P!+{6M4K}yer&EtZKWF&UA<V& zZ;Se(0sb|cge6~2Ux?b;FZ=WLYQFajhwSeuI1?&<At)1R*_Z!sEJyh@;474)$m(nU zdni%eg~fOBEH-#HU+=kP*X7j2(-6zCVThh0+y~W9AZd5>_;!k}{psQc5t@10be~i+ zPt2;rnAVbR4Vjvb>GNA!2cQUF@(q?CX_$Wg=t|#!$Qmtz|Mml>D7D|d;pHH{6@B`% z`b0FKx;qV90gp95xc8wPPfBTn+L-m_s@+@wpB)gF@#HUbxF|D(xR~YW5K41o2*o)n zbj6+sp&+F}D9jQXl;`LShmeq2Oe$fixs!-m>{<iF9wNg}IU-|#{q&_bb5BJ><68(3 zMqud>3Q{tJ!age0pBxd=>O#Lg6qxy{i4Z>LXb_4YK!T@2gLpIp;dQrz_m&(_{o@xY zz{@Gz+)_e4N|>l3Xa*c{)o(KACbNn3oTc&~;xm;>-{enKkFN{|`?`ngJ<CxXvDbc{ z_EUTiE2g2o@zA1!Bc1xU$tfIW^P-Pf?`5lh!VgXp=1bqvL2QKKftQuEz5kzR5r-c` z{1c^-C;$J9LSASGKI^vx`3R+?E7Tp$+xBX+guX=INN=nF0^O>XE=;={K-6lu(BUQ* zB+P|@<Hy7dn@D+isub{<%wZ_HbI0NrmNnXBr^4lg!mX4lO1(5S-^@V5KIGv{REZgs zt{8>FHwMR8`TMgEa6qU8bS}v61kGGDEOJ^LoVL`Uc(z)Vx9<l@Komi-ZkM+<5%<AR z@1A5t<XV#eKds;A(HuFcsCnOcqI5(<p;;NUE6M@2Gjw!f$g=KUx3l`Zu2x8z)kk`q z4G#egXD|V3#}NJ9Y4ulB?{huaXi$z9jlsxTRdA~l-iQNynervDp=|;26I%o$8t_1^ z4j(nT=#ckpRh3$SkD5CWd`oXJZC*@$nf&1|Lc!+91@>@&xZpT}F>!C=<eKLyyFy1< zN#&EYZh-A-`=@p9Af@|&-TrJ1RDQNu<3pmWI~e(ld{O5LoDhU%EO@-*laHM;c~Oa_ z4RlHA54;T!aYa|1-p)O-V;Dd<w_AGb0lvTwaTMK}ZaJH?MZGQ-)%voX6|+`FvtFam zr;aSSTD;}jA?AkZbW9oJp#m^^oJ3@-saUsZHjyzPeK{nUydi8yRnC3yx#q$4%I2D` zX51_?D`X^V1M&QrRLA#Keh@e_CS_Il#jj~+Vv6{Nao%s8=$rinnT(7oBA8z`%C12{ z?F#_ike`CDmd1d-3w!_AsnM8>>4tqmOA&nm0?%<16-~@_c<jvFeA{)~)AWnn%ID_C zY0oI4-cS$eXU=Ku;%JXjAPMRRhWPV4wD21%afN#DZuvEIEY#C)bm#1Eeq3{q7uOxf zEk_e3eA_4gUU3J0d4n;|Q5{lEOAIGR&*KcGYk|qsa8ikLZ_C`KCYwAJEIQ`^qYe%6 zwG!jz;1C<U2i>#$#KQ{73{CM+d)LsB>KwV;DdeS$hTIkOSab|3`f%D9X%4?QY{D9n zh%=J<@V{tM0g~D9^u1s6#)07)88e5*&+^V5zkW*Eh3NQ;*atx)wmgLYd+cVT@e``T zbt@_vx@JdSmWhU<T5E^6V`ZTkQsIE;UX=^>4>`NVNPqz7QODlhD?=D8NWP^8Ll*hR z&S=ujf~bjOtZ*7)aS;>)U@2R1tRenGeR28GPaIg3eE!u<QTHDtTz|2wT5UxTVm|sI zJw4I=JNZ<!%iVpg(UaU&URKpre{F#;ntBJoKS4B<PAbC|iQl;Ho@B<FNatI++ugO= z^QzRHN}M9|;Bi@;Y#)CrL`c{beFLP36zE*aAE<`0QqUF90gdCPpt%^*y8l7>CXToO z|2EyXS1|V7T{pDjkke13u`ubM(XV#<%pHw-aPm!Da;X>~Nz>7%=q?iIiy_5mr*M(k z1%E*2`=`HjzibW;%7gb}Q@3r2;F_bb@)^U#<a_U0`_zu|Z?c<nJBQlp=a>k;?#it} zxFjo-NI6Gg+~{escWB2!<;UhWXO<l8+{}Y}qucMneZY;I-<Y%8m@<O#TeZgbSn;&6 z;aJfFCs{Fm9%M07$iZ}xWgN6+i5Aw)m`njTs4kh7U4`!}4aOq;m`@8Rt?X_M0#G>q z0oF{C$@%!d20VqeT7i`J9R^%~4j+e<lX1OL{t)yGN}$v<M`7LRlZ<JkXuze8pO}E& z9wN^;I8coOUGJW_IYzGadK2W+iE932FFh`>l%`$I^5X}|E>?anR(|C6<O#fW<W%qU z;C(W5p9)#=QA6<4&1z-eVn?~tNDW%kFCR=_q*jpnu!Z^SpH@eBU$S-1eQ4wZmsu2p z69~yuB8K+Z4Vfb*g%q+}?h`yNd{##sdKf`QDu7if&F&Gedkqn-iP-j%U!8+7T)wU1 zZS_sTu~m?$Bamz^V7OX+BP=cM9Rr!d`qVdLpZ(RbR}68gcRz*z11jOmUq*TWTyny0 z(ve8X&XydS$__Ft&yzv|2CEel)yr4>&yo7HCjq$pxQxYF>maLK;T8xbIOqZ4MqFLz zX)Tb<Sfe$vYuqf4vbWd>EVE(7jB|kf)|*Es9}epKWz~d$h5QSLiD8xPYPs5+RtmFV zczmK@gzM<B;}#-dQ2BJ}O{Et$Sn&G_O1B*fB@SO6ptl0_xaRoIyEG#s6t-?QLm{Cp zqYu^eymRyxPn5{1f0}{VHT^%$%}}_G8t7O4FP>h(ma>MF>h48V&hpgMkLb*>9PZ`2 zC#w!P-rGv=`J1>4#|cl08~K~#x<~IfU$^ZQe%9GB^xBf_98eK{ik*|gGJ<xnKAXo1 zEH)IrhqH!dbkVT*Lo%pe!yVPNib?oWmf!<E)V?9^G|I6jBVcDw=!X%^(}WKGPWBS` z3+yVrA$ju5V%+z@f7Uh|xW>$ZCYC)PYV0n@Xk^3Pi{po}7lY63`$GaR+&O2*_)eoR zv=hh*gQ@smqKV8NmbuhBfnrCJugJ~g&TtM2DY*UWAIAjJ_a`G}&^T%9&lqpHP?pGY zytJWOIB`RKgmlQe-1b*1@P$%J;)8O*?}yz)vNm6~bBRn?ID0M3u`CI;YfAaav9<w# z4`PDqpt?D45eXGXhD2*E)Ylme6vvmM)ZARjFg0m+;sC&!o^oZJ$a}44VjK97#f?fY zU0RnzRmcc)B&(B(yD~4Ox&oE9+ZFL+@TxONb;5XvJ;Wk85ua~K5xgT_{2d1uysTFB z8V6%sm3YeSs`i;q$#sKZfUx6nh>4w04}&$y;~)N&=_)PmRiMUPc!9;0jV@pxco$a~ zKw3$C=$J@lE>^L+qDf$X8q>USh{w<w;TL*cjrdN1*MO@iMlykLAMvc3QHXg4D?#tD z9E<2XpIp#ECaavzIOX1o8?yrGNeD#!XExEn_@8wJ|58#FCjYCdLWl0c5IODB8Uq5r zP$cJunE6Dk9~u2$`JpG)ArWF^Jr&uy40r8cmE7%jK#1K872Nz;ca38k9{6)6>@M7R zRuf30alUI|yNxmcJ&U&~_j;hmd)kz{9qgg;{Z@uNqV%zthbpO|9JSK@rx{*M{fuf7 z3QwZY*dafgBBRgSEl%5zr)#2B76*n}H0Igj9-(B0e+}hcB+y`3ApxLRA{pXA&)bB= zu^}HLI7)XN-P@znp)Z!SoNGY!Z&428n73<+J|EM(qjw;77Fat&@mV<zu^bC>f!@Pc zVel#aXK0WCKbQzPTH;lea8K?zLtrQ;CcDHE(m#?k9M@D#k8l}dFb#O^Golbj%!HiV zp@|DBM}_`X1ov0>pZ+YYRzM%S0XlX|RWor0{XBRgqYNdgHvIw4ootQW7y%3)kBvN- zDs&b=0*&D;jzsui(qh-*wvXTfkJ?qK#q&JYfA&2|P(mg~MVXeQZXZBYw-H&z%-}XY zp+|)-V{9Bp=w*WDv%D`>DUZ%dP=YQ^IPHd`ll%iWgyi7>YKt!*21_5frw=KXKE!Pt zVYnU<K_Bwj1*ndolPL+Y#HDg=Ar72LV^9>Tb)n!`b(#CHYu6?_4#nn^YQ8(e`*YQ{ z?Lq$UE-7*GVtIk%7PfvqX+gou!jAjIMdI_&F_U=Ue(g!G9wW)0fm$i*k(xBfo_FW< z4NBcFo0;|?YcVfg#7q)-tYwiKt41t?>GmoP1NnJdBi<OOiEq0qB`AAY<Vtu4SVSj5 zZojnAc1ienOB*C1csCTeq1%kWdhPv?!pfu!Ijb6wl_3M}uJ_Hgk8A(>CCJ=*j0&^R zWzHDF9ZItqj@i6X>jSx$*uB!gaah-xWxIjjs`AXn(qFrFwGQ@Z<+wQWk4nSRt7;F> z{e5_*eji63gLog>P^#nNqW)Ml*1Cjp)Okr!MHc1b&OsnWfXh#SoTaQWswt+gYf91` zoUh6Yise>_trp3d&)>dvAn1->Nt$J^cF-u-p@k!x7AJJdQy7YY#uUa=W@srXnv7J* z@7F#yuZ?sp;XS9D6&mo<edqK5w(oLPeZ-Pv&DWCRcfiqp&_?KNUN%?XkwjyE8!Ibs zTCl@2npExF9uYce2?1KSAV>|ldKwU!s&CHVbLK)OeaMre{L*jzMWL&(QIOQJJW3w4 z059;@-r;+kJZljY|B<hc-y<vMK?Nuwa}Rw;Uzc~LA==}RLFv>=q>He_cuZg2BBA|7 zSkgHBu>jnqxKBJZTZVn;1`aH~gfd+mTLOWm@6)4-GuPug{btEINl2Yncg3onVPemA z)6H*-c`GUJ-0TD5i>Jkx2L}g{xvm;&&nnZpnu_+QDQsq)RB-2ExQq492`k+{g(7*Q zh>)zCZ(X0B)xrDgC2%}KR43+?=qFkQUeRe~Fo!U90g9Q!pkYTviRWD>XSc-6W~&<6 zoU_M-qFeGro!3{@{MIE@u?kV<f~Y{m$jmi5&8%uzH<yORCye)oPuwL^Xu#H!;>+;< zq%;;!io=5-QR?ujfo*?Nq2U4!LwGeY0Xhpy;pN_la8mr(Rp*;IeZBOdR4L+WxrQk; zm^TJ(F_-9Tf<P%~73+zI9ddVUI_1ECz>g*WFB&0Zx6gW6b!=<2wrZjAHnx4Uj#;AG z0#C#~t(QwafNgyiBaJSvpE`~lV;E>8N7G$4bR2(X%MV{e3`K@XzyPnnJ_>v;L^ag# zC_p3qV;?s1R!`v=?K6G~>cVhz9tRryVb#tyQ_>n0lq}ty^F%E!y%9DgGiV>Q*8@Ol zhODb_yGE}K_$)D{5qVm}K8zT4RlO_EC_~A!NacFDUd%=5>XMjI%ulo`)2Do}{#}-h ze!56*%=sjSFbRrOFM8s#INMwxQ(w_*3R!e>l7Y30&iLx3IJbA0xoJj-K?}srbmvo~ z)s=Il3AyV?t|$g07b|GM7Kj7UstVKBH$jJkC;^635PP#P49P*@$*fP&7ou&~=v8AS zSJh3+C9!VA{Y(1A+Glm1q}dZ})8Gw2qjrM56U~m}n=(oLGv}mara=N-Mu|n$(+T2# zZXCPG9F*=bxnHNK;n(Q6UUath;6p*gk!B&W(({aNjkE=Z&>~HQ_<-4rv6B(0<IA%N zR_mJ`e5O>^@poPt9O|x3ZgpR_LnlqpUc;XG%Jb+6?nLH!Cxb__8^^_?!BhAla~c<e zC;M3Msm}aNxD1e_Zo<I5hT2H~<$V6GiVr9IxM(k<^k_$_NNF1F3-WkG#uU^TT-_&b zq_1QRF-qAH4(nY@50%3_Lz2?W8@NBD2GhkJMV=(58+o-F?iaiJz;g!$epTqvw`_+F z;5|GEcX<uxD>6*vLJmMkkQtr^<<G=EKK4x|8_ok195D<JCPSyJw+W}<OAO^+9miR2 z#|1l@tTGIW^C+Ns2<D{&gnLM<@G^zVvsX;54jx;b6lPn{%%SBtw@R6Z%8c2nFf^a} z*D>;er}yrnIEfSDH9mm8D2%EZnxv{XriDB<(_<t29o=aaft9n5=yyY})5DDRR!>-@ zF9+~RVOG@!JD2~4!$laQG<-kuN*A$RTttRsnMaO=SeqJMU}pn{y8m`}rKkKeM3Eve zH=VEIVY?jHubT6^sn@sJBTDO@XoS7Wab<K#HAR^Z=*V^8O!ow9ZvNX;zC>?ks-ETG zvt#&j&vT7Xf+ZlK1x6h0r1+MudzLX<Vv8k*%~Dw!!64^oGu1On=kr01Z7H?bw|CtM zCxc@X)*dOwRi#MB)$FZjFVVf<th;`vh}Qi>oOh{+K@ZLEuk2?G5=^OP2Y5a+seBO2 zjCeT2k}7h@AZ&i61;K+c7mAG>CypMQ&Jy84PA@cn#J1vV?c^+mtAHL0N5i62bIkv7 z4FK9NB@{Zl_U<lb?$L`7I4ynsyw^q&3_i3#UxR_YO{3XY^W!qBj<yy*vHgJ(3;NGC zZ)9ZHjE%dXz9TzG-+a6afO0l<K7lJ|(E{t$@jL%n`w?{?k<Tc-Xa>XVuHCFKLkV0< z{HBQq?++^H_jz#abAiW)G#zYm+a}O-O6!e>Uo&Eob6717Vj+h~njZ>rn9TPH4AWpR z{u~DeqPigq8>Z3G*bfV&g~%LFXq|g<a}5@hv54bGe3&0G?wIU&57dDA#zVc>*7>S# zSkcZRS`iz-7v&n$7q2!`*aQ-~4Q&89`*2tN=ca1d2#R!T)|#&>&!1mznk#ySx3+w& ziQ~6(Id1#5N^U=JXKsnSVc$VM8VS|LePK-R92TUtJmgb7E(+L)4G6<`vK4dl%ovPK zv7EDx^qL3j$#}z7_K;VtN=|0$vl;c+?P0Zw{)PS0^hIY;>5;<_%tO1L@Se-msL<l@ zIuY&{JJxdpF^kj(S?=UBmF-i#pKoyB@ipN%OK4ePRAd}NT*R^4`Mg|qRb(mBMI<8- zB&`q?jf+!DdmulHpLytcWP9Ua4&PSMlT;}VM4cnx=+p>wY4M)SP^CSZxIrTDFf=o& z`*)P3nr*ws&2U|<-lVkJE;B@`iL+e0e#*6dV{MmeJ}{eX*dTwX1&4?g$cdNCbfy?x zVihDzHs+N=d~=aM85Z3R**E>baFkvi<l1iygycQ1U2V0=sJmVKH1TW#ty#mu!xy{u zP>@@NFh7|B{-d~RhH>@rTXF>nSp1bNjr#u;tSrodJbAP9%7`|rxy@XH>Nq~9RsoL0 zzqxfW_&0P&6x#hQz2L5b?-WQ34ME!jf`(HWj>m5u!Wn$bI14Ff%n&{>wogEat{QRT z0DZ3)I*Ay6L-~TDphU=u?tTKrQi2hy$=jsC&Ji5TS&25XRNIA!lI4(+2HpKF=F?vM z<<%}Qz4_xWb7z!Jtr_;QaByL5@z=1+Psyq?l0*_{jw}v(WCZJxd++JdE5dK(88L<C zCut6q+;I{;WJH|obGiRL(vcugA90z3?H_R*I&Nu(`jGST*Dc0Bnu(kwT!b4v2y+1x zH{xx9UgzPbQ$OL`eyqX}t;Yjvy97w}d``-1-As5#2GSmE-!X3CoJs@(M#CPIXWFnG zrIYkcL@_ox3b=iS)%oR5*c&HOIT*XfNhc0ycE|I7k#d1=*|%raTO9YWM}g3522u2I zLmvmiLEi2|7SS!z*5N_?v`DJADw@=+jm?1kA}^{0gSyBsGOV#)Viuby7?~`t7Qxcx zW&M8e!25)k%&)5{zH^E(0<HyyJc|xoR6%6AP=mC3cc>m#c40JLstukHSas}XVf`{( zw5Q})`((j6kwt(^g8b#H1Y&lTQetL1<W~|m(Y;1`boo(_0pKWtA64;-DB#>?=uG4| zOPy|D3T^VYr&q7bPif;RQlYCD29)j>b!o_WK*_a1&K0~^_)p@5Lp6?n&E4aF^aRL? zk)(sm3zB)(<f;VpE!DHlV6&#c~_g{l`dd88386m4R6+aQ=APmU%i$L@J+b6_Sp( zVx0keHrgA9bq3%XI1RHR{ibiO$^^^LLE_Na2*>OxtQ}6g8pQ3V-WVMrA&IIFcx)9H za5+3W6L!QS(N7Sn$)4r1W0&fL*Crr>Zg-9iZ`mmp_kOEn9YT|J!bwB_3Dq?%-*2Pp zxuwjkMbl>S|IEozGFNXq#_<I`k&9P~It@Q#-uJVJ46z0kK*IGAZI@(@mZ8(g&q5LG zB@*mZy+1XK(4PGeJ!Uw!sq7Bjrt<K$?$vsTdQop1#Kiov$Z8WE8s?V~t<Xg0m&X|@ zfJ3cL2!X*qlcX~dL!uke|0E&&U0kc58Y1?ESli7LT>Pr_xrD&;ZrtrK?BeY8Q1^1D z;#0yQO8HVHI{704(LEA7*N)#A(1><X&MNV7S+{V|TvjWFLI%1}XTE4VWloFXPuckI ztiHIYR+NE|;xccVdTrk)zU4u95t|Kn>O~a@go<V@QS#|~36FswU5QYifXc;Anax~= z?U3e|t>xhpo#69Xbk*e!f=#sXDUbo~q9FW&ZDcpzG9TNW`oB~zD%^P`SuJ60PFi(J zM@p!odznc$^v_;Ejoz+Y=V|f#g9EbF!48suAT$nA-Jb@N*D(Dfg@q&hpF5?}5AS6N zT1;^zydmuUcJ6I1pnFwimwyms+)GrrrwgS<fS|`sM<``#eb9j8@mgL0HCl2hKd_se z2lYe^yT>sLcb%Hso}bPkZpEjxCHMAfYb)Sqw`n>IF+YUAG4{R|`~1kf@OdC}1mFrY zx{XF*c38UtHfa>>sC{h8{xz00vl#h*I=kBDws9Q%y}v^7%w6qmV#juxruAla+BBWb zY;(=j-Fun3w<lXlqDGaxlAV|7<i8&t0DO~`Y3}kNCPfk?K@tQ=0<i53#<Kx0ifrqe z4RO?R6SrQssf>_)hk}6CH#>%GJX<zUY&&HpBLDXM8V}`LlQ{d7$gR2-)|;r#@{|qB zgNmhpAg<T`_d+L+iy9ZVaS^fGg6J}?qnOL7Mf!jwQfsCw<Kn>QW4HKAALV+H3-f50 zCIlp(^H{QPD}W0HPEtQI-GEz$$qhf1s%m^OdnL~rJV``le^=}M_I2`oSS6YW|LE}r zKVfgy*+@pE%@Sd)3p_^3->m0zep}+3X>QcYRkiea(%Py?!_c$j!PPtmCe73kEawY9 zZIo!#X+eA6CXMl;^+o$`*L&ul_T?L>E}^PgsJZq@0|E2(YPE@NR`atmkj6dqN-ilI z{S^-+H0$u;Oe33V{BWi{n`z{;Bd_zkyottDvV(^bcf@2R;5ArxvC1ec>qZ@WXT+Sq zjCR5g?`c(;YywRA8R#CE1t*{S%|(E@vCU9@-c+H9MWD2A+kj`ZHrA&#{NbiJQ&;0% z1`;ej56mxK!OzI~C3+QU$VbDmQU|_SCpZ_x(NsJk`q9aGlw`F!q=2HCs6u3`r+IFw zj0KGCBXe-;LIA-U2v{@)-!MlnelFC@0r5`8A5gXJRqIb8wRnpXprhRM_o${2n|W<M zE?P5p8`b%$Qp)3a4KN1CyrbE|IWu?+;Cn~N8_#+%_;5h+s}6u?@5#_&1txK<y_<~q z#GAgP8`!3&tWV5s>UIbbc(uq)@+$eCJ1Wo0egxF(<c1A>nL*aMNl0tnrg?mqCe|=@ zmYCZ}z|qu@#jXQ0ao=jfG%KQ~arKGzO_Gzk3aY2fI|HR+CYd(-Z`duJ7tyo0Zn(AA zFW-%?r8Zl<oksqS5Aq^iT;VKdz=7FdmVAG4Kgh)3cM)G_M0%;*x=yRt7d)C;Fhef~ zr_+<;XqF5flmCx=_0pF4Jlr|>GMhi5;7vNeVkZ`Zf28x@vej(xh(e3Ys$?EzaKxcU z6}nQ@s=;qi$NE8$C+b~ig=v#i@x>0!vYmv8mqNq0*G2NS;(c=C)<ne3inU{Zf-==l z(G{&4yjKgLMfG|KzZ%fFIyv6oIoOV9--u2OkVU!96F4KqwwE!1hjWhTE>-O^)(m3g zxB2c8%Tm|W!lYcRzwtSJm6Gsg9GyI+)Tbd0@1TJf5M4WH6^hfE=db9k`N%Z9+p|** zV)!%#GT@ST@<f$AV?5v6Nd%EMmn=vdf4{KQWPO^57gbuHv}dSwzgaaa2#&QE5Ow`6 zi(fiE(5;SvYF^B)QtN7|b6%FSVjfqjvL(;2CD~KNs)&Y*NoBuhmG<qPUBpNykD%)( z`;3@=hn=cA<uQ#T=g)$530LvF-cS<6+gO~(<4A!uciFt8ul?BAxtzMA0iVL&V#B_G zdDdyqe+|)>r>(|-H_@!cWq0uT-_9dIK%o@`P!SaLufp$JPHeXI=u?Ck7}pPutW-7J zb2pHQf*`B%6{@^7l~)?wBKnKd<TTyDM)vGk;WxoQXAC6(Xfv)?`fj|N=E2TRQKQE? z4b+pG3Bgj)jS%joo4`F|b%xV<hcV^5#uE1K%Yse#p$eX~VDHXLFonjHpG>1OIm9O% zWra=_;)`mU@M&>)XgDHmQmqM5mv|^FHDZT~h*)gu(V{FX;vQ+4gvU|T+7DclvO)sE zUuyG`cSLN(<qdHeZ_TQsggZxRZe`T(<Ol8>-cWiJXm5IMcLd@DXL=mzoV{a=Xi=9m z+_r7owr$(C?c26(+qP}owr$(p?|tS=zM1(u`}{lE$xcqPPIlF*s`dE|JLjVLx@_W) zK6zcP<C(`75nm|ssH;|TdQ7{MhHP1588<;yO;$pqRE&lU*3ax!@Nk~3K;l!FfqAv& z@3g1!gqD;jPiukdUeGC#1It(Ab>pJ)MnkD`vYFVT(*e^BWYWGC-^U*kski&D-AmK7 z$#S19=(z^FOIo=Cky-)TW9qDZ{MCV&#SS*?oE8$W&K0f1EI?OsYFsYQx-dM_&f!Y# zf&)*{En+bB87v5mcKw>o)Dvmv_;1Vr>h?DFzS<da+_EQ3t)2>)QT=xF+m1j;2HK2b zuHqw~QJG?yJI`>ixDG=ZhUy8&%oQu(HtWZAzD?W}*FF1JD{0WoF2{b5&De_Z2^8i^ zT0<^%g9ZRI7^S^0W_C8Rcp_P$zisa$A(JhnC6ICM>4A}Tu9of-*O0Ks%k`K=vC8@d znxo=8RYuuLB(QBHgKg3x-eSuMQSDz+d(~&%2LBXD0VWd2hmf_Jaj5Irkl63a<#% z3kT~`Icl)`W|aq@w15(cJRk*~VGrU+1sD5NuuoRg_idCTr>@fB+8Iiy62O-c8A&Sh zM-@79PSQA&Nn7nzv&vV#x=Cz|0)I*AK|aIA7xX?PkEaiPv#YGE3MXPd=D+D0dwEEC zCLhu?94*=%CHtDX4}#p0QT!t$w<$Z7P882b9-x_zy(bY3;1*4Dggo@$d6{_GL}1dH zP;yu21+mi8&c~LtT*@{c#Tu;cB#xPT@6^rg^${4XJc&*=%0fKoNUR3S`j4Q$N5ODk z*5-%BGSghyC?c*wndv2Fp9~iFmYidt%Pf3xRWP0AJT4vE4AJW#pyD)C4PPuZ2F-ub zqiYZ&EYCWsGkkQ`dek)j`p+ogN~#xP*JI$PR%GWOOeks}v;+6Htu%lCAnWq{DBC!! z6SuByjO9s(yT!HB)3u%Wx&|E!`|IDiVen%k)Z;!9Y~^9v&<97Q$(x(boU96WowfNc zk_T6qCwUY5hi`OiI>ASQO;Mp%^lxu*Q3L0`mjdW99H#@r!RG{Z^Pm!%czvQH3ZYyN zx_Gi|;36^41c@GbqON|hrKC=cbh;fVR-;F!GkVRs)0xb)m}$2`)&G^2qOtB;@ch0Q z#x<>t(&&IlySOzE_^uQ$*b|qq(0FE;^jDU+BOhapK|a#PLLKaPr2<NHl(r4vxsO%* zwri-aFA*C0U8U6)Kgzm?cntSdcf{UES0~^kIMNZlb)>jw*w5Jkp>;>RtZYK7SZfTS zaj31rN==##p*+w&6-*%`l}65Rz)4mVxRa%Mg9to|rU6Y(Ly7=ePqQCTg(=)<&?V=# zkGLuDgi-?op^k@0Sh%1Ugq|{8!4{1Vsk^ar%=+<t)|3t1D;}W*E4Z)g*#it~J*{HA zMT81^aYVL_w%R1O3J<26$c9>zvm<NZS%0w+)OTtJg5SLgNx8r#vrE3;!+NqYZ*M3v zWvx!YMdahr_ssNV=)&Xx4;M+=hi~}8)w5q-+*m2_dF-xx_nu-oK3+W!$F=yE-+MQ# zja&UsrKHMCM5(U(fIGx`gK!`OpfMD=YUCSz(kRe~mHoh!&ex;<3{9loWK_%Q2Hs>e z{}|mKBbj}#&XJqurBtN~NEd!f{6M6xDpn-Co8uC-m1EJqm?t!Im(HAj>!u4Fz10N< zH?NVv&NEBllx$L{?MmQz+|EP3UNw$e5HF^b*dk>7Ru)Em5d!X(m=Z?i)e?Zv6o5q# zIdOqb;QY5(5b#BJIQIc@k(o7H%H<5#zrAiJog=N2h*kr9PSy?rn)4_?OC%r^Kh^9H zc1lBSa%O@C>m03(tkf_+QITuM&BaqNOn~TRDDdQf_Me5nL9N6Z%n~}0v{tH=&$rbi zo^>~F?Y~!qNoF|aMjBnQ)-Ph@k`cvaWox!v@v!CNqZ3X0X=@}p9Jqhqu(5ejhU`a~ z&DH4$%R6_9TRM{#jX4!?X&yO-CgUf!*Kbw5z?toR)EWIyU1JF+m3o1p`U3PYuYwi7 zNJscboS|U9ZH9a!W$txA63|gNwN%fx5CHT}pVpzMZtNi}%o%+D_078|Q0XsUj}M?6 z1q!~C0uK@Mt)WMa>0A<idPQvHjqNSH2!67)Q<_)U#i;*~)`DUJ;sK!!S`_;WNAVpX zVu`-Y6NPk*J<oq=%c7(H5fCMxer#E33G3YXOQKuQdg{*&_!Ekfzc21^6ljc%<J4z6 zus_h7ii1b6A1`ci>&7hwudoQ`)Fblvi6c}33|BDw3(yt)IS0XbV9pFjbchZ|c&H3@ z9Vbrz!W-ST6hT8jXxLBAjf8{Ey`-ERCfg8qHVy+oG`Ee>ygI7fzrwPE>nS{t5`zPk zb+nLmMi!2<-TIl=SJOA6tcUFitxo{ckI*-l`%Ke3H;=c$?H{4s@j%RGZbZ;Ko0i5n z0lj_zSpGSOd1d(Igj@?eVHVI&l5foS<sKSm5yq#oH>9Xt6egTL3)^?^v1fg%JJy?V zeO{7)L>0C@fh_q+uOJN$k;m_<_2>rxV6g!Rpdbwlf&u{X?{S6q5diofOA-J9z|P*p zRNvO##MQ>sncmpm&D6=tnf`yhG<9}xva~g%H*|J3b@|U86H{ADCntL+dMiUWLuX?r zO9vM^D`!;=7y$PvPUV?$C;1mZ6o49RUFS`<2i`uQlV>BQ1XA)I@_QBeiwR*a*-cDx zclgAc&_aSJM$rq2$;OMjzFoRrz`(|<3UegnexpA3hPOM{j^ezgN~)^;#M;I{ztC8Q zx700iS1r>`GK~1;T8XS`n!#oowe@R%o21IpWmap^qkB}sS4q)EBgv=}>jYL4A&xVJ z*Abu#ZCx}8U;`Nz;j1`(z<CRi-emXY@t@*lYR2<eycg4!YQsb$GNDe9mWgdX8#ryK zFO}wXRZ!32lk~k`U?ui29ISwTlxD}NQsNhQe>Afx#zc?>|F0_-y86eBbD1CtHH%5w zn#9s-kZ79&p0}O=y8%W28G*;)Oj>agPjgtIKpWKPi7-IOmrI(m2X5<?gQOGImmiqC zDJ374WkH_+!6cqj+K2>Y|5|GR4HcFS<XwYCGHN#!7U)iNed)|aF*o+h$|GPT!f`lT z6wE%N*b2LBJ^{n$@%6ucMhdK$xy6#JM*e@WAEhK+M_h51^3g!)uyCN25ygS>5RolY zuAC+kY%H%ZABbtgm4fysQ?}Cr;w2NfzLA8L8D$G?7Z4!Zk}S}=cvfq42ZZe_y8NX5 z7GvZQ2oMCp7ltSp+%1PFQVA26`=HTkS0O+4EI!=a?oXa~$$!7juP#1)h6z-gi!Vv2 z2Ri{j?dOq`zyeKBA;*lb4T%R4ie?{XQ+N|b1gs0_&wxdIlaBSFwaO+^>6THnXh<=S zv|)&0mlphGkC)P?k{E{ZFis&t*Px2Rvt=PF8I>9mYr+9?2oN7WSUHi`hye>p1+*H@ zmT4qBvZ)n8n>70gwUxnvlp^3PFRfvjlQIPkM9f9+8%+`xGg(MUhG)#wP4-5UZTi<6 zX~*62j<_*KJ?PwF#{vhEP}@w}LM%mPCs8TUcP%!Sgbl577Z`L1+eS+_0@~`=Bc}%i zi~SssB-U(<Ig`xKM;mFf)>u#5GE0u~2z_uCu~R`JaETq4EYNYX;ve_2eSYOUh&kYk zH9;Kf<e~nu%YsS)@+9;}M#L51$(k>&e>LQUG+7|bjW+H3u-I5^GZ<t6U4VPx!UX0` z0nE^W<VzyQ;)!V%e@n-GVdEl0(kDeN<M<!YVTRw&1gZf>xxJ9)Yr$PWFluATbdj*1 z$?c!<Hyvl)L4gGCE};6zo{w>gy?<G?`e5tE<c@`@Ll*VJQ3&G>Wc3?dlT_&jEe4fQ z_G)1|CRRrHnG~T5KkK%BEBVo+77Q9qr8!{%YP-LkGJ2)2QGF23P4VhxKE)Q(n9#am zGJox{ZQ`8d`@-x#4sjkCX~bmG^l*dJGt@&&LOpbRF;6`XQ;Ue&pAVs#mS+^{ci$ow z7U7SC_5eIlNTZShr}BU!Nq1IJ&Ff%rs(i~mwC$0G7HXIlhJOv+hPI-76W%AU(Iajc z97{~!n)83T*9yZj<5z)_<2D03sV9E|T?#7p!L^|>E#mMk;}c>9&}!fb;Y2dLO4L*S z@VkpZax$eB&PUw7Oh(kDXWRIUql5p@rUJ(Psg5@KW`LbYfvPd~X^PNd-(eLbIr+Vo z>cJWpRZG3tAq_fBYa%ura}*0L;#7@jpn1QV6_x}~aq8Fsl{>2XVYN%bK|}G;NuxgB zpi=9M%BQW9YO;`sn29Yd3n2+!zP1ZwNKbOvSu=E#+DTrX#<y`No06vCX?lX@K(`yj zd(Q=BQ&%{?ND*yGfv><b1YAagjBC^GV*5TmQU3r)QNnw;Ce}5gOuA(o5m@4r%-t3; z)?WAoEM8HqsLXa%gFmJ*Q1Kh}N;Wncf%n58ZWIaB7o$fSn4$WLl*Ot_+}BU(oHVpK zA4~>(=!G=zxb)C;OcIiU80mzJq)v=+;#}K^M_B$d*A2x>OfSgz3$!_W#Ao*XI=w(N zG?5P;pASsoGx$(`O^0kl{4*6}B2)}pHJvQENcE;PqMGSM>%Xgm9b(r}#Q{W7QUGSR zf^xYBdL>1O+vJrh3;CynRb@bOdw!V?yuO%WYA?9jFiIsraIw4E9krc+LH5?tl^{Rb zXWUdCKQtP1LS@=J-WoNj+CE9eeVY5t3V>Gzi7trgBx9c4ePo}j;?FMnpYShSu<6`@ zNjbK97B2O+S$IOXGYfMml@9|NfXIVZO<}39TiXs;LdQ$yBx)c*;D=R<7Dn>Ug2qsE zOff<jT4=2i)KjsfAd}=$<?UXA+Y^cyxn2=QliJ(p{H5{-re$N`hqp|ObHH;h#QYA_ zaTJy%k(@!HYju}cWopz{(TXix8pf7svvXiFMlna49)DBd^@FRbhU7mj4Y;hXxNbzO zLmG8<?iQ&V3g$4x{IcVuU%l<&?TfH&U0%3UXO?W}m}^_*X&O=xR1!|<Hf`^ON7)q} z2`w>;hIY1a_RQh+R4$1yPPD+{qw%wrM7^E}*62(_5Oea$mU{7xxe{6pxJF2rS_lK9 zNV)j9(Yozyd<STg#KVa3F&zCccoN->%I7>5xM2X+P@<Gk4KhS6mCNN`GLA5KM$|<U zp5vIc!iTdE+ME{+;P#vMzz{}h()8SPG5g<)qg?Y&12(#-f?9|f6FMCW5b^5*ewXp9 zlPP}mu8H&~uAS_W5PVk2NKUE<B>-p_+4vpY4E2y?uG<nIX%P8L-H2X3OJy#}pPY>3 z=*TL?U6kx&s#-BXZE9>(gx;~b=&r15$NkYnM8gd(22#*fD6&}&c?2=Jx&Z)#GeI0} z>?Fxdk}yt&h7$@on-j9cVMbixz@XEQO`tY~3zAsY5K^D);8qze7_REg{U=IZTyTbd z(Hh}{t6c#q@J!qYl`ON9C`yNXgK=0+*I<fgg$DT<yr7Q<l+)yf-d96^i6TLdlDmu- z5Bsh4p~du}HS!y=mo9QtU$jOPaG6ENWeCNIZ2%=;gF<_Ve1-3p;L%@2Kr6k<!!$(# zaT;Lta{Kx5(L9eGJL@n)|EbwRmGI=#(EVtH@sZPZ2Q_RmbtEqi2_9zD(pc#NjgyA2 z7aW%{F53<<_RQny^o}5kFM)uKAzLrmQX9F<UMa_9ach$NMuO!=nO^R1QbPkasEpvq z<K})k+gWPmyN*~Mdn*j{5Q$L<_*_M`bb&6?RX#3S$0U7|N`13u64>w>{5S1s<xhpl zn_PM3sGyDyu<@9IK3*uFa+<9>5{hJRFUW7nO7E+4M4R3X_#(Th>(`Gd5^p!Tl1b|d zHB8)1cSh7Rpxcs));HHTZ_&{YxI*T<O4a+uf4nfgTQ@&)4n6s}T`0rr`3x@{=bl3r zk^MHGiCQh5)8viQfZd;;I1)r(hKJi*oOI<0$<q$Rt>dW6z#5QQYotYncO_Z8B)S=N zv7_=W*>?*99ooOSEUT$Kl~pNArifcS862ud6Cxri@7T&1gm$!ch{1q9<?3uH?atT$ z(K#k9`8A!@`@1K}h25cNq;mX#+kPTfij7e~VKi68jN0x@UKV$rEVAziny)Kxc0Vav zlh>0zKppTMR|d-EV^N$UjnXVvU4!d&#Y_-?vTM>d%p)fB;I?887}s(?a4yAUgf#aV z>qF*HC1t#|dNQ;%U03pVLS_(m%a-*%Uv6fGhw)))dy?08Dpv~kjX%Zvn6vMR5$G+k zV`}B{5Ot3{JTyt|KewRzH@wQPXxebyC=G7Or+tH|No9U6L6WJrsojD<Aj{RNNJ`dP z@o0g(Rh@_8R+c$;fR6UdY`KKF<#8bs(sGR-XO(Z8ma1SKBg(;+WZSv@PhS>0?4lm4 z8=M6!9Kz<3=!l&RdCYL*rF|$OB(Zh}4{GWf-j%^ijXyc7F4)`mQ!jvr51#LTAWGGW z635()ohUz!C|~_|*%(!^KKPx0>GSN9JuP$*d4J(#G<Kcg&3M}$@#L8BJmd%E{jRlf zUs?aop!v`*J;UQ|Phx&KJjYjM3ApCmc($!ULbzhy^cXwgA?#-jFz?ENe2q74r)*z{ zuDY;|q*(`f@cbGU<L`3N^9+};n6*FdcPKOQo<6L&A=TPVNn=1g{e`Cvx8JR3^2%^9 z<CRs|=wzv>pRDXeyj4V1b8%V5C}sF4fTSlJc*fz+BBwow+~N7atJgN{rpir!n)d#( zn=~eGOf-E}$nGZnJ<Ddy3X8;UU2G1|$a?G*exajt8#I20;*a7Q%=j+c5vnS<w+-Y& zG@&;PN#vq8<R$5+AF5)^{p*V!X1icR__7#kuaiOlGj_!5Y3$+xe_oS4pP*2zPe51W zDM|-;$!%Y8W4w{Ox-Y`TJ5%uYUk(B+cm*2<f9n8sD!;amjPLflces2We<)xiZ{rWe z;1@Dv`WiF*t<^mxh{!60{k>sfw^(!ie!2%V@c0k>f1p*m=}*ZL3;;k1Bf$TFRt6#F z{|j1i{$HS#m9xDa)Bk`{CM)Xy1*Numtd%#%Q+MA{d6#O&<)Zy<$eN7VMx2n9*qf5# zft;E;)|8i1wKWK&d%X-a_WEu;UD~wh2|AQN4OJ;^G`Gv-^Ikc9ldn&)foeq+t4B9C zFP}GluaC}>^2|;*(LFP}pXi;i?wris-L2ittzTDRJAZX%4=50B|CU4}<^B0|A?d}# z!N>RE`X+<>{d~ONpP1O^c66cP^ZEMv3>$LqeRFc6fRh_(E21AeIJ+cw{MtY2dpbfc z@v6T=A7R?rQ!I<3Ko{gvC(<uA<w0jAO;tn+Nf^8}%%o&guj1&@tSr9Eil;wHnGT}S zLiLL;86b_$`xNX9Rt1REgE%E9M4M_8&+B_X7^--40Q%(O<@@q@`((dAUR;G|xOkHI z@^iU^1MA^Nxs8kCi%c3i{MVDq+w-}<k@)931M~T}|6|+T9Z9SKNwCzUz=?3gGkeyA z#^IJIN4GrRzlRJ|fkSFmv_Wn}2{p<kH%?T~<W3u92Z14DdPK^s<L~fr6oo|?Y^{k- zWx}{W2b03O#1Zuy&c?pS0>-y48T$b{!75~e^x3(o-XuqFKpEHo3o_HxQA`t)o*6C} z>0edE638pq`s8{@4+R<%!0y000k5?mB3<irRsq^Ce}#UNCdMOf2gSMR09gTM4TK}1 zmqExW5&<8G_uzYU%kqGem>Prv8da~h#5xuKw<Cutk>qJX08+SXQDC*;81#Bzjdqww zCgt`31(6VdeTg(hKzMPGI)&8`4ROaUXjnIxa6O=AR}dj3G@w!wrD}9U3G|zR09sKc zI&%WBo;@NxIs41d_&rV$%3yGA*=I3O1c3>I1!y`ob*fsz{$aGBZWuJ7lff($Jf>mq z)ai%iTy`G>_8N4VD+9o42!CWw2nvM!kW{_iS@pjHY7`BVe?2kdkrH1JJBDa<58z>G zE&Sg*6(Wk@tA)!qEi(Wf3*!~4tC(w*i`$i8QHX(^BX#)M-Vmw%hX5_`Z4jPu3j+I- z9Sw6=N?Mf=^l@1FXO!2h5(DQeX%Zcu_^qNvW>Cfn7Mq9Y{H2Dx1XNjCv<L(MTi?&6 z#KaJ*O<U(rUG;#{0@$cPdh&<^0Fpo_g;r(o--<8JRt+#Gt4-vp!v@lzU{rF;1WBN4 z;GVi#4P|)t6wuer##vDaxC>^lU;Vo}Q>Rp`#jv3EZ4l9J*V0e-Xk)!-p!7JV!5gUm z9+;K*^bD}4*kbjwg&wpjLtf=O#6QIhSbJk5>H#Se8EkS=LD<+5)}dI5Rh#I=YiEd` z5;*(O<DkJLg#RLRaU1D-aOZjewizc}xyp6g+ph%#xjfFP-XA|*e=^1PQD(q~-o1s~ zwE{TMW7X@LUx?3_fKGc8x`pj>qDJszz`aAt@cMo%^_7^WW_2*Qe&IrhOF}jdB=y-} zL;y`O)|LJYSucM3)yX~CTT0d<1Yc1FhEF`}uJAUAC2ZPQE5YJeqMm_OalZjDRZEN7 z4O3vA3Cjjm-j&z^jAJ!gG4nLyFl3Q}<Zxl_ViULxfvm)28<X|7v=7D5Hid?MSqNz` z{<U?7%2Hny)R~?6;8?2`?CmZX#}~2<Wo5032hi2wZk*>3*(Te3tJN7fqo$IPw8mCL z!~k0$e(#<{K61UtHzyq|g&ej4Lu-I)&xqnEJR_F6=rX7#oV;+QaHaan8DfGvQ+l8_ zF&Zz_tP^|!hQj!x@9ED{6~O$@@yeKjplAF@4k0Wal;GI24d$C$Qk9Z<yU($Kv2Zym z)wR>&_U~6tylVx=Pz)xm#?pv}!BO-Fq}{R>1I{)Fv08gsOvNsO!3NrfT1PSE$4N#j zA`7`sgAX*(c&mOa4?6{zF>>a|SVLo)fUsj)ay^Fu&Al@@4PkQ$*u{YeakO6od|gC~ zS^`-&R$$RYnpS-zMr@smViW-f$IX($5;F7)&hBRj+Ob@E&w3s!pfd$h$S?vEVXPxY z7Ps*ifAvpE{Jm__fO+nN*nt~rnkEZ1q2r^Jz*tuv+$9(e4=W%*a8HwL3uosxi!<9; z7Kizx--Yd$v~;XQw>XL=fAbef21+=P-_8MkdrdrIH0+Nbza&B#d46(vi$NK*#*$Dr zqO`F(%Ap9fIfD~a_at-%2$Tp`K*YD)KY5c7M!pL3fGHd=gt|q|$I31K5y-&C#s<_R z%}{V*cq)`#SQe|<yc;DT{+^CZQ(Yl-3M@9(6$uVUd#;^7m?i6tOr5R-*90vZCdrIa z_Le`0KE4?yXjy=kYkOtp`}`RzY6+87IY2v57X}NcE1fyhgdliY?JZ$ma)kikS#}X{ zEAN$!%~kwr5+D<E$o-e<kBC<+4tSLjKnW&DWjkO___763C*^czbk@k&^AFqlsOo$N z&0>d}_4gf>{c<!B!1%w<yuh@!Z3Z-a$^5Wm_Ut$FXVlUQQVnC8rWD>e*$J1sIfl^x zpCJRZnuf!LpoO6&{$p?o+k+y;u5<81#kV_=0P?yW8L1ucgrT3<Y$uD|K6p&S+jkw3 zpt0e5%z&xS*Oh;3a4v26wBiS6l^^``FoHjWAO8ma_dd;5U$@GCN^9tb1Ozb&zC@g? zhH*5)i7C7loc?H?4uk5=gA-NTD6RJg`}e_WLqEMAI`nIrSYJMjH+}n`!IkfF)wluA zw5CCqyU%W@FO8eK%c7|_ZvFArq}Ai)YJVdqZ%h$@BW8F`IJd&~8JXPf`oeNZZy*yG zlSX*EgFg;L=8u5Ni9A9IT;$#}`CStgR1)Q^N_qdjKYjRoI8BuVc#v|ne`v;FC&bw= z)SCnw44*4aPK9T%Oorg#xjoPB&f1!vAD{~WJXk3|UJ&T1)m=xY-hIxVBAN8s7EZ*> zMD!2Z6MI1);rGlLeXL-@&@J*CoqE+<XbUj3Dlye`kL>9MK($PYXVxv*EBkA**5i}b zpiQpwpuL@o7*C)IF~1gh9^o`NH3Uk#L{V_SFcUqW|8_54ga+v;N1BT<iOn`>Z|eJC z>IfmXpeCm3v1=%ZL_b`+SWq50mjS66UWmvZEW?<6MY4T&r{jLQPk?_3g4X6>Ry3nl zFQ7ZD&%=niGmJn3m%!f;zez0-gfh+#>b=%(sUps}5dh6R4F5(kCp6{a$jGRvTibkv z-(dY1gG;2v>+hY>@6pkGCQvhfaJjS>Je1s4M&FWBd|FywEvdgH#AEX=X_J0J+y?c; z&IYR<PPR3UCW7gr@1GPA{T>SMqRt)+IISpNeQmMN4y2c3ksADJeIE^fm*Z4x@F+D} zPNFGsD`X0^`;0)XALDD;Srzgqx-K!a@LyJ0KnrC2%8xEmX=?;nY&>K=6v2b6uOniY z-}j%Pa2|@c0-%3-ch=Vn<J9k7({db?Zhn}&MgRQCP2Q^tqWyrlzn%J1mX+r6=oMzC zHzZpw^o1SzhU^o3w%z0Wx+QWPpi`i0VF+~M<rJf#a~qm;sW0^QU>*K8@%~Hbcj~0N z?Lefr9RxZYe}dL$EGPB}U~K^JEuuI3Ktv@)g|^(jFKdQ()Pwwn!HS3Sm2bf-@h14! z3*jNC{+ZwqT=Q{&%q;WHpo!IZka@2u@gu<)OPvg%p6Gp!2~^eGT?7qU!q5s=hqysp zN>XaKiNy_WSnQ1%u;M#hQazEVJ_Cl%`7SwX!&%B{CDN&1ClrbY14b)?N0$mLY^+}8 zJO&DXA7>!h2G<Y}MyZHN96hb8h0#Q>Jdtx>2X{?z9Wu?plJqpK>Q5@hXFFwdis^2r zYkcg#Kp?N;;$;q(jZ~-4;Z*cYi(WBn1M#i^M{08d*U)7JlDVVi+V@e8`Z_2pK*z8- z2(BxFaFK{{SRNLHH`x!>GnO^X53(bSt6n@fS%$C42Eo@OUX6$Bn1{F(wq;Z3PzR)X ziNlV`Xb)dDQ3&85sePW%N=i8Oc&3H&4QQD$Az+gRYJ^cFqM+(rRsB}*OCBtO)iAwh zxa;vBSATW+sQzMrRVy_xdI+E>iP0jkILa)?*N#&wZ2mBVMZE2eL#=4n1~q_tc`jky zYN!#6wl=vK#%4o@x!edhrV&G9bGak9)}Ja=a97)@93i_|MBJts)(bl`_zX#AZmFFO zuK8N)Q!r4>Wbz~dd$3SmM|g(6W2)fOMF|c}YbS2KMvSI_kP$*t;m0i<fwu^XWs)QE z^yG<L;m7rt28wfzx;{XVXtU+7?NbQ#BWxP1WKNV=WJIyUd_Sb-Nt{8=v4QgXIAlvF z!J<w-6R{wO#m13gMd~r{y>KPd-x!YJ#&sd<(TBw5@?gdoymr<=rvI|a)hIiftD_XP zu%kimN67OhFbpj^56-ACnM~#NqT@g<U8h5leF@qG7NU`Wgp}Hr<Y*!PB?`pi6MhX7 z$5>xg0-Celp2-jiEsrZLx`-rH_GuxCA1xF<g5I0gnoNr$m*ci@)$ra<A!r4O%gDke zp1;?sWJ+yu6~o(@F`{AL`v~LoetY!SkQZSc>s*Z+mKxD2+BIB*&xyGJvfHy&DM-C( z3~Wn;e}=bQ5a<4``5N_tXG(}HvMnzKRx!(u7gTt{dLFipvmgKy)9Q6E2=3{nb$|go zn8`TZKokm^_w_6i^O?B``{igTlnkDMXy!4;Yyl2tdW~Y{u7K##A6uUf^iqI6!2RhE zIgFz3FhWZxA^;v=feIirS17P93!<f~r*2})vfp$i2Vo1R07F7FS@gp30q44TS#D%u zoGYZ99tI$2WbN<jlABfE`lS`^g7aQn_UN&c`4YTDTT&^%lNfN@203@4bZzgL^&erd zsz~ujHEh$Wl8ISG-77_WhGq2^=g#2{9KW&Ih;6>ZD$;nC3sk@#Bu3)t!a|D!+ZpF8 zERVdU$n^hrPwHl_gPp*B$Yzsu+-C=A`JP^a>T;=HcitN(eKDu9_5RF)@S3|<G@Zv* zSB!X`*;xB0#YI(jnfp^)zfuH}xK55kyXQLb)}MS6NUNu=1x&ZeD1uI;4qp?Nw$G!6 z0*(W!L-YzhZi&DVkC2?m7%{vIT-9Pdw%xb#rvuy<<fdu8aUFvVxiT6$D!wj<UI(<) znRENQK-+0!Qlh$R*s#ZMD8Ag({<1|AZpQ_E=lG7$>*vp*Y}xnHIt<<*ubnWWz~aAQ z7Pjy4<l6FUuh+iny0ueQ2YdL<={eROZ9OXwy@s@(G^U$UJ6R%ajY)Q-J7C%DQf(Cf z^kwX9Ioxrz<Kd+dkV-h*D)u&K6hhc4Sisv<#`4s?$c`)tNT48k7z*j}<~!>%>{fgQ zYxO%wL&nn$t&4y94clC)OCxp;W&+x7pczbYee-u0CFTx0V!EBgEnLe@TmS}KC>jDf z7Gf>XR&%19;i~@Lpy6Xg^~=Bw)Sz^>SVr6i83ZZ$2yaWOpj%l$t1)yQ%~(qm+)$i? z+hN`mq!yLHr9U5eO~f7=Y0i7f+qWeU`*fqc3*<<+t@o7Hm1xFwYKb9)dK9t)_*jgU zhE-kI9>Kw#_re=K48+jQE%z*dXZIXK+}5+JO(t_HvswX3Wcp~k^}-&oXP4hJO9l^; zWxaIK;n*QO^`O00yQ~6H|5Vrse9R7j=Pb$;oZZwqD;dZBlZkd5EQ+e_Q0Jm6h%fY4 zWi^^zre|SBBJek&$k=>-liJLhevZ7?ST2L(@Ww&-+01HQWx-yvD7lu#ZJ-*A?-@R3 zou2E_w{=x<6}`j#3XqTP?qhp=5&H#zckmVLu${C6x%*y%jgPnV0I<8Nx^j*EReqcI zN*U?SF~Zsz9}saKqil{j7A<-ozA>adlx|}=y#dP0kQG_h=F0eYYXz?!;9HE3e175! zzh0VDzVvI?j<P20xJQxZw2urPKo=fYboXrI{IU#L-$`T2MWe_H`RO*uaD(zD23y1Y zW~|<(il|r&{JKMGh7scL8a^0U9)ezTIbw|8;xQ-W2YQx=o4)_sDqJ;(Of?M?IwvK- zt*9hhf|-tAm@@_KDM$a<zzSVNL;ogTNtSsBInAUc9{fZaQNFjygLSCPcq%cidH`zS z0fQD$7-mH_7?nscBhVL#;g(P2VhVIX;E<kgE#hn|pN7(dT3QsW1fAhb&Vj$mN{qC9 zSVdj#u}UE4u<b4ph8~F*oqx!gxpf}w0oy2eQcu_Jcb8l{An#kgLe20yXqbf>D5qZT znX3#QJoUs>5naPG#;hIfGdHDSv`N=XmXIXd6q8?*xi5v*ze`dUN@xS5tin~Q?qtY{ zP&Ql~vtw|U0DRY<<gMbM96-}?{}g&fwktNFI=PaJ8~QrhBwRFz*-qmMjRo{+tr-pt zQ{bW~8QMM3A_LWWb)?9+NsGLOv*ob)gH!?uZ@~~7T~sJaeMK%cLcN_uHjibc9cS-l z;_SC-kYkqi0fJRfz*SvN2XBNO=p8PgN#w_UG*mFQJx0!yta)?{#xgAYcG5t<ljK!< zezne9PnM|;e)JYuv?6uO&l}$#$*A@k+Pk-srU;CuL{z57_xK^|6@eBsAj>Q6%ZMDs z6lhRQJYCwv%D~j>FzJL;>L??-Cy3<?BMk~{2nT3(!Bcqz_nMjCuE1+p)4rQN8S;V< zGOOk?eWF2(!fs_+rAJY^>ROh|cjy0<<A?D$M*C;W`{Nj9cKl)Ke3;D;9QU^<pPE2c z{G;i6Y~AD^O5TxwIDhQ3aj$eSm9Oqu%asB9JZzeoFlpq4PO47dNipZv?whQ+Gr0Ul z;f`w~GzQdb&FZ4jfVO$Of)7rXX*_?N;l4`mh9+%q=dRA!wY`=<p|1op)ltWlo70nN zEqya-m#3D^Yetg!IkfX($0F+fdOxyx3p5jMx6>A20aTQ0-l(SBKN#eRZ+Hns3Ll30 ztqO=dD>qJzR7zoQ*hfnP3J)swr9AfV{O4i7*W9ND2jE9=;*6S|DsMNeI|RVN{v2SU z7@?61lFl(ZkLNCZFp&Y9Np6J@g@ql|UqaGQ9$7##Nz*2&Qspk}g?7M^2n-mr57-Mm z2Ssq6Eu+pQa}bM*k)??BzJZWtBy2>%TF_2>(<1IKQpeS*6Dmt~ToHCcdQgR8ZpfJE z6<v6?BGh|cK?1J!)7WwD7Hs$zDTMw?!o?egh7OOzi19oeEzyNPF50dg>eBvmBAM)b zv9=|dBF|OiswRohQ;T!$=ijsO3;kb|?8?Rh4k`dZp2+{CWCg?7{}(08^?#vcon1U_ zOzDiB|9^SQ#v1N_ak4FHo3V=w2)?)K8eKxrN=l@*jmb}t*U%C)zk6$P#`|7GW7{`@ zZ|+yavo$w?ASCcHSJT<|oaSV-0loS7)F!n^N%r8N<dVifKq>)tRW}>%o8okb%w?T) z^I@OGo;T{$@m#fc2~lZ4+df7I5teccACq!dWI{ti!F*J)qQP1;o9(8N>PaB9zq3%u zcIKLM(fC%n{{m>jMf(WbO&qV;{^tDIUClDhphl|#P6L&CsmiNTJ(PQsum4zbgwz^Z za4=kj9hKyW2UDIrCPb@da?BdOhW^2i8pn|+N*8vde-bVBRH&Ux^tTZ-us!lLQ4$Eg z!P_h5P!{Wd)D4a$D6nNP)cxSfF<+feN7k#bq;YdPxHiaMA836QB$7g4A#l)_wB|qp zl%tmsgg7^DMXYRECHg_(Nj}<<tS1xbfgq)rOhz8Ch=EzpF4UGf-zpW$v)ff+LY(59 zXm9Uw$J-wu;BhJun4w)=_Z?;xjfu|<mUP%c0tF7yi<C`_CQrb^&QKXwek(RC?YcM| zdw#F4hm6sex@vMgkwm-R*j}gWC^krS&Z2Rq+pIfXa?^i}hr<L`wrg6anX13t)H1_Z z6MSnI6r0I)mB9oIVFkD3)@by!P#jtmI5O#;-O-Z%3Jw*#*D6VFi|H>7>u8Q?CZKjE zzrjoN{PU5)q3G_*(g(MMm~Aesfl!I$AG5Xs^(k#%3@vjT!(ve5Iz@@CyAL}13-;$z z`wL2d-gjHR>1&b$o4p&uGgtm-ED#^2BUm!29k^jigOLXpZGQn837Od&|D%LWh+SVU zSouorD$Io`yv|RA4$9f&CXpRFsQZ<0B{_7e=~i2tjSe)cijkz9O@nM`7VVsS#jFam zR2l5#(6xWjHFygdR(1~Iz#+Q^J1^%HoU3*MN#uMOep*_0gI_`mRcV#6q9flv;IDhq z+Z3H?wf&F&e+r4OQDATZ2mn9_^8YI&sQ(g+;cET)S6KhOSpP4D<mqZj{~w9i`#*`; zMJT88e<Wi6txPLI_7wQ<0{{R-{;x;4IGLKdS(>`j+FIKEk4_3xm)(C=?F_HA^Cm~) z?jyCyO$t#g=Ekh<_D!Uj66R*d8(YLF+3c09rw^r6u!Iy!g+ekfo%Zi{=RFw2WUfuC zRh1GW=)r;o%SVXV<6f9K`SV3BWn(vPbm`CD@&1A$!yD_wrI)>fp6t*-RwK^*>!qOZ zN^u9FB}9x86Gaqd#R>_oO=U7m5F2?AK7S6}PSe4CQ@5@9VNg)=R(zvg0$KNv-H>Gu zPx~ecc(-SI+tkB4tmTTRZVWj6P+w@+oF9h=Tc&NLCA2B=?+=+JnB~`HmODE7ektwb zU9%n-a?jpXsERGap{S{nDd0Z8T@(wkZSgMzJ+_b^<+v>k_(afjAH7-8R-gT&5iXkQ z!eE>Qv?(TimQ5tnNU436mnUOJk|p$QAuZ)9$mZ-|D`hIN)+;n+L0lxuEggUNt1hmO zMCOQ@=-8SaarOZV8B(JKR&8cy&1M&B#BG#|j_o9qzuvnrD0RKroGGtvybF&s08IJ) zCsoB?cGZR>)-qR3vMSbvNF)!Q3U*a)KA6;r+ozeSJ?Y$PdGcdOn(2c@v&LMukzkg> z-Q>Ownp6de&kVavu=$_XTssbm%fd;i2SfvJa1v#r_3)Q&Cr|QS1ilJZ%Q=*JCsB}< z7R(W1fqD8j6tqkI#72pN)L*WmZxQXQbCEpTHhNslxaUv}DXl>RWna{RY^6xpEr)R_ z5~sLx`&fOkVa;e$mxf1;SU8l3Kis@vqWQLgG$!_P7sr((w3ssiPG8{*S3kY19wL9{ zB17kE7$5Ft%GfNm=-Xf8y}Ivt?&7<<8^*j|^1FDB7V!jcVJ+EZSuL_)6Zp@ZsIDM< zUiZbt-(CmfcgkXj?{D$~NEcr52a`H1z$AM;?ok{>ltC3wG}>$p=DxV$OXU5q3A~q5 zb?laz<QyCFgJBhln*rVk@-KK&x*6{TK)NmL^+>W>{S=God3Fpo5Vo9imiyCuRZ-S_ zTS)HWRy?}tV;{wL_zUtXNoRJ)x8(`c1S4+%VAtt<Z|azZ@q7}4wv>4-H!C&;>YaCP zzrCP{yrQ22I}^8lNhqfznRKILcu&w!7>R#tpu3qe5Y+nqKy}1JZ&xr`qU-Ahsn`e# z)Yfr0>RK;aUv$P$J8={2&;4@-Srj7#Odt8?eD_cSTqc;vON^OYF08~57^((xdt-A1 z_ck<XoHia=D>O8k&V!iNL#Pe#low&Tv_-=g9Xq0?7Ef;QXx-d?zRK$8($*1I@}OMG z=ku$qmjn7194U8@^fgtm45$k)Q>^F!4{SuWLzZy@KoPM?K_cx4P-_lYZ;isk>p_2e zRzjtUU2YcUoN$3q|KZRHvHkAtC7qFM1fx6MmEWhg=64fj4>;BlY2HXw!B)Kn{&G?i z-j-JtR-LF#P1J0p+-!&_K=o&in^?ZcEHc5XE3YiwH-&RWxOU}<yV$Sai3$Lz|16Ka zbm#$$anT~P&L8a50=|}`L^L385%|>^`%wD|z=Hne!ymXH3b|97-`^X-1G+1<Oypi7 zy=i)*0!DaDD4qvE9qliGz}i|Os^p}u2&@}GauZY-ebpwQ6;nes?y!$C+s@sKEE=yO z()&VGJ5y$)M6^Z~7+&p!+9df*r-7t-I9;C9I(j|b@j&#}0|91q1MAen8f@hkjE<@7 zM;^(=Zx+=~WPA$$gO69qK&kyE%qmhHI~3hvrxVghVKZJSQ)=RJw<+@UvUx;s$Fplb z)3&hME`&Kk9t!b;MMU2&Qp54%PU5q}NDWSFSLEvRto^M0sqOqdBq-Juv-US7`O3H# zeKOvu%wu5n-5T9d0=WIk8@h7c$Ca2qwufC$|5iVR6~NR}*i0e#&mOu22L{8>Bz`@J zVgx8mi9V*3Cuf*)wD2p!v11hnC?kM&9cp$9iS+1o)IV=U6$7A!Ae$o9JCwAddhorZ z!M1;HB9`&}WH75{-Vhq%)piV?oSJ^v5Z;l)<j2<z_F@>c2L)+Z<YU6teYl0`Xvpus zWXz&J`oM(wNNa;e@@)C81wRf->P<wCXN@ZwV^(OjiD09(hDIOM_4-UeU2UVPx}jAw zSTBtOsWKFY-Xc%wv=#zs&R3oR{=U)m_QYL9H3}eU3#m~?k?qJkS7TiX3Mt88T?W{` zc=THu(H?ou`K$mB`+)cW614|rI;~gr>W_+Ut{&IarD#5Y1m)vB#Y^rPxhaw8$1wRs zxdheKV42lz4A4wep+h~23tiZB@;&<s#@L{A5HP_c;7|rDJ1oz%HqvV<Fzoh~l$yZU zKle9@u8^a_t3YuH-QUFZp#2ySa-k4rl>^cSL~HvNK+@fJ`ei1|C(25x;D*q;gY${E z99Zc2QV@^8c>^SZR%pI@-@Eqb&+tDKUjzIG9(Zs~RcWh(xdj^&sHr+rz0jfnTiIVq z>QaYTo87!+nJ^A+E2i$U`9y16Q3T3HfHI{-#hJU|fh|5BYt$6V1L(Fn0km-T8z(n@ zNVQmjxVcQ8QZt2=IizRQLLMnVKK)R@Ansh#H)GrbQc_%h^$M)$U^dbhUpETr0|OiS z<*#)m{hPF@eTh~^Y9}Hzm=#@U8x2?nU<VuZkd<Q=BgK|b9$lF_tfnrjjxV_W<n*1O zC}E)_GNzWJ(5+PMgWTWRM^V+-7Z6Hf(Nwb6G#MRHL}O~Ee{-W+Gm<uO;(NoUpAuVh zdEMZ^#2Db_bs9R#R{%%rlAJg;JPYa?c>wDuh`t@~7lg*y-&%B)c<-yQ3&6x+om-Q0 zfgD%(9&RyU5-;lzTfKDzfjH%WbRL;!$=DQPW|e!l9q}1Y|I%C-mVYVOuN)nOvgqn4 zp%8);<%9#d>Z>?R2lULG)0N49ZV&{r_>6RDHyD34+0=a_5^aKm(o<vH{<anU@y_s0 zZa%_cyYBlzak7SUf-;!OTWL#S4NAPc0ZXI#Hdp|*J_aZF37E0ou|0eDZLnL2LHfDA zQZKMg*$><*pw6XK52E?{TI8s41fHSnqX($akrei>P^O3}<4l`gXu3{~c;O6x;jCXM z_Db7|Z<85U&;ko!O;a-8M5GBN10~4O`}!^dsZ`P;29}^k=yzZzcj1dGh)`&1w;G}W z){uJ!d&;l?U)u$G`fO@TgGxeS?TsaawPzFSWB>8v`>k_NGcFBQL^Z^;NHvT}^i!?@ zb-(J&6VTKygo44UT!@~j1<Sd3s+CF|aRHIot|C?YL*`K_tb}9W{@S9|ka<s93#d$D zX@Bmq;#IhzmnA)sDOe$h1JuA8@;5|-1rWu^u(v##CvvwbF3p_3$lH*Rh1|y^HT`IT zHC?t_h(O;-!ZW22%r)}jt{Q(IQ-ea(##%Z#7TVz+#D7=UhXZ?#^i@C~eaP0ljv<lN zLAq*v{8RYJ<K^C^+AZ*bQE+`Z8~*FyjO#;OoQv!0F`f78c&?qtw0$;86M7A(N<Vsb zPO6^_p{haQsFl_0v+C@+uBT_h8MKIBvC<2LkJ9iA6n2~1_;NV$U9Vyl9Q^_}eTA4` zfeA`fA(>j6dzMJ}xj>}xMbN$MG)ZR4$Zuhufy_d&A4N?Ovl+Cix4@wzlSUC_HD9cp zt<-E`*J5$Qww=VC6|evlyHttRWuSt6O{;v5F5Le>Zmd-Zo03}`aZ9xtck%8OkxnP{ z@2aE1xGk4PPV$!@th8|0$V@4G^=tU$^eh3Vu&+M(MuQ<5L{m0Wux3neN|>m?pV{?> zAiW;+pr2*L`9<z}iCnqFbK+Bu`&eTCMHX>+zZqO4e|A?ps;;++0ps5nIc7IR$g}2R zUs$LHjAriZrT8B)?1zI^q#lJZs#a|b29xCF=##Z|BMu#%nYu#`aBgG_$IRvlhx9Q< z?_l-Gx3L&&%`=?47U&0226T+}&e&m;2Y!x_Z25xbg>YpJ1M_1C4Lw=|DCcaUi86*b z;}?j!d9IXRGEVU0&vP1(>9Rw+H@YSb4l_o4S``1NGC+!y-B@@ZJaj;tn791Hu!wfI z&`1I<`$msi9QKZz5=Qq5$z5VCKz|jam|TRt*bIIif3PuM?fwwXrqc^t7_d;<Q(A~% zr$EavGKG<>rSlweUU#b#Eu7$qAQ}Ih0OVv>+5q(|T2lmQ3s)KXc;EX&i&F6up}3M> z`hs0FN5W@qJEy<KL>Gjq6tsJJ%90=@;7jS<&Ukn}hWSuqr|93~ty7+^rm2DrMVxIh zGgtza5(&K`i5`aDm?9#eA-kyc{epj&c5fUX<=$K@N8$2RRN{_$_E{(^+JxFEnS@Ub zK+;@Ox@NIVJ8Q>;(^#a=0Q$}7!*<PbTupPcD4>-|tA@9Zx@M?GhQ28i>FC-5%ey*X zr0zj=mZ{l*ul#>8HudhA&@!?37nU{Fc=$k)I+_zuX5yMG{^Wrcm$wl>ycqEebxnGX zT&{UQf9mjOhfnfND;O6TTe(NND1(_9Vz4zs4>7R$ZRn2V%%%{lz>h~d25u{zKi-(r zRhE3RUJ6x%ey#&bp<E)Lih2aj<-RjE(}|+#90GCq=h-UnYGy{~dwtA4y<>$)L}dmk zoNXe@1rFvFqFBFjSBQ7%Q|EZDdMm_j*M(4BNej&$3{h~egwU5A!3=?7RJbqWQ-Qrd zEsP(;sgx|z!pue4<Y*03wy<(*-%b+B50k)k`_kPd|H~u^=53VDEGy8<a)Nvc5o|N~ zH0%cr_2X-SUk-LtQFrslyCR^u5i4Clx2{ETRqdvs;Nt33M70iAU{aM%@<zeB$S5Z3 zLj$&~T3CaIZV=k01}9CKq<L$wOR|!>Sod$RUb0!^o_XC-j#*_O<#Tvm2^Pa8j-*P? zBWpl&!Xh=?AZc?%V%kg%n<LAL{ug^6fa?v-(MhTFq$W?<>{1et>e&w$wY?vO=UxMa zxO&)3p&^}JidUyy-rB9NqSU<7TC4t6+1G|np2zRY>G^xISVoV(>%$RM!JYO&cE^CK zU^0d;fAw})foGHL5|}XKZ;bq=DF9UJJpJTgtQLK_U}+5ktUPt4fGe=506mQFEyNwb z%Lq3keJ|qjbwCjhh)cuZ-a)w;Xiuo3($0LSn^0QLxWLtVcQ^u9;@{U03>YMU49WwC z$z>qMbP2aNnn%>#u5m~|nRw=n7v7&wQ+j3zK)cUSez8fWc`r2|PQnc6t_xUYd+tfZ z+i2c5H|dP$B~xiqc&oh80weOd6sQLb3~-|^2{zYwaGH``{td;8Y2<<VJy<$52;soV zOYP4DZ5B{Jg$R59&E_>4+@>I80PH9gupF1OaAkEEF#D(hyV4~Du?g7ipB%V+Xfa-0 zN>xwwm;xJzV@=R(IVCgftU>|)%_g78etm{8O?Vr{j&oyZo>yRQa1=Zete0S&*XKbU zPc(_Cw?{d<$3J^SQmOKuI&zktQ+7ZgAMcy(bU6yaXTlu<st`FZ+{$Y%HV@+s9E}Gx z)s?sQlQ<=jUKg^ahK?Io$s7E$FGatY_eS5zzt8*K^#^5wjnG}`zCkjNiYnCvtkMAs zdzjcIeBBW$nb0G4$=!Ul;NLKD@l8$Je2GW|yF*Kk#s$I80SADBr_TeSFvt*SBbR?% zJDeoZUq#mA$eW9cOt$M;<%?M~HBX1IMuZSHqLY9NlXkHcq|y;DRWkQ-J;+UU!sA9Y z3`tVcV!B44+WOF%N8*4M5;5x5`U<nQITWV^DGr}xgJ9MX?~+fH4Ky1_x_Vm{<u|~! zC`!zPy?<e`8?07bqNAM#(!DS_$LAO{&6zt~F<dFl<9faeW~KP*2Uj!I%e;5LFv<HX za<bAj%!ri+XBSoZfKctg=bz$8*XMFg@&!fGKe|3xWM&(>6=i#>)7v}qCLAg<5)nY7 z?h^cq`;7ujIqC0nC{0T|jr6hUG5rC0o95Kno*H2a`<X<~3K_~EDhf{7P8y*@C?q3z z!hnK7R#{XJ{0GVOU(`lrVyRgkIje2DX^AIhWhkawcvv0j;My;Gc<&;9z>O5(BcBrh zkWCik67rZ`mDC6K#K4t`uCU@u6fmNJYHB$zY?*G_5%n=UY_@GNo>If=j)ig|97i60 zHi9n}+`dSSJ^uF#D^^TaHU*K_cGZ?PA0_ywjnwNU;xhL&!j?js6H-`8wm>hXD>C+l zVZNGeR$DQo99y8qm&Q8cN?JK`v&1(9%~s6v4g2msAYz|<u^iUQ;fuvV%{+K`VxxEY zg|lC9T#BHD4Zj2=ut!!|zwm`C-6qZ7Y|~2pTq#|>-lulza>O_7BO4oycW;Jc;oBqU zd&{!GxC*SBOB{YnAVcFv&zR$-#*TkMjKU<VWt@C@kcd_{X7l-7-9J-hCCwicx}7sR zn@h}YAM~7rSK>{?46ss!%N;BBnq9;lHo`}lYEze8e>VPLq~MJ4tjQU{th1Z43%EoV zG4w`|)mz>{0)X^G=^`_7K;Ot}Vr)SN2;^(1<=2Ke2%TF}T)J`<N+UwF>sl<8OCkgN zyx`%dA&!o(#DA^oUB>YGIRZuRPDbfCrQ>Zw&>4hEL3Zal|3A{+DYn<>+xx9;yIsYq zZEMxGZQHhO+qT<ZZQHi3)%IQgo$NO|CpqWh?2G4OJ~uO&nIjqFJ3r$)<iKLcrHx>X z>Uzkcn-W8T(;|%dj|(61J>$5YSSW+&b@+op@ZibLeXouu2qZoWVev}Sm$szIB5lY^ zFEU;*64=*B1OE;5vDdtrp1Q8?%dN=I$v|J6BU~oRmjdp5TH_4(`dVsrQ8H?K?M=Ez z^4Z6;0H{aZv>41#7sSEdV#H}O_F!~VEmKTyXyX+&(s&1D0}P#)A+C7psz~K0!dclu zW-Kg~B1O*Eg-J8kzhS0hcu<0ev+oA?$ADh<`|;#^??hN4)(Ci!Cf8j&QRwXvaQboC zb{5O_|B*Lg^-UoKw`*GnKfkjuoXTITHfUx<_a^$~u8@5&>yAHiQDh>6m7{UZh_4sc zaAgJU#Mi4%M=czf^Myh>z9Um<dIW*H?>dsPrG?>hz3P;)r*8m;>(;{om|mlhbFb95 zT-mE4tPea=J*@>MU2hj$l68vbHRk~G(m{hQH>-os*`8AcF;HLkHKz>q5qD6_-5~;Y z`w{cqKXdD<b;mu0j)iIPSyB{WVK<6u)tY)fKG6g|lR!a6>g_m+_=~1W>~*WkjpPac zG#FhL5jhg~3TQ3snLf8&MTr(JfP4&l3EM|_sr?#+*atXTlopQ(i`uo=h>t1!RLGmg z;?lIc|2CZD#%zA&W`FgL@_D`~{|Yq|ttq&Ku-p##BhO=WtepcJ-ewtbq8xqGYW!IN zV%#{tqlomv!f{TtREu_bqM13{kpG#oDoz<6#-+zl`q`9vb=fC}$YOR(5q5oOEZF=) zi%W5yM`CV#A$55WE@yf>tm%R-WU8=E@N?ipSpS-`jzD|DLF9x2x6-xhwE0P5kjv6K zfEY`lt6=s1yT{N<e3p`cVC=rYC9m-?_b^RFY2^rAkXED9#N`W3ly{gal`T6HCI|wz zyD`}l4ejBEoMPuKOBY%tgvzy_EbMG$p>68X$dX8*peRFXmemQ`ct&55y?o9iYzIh8 zgN$;x`>jWpOzB-~oMoj2EYnRg51xoe^E9N*?gFZAnbkWbpX_<bw{eDD#uUJvvNTL9 zkW|~UN9@5qa}m;(bQ>^y{`RPg-xkAX(f#y!(Glg>5aHI2K_h5s4&px-pa_IE4a9qO z=$?AwKSmCptW@CPJy*)`x78@dEtKUMZrjXEF?<!A?!sPYI=X2-3C^4k=vFQl_F_LT z_WO~6i%*>Ns0(QMZ_qAKv9Esbk9U3!l$WZDt-@lF+t2eOu$NFB!*|GrQM}9VobHEg z_5D~my3pv~&I5OPK|jC9sAIy`I!i8w_X%IhHUAts_hwap%;@5E8@Q|Nhb$3#ezA2G zHoK$Yk6>MS1tr|ftiO8y0bt_n6pB3L1da3&=;=JNR|^=&EYjUvK}{E875P~Jy=rc6 zy`s#fxu!;f+&EJRf3RTv{TxC_y<CFsmgunfvqAACQ$7BR&P&wWXNyALEufr$F7PQh zZ317!KnzhK#m00t+C$RaI;z4&DWhuC<iae$)1$mdCYZ%C;SceX(2zaqGoHx_Eu|}^ zEXN1=NoC9vK}R#MJtrn7_uUt0o=)ZrOFz(L^f^wTa$>0DPT|rO-aOnx!aj!|Q*1|6 z&U?V4ZzVIcfidInZXo0ED6<L)8ja*&7Lc%crMVU?7Qea-)5~5ujkAA=Z+kv*+Y`Qw zaZr(K<sH`A49e%cG^v)vCq=4m-I$1FSB5NKT+rojR%piFor{SAV3rc2Y4rOq`6cH3 z6OtyRl9?E<A_Z155~4Ws9phaKLTraBp^q!V3c+p0Y6Q?t7i<#H6^3I<i{kYwNM>c> zF1i9`Zp-=Ir<{!9kJ&ZfI%lG7!GM~lU5BzzwoJ6ZiV4)>lq%%*QlRJd()<)I7ik^q zjgOK)(wg!u{=}jDqa(QROR;p>8zK!=xuq01k&HQw79cmuc{+l@H07mQ1h1`Y%Y@7+ zI=ly2y?pmNV9}u?sZ{s_j^EsF@G<#gTxP&C0yanE4O3u-H$m7&W*Op-B<gOJg@k6U z1!GIquOcn><zAw%y3N#Q-0+S5Ie$y#B9)}Q4$zda%hDG%3svKZslBOWxv{SQ6qW@5 zQoGfQL<-t`_D?gj)_352Y-30~=%qS-c|W%6QkTwC<QR;jj$FTHVzFkcDLUVuR_hDU z+hM$}t`4r#1mBHK(OX?Z<V_eHQSUw;qF!tc?9LmtWPOgcX?rdC0_g^~=@x|4Fd#a( zNcy><$dSU@fai*0#nC1#z*eJk{l(P%mBxIlXBMOV^{m12XWQSYZdb`+C~5r(l^L^* z#b<Co-HRjdd>ns7+hAovR|tDvic;2eumBJ#!b0D&Re6IWCR<7_9_wZ7hP>^jXROX} zYQIgAR~F*MGp|&@6WUjzNmnd}7eO=K;}KKtG;K24LhMO7YEIPnm&%G`-fpp;oBYZ$ zdjBdmNgPPX7t)9gpR)_Tb8h>Q8m};N^;BYIOIGe-jmI@tsEt8)48`r#6^9!diyJk6 ze5mIVWy=M1b4|iCCTHBJG#1MZhcrD0BP_Q)EO&2C$?8a=ZiM4{5ev1HQ5HR3LXN?h zeFkyTlQ?RcV>eb9(n-s2*UEs{&vAB{!S^<loOfhwP{Vr`C4Qz=n|IzWb{<3@I#2Dk z0R{eIN94lL9kZfJI{FGN<oo1YZW){k0&dfU2A+YhkUI-=L0Q5G5le;haR{A)u@;j; z|GFK)=718u`T$j~EmEnB=68l23b@0R9#rj=;$7*LU2)`65BbMp=kuTOBi^buZVENm z)=li|Xea$@6r`68ZrSbzw{8f>=P7xpo4veHV_q3mu$;vg0Lx9k_0ZQ>&$W7{3^K#7 z{rW-Twe{dCOwCP3hFP;K>p>^8c~!;7f?}h%Nk^hC?t*6xLQ!?FT*fnSUglRXwLKz_ z5G#BCs5w;Kh9vY0y~+l*j9ka=MM$Xu01G4O72n9H1&69rf>qgyvs{q{;xJc~b%UkL z{OqD^71Q)<KU5G|Z7P{2rnAPpZ7FV!>qxnPm(AK8_t8Po8LACy^|hCg1Jd|hpj*T4 zWN<^Q!jMMWq4t>qkUOr=@{|(M3|o2EI+uK6RqBm2$xeR@ZV^RNXJvwTd)?6lOFCEt zE3-lsId*TR4nR|^6;xpe_6mv7Fd9JX9xO^$>9H$3)L1gtbO6RoP;2446Y=3otN~bO zOHR6>wZ3-<<X|<+>I^RPxW{5AnO-2+`x!COpQr9ZngYhU-0&Y090YX%>z3>5u<~dy zHZ<9<BjcG`PF7uj8VJ7oxZcg+$7{@fbbod`>C2txI@B2A(K3V_`=pUhF*?f|zxo>7 zm!3TG3+6YeBr`Ov)<4Ky`-BohzmMYu!R$bN(wl{_q^s{)N%n9rC79_f5-v%XG#1Sa zH8DLXqfO+z?f*<IxkH!hYGPCx3QrPOmc6>UMCbJ;#n_3aF1!-9z=EV0IkLPcP!8mE zz_)7iF1(muG(kR35`iPOVO&~P^V~C;Nxb0weYQ(7Eu=58nFKcEnaOf;!YiXLM0~xM z+yG`)Gy49^swe3_VurxLyD$?|n)B$Y3L;u+Dzee|+&Z2HWeuRolR6fIH)S}b)V|T& znAqN6w-eNMqi_6_Tx{zrN%bN4+mjGfQkNpVS*W7v({|}X+{wR&M9!qMkh~=j{>ow$ zF<nTu5pr5~X28W!n68p}Dw~Q~-e7ue?0e8{9tRPf!x8Hz(&@t_&DnV8a`$~7POpp1 zmIh^-kau!TL{s&sas(f#nvUz>+f0~^rIHmgRslpgIk|<$NcMAg%wjetOte#aqWfVj zo!<1hax&Q$OJtQFivdt~ln^*7fV>-L_zaTEt#=eND4MZz_B4IGp4N71b}QGHo!i6z zWAE$n(sX*+=>H;Yx4tkN$O)lKhTZ?Es4Gy5C+yAf^*k9C6_<9~``7vY{O`lxgQC+u zj?NwW7q6-x&zBRkrdHT5PX6WMI93K+ks2l`+8$9!1z81iJ<KaxrhbxjVtXMNyZQ!K zGRio!4=Qk;{C!kCkS%3~zsvhB08kXK-<}^QYEHR~HO>=!(ywB3<2b%Ra7QG5KjnQk zm~GYPTKejJiNy-%A@0#DNfn{FI`?;8L!1({*=7OV{(sbEi?Q3nnA{hZZAq$bl8g_E zq_4A%jR|jwR3)y;OHPxJGJVBb>P1TLv6V;76m39L!nXX&Wm@3mDKQbtSO{f6NOr=X z_}V<a5SqnuHN@{MauvnK(Q-#d<E5*u8!fbus#Pt>0tG>0#+$Nv0z+ch4V!F=%#^lN z!R=!+t<aRd9&H+?|4i52&U5AIXN&b#k5c98x7IB1F!b*u8RNx@YDC?qCbQD$7}|4a zTPnaNS3yMO!<`5cTtbcBN-0J+kwo*LQKUH-dv&12Q-rcKk6vuj;?p{|We<W;64Ob! zKc9bl_IHl1QOPfov*f9IW2FFEu1cb#?C|8viK+)NmF5e=2tg?FmME<(pSjJxR?-LT zYPB#xZ@Zj%N{aW-vQN6`Om=J~2=vwm*hesb^?nH2$P3gDz`d1IsooK#<}u+sJLHH? z!!LKaXw_k@`#u*<R4{OCMp5#tguTVjq#o0*zCN?lcWon=foPuH7w?CpvTTVSP7G<b z9Cl&*@23nDzZqvdBgaJgAp-`$_H0TnbKh!!F@0M|#Lvzb$FuTgu4*mG6^AKHx)0EB zvv6EQibLHcP?0RX^00nYh152AeQJuZtUYb>&Rx=WY`{}DVf-4E4}&#A3?i}01WW4u z+11-8Yf;^|u+XR}r<M8|9|u#(<;&%R(V(2o4p*s>_VXn_H5ff4<{+BhFVaD|G*xkC zD|rdp+4%^kcl5Lw=OQ#^@o<yBi;j7V!A!s{ba!7v<=GzFV;GIYazu*nWidf5rQ^#j z&f~p&hwL1P@WZkS2>zAE#4f|zQq2+(RaXqpzqra@#MpvTHIn*a08Ka4DQ-57$4kO_ z9|kECe}BbKb)rco%37czp@`3lZMM=LHnx&^+Xxc?L>4yicgs`P(8+xsne~qh<EB9X zf<gIo+O1w?x%%5qBt6*8*e8|=)sVtkPjQn5oR@-<>>oqw=%5>0aR}uT(bNW1@_kFt z2T5P`anqfF1=c89KZ3RcR>@mqu$)O+ur7<46Oxo3aUbsSEm~sO0Jv%Dvo?pQdE&7W zbi64OUXu=5uKtb-^TC;S1FP6q^bV7WbD{H!4R__5oJ&HXqAyo?e6S?jj;YMd00QrA zo2tq=(pKV<s!vj3xyK7)$mO(`_nN{{1tkuA){y;j18e)$*rB1$&~dy|2ZN+}B^J0^ z4hpyMby|i|0>3etHgS8w{ZheDD2mMnj_gp!vgbGn7dINbFOE?AX8FrhKSajdL8Uks zZnJH^P6xux#BJu{Nj(Pe-Wkocqnq7cPTo()Z-*<L?*}%CaZU=8=Cgyx5{fPW;=o)~ z=CESMMiLQpsdDBesE*7MInErbSr4uO?&Au}&x?+HwVz;WK7{zuHhNJ~u<yaI4Og?V zy;YF#zzA^}<q-)|IL8n8CwCN^?d#{GZk|ca)jol1w(EE#AHydsHh8OUyp5gVuzlpe zf$$MpBT^G8xzR&i|7_QS(lk%laU4KxzDW#yokF-PKZ!3qjCHZM9&JZnn@V+K4f6AA zM#cIen&vzSbUDl_Tf+q$KZzq$gSM43!kZm=Fx~9Hk^satZPcsn`4uz3*~Qg<)*bml z<kf1GE0?$q(u~pJ-$5L*ebA%Pn_0mrYaJgb5*A|7_uS`j(AT)BaBbb1O`*o+MXV%< z!>2NWw!E*rb$j2TELKlr9{<Jb5PY(6{r#BS|CI~z!~Y++suY;*$(<Aks3`n@Qi}gi z@=5%EO+Nj{uFKhk&dkE}zb(1`n|=a5LBhTjlMv<LG(Z7rCw}@b;>yOxMn&bvGNi)a z-@m`Vf8pe3`SfS)>}TWrXZz}B_xk7H;OOM!^!(!D^4~D!+uObCpTnD<qr0Dz`=7h} z`-g|8=jZ2_m)F<#_m7W{&(F`FpP&DWa{YP-0|o-Z2cr4Upa1L$1pcj09&2ooI8;$< zoz^NsGwYyX?OuBb?qSvyBRcqK5-TPR5rl2&Sp?!FIjl`5udvV5<Jq$=+iwV+K6@fn z!eAdkjn0B&8?<&CH*rWn$AgC$5E$fx5E>Tl=K~)d6C3RVmzb2CXkf^aL7SDGlbe@c zP*_x4Qd(ACQCU@8Q(ITx(Ad=6(%RPE(b?7A)7uB=9~c}O9vK}QpO~DQo|&DSUszmP zURhmR-`L#R-r3#TKR7%(J~=%*|91k{H@A29506jJFRyR!AD@4}zJGu~VerK3^ZSFK zP^q-X>I(+LkVqu6#TyETqp+AQx5gTZM&pQtBk?2}i^r2FzLhGq#~Vu~(-@2<vL%{I zrz7a~kF^=|%VzU<rQq@fn#&amZA9UCCs-=N3sAyEOBh%y7ZE@UEtk0pE`zHy$ih>Q z46fAcVKK%ymDtQ9fniCjSy6#OG{M~;FI0fo0(SfSzXC=40k^<|Vc<zv_5eV@Xgo;} zt3XGi$%I<NKb*9w>2x+<IEp}~v-y0nT&YTTy0hhSwccnlSEj4=db8c>a%Z}$?RFOs z1WPE}-F|;KmPD;L)7|lSI#(o>C)?Bce7V+SwL8<(^?JK!bK}g~tKy-0s#c<wQrLt0 zx_>yCC)d~e_4)RAxjWm}_wP19Q0)1GVVLg)K>hwM-wT9eJKGCF5~bJ=MpHH455Y1m z-w(xeJ=+f>3Z*y*ClzYfr6RXXfQDxSL;gcZ2O~HH;X~>Wj4jPEFNV&+<RC(*{gyt0 z=@ZYW24q>kFA8jrClQ9|wq_to;3Y6ON*E|D5snznp+E8~^6hRc9sZBvct%?Fm|=u< z>-kBR{Rri0w)2X`X^#6z#c8hh%lT=ZKLpiTelUjRSwZ;k%Co{~wu`f(cu}hJ;$&6J z^OD(O_sG&LhgK{l86TKR1$_mw6l}#`&*!S9e~!`BO~=s%s?94{)xeP3LsYcIRzg%k zJTem0z`SWO(y;@cRo0Bgey0MdCy2nV8>fA%WNDNM7*t-jZn<7wx9x>e-?Sg4THSP< zl~&z!UbSA{blr_m-*!K(Sl#x#omBlx@m?-(`<yK;C4sWaIfbJbPk@XN1iH^a5yWYb z9U!<>4H)C~v<<+q_|)zD6O5mL1+krCwEexn*A&RWJog-qi5MUiq0)6ivB5Lq(mj5Y zS>R{~c{W06N6r-^@kY)U65&TK<THFlEanPqM=WK__e3ny>Q4u*P}|o8u9ExP1g??A z#|X`tj~c!}Sw+pY;#!u~ByH7o+pupR?c3z;oZZ7aZ~4#SyKnn8sd4=44|9Co^I-06 zJM<C$Zre*nrR&&FBgySJh_Kt}p!|+f+i5?GOCsnvPtuCzI;pbS;X2LoBH%vDL)7t_ zZzIg{TIizR_FC-Y$M;?ul+*EE9@We7UYWGp_FkR!!}nQRjMMR1U(Ms~y52n8>ABf` zB<Q_81l8-kJ4Mawy}u;c?R~gqChU8B6xQo|dR5Bnd;T=q?R%+9(gCt~<!?2a^#^y} z1V&F6XorvYLVVH%>t`3dSBdw=WYL3|ZxeiWiT5FN)`Qw-7kW>L_a$%EgSl@L`f7>y zqkqza11|5xiJb{88Qed2PVdD1U<l*iGC=Zz8X|_75C6kch>|q+XXSn_LO7ThrKJ52 z72CXv+>jw!3x^1u>U@-1@b@+xGKVNc>U@9(nh_3oyC_I5qq9x0J{}o|7|hCipxcl> z0c*P$!pnS+AD97=2!}Wd#zJt|9|K~Qc5w{0g^;*l15y(X2^?F6m^5Rf-`naEOs)&j zd4CRnA9F}@r7pyl4H;2Aw@dQ1F2vP=8PkAsN(rqj#JBx1rbF+L5`9@n=nFPxAmfyl z#8^z!88T*K?U0rwSWKD)Ghq=~msV6w@}{3tmJNm=d^br7-YWi0Ul%cfs((o?gpFSD zr$iPec|t{`B9a^PFvZhzm?|nFg^$c1L!$;<t>q#`XX7pvoRo+bb}UK|bt4VH;mi;m zVQxSQQ!^qk!WhR0^bJz3QZs?Kr+Eq|iIwp#Vv?F%OycsJQ>8;uwRI_lKEy=Ygi}d# zWhs??*hJQ)W6>d3xrD#PR9<FXNe=@(T@2k+F``4+hz&hMnAS{LgG(h%6}?m~#X{Ah zQzgq4y-aV}LfwN)HLp~;+>FdpBc@ZexK*XX&csqXhfA%zRHf3b#8S7WQ?2?%rONNv zQon~wy&glgI*iQ9aN2TsByhgrw+@XK*`?~lz;dJGFpUnYmD*V0Qj@?j4ND%^MrW#O z^8%@jrA(LRQsiQbeYUB!%BSXB;c}~G$Tf)7=h}`aMw>f$t!~Jq+QG+iyT3@Seu|X( z3C>DKcu1|`cgdvsuJ1}`LCKAAi<ZWX?n+k%_^s*irpDFIN_Pj@t;O=D=F7uN+ZnvA zcNq8X!OCm<tBkF0TG#H$%WKC^jIDne_uj?8D_~W`-W9f62f}T&e>cS5os35pCQYsX zblBdLwp$mWZFTTgram0A+TcAky_dYzF7m$1@T)bwkN(9j8koljcr_is&UP2h+<gdt z+TPFaYadU-a|DgqF(B4!A1BjojK;1pENAMFtixl1rKT~WR_c&y(`|z1rZGzT%@jXO zW6XrQJ|!y3oVZ+l#L$&7YWKpJ#hq=;HTyp3GV+)sjA!=yb$#3~)G@z=$D9gtV<K$C zv9RU4+nkPlV=@kcIh&mJR6K5d!DQqqgEhxgwr+jVrnLFJ*J8jPCVFY3xd|kOO>5;r zW68fY$ICS5R80+MC2)kbz{SQ~mt<o#5`wKL<l5X&cw;TGx25qb`bvtOdvSKhxtW{y zT2767X)@NO)v4!N$E|C1_uHjCi1)@It!wR+&$TmY`pSiSb9*kdt@&8S##3u^XU(>) zx24C<_H}df2f__7%xmw6xwQo;<~Fe0WAFO-x&Ix?0U)EZk3`)%fEeW%V6C-}W!^eO zh-)7s=X;1u`+Gn>>psEW`w-jq_mCcubKK0<F|%mvgld#?(&ff6cW~>Jsjg$rj_>;^ z8`I}h?ABw!ulFe*_3K<TjBBB!*13{-`$9IZbET~Jxzg?HLT{F9b@axiF=+eBkiKhU zw)dsE>Fe4y?z0P*&n<qH_rwj-b0@3Ut@@Ss%1_K|Z<Eix9aHz_zSQgBy4Ss%UH3Nb z)a&Sr&jX;QdzVJ;eFER-F*K`npJ(QMhR^RgmZtkqR_1*{+vhperu$fT>V3tlXE(R1 z`_xA6b0gE|we+g{+-K%<r^D~PhN<^5TK3gr)91a#uJ<~7>ht8o@3W_-_qIyz`x4XV zbL6J?{_g7gR>1Fjo|gA<+UEPw(C2&ImiKx4>if69?!s!7aQD^h`!C|`&-cu$-^)*$ zH}IPeXuIFHn?F#vKS;Sh*qA>=x<698Kk}MC>YG1`djMK^07iNMUV8vRy59k0;1PM? ziCEy7S>Q!j;8j`R&1m4=Y2X87&{LUN{_h}g^B{!qpbcS53S-Ng!62%mAWHF|5&;H= zJ!XqU2AD?%xI<#tATU#X60}259uy!Ie@5Lo5?m!xLT1cgpk$;?820u|QiV*4C_vPY zK=esu=Ivw(@lbk!P*MKO(R)B#P0XqKpyFqiHKkhcOJO(Q;Y7c~TSUXXOv72lgWt-+ zKgxn|&cgAbA_&LAe~Cwsm`9L>N066C2%B5Qj73mGMbc74(u+qjew#-!pGBmUN2ZNM zW}HQ4K}F?+hrfhHvYSV7hDV`OM0A%&#hpbZKt(4}L=}if7nw(wgh!W^M^}hPMU6$b zLB(`X#B@<a_lU>zg~#-l#|)lD=Z(dzp2bvA#MX$%)|tmPgvU0uYh9>EU%N-&rbpkm zM?bDbU%AKmg~!<y#}z2Y&7Z|BLd7pb#jdEwgL%Y*WW+#s#K5k{{H4%Bl+c35jzu01 zLq8AuOpn9KNWfc<!^93J<P86%5l-R}PL>f4<&oHuo``#%KntBfPnkgV9*t@d&pMun z51qtGnZ#(3z#EZ3*OA0WnJiF|B<PVWnvu*SkxcZSBr~4;O?;lL0G&cgnW7?*^4lUs zBO-;uBT1JtY4<Hfb3H|$GuA{S*32W;A|uwSBi5)R(QrJ)em(U@Jnhb$Q(#O;=uF15 zRc2(+k_=msxCHIGm?~H!y<P|yRRFErkm~VII_e&kslA+Df}H6*l_|2k(=TAy{0yrE z4A4CS(0t6+M0t;SdA|S}|9SZ^2cYRhpfE=4`9OumMl5_6Y$9|;;fQ3Z@vN?j<i7PR zfJX9wMs~kP_E1E&+<DgcdiEq|_N+zr3}?y|cFu%E&Rj&!f<?}vN6K<V&gyy2I%V!A zbnbRX%C1E2enjr!znMZ6xu+7Tb`nXhlyT1zajzENagW%k@9%M6*zrG{@eUceHyybT zlxa^Ld8QTl=HvO6=lRyq1-23Se<=%GEDGEr3SKG--o^_)Bnn_*3gM{=5hV+eEela4 z^C2q>oz4rs&kKQIia>DkVI+#+EQ$~)i&!g**e8lOBMUKMim|DRaV3lKEsF^!3ZWy5 z=_iUAFN&EjiqI%a*dmIQU`n_nOL!|w_$!OiCrZ>VN`6t5l1P@4S(cJVmQrryQcsl9 z!j!5=mT***3QCp<Tb7ALmWgRfltak+y$AVd_-#9v*>)CtW)_Ehl!R>*M|~8>;FQ>N zl|^usCTW(Yc$TJRmS%L8-fHCEzn8{kmK1z<mK1H2WNDU_NtWkqlvcr1R%Djdb(S?m zme*L8H%*kcU6gmgRFvS9c2QOKNmlk-R<=}@4_;IaOID0qR!l}#OjlOSPE<f#RL)0M zE>~7AT2`&XRBcjKZA(_ITUPHzRvlJW9Zyt^;*=$D<)2ekoWfM!QdQqeR_|9<KTlM@ zUR1xs)O=Fa<W<&uS=InY)%;M^f=<>zUe-Xv)`DBr!AI30R@EU-)}db3ZFw}DL^Rx0 zG~`Y+RCm@N!8D#wHJ)+RjY&4%MK(TEHa=-KfLu0$T{bLDG?K$ML0L7yL^Z)tHvv^O z{km)-fo&#}YP#5{64|VUUoR_pDf_-lN~3E|8-;=sPyY=f-=gZ(qOu98-qiw<-=gi+ zqC44w2LRT&1l8ki)v#*SifXmM1qT7N+DWylUbdLSw%JsHt8%wG!nRs!wRlao*?zV- zZMFq&GV>{+C`B<ywlg3d21{dwpn!IuJ3&YbbYS_1SoJe1>@lkOLtqL(U=T66`9ruN zb;>)27Q+Hto`D9~L)27}F{6fsGLX4a{C0+d=JOBZDGCddLIJw#0^oM{X@LOc2Xg=c zk;-?=V1bQsgG}HuN+K~%Q-c8MGb-J6VKMaJ0|8+dG4^?ZZ@>a&e}ebHcJ9Lh_jy5{ zTR~#j_nyH5-QtoVBJ~CWIdwCl_WqMRSPy~ry}F{2dONwHH@bQTv;brZ0Eq1FkuKo< zDp2?)Q1~eTkUmMD7ufzJ7$B;DEvskz5*+-hf1JCw|Fgq*uh$i+yTob$yqf8WyRQ!y z>V>;++zP5Ms}JZ7^6Rn>2oC_q0Dz+D-b4Zc;{K1|@}k!dcZmc9bn@@}e{VGt{ND;L z|Fb*vzm=96RhhUA2Be-xYHgL2R%(>Q<b`c}%dRv@75eKEu~CBXkOtb({i6BrS1vs% zaS#oR;9xwje=bD#k84Sv^KKO{nY2bhH)CRG?!Ek?ehxIp+)u(tm_EmN=$Ft7@%}qN zE;Xp&L)gFxKq3|S`3VugKA&H~zNw4*6l|g)Nzfti_7wtMpFGu4N1lyx>&1?4MolM0 z@Mpmi$b|qO=brg5V`KZF{%!i{QY;gz>NIJN1QyX+VLJi|8wEWGgoJD(6Nk(Grh*V| z;F%^&s}M>PLu}94c6AxF-}%g-+=uc+ibhF~NQwaM(okk#S;H5+3CanS;d{R5cG9ZT z#N4sg=uD0$!X;Y*VcjYQs4I>E<Cdj`RB~z7K4u*KLH$coNoLTSL|Q&#M9w_3+%i{j zaj_r}>l4!Dh^2x=X{<T)i4U}ihG#3mvK>bA7?ik6L2n~Kn67|}R`Pl?VTr8NHdhV3 zAR$qoD(bftOTS$ebX}524TP@~>r-UFt~#7x9hN)oza^tLjBb+^$|?StVt}$OIeSzf zlf(RFt<sLLol!UkM%AzIQ?F!pC*{`dbcaeo<Cgv~Djz&xLc-7jn}({B*HE%lL>t-R zg&o9acz}UHk;c(ZuFn`#AF}mzTSLrB7xJHt1_q55QG);_-D52s*y#^^M>-jd#A1n+ zelIzm`o6T!3WMkkaPwI<%XtkhDk-y;>N!d#83c|?U900xZ5`^I9VJ>dd{<C~(nVXe zzz~(4WiY49@42+Z?CH*gY(r+e{Hd|tZFR8sy3|lRP|`%^NR$!U7j22I;f_QH<5MLk zciZGyWUHn<N8FKUMWn|Eo?s4E$M0E#7vxr0!t3*z_9L2X{+H;#jd3lV_HnwjyN51I z<wI{rohoAu)t}MX6fJTr`$wa&S~=%ai6g&h2olV;(&Z}zhyA8qHw-_6;hWcAn7G)Q zo3lcAY}QJ2pRlIZ6_fvFiPRkox#nUbo~^X;6EK-)@6~D&=Wg`6oEZq)_akZBW7IC~ zA%%y{G&l82)4RZaY(so#bL(!OR+aTBSsR}Xb~2GO#;cIJkvrOSVZO#a+p^~nN2|Gp zyXs;2Q=nJ}#>{rT+d09?w!<$w`HzTzKhRUl-$8`u!!v&TmklS@NQs&*C=k#o!v9xr zi~au%ZVv-<J3CrqI~!UPR}<U+Ip5&FL%hYu%4<V>;q3JtU7b5DMF{fH*cSHY?VdLG zio+rH8g3;0o;n^VAikc|8`|FYv!e1QRa3~7sq2)7nNd-%vZ}JGs;ZKH!}od6fWt4c zd!C~r9klA9w4rH`3f~JaR4WCsKVNtK^$X^BG-WJi`)tSMLVnzVx|iKPXw8Kx3gA#A z$>d56i7A$%l(6;JAe;2@<fZj+r^}bat>^<aum*8p{bg}rGj;j$(D>xX{#LXB6JmNI z>!a@?hEUh$XAge*$l@k+P}1z@wTXEK-rDpGyw<2%RV&$?_V!x*gnqS#m3JA`>tw{q zYwuy77>g8W1r7XjD^@fr1DBK$_g;VhbIJsi%^H4i%-N&p_~zxZ7dJZ5Ve;74W>gcQ z!vd?tclBE1+5N^V!eR-&iuGU#O$E>1Y0c&dNKlfwx+ll9h;<F0N*<I?K)&dvp8M>% z{jW|9&|!k7Rn2Nb7ENJ3lVy!oAOb(02^z<gDX2*3nBQG?Le`Sp;QUyOCZNu@Wn)xx zMRA~zU8AMN^=nOqQy5n_UtwMOD7Kr!p{SZS3qFH-BWvPiYp<6NHYenE1keJF+l1^? zzg=UodZQurcQUP!{Lr**^aFO*?GF0G6u{WWx^Jt4VG*;R5lP{zh{|V(B9O4+-<i01 zM^tqO&7*|QH=}s?;f)+O9Z|w$GJu6@+KP$y;fm)pKa23x)Wofrb7(K-9J|PzAR#b= z)Y<cWdjCEg)+9H#SMPgwJa~@GLcx*l8f#HpPpzvhG28?)tqfK~B|2?75`+&<#6sB? zFcGaA4?3=Vq%O(BNNWV+{FIjnu7O$d)jiJ-IA4YV?=At&*i^XkU0)5BbgpNU=Sg4! z{w=YleBML25pf=nJ>`R?e)1yY<2BU0PX?2fq#5&wZ#B!1$sns~1zT=vM6mX{GbTF# z6}r9Plm#F90SMhq;7$*{``mje(*;2cazLA@AELSP>fJ0>u=GMMc6Zt=$aBDIe?nUD z!kSbJKn=+y$rmIBY9e=a(yocUd?UpkGjyvD-}(&?{F}ON-JiQECBsm&rZnyuyu9ZN zxg0(U{yhkjV_&$1%2yBpg6+ZoU!%Sz{>o?qx3R00GG>iER+4F7ZgAOt5H9{kgO#RB z`8i)MybLI-v9)^kV`vB{Gz7<A);91fckn*DU288@UWY?4M?u+3gDLn7JMoBOE@rPi za0#q9sfjX=4xE2f|3KnGG6LDE71hh=Z5p9mn^VajyZfA#jT4T6#QwFdoxE9}w(FOl zyTmM;rq5NGEiV%rR2|nAOE))9O_kMRu&J$D@8a6t^_`VXq_0_c5Ub|q&>1?aS^qY& zEoIplt)PMd2u8eRL3xfBxC!LZJo&%*90A={wC;H}X2(7V_lPH!(=73kbl)f3Eu$5{ zdpL~hpf8l!o-gDA?p?2zE%e6Cj)z-IcG>9mhgS!tTHWKSEC&tPiV~a3^~wA;Q{(qy zASyhTDbK+5LN35AkFFwysymRx^sAADNAIRb?n^ie!^iOuAFzqUEP|?CW2-*oS6!ck zGwcHLo4TYOVn;TV{Y}nLX63=1?2J!SP3rN5k_mHEQZ^4D!0(lphJz__x_d4^me0Dp ztM|C1e%){O-l$p17EQdj;HEkGxwOY<7W!Bdn)_$H65w{#ji!IVYm`>WT480`VYBR} zcuSX=S}cn6>oZ1(@4c}a2bu#QU*~i8-^fW>VC|!vwz<0TgZt-jkFQ8FQa4bi=$M(( z2b0W!O^LAO86J~F!d|j+Htbq(&P{OPSZ4~N2SeVM;<UY}Mi8fpTN$`M0?9Gtsc6Bu z<xk-G61UATXch}pf$n%N<+cPB^TZ5Lh%*>CvA5$<s6Q2q`Jds^RThh1QLu_VH7bEX zEdIR&flGIbqMII5-8F$nZx5UC_m8^0aSV+5;rs-Tc8Q3e{|r6(@$|l<>$M(FdU?MS z-akkcnN$Y^=#W6uCyv32#=F^l!oFIYKc&Mu`ADC!DLIl?OdGDMlyt&VeM2|u6X5yx z><vR2oOQX%tIE85fKA}|C`{#ZMM9IMNcSX8uvITt;)OBxe}btBVuL{aQCC$qUvVq4 z+sBrtEYbw0F_<E!%dAw_aaO<{L1n;oMk<u+zsFu-RxIcSR~FYI*n`&W4UwhkjI{Jt zAi2;=X)J(zw&lko1XZ~087-}dbCVZb(S;c^Q?ih0^q(Gk6YX+ryev;(-A85V1-)@5 z?^%K43C<5YWDq-=s#G=8%0~f}=jZ!-%#3FsV*^!_fs1(65tS-wk!KQW)z<kr^L9G@ z^7G^j>Y9mx?^2fU(crZuHiv|xXDSdP7pYGT1nF!_i<(|QKo#&Q&lyXcKZB$K=m5dL zsfVGUtB0owVl<bwkGlrj0v?3$+i*CQpMi(S#Z|i+t8woK=yB|66lD>4*W!63t*|UY z@QmeZG4tXxWCZTaF90?X^7}AB>x}~JnmoJxJIn;W;}IarVR9>mZNAVwFEbp0HK=;! z3s8wFh}*&08u0UY!SYD5k&?*cVdFPTLP?$ZUKK!AE)95-XqBizvct4Z=|#_aF-PIU z)6UYdou%a$7(c%_qCYG~{ddpc^BlM19eoSIp}jF0Df66n<CSHrmMLer8FZkCeZEVN zZ)KBNKDWp%Ze%<8-rkw-t4bZJk%-m6DwP1r-H;e7&<#TE{UF8FC8cV6^#=em<7m1p zMW!z^QYSs-Pgw+Kr|j8WFKfv`cbH%~Hzhtw2<dk;YzAahgG_i57$U^Wj+rDFc5E-k z@E}Jv17l`0#w@F#^yv_kdxJL-jwG@z^_9!#7GNDCI0N_aG;Z7a$bQqU@;f*5paYb0 zu|H1bR7y7T%q;v+WUR7R`u>$SW3t+JATdPFTT(=800a;nYtol9RCUS&9nh41N-9$o zF!<o-Y^C0Gx~UG6>**}Jl+q$fMP=k{=FT~EApj1|UWWfQgyfj9iU=N*rs{TfpOrsO zEeQ!_)U@8M`ZOs#@VGs+D#$vDog48B@_6gcHB!61t*J<Kt^$w&4SHc9eaWB?NMpvq z$*QU9<qzz`?vSsIF$ra*oDe+&ytLtcAtAYLqxhEe6~Q_x_lRIfq1zC`Ixx2Zv{wBq zMWEA53jajw8Xr57259kOc|0DS1f1Y+&=-L#i<atR<dyovqaf$++cmX=p?TXuO-ZQ- zq>1u9Ks0{D-;J5B!R8@6Nu*wm5F-NaW=(SM9ZjgBBmcZ&B;rcHJA}73Z2?c!TcAHs zmgf@iu0Y-5Z%VJh$=i$+$iCJn^Gr0UE*gd<C=|h%s3>$^v<Ajkeo!b*{jNBv7oFgG z)v63nAid%aTjY445r;y;XXNECfTSfM=87ZGHR2shGAi$;;b8u~GbQ2Vr-0y8f0c%k z7zx3Edp}*=me)oztC7neqvjpAWiQ0FZe9Kp&wSt>WhqO~g<njVW<mlf(#%%xDTF;c zg3Abv_Cx4A;#{7P5c9|<no?lZQ)o+Dr#EMB4z?(gV!=_v0?n4UU1B{rl4*<!q#wv& z*c*ArQ+cGGREz<DrmC8~-8g;Vc_^&-P4?yH4Mc|3nJx1pHrQB6KtE1~rP5Kb+_C`D z?;SXb%xhUdW|jgFZ{3T5P?oD%{*VL8w2U=hx$bnL>>8S=mj4F-{<!5bU_Hc}JQMCM zFaUV)2EddUNb%_c{B;)es{<(@iB>NUPN8HH+TrB);oNv&YbcT<O2iTc8z>o>(3BAn zffI}3s#|Bk$>h5A#KAHQzCgXT;N<Nv9h@5xtT!>%ZNzeLu$0|NXjJgdadX>~aluJ8 zy#4P7m)1iesHsF3l`%~OKy9=l0F~@Ixf&oh22Y0jBlk2mksZDDM4=5kF7iwT8RnVd zi#?-)HBDFPX}b}EHjSIkAOomemMAzfg@H1*+NP<|J1c?K#DWrF7Gu41+yJez5pwmJ zqzyle?@+`DAq=_?`=Io^8dRm~<nbYHlEUy|RB{K2CnwO<<PoT8Nr$Kj!;VhO(B!bd zX$CV5A4YZmteIz6F)=`W>agWKbw#3+$8fixip4`doP{!0;@z^JaKWUDNz~WHXNBPg zF#ZtyOufD6MRcq-fA)4csv2F6+QjkRT??LtA@j)@yLaCNgDN6j5lmq|J6?4qyFz_m z3Ga!DF>UJ;8X&lYy$r~GKW#w<`2@UrlLhJ68zIe{xIQ39GlTw9vGEWL1adls$KaPQ zO`w$SOFTc}cF<LQk4CZy_!W-%-AxY+>_sx%^lh;3iC}#61io~7P?k8^MQt5{qFwak z@jeIu++uCnUlN>Q{sijCGa?U1pw<795@drSrvB5B{o&!6UkV2K`}X>Xr5Ddwkwto@ z^#$H26dqduEQAe=(=DKzpO(&!2-=`8++BB*XA+*lC03?2Y<cVvf)MsKWcAS<5_7iJ zJ<+2;-{%|PElAt9Kbz!4xD_9}c*zBaw5AZB(Tpi$4kX3B*PP?&SJ(*<H1QG${OJ8M zY@y`H>Lw)a#dAayCySk@1M=K3X5Joe#|IBrhu7c7$M0c5^l77*GESESVIRIA3(Jtc z8eUSMrU*qAdy02n?uLn|)BBwr(n?v%krv$+1a<54>m>-@5<9JzEDp+b*iVwBLe^T+ zhA;j)j9s&}8o1S+vGv&u05ez{>H&h*oMA~-YF>pAr|J^kz1El=Fj6`D7+ILh{zXX0 zf`FJ1ey>)YHuM(59tjq;nq0t-%Pg|rB^ozqQ$K;R0TZ_qWBov}?I#1cKoHnTq>|7o zLHx3-N{#OLxq5r~>YiY8hoqIxZL3zx25W-Ha?g!m(fbL5!icj<m937VO3g;=4NVDl zFv1)Z90R;stQz&87wp55J*b}Ko=`2C<JQQVF}3hYD|>y*r%qR%rU9w?Qo0RjCzfW| z$!EB07)jq!rFql`KRXq(0f&K&VUWD~Hoq4oqHJea&&?<Sso<}p#$}sVCQI2)ISq|~ z$*{vsZR%h=Hh+#^2qreCL{H;j+y)2Nsw%&bu3S+En9Hqbo%J*KOv8k7+dZw+z3}I# z9i*)~M3q{TgTojSy_<~YSsX%Sf!UU?pVYIm�}|PqKLWdGZe;+X~EEefD8~uP3X# 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�UA|E(F1|>tVzt)Ws+1 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	Z-bZ9DPng~^<1<sm$1pV3B# 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и=K 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%0DD&YXB_)y*7gX6%>X8<Q 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⩔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℞2gL){gd*wq;n zCFbnJXLNX6x=6E^K9wnjMO!4^5ZBXP{F#A8n&t;6^$VG0;sP>LQu{qIlwq*1ox76d z<HgmH*WD5BDCx>jLPXlS6`3*bk9Sx<1r;k;oAO{$dYdChJeY$#v5NQ(^`taY?TC5u zi%~`Yv~nVrr?a(E{LcxqdEehPc!(q=VL8i$P{4iD=S1QoGO3K&VOKYtv8yG_%l!9! z(mW2;)EH<$!#GALLl}D5^W??KeG#~n7A8o;;mR5AaO9XkzOPaODL{-B@-1~!si~MV z1wj;`P6=#9bz^zty>MliAsx(hYn!FigwEd6sbB^LQu6oxoj@^W2EoeeOWcwy@Pd<R zS{bVzfx0(t-|`vhYL(<A%5jT&nPqwJ6zYVhx6d2;dd-iWc*-DNSyd~XHBE^Hr3R2I z6d!-tou)qHQbwaEvp;uM0#UjPCeYdViaQj2m0#SLU9Xe+9w;}P0oK{pVhU{TUrH#r ztQoc$-3_`a`RaTe<I{6L!r?>>IvZtuTDd#Cz1n`+DcF=)dX$SlaKeG@!-mh_5+8$d zoa(Gd*jH|k!ex|~7fgS7;KJL#U8^<^S6)~>v&*b;6KG{z{~4~#$*+_!!f!tQv9`K> z$C>{i=uDP>A;JZ&F?$LZt)4!#Y?;y7>2g-**4c=BT`%!`(9ry5V(q|qIy0r3SzNji z+4T6;C4ftT`qa`1IFB#qJBRH10D{2-DEu3!+^|AjU#ob=yy3gm(->R2(GNO`79{`U zLzGZOb>13b!(Xz#>h5ErJ@)Z)Lw7AH@qBgn_4#>JwxUT3uweJSv%iL6MFTD6)-)pX zKfFy(qeZpjhjGqYh{@f_5!tY8m)5I+U{Y1E2_DLNrlbj~qF+rq{U#j7VRZ>T2CB^V zPL9QG8!AGJ)gbaj2^8`lSs~U1*!LmRk@_p}2SOoDYH}*s?5s5Aa-jn)VT8;c#BEDQ zrMcT81ZLa8xIA<q2EC`tlQ_f^YHJg7JD=J%b+`E?gO?^v!PJfg96#MJx$Cydp|C;v zRcD~40#wU`@B#ab^=@g@!>8`f(N!>_WA3Vu9|50pDrIeFIQnc($5>WdMp>T(q8qnY zF<nLNGHPGF(N9kzROyKy+h;$$MI4!z?}V@His}2Psxo&dY;5UM<yJs{A`5HJaJ`CL zo7wt)A~aGhI|x1er@CJ>4w(lge0h@)$^Eirl+`mV~Hyj|ax-DEZ2>60>mF{rpW z9gwnB?8wIHn*DJqE(hDzz~J3j4kX`+!fh48)oRe9lt((G>3TWLd$U_Vk|Zv(u;*ly ziBjlI8S?+}YG@gQ`uK6$<E&t2t^bjzzluGo$l<bpvz?#bYH>1F{N2>o)Ro+lSEEgw zV;++eqH+I?oUd*SO=|M(XER!Hmmy&w)Viw6rVtz&NOQX7m!sb#7Hm26T*+BG4H7xa z<29-iEY}9Ma)+8X7+*&TZ(AqZ*k<hry=?Ls8}+bk=7HXyd4RK=h%LWX_cei;vgWnN zr9T8_A?LRJjcQR#n6e@Z>i!|=p7n?geOgM(((No6SPKD<^bp)FC(ts8hU)>rY@j>A z01G;;$v<7dmRTuvGdp2yFF=m4e+?ox_C^puZ0fPpUp}^py2NP5cX8$C+4^W=)V@%) zZTVErE}kp~>MGJgmtnPbm}DX!8&IZ0W2cKb1~%hFo*&VsxYF?OVd&1Rm>CtSAE>IL z$lP8uTn%XIy-<w>*|^s|pNZ!e(nz#QBgCAIc{(W0%b6ctj6SJ_2ky;UR^#96e@m}% z6Rt{=*C~SDaG^7zER<<jJ%Ya0Sq+}{F1>D%yq{Gv+s==g$?fl8p8h<}|8Bpoww><! zpqqMeIQ$z^sR7gU+ZP-FKnL}|+fV#kOr^MllCqql#y=Ew{{x<?f5`2NBYk9b=dUE$ z@DmL|Vg?J8v>U(7FdCT5Fq*M&X4wtfki$ARH@9cSa&3NjSFhnS41->pfec(#Rk=T& zsW?UFv!~Ax%Iw`bqR5FRz;hL-eK|XeIu>Oci`Kh)OY#+oa@n3QV80>n(iI&mL!Q_0 zvr9Vaphz^-*E@jh?+?Aqn!)TRutn8FvKre{CZ?#O94IR6m<xN1wQ9~y@4pz~W7||} zOJ2VAQ1A0JE-@xeLAH~rLB2~!CZzF<Ehwp`EcOijqMywitzKiw7>rgOqcfw>|4r{& z|ICIpoIsI5Rha!Y$jdX@c)k|_ej63jJn)<`0a_3QtduYsI)yGceS3QGlx}ZGQJKX? z`szfgpT?GG682pDq;gqXO3y0n=<VQzkXbBd$~?K0*z2tGvRjpwzW<BViOi`CK*UDh z(`0f?Vmyx{sMBLkMKx&;Kx5Lu{MjW`G*rVVv7s7?GN?*Kp#om~u%Z3!1nyq5B>UNt zf+;OXroEl%rFb&D;-PUdda44|(z%5Pbt}uOl|W4`skV0&x?tPwPXViLu<wqG5UChb zTKJlTtR$o430>klkHC}tcQ#R50*ni)d9ym&-4#?t!{!eT3EAO2cAyypl7a^5R`y4t z`ud%e<ncBN=#U7jpFkl678Z~?8l+CCv>ppTsUa9lKFiK|#)M-#O}`>cHST%J?R#HW z@t$rHB$4Az)+|a6TyTrc0&Y+(OyHi^0P=kVJ}A*a@d!p;ipj80{d(D@|7??Wn>MO= z&LhFxM5-Xv!AxZ%`ZTPYccxcs-Y*pVy~r-t9ceHj1kk6G`_1O+0zn=LdjRZ-gsU19 z)D*RAJw2M++aKQDgWdI!r38*-R!cY+b3xQWTt!rQP~`R!9;1t^kCU6Li--N2uhl7f zQ}G|bMsZ#}T%U`4<m&kjDEPXWK5y3bc@&s5k`kkXhl{Hplh0SUZuM@?PCgFvojsUV zw3ylN2Ddk$_&1O{2WPK|2TV*k@zu+0kf5L<y4ZFff{H5BP)R^y5cmUvqBIC$9*T>N zy5WMx5=uXkr3X<*q^=amAc^gP*GT=^ahH*CPK%uNN&E4|u038#3PxEebI^x=!OgEx z&NL&+96TF8!n^Z>$ny%=a|^>BfM9i-QG|!Pp>UsBhjA)(Ihb(Tk@2qXO?V}NDvGvI zE^2?168M6eB|XxGat3gEi`_<+4Roqk#<nQuQm3|1Dm5k?24~Hk06hEnUoeng&prTt z_XOP4$8gQt+3c8^>|3IzN5VxK6GD`r0j`p|6Ltjt{u}u#CIFF1u#<w$B0Oe!?1Y~$ zN04)xhVW*Mv2COh1x`tJ8(DyxWPYv-cnDvmzz9sfdW3OiKlKiwyi1@x#q(ZV?MVs7 zMaL0Cc~W$kOrxDAZB`Ci?i*23tmD`=j&g@Hgn{O7or}!;tGswQ%?G<wwx`Al>ydJ- zmix7$VX~5UOj-8;6j%??%0K{HdT6h=Vy<2ce=-F&pIcPfnmLj)Xh@eRP_5&YclNCK z6_)(8K8tW-Bfcfk&t2~jXKkG;e)UDoR*zSyGFlR0xGH$LF{$T&A9cy~7^P+}a$#}T zif)SQ6hZ~Z3$-DW4As+YLvF31%)geo+@iIZC#i%Lge!0*j@;^_E2R&bQ6MIUOT}@~ zALyqa(&`gmI++>O<oqn^hwtZ;d09VjLploz@B`6LzJ;ykbJCGIaf0m8NW>EN&X#4* z^#=KwUvqLzPDh3&FrkL>(_{|I&=20}8a>l|h{iXZ0>XI}DCY{4*>8+M5;|Db)){<n zTYDaAUX+67-UqDJ0_1Bp%9THio&^v)mgmomA@JrJS#V}TQ`C)F;Ow(!K_7-SYc9T5 zq-OuHQ2#n*E;f#vupt!ZgyR;*)x|waL4<jvC7u*o-ES;NILVoTeMKtIHVpMYzkFZ= zC1Fsf0GpC((i@$p!A@qE7z2Vs@ESor)SsWgBg43kx1XnC7-p@0eYzOVg2KGuj5*9u z+;Mu9l_#H46)_doky9EVj4`I3i@4~n#}Dn+F?!X{0B~svm4h#**s!k&F1UsUMXH;H z8%iv16sM!=D^U^TO)z*S1wT{lfIevR!|~)|f5lz&bP0IJaHhlr)7l1{%m%rs^A;eo z=@gG5(c2+GibV`2RM7UV5UzX_J`$Rje0MPkE?)H5=R_w1M&H7U-DMBXv+J}lHRuke z`oOJ*wz0?I5B$M3vG17#jf?aVPVw-11y&g^#dbE?gltA`(wUc_Ce@{KH>iN`Hs}=M z;UaRT(y51To4!az&sMD)EnZy_Nseo@kH`4Ft$GzT+1q%^;;`0^<8jkISV2>ta;=rO zTRSHY#nz(o9F=e^i}ITynGpg{j#V^f?K8oEGY!55%Vz}y3PmcCL0c>j#IYrdK4#rd zhl;%)ctK74LNXsFIo^B2Ky+tzj#h;deug*vt9NRQ1BCX6?aPKs&69<6vpo4Ax+0WK zbFMSs<rU{?X{VzVUP|nl$b3^OFt-BS{#hd<o{{l6&H}~8ar;RJ0681m<zp@{+pmvp zPir{*3hITrL4>fC<RdL)&TJ;*7JLUN+hsrpkU`%N0V8f)qt^4iJg~l&xck6Sl*23L z;o3I8pNzka`EQ=yVJ2Om3$wL!?<*mv<<;xLu8d-VRa{Zk8Q=TN_DQ&WR<uXFgvvM* zJut>z$397xD`WciRyh|~Og4!UVV^C#D(1HIO5_4$?`xsCJ{`zjGeVy7O-P4eL2mx0 zI2%(Id7%6jZU`X%chH34-=QbWZH$av|Ah!bCze63pB^E|<tu#nKp5&OJah#CS!)rJ zA@zW|wJvMVfil1BD@#fc+OeVA<#~&XhtW^!NoTfF@yv_~2iR4xczV{ftie#H85%PJ z-e>f^t7de_XTr+=YvtnA8_cBpLjDXK`wwN}3VhghLz=<Nb$316OqH^JEgKImqf?Xo z;m`uALS8tmc2t76?~nZuLiFUI2o^1|>VQkCVX}lvJ<r_B#I`Y(Sg<RBWms9eyDY0h zG4@PSDm%1KYPYt!<P6kEf^xfur?rM)Q*EV3mz7EK&QvHF?SZ8V@K7N>u(r{aGTXm6 zHc{aj)T3|CC-lGNeEvsAef(Wt@;9gI8Q9ypIQ$2D{Ezi%B{~{el^?VeW74z=%}0BC zlv31+zojQ86>3y|NYYSGQcEt%FV9bpO3zJGE`ds%7^9Y3`YRtDl_VY&o)vxLGxQ`B z;Kcx=%GPhj8yv!D+x9@}`w0}jzyEbP_TLiUSeYCA%S!COmJ9ulG>(6F&R?ege*G7% z{y!`B^8PzP{g1aWw6(UjwfPqj?i4Sj6u=KNeC-+TO2N(;nXLwwoiz(Ta|%c}qq0%? zW;eFt?b07?TAnF>H_jI$b3x<pB$`Z%rhu}jn<Q%iI@e{^oKhxH;o~tpx7jBL@^i+m zfZ(>QPm{8OVA>%yb{-PxaNYS3b=Ix&9qZi(dYF@aKX<1M_{=?d+Y0P8<LfZXo3Z!= zDMAlVC5)QRQrw>};fZLfXQB55{eT;|sUe5gtv1F7skvQbjFT}8i0M4~_C#JKj7mCy z7PPz*bN!PRMqKleAqY)n|B1r$CmZARiiSILwoMusG=Tk%muaH87<D1w!rF|P7hvDj zFwq0wvFQc!1~_-$TG#llJ~fn=L-~QVZ{N(vFtJV8nv8l427Acn#Bk5c;2ReAPk~_} zw(@io$;+gS6yupcOL49^N)=REFbTmN0jtv#?1J@y7qi;Yj3==X&|wiv>{FFqXJgH& zySKSf^{b8){EcKn+J^7cJs8+(3wDzTzk6H!T}gWou+?DjS9@v*^Z%C7oR<$Z{k|vO z=eIQEzb@YVUl0C&s^9$M4BXVRc32Zf`n=L(m|Cn97NoDqkTDn@9aSf(`gs8`Wj&S` z3KLKn5vwjia)k5seD1aw$t>t<X?cD2LJ;uaDChG1c{a1EM2d`Oekv(-s;RHPpNyDg z)}+oyFwYS}+22<4j<hbX9R^Un^zGy0DB*c_4o@kiD`jR!g9ja~U3a2&FOYc7U(SHx zy53L{D-kbdbKSk1yxGtKJvHir^5?#sIc-~?A=|=1)+}Bli3-lOa-})sZvTUxT^wbM zQ>4(QyBEw~vrERNYyZT<9aBIWJ>M9{FBTfdd7as7bbyoBcZ|Sdn?VOZvt`J9S2eTW z3A4?0+MZB#j)#5&H~8F!)v*r)Mn0wG!e}Rk9?%8ES9~+Y9{@j{6>S+`yjgg&JC|V) z)%Q_3?;x8sJF3AaHk*&qj`io|V(<5{EU$KEls4{W@rhU)vmFPU<UNzfmyA$OdqDI$ zKIY8yk3ZK~YaF2OGpFbmE1yaEK69iTr`;^$ADQ_yS<iL{aI(SI5%Dz~?iF&gs}$_N zCC1@ImRTN7CB6*IgzF)_()Tx&j!A{SCP-G7XKcZ%faB#vuQR)%ohkk_27lV^!abU! zpU{eQQ<y;_JMKM@O^J(q^>Lr$x23e}gl@y5PxWNsz-CT)xD3opNB{VvC<HIN)kW1q zk-ln_IY0M$BAXd~^nDOBRl<RkLj2TV?lT2)V15ph#1->{m<v7Usc$riw93}>s`e-S zNS2}Otn`(Kze#H!u5+fthzYHF=k~7<fcEwf;rMPJ$hb|Md4bC5oQ&8Snb2dT-6R5C z@c|Xcy&~a4QV21kKBR#-VNWUnM-l^FfA-|il}Iz=f}c$Jo5`VKCIj`-(bGATvFOtz zg|?#Xs{_)KAm&ZIHz>1IA{_^z4y{=D?Z?2)z<D0r9GqO|t+GDsnBHeGncDzvtpTx( zO=ly2glR1^XRhC4xJZ0{ZU&uWwm(&J66W#!IY1J9plZ)nc=wdedzWjryo?N^zgJ-| zlH#WRlH%*>cf{RMvNf+qZH`9UstdmI<w4{cf~4+tdO)pC;JoX{?5ZpP2w6Ur!7bWy z!YzZ#4Y{rf2J#4e=cp4>Kb_s()gOWeEOA5)VJ1RoBNrda5QEGYGJ<A$HAc1{bHp1Q zDK1D@K}PCv0kW*o1DEE0fI98Y!O2fX03taOPI=gU@!cxs>;YC~jMb+D<S;R0N~+k@ zi6{es$CB8QtA(|1u=KCrvF^?JXl#bSQt;HVWy`qqg62{9y~e_N#IrAR0cJGu0?SKY zkGR2esQ5!r{zi`Pa6D~j0UGE}4TBa<vZH8L&offy&8xxyN*mU0%EPI8LaYojY7m4Z zz!=J$gmG*@md9eZ9eb3?3vO3q37hVPj1rEicapr+@@y3PROs6c1u^$3F@|LPsKJ!Y zhh_jix|Do7@ZB2AsXbDpZrsJjB~;WZgpr92O>v52HtQnrE<m^`F+6gLO7=M2qV_~4 z?OmqskIa_tt$|q=l)Y<rHyf>i1~bf8{qU~0(<po*ISiZKN(GFf6R3i73=iR06fhOx zT8mf6KxL7R#PO%VXSgT~IzK;a78*=@xmSAb6AJ)Y*SyNfPx_#^%h2!)`b~j}!d@I5 z>bCdSqCp!i!-xHl(rR{u0}=}XQ(5n`BDSa?7t7|ek>n1H;9Gxyq=r#7A2%fLdmx`; z*sM(xW(RmOe#Oav6AyTwen8yWqvYEJZ{Z2=ELbYPr53QD#d$Pko1u_2e(py`<GWXN z1~r|yWNz8iT$0H;h@VXw)P(&n6cTtO36wBK1{}K>6u@1TWcIe8ak&Pq(UEkRqgFN= z9BM5?gweg&e_mKGUkRI#_pk>FdhjM#3bBJ#XWwE)>M&wMSA8ZVPTB2KQOHZ>ZG97d zyoeTu#DMaqljgiLk|kHosRYMVtvwS)z{%Z;kl7>7F?te*c3{o}7@*I2?G}3tD_!v_ zz-&^TW@#}-si_<N;#p{QDNlaGd!xYXBibA6(?!$?LQNpWS5*i%bs8CS{gY&p%}J6w zK#s$xHFlsT=D;Vbm^~YIWK_9(<wwHTLfB8UFFhf5C67j;sv*Ol>OyeKQMy?X2Vge# z06*IV9pT`XB;s}aWM$(p894a#6pKw(jxqmoulO|v|L!PLPbt&(d(rHw5sOBc3}9Fy zU{Zywo4&CQgxS2PrwA=fF<OiQQI}dDBblrDXKC|iAP>`23_h2pgW3RUR0$*)W+!Q7 zZ4gXdYh|oJQ#Mjb>JCQPYN8Cg<P9^F=?@LMs(jy}pG5vfI+TepYP<fep^M7gvC(A% zr5#1V7ER6>7i8iKZFXwnDM7i+Np9OG@}*Xe^VTceWdw}2ger)bY%FC1OwJ#u!be9w z8F5fLAF9NM>yJ=G_jszHac&M};Ug{Q$^u4PUF8If*Y?T?X>2KF6{Z_5-#={`RT0u$ z;G1vm_KH<W<ILr%=G=>AsFHq+BMw!F@;+Ofi!e&)2ME|>mor|hv979GG-VWCjtm6e z5iZ99{C?f2JcXj)L!Z98OZI{pm_j4Q=Od4j_gewIvoJW(j*b|pJVG0&B(v^qU{zlt zku$0?#ceC?E5*e)WtEGr1x1T&`0m~pDK7;O2}e}Uv1BfZR?R5U8tx-3Fse~y(eS>Z ztsbGziiYU_%e!$ws$UGvnw+V3ltxtVw_5v*0_^QIRZZ=d0!qYk*j&a!s}p%)5aI3U zFtLY5-%SJ04qswa*xVC=nw7E(h&<p&!ijG_y*lwy+#Ud3ZY$y==}LInDmXY}*|0|l zXL-(RPP%Rov$=w_pT!yC6F}U^R&KU?!|<y1!G;_b>;ic)_m9Na6eC(vDx)YGq4{4Z z!t>SGrnOUNcVFwLB#3&cib$*%=@~ORHZW`N%Cc8SLmvGNT5@rCVenaAz0d;<wE9Qp z8G~4OysN@l^m{}8=TMp!4zW4z<3;gylm?kz(p7}nC^&(&?lH?eInEhpaLo870d%M> zC*N|u#evGA<6*J#SDfK>SAvui!06Q5<ESP_-h%ocb~LCrXF`&3DdOu~Y72=iQjluT ztj=uY%m!_BMqs!GXCXDo2x3^?k13ARVU)gAHw(nW`1u?s!|#yAvh#tF*{>yLo_YnU z^&e8D99styd3;N1rCvtX)ju4<_#{-YIHRl&4uF7`3m_W6u?gu8U}Dh?(IO&~;-Qsu zHaTCn597bQ%<r~QHnHu$z8q5{corS#H+}dXsFq<i^_w)9Ki5F=XyceAFj9s?N+4(~ z7C4CC-XBoO7*vlg<e{`|sXt6AYhDL=CEExci$=v}b(8q@9-VYsb@Ka#SVkUs6dP$r zOq(k%l=RrG#{yc98i=M7%O65MtflaGUz6Oz$og_pjlT-rMpxbSs5$;*9w=y4N&Dyz zsX=$Odo=E7)qqqldKd+2x3cw9NaMOu<#+p!nAFrj)UdIUY@^7L^#ruJs&xjCAdsM5 z%wSjfeS%qSKV+LYjG;~7e@cqWqiq8l+uq9wB0xYL)pM*mjq0xF47(o52`pf-=S1pw zEDJ+8Hd!+S+$q8M0)3&WFt^a@0Sl;$g2};FjG%?Pu~W!}rQQuf*ZMW3^=(L|p*#B` zUtQI67ZnPQy7;E-fX?Wjwp;8u0`F7n*62b-8_F~pI=49f*d)Oo-lIY}vj@jzY9CD~ zX=Oq$V=v<tKUJ0aspZPSRs4$pGHIDML(b#JM0f~K8R!l<Z`px7W-^}SikC=CTj**) z+cgUhDsqHN+E(IEWOr`A>&J>yH{f%`H;Yo@>mT)+(k!d#1Kr#^ljNhX>`#Q~AJ~GQ z(DNVAGSQB15(qE)Sb66JZFfKqK~XP70ubPd8iK=q!T6+9@{|$;dV^LV_DU7lo>YJ* z_KmjY4)S7Zh163?T^70DE!xu+Fls$<+qAM}AH553#Kx&w0b(1*6I5wI5@Go{xK#vT z1bkxS%OFMIg-lH;32^S4b*ZGfH`qMId4eyR>=SY@0qlBKP0y=;M<%7r*bAots^`#8 z-4$;fqomJ0j7nNImdaBT>jIg^X)FR752R6HSO$c9Az8Z{DI1N7l${RLHg7483vyU0 zR~YGC@20CTmdQu8T87zxq0fQLOp7Q-jV@<hh%0>4s7Iz+xc8bt)W+^=7+#=qWGtoV zcNnCY;lbS_ZSEshxD3TvuE}FelIi0S9{$f<tsUjK?}R^orzV#x<NY)!xW!+kphjwZ zsAyov6+a6VvOxSGNR$5mczeef(YmEuxOdyOyLa2RcH6dX+vaZDwr$(Ct=+b}zkbep zzMGSq=bq#}@6FBpwUU*!l2xm!X4M=u27M6K8j%n_&e#mDJ;s9+miqxaE7Bgm{NoaV zLdZMZm|d!PhOAO5o`HWCXb9t5RQAmV>*v+D*H9FW#hRL6y%JyfJef2S3DXNUq4E2M z0|9oa*Yk2f=GQ+u1Yjk46lc%?0BB7AuFU#x0jmGC#x`;_FtT+t``a>GNsivWA0PhQ zZLpA@&iUTgRKCDAK8#X@9K+t8DaqIGrya@CHV}URVcGu5<~p}4G`OE<by#ymEe)nr zC-e2Ey*uX?Q=2Ceu2RhrK>n=?L^rfA&)W<-GhxBq_tb=pJX9V$W1ivz0VRrg)e=i^ z4o%A1UE(>r8zb6mDM60qY66$FF!Pi~-Ti)zKT_*Z3E*0kv>C-wcY=&JKQ@_BaNz{G z_H?w`2L#*suXh>SZXmQ-&BzZH3DnU;$tzBHxNx3xXNxX|ia%HLzG^LiOP&lix)jD_ z?g|%DFDk-s2w;}iM-{~}5!T8xb-aJIV|W!ucmDzr4gK4O(tljjTH5Ft{;#gmUnIHz z|5@S%_lE}7@ND;;3Y9e$ga)`|9LbM(MNowDA-)*Vc(f9GQ7BF7(}ebTn8uIKi>vde z^R2Dqp6U5xtNR96j>+?>si}$Yb;*nhK`e$DlHX8UUsrca6FN$kCY_H_%hOI&)J@x$ z!h&@H^J7MJeRrqZc?;Y5O4u<g7;_x3_>V}?4N2%WqWnxRG63?m_fw98GaLFNC)lQ* z&y~`X)G(;DaI+((WyGmdO-eyOQA-icW$)^)9?Hhqpkbda2wrgWFZ*|IXG9SP%;G0s zH_r!J4)OInHu3y>Z|QZGK>iI*9!y6cKWn(?FZy$wn_2Gd(N9ND7F}MeRo+f6u5XdB zS?AH@u59!*niuh>$3M@LVpk`_yIXo!z%GSZPhiE@0jDC|KARU=Bhrczne)3jcXOFo zpbc)#FPpIMjW-F<{*<?l{kqtXQEmMJ)-JpOv$5zQV5oiC$M+4(FSVRp7qC;((eQm; zf-9Vj@UNtqomJ6Al~Q3d*<e4-cO89JInO&zq1}f?V5c0y>dkwv@UlC(&S8BxIB^}V zo~a?e28tj)*>C3V3j@F6L44-8H_vckxUO|1p1W1AGg*CSudt0;+8$IOzJjFSBuleD zZHPSkt-E<ovL0Wn>+eg{Jj~~PT$i542A3otz9zB`_E~eRc%Hc-w(EAb@1yE)Y+Z?w z&!#+KG)*D46R)k(c|$TkDQVyR0=H|{uRd0=pudVe+|PS_N)4^&fqXm{oYueON7o(T z-sPtGcdo^!yBwa~LWwbY%U{--8tc}t;J~UmL@-<jztB+Mql-6TMFS)Ic2Rh{n|FLT z&K|7}<*$Ed^BNxfP|R6o$94uq|D+t8?q(O>D`3^_v3}Db_jc~M2E%YIq^&|gybk$( zP__WAXK=O-`6ss9u8ih$^`fgx$F&KDs}bH*#tXNv&`ojul$p!(ZA1N28)wY5INmh% zb232O><`%LArHOY>_>0U#8cmXO0SNFo$08@UhNB<?6%wY#<-B&pEjA<?fp|(M#vcN zIw(Hg^$$-{$1|~@5Y-0+*FD|$J(M2ahkjS?J1AeJV4poe)dv@AKt2b4Dz}VxJ=w;) z-E#NCxUSQ$x05P}JP$qDZaa&vXt>YW+}GwES6tWKt~=d{*Dh*qTb!KS?~9@JzACrx zz5ZXV9vmkZ^dQ0{3H_9ApC_><#Xzvt2QNqgXj!t|Pe;J0^VWC`h#gZj=<WHP)_6O- zo`5#w$HxvPyDbOE%ruuQti7!?f^l<RrNO;1U8TYIbNsJOm~%b+uT{_x8GRC5;fXN? z0~*{;Wdt9V1f3PZj=BUFN&*~>F^}a0PV{qk_O~f-?qMw=V{|o)?&NK&YZMp3YAzd- z!WhBYNHh<oT{MU3+TbvA%{s{hsf)iTg^Cr)?-46K)Ge*76UAG!-KZO`96jI4-Xu)A z+m{1MCl<fwmZ%`QLwEU1l~DF2bv>0p1m1upLA#XhvmHTqN^oGJqoRXJi#vbHP6?df z+GH?>*H1<KP{1vMy8fc!a`m>gdz$?5esiI6{ng!vw~eDo_1JAR6aEnZ^bGjr_|grQ zjK!IH$??&tEd%UH+pFWbnY`)s)|i6XYlfyU)cdAe1vXslC1`rK_r7<#*FQ*#W;F9+ z2Of3unY%A-^Ireb|M+KE>3Q3&=JP82VcewL!e<M-e#NAi+v9?M<@k%~qpCN)JHw{R z2dzR!$9v`VUhW-+`pfKCe}6CJqT8$1<K}#Cx^h>@<H3hEi-jf)%>w$({(}6<#puwT z9_wa9gcnAB4cg>RXpIm-#*N70pdXUp)GDRn1<oJ-lXPcHr>Y+!6GQ>BTeRUW*nO#m z2#+^zRi9y1ZimpK7i(^3Pb~lf&DR4F4>aAx1KTq8N8HMCFHtV0H@}VlY$ptD7W=h( z#{3HrcF^gLw=~kIo1lvaveYqMi=9m0X_l(^p%h(n(L@Lvyls)l&VrP?1ia1R&&_)- zasJe7f9CB7>I}Kf#1C{5M(O%!k9zvd!lnILD|oQ{grOprM^jqNdFizc;AQ@YPe+4D zq|O_~-L8B)K;E3DlamXA`#XlB-t~bRl9t_{Njd?mCoI2jkN|AG7j?FS>uWy|=f7Ew zT~dngAjU6YGH1~Tnz4rEHY8Jsnnw~y#B2qEpof{X1{fLguPzdF9D-_P{F|Q9K>Oo7 z^KhuQs0q6yU=VbWZ5CXH4p7b3c=^w5ybl@cn?Nhx13_c9hGyS9|GZ2O=HE9wMdN1$ z)nnO&PwdDp!A`h~wFBU2m(xRNAz6{NxpG=Y@gP995&2;GRS6-jdBZ6(v5Rs>zWTx< z*X{zbWeW<AvPF=?e@1md8t+4hqG*h&4#TjhMOx*7IgkJFhAE2o`koL%jYl3}-LR|# zAJnas32=0T`U&}oGI*VBJ5-X`T^~z-C#dY=a!4gss%)^Z->@=|PMh)xmQiw&_8x>_ zJ~X=nWSA|}QheNjC7h>t6DNHxEJmj<pAPR1hRNAVig3cq)Rf{c@8N#1j|v5*fku;E zsnxKk<FjQt&&grVpgzS)yIcpo3L@?XMa&c&Kl<u~EOV+l--jNzB`-gQ#6!%t%N2@5 zCv6t*;`;esCzNGlZp&k!RzeMus7Ghh6nH);Y0KD>Cdz-<LAf_POBP+5lmSnl+cSW3 zW-^QpsHy;c0J3_EIO+4g2UTa(WjwS~!W2QMHgPPM0r*r7>;JXBw+2!rtlSFPE9JC_ zNJh;Ned^?D0%K8LR0Bj0QkT^g-QY=_#f}hYNGbqdl*QZKAgVd(Zh4VFVy4j0q^xzX z2ckg4RNc=e#$0P*PE&Dnhz@SDT*M7Yf@J14NVrD0C>j83Al?@U907FIXBrEDH0;O( zp^wk1rpZ_ZaC0CQz@<>Y`!kZ%l#E@liX*E`H&xeBDrt1pj08C;+|DaYZz%&RPpu)h zK(5ET?tMd!4ot=O@f7Av3?Zq;s8#61a)VIQ;VY|z*!QX^HOQMR5aV;E3hAAi8>vCn z|LeiOu^653*9gty&ou}t!Ui*Ul_Wpry_sGf%f7TU^rI0o|DEu2z}Dzj16ysfz>Mwe zi@0M~#7R0ixDla+6pNx?G{jO(XG6&d3j@Q^Eh^77R&=+0{y(rnyE=8vs*cmCO6mj0 zDYfsdVe0_<9%xbm4Q`)4ZxCjsnBjx6Egi^GXh?*o=IgZ>%jZ;P8JG%hU>x?2b;FSs zU(g%yGeG8WB2aI@U)1;BEZnmjMl{^F0aZLCuhb8ogy<v$y51;ONgj*W^#~s=((8!F z59`3VA&u+FPy~C|NK4jsUm2tGU3OE*xom<2JEV-!u3wj9F45l&PMA1{_-yh<b{y@= z4}jniOF(-KHTEgVk$-~J&I=^U)a3j^L%n4OYZV-;`NJHEI-QF^L~v5<@O&uWJl##c zzB6SRCtRDh8jrsqnUvSV=?4<`^#qQbGe~6hYc<=r&dY&v*AMa(XdG;)cS$?>oYI0# z)m~%@Nx;;1bG-{pr3Gh@wX$+@veJqM2xjXyz9Mtq4yPUVMu6_k7Yod0l-rF=1!y&M z_4&RM>ZHtORfhetTrYvpVbjvg{T?XMLF>T>F>bPPB{WLot-%d|igkq-$80w`#eTJd zOilSuNGm^Njg04O3|fzwhCfXk@&W#+P;b+L57u9Fdd5R_16CK$M}#KuxJ@3G%6zVm zd%tgDQ-2z@)RNE9*ITbc<UgpFh0@Wv&Xx@Tlln?;1>f-mg$7{3Yv<&eg0&-cZUa$H za><=ihYtL%1wcA~vav_;@xfv^p4nZ4VkQ|ENUACE9AJE)aw`nih7`;PmB`{Arvssm zmK>_+txv>Ej7OfMiy8?DfzMMpr|<;svt;d;i&TPR?If!Lb%(F#qG$$k|6^{-c7us$ zL>=3MAv6FPpy0zo8eRykaVu%jQXUeXiezl)?h(7ld~*{#WB~p{n4lkuoj>RIGh`B) zbySUoZc+e*xP^Kui!I}$Q35qgFoVPA^{>0((F%-WZ5e-hM|HOJl8qA48dbko7ZxXp z#bi($k;e7a+ot?^2)2^Z9q(_MV%1+wwrqLKb4;HfRaRuOTzk|@<8V4155dGc*0p*N zEz=y(oxy(LrkJ!PI<AMfU`gvwb}4fKrhvUa>dDtqF@>NCH3?Y<IfUTq<q)^wn=;T~ zrMp<IbHWJ?GE%0@Vpy=y>VwZyDuCifVKls#M~T2qylmfqE`%p^r-Il`W1sZgv8G_3 zZ<$hMqfD4=apw_m0=!JkRFW$VPyEK9u4Om8mog(4k-+(-@g>1JI!%-6q7LB%vR;RE zDw2YSqE1CDEd-z#-tv6x<UyqEb92fTED)3-ftv`^y2YE2Cv_+_qK+!Ns7U8D6qSD; zRil(IX%rn4>)Tip%aEsa>o$Mi67qcubv3onoeFhw-b;9{`0P7#_F=|-66W_MWrf7- zd(eC$6TXIxx*u^@-GFEDls2xcc`r>I^%dJPfgHD)g9bD1e%5f*zM@AY?$uI*PLrTY z?@d}eB6fA<`0x$23LB^yss_JJI<avL0O>Ml(!)NZZ{de)MfQ-|cnh;SN34#)lB6<W zqHS@GUY<{<H_Nj?M?=3reVGRmcq%b&j%2K8Cfyd1z3YpIp5p^Ph?=%gl0w|!f+4#Q zxk@5&q7l23nzUY$LaI^15Tw47;Ds?NC6Q&ru%;URG9?7j*+PRB&2OXYu9PzHEi^^5 zXH3ru)F!keu%)_nJ(R#qA8{fcmqzDQm31R$%#tgvH?opLVGnXLmy+11k<<rsVYRI( z;yiE6=n#KksBzfO!70l#Qq&0PqgHl?%%^b~ox8#cp(PxxNyGK7ZJ}M}C8+IJQ+c>^ zM*rj82`;-j%hXDs4x;u`!O;qWqj;O2x+%K}tZ(cSw|@vUK+8ael|y|R;bL}E^oqMN zd&h)!r~*^CH|?|$!D_9wpw;ph?t*TQ)^A5WdD?jUt*JU_V=oy7MUd~@E4=ZN9FHQY zIKe1Y9nQHmNPn7;`yRH#DtTE9ISCDdb@5GZCZ6}dOP<JtlNIiF5T%NR9KuYE((lT) z>JD}28FHh2=*_E&lq5gwQX3;<K2zKpK5g#B<vHCGOpLVXB#vqiv2cwQMYnSp&aJju zpC9W~oUMUc;5tk?oc@V$eEgB*@!~Xj_-OFl_PcOPUsJ0Egfdd2gThN6F(wd;{g$)Y zUT_ULWMg>ko<=h`!%^^%fS7#ckJ*c_=2;gWbyZTsWoqw9CA7N>nK;H|0B*G=!*+Ca zHBwq0SaDV*I3@Gzc9*2;#PhTk30KmRh2CWE+t)^Ii$oUfPuUih1s&8fK~+&k=E%@a zw_?6b9@=^kbYr|mbFAokO_O0+SMUZ?{Iy4bAB~u+y;2zz`?}`phA{aIMu8|Lru{?a zVNTO0wHmddl6ag=dZAj&Y!(OPoFEo-xPG-wIP|P79oNC~mp^^^L(k1oJw#Is@LUqr z7@yBBC+RH?2BG@F!^bRh^V%*8a4TQe;tNHYJ9!MizNIM2t@lerD!7WfkxR>l%>&nP zkP}-47<*Hq`poEVmRr-sT@<wr>4`c>TD@>Y=DEqsq_}Gur}cO;{!lNwxpRhZO@o8@ z=)!6veR%yc`MLcgCQafMk6^&Z1DyUS>;5Yrp3sKR8eGqY961OM`ZaW`w4<uKFD!FQ zACH;p`7(j_P+9#4W%0S8FmgGmUf+~@ip?gcUCWj?#o6Z~kP~3PCk{HMtQs#Amaj(s zdV~|I04@mKp<6q_Iwi}XA*;`}z(h&WymWk8T9w1;K#CT42%rURehL5-(|Wg9ZcB)$ z?b9vb=*2t!q=UFR_Ixwc`+e`H!}~`Z8)+#n`tV}J1SA!4vUPN}^#n>Dys)+L?v44` zEQat9sT-2N8_iDx#&X`6V6Oc|{B?Nx^2S-=yW&`{!n`5=YKlQxriOVsv7VV4#3^6R z*?aCne43oyYf&3jK*s%;KMrm7t*8{@&a--CmBrW1Z6t!LKs=U~kQMw9zk|fH%lq=g zg@hhn!`hgU9xr+Ai*DIXY-U@3Qj;GndlBTQyA#`1WY%_g$vVr4C)nm*FTQX*&71px zwMwZ^HJG0s%P-W#opTLHGU4#}yqjKVT#n%kGk3ly<syqt6J*ti)G$g&uJj-Kt5Reg za<1_#u)u08A4VG(pQrCou7xItq#lPKG^H*hF^UImu6($zvxsodh9)DkDL%=$tAexJ zMH358(aF(vF?1GYs+(}%ywuZ@&YoP@x7yYiKa&Blkt=jH{GP7zB5(A^oKJ|alz<4V zu*iO-N$d_~iAfWM=g2I6;tGw&PydsQ?*-IHnsd6Men{b7r3}$%dvJh%k$Urz(Gs;L z#GI!vtW^;|Uwt;o&GaMJDO3kS%Q3L5p-7E6*oN-7*r<R@O`}|V$XTLI2MBDs>%eop z6`I>+dm-OyFA!$Ft|x}hsEN(64^=yaO)H^({I#T1RHvM{)Oot4%AcN-VPaX!vkQ)D zgsl^0zf&KSA9R2dc;|o{LM1`cG>)&nH$p2na46bSPh*qXKBCNk8O)}Zt=JvflI~Jr zC_{C9^P$N3NblFnd)bm#2rl=ObyiwJ29I}vLwB?TA%{cOPPD_g``DT4?tA>m(90w? zTM|x7nNj=1Yf1HN9kWTO5m?gZ3fFPRZ2&icBWoBVp%tPXdm%F+j*fxG-k#y>ize83 ztcgFnVX~b#2MdcR+KbgjTT^C**rni~^8TDeB+UBo99KqjGxPG+SZx_+;zVmGb-d=x zn#SjZQVjDZ_xW`YjYTOm%ZSuOzep0xc@`>?cn?s0w*IOnT?^Q&rpSVo!bCX}@YjR5 zB3!ITyT$!x{kZKG;}2osr=PMl0LI58gk}Syx-<?c{$QE#9B`zwll~M8RPEJA%9hLk zZcj*UQY&vxRo^9L)&P_$qgwuL5uJmFh`zDTYvdyrRI7N(*JK9V(H^5h3}E=Pg-in% zNdY?ut1Gvn_jRBQ5`_Mko9m>Q!UFFW<RA|Q+(t5WDTSKz)(BYyH^*gG$t?bKKS^PX z=)npvV4{x>5qY;f;^su1^br%ToHv0E;X&Hw{Wv~XfsH-OPn7<!Qt`CAEPvnHDH6-D z)?+9bvAoiy;#jg@G>XLfW^ow0+21uWU2okPv@N!_&V0%$HI2s<{M{KHg*s-waR~lb z1ahg#mwpA@kb&JgK`M2T3Vt^}LyBUeMIu!XkvZU`uE(-rL+FEQ5Bwx%DILVSdtc~s zaJayeY2PX=T}T=*Kwx{{@8m0NURh8NMm_JtTSC!6Mbos_f$JomWzAd+O53Gb-Gj!l zR4Zkd?JLITL8p$fH6A0F=s8U9Ono|ssvp}L1S{v$?;~E(c^lC_!*#mjabK?9sqGG> z2fnK8X(HP=8fDkA1(cA}N`@-$(+*S~i))j7eFxk-D$p0GcPIjH1q<~uaYlhzY8C6P z=|n+TL_-)f<JVRD7R&FK4qF6Nl-(17aIN*J`zo$Ea2rl?S5J3^ubG~0^z9TZ6+Lhr zjeF~&H^SlD8j^FfDq%+lBuTamK_+nvxRl#V9X5t8s9bu{Hfy&G)Z)*U9=n&|oN7uQ z+s&rS%_ns7FTI4;R)<5Pv9*)v5>86k6An|<>}!PeGPz2q0C+sBgSeoHS92-b&(`r* zto3M#AJn3Y(pwhZSfz>EtVuffpCPJWMi(wo#5>vycinEXQ5(Zex0+6{e8f5g3{VH1 zV-Re&K;BnOP^&9Jn_)A~6#kip8hTLOQA&U6qE-&8bATANdmNo)vfi%^BSUI$l}$m0 zNvDH1yz7D?_Ko{#AY}Dr<u^hejblYowR40aVO!8N{dPIGwH?QUi&HuQI$C4_gpQcQ zNe?cfRfW#^S6(?Ar^=M_xdOdp>C0U%jPX?RGj(FU=6GNCZZhc0R~A>7SZ`4@>wQuW z{!~Jut8pfCk!Do$>Fk33Vl%LK1x_(|O->Xrgk@|1qQp|@#Mp)v4<$Pv?KIrfpp?G^ z$B56}O4(0?R!(V|0@C~STat-xt|im7wwkf%jM^Hdf!uT-w&Lu#42>E)8^%(FWSXGA z5j*%oshQZ8t<b5FU;7XJA08^LQU~Hmfp(Ee<X}i6PRtiQ0cJ@Za5<QI@fi*6O1x0d z;`qyfX560&KlHn4P}>9(dDH8_YYR)qzA_kmLN-B~UgavBq&zNUQ!MHwCiREtjJ>BR zzvjB#!($_w&?WXbj#?GCAdR_1Chrn0d7aY?Y(-{)p|g#wHlynQBv-;1;hirrzP+Z+ zv7-^3G7FsCVlf1DH`YJq7?u<QHG;?oidZHnobVnf$E)3#*~%OYaT>$C2L@-yH{Zc{ zt@@!^`P4g0>q%Oo({b*Ddure2Zwc2vN%OQytm96T+ZWY<3QKmSEW4u=HXGj<g{z#< z_=h$AKCEO%>C^78T!cJ&K_mmTtx&UI&gjnT8^a!@se(k-bS_A=X*`m@xt9OM9#_UP z`7DxniwQpHvkhBC?DmcwT$mr7-nUaXuFqdUbS=qs-VcdZH*dCcW)-dl(&$axw{37* zhMz%9SXiyet9n&}WzeJoNp$l=A`Ke^%KVo_4EgS&e4g0i6GJN|^G=;2jI>v|cipKC zdZ0Um_$T+ixKUiTnJ36ZdK*L}9Xn(ZVfJnk11Rerv**c=fJV5F{dVoMte2+(N%_07 zxZC6lklRf;e~45SVXBMDG|X`8ZraO4YWG9Xqsnw9?KIHlXV|;e7<Br~6h!V=Nl+CP ztZ1=qFc~-)Zn&4^Rtp}iORp^P+BzKiX`DU~4fQObh*nTF({O=S*J(6&I6mo`#~Isc zHM3-z9`9m7tY8D_8@3DD_7_!Na7_k4O@{Y!q&I@?f~YQv45iW*=|I2xGQQs{k?B=L zs~UgW(mT*_{$wpt0N2&`xGm;Zlq6EJiJ|6eC{8ON=eSQKJ|lO50cOhGwj^{d;{#US zYK6d7-di(46zPklg5InTd^xua%a5ZN(I(fytbrbOBxp_(TXa5WIP!=*r$Sw;uJA+E zN;u<Ia#J!R*A#p{{c2k{nCaWb)}|6!5A4j7Z!~d3SXBakGgz_vb!HxvY-zj**c`4m z&3sZwFn58lBy8ua$a-d$_yeUuwlwS<YuA2lA~SwavYQB*{1s_+g7Pj)_P`lM*~0Nz zSfzB>oKyFx6C`>^V{P3IWkW(0fPKuMJ*6;8?gE7QYwW5{iRNqVN<3w&yqi+bz51&v z__Y0^1+%fsBI^74inVI1*rV1ik_Tr2klQsy)V$KJAnG`a$*}9z7RcHRCi+it_yGDn zJ~0yJNSVNK7G{AGVt3cErll{5UJP<aETwKY=aER~mtpJr`DYERk7@{Sg}@L89k<31 z8~6aRr!nq}?mXb9`nvOHTE`6`sT2LY$mviV@+C|dFOJN}=moo1wga~Jhs0urU6s*Y z!E-J%z9R7pM*d6Crc0^hIb0r3p-m=LcT?zlDOshF$4!{hP!Oz!hd13aWGdeL&)2L( zA(Odqy*=!DzG`I$8uVp|kvH~6YZ4<k@3?B5p=rlm8d+n!t|Kg^skh~sscgHvFbb&k zQ5uOygRIR-{<BfEXcf`m`fH8g(j~?LnY!`P$@3Lk5J80sbLb5YsXajRK|Vr1i?B14 z$}}@)NW~5f$af_yQPGQViH_s#)ne1+y*G0hRJ3VB9VWxy#+ADB+=)L`4l*j<hofJ9 z#3&fcho6F2PH$?A?Z+j{91UZqPJ}l2ymcf2JPYm6i}rfCUZRSe;-c|XPcw+!?3MN& z!3xSyfWtP;a(WXS9Iua^`#VYYbX5)-@G~^ZxlQUJNu0Ak9OXLXGG00G1#_hT&=g7E z@w%yk<8G^PMx6+{do9^eAP&WRGU9e?oJAk(9qkUDz8;=)un?o_!1q<@GFC~X?HXyP z9Q-p&E=%d14cvE6aHOM@#VC43=XEpyb5zC}*L*l4*hQySz|&Pmvp+@BJgd)e#7why zzjv-(7&Sv|YR}awaM!Vo`a*xHC4n)i`5UV}1#6X%K0)n0S1-DcF>7uC%bKMd7q?xm zD}hTt(|ifjDy#1}8>gS*Ow7sS094)JRQ>9cS!VfjW@MkbJ6qkO;e1AS{MJM&=chyv z=(Pc1zXuoC5Vdjfxf~Qb-zD|(Ihv2jG3F^^7!1vB&}taTm0>M%yvLLyh53WYtfdz2 zvJnh%o+X;9fBGI@1<L^k_Kl<i85EyC5rmB~)dzO$OP~!HxWN+1N6Fx&-L8mQWfK_= z6!53NtF&N1>oE+fVVwpjzw_%BqN1>x2O`M60uQoXtkh9%EmKAIc8%$$FzTIM&(f|f z$xH8Vj_Oe+QNIW~;l0Bw;IqEcgL>GP{aY@oGb2v48Jg`jI>L}gziUN_5eFDoGq;PV zhH+a^#$#qEPiSBRN3q2nebk8W6K7DBvXOK!8OtnXof_RWTX4WXSE*drSRMs>o$^@l zs327L)^@ud`f0A^-Zu-i$I@?qOj2EZ9ty~^4pfQYJ9bnEzlo_Sb7p8fqaY4CKYoUq zjG)Xunbw1P;TSqU7I<hH6dLlP-<^3lgthpo%?`kIona}e?fu%E-FU)HUYc!t)5RW| zXzI?lw4l7JLE0uFtF5WdB2{)IZ}WeV5S&|#I%uVzUEWB6UI^R*&i4Q!WdRIpQ(sow zKDbL1>1tf!p*#(HW_kEP`-8K<JPq1z>5+j*YC&@cJNzZ5npbp~TcJFhURy_{lxAp# ziqNcTaZ{hBa(4&Vj@6~55=3MU;3~c1!i&YjK>st(?pS}9Bke)eCCo^C5zk(DSUtZ? zTk0`1IiA{$dsQASVX-SO!t4DB-)l;u_V$&ESsSkPk5%fvoJ4k%`m5~%gGoNFoCuXd zpbb`u@${|vjl_lUXQfLCb#-_ZIqCx=eV|~{s9=>l=>3L&hvLz^vyWvK@`C@7Tj;A0 z#t?-=^_n(YjX|Z?&{);)RziyXDpLr`F1JSDs<G84FxJ|`guq>gZ#lU8=#Dt;)NC@k z2G7Pkank*n+C3fR=g?__yiCdIPkrMh*O$^`x>yfpQEG^rw=MT2#me2;o7tNA?X!nK z5D&Mti;g6x7&QakAau0=UHXYd_@t5@9JOS-S}a(8aJN17KuJpjHo0X*0^Bmy;ZA6y zK?`TxYhmpB$6r_L%UV8jKkMOqpqw)eWcxDeRO?GddTc_yuKLH2>jZQ$(esU?=8S{5 zJ+OY`Lxl3@Qc1u%_QW|Dr;s%X<*~1A#OnAu{h_txHoPC^*OI0UXFT<oGw~^ZRHRgA zsY%Jsc#P8ZQXyV9RfY_=fML9cpd=Z;LqA9&)!%^B@q7~<#VJn$x!10Ft$FY+#WHhH zfHCH;d~r;zW<*><^@i%Yg#x^YG~0|*zO{=1RV7eC!F|Lx?1y$1;a!+C(H_^Y+|;!6 zzUW{-->NmlT<2l1@t?nnTjYo9jf?d|ZB?(qQbC>gBSJq}u~!J#6>uv+!ERH_1W|RG zyD8ovT92Letas4qc@G<L(gL9eL-k``H~riNj>9A*K(E_j2Iuif+iBZzgmnHu9TsJ4 zH1S}6)JL^>-n1h{wkJ!(F0J8k<~iY_%<u9!CqaWMhXFq{S<+#mSyOa2<+Z8)*5@zO z3qE$>kvky(0CwlUgBWrBr(--;diEB7GsIJ<C}A_t2jBIk0?qA+vuYO~8tPAv=mH<2 zoiDCo5?^6nJ?Refi|H#f)$93}AMOYN=JZ{<jd93Brtg%g8fKD++<l}4S$dl_^7k3Y zvbH%w{rS-8ioYjpCq<-S^t2}L(C=l!ppZ{nc#fc^Q=(P*k^+9ORYk8#)N4jSI?`36 z1K4{?-vO=@Ex>Y@JzWU$S;T=}VIfZzM6gauiwEh6d?-TF9<_3;`4qg$k*K~6^3|rk zob8##lE}g}C?oljmzQ{15eNH7crnu6Cvt{i<~5jPB}o3*p&&w;Z}sV$axoVg%ovq< z3y`vE3VzSpt|sKY>%MuU4w8LYOsV{cB~}fM0Nb1}diy5ZYm1?Dr#J7oMBf#5PhS*G zoql^5A-~-AJM+eQ&PL8{YnKn>#@5C!8#Q6oDIM6Gf{+R>yN}stNeNY2)LiOn3f;_g z8*?9?USeQ?o0V}GOHJHt<8z2QDxf5fN+>DF70}55)c090O~7cT-+pizBi$?bcW<Y! zMu`FU-3PjRv8ZKn6QTr@x6Oy%esMEP8Hnj8ApC85{l$Fk;z@*$XA-v5wBGca2Gb3u zAguI2Nw1Zfe0#z1&}K+r)W3?50|tP4w{_xWNAQ~a4j&nF<j-+AI}fJus?0904NLd$ zS3$KRf;6<#Zc5!t$fLAOcawjnos;6^@ipG{y3v>J{06Ccv?R!*6!{#qlCwP=%EH5c za^;eQh>G#=!^l|a^yeB<pcnYGw2yB;(AP|O!c;K|e3*(d<PxjzysmHB$~tUYeM%e| zXtioMt)ZFC66yX2crK&;lVA6nwTuY#-;LM($A7kifvJ&|-rr8!{XIw8e~absUtxOx ze3OBV{a?a0|2w6fRMh{P_>4#25MK!H0r&+CUi(cAQiDIBJ7{fi@a#WLf<NFhEUjL; z-ah}f<sr|Hl(<Y`>e}hyy$Ae+4lTQ$strLx>_`vWn6S_G8*h=*Pmk1$u96FFkw_5D z!$sf8$;sJGOUtlG_iS=p0492}Y`|YwV22*CP_GC638cJlz0!)H3<p@?M84r9JfgQr zXuct@cYfb!rZf(0O}@eVv6n?R8;kWUV02E;S2yBD5F=avMXIY?(bt$|>!@$qFhI?g z;6U=ui2k7@p0Up}c`+e!E5gJ4W*or2Rbp-7Ith;LcPw6D7VX_r=Eq^lKSI|;B81fA zH(<~F-vag|{?pL)&(CgXWUS|8>8NAuWNG;~pWjQC^RI#1tvkx9c#YD?C&FNHUqPj! zq#p!=TF3km@|-Kjfc)<+Q&NDxxKPJkKD9p!0uSAt>s!>r06>x`mVke$w5Z5(z^$*9 z>O&bdq(#)bkq~PlrT{D<Ao)KUhk&3%DH0G7fWw$8U{<;d6IxLmIre$3m-bMZ_&BH# zKZ+W~H&p%PBu*^kC}GxMVLH?D)y9H$K##-?h)7b37}Q^z!o|BTWFNym-sO$k%7cvx z@Cip%V0cI*75bPEsL{f!Zhb5P4_P!!4TTWjGDRfi!b=E2g)QE>A;*k1h&`@LM2ZJq zYbRVvagaVH|3)jZadxX}R<m@}Ja14B+hE)WP3$Itp`VP=+<KMCN<KeWkAYDx3uC>C zjTlkLz=k8mpJwMYO@6_9VN|+3PT{@(!#T-RwE`Kx?WX^4X$Ajp+0H@F`0rfDD@I15 zpAUZU>IK<B0*Kk8+7(_V$-N8>A$NYVKyBpH&Lj_J&&7pboy@fJ;=JR@!)6&>)y78q zGMj~1K!6&y6JR}xiyw>e99?5g(9(GZw)b~<E=`1=$d6(8ypk|0XAkopkeDc4{~x4v zRZghWQKR=8rN_X_^SEkS^Z-!7pbkLAxN!9IYQ<O}>)tci*Rde_oV6!p7{7)DJ>`BF zMWJ!=6(O&RO&Gw0OA}Q_V9Y)_O@J|CNGTx;vDX-jIV+E8Wb)GWJ4baX47}|yP>;2- zIAqtQ3G%QA$S~t5O!QGe-@DmUcR{kDY4?`H+WOHeXDchazcqbV?hjKOFVq#s!Fyb% zSI>&d<J~A(x4Zr&iJzpGT0LCagF?~E^@wc~D$SA%Ph?#W@!tQiTXv2p811*+)c&pA zME-|9XRK#t`G2sPQ&cD9H%EBj8`q$}5LZk^7Ga+1imI6ru|C43GHr}2{pua^&1NKT zWY8w;_W1;UU+_ceLT=!NerFs)(%MQ19B^&Ph#4__uKuIKK$F#?6leJ#+kunP9>1~e zkg}E4DDpcoUc9Iwe(==+<lbInDibjsN8d?Kgd_NqjTAnuQe<y)!$*eJHcKk<wpR{Y z$swf1?dnS{03ux}Jy*!~f*sNjn=Cq%v5KdV*%w-ewQ;K4PS*kgnZGt$vxZ^xt=|y~ z_1{LU|7oK5OWf>lB9&7N?_ZH>@X7OcJo=n?snj|M3Oya2uQ(?#Xkg6VTJlhw0oWIT zV(3*=W&<LkBj=m<)n<D>viNj^u5!=##Xg72wX8Mkj%xt*PmIDD*X>HOi?=Ln)$-6< zk3Sp-j?$<Czc9DUpvX~GlE(+_ahb)MR(Uon^H!-={pn8lu;6GMGiyKDbd&DulCZhf z1B6Tzujft_-6`G5He>RbK%Rx$^5G9gqgd(kda%JO3Wa~ji=c-@?lAci*Y}?B)QP9^ zs0TWSED?K?GS`O~juEQx*@7>UkSYD@kfF+6KBJf{aeSo$;3ic|I)uPRI#|B>=%q?9 z7)oy$@`yntWhZci&XPe|z(hbse3xvtMOawDQ;M&K*2k^#??LGp0(-B^WsV=K#k?~+ z??4H&;v{ap_tE43$Q4MtJ(}P9I+{wklPdjK)vkoTGx&YZN%H{omq|qxE<5DE%_;tG z9pXPmjsI5?`kNherm}?1w@72xu}V$y+Npf=YOOXbNYal%_466ne)xl&HOaimSZ*<C zg@%`_d~NT8+J1L2!Z<u$`S%jxMt)iKTS<{qUAh%I2(?!2WWe`rV4}~`)&Vy0stj_> zqNSVTi~bMCbiG3MmnUp`Y_RR(Wyl{<{^krA&AqyE;S>6DS-;U-rxT-;n);Zr{B$j_ z<ub~kxC5Ji`1TeG3T6Hzm^uRfv9p0hbM970c9>vP-r^V4N$k@Q1q;DN)9a}4r1eBr zfZUAbY(Ev@=1pXvED^?^j(R_jb5luV?W#t(&*gu8CVkKXQw!iZ>mtdd(Pzkiur7I2 z5$QWqQc$)?ak*c#WoE+bB?TjbHA9`N&?2ZMF{{`Q6<Mbc(Ij+D<A!I)-sA~Hes*hx za2FgcR>R4F2v_mDnkFabOinDWXHba~Y7(dG!gC1$nJmfOXw*69Hz1=%MBz$zLh9pY zI#S$=^{J|_ynnuE(wVQ+cB<x*g?Y5NCr2_4&#$ki5QqqYIuc`JtBVcC6`1sePT?!3 zAt{rLeSauxX-&w^J&KVYvZ}`B;;SoVmR>h46s~>uY4(iAOgoQ>R`!Rfw;2(VE)O8% z8mqVPxI>*%dRuSU*fG^!Ltqmm7lO#fOq<TQLnv_1Q`$l{clBJs9Z2+0c})(oaDEql zy?cZ|jEo?M{#+lhe(kz>UCD#N;f1y392#oCMz%twrv+u=rSvj{v_)Fw2pZklTklm? zb}qB%*$9Gu;!Jr*F!LWfr;j?lxeuiNlU%W`IWR2p9OBlFT$L&XSj`7__v05&Z>0W6 zPI3j61o0ycY9p0f=V5sB%2ie4f}4+X)N^Q6rL8wzIhwLVC$*T{E1++>;`7J*Ygg9A zKPOfnHq^4h#%<Ea^Sm}hI3w5wF!6L_0ns7m{W3EK@#+d75FcJK3UL~IO<5(ny>i{; z+JV&LE-|DX-6)AY9%u{fT`pHITUQKNqlFDjc!+vo#+IYdm0XeghwQ)#PzqB=VpKV^ z$Rk~1wnzQ(C?}r%4Yo|f6Z|J91tg8)*F;r7+%?IveP$oA<bUupik}6o*OO#ct=L<- zfek)SB8uPS*+A0&ex7EC2(WRg27S|+3WMZmqVbWLDtLgrDWADGNf#yodiu>tz14EQ zo6B^ok?f|Gv)a?}TV1app!+YM2cG0gbNyyMIQXY1#^1ARaQvr9@Gp&n{}*+|Ki>1L zsiSA__BZLGQ{~EGO&I=TN~iW?1{{&<9!fG|6ncojZm*>@lSGO;>xhq3mWqfl({g_3 z%VT>Jf}ke7;Iv@^JEy(b=E?bK>sPr@H6kxG|D{3<$z7*<xey}(>Z*2mVx5Hp=5I9~ z7ShoUr%`?9QFXi9N5hrd_Gs#@3s>bG)!vlWs7>7ZP5LW)N^r~S$>$c%S{Kqvx-7xg zX$^y<n<x|S33KM3(`-hBFr<Aaiv`0!MvEmN;}V9<>@#l^haCs!sU-Ck{HOQ^Pt)cz zv~DS=h+}2hBI6V0L+o&Yxjy*r2Bv>*6~qr5gPBKF^^@h%7jr$j!4GXzYt=SDo+ym* z9_o#q1sBm{7HRXRAif#5?iA>tRG2jZqeg(rV!F_=d92-d`*5>yadEhTR?M=xV@ZIC zklKKP4a?LzYyVuUP5&}}zk<dwIa^JHwwh?tf`-eFob6p1JkjR@9qU`sC$!)MWf!<b zvIJ%U#PW;m5!U@#gRo+`^Uo#2u)??Y&&9#_&!y|QrZW}*1PTTXi;hj#qH9Zk<=+bu z00oK$O=J6CD~lL|3!nRcTkE=(+v%HYgU031*>KX~+CQ4<+0b!$aJW6Z@AnRG%Hy-O zzdYR^kCL0OyuH4#uw-Ud=GC5W7}ADE_Y~5?-v7KBzl0cZRxMwiJLB=1V;DDu^2@P0 zc7wWcA+YJ29#e%?J$tZ3!}g^Vj=Phj?7+MtX&bSrP>tE;kg(B8L4II0&^!Xvb0OA6 z(xxHb@I?s3p4#vrNfrro#odVT#L@|wn^Qg)&k4^xfFE;B9UEW|5#cjmIGoPf%(0<0 z9Pr~hW9v7m+GZGZ>&A462iw#I5ajd|1rLFX>x+)bd#9+za46C?ttfbG(mLx3b7lQb z&GK9z)i@4OR0p7yjmMA(Nx=XY3lNkD700L3K(wur#EWsN=WLTDmy6BR3WnmqU6hH! zx_@DWky+$Nm)&fu1-%#OuJ+=INm|lluZ0wijZj6`Qvg2PS3r%82$up@Z0r&3!byLn zQ{JttgeXLD!&K<Wi+K9Iy1tg?nc|Bgq|^#$aL`=AaR}vUuNEd2H=IXTrdX!!y}exw z+f?%LL?Nmqe9$sq&c+RSfI?@WlF=5(Fj@HLENi}Suz^94O@Ao-v*NtT(0i`f+Nu4p z4;EECdF+&rv7bvCm^$Su<Ys{iA<kLi)`*#+Q}+JXA`VJ!YB*Q=;_|8MZ9zmqZks-n z`Mr4g`kHXZ*xrvivvH=X3+EAS70U;2je9Qn&<T7i$tc&-JL1T63ZvIDWmZS7LW`u_ z>NzGIaHq90cFhZub_MIOeT`c1=qvfA865eIhFjm!@TWlx!0TO&C5M<IOSKOeS?BlH zC~cD(3Zj$Z6djeS+qNuP#Abvkobg1|%6KJ9k%Bfn8;j<2{#IXzXdxjAC^rjkOMfqn zn~=(H0pciVpf-q$*4SGzCBf2S<=)@Ob{({Gp$QUVh?<RcA_4WgvvP+3)lTB_=JZPq z78n#+E+eOA(+x6(zNIGEv@TjgC@1-!nd!%xcbRA`hFT*m-`p%Z_2tV~>J**+3QQHt zJqs)Y$_Lu}oGTapUIi<eZ!0*1TQ8uG?ZI*DI9m70CSuB0(se#WF70{hAxBgZhkkX1 zmh5c}lZh#^aZp;vlaQ31D&~Zll@yH>FV3k>oL)B6<NHS?Z#jRiyJ>EdU%E99yNk&N zp0yF4!9JUs?v#A!T3LOa*2&z|PN#xf0#}3cPTtW#6MZOJ?w4gqA{zdn2&XB00WrKx z5{fNOQ<BHt;z@48TedX^x~Gb9SaBpBo<}CCfG6Ce5l{GpZC=I3N~sRW=c`R*{lN=6 z-P+6!N8CHU8$3&R+XaSfSFtv3bZnECma-KQwrB?bp#3X15qnQZ)_<#8#>4)*e(rxf zGWuUR!^Y<CS|OA1ayDyp@Wb18<nP8MvL&zRfh27p5HR3?Brr-S_VG~ThUXK`V|ig$ zTj5AR#P_*29`)W`Z*QM2JnG-j$Py|R#~rsVN(Do$Bfen4-fTjJncS{z)=<-B5KH0u zQ)dPZNm3osvkL=css33{PAqD=vuqJ?<}v_rQNA*PYQi%XwNLQv_yoJiUq5QW!iQLA zOxqx3MmY85KH3$OcBj8`DZ<4U2(AiPsO9~OROqb`tExh6IgW>qtcZxLgf{u)pu~Pv zk43B*dP^Cm%~9r_fMQ0|!b@LOMQ2k`3tBReUr(Ej>ge@9zRQWjN;)>^fwnpOtBG^q zeR6-H&CmX#N|^YSS~qnkSF=;3ag1aSaiif$_UMT5%vIA0DVZC{tm*gjhvUo%i_20% z=Y3Ri6T`*ENb)v(dRqob7|&u16a91obcg_=+R3pvrdnmT%>m?-;`w`u-DM!?V{WG; zBrMPSWFZ4)Bm~<E^QCOR^RKXr`@*#c+{-IGe>BhFM@taRx&sfAIA7VwGRawOf#e5# zMOy<RB}w`7yC8p}@LHMP)tq(>{-`i~Nn*LD&~c!W6f<aE=A#X`<;Ws5osBk7Yap<L zm3j`LEFbY=?bDu%6ERX_kDcsUyN3uZ?!}zUU7Hw&cS=eHd*lMr`UTFtn5}>G1u#Vi z<Db9FAd~N3@Bd5)#s5Fr5*dGw(Egp?L8Y>f&6+6uN45-oV%4S-z_8*UF%wv!lPJZK zQY7M&0<uC=gQWpdgZ3?Ev4!hR&V8)_0^YSUA;5{tbXFT<6Jx!?xEx1>khBMl$|Z4R zy4Go8=$sgxv6h&O*2~->;-dxM@!jG0)tk{%TLw-nX_EXqfZfuLAct1;&BG3m9-h0O zUuElAxU<d69~R<x^{0M!r|}keW+G8Vfo1Sk$DzN{Bk)*q9-(r6ca27>-abrKaa>eZ z<6vnDn`Q{Z8MuQDOZU@W77%)Y3tq!R0}a3Q58x!4mF!auHk44QjY`x?M#W2-RyEAb z`BjVZjjDweB;d&25MJ~&%06>Nqtz<o0MAgif9eEdGAd)Vji``dY5@!&T&qOKpP833 zu^LC&0h0+N3qi(;CY<k&wJE)bZ2K;NMr^nd@{huqgoMM=9kp<9j#?Yt!2Q{SU5%B- zM_MwXLx+YQPGk-GdGgp3f}1M|9NLy<o#1}Ws@~W>5jo%5!5Qgl)rMepuPUuVOmBY5 zj@3HAza-c1V6`R*%W$m?LeL0H0X25mNVQQvAAV!_zHJ(8!Uj7OFR@_J>_7XqJEh#6 z%A%D}2Wbd{h-8|$)9RxGfjZ<;TDFjqbGAX3eNi;1<c4@=z8P7kPt=FiMb6MwR_k=R z$)Ln)SKvkiNi20($uV<>Jv^eunfTjkj(eGrQ!((l-Q<aS+aUX{Ql@_vw+9=R;;n15 zqy-lAy14n+iB>{M4F^37ZT`V9s?v#3ab5}i63J3g`fL+-GFGC<eZ8>gXASLxmwt4T zG=;Kj)>~(xwE@l+fQ{}C{@)qI3*7f3p6LkX1Bx=;KdA5C*~ws&a7@XP7~DW9%un2# zhqA1GQ0QXK&<+ZCy#(CkT;WBUbm)0;WQlmaweOvN3i54chnBoKigGHfMHysj?MS85 zv{3JNmPIPnD@ti5`PNf<SfwyYO=fT~ceur#MpT_dg0Uit)lr|Z+Ekc&?%KLHj*@kN zrVSGrq)v_tw%yW9|2AKk50dr)VVl?A-8LX?RjWPec<5;M7UWkejth;xgJV1L)P>yq z?eBE{r?r&=>T9-8EYz)aVj7Y?THxHPJF07oy;@@><?6`+=1oNy&}0Zi$$y*c6IH6{ zA3TfT9d@qj-^I?>Kb1%S{&0iuf8^O_f2(7XsdV*MKKZUd?Bbi)$q9f9oUG8x$|9u} zo0{^@1yBk{fJq;a<0kCTO%Hvx*`=Rn>D!`YY>z#zHt$~Wg{JV6{lVhyF(ZdEAknEA zLA~J5MS4LPL#>*LgG1HuTDZSnjXdqxF+DM%hnJ7@XLVh}Kp@^A1W;j6Q)dD2U4~N6 z8q+>g8E-O_P0m>%n3VQ@iO@ek+QCa?fK|_PJkWb^JVsA!rUgOHE4yyJKDRiwL+WY1 zzk=qYUr!dj$d|)~6UA^z)wFU&9-k*o?S%{0g+lyHR%Af(CMYnsm)`eRi@77K)#Z11 z=Q%`3ZVdukAkFkN@f+wG=f^?_S0#i1fa`UwohH(#)5L6>Sy1$qHzYs=H_NEU6;_Uv z|4|3zf7TzGHOQnZ?6DC=g<pn6*67C}s1E%4(N%SejW?CE_ydjOPl9q}F_%x}l%I?0 zq9sB)sX|i=WMrEowFG4e-38at$QJ!FAPS^ilj&KT6>H7LsTC`^P_H-wrS6J#*j$$b ziPc2}=qr@`>IH(K;sNy4#0u&XGxbT@7k}fk4Fwd(u#CdFYu>vjYX9gw@ZsX=)>->c zn$=Dg&S`y`@fMsSeZBw>1Mb(M4jzr^U@f8-Zn(nQ*nmk6V`5{YButi{a+{^@$j{{p zMwAu2FGW~9ku&E8@a-x9C?Y}53n2!_2xs2M;spW5+-Js_UPI+_I#xC?S<B;j?)}7K zN(S)N>JZ6;mVJTMV7ubHJCX$qN)`)Ar!bf6M0G%z!|6uXuTDn5-q&$TW*|?H3+)R0 z#-|OTsgtN`6l0{7%2n#ips`H$$t{!Tih|0^c5O5=M7836cH+g^cB-2A>~ZqHDkwM> zEM!|eQ1dt#sf||~bro=P!Y_-yI9LraP#K^J16e%#kSLO>tPL4~E&9#dLm7KNw62=h zkUdAaRZmgULF0x{X7q>vJz}I;L={l4)gqk$Aeva;K*gj)V4S8=9bsH#7xZ;JTKKPr zo2d-;xM4eTeHSwpgS~YL2E{sK$I(AXP>@RJjo!JARMW1QHv+1He8SLw?p)Q*1|TI4 zuW)o5M1{!oQn)R@WJb~ZM7TxhY4gHoOm6?R8&nn@4&?oIUg3W_@85SS{#)uz|9Ud{ zkKLg8e@FaL^nVm5zF%eRWNq*-lqLU4q~Y`pD)_4<`lez_%5GK0#7#1y*RQUN6^wFW zEksYo5>FOSEfY5ns`dFMDlwIB5rqAXlpkglIz#ZZZ3EX&Gg=j9=i6q}B7en>+=;K3 z!Ohe*rP2$Svd|DPn-#DEs#pN^@TfEHQSFO#Dxj9D;;zuZ>)Fj#<_sK5s{AF3D{jf9 zp(AwWb`RKVMX(a!wZ3Z80O$#OVs5mv|1`bR%%e-3>bsRJgf`yS<OG4nJ<N~6s4{5t z`BiW>$1{ptA{h!C-J(lvprVQ-k0s1J=4MEWq0nVGV***v)2B%ki!ND@gG_-;IpPDu zaW=a;x56HTz1hDS8tDGR?VTk5XWu-0am~1MDGqNl46a9ly<j(=ymOjScoPkv%V2J^ zae&UE@Jrt*$p(?sWdP&~SmUGc@(<hmNum~1a;mr|a=;oH8x55jl~^dY5Lnu<Ze~B8 zK|W|s1@GUl5;jZ6gza^Qv3jEH97?oyfaj3T0YEY5iiZ%-*RJqWR;`)Fo1`k@8yxLK zj6a62`Yng7iI;V0-``wh7=oL%qrW-dbUUHTkrG<Gt;vLNuRW%k`#3_87Wxkj?%g8( zgnRNqJ;Mcg7>Uq{7J~j!GsTI{_y)Kdwx@h>o~Sal)?BKilzVQ!btquF#%s;LDk+Yt zE3t{vfR+xN18hY$P%18W8cM&}XAW%+H@VL^>8&BUIq2r%zy!D=<hbUG>br6bNb}X^ z;X|tH!8KiuKF;E0xI;Xl{$`=;09*%MRm+y#fj0N_|8V^OXnX6ZIJYbh6btU|?(XjH z?(Xic!6mo{cL+{!f_rcc!QI^*!mDJad;0cE-}id@PObH=RqLxicAc~Bx9yy-y5Uxq zWHBCrUL*UyyeD<Om;(CI5L9oft~rwEC->;t$21SE3{H4)>M@`tz+NVcC%!Rad18eT zz2B$ai_M5)%`q?dw6@+d@Ao;$R=v`cpfq?&-gHbC24KN0#|<rU;?OEA<QSm4Lim&% zQ0p6=HMsSBvc5_g7E>G@R#y|(ZpPKu)7O{#{{CAyIly2JmS5rMRX{;1?2Nd54Jh`w z1o|@k{3$|iw8`2YFEwLCK72FYv8MgF0;g<^&TTOG1>vXOpLKwqKmhc<_rH4|e($vZ ztqZY!r}xfg7G|D~zeygtsmR3vTzAL5##p{K1bfWlT#n#j@li2fLqSKaq|F#&yYtpJ zcgoVOE)U$ycdG1>$qUzOnGWB1!1k*WbH?jvm!V*~;PHgtq5I#D7*C8O&K@78#(<d5 zHqX$^BKKl-^wk(sWHppuyHs|aw5@n;I)VAK1ms!N4*E$%_W4Ow>OTiXZ(a&pJpnGR z^6D&AtH+Jwzd*jHyq0-65VaiBwnNpH$Om$SXYe(FrPzb<jdoUU_$+MMug~TOsz3;k zP2mc-ooJTQa%!>0G}_HG`k8}gu-x)Z!TaLDrn}`dh^+buf#O+d;~$Dy6G+*@EqRl5 z6{SRn0<^)Kn9dh>@xHp`vVxYE2t^s<3<Fw}P&zjqc2b33h2j(Mong4NZBDrEfE$pO z#8lne&rBrvYj5A&W-9fSyf?OkjCm|^uSc6o7)8X+iG*b=ylE09TzOn6zws_w+o=oZ z24g?mlPcCX8|!xCFw<0NxA$1uGpnv*N9BgLi78n~mrJltR7d5nsGTWMA}tW3kqW0e zC3Z^eXS1z^&{1_fO5x0XFGkhQbuGZLHmFG$Y-9NzZUjjO5A%_Q;pk9^wUxDr9-kuV z>tV%q?P(=u!IXGqSD8ECyFE#5P4%K>uN6^1CWHdiag}2gA<9OKBxtr-RH5Y23c6s7 zha>@yD(P2u#_&Sz;u|0$WCvV-`L82FssGd;xB(7AH@C7kGyRPe`Xva-11g?k_gn)f zS?Ws4Zt0X5c{r*)z|nkVx?kKe<3Q1lR-F>Vl))tRHCg=E?tP;$5kZoaXftR>!KE%- z&ychUePhBHG0e1z`^u=*3rnKpYcJ`kf|^13hlIezO7<;2)w005;cGHiZ;*hdRh!L- zk3!*K$R&A);0^<;^pm%()IYNZ#rhX&*t|K54!qm&afo4VuQsozQH&tqM6sW}KI!;z ztOl~w6zZh4-cy;SL{U>Xz>MX+6_4)pz%G^olN$a+tI%}gO4*b--ozhvBu-0Caa_EH z^~nZNNQy=Zb^hpmY{HR02wo$1&Xa_&oho$0kItEyRfhcW&s`{E^oJAzzwU8-^GRTY z1hC@;@ce6b{AV!U&ggfx054hw8gLD%;7=};2usO)L{ixJ4g+fr8TgV#YE8AadT@8S z)~AnUjpFa%sV>bYwb6tT1_LS33OI`AxEL<vQ!ZltX&_sdOsaZ#>ccGqx$VxFJktTK z{n~domIUYtN6LWsVST?kaL4YgB#~RJzF&E;#_JnCXF#bv0Py_l_5NoG2|F`qi{JH? zn8mjJyu4EE-Zzw^Ss6|7D}N_YEg||~DVtg`EAUq;!f*Z*bhefE3;X)ffrOB8*@jig z8E}1%ZX}k0hxigDu#Ia{k&Ffi)zfaw-X9$=+)JX;PXKi~+6bhP%_>5s4<|sG;Q4ks z3-R&<)6!L`Md`i-bXMMLyfTt@vG_VpVa8!cDV0mtipkG@T5=TxQF3-2hX{qoG~H8J zHkeTc-cRsbM-Ca<GdI7SMKNAJTLoa7j{bD3{<D;!{lDm*N*w>Gp&{p9(Cb;!N~PYi z$)Ly_OUh`RH>y|`DnYnB51+_{Hy5>dq|^jizg{+Pr@NK12u9DbHM7PQ91O8~9cdH3 zo4z=+hGUYO#fd`Bmg_!qZ(OO#{W$u1<Q}|ZAqx3g0M-?)c}jR0<SINRWArK^7$p_q zeXh?nY*$69Z=cNB8_U)kH!#QyQ}3vvm+&AFbd!=Ep0r{)7u2-cU2?Dyk`2caq8o|1 z7(Ut;2!7lEi`70QVNqt>oA=#duUsyoP=768xyPrdgM=zF2-c!cw@{jbFf>lx%I2lR z5&Ai%%q+aJ&%10U+>|Moq3-i%QcviCk!S5xto$&R9#%PVHy&DXi!P0wz!|nvaS<&S z+RPZEPr-BzoFFq#n?_VwQe;TzSX>;@wR7K~2-xm*bHQ{=Q7k85U&6z|A4A%jI%31` z1-7%;2&=aWeOSS-iqG<l9}41{P&g$fp{%}bpFhF<!~_d@F|d{Z?O*%TPKE!B%?`ge z0d6Wi_5ftw@l3OjggZ7jgP-)MpBE0hOfP~6n;}Ahk2;*R)6^61Pe8U*n^eNTkofSh zMnV@kLGrMXK^<Y1YQ`|q6K4{o7}VFLx6O#5{2tzw)EsnUUjK2f;_=8fiXIoL?dcVw zf>6gII7ZX!gQm0g=XI&!lYm?tD^OzUx$H7w6F96(^{x#Cx2cL?YZn65ZmgG4AmS=H z(n-&o{+2b=sWiGyw7lt)-p&AZw%GNM&4HvVr|en;^1K~UTB+*UKwO}2--U7xD7gtJ zt;VSm?`70O7#zR6srG^{hZK2F=zMxG_lo^Y5IHaHBRc~m2lqwuey>FZ2iU`mi(Oe= z`k0q_44f#>J#->HkUA$TjZtm(K9H7tmx*pf?{y*J$4b`+_)jY_KR)GGv<4k}GYlgT zdbJ65af}asTAy9`m|0GMj?Z#NkViW@Y?g3HQF-*@XNID<{P>DBouuE|RlG!VPeh+1 zUl+XUj!gy_R0#FdgX=7D8WmG)8%VHkX|UG-)Yjr)WIO;jh)L))`jL0RAm)@H%Y_yk zOm<zmwhY{6nNl#n5d4%B@Y77D3V@_+01)K=mF;vivT}C$jn58MuKj5dR<F?j_m^mr zpQa@SrUQe~Qbxv0ts**}8uAn)9d)@hp)5rP%3iLv-RI=S!Kw$imDu2FkxA8UgXawD z3qpze!e=8<8J&z6eK2L&7&w%`RiZ06(_a_c)^uo?#UI$qfp7qyYmukfsnb5|XIUTd zS;NZI{+d0s!2^5|ovj_k_l`>Sc#ZNVBL9L&T;}zF5Kk=c%{5+RRj}I_rP#37Na6!S z3sYE}6<GaH#=CFgIFiBG#MfF#Z<C)ZEFr5mUwpNCi8I1BE<LKDU%4fLTyZ3&*tBAR z=fLPkuF`OAT9V85hs=fj-*I5R!=bOz3|%5Zej<(4dRD>Zo7Mq)zn*daEMOOHdlmbl zmR57c-6_bHZC(1RiOC(qcOp6VrqQ1c%!Zg@d+Qw^^ueztrhc~VVNUwPwjI+JHKUz& z>)5r~<}Pi1Pu(|Pzo;B&LUawqQgKA?If5<x^sPy8G6>mih@YIM7d6-a**-h*r#9g~ zLj^8oPQT$ZUbN6pQ~-4T9NA$PiYya{WUw)Z5MoXh$ZExb)0q5Y^}sC+t30%}G(_qU z9EgG9VMSw*2ik!R(!+F24X0pKL9?zV0nYzBt#(H0!z%-~GRN{N-Lz@?vlFJcj%Oi0 zf?)LGqlDxdF`FiroUCKhHpb5dTdEcGxd8lJ;Gg=s|8&8>t5WDCOacTOHXPvUT%;+~ zjFxI=a{~Gh9fctCr@rVA%0+J5s#>1MK3fQ%B=#}nb}htCKoK#0$+*>~a%%un@C*M8 z+*@-331c@#CsTxhv2kiRdxv^P<u17b)8_ZqogpWYu-%>U)~~p*qgWp$)K2w8!oU1o zfEeQg-8RU3)b5QR{hcA4NBund*kwaGVjxqZLBg1hMkOW6K=Xo5b7^H&_X8m*!Cp>* z6uhSAo96ZDaty-lKadEsolAgXZlUH~ywyKm^WLzK$ZA1Ksp5Dn7WSOeBU4}zZCI^X z<}aRA=$Ei3-0fO_(N%-e`nVm;zqFbS(+2Ho(>4*>LBIcCw1lCik*Q+w7;o^C6Sov* zv#<cs>jpgk+Q|HeoN#si|1Em7<H{gbDjb>CNN@Hx++(nF#G10(rmnyN*=Xlq$vwqV zBx0!XxICJ|4sK9VajlUlYUnCbN~*42Fz~P@e{7I_sdN#5?>ksd^Y#Tb9>KMDg2OM9 z&C-P8KfQnVbG>9I*Y-aFssEo!-hUR7yIR?qxwrx@2>;EhQ`D>+mIMLW^qMs3ly-0v zTxT|Uq;hT5V!LF>(r>6MLu@cDS3;+5$k-3(*?hhmc_l(a3)@}}`{SKj4YbAab^Z5g z?rWB;XDeWX$7rGWq&FUW6v>t)i$<6;H@usBtGgeUF9&uFS>Jnj`SIZT;`+9Ui;A8b zNn!+tqger23JmpI=W;bhRSR8O34H=h0)_bgO^&ljFYu-!olSB+kTG`QiY!e8!u%|Q zL~?!b+;l8!9IQlTui=O>kWo&>R6wHUAr4n_Fg@NV>DBu<-XwWb0;`Y#IGZzGnIYC( zdc@UQ+Eiu!S-}a}^{AWIiEr;~LXgz1+?AgQ`Dtq5ys7j84#WaMTGnOm@;3v~7M)bj zp<?1$`AzR!|L2-%Ix#5YBm^+oVLR46Ez)wK%wi`;35OL%%x5CGbew8PeXO}nB#n(Q z7`;6@xJ_gc`}Usu8ALb^RRp*>^g_kR)Q0G=N+WU5J?A)cA;TSz=sHsQAzfF_p*cpk znsK=&K|ZbA55*S1v+ss-K{r>Xj&DhWX$cewM-w6U?Bi!#qHVpnn?y+$LtkZ7Fw_Tl zFH0cki0ha%_EDLuU_J2gmK+@?tOR1d*;FzaQLQ|CIuJo((Zq{<s(em?#UmOe`4q9W zG7O|vY~3$l7;+Ky==PHHjYA9r4ZTh)@l>s<q?j2L&EotCEs(g8_J?Gn(ALO9Z8S|H z^Lu3^8j?@)oqTBZJ2hjh7ktvRpztYa&&7cM=2eX~Wf^Ga7X?*kmQMioUWY!5dK7J} z3g0r7JiX~wOy}{nlm6A`M~<wT+NM@M<7D;1kaO~95M95hqD(kVYO-A1#B0{g{@&~S zfFt4{f=z++Gl_PxHoVP7E4!+!c<Gp3W;-VpcA18d$vyus=U+&K7-9&&56|zzq*0l@ zKoV~m<>Nn?4u3Nawq_whh|Sn;ZnIc{uD9xUSNQU<&v3+az*;Nc1aDbSGO8qc)i}Hr zH9ZIUR#5nEn#>7vvMyjtsUh+)Vs!AL%dUXQ!>GmyjYS?^e7>%geRO^nwg<oe?4+Jx z+;&QN5^hD5Mb(uuZmWOIhw{2o3%#12*f*Njo2_}keCN`LUK#mBWo4ltpzEh9dt>dd zNdT~s%b%9S{@0U5KeOupt-$|y_fe?osC^+LDgYUIv<6yoi`HjTMwJc|AIU}}x+;lL zUUidQg29?(lB;F<*NpcGN~^LPK4(2|;Vyp>L`<9&Tp}5*(}xV-AI@E`cL_)@q6%hm ze92XbjXj00U2B41^S*A+I>m1v@UHjvUhu5QZeAIiQ$}h=55W6G>RUwHaDF@oEr#7i z$l%e-JG>_=*$Z-0VD2!?R0N!`U|YqwO&LGT?h%PJZ1N?w#tBB7mV${4B-HNl^t(HZ z1NSoD1cr)AA*7^id77|WRC%g%N<3|$twCsnGdijW)C_4MQ&T-BG<N`p*vtpj>~c!9 zx6^_MAXbp@T_@P}K@&zvp!0J9*dm|)dFB9|Vqfu~U=w97VT!WLyy0cz(eoZ;J(=Lp z^4L@DSEHtySU)v&BqP-x`rxYyUjx?;T(b!+F#@fR?$?>~uy|5;_wnf3rO4_qXzf3| z{cDyTnzfR=M=VI0vX4HzK0ukU)#xC*q*Pv<h>_J;>EL^MgM@vmPR4uwfT!hctQP2K z(dRLxds}xN04=EqVuoleibcn0rP{07MJ62%Rwll&bh}XL?0Uq8+dG))-DQXz_D<|J z4H2pbIJnT}aHiDpR%jo~=A@Lr8gG`n+PukbWhYaG&8(^tzN1N#V0B^gyx8M)q1eD{ zu1kpHd+6lN;P)R@Cv=(q1<f@;fNtJS#OlNB(cbgoX1=NeKl$^JlNDC-o$i*-nTxq` zlcMFvZSg(>>IKUpR0|3A#x$`o;26p<?NEc#2W3rOsXktDj7hDL;xm06KT|(|=Y@b| zemzuG0{}p>KTQ^M{4X<gzmepsWI2aIM#Ql5m&h*(<<z!5F?RvTQzgVz4GrOZV*1Oa zs)OdQwQ_2=T{Unr(%nU;)-FOLJd->uchMq+l$3Ndm3?N2U|k7d<cRsmok2xivSf$E z(OVL3m(kYf9@?Hwwj>|QGQSMTyCeuHV#m6XaUw2BMkbV)_9)3sZjb@N*pP7H2BEL6 z13d{vQf%BnDN}{&hG-EW_i}N9K11azgBl2C0f}e9zzI+-+)3_40(t6z*EFSSBlcN} z-p9mii+N1Kg-%Z{$2A2`SoUK)1b#mNZMO#HgV(AXjv|%u7&y{tm0NR(kWpm{l{R3S zA2=PK+T*K`AZz(*?)J?08V!d&qcP4sp7{J?&tZF(43|&FEPHOAaeP|$%=;FtXN7sa z@I@*|-<M;(>VOP+a1V+`o^W24U)n9e+bI>hBvY}|)&96d&#i4Ca!vIZ$&Jw4N%&Q= z$*c8igVp?Hf5a4jsUOr9=J(Zd>9+D!vBs#%yySwg<E>t<KD8UNr8pOR4vtK_tNb>B zT9QJwX9UnkgnCX+$b0i!h4lke`oh;6)MUSv*qWnLIk@bDvIZgLX|579K16gklC{q! z2Q>#hh(t8YA5y_>h$I$j4-N!=%2Aw{e$^}h%?19c95MboawIDyA||gQ_H*Wu@gI)N z*He~>%VhjHJ{;}5lrq({yyorFy{JisiB)G63nuF*<`^PZcr))2X6n(Hf@rC~ZW0z= z$MQLWtf+}Sm?JKF;LI2Av=-(9QJ}ZEW^xj#qpNQdx`ti#747Qq+!A8YnI)(4{yUr@ zpQ}0Rf(vd1Q5t!WJ1e*@jGIP`1d5QOBAf<i=Ja*|pz;Ur&MEwkO_})w7O&THK1_xU z+txnsYHhAbnAcL5FMABJT+p}bG$uSe;0j~F&-juviM8Y?9WTJzfvja=>I+r3r7xzP z94692{@JH6*7g)Yh0y~XJNJGAD@Yz6FMa}2zPgsqZ`}5n7ti~+4H8>sDxAu2M#Xu} zQk1{51*!eeCkztZZBidFaLz~iDhmU5kLER^%kA-W((nCUemfx9JjV*R+SdHV?nn^J z+Cgu<4MwYCbxPBD$DdJrzZ(85F1=%Ag103=*#Y?gXg{uEO{TNr2_Js1lW}L@SmkJZ zLh^=xW7BS~Z!v~t{f#|0-k&Z{vBLRlBaoJ0^<0IlC<u(cVS9uj#c1PFY5-n_#V-Cg zXwRnbTxJ<!#4cyLNRVW6=cG@{hVtf4t#YP!ATn8_s6WP#{jI?0&=5EAq$7j6*@eH_ zz&<LM)U8O^l8r_)YDj~IXB{gKE+^XzHFIl(3O<1uv7}eA)<wh&jZl~l;6`Y`=4oED zl2H#fm+B|+N2qnqUzzFkY8QX#-cinD?vx#fftDMf`j`oc+_}kMoTD63fYrGAt;e2@ zQp^`Ow<VdH1gCaHI>so3-tCdUH7PVAz(#9ISY6wWSp2vjiY<6Um)xGR!TP}!$u{3p zC&EKe5=;RJW-`f-dmZKZSLlq^JEau>u$p}TUElb9X`TJwk#>6rQ!_w+gQ=UX+5gnk zPr|rV?toE$#Yn%W!SlbSK@aHu|NErD?+IZGJcMEaLYAM8FyQ&ae>8Kk1+?xk{Ndf- z?g;(E%U^`dTpW#@UCij|835m$tpLN*Kgs{?t+mU~DDZz)7#)>(g$p3~^AY<`3A-EF zTA3QT{=aGe{fB=h51{z>kHG(WgN>Xmey#ccW0U_*3Gn6L>X7)uCjXt7nI|9w{8uvc zU!`C*rOKb&{QF1sKVRbCsRI6oo1K}x>p!OVHVfjEeoAp;0^iRe#4y19#3Hc!k}<Pa zY^+C9F$s7~oa2p}(snNH(8x#rU+uBMAXD;tgXucH_~7Tdcq!cmRtzpgp1@byNEs49 z3Y*qPYQogc!pf}O=+s>bxe$iEW9+yIlPXYFv&fLX9^7}(EIn_$&0ml6OV#)9-f06` zK!Vsl!F4Pzu?|a0K5XjvG%-o!tiWYSRk`rMiAo<Qp2yK~ix<juK*E`~fYFFqMC~MA zD4Q(N?HrTT@X=-;F^8FZ9eCq0uMbtE5KE;AgMw?kdw8JBQ5jZ?$+=(h%GP$QemJ>0 z3$B`E?n{hp<z(o<<>{<yKDw8}IS2Apf<21zD7LvGyGCiyxok3|rf*MEnAzEDpDRdL zOITk-ROXxV4gqj;@Vm2#df#8Tj84bvm=fSmrvX;xe=;Qh%sHjMkaH%M4pt_Ai#>j} z*8Giaq47cr{e+020K~?GA4X22S7UegnIjHgZVaCik46f^F>lUv+aKeEy;__ELK6Sn zFK+XxJcoEb+l}oDR@S-H1}c=Xu?=#Q@K}b?WS=YP$1^qw;|1W^QPXr%YPGng3O0oN z6{F%#pXEtkO_$i8ERzBn>!0?X2eO}2U)>_NX+1x;goPu`DTU+{>tin(Xc6E5={PjO zq+&PB>0k@l>KK{Sr&cSe^t(dJZU5Q_E+54rq38k5@ETYpQ><Y=?TPU!X?+vipIH++ z_h@jnP>W_ZSzi_6yfcyZ42w_C*kPvC{ub}Q$@?;Z^eYMe@tg0#IY2*p{*a&g=iUD+ z^~S`(9+15G7kZQQUwU)@5?Kf<Pnv<+pB$MlEF2AM8_^>dYfR-fwrC|(`j%avl&mOh zL?lwM^7XmBY4Q_=mI;*(b$0$*K($P?s0mUfi5e$UTtN(}=2W>>p}R*SEwV1~rc5EE zNkWNMacX)|$|YAqk%7&A{`!p{b~A+Wr4QI=p}O+#ToGE_GLr*XUrn{vjLn=KzvUq$ zTf!(0HikyULOxK>mk4KyDA^nrxf3su*|vw4RL-K9sCxl1rEE>Zcr&|1%1^guTrAmu zy$5Q|>JqkY6FVxH>_K(C&7ERje%o{O>Iu~Amw(UBylaQfXfBQ&+=}bAy#~7^!eaM| zkAR|{6HsBK`D!Kac|q_(rN8j@V6toSgSX}0V=Rv#)+v0`^UTlNvY3Z$ojvX2I>(lj z`W@y0`HqBS{v}Vj1=d!|6IUG9LB$dDY`Olx*opx0;Te$u3s2lj=DBjshQP_Zb5sbU zG9o;D>#9^$S#s372-9v#v;qAHkzcYP8pO%#4UmI(f9PfSXIW7A3pLTw%=RCXcz@GF zy|`NIU*?l<AXM2@Bq4E59%PZ*eHb_SK@qH}az)CX=w_9M%RWE7-*5d*ruAcryzJ9S zySP9g0S_uO6NrTKM@k(cauG+uOz@k_K17lpcu0p~Bz0w~)wX(eQxT^+^|$)d6@)In zxLk#gY97FhM7216pw3m_tx49IS@iB>{VWNUdqKE&V7?#{^z>a3Z+yfOj$7$w`?^mJ zJ|D*(4y{$91@_eUsn~<sHuXcyfNk7v$b5N3hLH{JrGDgjD_R_%D&fA#qi)LLuj2EH zA-~H6K+Qz{RLvCs!mS0&J6inCHH9YB+V>FxTvN_gIed5p7)3=DJYa8YxDB5ZiMa$3 zPSne<&ff7<XOv503cl=ho_F7S>>{?<M$-+)8tO@agbN}PXR;g9^_OC~`(nnLZrAS# z!p3#q@MDsHkWT5ak{*Z1?J~-zpZu=UVQ@t2_YyeF0L+LCv2FXVMG2>IKyAczo=@qV zCW2QHo*SADhhRUrtsdz>g}_fCA0)FCl2Trb&OBc_dVm~d^POYISGA0JpM6Aq7WQZ0 zHFC5POzd$LP)1Oig_3b8-C}kYwvRtV<d{r1-=PsWZqgf04i5TSrT2bc-0)WJ;28?} zfu)({FFp8;c=FH)Ls(zgMQFkU3{FL3N;sVQVNLWyzyQO03r+JOxLq`bJ&xhe;q})| zhd4jOJd=~?YEl5VJpa@!DgT8W13;*M0Vk^BnH&IBq)-5ysNm+5Bvr=}f?efymkm)g zOAOX@wwre^rSA7X=L$?DY*fMc`sMy?)$hG8qTYq^r)WVJFcTcpb{I$^Z#9Wd;}c3g z-e-~fSn^J3f~h`i-uJE}CWBGJmW?Pg1iCX1m1*7#z(wI|{v<db9L_RKFRtnNc>--S zFuvJC`IK3uU)v6Z<ed`#kPJqq<BXFy3N3Nbo@1uA={_TBg7kv<UJQ~cOGmlQ&1?dM zld~Tj=&*m|AM~*62&JoJ1`ijuRKXu^jX{#Nc+%U{eCL20iQC$X%<h3Og^(p*s#Bav zF@bzb=TmnRmek#BDv2OtBGLInWFkJMWv?6KkaD!np`r>(-6a2%NCrtGHT&jmvJO+z ze$j*0OMWKJd?#y$lt4*U?G|T%<0l6>&mXCn0UZ2uV4?9>a?lyjq~&Q~VhIQU{-HMU zH?x)!|MxSDL|{KsR?RZA8<%QgVl60!uIy;j7B_M6<SP#VPB6kolvK3_mw4ZKe>U6J zLB%t<tDc!Ci!jJe`uQ4+|8q5{y6{b;(fIS3AUQA9UB4rO?0L5Nh~h}y+_LiJS~17i z?)jqiMcc5&!M1{?J2DVo?fmyjAPi@skDO5%))^AktI!}G$su9B<4d7Vj(%&9uBs68 zi3WitONZMwujsc##;Eu+eB68QA}8CCNur}4QKasI2H-6M#A@r&Io{yWbOu_|d!*(p zU<qhvT}b;;`4(|)P>}u52bQoMbP}spEjZsE83megMz2#OEo?2NCA(Ud{Ojo;s;Mfc zv&bagPjg=BJIK)Wr+Ao9U<h~q!hr?_<s#Ssb_xEe!u^%(a&a>@FmbT6GqN}R9lIJ6 zWdK?S`}O=46`!X?vSHT=^t9XVs}v70YjIVeq}>b|)pE$gnafiEUx@djw<L+c`ya~_ zuX@TlNkz(JMX`CV^1$CyySYhN!Yc?lp+RlxYh;wqq%dW`@w=yN=-@&zze*9!il+JP z`f<i~eXY)TDW6oixdTPd0SO?%qG{9yk>9rB?Sont%@I&mqU%Y|XeXk`#M1i0?zpN3 z=8a*d7OxjnHA^{bMx|=c#2LqPX={J1gFdxp9425e76V41Cp5Nu08?0Tl*-teVUSE| z<vQ@Gm&2WIYf;Z8&56eGX$=ZDgXcK|#~YEwS6d)G{@5O<5YNH{^|V2J!JA2+Qi1%~ z+%TK{TWLtnNG%M5RiG^&#P(dgIDDV&nxK3^eD9N#J>zUkb~oJawY-<3j`xzZ#rbE~ zd!@%=ncXn&!zK-^*xO#=CNpg<Jw@FEzacaRf;*V4W-E<AftqKB_mzuJctQ=qT!T&2 zMKDN?FQFMSC{N!4g_{puB9zl!G4$SmUoqTgJ9VPrTg=`lek!$xON(X#KuSpe6r;%h zg-Y$>X7?Liwo|SJ^!lK#JfhVc2tp^66&1$7itT}=x1wTM9xjp#CLEEZvqHX{`xO;& z+7*gzZLeOQ_174*;+8GztmpfK6M&-%??oV@Eb<R$BW^7s`hGIOpZ+8vf&{gJ4(V?u zQ(E*ryZ(7%%85F&ZrVTCL(MSbL-WSvE&<yuIOt%`NwV#QPJA4ycQleQCQ_w>r)Z>h z?-wd}_{IBokW6tSh-??+0jEW>_?}fz;VXsSU#Vt$-;3)xI=*|xQ<$LBtv`7r=E+!p z8(zzFooUY>XZ@m~mTJdU!5o^_XT<_*!+fh!J-Dl)Q!FkUmboD8w-apZm8MUjOKvul z#eKJ8?wdPW!OfeW$!{2A&=x2{C`kb}d+#+iQ6#9G+{Dk;wCLzkL1WMFhpLD68Q<#Z z@gr?pLg*#^183XG=*LT#T(M<pPsYV!f<ZI+!E8U{?EJZNZKTrB#?atfkyR6OmhjU1 zPpG}k7Er1NxK!m_a4X#$3oDX%6c$N|ggE5r{yq8bo2AeO1~cQww=W<+ew|T+r2SDW z4j>vZf9U7=XZWi17m9`}pbTy9;B05)>T32|i+`%A<*+P{_<p|z6OuC3)m5-A*A!JK zqe4)L(=p^JKEzP2nz8_OnEvCm(LtAo`<G--9r!GE!BL10S*wqGKT?sUjKOO+a_EMN zjeLu7EirWQ$(1mO0Uo>Uv*~-%1#wdx<7DUuEY4?|OHLLkYNGGO+HZ*l(jeiN3-DY? zqXtiw74NmGJp(fXMIQ+5XcN29^)UmidJ2I(oyd{#1Mt9|4(dAzTK%xaetiFyNUwNC zPJ<qSSqpUcanMjPu6dGpt2(j~F)39l9Jbibo%~!t0Y3BDp&{MFRtUwQzsop-Kg3ro z)Udtqn<@wro8fW!8bzb^NGa}Je2WPpuaTawt|_I1pX}*_Xp-JL)a8{Z(-0HFFBHZn zarn1o+op<p$v56njHK7q(w}MB%L_zTg%Ntmrn&>e=_1I2*;d^*DQ2bk9)h2s>bKl) zAVyeRt!?Iw1KDy7+lzcyBXQ>JaCC8})rK{wyp_)bx#@WxkPM}nYIoSA>fK?%Lys9< zH5FZDsrT(lk$Ohd?fjBy%FBCEI{Q`Di?nl43$;nfYKFJyuk`_ilqf!}?H>cB8xQp7 zZtTMnUuV^m{7kpP8Yb)YQZsOSjDeZ1)9KPco6f~*6X0KrObCchin)f0q0F_SqKU@$ z$FMac7V?(X9E7%>?UuB*cdF=13F_Sotpd$~d1LQVj3vc}w(jFUflS-J*I@Ez5?)@D z*5&}W5Jy(Qh`K&}IwFzv8RdFER2Gb&p>c#yGPTb0usi;WtE!?f8$AI>vX9B`iRp6{ z`y^3~V=|o*+X*ic=&Xm~writGpJ0Y*qzbX3<DNgS!i~t#$EH3Qr4o%6WoB7!YP${f zg(nJ@G=)!1qnHpT?NP%?UJcn#W;FDfrjeO7Vk8@6F-3@8Jk^QaGVjW!^}UCv4;OKq zXM}>NI^cLLpD0kZwTGBm$z8?1%~~!P$adyDPo&2l_MtC7&=u@1KF678x*!+@d&hVm zCOWZ?E`0c2r{BkvXajVT+3!IJDK-r`9nO6l)KDe-by&>(NJ|iPd@c)|q37Goz=s<- zc|VnEw*Um$`gbll)sg3~!>)SJQuf>+o>X1MDA&(dZDC`@dqY)zz77TNwSw=8yQLvs z!L9`EBxNLEndKXI5qrR1KVG6q3?&nPxk)AVh*m@5&W=qko$gshxyj=^%8s4>I?5SZ zm0(q^lFA;P5y-k^u7Dm{zkl^`zrB|<le4|v%UQZ_eST~Q7h{jBNidsc;wLs8gR57y zARsn@HY$Kk!_nz|P92@agYUL@;R`2I6fIDe_EZH?eV_8K+>*fsh<9?~t^Lj9`hDoA zoF}gSNmXki{E8Zh+bHm}`oxd8DYkElO}Hh>g>z;<47SeD@W~Ga#07;&6DD&c7QDjj z3%|Hoaeuc?u3vws`IdBN2CL%CLaIl|LBi|+x|%G=@ouV~`Jf7<!w<w&2V`|mXi_HL z1NzFoh<|c9aFn%+#`C%L<n)y>*oWP1D2V(p*R53KN~Ad~lStM<Jb*#Tg=(Su2A!-~ zn^;Vz1*dlv@@!&v7QW=Z?=edkTSC%rexLTLY<#T8mfMl(UHxLRCfA{^%zi)jj{ys7 zyNbYE(@{N^`&V-Algj;~54Q8`v(b%6D!5F`I=02fY^Q78^6OcpDw<*_)3Yne7s5xC z#SJ^q-Qv=5YnCrn$tC)`Ll&PTHynOC?!2B5BM89QygK@yrTPA?L5bg|g(am_R27u9 z=<Q7ZR!{pI{tiu9wqNE16l8BvK`|GW7DrNdL=yFBwN0nT^-(Fkbx;w-VrlIu6A8<3 zpKf^SDn(G1*<crn!q#70HYl}9MqOcOh7w)zD3&?(BrcZ~Q1yB&9-~3bmrs2jFmcfb zS69T9k{d$CljC2*K95Ey*6(+>90DH$fBuk^=@OtIj7Vr;tuxxe4(|d9jvE<9qB%&g zfZsEkyI@ieoH=0StcAhRs+t(?QxYl+alL5XOjw*^7V}g?QG#OZ>=*k`tR$ozs>u4B zc<_GbMoE{#Us#ZUcdW`O&|TWX`ZGg5v-joqA1S=dhN--o!vv0u)=0&w4|7CcIx5n9 zPy}b*2|f;O-7Y4(ww$}6V3z>pez9(6efruC-Sb|vDrEEhqLm(YvjLQ^E|nJNp1%6n zDV+=cN43(qN|An0V<g~*!6v4za7Cuqjb-B4P4_uQ_V`)|eIoyW8O|ZUyvX%w^Px?I zAu8W*TP@}<hVLU62K;!SczD#B4^nIpRdM6F^Ju1tq`VUIK~SiVV)R#az1IoH>Tb7` z89`*UAv{eZD`6@Z3X3A(yI-gwY}#!DWwWC<pnp_VvBW_>;`goN*>(;=%zP0EXTiRw zm3$I$v$FmMymTblA&^^{DOHzvV_XNH;(m&d@HM2U83V;x8zuHpRv!QSn;ybZBIl~E z>V2$+xbw~V1edf&RL=rLV662r*mB6UaU18;>h1d^ohSVp9(Ox`yPjl|d0AqZlK1c> z@vZlD+1^}i(Q*1uW0Nma$oSSpI8^jJ3$XCj3J3vGPJHaW{UT?v_jedSRs|}>-_&Y9 zG9}4I_^7%cJb$T?Ed;xz0h=eBQ%}u<1HRPI3~W_wIBKkhsA^kZ)s}W22U%4&R1YFo zBG|b8jPdras=#P_XcGJf`@}>_LuTl^>qHNf%)3q_IS-kJBqY9=FzFc-Z%`sR*wUfd zyeRF+rEa6lmcC-2a>eF>ZO<&APO6qNn~dWea}o>b>DoS&N;^+1?fH8WU+O2}a6~bw zn2Q}t)x=}{rL=M;PF~Z)6!knRN;Wt;s<jA7a^jg)Eu>iUQjySTeTeC|pBh^z?AuNQ zz*2U9=>Pd=JoRrKg86%mwE_$`dHx1tkB%!)jZ4kRR8bBwP*bUYR-=@rqaCM}o>QEk zog9{(QJ|G(kff!SSDSCx1Njw04&gmW&;!zJw1DT2bvD3@zkmL%lP7=wmw%24{xmO- zfa<~TD~f-o2KXZVpJUFS1dV=;1pf)$f9B0!P&D}mx<-zUX7;9kC;vCA`mbv?x_{}i z|C{{Z$_KxZ7e5ubpOevmaZJR89{G4`o@U9wyahMRDWi{s5Oe0%cCkB$BwAB<U2&** zWMaV}P=+7Q6BKr~jooeZjx&}Q!OW*_xWP2pra9ZN!5dD4>xry!s73;Ev!M_Rt}z8g z9E7uio9GT;;SqU4I?hmpF+Vfu1k>^2r4J{BCG`;S;%8CB`pfe)AQg-%O_X42`+FcA zN`IZyq_cNBGBIqG^Q$Q#M$DhFI7B;m!6sb2<V+L4e??O6wmaIK$`8dOV-krQ<0nHf zOh{JQdr?owt3oxA6FQ#=k})ar8+1RABmMEc4X<*3W^z2tv3|f*S;=kWSPrG4ZP>Ji zugKC{Gw5sAuxBL=zs4*R<<014WtgYoK4#lX`$%*I4GYb-Kn4-}Z*b8RrK__Jwp%w% zE3VwGh=@_{VpR3-y?V9go<WM7_LsgD_WB23f2$_5O+tIkr4ITCm3%dNb^8R(;NY<z zU&l%W?z<~fAF2W}hYB@HMk=$%h^{jX!^(UP|Ak?_-J`P_TKC~3wziFxZC^s5MmijL z?LdG%m`_y#`{AW13XwGFQ_0|A_|uZlzDZ;pOIz5FL>Rawh#QyBre7Ej!1wEnil0cd zhWQmX_we6y&5k&RzPq({y@~TJ!QvS9(I)_gY$+<4<MBhj@g1jgqJsbMU0#BYR;h=q zogbOk!uIR2Ow@;NmMKknR(Jj#L%UVVvg}x#Tfw-=HgbNAi_&{Z73hYV<SpUs2aQUv zsyOQldhVt7V})(3yI;>D%@#HrdU@`ay!+0qT`OTM$7eO@!di^tsyP;k)APbmTTf!Q zhH+_i(HOsn3SgvS{#QfL9Bfds3m|C~^M^x${#h4Q{tuMlH#!iiDyOh4h}Z$Ra)6px z9vgR}NGMVfA%$A7;D{`;d?4qW&SKlydqJv;b)Ncd&JqIZEyT%AFP`hYaeDLpLG>oy zTr<YtI;FL~R@kKsxB2`s$`OcM>r<g(&Id!h84T8?a4t%fKxs{c(h=<BXKWo-;4?K8 zq@Ykm6A%ngv{#9^wuOsYYwTx1Uc)w5;LtNf-|*r!tIE6>xhXvn)mAZo!UXHavgyM} zM;;5E1>2&RQ+4TFx;k5752Z!<k4AN4bw0a<;H%xxxbNeZjQBUthZ_V?!!DhaXp5dh zv}iYGunCf(_{ney-oWV}H9yyYu|Hf$ujy*vsqpijzPpHDZgbEKJA6beOR4E0fqz94 zZ9GS+w(SPi!ORGNFj!tttt{$S1LZl+!-f9Do1-T)y90&w@L_^Hx>$i?32!GpsBH4P zdTkGgzw7sR3W0j8#0v&I!JlBm*wy=L_ANZUwPq65gzzo1{1(sE9m%-_)wr0!ZSK~% zj;}rlwun0EI!Gy?Uk2)Q1k{tUAj6Yiu-9I!hkSCN)KID)1iz>~&X9m6bAgvfTY5a! z6~DPByS<B=DwpVFfs)*xaF?$L;B^o9*x6WE_-#esos%n2sac`|E&WqV=i|-hllAMR zK+JjDO5Yb_D=_fB;qeX$Y3(Y~Gv68>B1t!QAEGD}Uw-`Mc7@m3R+Dd;qAOJU)8jpq z+N1I*oESvm%l1hJDx4hwlj<5<PQyXIs{$w-hnbc7;`<Mahyei*)<ZRS0#M$N6m5f3 z13)Rz(sf19oxNoeK@@}K2yq;8(7Zs6Mg>2xkVkh;(23ISmffYsDV8G;pj*`LC6CV! zvxy^>-0BAFq)c9+nPon2*7mU$T*ANVs4+n>6u~cC(c3khR49k~0y!jpp}sL1rD+0i zTyPSt?53C!$0pux_)rYPFZ+JXHZ!o`0`n@+oZj(LF7*}U7Z!On`92HKF~&bM-TkwU z{RP#SfADuE4sL%qu;*_M&rW3&korSxKc+!H=t(@DI-CoH0R#4?g)TZ6xCkWIKu3vG zeRMP?eZ8lb5>t-{;*Nh#!<&fxJ{nUy6FFWNL<TwD5w3%j%;v$KA=rcZwn~LS{EjyS zzNi030K6@X(CtBBA4yJbWm5Ml)14)VCQ-pPt=rpY_>1)W;6b!T6jZ-y6CAdNWEFAF z9sP8YtSP)ojZIi=h0@oy$Mh^_JZ>^2;bU8bHa(-Z^^Y^Vt=fpJ4;#slQJLl3P7q9# za5|0;9Ms{r#H$$NX|zDstR^-&!C%Z@<%xq8Tmr3mis~Jd&!7i!zTI5}5VK}d%{Z+G zN@QWO2xruGG7h(herjg6HhtjLlxTIxk10`nwdHSDWrSOn|1_`R`RL&y#Uz3w{ciq- z88abmLwnwerJ|YJo3oKDTT_Ym!JFNk&Hep13-ueaKKK<cR~p8wEM`X`d`>4krwliR z3g)li)t!9=6{bjau0no1Plp<vNjW>zA79j<r7ywYZYP^bQuKR=&Dg_;z~gx@X4Eu` zkYaPocu7W>cnvIwJgHR4fm3wZGq}DF#wMGxc;Ch1=lZ7_lY!sAgzPX8xDiHRwQZ#s z2dDemI<hY~;xnFG*ayTFq`oR>>@n?xGJnWvQd3A@MO~$E(dD>6>rAnG`_%=vBtcbq z4oEG+{%O|vuZ3IxqBicQDr2+qt0`1=xOZvv`<WMpiZIoUYHI5#*-qYqiH;CWnRgMC z)DNHAE0g7^V4;l1z07$EjW$q>Y)gbTSobOB0yf>|Fz6re(p}jd>?@Onu?TyBI}{1g zcEhfK2O)#cN#>|>u8`19KL_i7U|Cra?OoOhUshZEZVhIKYBzqDW`-ad$d)Vw2koy_ z&ba>c+$1@H+2Q`t3{3_qtvpB}$VQ}Pn#iy|uxqO7UgAQm3)jD<bv*P&LeF#FN0MV` zV3n__gmWx4;Q)zsYeoAoLfEIauh?4Q*qSS9f|>SmI!=j4#KG(2DCXoMt0${GM}dLi z;>FvQeyJ~nj_2fq*&c-v`lg;9Xmhk!So$`yYM0erd(D~1p8NIs!FY-7`z-l&evWa} z2Es<Ch?gyXw08syj^S)dPP(;@1>o!V5Dv22c2Fi?oS>H#7`tRR;24sbkH!ytvG(}I zezaY^b3xN2Q^KCZ=j19(EgInCeNf+5jZvW{NF*o5zOrFkU~zVV_MnLQPQ7~uh1kPF zwqx+AFqq!_Ek1;82Kyj_h>6<#o(k2=`J#J)>{>g$_VYW*FBFlT7o89BE(y{{kvFLd zKQ_ZOU_v|s;=YMa(+5)(Ba5d|d@#DO`BLH}7CPX9_5Phuk5Sz4(T9#6y2D=$1X*y6 zPuBnmH2u>)%)g+4;2#X2i>rh4{~Xc$k73U5yX$oRQi$_k)c-BGKNL{#UvR$wQ#Dh* zVYuK^oT<?A8^5$`7AhQce;^%yLfm;m#Xw_WYR2&ZEc%ot9>@y&bbMRf&Sk7_#F7~N z-a}j!RGti`a4bZGPDpkW6cOw~+JqsDLb&tF&gcaMg3lG5WtS9RYpHX=6ONc^d@KQB z{(w9M&KF3uwE35FqAzqy`7-Fbb?W1xSi)+QuhhfkBy!{{C=?E*=fjJjMcuIX<o1DK z(NpZ}0^ebUrM<ZX^Kx)V2m-keD%VO~$VBP;T-!fnHC}(~>kB@(e;8^RuvT{xLLbc} zSLdi-ly?E0*3=CC1@tRk^v1vDt?(nzG;ZbIs2EmolyI#W)K#Y52`B7Z+p-JFDRk9- zxIR8Kt>{As+3MGI8tm1_=1lNT%Eh|-Mji$I23M)L5lqiz^oB&>nbV`{%h%D--hF*M zPE~~KlL(x9oqxEICdh^oe47y-_^F@MmW<)Ef6kp)a?M&&O$8MF{k3THOr6P&S-b;< z8?gQ(R*Gdqqnl~XM+xm{!_-A4Hf(|;m{t0(u;-_(KtEJRU;#K^#<BG)0Ox<K(^NV2 z!6$A`@0-JTkSakl*hT-=yba{fux{&+)IKRg3IwcB<^>#A1IveJ!AChjba{1Hx|{lW z2mtgM+f8l1ZeJfF2T|lXaZOYDQ1&cMOO|EFRk(f~|9G1UrQulP(SD5SdCN6`#e=1n zJ_5sB-lJ0FiTU}#oj>k;AjK)2U#(j+TAdEuy`~+XLW1}0my#JVO^wI{PzKGPB6-dK z12H!@vIVpZ|If8Yf5RGXO25u_Y2Qa1rLt1Z@+pTTBIO6#Qoc3JiZR|<8nD4o99^%? zW|hmA<m%_Cuji>()3TYxR{DsQOo&Pm<g-~ctuUeKyA#Psh~#@l2CRUo2-b58=~K;% zOiHX-ga<x|KZlX&-HS1rNQ0OKvgjI55eiW_yzBC61X||PFk=Lh&8DMS6Q07J*-cYH zJL-oiJ|Vq%rIvd7<=uHv5V`HeS@8gI+_^7P5Q~Hr>Ad}fSqf%FSz+st==RrKQRw=p zciN)8bkPiyW5+t5yGrx-ze!|LgdkF2&{C391g9H3!wIo}W~<T|x^S_mEL1#b$FF<y zz~VGzl(Q}A+D3w3uVCr#=L({S9;-#?IZN^RpuuOOo9d7O-k<?}R=vf>d7N~RvXH(Z zjYgm4?PU$05PrMWvEb=J{oY4ce-=9C*T_amHCwYVz<753U$++gzl^7=v)jL5t39Bh z2f)^46=BhAA4S!C{`^vm{vJ2>NE#EB8aW-IH~nQP5y2bt^OKW_F?F*lIU7+ubHyOV zEXeP@QiTRtwJo*ypoq0{3{ajy0mR_d5}eMv350inV%&z7oCQzjC}PT$($#{F&{ZYD zyqCE#<R2$LAsiQ<O-qN<xqd$}YQwuZanG-*tXn|=2UdsvSW|a0MCVC?#%lBy{t-Qj z_s8`B<itu*jBcA3Lq)%)T=Wq&LQHP673v=1TSLSHNwfgv*s{+>XXz*D$ubDxEZEPC zbm^GBE0!`)?4LP)GW6K+zZlB=rT~$}oR-Qyd+ZxFJ9z}c<ivCi;t$`r;8e3>)4prg z@AjB)CFoPUaY(N(@)fPP%mc(Ch(@i&aeJ45Cj@V2K&JL`Lv=+{cMS*4v+HL#@U3h% zn-{>)hCgNKUmFhm@<+c>(NI;HpW(pjGpfqB2-Eq5x~5|w@hP!DVyKP0OhOoOY#mrq z<=wAk31A0o-W@qbq~WQD1!7-_E!JMvKW9yZR+_Qp#u`GajW&d-nYEzWkf3qre_UtN z1%)y8tXm4WlZGo1GPJhgLEW2=%f)uDY}7=|N$MPgtFQX7Cw7$3>olFW1#YuIx!Ci{ zH{kC{c+h}rrd|kB=4n<pVA)^-UAaj|E40Zminf>TZ;@0=3Q^WdDIH0`Xa=RBY}pqw z-DAl6160?`tvhxk2_DK<{yAxMZT+_Yc!H>t@MD~UX8N#iJgY269#Z%f^gb2UWt#iN z@ywyAoeu4V4@1hd{O8)BqbD6-Pplq9Tdoy-gUwyLO;umeFHU?6A(<b;;$&I~aU4aI zueea}q^QcSq6u-zEXSOjvAG2vB|>CcG(E$8tcZdUdOiqf^|?a|w{jZ8h$lYUex7f# z4mdox?Vq8HVg!R-4UawbYoIThx|hC-WC=E+26C`cQp+N5*P-u$mf)ht&7GJaEL%Jt z+}_%|JG&mgJsR~N5kU0`2=}&KZ}!0)64L7TQm?cVVXqgt$LqaaW2uk8o%dpH(`tZ? z<|Wbs@g`WgleJQ1L97&6tshwolfwaAYv~+u3O2#8S+T=bn@~w;FaXy9=O8gMLcP0& zB)HMTwlg1I5sW{OgD{h^hFzL&WGbfhfEam-$Lm>H$hit7eF3@C%R{WEX;(Xr=TZ<X z^+HyydwDag7-w{fwf7$XE#EQ0R02k#ExDn_v4Lsk#0U0Ts`+4Dj?5f(OSq6IW3F@@ z2)Yk&1U*3H^WT%km;l6G;7@(iU(g=)k2cKB_}5&=Z+jb3G}axK*%9C08#tXRYs%w! z`7|Z~3n3aZ&;+%vMj3%ci%Qs%Dv^}E2xh$bc}PeX>3J;T5;A%boX37W=bwq1RZ*-; zDnYvilg|e<emE*|7B9Q`FGHCW*IE*7x1Mv`;kHN%8x;{E9^fr>mR_u%YUO8&Hx!3T z>{5q)sEf9*({j8iR%Q=Twj+yit_#VYhO=eozjKdjnH?})(t-MprPgw2&FqB;?)}NS zdy)(D(W54Mtb~;<yK13*wgl-cg6keVt`+!AO3Cg67y6Q<^RCIGsj_Mg1DFD{Wo>}W zsy2nTg;&q;FmMaubwCHRI1U2pUbTbivF8zjmd6Zk7*s?kX~d+JQ>(38SrpmF+LSm) zEh{xiA3HMx>s<Tqk>V5i!k<KX7!DgqU86y|fXh)g++%2QgL{T4_Av~1sfI}=n1=P% zpK7cKJ=1}vuvZhtiDS(Pqvt(CPP6rT&3X0@m9?9}+`CPj>vrBaeFr*(Dc|cyv`*kM zoAW;mDia3DvmxBnE+(k%_kd!&xmGR^eW~xE0iGCqVexy0qhZmBWl8xg=|UxuxOWiy z0h`AC0C#lipsvP@KDX4vR=X?Lytg<i6t~mw4W6OpaynTBsc;nm$<;Zrrc2+zzf-$L z#WgCL*u%23^P#=-X-utTWNT#k2fUn?>j29B{)Q}r1(Me+mY;{+jyxY(f|WBGQG2$` z**O@B1xYfb<9L{Wm_(LWOj9pGSq-w+k}X$UkJ0DC&4`-0H?pZsqmz0HyEc&>21;js zd&`JR%*prRQBwo>8&u+yL$u9cS2RlU?61+`f!;pwD$pRlGxGG0%W25o=e(DqGWC(| zk=UYDAp={Fj4t{&npCLHm8tI=rfwQl^iJn6bTG2Sy_WJNUW8}ttuWk6g(vVe7j}~@ z9XD~U-Qpr3Z2O6{1Gj?H1F9H{BiYA@Rfo6q@0EPuX=GoVm-sxG<8YppBJP<c;T; zW~Qb_yfGFMkq^JZFWb~kVOiy#G`>4(O@S|c7j5~%CVrcsFv4Alt6i#tSmqwzA){m7 z^eN%JeUZzIC4o_-KS4U4=*hg1govKWM>v+2q$&C|fQd8+f!Uzd1@eqfsh082bzy-6 z8B32XyV?za2ZUT5@fKxP?6$$o#<sHIVHJcAjs3WHaNEoT@7s-k^o{Rz;HyNoAKRrA z<6D?a8#7tX<`4+-is}bCgEr#`sU3h9C~*r&>YxwolxEmjHVn)`!7%xfoSAGu<XbyM z$qmNEU2=-qu@&^i<I`&tl-3P-G{KrtXcG*Y3u5EmpC4Km9n0}dpe(-?uiBp#i3DS^ zaqeyOL3n(f=;84f;nB)^HJo^9%BH-CCJ<d6RjTDX)>M3(DZhcnicCADA%-@a-YzV0 z14d-~s3&q~^}ww|K1(WEDx`OwhbsS|#t#E+)X&npXo6Lul6?myo@YIr(ERS*xHg_L z^;Zil`!#{2SGjlXp`SG$^cFeD5~N!^m<8ze^O=>&9E&;Z->+7KYcY9j_ONTa=xk4$ zcb!`4&xrVb%D0_@LC+<sgQZ3`MIj(RpO~EeINZI)G&~L&)Bc(ajSo?E*oeIytL;_^ zTo`wXXlHxKae<3!8uRHAIb`tQt4Yn>*jwcg`45PJ8ylbXqp$fr8?O-0_(7P{*Z0Az z6IX}4c|?mAS#87TyY=I-MVzBuR&(aFT(TChxu;S%Ji&pg;_SkWqNAJMeFon8>w^Vx z)cd&>3)1XSpK=w41k%Zq{C|}wIVmoySpYVi=?^zo{6DOHQ*da}wq<PR#I|kw#I|kQ zwr$(CZQD*x?3@^#z7PGn>(=d``@gGJ)n0q;HRqTE|1XmHZxG!4kN>#K4?E5L|4PgI z@BTt@*LIN}!RJQT9y#$`NxS1j22>hi2)W|)bds4MQA@FK2=1xfY2#&=V^n5?znpN{ z^?Cc`{mz|1(?T)BfFrXHCPIS~{27#@u+<FbyPiv!wZ}S|Bu*Q~Wkk?2nY5USH*I19 z3{D7)`!ZS5O5$doasbI?h57ac{VX>JolR4!WQTygp(5{W+sGjfmAf2MMenXu6?K?- zZIK$(@X4Kh7OlPlu2Jn4{3hCkn5A7WwCUoaS0TbL45JY7=lJ3J(OcJPp%$>kQ6v0$ zho>gjgv;r6^0W&RisblVZjQ*vE|Zzmlra?7GK?Cc*BFk@T&(RKW9}IP4F*^4KmLrh zdT(U%yN0qKS*(q(;_VO4&kc^Yhl5CDsdl}zYkR%ctQr`q3;Ed^Uhlv6o12u&9$4AK zS>o|RRy?KdL4+|i2`)519=pI9C|c2ex+e|}2Fy9`<FC$H#7k+>ZHbGy8G%VKZ7S%j zL4rq~tyX=GbIQQX);gAosK{7#{A=rDtfi)Fs~z9{YGW=yLbp7yyLLXt$0IoSF*gey z0SfVvDm9U|feF(P*C=C$+(|lAHy}!!FoP;jsSc!#qJ#<R?tN#sx=$+5a>>5J0`i&p zGzXt~qto_b8?=)KsliA=m<V1PrzTxg5#gL0w!QYd-$-}Fsyqjp!H@N>kuv<il&QwA zexgX>C6Ogva@}p&x&DV|$Sc)j1tu@g{{TOAMfd3Oe=3i|e+hm{{X4tje^O>gt8F_j zvLpD;>ej>HTqf=HS*G<R4NTj?cf*0|aAubqP=&LL-itddVjuhVYJ0ECBvNtnQ(t{G z;q_`)r{(0t?ERX^zyLNaMv*vRqw&@Y3H@8V(07iRw#nA?F7K~|Dxraj<WjLLR}mqb zC&JQ+N_tAEeuM27XIT@>qN8GM><2ySokHHE-vnfpuK{h@3|fhxykj3NT0R{z4rM{W zfnFJ`g|YFSxXqwwF|Q^UiPzOsg3o;;sRdNRp{~+z04_C<uG5S~dquJsVi_>sHNUlo zggHCEW(4amK0~!6QXlfm&%giB@&nOMuY4KI``9nXCh3~m2@3?{l8oIU-><gqg>Bb5 zxdtibA*?9y^^_Z^xwsexpRzLgzPv81*Nnz>U2d`rUoK}np%Z^@#qrHirIKa?Pll<n z?itDkmhfToYqZ?~!KLm+xmBo~Z!V!}AR}bb;-wj0v7+T&?V%&Qm!Tburk7^|7?p9I z{oa2cyQa3gGx%sTGc(V9Sjej;8I_7a9kx<M>4Q{Pb91U>Q6jm-%*7=-LZY?=r8jfM zAU}OangNiud3eL-{N!t_9-KEj<~K%thJwb%<&_z8h719x*>6{=!Ewl`c%knm!3S=t z5?cH9wedG3Aw{8t`@M;maS5tDEc+*USoh&1otH`Ar~C8RwtM0(P<EjO3`t=~Zm;9> zu}Ej5VWu$euNOi+<t?><uq2|G8f9&F4a*to^;0MsSDE;Pp|FMiA%}GvR5j!G&}Xq; z6Vxe<W{8fxn7?g`9KgJnc?Xg!D=r66)X7^adU+lT{M!V|e{d=_ag8BL=PN8G0nQ;X zAfRsN55aL#1J|+<`fKW!U%P1uW%jwMLGik2e}mCPi2AE_pa+v1$`<9AW9mc{pHkO% zhRDrekU{`5=0;x<ATJ#3PHHf`p&70&eeim!wJdC=c#hix=B5TY``@J#e;%D`Kw3fc z&)kBpv4~8gI^R>owGwhvJ(+nz43_-Z_;nj|3E`6B)gj_s+I$K=gD=WX5jUTMW}Ng3 z(H6dhXf{cTZq!Lfm051bXY*#IpD6++8VwQz9SiZ>Lki?iM}=j<rtin6+XFf6<=F-p zGNiSbCy}ObZTn<vZwbznU1{_jcwmp4?G=dLWTjz<`Kxp)L^<E%W=l(aJ5-;7ojq)U z^e=9XI$W2$c01}kExkW4EpFtfr_6e#E96nuYdK8c<@6(L(3~vLg>n+&qqV<c5q2v^ zQV=#N&4yO8EYE_pSjs=h1>)KvQ9CL|CZs@$TX_JL-+E_pI=7LZocb&ie!lV?uj~m{ zRCcq%@`=XP<hsB8y#?U&?H;DdaETBYyefKHkw1AOJww3rEO<<R;(q9m{{9&{g{l~Q z)QwQO^|o>i%4n`a61ueEN@#F`C4oHEz2VsEIkaXOmFNC7+B&I!*!t76oiFlt3XV#& z8t&bbzrOfy+`<Aw8999*Ni;j;WOFUts5kDQU8ZMC(8@|+7}coUfe(lv@#Xky;|IX* z!J24b-ij65Q&DjvOUyj8r`LkU88_Csvn%bkTah>ubYHFA8hw<Iq;40$M2-er@rVqy zCb_aBX=7ms@lp<KTvHdKnvT8KJ<F@t@D->wbnTA+GXZm1ZC8zSS5;Z;djPy4VGCg8 z*c##aa|O>cDXA+sBBceb>YDdX|HWzepO)o&{$(`2q&Rn0*cD*WFQ>XsCq+T+k0&-6 znTSf;)KpzwZEYM*+A!Pz*X|?x05DD2ywNYAarlcI_t-`JC_E1Pkr64cTXpF27bN^a zg#3WL_@Ku)+!JE8yQy@tsba=~$v=mKD$Yo<8_UG=g(-jMVm6-mveFI5bn%#za;Doo zZBN4uE6vry6(jKINasSa63KRx%RWS|oAL2_^hTM;HLJ~0?}2pK1%!MMeGAN5rHD{^ z>M^}cl&2VLkE`>D$`Yrz4YItu#CH2+<ivn5yC@to+<5r2NM_Fb7d?&plq~=PNVV=G zOiVFyxnA~lM7Ll}8fBlOh6Xd<4+lMEWT$lqw|x~JkzY3BztiLLk!fLCwWp==Ww}<( z|AyFjT%yzM!?FYd2rdqsA-3=^E;L@sZ#o6EiQB^l$9#hA7P1%gpXhwBk0U?-hgu*P zrYu$JXPSJ7_^<e=D*w(~?MG~6<D~!N;{8AE`u?jDYt~eE-29E?vs#NzB?GWQY`kiN ztD-Sd?2uGQ*`g4W7;4<cC=4SmjPIw%k7Ie!Ym4Uyw6{NDLrH<?_~`Wf_;@#cbhOSC zj}l!KNz8{dJH#!Ugmm&iN)@?kJWs4nV0qfdYlGsr$c@TJ)=Z6APj1PO{gW^<jmeuY zKkmVbEFSMMy}No`k}>T!*O*vXXjWJxC!IZ=d3t$z%32;j!D&7uymUV+tuo2J!K{u8 zJF;c}JFo`i^AMg=LA}ylebNjdsb++~xfjo~!9aXaMg}CTG^5Du7oyMGQZ6%Zx?wHu zM8E_4*Jt2VrJa}H6&clOpSsPdyRx{P@a|qv$6E;2j*FBboW2zMw{!bCqje0={+=$T zoaBw(vRQBo*o{#Xsr7!ONpCG1R|=PTUZ?4bt9Xrzw5Faf`wiQgL(_7Pc<a`xhMA*w z{C34xuvKe)PGkqIC2P2_COb>M@mPn5Fg$xadjL5=w5d}Wl=~{LjlFt&H|*Ew37omN z|96<A&Ylum%uuLOg?qOA12_X_xZ{3vm;=GJiXCfa@-Jm=+6yC^1qDi;_KIV|PTy`I zFkXnPXg&eQvT3lBJAi%%lJ?~^0==Hz<Vd4LHmM^X>J*2-Hfe`C>?F4F&P4&HNNn!^ z?RQIi0dLY`jz)EjAWboMgP-lBD4@D9=7-rv`b};gJZMuh>6AEG-&H%&A%LZB1+|l6 zok_-v3rWKe!`92|jf98S4*+6Ds%WS?=@Pf=Ve-4h=_uOf?;6HVi(BERiXLgi<x2`? zH%B$D0p5&XLiC!F-q|FKHq{2OVuyn?zsMvsavO#i*+${{T?tQ28xdxNLE?$fE;P)H zOH|C7uJ<*_y~#fH;T~LC^bU1a6b-l(aVY9cQOUNVa}zq4|3Mr@ev-c5I!~_9$Q(RP zCz;#}mWP1Dv)y4tX#VC7&p7*m{-`s2RW=C*_CpcEy$|iHoiX&i4o+$u#h7njw^2FE zPBC)`u4Y76SKpOn$^zW73(RlcZ1s}bm$eVU^^ta*{g@x4vjz)90>15%rX6OiTQ_*L z=LfIC22G481B(sO3OL7>L0zuoycrfZN>Ezu0EwS)D27Ha>idQ+dBRy6es6@#6mj6l z0evl9L(DLc-*ln3yDyduZyLPcoxTVC96ifSI}0Fc=!2VF?OkoP2dBG>^Owty!>4$S zroG?1e{^RL%e&H~MQ5F7ANngx<Ci=35k8#d6<*5cbq`l~*USnGVSW;wv0Bo>9%|@G z{ccq8Rp3ZTlqed0PYFC(iV62)O(X%8N;UrG)Knv(OgdYrnee<FJNt=6`3oinEP(T| zNN~Ruj)*X1kzNGf=6sv&Fm-qMH|4`0W|WxL*2CIR^N&8**$1e*&!`M1!K6-L$)u8g zs<^a<majg1;nOv|ZDKRFgB5PX{Tn=oEttV$^h@>7Vo?4%9)$rfBCvf0c;uh_gf}zq zfnDzKK<}!{Q><4z)s>8*98BGXUD@3;_Nc?h^cD5!6!@j;O=myba8ST{D+#S_4=lc} z8`LL5*`drgCKG<kS%7TBOCsjt;&@!TnUYp*bfMFI&-F_*vG<7G+sI*{P>gSBufv5x zd)i3j#seM1slGtCJIr9Wpl^$HtMdbXcYd$jBo2AAJa!r7@vUS3aWC3rAXhuTc0rc{ zCc@){hCWVd8Ptm_?%>6q0i#tXatek-(g8y|W7g;|P$!G63*O567l^0*I$?Ra7R*C` z@B}#xW_W};Vfyx~+ftLGsd-21F3C%54ob?i00^ax2b5P;clb<DvN`oW1ecZxd%iY= zxK{Ocd4XR@#sb-INjt{V5j_lWNg`x+2G+juQ>yifk_E9$&><>gG-<!scnYBP-+=>} z9XuPwoml5b{aKrQHq|$HBJBy+r!y~gECvZwq5?Tt#sOPQK-(3qNpD{8*L-Tz)=gPr z0{hI;u#&K83Q{7#hg1#gw%M5j3GA8C!&I%`@s0fkkA&V+*^C*}>m+*KB<P8@pvN<M zDdzjG(vQ1L9|p7?zJgBXdg^`IWfgaMt(EHsDTvK2fUIF2_(gjx_tFMDqq+%sYcGxf zThYG@EbAf#<P>Pw9Ll%D*6nyfxV9ir4$+>+J0_$Vu9(<yXz*7tX(k+4f8nK{meV+U zB}?N|V8xEc2I3OVJ1dCt^Uu0AEBF)UcrdwQ7Kt*|jisR42Z}o*zd5#)Li|?raA2AF zMUfE(o26Je$#su?;}0mPng@5gre?%~p1qCOOv&aRafW8(+@wF>7ew3%cN6c}(-)z+ z(}X+apCBh!)J+WmLmC2jVI8TUR6KzVS3sVtoLMo!Bqq?mnkw?;*MlU9ya|U9RWgro zuORF*l8IhRzD5QMsw~_m+=k9z-Xsti`0}DU>cTlrcZc2z7-X+fbpPcbz{Tv%5a<hj zkb5AqhZKiD<$XUi$bjkkC!4jIblg-8F|*TZW=#ryu}W-5a<{;0_^B~_u|bTHNkKdO z?;ws+h>$%QQ59j+H+jd{uj`DsFfO01mV$B+&WmQYt(VWvA?wpPKXRx-rOp@!cPd9F zC0j(yKefTMNCu@!bjnN{!)ARwYvA!2Or0EDz(MQzJtS3Q`j2y){hSS@llGgT>Nsr* z@HxeU{wf#P6{R7~Xl@$>%64^?ZW0*_inTGR8=dnwp@@}~RJ9yWt?@&I&w3S6YgikH zBx^OVJ%lknG&T|UGa=uHbjx>Z{uELJFJuGpCzxQ5^!uo?)O>Vdw_r7<d9Xa$7L;~4 zYV@=Dyizre<!F7hMB<&a{fq=LcEU!2!|1&M@TJN86ujHr8Uid$uYn{&m`@0x#ULI! zI`St(T#oFsvWmvozW@bhTj+a=v2RPk_CHuQNhYiuO`xB!v9+Z!dW#kMqP5NmjL7|? z%F5=@oEb{&o8>Fh%;q4f4K3D6=Y8h(AC%wc@rg?VYHV>kDUB{A)s7DAq-{ig!zrDi z611MVK#R5NPIE=LTAu6I92f78H6^?X;u(S0S2Fe*2Tl29!&zk29)0|2ws9#HGtAm! z@3+L1Le_7PG3RGocW-&h@Khz?WlLgt**SabAG~&IDVWn9RChe`0%)$qzI%`E70`YZ ztX1r_Hj#{BQq?`JgfViACzE`%<B@U!{2fU1#WFIV`*vkW*>9Lq3a|2apzLY5uNt=( zr}ohV!`K>c>U}Hi0w&d+2TY@JNBul4%R+?Rk!@lJTBUkY)7@|U;W^ewH8I701ABSB zluFrsf(<#fF(eUX2VBDUR<3Kw-|Snz`3mmFm2qvcpUMzS@ejuV(dELe60^Dx3qH8T z2R_|BX*sjk?!|Z~>d4m!Q?=hpQpe~L>t;@RrrIYb1-(?Qad*-RT@=0|9qfr(*ROF* z)}11@9jHKj^W7N;v9j(0TP;fjZBmHeXG36!o;b4JrB{_>=l&-jaqPCm!Jq?~gzw0J zf0Wh7hrzI)EB$$o;&M!3Nr{0J{xTPai+}nxe<2p4=13C>2SONIC9=B;eXDm41q&7k z#RX4^u|*9~DAE$g9d0m=NUfaN31W>2j|J!Pzs*FhM`S%UU9gX_yIf(BU0z8|a$sV* zonsBpJ-N4TnFOsGZN)Sb5YcV~N0LjBy{TUfmBvfmMto)AL0Car$}iRc#<yuY=eHYa zq9^DC^qt!Vh@*QrU}1kf-G2^Kqzh+k934!=7{`MwMcM)Q6&ci!!V%pzvF}5Z8-c5d zk))~S1eOp7zgafbLjB1<3>oy&-pSAaTuFZ3%~U*7e`>KZjg9B>$XT`$Z_0XYqmFmB z?$I2npQSXr`);)k!n{}mvM)zNly(qOjYoVEfpfNd61>s!Qa1yZP61WMlQcCtZ_D`v z+NTXPY=n%biyef`;jT9r+*6Nbt!r;(b*#Y?0D9X8no04PnPqqq-UfI)^E;vuTj-;R zdH}5p4Uw)H0U>k9y*o8hV+)&IzE)UOs;x+Pu!@go=^&O-C)!ql6dg4IK^c%6y+DJ2 z6NQndXMwXHa#q-V^f!WnuRlb>79(;<FZ(?hzR_{tdDI_m$sn6o=f;>GRw_H1%GdjS zcYpON8+QH|?qzkjbFy;MRn?YuR~tsKY^nlq)^ob-%kah^k(S1{AAvBS9t)Ter^$d! zak+IoXNCL-)tG9Z4+$`d^d)8xxM|R8w`Xfk@=PE!tzNwIdH>uC@|5q~Vz9~7Ly6Bc zJ118{3~`{9_{|xDaNSwRO(Q0dvw~phr49)Elu_;&Me)&yhz4;)MOxt^Q*h{ts;jJu zY06BE{vzUS&&;=*m9(3u_ESE$m7j7#PxciubT)C^%3AJz)u|fSwZnQ&Ts!Jf7&rCE z2!6r*Q_$fWSH{5Ps$2)BIdw%uBhUV%H84V<@O_uQrB^kUP9WANpSVM%(fO*5e<~u_ zNY8_uuwxu^-}={pFrt^%JUFI0bH~Zb`>7dKMszF6pKJk2$GT<IwV!3ack-<tci)`6 z!<!OxoICsKhRo-nXiW8Q{i=(fkCnG{tkyV+|HuHjivWFHO~PF?mzYeUpUBV$sf~u( z5BgbyDCb@M9!%N(kT(&Dl05?hHmvYzdg|I%(|s8wD@-JjYJ&ofKT&2=miX&C+Ue7S z1>5rpy(gq?0de-c@8b=xqoIn}U&_)|h^k~Olx}0*ZG!QbRv{n^q_CeY>^Hud8v93K zTQVgeAju3H$#x4^w-g;s|Iw0SrB}cF0f-$vvX6)7E+g!a%7zL5u->gkc9gq3uWhFB zdyHMpKrf7d$)npm@^(s(gIuV6PH4YPm=z=J1GraZ?6rQp^0HD^P?U|Bp?iQGWlXnk zM%{J>3}pTOQ&OPX+vpE|7CFDJYk}4$omguREej^ILkk|oy*Vh0y|z9#2&jG~7A&_P z7lkz7HG#4+&^iN;X_M=e)4Gb=O%St8pc0d4+CybwZ&19(ewUIt-O@!seoIE&K%&nB zqBe~~9dsDHkU^u(<DheAk`=MfJR*&o`|dN+`iV4K>>Zf2t`z$7ocbd@0uy(O(O(|Y zjf71}scjcS_8<ptI8itr4Kpd=F5rTPKwWe>=iy7_hTiV9VL9?`KbP-OEVzV>RU$q$ z%<%>nR;<eYAK+p)adVlT`kIbkD7t$QjV|;&YJe<Y$BFm^=NbkTd+RO?wLIsr(0McS z9RR2BGUjSs(Fm+NOWjU{>6|a`rfeQ*s>{1kShKW;?&>jNwJO=?ny9q?eG31HHZgz9 zb8k5gMOC-V@(!x5Nx6U%^kA+G)N8wdc9nfp&Q5H)V(Khjd`0c-NqjLE*2UC4E!Nk2 zp?G&#`3w4gPv-}26L>n{0RWyk{uP?=Z?L8K$5iJ(?H2zDN?sgS4;R3XAne%_0B1b| zkB=&BP!+}SbmY)V4%X)AN_YPX1&9n+H0NSsx?@BnihyL8&mIw&$GDM<pH~l-E*zk$ zDlknJ4uWnY6ckE@pc20}wlisE8o?!Uu|~%}0W~H8dT7Nn#uP7XuWu2%Y|b<aPJXrX zllb`Q-P+nb4sPqSGqW^wm}XJ@^|r~SFjh>J&h3F9^P*rmw{8mRJUq#h7;pM2<^Kz{ z#e1N3DmaDX02K2Jm?eC){~z!1ckf(G*N<Y(;y;N!|Hmlvf9mP}U9*P&ba4D{N!$OQ z;`;BJ%l+5N#tsg){|pVXR{9Sq+fT?R4%DRj`DK<KXawsTt)^eqvw*$XXf=)dn;9d_ z>rEl?WPRt$ulSqz*jNRHO2j64XZ;1`1Y%n)0Se_w*giD5m(3L@bqne3B6VCw#MT`f zUmlyB6%Z-B7Tr||@#6?;6G?*S2DKTaG(gp4YkBlslRM^6)aE}ZCU&myv%Z{<?xJm2 z<bAB2Xw*_IAUbIpQ0yyz0JunW<zdSD&VE$x;)7uk<fl+0?Ecs@Y~jGTb!T$NxA-1b z<wnrKf;MG9a(x!hfwG<q>l`#)_F*#ToLLRnIq?0G2VHj~gkwlk`73^<Ks@7jXI2nv z(3!xk$yCwr^x8B5UAWV(3z)L#S`6Swx^^2|xE6`eh2BoPZ$q0k;frsx))ozcwmz44 zE)OCg)Ln??EtsdykX3O7R;M9WZ~e|Yd1Yc3JYF+<H-4ZAB}aD}T&zF>z0<G6s3j(6 zhPzX>eQcLJ#u+Idm5Ur7wI?Dg0rI5N4f6Bz=qGyPR`E>^wpdelOX9}N>v9^1w5!dN z;)BxIAN`udF?G_7=ZZ$_&j5HLrx+kNgbcNFi9+ITy0<)099MQ=R;S)N#zhofm<G7m znm*`6hP{yz2Q6sbiKxhOT4Q!MHa35yd;RT0BQ*n|Dh{Ov4v&o+C9Pu%4Ryx4Eq{HB zYN_SdOMrmSRv!Jsly7zy91!g1H01uv>D#}HlltG^rJJFZv!l7oKO-+jD{Wf*NX)!f zRi`qI4JU6{Xq!lWK?U<edqWVYOA=XbF4uIVvXep{32o#~raGB8!`h4EMir+!n#|;+ zFMHGjl=EoNC;>r_CELOEfZ+uxj5cm+fs)zYHnQaBa|<0XL3F~iSllqicykN-7eh?Y z?F*%HpsnNw^9<q~mDB{&sz_L1k53gpf#u+SGmnVV!9rp@$j18mt7WlHhZ8@*qgap^ zSthYdbcaGI1G8|FJ)JVX^qcGEi^Rc!T+S`pAF4;s)bA&@5T;vA)brMZD2A`#z(tLa zD2gnqEviv)!+{fD!V$EJ^#hHuQi^&D{1UMhZ=%gk<kU?sczEDqGxJW(aFQrVU0JfT zpGW4yxB}%crK1aPP$O&HL&$1nd~TFZ*n)uWmju<Ud*Kp`Jd4^jeV~1n>i?BoUHAo| zMOT0y9r|s>pYhC@GB-0gon9Y609d~MIkYvqD<JL9Fn_?g0<tX9AR`Z0`MhV{=S-0_ zI8%7R>nRNyNV#Ty--(AJb|aT8xdtk0?OXqMVX@9#!t68t&xElXc6UJhMILJtPSKM1 z35Qc$PsASGu9;WCT>wWHHa0ik!sBBX4oIfw2DL*wtB73MzO^Cs)gtOd-h<lt)z^SF zP@lF3H0$FIo&gv4_U_;|a48sGD_u2-oKv#>EGyxpxYR^t4>lRADf(!G__Vx;;Fa5G zgN>!O$D7>bNwwR2!s1xe$Z<3uYnt|5wRv?$TS~+WpNB#xPh^sDE@n{+x*mvf+OoD# zU(exD&T7B=PT3bS)247mZ57ARrkzQ3Jw<Xv3iq7s<3<6WYM?3de)n4caHZSgM$u%( zUIoQa0lbQ9@Q;_grd5MlCYIN5IT~hZm8wz89O6*N*FO><*FKYwGJehr%fD2L{k#9; zrVh5w|IEoUTIIjUp}<c1>vl&jnna)rO=6wmP)+=30tj;pYX(H|l;W>}#QbmzI<#bG zaZ8~JS54~j4}W+ZdS<*hL1|$q`|lB@2*%S_>`GRY{Rgzj)su}{!nlAd5pgs(-+7AK z43uq5XilINF;S|jJ41v~L6OhIXFy$yCW|#mxcNRQi~od3cJvPB=K28FQ&Ud@=N;QJ z{fcwY{$n*ejLA49NiJvE@*8K+6*?0J1!%QTFFd5ci9jM=&zy3>DYnU|{roX}m^#_a z*$y9chB`U9IHCApN)HSFl@<{x*hngWK_%uIG^M1Q`8Tph_PCM8$wOv$Uuh<^2U+W5 zassH9F58eJ1x(>oc_vnY)JdUz@y{j2&2acbPSuB^9CTy{4d$b&p~u|3xhn#jMat|} zA$^QI<ZwK-Ug(Qq&5+%G2eEngMrih7x>cS>zHkGg0f^W7>Kl^U5fli4yY*qAx}8Xy zvAWl0#Ojinqk4mu8p@TC45sSgnk^eGv$xF90}T+x>@7*d^8&24Rh$G1fSshWf(XgP z<`REi*P}QWwtq&rzlHOk=1Yw@M8Y+RTF@SAnqU~wra)<4p{SzVZ}_^|8u&B=v7V9H zTpR@6;-jTz&E2Fe6kiwWZ@%c_+OjQ{2(;0;CK#u0w|rwP6DPt*v`$u(^)ASt)Xo$h z#qa1=Mh{rx%{Gy%kfURMZUV|HWg<5&V+r!`0Jb||WK9cY*LTNVm%mxqF<Mzo$G~hc zHjdMny9!!s{;dl4-EB6fDf+Ow)>dna$s-+4@HddvpWLc_{EISDRU)9=dUjg`YIVy7 zXo&!KgG+a%hs>@jIy*J?l*)ei?GoY8PiVB}#FF2<DjP5Qhk=^DkJVKbK~hoaF$kYF z`pH>c&|t~E>$^q5VZ8&Z^HRKp%z4m+K98_&jIny5D%u^N1)DicGnxbaw~Be;QnJWu zq2oCaXUgr!(MojvFTf}3#`Iwb>s@CdFM{P-X6VphNOd!OtB#fmXCx3>aEU?zY5STk z#BY59wwK*Iw`bZSG(yPaSP;Y2vhNRSg{}Ed@PR|r4vk>Md*uh-Sx;A}+D}P%(y%Z4 zJ;;zKj4pe@SX!?Cpicb_TOt(yF{HqR{8vS`^1o?h_n%jx?td^~|4FSq&9mvS#oBQ5 z2DR2XV|Oq=HnB)Sai20#X{4PgM!UIQ(Wrq#!vZWGWjdywP$-G?`F;kCX%@F9HdAcz zsV7c6XU6;%1J?F%oT~Xpl1cMO+7Rxd^6x^*RcDut73}QY^7wG9%Sy&%1uK=CPLisL z3Qejz2U}!8Q;E5y+e%u271e{GA*IExl=gG$adUO#%FMK}HqG?e*?tvG#l5t03x`wf z>`dNrDwk%V^I)CHm6@;Q1!?Vc2MsFN7f#y7m#Ov=E7pGDyj!jg@bAek>8_l6EStZy zwzXXRDz^~+bMFsjz8tO2OqCXqH?yUFvTuKrOr_;qTwtb3%pV%8A&zpttGJ|HO<q>u z*V28rm`hVnnB1v=v6r2dnI5-jka*rQwW~bnwE}S>X+GN49<d0eHm~eqYh7rMvv2IP z=&TzjOj&KTCk!pxng_9!Ha6kDjh3Ov7Nc;;y2`D0G!n@&I7<+7UXj0;$hN%UbFF?N zf6mX(cSpRsTEH0Smy6B!UA?qUBon8vjC*vNJWJYbOZWpb7gbFSS6#P{R8cwcFyE&8 zKu%3hlWI3D-Y0;@9cL>A$A0%sSu<5a3r6~t_abI*TIz{LFLpIVUs$LP2i&!~l1oL3 zI7b!)O&epw%D(xJ5rECbQ!Mw9D<i)#m$cWcM7For;ipsr*^voY)j}f-FL2WP*ze}$ z0XL;#seOnK`B!TS!?+8c9>tem8QVYq!K4R7ctL(avA3}Q^RaSUaT4iQum`~0O^y1L z9l{6zvdJ<M4p@*ldom25_4;1hl@cSmHIb3&Ro}wg>=l2?l}kio$8zGRH+^-HZJog} zJJ1ZoO^cS7_5~(kt8Z!csc&pLYz)Y*quL5~>MdOx)kK_RtS+v{4Xs@j4;wS_Vc@Se zkZYnoeYF%BM9?ncu>`QWGfnNNCUA<rJer3DW|G;@D1D_pFNmdhP(fSr=O=Cz{SQwo zn~Quk1hbPKezi5kI6h$NYe79>B_1_^E^{(R_4z>se}isyWIGSnHjkt9UTgP7i}uyk z<y56QllFG&s`Aexl{o13rt(@#?%uH*5Yr*qI<1q#xk03lWjih{0W<&<qiQtRd(5lQ z(21JLEcEaG?OLftM4?I1ukMrRAj@mRBu%0MYoVgoJlyfSKCi<c9{`wBy_pv7y!7hl z3{I4*k;7{KSuW^uu2(%0&Z-K<o#&%-)=fMS9?otG&zC&|J3FXpHGmm2{Pc{(i^6`f zL>259;Uy%oaBwh~!;%2ZqxLyG7tG<N6BE=K#hxJEva@9jYFzQ!^M&O6i2W6nX$rS& z0Q`!4-D6mhS4{EHjG&#ShCnfkNnahEzN1eBT}8d0nkxtAEPS^&w*0XS4`RU2K@bws zY92(_1>pSSEjpX_W*8S%+r<xHCAj4e^ov0g%5B9voM3+uW>l3Af7u=uL8ht%-E4Mf z)HdX97HF^WFnOF{flG6FK)hr{+PeW&CFbCS<Fi~uCO3wG!x@|8Z0MlCVm3ed1Y4vg z^|SF|_rAV79ld;9>Bh$J^?bhcY9tz=Si%B(Z#u)aV28Tj8bS_P1>uV#GYQ%P`aI>u zgudfP<gOZmq@eqNFyDYkXUSV*t*{6Ow;E?|OHW->1(-_Nn>Q42%)~O;u%*<Dq@z6c zj|EO$Pf0Q{?$IQntbsSBg1#a=K{*YM^?S}8>Bk8dN}uY|R(y;jzkp#01@3}-W4^Hw z+<d$fKfx`Sfe7tF5}WYqnLcIBF-EdN^k7a^HkBp!F>=m0b;KAW1aFm-(<Lkd{kq&9 zHx5DV>tfyPG<-l~1~-{?+6<VCe8GS1@L1d5LFt%^|I0iAY~}%*c*A?i1~gaL7!FKm zX#_LM;91i@#ODg|<u9|23nH-y&)4Po{B=4QItSv(KMH@OmXB7+BVRz}!MPZJ(HAKx z`MUSB8waKv!rr_nHaUWzY%9M7#WLyTpN;4kae4!kX2X?cRAMk^U5-860WIbfFWn;y z{H@oKs7!`q;KEC6hvp%0jvFtiAs~7YF$=$0c)-VY7WGC8<6Q)nUi%-leoNA25ZJOR z3O=}c#^TzxzN^jif%<r4vyrtPcXkA<wRg_~HPv5JD#qEA=5J$ERzp<ybl>=M3k&-q z7z2*{=#TL?lW@!%)-to5vY91-?ecJ1Kade#0@;H5p?7?)6lwNZjy3S15aHPkzdgIa z_az;p397ox`@V0Ua|1SbxGsVr^dhu>m%Ucs0s3vAs$ruHEsB^{SIddZ7KV@h(Fz3` z1DMTm_6`w4jI+&(-Z>)Kh`ab0$snONst*8|c7+VsznloXkAIgBhNH|HEZy$iy9y5Z zcnFj%#qs0Yy35WCqAJ51oMUJv=OZGH!#&a+?&*NCi=+2vtWRaxs|(jR>7}`dW>WZI zz>IuSFuX1XqEA69CH~{0uW3m*H_iqHkbVSiNKmmHnVpvKWZ$e(#NK~FEK#v00~DSh zr&p*VW0fg8Yyo;P3h-8rpit2&;t6{l;Vx76l+#%hT9p(d*)-@>p5PkwoNV2_n9HG{ zKN&O|V;$&9o1yl%eP9@7I`zT@)_(tUe%q?vCIU+`a@)=`7Sdr5o;{ozL>8InW2hfA zR-&t3=9j3ribQEm13;>;&?pI(Xo|&%xbQ?nyRs3oWReJ%N>hVU1`PD=P1fi!k~yKo z01#EF!(BZ+!w+Dre@XGp>G%rxD8NEp>#86Cr7nm|U<h%DP#4D)j{b1@C%fF*JvH%r zNA!WA3Vl#4Ud5@<qj=0$Hu5)6wH3DcFhV7Xz3fCv!HZn!Y&OhoHU4QEYX(Z;rFfVa zy_TI^1n7iF1`rN4A!C^2H@N|i|68CO^x@DLY#YcB&u!H>{|x~Adk{}MC~xIA^vz|R zq#q4nbjQq1KMwiCa!2rSGo|Wzep(eYkVl(Y4N}}%=v+FJS&|IYHl~a%AvEi<0$D?U zZUKHxOXGP3wNJwXA3FvlQmeGD4N=6VB((RRST~%UmU=7aGiq@$Dc<mdTR=KdYlzbu zV`oiL)rcganL|5Kv`vDcTdUPk&&Q8Qy3<dmA5)JyhT7@MphDy<bGiEU(@;hP?y8X- zcfgpLp#D!a6k}G#!aH`jmLOR`=^xki4|Z;4BME~peVMAqoUvLX;Ri^D(=>zl8J0H> zy{XRb^7)QO?M%KjlKs_|F|<va(!Uf_r;zW=F;NQ#v~Pnm369P!jqSD?olc6Vzl-qp z=FgVSo78_XWqKb^rvpHBhN4-@xpo!*@iIqINwG*|_=qtVqp!vNJ+h}QMWNAz=09Sg zq|R{*tr<b7jE!T!<Ip+7Kt06`g<RMX(@9Y5i)Qese|umcQVlN!G}3eKKbRGGf8vMF zVnC+BvJIG~p;vn9A4ngr5&bs|{@hhIR8a&B#&hu$E~p)Bt5f!=XZ%3SBTJ2wurc!o z$NGIGa&XH&(}id%vRNK2>y1ydFKs<Oa&+9iX&}T`-4pAW&`;zQ5D>GD=D|f$t=zge z-;jqx3LL`mz5nt#pP6VIyZiNUT6+?D)B9=X^Ky6S+1vrQ_Ufdaz=cxizzK6WRa+aG zn6pF?&%(3p0655WH%)D8x=PvzNoAOwyml#Uy`o2p>XU#wX!=xB?FgAY+^$1o=M0ch ztCSyYas;yV;fI>qhjASB1m*Qc-^>;OB-80?(*h_o%e>cX=(gnryxrT+W5oh%%L-U+ z+*9yr2H9wrnR-Y)+#`dcI@aNFf(h8y=!x&k0c6OMS#1eL`MS)-$egyoK(r2J)z!oC z99t4?oh@wa7uwB*25axZiaSof{C2+4<t!wyn=V4!uk_~+Yw6?Wl{27JTx2g)v=)yb zoIYa-zBWA!qnl>ByS@0MjiTd;o_&Pn35I|E7maNV*Likc0{ps?bL1^Uq{!xZo+G)s zSbaNuffib*$vhJDH2a0nsn3Cz0c|^5iQ?%iDqzYF^-rluYH#246f<}zy^8r-)UWCb ze5sBmJ^=3b<(enGz+PPBCy+EkKKrFt;mX5Foe;~f8nQ>~YUXYf&JZ#^>f6!%Jn!O? z&=^T5w5`rR`s#5};2zsbY_)Mo(^pc_B{=IXGJ%V-S^hkK-BlR)yj^0su3R^zRWJT{ zWYnrezDv#X5CU_t*Xj)%-q`}krKOsv;&VqCUO21kJpug^Bx%NVJO%b+hlKAxK(f5b za_2IY2HQYRBq0gZV-PL}m&eYI3Ye!ljSq~fh~3-l40rs_d)2RPKg|s9U%=R~jnL>z zyox`Rp8l}Ka2(AgfH`QrK{uoasa{wV5H0cIbmxG)+97<4&m^-YZ;mJvS!v{Buht|L zL3x2c1<xRg9HrN_JYuhkV0Q$*9E`uOF{q={9m$&fE=&*x+C_!USbx=8(WLfgG*|$9 z1%5<p1goZ80M^Rc)T-ueR$0ePB{j-=UM8~niXR}j>lpj}ei@c4Mm=6pSQ3i`qzA~+ zv4BZnq@d-5nRqpIvTmODxkOLat<PE&e^L7DR%q<u)!FwXzf{29jT_U`#kPt@=y%w1 z5;tFsgeuIh)-WrbOy36iYpa9f`FG(AE&bVP_$lP6=7r_u!lPccZv1=<OxX`@J&vCg ziVI3*%LdTc<meTW_H}3V<)@OemFWW=e*B#NLjV2@lkOu2u_f6U`p3}?_rEiWh!9#U zY_)S#fThse5Vu@*-wh12`h8#ke5>aIvzR#TO5Dfk4DE7|5feKSt1FM*DUH%k)bn2S zZOJ<Jm!W1w@hRv2HaDx_1RTWQZ7qcIdRZdVMnH)(isR%suIqgdV-IN4juVt3V<4ht z*aFxPGI%4}$L;3XiHPl*UKL(KfO3c<MMQ)+0*V=g32Ie$Av!wJtTbgIV^V;N1KjI{ zsowbpaEE$0XIpY-cJp;`&j*+nhe;tYz}XZOsgJ$qH$saw!`IB4%F~zIP^e{Q1Vv{} zZ|BtHAZ(GI+C^AU-B3FlX7|OcdJAlgi<RZ;J)Pf>C}L)7eN2tswk^H|1?dyU@s?D{ zrw{g~EkUUclwCcRX5zbfE@|k5XkTS2HOY<dO*mMlK^^-c_JAddAUnLLEOOizS)aE^ zIDIwt2A}z-TX(b&*0m+6=(g_#DDumf<}W&Jgj!g1@o*iMX);=CR~*)lT&f6;_j=}X z_7^)642B*cS@1G7)KvJscru0+&Xw<-6CbQ}sP~;%^3~ncb5kfJ3n0oAig|^|R-%vy zXR2u@IU>#S8M*aq$R8~+E{jqF&~BIm+iGL8gu{uyP}mkKnbZ`U-E>9<J|sLne~HIi zToVRv*VA?`Wq1Gb&aLG}HiOAZQLUtNCza?t`#L19UkJ%7<U{W>7cTrP6RILV;D9ei z=eo|Fa$m;}lebp}>YU~|(i7HMDs;QmZzQ3Dp%0B3uUqRIbGsei>EGScQ7Tpzn6Jj! zR@-h>pQR`BY5%PnbhI>sa&hBGh=fO7VS&O7g_J+K-<i!xJg3t3AucU=F+AR=*bFld zWUc3;5;u713%Ijf>Qlh>1mbu*w1S57mywQ~84;fLd`){P4R?E}T}jgmPLq4)SIxbj zOqZ64O;ota@m(9A{p;C!@S%R498Xf$8?lQVvs^Jj;RuCD@-tB`BnJsL@`8MB6b`#h zf)TB#1Rt<LF09p2Lq*?%%k@F#?@?|faOupypnHR~F|6FO%&OZAzv5X6fgOP23Jb%Q zm6c{BlrWwkN_8h+5qG)J9{M}Ek+R+ioze0Q)5V+WPYWGxZ^(s+5S(tpATcurp<H{T zcdQ&7?KC@eEpg_n!*Sbx@0+bzK2X+#JQXK_B0Mbfe!OfDkNBg}=~noAX`L(RTykH; zln$#i$2|wk?L#?p=cw)BcP%<|J|#Ti(`k9ndhNCk!{UMxs-^>KZAH#jSIRWpsZ@YW zfVYn$l?CC|%1LzIQ!niOh)B4^X905h_oM;O=REUqQhb#v+?vQO$OOz53YNPLtq-Xy zy3S!L2;CCU^SYQ^E0wkVQHuuCEiysWhXf%iOiCMN2!Y<FM8l6&VIAueAkJNQKg-pI z(cjFASwSLKXqz#j4luniI5aaP?tPxE0+G|n>EJFi8eEa2VJPu5n#8MgjK!)GoC1N1 z50AV#Uy+xN2KOW^Sc{Ivt6BJJ1jbZqkjNCIc)cPY718F*<XDCYOC)>K$bFniY&-C% zK=K1rpk;nqb)YI)FZOi9V<pJ0j<(!B!UIJ6G!oP+n|ANL68oH0LfZ|UBY^{S6@X-2 zQR5fp9mZa+a3Y)Yx^5~KHU$AJk)r|GB7IQO-~Ct{8Ts`+qeRxXw36MqL5+Nja5#YH zq!gTQw`EzK*Ca!YJY~$@Xuqfgy}jdx<jaNCJ8J}k@@z~_9M&*Km(<UQ;l9LHPmmYb zxY6@sX0~2OYMV8eXr9Ch*S2B*_zErV2UAZl*U2$u-m)Xh+|7~u2Y2#&lruIrF(>{S z;#Ed@@3YH{F2?uYv4IqjPm(;X1Nt*SD<4N-W`{Km!NGq@f;i=+4J~UfeMD925m{yL z%Tu=%ZzARd6Exg-CW2w12gb^h14XZa_jF@h9p~Q)*2z@-e7Y+y-Hv1bTEsSA?Z9i_ z*%NifW?w%^^CjwDT{eWjv4Szh4z^IQk!%na4aPWaAqb&6xbI-C=I}!TEwmu_aKf20 z^skZN`il{pg)yg203Z~tNKaB|&r0mB_#4Lm95m9_8~=hhuS>r|MHZ!oW|*vg$<5}j z-kvD)_cqIDF>c<=Yg3CfR`R~v<H*?^!@`g3Tk}-rRkW~G*_ig~Duo!E=YiQ0g1T=q z*XC~#oBWEzOdVJ6A%Dfgz<dRDe>Ko4OCh<sQSZ92T6=V1^{$-x>Efb1?dulV?h<M? zh)lOtaYpiGIrcftuc#0s?B2`*7kLjX;*KRfKe+1;@NAy}rBp>!f5QInl1vh~mw_;E z*~-$?Jgu{H<RUm8F*#byYcHt#qm19ql!^XAa38bnnJ0>_>0*gHWDl0}4-LW7_V9ua zQ1tI!0e_9vyn?W0p-Wai)cJd{M(1o4mHG{&3`}D0wb7^U0J4*})xyptQ2&~g9Au5U zY(<G?=f6zcvLiWiXdM(z%E*)EWSHPz@3ov9eI@~%E?GxpD;F4dXDptj%O#GN!YMq_ z$ghr_-(1!^;&mhS`d5gMa*=V354k~!4HIYpb)1ffuW}f34kVK}okmuQZ68afo?|PR z+rm2o9+YFly9rW6qxL-HdyLjOQ*Yn?E>=_3KT`;HZdAPpuAl|5FKAmlhDiBCnCqPo z8LlMLH`I7)RV9v%{H|m#e}W*cjMTj6>An$X0w>ZtP=~(N;;c$+4w%Qa%~srn*=vi; z<{XI6x0ej`ioJd~=*=++GBy;oa&`P|W)GRYWvhs8kRDwMn<gOl@lA<by=eKaEx)0* z=5C$87+uYfA5FunqA)9UwV3CDB`Ag0%U@p*_61eMy(@<tDeY8M$RZU>qSe6Q!N8zR zo{x=zB02$fdT;dMd!FzG3^n2!1?D5nR}{9rjG&({4BH+WOPNc4mCC*o3U&tdYev5) zq(x~WK~}~Avq6zCla}eQ!wtmaazQuE%*VDi=2~U_^jj|b9l2y_;23LI$vt>D)1YeB z0K4>&Qn4^drc3ah*IKHRv$*HS#YK*J{4_w}m2N5!n$lfre1#pP>jr`nXnh!?KViiA z#)QKRJC|?^dY1lRH!(|kErqk7Td<DDBh~JlCSyYipIk3nc4wc5K6KX_2#jH?VE}t2 z(H|EtJGYDP`|Id)p2!Z3)fY;y9mfi|4lN&y+H!;lvh#Gb5LCpTAl}jCQ$?$Zaq0K! z9M$AaO-CR7Y9>f4I9AXU&G*@Lx|NMrOr3ZP4}p`k#`y<^gI)eSp3c@`h!pIb<`v_^ zxY5=$e`dg+NfO7_B3g7JrPZZUF0QTYwrgrmJ9J6}j0JFJU1WJ+<oqaR%07>GVsf#+ zuGlVT;cW3(`-&Y#*uia1!3!yqyC^+`n$|S>#G!mG%Q3B#$4*^Eb}IZz$}JMeU+Cx0 z<$)7=9Bp*VHgba6^0kY2gSaZ-<vG`pl45wv_LXi-V1E-HUk{+qav+?-u_Poh!O+7C zS>h%5${s~`2^{3Oscz|z4kh1>dnP^vL&^CmfO4f`KxJEQ1IG6lrH&0IgC%9zA&y)X z6LFh4l`pKaXJq2}@RiAswJTT3v_$4(%BVMJRj;~dgW4U=il-&ly{44^{Js>O^+tW} zE3UwMWOsTc(;(iN`ok&ax+vr@wBr_tCII_(IQa6oSSmtP->q~yj)Q99{yC4~9Vt=p zMZRR7>uks2ErF-JK8seI{dWv<as)A$iofu!7Ml*v8<QdM=GusgvhfvrKzmKHDsT{O z7CwiH6Hbv9=KAKI6MZ;YRetyt-0AbsFEG$Q@C6B0HwpE5>Bm8w@GaV9HVJN{sl`56 zn2h64wufhfsf_UCo|kmU)O&hyt&0?|rNq!YtuLY5g-jz43|s=vc+&&%(tPN}>$94F z5c<{vVExaM)1)w_$Zmy0L5^sB<q3grdR&yGg=@kd4QEq*7kSOfvPKNixqYDi+H%xl zHwXE7Ku5PHo5D#}h?Zws8Bj`}RItp9q$0uYshph){S&+N_$D&8>zp%?eHytXZvKse z1Of$DtSl|)kM&fs8#lqpu{3*(`6Wt5Y8G(dh?es5R<?r$B~4BP0j<It0@R(tqYMS~ z_Kdie6@VQ>{nr%|%)!>_Av>~Ty-odiK?QF<_)B>0a1YRsF<z$j#%MAYvv#VVV4(~< zbdfb!gEa69*Dp@W@J}SjWeOn2?bz~XHL}PYd(;$7-4p4prJIFV&n}b}N4x;=S*L^{ z>T{QwA)aYmsw*)I|NFRj1ssJ7$Xnwz_<`nmXYXkb7aW(Way>!ax1f-WCPY7NRMpjM zY6@N9v)G6Iqa((=dZ>?Ajk%sz&x2xi9UNzpt_wyI1HkgG>o<)196)=)xlwolo>2mk zkJOzgWD#`pj*xA_1^1+~&g!FcTidnvt=uhbMqh*$38X$u`rsH?)?WdIo{w+le-ARO z15n+jES{HZ)2_>UTX&Efv06}=y}5V{n08o>K2vlwN6QyriHZm;DPRSZeWgV}5={7Z zUe8@qBwAGyAq0Fokdmu?=J`09=g&^z%NRRoKhAyyJb4WHh@E#KY9#&aX{^u`f99O? z2fE>U!V@tuj`pL>ePPEPt{|RTPuuj(b`SP8ldmC{-4F}VF_6&k$mKI49Et(=gn|&v z@-jIdJ<0;|uUQP;;pJE$2gTZ2;U*uf#V=M=$wsf(QgdAUh_?rfL_hLtrBFy8)%<tu z;1G!f2HF<3lm<yK>8q489Wpdk=FrKCs@WzBPr_AYkr7*bb@ocsNC=Saug7(aNSQD4 zc(g}xe&%lk7r*xoVn=U%wB;+|b5!}Nvo>M|+8pgv%hZo@AKvFb2U3zV#5iMUrYbdn zr$^_nGe!N(txUxZ`idjVR&6+QcFXZ?Ix>qC!Hcu8t__EGG5zG5U-x$JlH+jiT}UHF z%n!L%+WR8FPD4^uV@@61fS+`|kRN=pJGn#Y4_^qSp_`^yBYD%;(oCm+{vap189`8! zLzUb3zSYRY{Gi+KgRP^!JRZ5YS5EJ@NA+hfZv-`3KrwA?-`vDII6dF=L4Y%^$Vgru zTE2TD+Y+(B!dS@OV`=Hf4?Os+s4U=7tml{HdVm3T(n<IG4`7_62-U6K+Z-o7D9O4- zw2M*kioVj@tS&8$pS5(ZHA^VvvS$UH#P<yXByQOyO+ebqt%1AA2bBYEvkA1YCz1$Q zUft@?uh1ZGnsM8hVg8mUr(S?jp0TOtTJd;8mj^O`@=SF1*A?0=gb_1P<)E~+=(;}W z?^Y%S?l(xa>E=6=kZ<t04<zY50jqt)g$NQjO%Eh%&nkdKlG*VUT7eHu=Dng*OOJFY zc6BxrUTA(9h}7FA6}T-I_5&{RH<k8ozm8}lrkZT^z5w4}cba&fO`dx-1!>7^o3MFB z0%`XTxVRS)k>D<n%^YZ+*%Vxyw#{E|%<#gpA@`VK?t8)i#(#BdP&bAq-Os{ZwiXb+ zu_@dcxmmS-r9vRv?j+Un2~hGkROp#2=my)ilhR#{=&G63{AKN!H?3mFdsx{=q!&nq zzWw<;Nv8p!3}%ZgURXBrV5DqoqO_Xh#~qB_$*BB6#^Mk|ANE9g{WtMBj|ftQ4cp47 z*~Wh!nc@&7e8b3P8P}-BX3HB91j3%`9XlaSTb2*<seOlQiDN4>hY_>w?C$qA>#!pP zl*=H99P%Qu);8}?hpp7`cT5ZY1CJ|yR24=@)3>$!1@VIe-$@<aaCD%rzXp>gg71rc z3DTk9R07aQtb9G%6RZSlW6mO=ko5jkXQyt!hq)lWQiu)xuZ_&SDinU4ZINyp0%C8K z;;yfy=C?i0D94NHBlz@$aeCx$eq+pQ_S+O*RNDRh$lqH`T^pd5{(5a?y|=T4Y+z** z^vbKU4FO3eVDSMI&i{+HcMOs>XtPDzwr#t6w{6?DZF{$E+qP}&wr%gW-F^D|?wL7v z=FUvSjWhE`R7FKaMdXu}xz>-&^{f?$B(^b68nU-;7A)pg7`8j{$2%zGqhGEE9IpQj zTI!W(KuV_d=8^a{29d#keWT=^&sYR>NQ^i7S1SpqyJcbp&e^Gu1nOp1>r?WSAQIq> zj4ln7o5@1Z`=m`T2a)`V$RO(HC$&&94yPnq@pTU=9;6|WO8TA&6Xd!bYq41W>TILO zoWGTi--T{;4_aXN6RAwjby<go`<2ajx$kZ__Lu5Rr0Ebk)T0b6E;(_~teB!vUlYQG zl>1vPQXx9^aQM6JVd;)zyrc)rX>e&VXCReiMM$Q-hiV)W<^+wy#@7HY)o%6Lnu~}V zh^c#Iz<a{6wyf=hRIl+>fEwJ)Ca})~LJsp4b?$zlJla#vr}Km1hbY7ExsM~jfq{bq zp^JmunC8)ayf^LgOfE2hjZU4+JWTQtMW3LdJ&6)DdWL8a|5_G!h(PMss#wBO`?F^y z!BcC9#3bin56Rp*5GI}0-;7w5ml`}=*QiBfE8ypQw*D!nN4Cv~W5C@DB?3c9T!nFl zu3ZCmXLq6Hddy}AbHW8Im<KCskqG(=W=vadGV)q~UpRfVc-cy7D|V+|23i&$c%*3k zev^6Lhw6yy-9P)ERkp=yi`6n-`#~I(=hk@~9x%;?G9S(aG>UbEaDCdO%jD8RT!t+7 z&mHzgeqCu*_r`ow4XjL0fA>h$AMwKH@!g_C`{$0N)EWoFE51T+KTaWj=~8|11N%y; z_XwU#5wm#yHk(_ta<Sjp6ZTrfuex6ql==ctDdW177HEw!o42~Ij4YI$BdpV9)0ze? zou(c5U|Bb4xbtd8aja#)#U^GM<B{=I*jg=xoEdQ!^t0z3j{ov`U@3WdZ+VBj8qUsd zvwQlLqWLaosHz4pakerpcMlglanLM5nTXK<@?$FZrGR?pf(5oOeB3LF4ibc%<c81Q zN4C?r^#^5Zi<#}O=-&zLIFeDnbkm1ZUslEs@-aM0J=Lv3#t#j!I($|)^z}IGN_>oG ztZNAS9aW2Uk7nE9>{3pL6GLI1l2(_w^{5^ZuEXDH#9g=-l-4mTVSAMKu3I==P_ogQ zhK)8aJnYw`zILIucn4x1n%eXn#C7OEV#5TyoI|*q9Kumt+<P}uaL)n@VyY<_Bjm^k zsKK4&FO6`3TeKML=((CEslWP>ZYAo2GC4QR3RX}|*Sm8>wyE~*l6c(cSld}|ri~AC zznJ*Hh|#kOvHw^FtOdMOh9FF;JyulQx7eqmj%BtuP6VF^?IN6+MnHzYTiW!QFS-a= z0CfCGsoXX#%OzjM(g=3De-Y9v%5;#E$w3|qymM)4aOSV}I<)$uv^IvuEH#BL?r!J$ zQO<M>lqDy?h5HMd@NYaX-zoJim)_Ndb`KZ<vsKUwu&(ry{fp+U%%be}vl9$`2G4Xw z+hHJ^W5kS}A<)z5Ay>myto{~lEkru7LfD_($2PV!l_#n=yWWHc;G4_ue}?^W&;ze} z5CZ@xhy7PtAgTWzEzmzri2nlxkj>;AR3HNe=&o1p09U>~FMkxq8?m76LGHFV14$@I zbFfla4lhe!m=4~wn{0-t1(w<LTX|!mo}jbar}wWRZhYG;Za{|!i>xdg$FMK1CGqgQ zMJS3-GD%?Nu@00h8@*Bf9Uv%Lc{Lydmd;u5P`w6tgmHPm8d~BY5CFkp$s9lFw9^n` z<APli=yp?eimAVz*r#hT$NOMjKIyt{2fL}C|I9M}1FE1=^dq1b{;|yb&tq}K|9k$d zfB2UF|4`KbH<?ENb5sLkV-sV&|1yzrNoB`w{m1a?q_#~$T7u%&h81FBMau$}3v{3@ z{5#<x8JISQtSMKq%EUKsZX!Prb7cvSvv{2S^H%EpmJd4p3e1mqk!ibbp}iQ&aS(KM z1_I?h*=g7tUPhO}`ATDu(5S>Yi7Mm@vtBxM>vYdCpln(nptO83M6wXqq*V)^$QU7i z!(i?+KKw$c0?87_YBsUIizyLX$Nt$9_cXwmI&F3db0K~|eXra)?xno(EN>vEOeBZF zVno^E+;{aR2dd(cQNDR>Rzy?$ogYGjn6#k)8mWXuhhcTL-*UW=be4S?p^;-MI6#Za zv82D~1tk@f#)g41T#)jrp9WJrgF*b{DaR^|fxZvh3&yr`(l9UXXeCh0o~ehxo+t=f zDovxLUbI5GxD^e1(4}8JPJS4R2FX1EG9+A{yGUkHo{k}RJMUCnrKWKo!n0NAUR#u| z3AODEh}$`D%>+q-(3{%=pK7tLu?2QSfkc}weP8sw`s0&~JVuN<XZ0;@anmen5^XZi z?r%wpFHvrXRs64IATJZZ;Pl<z{Kp%QU}v&Shsmpf_UrDai5|b<7I0Tf17@uLOgB&? z;)a+YHMFJ6gtOFJcSqiA)f=L4Bnzi(2`-U!vWKm}!P_N~m)FCF*!Z1k@;#cYN#5YZ z``kgMwkPHqAvFuC4*)#;{vFaSoB|m85rFO3U7I=?@Q4VU=)MhkoWZMl;Mza>TjjpD zm1*P2K?PB(*Cf$S{SciKiYCmj3x~~b-<h9z@(%NoO519@I6^U+n{nr<U4)u{<<%CP zJa3*i@|!WeI`ctwc3_<7hEO|yMHlN=<-=3sWt!m2lg(SR1??u}6CnyaleOJ;<0I** z)!nvJOPC+qNzAn@sg%P!$B_QHDjuT80}-R+qyTAlT|v^W+b+^pm1`1NS5WpU)$H=J z9H{u<!n~~i4ED8LuWzUmQo0~p2}`BT>0Y=lJ3iCw46w*NI*B~tht>>}g1rP?8a^ob zZpeBq@s1dp=-*2H6X4d5Y{F@b=j!`U8hyiC)%-_Z>e)}D&3_)`^xveG{wGHN6`lV9 zpI&lXIc=~f>^xHMPA*0?nXJoRF6pe@O23+Rb(Tx+D|4?^b84IyldkRu5w(*Xjgoy` zZ@@D9gNgGbq|3RbX4I1+Y@MRNfzE<=b^_N^mw2o*@6$8Yekm_UHrbfK4!#WeqPLpR zUKtafH%&!w)mzVVQKB{U??j77ri-6<9tomVrvVeqHL*-uAvq`<$`xcw39A)BQ~uF< z$zW-s@}-C*%N*APf>WTiyR)X6-tLth(#Rnup;?%o&>*hp=n4)0<!~RgdJ`|2uslDg z7-p?-gj5dbI3YM`oN4MIsQsxO@zaye4Emu#nDfU3cJ~(tPzwopjqrN>eO1~7rxi9& zt2c%HLypwnRHV9+#&nFq*ecpc=1~q!&naVX=KS!RGxzP5rQ81gsw`HCN03QW35^}x z$-_^9oUKKRPiKJns`-xi@h+Xi9S!OC2!@}_cm@ojW{MLFE^bVis|8K%NF{{{Ke|Ru z(Locyee)6%+R)qaUCw~=&sgMYnk*J}b_Bivl8q*F?BKiiYYzDYoV+|O7B~AkFYTnh z;afU!h%(@k<cy==ZQ80T8m)*7fSMQq3X}Tb82H!FJQM|Y$7&ol2S&eU``F}DbC^>p z1H;6Xz#HvBq!s*D_CXjo>7YSL=~$Sx6bZwIPXgpMWoj(4l{9aLco`zIu_&G?td0r- zzz@d9cRfgFnqJ)UK34z`@*TE{7Ub$zzXd*;CrvXbf6){))hv+fSLg&5M}$^oLr*~3 zl!izj!%Y6+6>_rn=LbkwA8N)3^9Ny-&}xxOmJUN9*aG_1!21qEw$zZ`IokJkTvWGN zrC=wlDuBwjI>g`TU066L6mYq8LbLp!W%N7_eU3Vq>iX`l`0c8RF=4Oy%oy!7Hiyh0 zGJ_Y7nnyBB3)l^p6BuQK7UJcFJ@q_Aa3LN^`ECJ5^a<u%#;`vH-MI)9Qls#Gnm`E3 zKn(^Zp6DM46dxe5c$UW1a9wQEehNbjeAx$#fwX#JtV)y4DrgoSiApNJh(#iH734}^ zCQD4E-V}{n-s%l9rWqrVc~vApyGtn$5Sbx==$wO;3ESk!=nDLK(J_%F-gMH7ilFSi zP@x!P9(qH@_cm|~1+;gt`i(0r*pp%I_d$H1ojNB^sBMP!kC(5{(EACg8m5NB70K_M zmo9QmOk0Pe#6(S1CY!>1j2Lg>`c-K0Rph|~!VeIpY5Hw@z`PXpiFb|oW{nK9?}XFX z`zrsN5z-)DQNNkWfW|o9?$}31*U_j|viVrDWrK?hfL)uXvZ}Z;vJ%`c+z(`Q&kObU zaKAp&p7&8ku-8sboigo!oKu^}j<jXWH?FiIu|8UH0s}I;1(WSSqPt=gdPwtlULwfr z39>;G00_}0wQ_SB5FS+eZ}D09wW@4jm_IUQ^vkb#Jv_$%whGfJ?b3(DBV8e#dA^Jk z3;Fa68{ThsBHq5LnUO81V*@;*Zf>JFU^orod&qt7cd>K@l)m~MgyeI;4Ac?&(Uit6 z;WSr?xpdp!-tSjP_#Z2T?5?*=F>7x>r_l{*XI4@1XuJaRINEgACRc@$$v8VDv3AA| zrDMFt%!?*#ip>7xRJVCFdFsa=-bhI2$F94W%b^???n=c<udFtuPQ`{pp90(2e5!Ld ze=F90PjM<!CKh+oTzz$>oR#Wgbjw{VAK{0<p;PTNVxaAdm+5*R7;LJIZd>$H32F>> z6~dld;`bbNyld5T)-EsQw8GC&JDB5GbJb3OlTO@s(4Cu$E15b%?c3Jj#c@osONXGC zEjKKrqP3fE45p8>N?WqIHdgO&^$opN(}fOAF-;`L77u{pW3QaXKjI#)HTUDMc`r?1 zv`YRSCM8m2+V@EGpePo1qCgu_KZ1BoGjtiUOt?<s<6SvmCi@V-QmA-7%sqG1AhlUO zMmpLC1oZeM!q>8Ul4jLM_=8>*$Wh4Ia0^g-eY3Kr{651guQ3VZ^SAwJxpLC~{vcgY zZmDm9^WjUTcJQnbQ!NNX{m&`{=!8}xwmMmX!?9}Al0_l*!LD((o>df^(d{Z5Cpm?w z1^XqAVj$lAtDXg}mGtj%v)?n&g%Z0AHG@<OCWF+;Mnm%hv3<z92u{E%Ifj40e^*I6 z|5mS0ZW(&x%bR<YB;DtZw#4*vedUwwYr^-d9eeteDetw&K;W^Je_=6jFi%e5Gb{^J z#)mZwKXxKPS-I(~II?-d!0@;2;DDap83)?sFmUJw{S{{hD>L`91@m@Ab{fnTd1_#4 z?&+S=a%RWOObtaUl>jdH$&Yma+2}7@Jg|<iff=Yd(-<UU$-r9B{$;uFQZ^U6Lf;s@ zlr|;kMamGDv|8`eoJ0-0WSZGzmE>C9DTPqofP$COYRIiCA^t1fI;l1NJbaTuU%0ZD zoa(Epya_vfC!x1^1fs>3$vUmv_R5Dtg?48|u#WL!-=W+5`EFg7L0DmBD757fT!@`F zi=-Wk+z>&S*kdrX*^dyd_S)F1y^D~VVe*j_yCQo59A()2@#M^T`b|9ABZ>l&(|8}3 zgr-z7jM`*(HcOo(%4Cb;f#FHEX+O}>JO<SQg%|tPIiBDES?IlS7+X~CanaIGBLF+$ zt%$&95^W;*uN*|Q-EPoop#awUd8LW$OU;#XeoFN=B(dH2YI=o*G9{D&^uF1p&x&W< zFG=!Itjm=)C}g!vU9);l&E2Zjzs|w0(Z}Bl5h~l&XAXAJ=UiSf6Y9nbjnVB!D4vy1 z?7j=lE=%MIZF1h$D&7q_9M@}|PJDl1eMLxC%Bk0@s~Wnx-aiMPBEWhRud`a$G_*o% zf5RIsxTH1aFaaLWTaO-}CEdl#s+pm%+V3OB2)H>bq$F$hNyq*!sZIu$U7z)<k5-Sp zhhj_MHD1z25M<5SH05x`^~uYNg>!%uW4u=B9bB!1r4=A5*c-t^op9@+>|f9SKrUNr zmu(PrLYiY1;*{Y;6$*Y<Z)*fN7?Qm#rPo`W%Vuc5Du3mNFAIRHJinl`5>^_waLpV~ z=RlOz$^pP)N*N-f>;_WY&>H+}cCn1tD0=lP63D-TqMSVAIGVz0BWa}8Jtup+R3m5m z@UL>l>6^=1Q-wgxCR8{rE-5n)ps{I}q^tszvj>LaImO+n!_e+{AC_f_1+UIAh6Cyd zucG^aD35hdg~wqEHz_J2gx02C!K>2o5m-II8@6j5E}u-Y8SS8-Rw{H%3Mpu&PF-rQ z=@h6zv>}^7TeGt-im^NiAzSv`JUjyfW}JZp3#x&bKuRTx1y0M+VPUC$4jXgF0G3>W zg$DmVvWBHtR>JCq6w#piB*qf!ex>vnei&ilO};F3@{Ig=nKoJ&omD7o5oa;KUd265 zA){0^Z@{Wvc1S+d7%ay5_5yTzm%_*HO#=*uNa)wb1(CE~+&omZ2C~GjxfDwea(wEC zmh2S2q>C?i7u0K?_71GdSmY1)ad;rX!R<1{5^%Y@J>J!@FpKzntcO`+qHr-{k_Ln= zqR~$%P8fTB4fIV;wblS`psdd_{{zIqR+Z9cc*t^)qps6_R~8gC|7+%<XG08YY8kmc z6@G=jJyqsMLt|x7cAk!`W<yba^qQn>L%Pt>xJ~IFXT#q{*-3erb9-g@TDa!2`XkkM z4p>)F8wF;gLnrvbz39)w@f^t}LNLh%)uT&yQA1}Tv>oIzyM9@w2;lG9b$$^XO8I}C z7+8*zCM;Ee5g-O(8ZGMwQ!-z<Z}K1ZQFjCZ2fCGFGkIdJIZTOu1>U58P@(1W80-8d za6TA>ys_XVo4NxFlsdfKicC@z2Q`;@4f4W$3`-}`><@2r$&)++Pji}@z%t!T;mA1> zcu-X<P%Res#s?PwM9i?OCHR*3y63xT(9a!TMP9lRiE1_%Fw_2nd%a9-XktwE;n`yP z>{zsKO)hE`m2JbL89-t$2u5eR&`ziG7Y*R)zAj=Fp-srvY+M(TGHY}GLTpE!ArWA4 z0u2^)6GC@tNGm<eT;)%*=vqz<X1NLiwad!}G;jg%X~g*bc)-+YwRQLU99u@TShmhz zw}x0aD^0OO=M09rj7)LQ7ReUrWdCnz(Q*zoyot(!T<|MVWD%?*u(E0F1|~JWVw^g! zTEj}t<WhN`E$mE5%HcH8Ml7Lv6Qz!~tbCBh4RS4~KoDjU7IOEM@eu5-^x?&Rd}ysr zEG4-MWq9{$(n!p6?Z%WQ%g*);^{oMquC^tNj}i<J|JCA6tQ&AuQ7COtud%=5Ii~`9 ztwRd-HU5?fWZ>-<L&QVHPK9{PzMsKc{`Y=#`B$3Z=8KWR*A={mY^i=|^ZpMi);#@Q zV)SCErDj{qW@e!ee5%^g1I{CU5$S{SQK6Odu`ybg1OP8fyQXyFic?uID{mKe#e8oz z54B+MXR)C^wlE8SDU6=HoQarjC2eqD{8#dUco5g62|wq5KdiOatZI|x2x1YJR&ypX z$p+A2EMy`!t;vMtcX=tv4JhxaWAS;~p!FfUsyg3Cxyb$PJT~(=n8RmAws|+!2=KGH zu}rr5Fv2#EU(VH+e?4>~9oBRyc2n4vx&`${M@VQf**cB<%M(^*w@2<<`bq9vVk?h5 zy?y!%BFZvNoD2%N?C02Yu?wVAaF=n_SuabV)pQui{Fh!kOrX0|IZQ+C%Wni0E!pCh z%(ocK$Q@Iyjp&M|#%I}A{)qs{Jwi$BU*tAkEC}6-mp7sj09#9xsqQN-+y+oLSq0&g zBVKO;za3rjq*1X;|DdLq+^3-nzpHj7=J%q8)3a!B`NjSHQjqHym`8Nl6*W81%*#$> zo0%>1{54|Z90<^=vBhtZz)J|mE&5S3`WPZKzO{JvkZ8@5j7j#=(lp1uR~X$fa$OEG zhfN!)L78c|8o?SItmI?oVazSHj1%djLV0<;p_|#d0`=+GXOV}6bb(Nt@?K-aLMkrM z7!lM6@7Lq(Tvl5-?|7V)B|giX*z%#S((pxTV?5-1fwQcM?PmTvX#4m+$QV8liD??w zU^D`a!mf<vuHnOY0<hEI#)b*`DA-eH(wd+IsL||FnBl7#`&6YjVMOR}D8Uh(_%|Jy z9YQ;QNp^;Ot)+j*<2z&U5ZAuNr*XqBAgF4xTSZE^YjBkr(7`F9Y#$lZAlh>sf?oY~ zNtXBS=Xky;u>-r|ZCk0Se6yHjEiBUe+b1n*!(y^6vWJ!rZWNZ1R#wv4Z>DSR$%kIX z{SzkIp#~_SUBflO`3yeDSN5q?88CzS6fj|+uZGbW@VOUD904j90Mx6ScVhJb5%mcH z`Z9o33GQ&*(~5L8qk1nEh5HZCMQkQ)imnI%cGkX1Gm(Q{zx0a{H3xcXg{oMSQxn#C zwCanvJ7g6XgBggdrofD4wcQH{?~RHNEhoZRy)4-$O_#yiXMKA1@bxEcp;Z69PNXd` z5%@OE#XtPG(8eCN*D*0TjD_~$FKo#Z)OHS!OEt&FU+Bfi&!5p2c&j+8=%cv|(^xVy zByo*>vb0niZ*sI+_jt$v0epWJu+tk|Rwo$W24qzq^i}~Sx|ki|baTTw_CEg}Nu{rO z0{+?|E?L35`NYD1qJJy!+o_j(p3Xp2Rrt#Vs=S-`J=$8MQmECf7SZZa7Y}$FsSAVs z0vMqe1p%=(&BU1I$ZlqwA-wdL1siYY-f*ZwZIwH)5(VW$o^xgNPQM4{{FQ0$TU1ng zd5_UJH1s9+eO+XtT3_#B)+&Q``r?vWmVhdmw>m{Rz&1kp)I_znak~R01nnCKrAJ&R z*&ruR@1+$kXPd3bg<j9Wun`Uv2$a01tsF`irWkHQJiXqQ3CNS>cc8!95>wZK5T4#I zdVK0SdKbpA^CR_dW3!5LkPaWqx~MER0)`YBm*J_PP{S4}ea1znL~)*9EV4T~a^KqK zm-E_6jE^>hEIK{lhRb+?-oMA+*P^+!g7k^ybLUYUr+Tuc7v8Eaw<_OPZSt|j{-!LR z$R|Zjp7gOUb|>viFi&LqY}6HRvK2xb=<~ue%?Nd#_6Baa0X}2b?zle8cRNl1q@m&9 zepN1TA4$ke8`t`~d-!`fs8#oFC08?4RdrW(*L>#bIx14sp6QT7RW!)#rF)^b^kN&x z&pwRwNLSa1l&q46OwoA0ZaD=QxJ^abY=ORqta}YnU(2|(63S{pX5T(Mg6uCb+f)sR zWn*!d_4PJ<JyqDz)2}J}JUc8mM!($GeH3>$<$JqDv#1h!J`+!w#Ky1wjh>rz_Ier_ zODou0HyvuWPAU$j3p+j#N!J&C><OuPvF2Wyr7^w2TR-a>3fz1@0P!5l&jWn21?sf4 zKww|va(^p=x<j-34d(bDE|_KJ-t0}C6l8u{4&zV`uhVvZnCNXu^Vip%x^vHr84(zk z?4JAL1)6JZrAWqhb!V0!H1|{LPBz4FnW=h?F$Z#cRcJ;P<|C&wY5!3b?lAzgX4}os z0O7P+P&r7ZpwFj4^p9)5;CFa@?G6ZUY>S|>8}<&?{SFF4pa@C|*j?P&=5wp(D`gvf zfZsWUBpwGBEAgrsC!T#k|3DTTnq?GXJ}fAr*y%(tIT&pbHTt!mhtKWR#ng%+KKQAJ zS8e0ica~pUThELA=hOb+>szp{ZFAfWc<h6I0!d;riFOy)w<=UmgulwUAG@E|)7#d} z34RRl1wa$j@#k8o6mVU$si36S&B6|%M(k?i6spxtPr-AJ|C)f6TWO{FGONYI^Ro-& zT({4i7o6X)@PMuKg>eO+?~;vYImaKy*Hh*Djfvl{8hY#6+^gk)B=^ZtXxJ?yU)JA_ zl;G;OPXwfheR5&rbOMu3dKR4%oPR7q43c04%^AigURHs#-|7Qg9F|4~30i#bHLX<D z!vh0t>rCmX@R)wnRWuNmmCnja7#cGWYdR{8@Bh7(eRnO|2%KL1e6L|=O7v(MyP3J$ zyMewnB+(^#F$&^yy%~+Azqrr@W9v^YbY#ECWc;HS``vSOcJ=J6JG;SvulHjURin9; zjQ%y5L+8$yg6h{7Vi5Fm)#jqf(y>$mErIfm3o{-3dJd={xnx3<p*ZFhKBcl{KENc5 z3rZ`=4Xsj5TXicCPN7uAic}ColM(R(>jT4V9eoMzBQ&{v!3H*d)kDSKsM4H`dC(Y6 zubbOblqnZVzJ1f)G5C<TgT)A6wf=zF4GLrt7)1p9YzgWT;hXWBH%w-rk=GRExCq`X z3ep&eW9uv4O{-i8zQ`%uJ4p#te8t(}U0qZxq@8`)Pnv4ksvTK=q$_z^w+*Q?@ne(z z4K@<nyav#744;tDD+enFTsr~lVM%qQ4prpBdZD+oi}$Sfce2X#$aek(d$#O*Tqgy| zxb))WiywO2HEh9h=dBMD11a4JX`4!W3gZl9tu&_e%6PLf>bl=QPnuWp)1FsR0RVVZ z|ErT`x&NL!C|d&?6DNBEqyNahW>~rVA9-!tpD5_Yb=E^j9h~;i&J*+bv>hM<(o$yO zv?5f8<KeT1TV5n45~9|5*&PyH2e<FUjYp1PQvdX<3B%GMc045QeUn*^7G&tmO+&tj z1{E8T)CnYLa9ly^K)Lc(iq62<RiaKRf^*$k1zL}Nybq$=B~XsMBJ*Zj#xV|n18H+l zDrDF;G@82=7nnbNfB;7fas<1=6sByJmv8C%-uoI9+8NM0k0{eH(=c#MWyMwD?ptM| zzKNr3Zyaz<uQMU88f+@i)KLni_9^O#u=ZGG%AC?dXFOu=&7OiA7$COB*jA#ZCA(Ke zH`lSHnMT*1DM-W06{AF6aEG(qqozLnPH_KYIEAGj;8o5zHkU_w7Pv^mUkL%mju;=x zFlkEBOsN@6*~2{20EoTX%K0poB>>QC1`xX`RTddUHO`7-)!Nt^-&gmj$r+mTF<=W= z8GEya5iBT1)&(K)aIVt&2xp^@OyS&rznyqpmh}4siUn_Wz%|Yjy4@hM*j4@yu;uFA zBrSuR4Mns!I0a=anUKzJ3jmg4EI?0JwDRT*3Dto|7@td^&YTSy7?ZqH`Agv5=LcQ# z9FG)W3H9L5xWzkA=$dx`7|EdZIDH`5jdE#`xH}C+R4*Q<wvEuGufMl=usKcgR8{ze z18$)(FcAaHT_;6c#G8HF=j6|EFQSdtB3st146#Zl^+!5E1$_W^{t>lO7q`Vf`It8j z2EL~lxOb1xHA!M>FS-ytKzv|Mfj!@GyjPji7_fiU<houxL0Id_)%D+>*ngw$JA3}3 ztJKa>dQF-lsZuLc&6Vv~E{s4gvTS~@HAD>*?n`|+>EaLm*p$+YDi}6MErx>m5~caR z8MbOk|ARz~4Xu`?vPI=GX%Tx;<R$L|bHv=@<KXEHLpSmNgiz0ZwGTD_INMNz|5peS z{l7<$w1kj|tdfX|It&2A1c%bUIMnMXO4;o*AoRSeMR{5lm%X!JO_7wSWABeKns9^+ zA=C;+8JZ!!pSzLGs_H;OPMxG*GbV~HXsAm8w_9BxTp$~j^XZAXT@Z1X$lZLNw_exv z4pc_E_ys$@adiaL&&QCX2i^m>0c7LSKH-ddhPBA-GH6170m!Juie>UY$iu6#Z!qrq z?~Ja)+OiA6!bUJ&MB&bZ_=Tl<Hmz<7;s)AjM|;n{nR2cXF2_H>)wBZQ5o7t4T_MBE zHHurE=d=T!US2}d(Yg9YFsvhptssa2*_ywVlfv80baS<L0!7bYL%>Ls`a_PH0g>-? z0Do?9EPJd!(>X&n#gsiO2{RzDUo++7=zT!+Kk*2Gh4!3O;a?r&HTaeUkGw|!5vES( z@{&6Q;FdV>OK{CJ;i<7wf3?Vv1g*pOTz>`^u=twel0xxe6bh|)eUDCS*n;DE3s<s1 zJNw^{s$9$ESH9ytJ@qgw4xb}GpqY`pBHZ58T<u+qYFvM(&6M>b$(I+eInwg0%3D5C z{fh4guC4PG*QcJ6w1LqNJq}(A&;+7)y-`Bb0NPh87f}hAm#&%6h8i-CKhBg!qp$00 z7u++Wxiu11Ec6GtR#sFNZb9SJF&IZ@N;OTbD`p0Dpi2gWBV7?K$;`5%VCzs$=6{8; zfYzX4sR(PPnEX{i1h$U~U8c%CBN1^6+p%&8uc&g><gJ0JUe1jSK?lNl5UIUc#Gstv z)GkYKVD&|GOc_j*p|CN9YpoVYFn{nO6|D?9EUsd}oB~<0c<kd$O&t%g(ohgg)2vAz zwH%IYN!H&kxT$WwbaO_uD)?A}bR852nL~`8Q~KiEWA^mVcwQ4F6HuQY0I>aUE42SH zb3j`=V-r0aJ7X7X6Q}=B%J3hL{NE71_-{sbu{Hh)?lQ9bFGIN7%6SC;-`<D@|M&R+ z&x)Y4wYRY_v;C>(U#MX-07Bsj5Cwo*f|hRX1WIyJR%T*S;z)8_j&AvcN|I*f1nB2l z863j%CSn`sr%J4!*Z;X@{`aLD{tuS!>}cR>;Y8<QWBrfXJ$`8IUuvI_n3STIk(O&# z9Gj4nh@PQ34xCrjhJxyV0`o-U4@j77nmimznEc?bv$wQ0G>u6X)HIZJphExW#OBrC z?0+mj0R;Zd#MaFN`G3Cn*GKz*Zel{R0y6)~)K!}va{pY8DJcnBD%ojz$tkMk33|!@ zy$actR6)o;Mg1h6{1>ZW`af8#oUF2<grJJDgsd2yjq$(VMac@?wm^(9+a6F-xSCXL z7hCJ)J^+h=DnzL-ZL`|aM&LsmE06^QEw<sGNADAZz+DT7L467dIB!Jic9n;WjfGKL zF=mZs?t=pK_60yqqabJ`ZFVSmFj3>@`g(>zQGB2pXmzGdYtedgg=0B-QEOnBQac<O zQRHf5()&cHc7JkHASd5E;VMAiqeA(E`@vm<IphuNcu)Z`5m#j)fHf&CrS>i@z-zbF zzEShv81;KFV1=CcKv<+8J2RD8_{BFmVWxt+&1v$~^ih@G=I{`f3kZ0@7rj@0+DR$w zWOOn;7Bm=jWw<O2X-dQN+i4w_3iGp9p!&9%zG^#p7466-0$)w5cHCNS;w?YCpQUmL z;{BJF>4sFB&eqLGO!NdFrWR2YF@QW*wcArUmA|50v6|oHyp=8WCQ4J(lp0!=sa!=4 zwH*cu6~z|)w=U5CfxXC2$_~XJ;g|mpbN(Of)x>fAW6%EU^FN3^(;wvhDCp>Z-u?x9 zrBlZ8|JbNT`uZS(fPi2G<Na~{fBFbU`ug$!hxiG>K*7S;dFz_v0{Ru8YZDY0phWu_ zfWN=L&GdtS$SC+v;G3||K>Y;-(7^r)L)Pfp-@-q0@%=a9xc{DC{s*bi;)kl;>CBz~ zzx1-yedf8L+CuQQBNt$3E2$h&L`MDF`n<`I3$>J6XM*GG&HLjBI9vt^4T1rKgwd8y zzPHaOz_-4$geQQ2e{TA+hoh7RX>)aO-Kw_x`0>V0PM62`{dz_2ckWJ)yRYx{UY9n> zi&*g7Yd3*=o4g6e<b)%KvY+zpW8pT5lvHxcpkuRgH-8V$-{ik7+<mF|(#Hn6Wp{J6 zc79mCJJ4_$ov+t}dh{W&jl)bd2M+sB%;_g<f;^mex-vrUi=8n`KbOW*rH?W=$@gOM z9WmsV;(8BW5?Q*S?UH$;3{&&&NMzmmIhALHc(R8VyLpnt$>@nRYWNWfDKpDEG{+3< zMO42rz!vS~2CY6g1N}S!1NRi@b%TDn*mE74Zc1UMhI4)|MKQj~b93*8zBnn=yeJ_= zHJYP(7sU!N1Si8rzR0<t;cV$`^Tv%bkh5e}y0g;H1RfZ@53*-zPu;;RJED2BbjN<9 zD|^hxHb^+|-&4U^XU;KYU!JRxYa|@qEbr~@0lPg|w1p)uY1}kQ)~G=GL+e&Z!d^TJ z*vF3=4AA=&_=z!Ei}S*g|IrJ-s(kLs7*fFa_yrG0)E(eqk69veLv1Z58hdU869|L_ z1D!m&uxob<)XFC<<#tNZ^HmW>%mU~1s|7y!Ou5!B9n}HT>`a3p+D@eiKXvVnhTR*1 z#8PuU)Il|64Tw(?T9DTNV=o`n#}$@Zwjq<SioWWP_2uiO219J2c=226UNn~8@X>4& z1(`=m-}dyhKHQSA?J=e(A`cIz&Nf(RKO~IQcbd(NBY%~_G=u|4FPa9DSijoA?P^Oq zF4{fAA6tFG8^6)jaka$p!+>;gtwfP0vx)0zu%JSw%n#Wz9{b)bolyWA)O4NjeZ%x1 zfNF;XnHo!Tc3HvqDEkx9S)VLY(^518-pB<)8;pUG>`=DEMh>7g7+5bD6iW<B_6R~F z09-$AwGO+j$o>+<2YG(2QuJqc&JBf3hm0d=A71BP6~RR6#UkfUXD;q_`)wV;J^*%T z40<@)5U4*eprKneP#A#Yu!uHU**cAG;@!Xg3N2@PA#ow3D|-aIw@!wEsE3`V@6*WH zx45v^K4WoyvR<Td-O8jLxb86YVQE^2Vzubyu@ZOr2)-;m5g+b7JlOk`Ug6KH?#cDv zwubUfk3_DiNw7}*<;niIslJpr=x^nFp+C^J9pDbOVY_C-N7y#!l?*bY18rsNciX|u znD7r(U*_aBLXt0yoE``!10YrB`u0qFf4=sznGsygvm(K3zSQW<e+hn_BS^y^{FdGI zd*1Uaz3H`^(t0C7fQf-W7dG_W^v;RR?mlQaK)e%}_TC(Py9^ohRK%`R4>_Zd-mg3D zICy2mTWlnt+e?;+{(C!DQ(FczD(*gk^Mzh*gRX6Q%*62kxYy)ri?d4`Nc?fqb~ZV$ z-%nACbkt=Hkt~JS&9$nHd9^9KB36d9aEY~*G4x8pDE5;rv?={{$4ymy`!Gwq4y5L@ zfnRL^P@oUer*jOk*AT;=Vc#=0Z=V1gII01)Vy~|L6p~9|);Kl~V{foOi-Haxv*q!+ z`2F7OB^p<BmXR+*#RFtU7%UyMv1Te7?n{g}ctBS`;i&bIj<}j(PCqb}`I9&Cv;)NM zMQ;-%4{HFAX(MM9X+#zt%58HPe=&){9g3G)T>7+wMintgAeE>BK$EFx0ib3)yJEcv zghs|RhV=5sSR5U4(!;r9h8BJAQr`YXs|(=?d>Ul=eTvo9!_mG=DV0ll?gB(xak_^6 zG6oL5x28}JnQMFcb%gTf5G_`R4!5Wdp%&~tGwS0v?kXW4ucn3Vb`EqGLdZ_L4Nc)x zr=PM}(<P&NVX&23YkD>{?CM#&9IiP_9Wvc(&GQz>{ZZa>ypU)&?E9V<xOGj|z()OY zts9QZ`|<M2^&l{!6+T`a*dF1ZmXqfj@-%$}F#@Guw*D~iK@9+F8qhI3mf*BPpNR&? z&8MF#*V-cwhn8_AdkIT+kPF*f*Z9#_u~*lFMZ0Rgw|fE<_yB^_6az#VSNLSNuRHfQ zu~c6E_qU5+jcr+KMgULy06`a)`SXqm#wv%W$et(PQ4_h94mYBRbY`zmV!rMGTP@N2 zf}NM9K~TxtuOb<yCSg&FCaOosM{bWdd6HK^?PeC~W(p$b%?xMW`0DjR0m^ALcpGMJ zAy>0CZ`7!=$K6gJt&ozo6C!OF*@JvKmyV#+K{mU+8_mAIOO<;C^*XjQM=Tb(M*TXq z$o!91(Y{@qd(x?g2;Ul~aC{G*j*Xr@`TAmZ6>sg-tU$pnK{tN;b*!VU0g(m%{1QbI zbgYQar5mwyWexRV+OJcSKGD)~iK~=vOWh?>-DP8q4h$#6uOmM$m9GW??xnSor9n^1 znhw8%P_1~e+xs+Ysw+blc@ynxcByBQ?v6X?>qyA#yDvxJ<mOs7h;oRLMkb$-FE&g1 zpo`*`y)W0ch-e$QK7!Y|IaGsx<;Cuqkoq*tr8O%L3umU#`;_~x4>=iXnI4~W98z0d z1N3tuwB|`ga<-Un>jv1<ly&HH`Oy?bu9Ux0k!0cN9?j|fcgd5O+613b8`W-Zjq6%k zIN|rDu3eF>o{U5Jg8{a;N6C&ukF}7XvT$^I%vh>y74!n;w%3bU=>dE7{5tJ-qVJtX zsH3#ok$Yq((uOt(BwGl4b`tO8E5t;oEL9B}W<1U7Y<L;LZvd7ezAc+l_o;<kSx&B* zMkE2h8a|h2Ua$l?a8X_tBDUt~7IRG5aDjZjY!Fg0R+#UtkS3F0!+9`#S3wEhbTmS} z+vgd<QR-kfxUY@opmT<Dl%}KJtucsJxB{Y&wZMD@4+$99kF6M4*z9`?UROu^R(q+w zvxDAjsjzT|h|bp%YeeF`Aiq|2bc5twyuWhUX^F;^`><bU+!A3iCTy(JLTLaW3+;@< z3w%_DP%ndMm*^9YBA2&6ACQ9`iM#vpJ9iLkq<NiN{YcR>znZ2Xej%Ab<B9Y*_m<j0 zc+2=*`JOjS9yo_w-;`dl>8eIDB2j)?M5YsJm7425l)p#gH_|8&(u(l9_TG~mGTzv^ zowHd!J-CKnzAm7h!|BZz45n`MQAl72Zn2qZ=V5^kiK6aNA5X|CcTgRWj0okiFn@eD zmO20QjLcgg5o2x4WKTo@*jP}#DUkz)ql@pK&7k3^Ceels2lj3e9neBYw{95{J2oeK zqA~hK=5j)MF+!&Ldw#Tb`fcg@tqX<#YRV|Wd|U<<Xwo2aLcJ}>hB2pyI!Go7RHh&H zo8==tLOnx%t^NIzitSfQng<?#q?U8g+F7=KJl0K~4i4y!#64rG%LWf$@Um{HRxDHq z$_lkaN~vokc5Buj)Zz1iin`XFH%49%jIu%~hS?rO3pr5ay?CEgyMG<jsF49E^X#^g zjrV|4N~vvufG$As2^o(WqoN2V!96|bjVj&9{X*IWM^En2Mf2McFQuPpre^P9FjF8Q zS%5WoRFZSfTPaPyQ3H<-&0K)Kg47fJ_Pw$S%C><j9LS{;WD#oLc`zX_l1T`dlq-I( z0}kOi5=r$=^ILpdFCR<_-&Fhh<oMV$N$p?>fio`#0;8$44qi?PKs9DWO#!Mmpk%eM z{w=DK2?3B#Ulbl4wS-!On>j4e5u=o@DySI`bmmX@0H6Y9W!_|<1{ijZ0Nd*AdK99Z zD89e^5%uQW_G{>OClW59tLoO@@_di-FD5L!(Y}rF^R3q(iwOWwTojdh<sity=ob^l z;j5SD&_SArNjmhdd{4Jg%qoz61=PN^Y9o+nC;|>>ycmrIZeIM|6G74;;c>O<V4PfV zKRsas1MSuUqBaGIKtFVL`U|)sMFi$T{h9>Q$>&KJjJzo5cV-CQz7musN>Avtkonkn z#R+~wYN#=M0^2#GAgg##jfi*fXe1V)p~38hOdTzKMu>gN3>PSN4`6SPct8*XJP%i; zzD4~~gDaJM9Aoiu5cDAid_xr>FzP(iK0vq~CB;o>ZS6RVOD^xFP%~@g-FeZ)KUiZ$ z9AIfkf1;{WOuTzAA?bjU=#W*YB265>wg+-|ulEdJ30@S66JLoYYXc`F*#$iCPo=VC z6Q}}l1vP=p_~7+(D~P07W8duZ5F+hC!9nuUDjA^UqiRi~ba2VCXVaXan9kzbaY~y! zx>}tEZsCQaB4!F|@2mRq0Y6uzO~8*$WCl=FhenGtP@6Cnw52NwAWEocsQd7}Hwwn+ z?!zJjL9D*8X@r*5EtCVk`~>e=-Vlc<ftzV&dhg!6+yP>Nx)_v_)7b6-X0e|RM9ULo zg?v0oXMgbzJib0oe`{5Lx6pcEaH*l{C|Se-PGM!p=+Fcd6+3@3%gb@WA%1MXB6~co zMt$B8=yvLyjLzPW$uuxf>B9l8Y2!b7gY!G4+JBIrdR=$Pg;ei>yqr>#5x6gVr4r)Y zL>9Eh9`JDcBO24(Ju{xuI(;Jc3ZIzDB#$Cy@dYSl8%t?R-sJ8JSya`J$t5dP7ruOa z?Jc<jfZzszy{G^L&R5@a3gG!dZEhb}69QRWxB%wfcS<ArP@8Ae!tynJ(l{j0`{QPh zFbD+g@O?+6N+qSY<f6Pa=gYh)T(`MhHQ1i2g35(ecfLa*)<gAGad%<bI02v&#sz%j zwYbR<?=pkpVE5lxWenON50Jsm0y2+Ak1UMq%$MUJm@-l)gZtMC;GwH!_JibNth{8p zqR%$M2iq)NPsN^@&Cu9f&Z%19KCBf4DGQ*4zQYA#U!~d1x@H@7lV1RpO)VVUhl*Fs z_~Gw8^S+h!Cqr4mP0-+jTvIUYwRpoD$#ZSwpBM07`FGz#e>kajis-n3=1A0VSbtn& zMh8Ej<B|$_W0DJ`lF4HZt1)lhSE`c^0qqNi2ddi705b+z>`qZRjiAe%WXNF5*(g~B zgTOUUBf2WyT{mdsW#>u3fFbaBiRCB4;+-hmB$+v8%b2qT|1OJVgfu`ux*1Ha00?iQ z`a9V_c-KWA8B7>2gAq5n%S(vQAglz>ES|N3xg+57!NX<oi=t83sK@t>1O+aTy7_L@ zYu`~10{1v0%f^{)jmaON8Uxeyv;ret$e<P@FZkpcWMdl_Ht;~e{tl1At>Dh_yT4n^ zFE<(fMXR4HJHb-g?!}yW-p+4GCm_-Q0Nn@-KaU*jTEqU%A`;KyNVb<@LVGC|k;A+x zi^u@}kub1U?*ayra&;euaf^J9L4^%aBM%W%V;Db5t#6e!_4pz!m<z(>ZC+XrBgrET zP04w@D4K<9vvzNlm#|a>G1LkU4GN@f%z4^8ppQ{peQy|}l;3pFT#Lpnes=VU%kb6o zV<_5rR*Aj`zOC^aF-?Mq_lER^jNJplo5}s@${4|$3&Pi(-p84se1l%bu5%h&LFFBy zS-%ohpLyUektIt+X<s(262t8vX?%`Zs=yc;riVZOfNEF^^-y{tfSNPC#<Boo_J;kZ zcVgRxaj;wTkYtE*8(jcUj8NgjK1fEd&yi(-kSOvV#J+$ZP$sv)Eid0;A#JCKSVb9` z-4E1|PyY@n6DS7VX}&Eg`GQja&Al1Y<27bp&YsMB3IHZxr%o*-9tVxt;!rwku(HaS z@Gmb41w_ydp=lx)uV6Clex@!ed{kuv8(0@hv{G9SKUENEnAGncgt+J_4+=1sjqnaQ zfiS=*UlfciD^A@gw{5~fv3|ZAOq^f=dvn>r)@RL_0QO#&9MIdyN_+^<k0aUPbkSY! z$VPv2eg}J@Q}WCqX=RsFw0jJ+&lNk%g?J(MSkWD}C;b$@8+u#o+r*sOGX#62A#d({ z{$_>1+hn^N9LUZQj~7Om1cq!C0?1$Qi9vpvA8KKFL5|hxzcT^M@2|G@2-tzNJ;>Sb zuf7P_eZIc{Sp;VY!CN;kf3=~)1>XAV-%trZ8|rVq9ry@Vxn0v{57%IF0PfkZnkpOl zjicchsYym^zkEjCg2z*}8o}q7t*IE$x#of*^r$WT3E&6!0R0H}o(}sIDK4A=Kp!Gj z9$P9<tq7pymu9sFc7vhUNNE~tP_6?b6nYCmfH+GibcErOe#?+XJ<|=>h9qjZW6%*t ztSLZE<&Tnslrbk}2E+pC+SzH*eb56R?JpF=@H3`AJdknk->$Dt%Wn=rW4jqgAB3yi z{<NwCZk4=Gw-;(ti|esjvj<!_7fy;MnRHA-(;rZVYe8mtXhCnd205JB@hB2}z8yA& zL5Mv;13@q|@BDt?Z}CevlZsO_RH?dt`!4MyZ(*}8#01sH3gHIf0G-PxM#CFzKyIbF z68&1Qd0KjKL8{@Wc)<XQ(04b!cEr;yH!L5(0iII5K|er_jlsF`JIp)Hdv*sMz!^yu zn7D#VYiFb<4)Cl*lXAA%I(|&?+HIZ2b=zF~#NKPAue)#VCQB%%r29m(`f)MUW(Z=% z2<jZy=FkkJ@1AoFn6S(mN|Z`Anq5Ap3ZLK$h#TzrJ*jz!;vt58ha|k}XZEUclhTE8 zQR0`B{jzuZE-?Frbmdet0Ay6-$w$Zqi$o|#K;aJ7hTy3<c`H0bu{W?k7c?X~ViDy^ z$B2WnTDZJb4+@ANOn4#R<Eu%?y{jBQB+pL_`8eQ}v}VFIRS~$|9eNu?8G(qk%4Wd( z*JpibuHit5`d8&J>BQ)MVy8AauV=SI+^D!5UWCN~%{Wj&iBZu2x$q6Gjs?lbfEYtz z94%#&xCK{M{&RH^Ph^202A}3NdftWD!`oR%Bi$UaO@xXKAajO__suZf6T_Nl-tq?c z37)IqTzzcm)on|rW+|?-N$NS2QfKBd(@q(Al2nH&Vspzn>k>i0Ij*die?%fm%n`w= zR=FWO>-}@QYakOBD{P`5%Qf2Qb(3`p>+Ij|f$Ij9>xcCnzY){o%9&M~^Yhtmjm$-; zZBre?uUx{BY_<9lLz5O7X0_@y--|6tAEo1+NlGyed&xDomQ^3v-GB`}Hl$hJu7hg6 zq%Hg#SuGA&@};h8)}Q92Yn!~3Ex%7`d;eYEQ6BV-_p5h0Et)s%Wl6{(ECzk!j(1cO zrk!zuJP0(!z1g!$YBi-8Im<N&U<5H8r-os;)6*8T7p+ueSRY@aIx`$kOgev<uJ;j& zK2E!u(K^i%y};l!YiJg`qBPd*21^E;lXO~p`dtPfz%e1QVHzk-<}oigX3a<LDaW=I zVpo|m305XHD;~==V8Dq^w^Ct*UZFr|!A^$<Jl<;q?x~#aKKoMH;`Hq%*w%Dm)E4Um z5S(?M0&w2e4ncQU8)(nwB7(5tu#p(LzhE3-L-xrtgT>a`s(Ban>imfn@`DoU2+TS} z<YXbgwv!?2H3_XE8_Ltu<)>Y{jnhqj1zQhw#)eV%Yt*%lq0C|{Ya0w?%8eEOp@)Q! zrM}-Nf8HqigZ#eH8k)P!*H%hMR@moiU}e_n$$&<NP#ALy{5Zc+XN0n`W*OJ<2&>rY z);Z1U6fmpO1yE8x?p;L7=CVPaixB#>0>k(9Dg@7yoWPSNnsvB}-=16zAh$oh$tB1X zPc%08ASv>#^^CD+?Yhd4^)Ymp_2C0j+kta(T!U}j7r<^a3g`^!YEK~Bivc%u_U-53 zf7ufREEXzE6blER9)*X8cgH$HLaN_LN16*4VQWIip}THEe>;96Wn$3Bn8Z(#N*$ku z!vo(Rh;lP5jAKT520kzwjQ8H3cy6RyY%wKR<pOOLQen0(-V9OAnfn1Y+GPO>+BZ8~ z$)PS3XYd>PZb%E%hXuR-Q@ps*Q5LP}Q?(>6ueCesnTY13F!0%V2l-A`!$+)J-wnI0 zI^4u=%>?<_wp9b~vS%iBA_(K5?+v*Awn5&Uuk<Uu)F6_?*2o9l%FOuQmNjQx-mYNv zINz;v32c)oS#W0PqG7_xL+5<q%GnGwE2Vpdz{ibQaM>&<leJ@~=YD}?;;y;-+ua#W zpZ?~G(VI!fr{e^!F}2v8>mr#A^HZRZ=TELzROQpxmpf4Q1Ct{EQ=SVvR`x!zXYsS| zZ^cn#9&^;67KlLV+}XmJJ{o0H3(;_SN!QsW45ICR_Cp?NMO?2*fIt)3DylE^30Fn( z6s?{pbVluhA*{iCR<WRu)7i!y!{o|j)(h;y!9GG|9b_j`V||M5SLO&77_r=x#kueV zP?pokz;B4B*|NIOR#!9;FZe5t7f|@=Ix%YpG#opAfW(o4OQ1PSx-9G<{Kw%)lZ}nQ zordS(44XVEcW|8P%>}B(E*}-nj_}%j(qlwoGrf-=Er9l<%Gcw<L2WPJ$6IKkU!m!) zTciA!i?|#x`47Dgr!Lhbde5kP6-m6FnJU`O`#1G%7(>+Gq=;$tzdMM=&kScIl;D?C zI!>>nHdXj<@+{M#j{){;y#wFMI@t3{3v-Lj;ay$^J)NdBmq}Jv3eYCP+OYUWVh60V zVc3=z>y(^X`YDs#3O~k%xjxZ;@E~LGt^(M}7S4xkCRO(JTfg{%H`#K0M-zD?yY7Wm z<7t}KlRt_?^wvy23C=d^cCf^1n^D$(;(*XMDrSSCW9SH7Z(!i>$AuSn2vmxu*fy@b z?98meQptncQp8`f2HBksAeIy56jyc50zX8MnsQ#>YC~<5->$*q)cTCRh^$#?!s>bK zt&yDy<c0)fQg>G>qQ0}l=$p8^psQrMSkC^DZt^dI(cpM1++~4@I)Tn95iL~ejLNE! z{$&J)2!-uRv4Vjx5M>!1)8D=zlffc!yHKH-c)?d=8;#c-*o|pg6lZqFg60Kp>MKwi z>3u~16HmWqFfREHVN!k;w_$OazDozV5r}}GxRn63^uGX3K(W6Lv<6?(<226}4h!6> zL*wOd0=Dyf13}|dNi9I<EJ_yQ_<aX(Tln4;Lj^NEcsB!ZTLh&gYy#QQCUa#6oH&P+ zYpQhMM9S;CQiL*$lR*%H@Nq{{K#p+MP1G}GqWGL@ye1@-NCS4FbnRi8OB3WKav`ko z6g8drHXI6647UKDV6qWcorjyG3rWG%DqTo+E?2ssN4y!^bC)%y(x53j{h`ef4L4dB z3$R)M#}nBL=9%k8I3QmIH1y!TL*G)${UBcs&8J?EKDu{nWm7)H;`SP!Q=SR@3YVXm zOsj0bP#}*(F**^n_x4bg?pcaSxxT?GM5i@tyBc-IGv{*TN9I5jbC`2>(@8#l;`cZR zfIKz4t>_cG#F4g|0j1!X6)*$Ka?W1-tE@5|E`=`31o+0aC`|;1((<CEg9pbDGVNWR zV9Z?G-6!irD84%ulg7Ju_us>RYam88^TEB2w+3X6YIv7_-=Iu2+2mTb$t0R{+_m_T z*`{w8x$mIC>pnFoB!}t55)*9|EIjg4J5NpCRx()u$r0I9S@VS|6vXpw*?LK)*8(ib zvu8m?5BlFQTiGo`EtVA-lrg3~wW6r#k%zIp3JW#>X^S;B<V+(dS}h#)0lY){&jHim zkizSYK@|l6RAwTpT-%Q>?<QWFV;X&TbZB6FbSUo1M@<M#4WY><CeO`7*vjd-DGFV7 z&pzJ?_P#2{0*>P&Z0F)axEX8#$H{pnR?%4chHcRc-f088W!`lkHo)G^<k$jvH_4-g zyM3xj!#5c$DDMQmt1=tA6o(aN`MN(AF%=%=@SL=@thequKoep&K~L0cfUmQhHC5TW zQ!$>ruRBk*5RX5)XvZHl((#974U0=Mdc1cHS$E_VnLgYtrY@?MNjwQlHJqYez}Jv@ z8=%!_z;rx%^oW=aH2W*Zn}($xll(&8x)l6GEN65bQjm>yr1Lfy4h$Q9ENxqANx*R; zK|K+2ssb=aK&UV%V^P6Dn^I^q9Nk%#1F|g~c8q6q69Uq}^e0ReJklDBLowae;{*rd z@trz=^(_D<D7TfY{^49!`lf1R3z{*FvZb~l8YNP-cm`j$C6X^xJ|lmpnZjdKWBE7I zFdhF}GhG&eZ1W_`;hZirw$|y20Y>w8gOOdhD|5_jP^e{?yP;`OScZ~%!y(m^3~s$R zB^{$S|B%Bksd|ZvBXL9(_08Xdw^1(?>s&b@zL>|ixHe%gd2OVG0q~8&<uX}$d<k-y zgdCVDQ(OqB4~h&bgx&!j&fBp8H|L#L>y2q%jOD}u0{?O!4Z1|<*>6yo_L{@kJMC<N zuV6!b!8l%EAN&G7WiJfuRX^Q;YC7R=3%2Q8ycXg3i8jk`$vYbTGJ~EK#wO(viKr?j zq_kW(-{Q8%vOIrBVX!pjdkzL92k!wgLDmF=xkNeirf!yL*(zDqmb+z5CeZwhHicd| zqXzT}d0*Ufde&W^&}N$f?(<jeK>?j_-}?pzOp+Y8@?OT#&az$fNZ(l!cWke&yC{KJ zRRCw1-5xxbK#}0c4b!>V?M-AaoE)!);gR+(G#(Spyn&-*B7ef>(0|v(&_sAuX@dUk zF{a*H#B?i-HqsN*8|=wUWJ*Ria~ql~P)HTveS(RJR{9PU5fw0)Z$9{7HG>UTAe<J; z;i2!oG0?^wdQ)Kz@Ewgt0h&@JVo6L3PPiJmwa?=`GD=J%SYX#lmR%XcBrApuv2~eW zhe5+-QHElAXBK048iBTz<7EtUnBC(pm7JHgyF-KdY#phc$92R;9`xA;m0cHR%QZ<F z%51`ES0>v3-|>F^T<l)MWHJx=OSO38B(i{etH5fmR!41?tMLg0^juQH2pZwtYkJ#m zOI`Rn0%F7d-rwwtWU{Nb?5~%2-S<k8$FAS=j{ai5a%iZ3xByfbubMC7R5cN|y3ez# z)Z;LE+F=SSE>zBeNH%Yab!v7F<RXkYdac%I&y7H(uILq_RqM%Q92d4V*EP!>dqjf# zo6rf19IvL1Pt`y&vpL3Fi|9!BaHI|oD7{nU#CCkh%#7iGPEI%5EJZ)hDfQbF^qg(q z(a__A{yRc;7z1MlP%~MoWhXXV*b{}&0{UH|x=`K1!CDQO$O0sBZ-{|Lfqq7DVRN_) zR=(FS5O_{o<R&#BM__ya1bE4z>oidla)JrH>AKLlx?RP+)+j&V_Y~(X(JiF~k(ZI9 zyVDGjo~>_?a%Uj&Jc3LnlmZa&@_<!i5{5{b@B88~rKe%Z9GS#0y+oVIfHvvKCP)zd zwdXf62)-Kx-%ElLc>`J<HHlWWH&|Px-x9n#^+qF?O8DO?Bj)j`*M4|J|9Ec<VYnfT zH-rI)Fyati9m1GH7<34u4xNcQD_dj5#T@TslmE%&tEuL|Sj^R8f1`b#-W_*E^N(xM z{P?|ZJ>hf;rn|%{{1_8|jW>(QGtM}}gvbgG7!MJq#)SmsLA1+ybjRLZI_uQHil=n1 z#^=DmP{KJw$h1z#jAUiOS4&PJioqk=8sPgMSPER9KkUwM8na$-;p7ylCwh@07XgZo zF-Jml2L0h!!6WOcHOrMkyM}dW(NBVZ1bb(}9{j;|kH{hQ(}R1`fwP5<gEz_-pFm`p z$LQpTKlTmc!Naov8#I$vQ|hAwi!PF+j!5vRZ!yS*sceTs4#NuD%x@Qt*NBTpWTB^Y ze||C=XH2p6kUuY~jN}d#4uBcAP^V)uxQJ~We_%`@Nr5ZT2=ni)EJ4><V(U3=@s(L7 zF|%^V+WyE90eEigCZQXGSqDxyLORWx7})!<8CR<=rXb$3LjnpYE^DDr1Ks^;)&K@E z7EmtUXy67=^6DLC!W=&v9BodSNi-L?XQ&ugWtpY_8LJz>PxL-a!m&!A2_U9TY`BL9 zDoY<@*2}<V-$jouN_5uWqlB0$a&VtIqEsjJ?$4BO&wqEq#a%~9HtX+E<zgx&x!%RS zPv|VK(bmox&I#vC?(cnNXZt%h*xTph#&g>nIBOlrTFg27O(!zqHbl^PMFVFl3|-QQ z85J7fBj<G*jW&cl>GC=)XVg^Qal)SXkwfqALg!!e+n7iR)ntwbHD38hCnW|Q?XmVC zlMlEa#4~go`#{X;VrTR|G>=w5$KnY~#f06+8cC|F3s@-X;wBmDsjU#@WOJ<*HflxI zFp69<Tu-nAXfu9*<QCeU61mktga^zz;4d!Aa<swc$<#P%*)&uB$ccR6NA9N0!(y)4 zfX;1u!S5q=Wl64n(ZS|T!pU5-^CApH+8s%>x1Lf0(*_XntCm55)k?L`KEKS#sEHm) zcp)X><%`%Q*X}}uv)m}1(B$w1)avmpK)TT-2=G5^lp9#xzVELkcRjo}!=zxf<eI`U zx6Ls4PyyFmX<3|ABu14Y-OHBQeCO^3AZaPunS*$Y)vG5lVO$*p`l;{K9sE7P5TD>b z;NzKnx1R>X;AkH(*nfnQI68$k+YPy}R-4I?Yi>E#LVVz$=S>*jk%N4JwwxrsqHDfT zCFZ{{hC{vwi#4=mofDcF!`M&%xIj`=D9lb#7~7Od2%zzBjS(b1bEVPG#rJvu?Alz& zvJsb@wVc_7w(W(x$#QPag*DK(*FIiN3|D%Lv0bQ%&So=|GeP{!ZSaQwI5;>6E|!@0 zr4SIIYXC!I!)+o3(pvX?>L+@l2Rq&)Pw-s<l%qrN09vJG%;tEV$rxn;)Kmep0A~^= zh?#916JlXa&z1Hn^ifH3QUq7LFAhDQbl`T-0O%4FEHjZ(LPVFYp}y|tw=bT<`9t<V zF1^XTO0No&P-L8B6SKNspOHIuXc<8gv8!c7*;W3J!_oTwIy@Qu0D#|<a3sJstx+(3 ztd=cM(@eZA=yl}7iw#I<EAO@7p)Jbi1UJaD8U^aKLy;Dz9x{}w8*-he9;3RMTqm>C z135QOSPlfj!nWsXi33C^cUm{Ia8g#pLQS;0$=X$9?~0OR$gxr&Vki4BZ$a@Kq(%el zFoB~%f+WcvBBzkDS{o7IN$UB{p=ss{3tYejk0{+r&Mdr;sG0pB^j5FM3QR-{5a$2t z-vHIiZuUo9u)J^H-h3tL3X822N*7;ri4;FuznkL40)u`^)orfageHORy$efxhZaJG zC2Z@G@^NE2=UX+Y#P)<lkBGL*g6Q4$c9|sxpkzxN3kcrC@ioVqS<tr~G_+^l#ST+F zgxum4bQzQBCp2ka32EoR?<>a_BGwft(KUqB;6NLRDx-#Q$!7KVnkXCQtx~rk4s_-a zOlw_$4ZlW75k0Vi7h!%yNpL4zRshqz!AY4^l7<R%ajuZOT7wf~lj+W##aQ7xz!4%Z z=2m8Lk=fvyE9lfMa>gWvdUcIEv?u7puuvr{>n9;FhVIt6SV?pl4*N_dZtz2xRJhP0 zKUUQ<w3T@nlYphL7J&86FxWv}WFRA%9mY!uv*awa1154<9^7T;ku$`6L_mb1tQseZ zOHmZ;8q+JPG1ipSVl0t);CuaTWV9sAYX-03eZoIi&v_G(T9`Acw^{LzsG0T21@B|u zzQ2iHWL>l(tI>(fr4d^bg!-}f&N~rM?N}_y^C<(V10OUe@*P1fjBv8ZB35mg9<7QX z%>p%@l7h{IoO<#Pt4YmOY;G4E!9V*POA`O-XGZrNP7NX=WnhgKuvBOl<0_2kGCiYn zRpQk*nJeJVfW;tAwDrm`qbtG!+5xt!Tv#0{Y_M(DU;D<4u5OHc4FR0HiRjwgz-vfd z-4+xP0%viA9`q^V*2dR<Azbmi(8;@vs2j<arY|ODf=Um^99PYB1+xWudrN`CbUuq! zI)VE&%_<C8K-a9o4N0a9mY$;=%%G@paoy8A3Uwn$N@zHRohar=RGGzds7f|r)j;d^ z^F@G>gPiz|p_}6O5yz$vqzy?zR4Rdfbz__1JIlfNX+(3xk~#g4lF0nb9p;k=y?`|C z;FxryN(om60(M+9jU{esA-SbDyWQs<l@+)gv*U0N-(7Ab$D1|pLZjbuom0q!>Uo?! z98{p+?w!E>dY&!o&X#eh)e*iH19c(fr;=nhMN^k$=154$yl|;3&F+)CmARkmlSL5# zKpl}D#Z%7sN!xYLF(q(~Vr|7~#jCl3NxSMiw1+tAydE_;3woH09eyIso_<NThrT*^ zh95kAOOMw%pkBzdLJoPTXz2+O^%&WxE64DnUzAzEThe}mDaKUlZb30q#M_U6f=B&t z3{k&}Ukkq-8@G64Cw6vHWKkv`<QcFgy`Uxo_O%eL96`?5@YZSIG$V8yVI0*Wq-1}& z8~q@&(kZ=-%?0DE`uirFYNkI+*wmcABV8g-XqSnd_Gf+geV<yiq7_-<@KGJJ9K?!i zSVcLTZ(+0Ih4&sMS4DhxGb+g=#Gt?R%<DHQfo1azsrOX69Ppd~wWLv>Onz%NzQ3(u zmKd2${dTUu)NWPg!t5<b$Tiz72I6<I1a5(Pc?_(mxoi-EZm^Iw`|TBuRjNgKL8EUM z67MBF!9Seur1?1Ns`D*?u#rs~6#Qg+V35^eEyL;OfJ0`mB|zHa0m;d>!|Vhte4`UQ z*mC{i98Bf{#!IPoVrbB2*WVTh@DvaLdi{3!{^~V8P>}{fievsvn9-7kFs7+@C5u$K z=R(a-?t~o;VRsfMgd~fNL0FivA~Isp$-8JBEYq*C*p8Mrom;^ejk$1~SdHu5*;+9Y zXTix?NmMLA@F#HteGxZrl>p@93v_qxy#SI|0MMVa&vWm2R>k=JF*`o@eo;9l$93}7 z&>Qq7ZWgu2_ryD%+hfLca*W@Un~v8vbR2P7Hr2ZmO#rNZxN&P+BYed9;SPb|CYhQ( zDIO_h&7n!x>6|aWPA+RQ1K#%nePnevwwJnxz{>X}Xp5FLK>6Jvz<^jtdBc?QMv~=L z{$B7elSF8=4hWZz$QcD2P2^l|xjo4>HF39%pY$UNF_uuEZzLq8n|3W%F6DL{D6IP? z_w~@GJ&~G$wZy8VIx=%`nhzXBr0%o1r4tQ<CpAuo5<OaER#7N5QCR?mdE_WZI1`tp z6o3GxJHiIcJCBMxlq(Gb-<A)X0bBP^`e>3<t|yXoGh1$qa9GA&sbAw-=2!S`e3ZUH zVz=#`yqV|@0#5YK=4w%yUfU4I%=d7+na8D)LIlu{=AFoq(k*)zM?{R<k_pmk)**IA z0Y4Rz+(>>nB6l##+6sT6&EAd>M@Q6l?b;&tqlDo5Ukq^=fgNp<aB{_vb&pargu7r% z^WFfPM&R<JUE!*|b-V1a)Tm~PrDqn#`blTDg_z>=DLFlt9oCsAYQ(F?VxSq-4c}d( zTy~P0$~Dm~$6GVFC`=(Gw>NXeV7B&{ok6EnPT^t3y}3a<+OB(?C{)a09k-9uB)rbh zg{(K3XOj#Sm%UGHd>5$d)&sZkb(q4SVGkV<fxEd%02J^z$x5%*M^o>OuWS(i>Ede@ z{;`E8`s0IbnQiuC$HaQ1>lwmvL$x#Y(Rl1eltElVC+k@h_1Uuig3{l3W$W$@ICGZ{ zMs71f^HTg9qxo!YV&lpV?Of?A=isY3Lu5?BB3@aicJ7(=PjTMz!e#5k%V^BCMR9}g z@>^mf;swT_EUTPCP-$P_IA~^$ST$TKiAp^Ta^+tp^Ds^aUNDKcIAA^WT>CPlyjHPk znQXc^b?q^W9kp!~{*Ey}$Ago>@!{e7eQ2PoRMk>ZZYo@YZy@}+;4OYzIGWOim%pKZ z`9-2dR?T*BK#3A?CINS-qJ1ap(EUTql-!Im^RS%&!|yK2z*mDZSctOA^Cc4@OPFt6 znaT#vK_~waJfq?ulQ3~Lttj~lX9uIcx=CLPZS3>FCM#*hp-V+LRcrMwz25w8#Lj7S z(`Y@!jP(==IaaRyx0Xip=H>>-<u&@f%;qJPH$Of+IzBi&Iyn0NAOyyf#i_U$!r>o= zL-eUT07iisPFSpCfyD6Z)@+&x@{b|O@ne$WCtQWLH|}jy(V=*XNekMgbZ+B`>HNs- zH92Z``pfcZE41_Df?NV4^r|39CXWm9ktuJKI0~a;#$1?gw3+FXD{HJANgMU706S!b zC?7-X)d$ovKy74=HNo8etCx~l91{y;Vy^E7!O8viqKf1@;f^ojXmG&kUBAwag(&I3 zsl|4?w^)|#?upW-wtM*Kj#`#lK@*<`(iKIJ<>(A3*W(-A+I|BxsKv)m+d+Z7HoD-z zt!j|qhhGvFlxX|Os~0-!TstIWeC=XC&Z5=c{yQg*zHQ;%*>9zdzi3Vi`-PX>Rd%L1 zN3EWW%~4CKX&W$t+wrx!9durGCvnh?eE9IQ{)R$9+rr1I^#kB}CAl%t(#m=zn;_3> zAem*PGR<CwS3?IuTuxNbPcb=5vM=gHenS^SkSsy1h$m~TpD^dAquM5H#6j7)PCRt{ zHeFnl$A1Mr*3y#R9X0jbYUnA1YaMj<jXI*X!cbeAIzZ?;-dhOjr(c|g>5g0R$c)ac z>Ne-{l2Eo|t=!08DL?z->*Q`*S1BX2VSAf3G853TMsDP<k)M6>HFCE>--fCq%S%}_ zI|_7|DSbb>4`RmYR?GhhU6VR0g-N3tGSjm!zWgb5D^O_1XP&_D=<vv2srT!%lzQB% zUSVAP$nIes;E+~6JmldQ28d)7a+`6|4U?m_6-Ihes3_YG0#CwDY<LpZaRHxvdBzMn zZCxCViVn^6VSg)hf1_qkZ`+kCx{<#`e)h!|$=$XtQ${`jigvIaMGIecku#(w9xV%B ze&MCr%)cY<LDKD$3Wzhrm_D_oMtgPHJTYdfj(jh1$0kL8J?%Eu%8a!SLLO5wd!CS& zpSYcn0zBY<KDha@>13U!X#TnNxV@}80@k@n{pK;@>N{?ipO>Iv?{w1Vj_U^I;gJ># z3jFDgu=rIs?*PcJb{k!&n8#mK9JmwO*eS5@_ec_P{ionz>+u!;rmBoFHD&MoSN_oM z;FM;Mvviuo9nzC+=EBTA?RP=zpBzh;mU(9E#J%5p_JoZwzKtU63u|D_Zc@zbBcQgT z)0%n@!EQ@tG#G;$l|nYiojlFl<veJ{F)3c$j$qQr!!CJtH`Fq8%_;c~C`IAHLh7vR zs<;oHd792?|8^hNc1yfpZ4~l#H9idq6{MFW3sU7thLYry7`Wh+B?;aA5TlVPY1OHV zd$eZAV4c|`r$jWW$UKa1wsla+_*QF2yzo8K=s`c-sREZadN?WHbUi%-OIr?u9n>j< zvaJ>CWprFmS0$eA9J86yHcHU~%A2G&eA5K+;<PuVL?GF?ZJR29tQRDn=}$qiN=vLj z8lJb4s{YBo0MUue{)nX?V>O!PVOstc7juy&QVy8hl+7y27G3GApozPE{G`7?BhMnd z-QIbOU({)zi~<_nj$#R|PRTPt%CJhlFE?|O$*)V!4ivVE`eD5*HjLk-QILEPW-!>q zLqFLe8^z#kr(Hseto%@i6iQmT<L0aj@oi_N(c5~hQFyQ=XK=w@@(2s6`hspQE`1>U zWv98DG>}`#s=7EUpF=_@!GSnB5^b>AO+GQ|)7=<L#+i%_-!y>f)OHs|>>)ux$aYf3 zm#9D=<3v-@SFc{{kc1ZKGjz}&eiAO@l7o28TnA@V9k9oIU|pO^<p4)4zbN~MaBi|+ zah%6t0WwGM58a@s#{8*&gl(Q@H@XeFsC^=@`rrG#X*iCv-u}qWz-mx?KhckylXq9@ zSvzl}8@V{4pY`8CuhY0YRpdW)0oX8@CD|A)TSJ|FI-)3@NrGjhhZMW9fUXjXEO!*? zZq`mb7m9<(bhS&Kh^Ci1y&nZ+M#ctDp__sQEopn41@4h;V^aR^c$4c#M~C<Kn!W7` z*ot<Emz#LrcJxFeOb0xlQe&s4CkL@%9>rJ}7R9K13>;b};lvG$!^8A<xB(uBnUuaK zrT2B_fBmD%{0Cp%9)G7F=&XJC@F#wVR&uQ1ty&$CWyO2sekyLQ0nIFU;kxhl)*I+X zy$yK1#SZ93K3?Bx7v55G0*Vh&e##v^J|Lzu3f!T3L)_pCy&v^G!SA(w!AE9q)_Yjn zCw$nrSMr1Gm+49SXvD|}^UNbI(5Z4v_0zVU26zn{y49v`-ca_#=qf=4O+1!>o){~& z_MYlw=4z6x_W6xG|EtiA*fEI?fT%pMdCPQEYFCCZ@qYmJcQRM1P*^uSuNF&H7JHbQ zvzku*tX|UXUWx&X@c(<jOp%{fZOMDwp96H=Z?B;-4dk@dy*F=3sep&<((CC)9-}SK z`uYQF*MZ%}l=m22P^c0kvA4;dzF5ZSI%Z92f$mjusn_z+Ns?`ayBoTWk(3@n2ju%n zBTSe+`YDK~Rxpk^xhbVSA-}(0E?>Pg-MQKON5NZ}lQSEd2w)2P8!gEj&IrDRRGsh- zIFN#`9|eEMaJd)`%hwK(c32l3DH!H3#T<R59N-`{2Xx5SyKd^)<YEDIri{PtY(t#@ z7l{foUZzjrcLB%<nxW7TauKy-4Vwnz6mdA3-X1JPQ3svmtwgtdS71VbJ0d>sHl{yt zd^i1q48jQN0rt>+Q@OPqWG}pg=Xord7l88^X4C0_=8KzYveh_~F`dbzgtL_F0A8{L zEP3Y~7SB<QG0;L+r(8%@n~E;4L2bmB6=wmW!^NVFh$yCS>q#Tbx43ptx9N&@&>rDS z(-&@^n<)c2untY_DG(-nh$UT$CJs6_Rj{7)0)#4PfYYyR@`vo%kkZ~g&a;4VAdi9` zW4gppFI5I&@L)YYmIk7slNdj)O#&Yr@NYar6lP_9NQccbIQRBP9tnMdbQuL*)<DV~ zymuyV$Az}eNcK6s-1rOi=KLbdH~8Sg7#ohw0*7+v*%gj8z|AWkxd}iV8x%xUu+d&^ z{@klDFw#tT7pLd?#bOW4zvWbsGG3Do^b{_|GY=`QcxBe;+eoxnv6~Yd&KasExFXmD z<Lc6wQq*CpAIXqqX)M+aaERb8=*w6^Gw$#GOfl7%bW<(S_Es8X@sL@5JPUe7nPoFK zlB>sE@bgg%;DA;=ee>h6C|3z)@S|i$;uMnZNm~0!wIs$yg_e9##z|K!cCw%v?9sGC zmtD}Mq~O@E7UPVQc3@5npp5QS5%I>D4xf-h+Z5k4?KmV}&D1R?doL$*%sK`{yRcWd zp)i&px+4MA8HXjt1atS6{ob-?)2*ACo+J1<>jYi-=3b-tejZ6~t%k8opPN@>c@mQ~ zttQXegpMw2AgTg7F^h1;3K6P)M}Z(nv;o7$5)!2uT8iJa8{*_88aS@e_JXZBxz1pQ z)tH=HKZI#=u&6K>-CT`66klOxw*|0;FYGfEe4Gg*Y6?zaHrkEHYyF~;47x5Cauyu? z*T?_**dP7lKlcCY(|>(Bm|-g0Hmb)*>ElPH=bt|P&8Kj3rS$at*H5AT<!>$L@W++b ze-GB~c9#F#P*WmjbT)}`6es8;L$7BzjZ23ui9_ZxfG{DRFgY|a^CPERxIWsP9eQOe z2pRiI>PE7;?)ka}O;=96B*LH`<5?O{ffG(k<UtmgOqnBUDHW>KxanFD4o8Br6OL{8 zn$6_Z-LzkcM(^Py_s)WcK%@~;qcAOQ;9!1z-ox-Y`f`SH5rxy~RlpN$?A}p+cWKtL zldp5dBpTnKJ+dN(h!a>EV}^MwmYnr2QsZhy`Fnu{%JM>Q#hzufawSO^>~)2a$(S+= zO<m?z@yC*^)xgfc5jXyRsRMCI3JIJ)hL_OAH#aHfbrBUQg2I!vi?d@%5-!%s`4Jd? z*rq2EUx#r*d#hisFTzS&T6RVOONGVCt~p%uIdgHs=Q`k*UoPK{U=kugBVIUI^Pwo; zs@rmZB$1t8pFg-q?1$|_?|aQ)YV9D8<x|a2y3VTL&N*6TtbQq#yL5Q*Fw0}E5<z9T zG!XENBTcmWoJgUXl1h!FjB-n3+~nN6oFIfY?It61AZe5m&xB3}qSypa+@NDAdeKu( zGbf3FpwT+Wjfy*5x}}Lc>yAmf`%Q4nDKLL`9J^~_D^2Y;pS#B)r_e@9N87=qj#RmP zPN?#8RbqlB9p$4lht>QySdSms%4%BF+;h@58Jv~WrX;g^a<UllN!Xz=I9CTJ4Z?kt zq})F%<ezZkwW$sFMi9xeRl43_$mXTxfs{f%$Q4osZEdoGAhhS0S$M))IoE8+0qOJ` zm*dN7ZjJYxymPBOp5S%*4jOzUaza5Q_%=o2J=<F#ju38qK#GEV4nEAT!c~tl&g<8X z-PeL5!H^D08x_yyCBH{m6X;=7fBVFF`)7h$ebhNVT_5(o_acv5)COi)T@`lddt7vy zqqG<b>j73cf)indUq>|7s8}X3F!TW@e8m@a`D*&Y8)rMBJt}yj+6KhW-r=M7umOGV z`~UbK!66!ejvl!7B5p!9AGp?PVO}~0(19B52`-tS#NdEuB-eauksYvBX(ahcz4$1X z{VRa~i?9+nQvT5*`x9e7M_E2Q0L-<r*ufi3u@3%87N6hQvAj4SSALj8R%Yc2mE`mw zFc0>0IG@iqO4Wwj*eQK!0`gSUWYGiJ(J(<tymU22aE3AEV_wL4CW=f#W>pANMNBsf zOdLFj7=`+fI7P<`8;nLN3RmKKQ4fOfwWicldk`y=Iwy#gP!*Q6y-nLEcOyeey(%Jc zVXA!)NtJ~;<VmAnje1IE)*3++$B<S<H;b=Cc8ummD?&IR{P^_KpgC0h_{jZ57m1YL zPCmWo$Sl|{5Mv9@rpb_#LFv$7R*)ZUc6RyA%{@i(HT0^Fw?`K?G^a`Z1LS*v!5&#} z>%CA)xqef4Ci;})d&fr`Y_!zAJIj)TF@!66oGv@!Epm!w;hQ|xFleLE$Gz-pE8Cbm zNmwkv$g84v{v7{^{pS+6W)7!*!|7i)GF@+d6MmFUNRMf9Uy|O)GNevrjJha`nbYxF z9yv0t^#MERonK;JU`|2$c#e#gT8qhSm|%UFMVw!&w0V#b$o(+TuigVP7CL<W^C|?! zJvZ5G8Vc=5!6jZWTNjcromGH{ZaH9z0f1BZ>ecHZ?K3NPBg3KCw*3~tpI1~{M$ZTb z;rad@L1cSc;C12wWWlym6Gs(atKnmUht;u9g9U0k1U}BoAFNB8wyYp~M1D;SJ-DV| z+6X7pT^BG49~yZ!9v`?9{v1eLEy5(c%BE8nUw{z@B>CL|MTjxwwMwpa@bLPOQDx;^ ziS>n$`Nt&VTsubR+cD{JO=ms~FJ3>}5*TLwIO)#;#25tl6irKc?1I9X*K)q}j}APj zAD!1fzy3e#=s3%&t>trobzR2I^koQ)TH-;8o~(fho*6i8bCm46F`CCQjeg3#py^1` z#B)gFmWTsOXqflzAjzu&ICdC+R>ftQH{;ObpL`6OOeb~FJkFA6T2ap8I{;`~(&10i z0l;Ls^Wtk`sHiN|WbRVyLgMg#tv{+QK6Niza_K8fo>CAOob^f>BJ5)b;E9(NYjb?} zWB7gHxTsKB&Ehw$%H)SSpxk|AoZA|lUtCsRx+T-g)Ny-3(@)o}{iYhPK>S!oqw#78 zJO)WQ#1;?>riz27DexURW$~Mri==mMA0QY}G^mo!VViPD7;)%BLBsaWU+X8LQP)u` zq7<}OmtznkrS2q45;gG?n`<32>{F_8z6c7+c`Yz-R@O25S4oUX+b&C`64z{0UsYC6 z3&KZnjX3xKQ)Ok`fmMec*ixTi;;hC;OkRAfNir&Kay6F<HFJ=8RnAG?thTYJmUMg_ zcL{NyOTxuC3LBJQ{!(ASkfBO~i)xxHG^{lsi^n2S^8?gA_s*Z7!dkY@p)I8GcaIB5 z5KByu4&cIIh9n-78wVaP3yaRG4J#1!(uU~)8W*D_{YrQx-5=m;KyFD2L1goNBe!c+ zr66)88S6^Xi1<9)%($<MFGr*Mqx+;xmh6kc!vgq+<oscL{!5sSs3`66;n4}YpFcd{ z-)!3!qNk+-K<+AXnR-q*q7HEAlhJ5IQ-BSMr&IECuQ|_GiTwg!li2+l1Q+C2%$^a` zIE{Y8q@zN3aMPwz8q?+$7mrp})1e;L>yIcanGMOolPc_CF^F7DtDMUeNt&N)gEz>Z zUF&2`O++)*rC-#L8D$&7;1wzKx@|02=mq3>)eG-5Wk&$RPPmRCsvIbl)*_=~3~1@# zVj!5OhYP$U*RHyirU{g<%&UnTnZa4Mi#ZU6GY}-vO3vW11ECUVQ$KeEf3S#Cw9Rq` z96s*?9d;qSJA8hMZ-a3)GZZ~e8Cbf?LR6WEDESRtg{8D+vhw<pdEpHn-h}M$<7OUc zo!i3$dr~%Db&co$WW)J?q9!9$VPXcQzvlQK%ke+i`S?F$^QWhPq!G$^%<&C$3139n z7*(6UT!OSYLlw5;kmz-&D?ReP7(7do3XqLMl3ve&2LN1MGEXx_gHp5$1+d{+jO;c* zjg)yhd`VD~6wp7eOqF)8Lu^1bHl)FwX7g5T+30ZZC*2~@q}feShF9E%L<u)QOX9P9 z7iRpg76?Z)cBg4cn3y*&oKx;Z<1Ip6<%v^i>iKycN+!8o2_J2Ce2b2!)r_-H5<S%g z;Qpd>dA#9VzCx|?(O-EkkK|k)?|d%Nrv(E@u@qq8pGfVP&F2i*#vu-MXp4TKVchFX zR|!F=a~QK20eQ1M)|xD|D?$^=HJ)a}Y+3jiI&;zpe#tF6`ro!?hq7fyyKfm`co^_* z<Z33qQYK|I039<mKf}<+S5yC7{uRJH+yKl=1spi#c3T7ImxAYs;Y<%dlQR{&7FQzh z(;8ACH{&(z$c?P`_c|kUSWCqLvMxH3m4vD4EC6*9?N4IDr4Cq~W=UzwaO-n3eil1j zhilhdeS#I2hof*1Q_j1d_LV22y(=sykLjCXeVE=709<1B|6OLOBY(MY!ul+2)mHNM zBG&_IUAV<)@ITR9)kFy|8~)B<yfFe$ZF=PC!~8jn&pA=0kYQa2!sgoENc<Cfv4K>v zv(Tdvk}`6yPtKW+sRuwdP>?Wu22JlI6^GarNIHbspNKWOn#g29HZR}-|KmXO93}2M zO@jG7TZ<9C?z!paEPEq?V3Zr5%a;nC47?7hb`{sF=I8*IEAhIHvYnVPw%RsvVHMYU zC`oZ&kZLEHWpKdeiybzm^lA-bri46OJhNf;{F@cmoJ**QC$8UAcbZY}67B&k>7Y{r zQc}Ml$x@6`7e$sLPaoImOmicRq?XI#3I0tnxd2W*$+D%1Bf*^TV^yNF^GZ>D1vv`) zJMG*;du{2sLkgmI_pu<SW#*M^X-FTI@i}@nQ8JYTSbDW)Q`llg&y35k<|mA^BO^Te zWmC35pT%q1SSNQ2HDNJ8Va`(Rj(w*C8L8yFX%oFeskc6yU`p-UENhi#@V}5M^CIKv z<OBJ4R_(#<jDBS3oEGNEid|GS0*oFW;B4-u(y-SdDqx08;89xPtEIeA;Z>ov)z&LH zD}}G~q45RTrbyVPkvGB<*Sm5Kn=ip#Y#6p1L5|y&3q(8}D>5T^-5D8Uh)NZfG7_aD zODZ5Gnj?hU7;{LMsA#{@v2N9JmWNRb3E!1_J=v&Lxmf0L5*!__bFX*gFJGVyOx(XY z)uzx!>w_!GMc#WnY1&$`zVSrq+1N$YcIw6FS;|kCtsRer@5xG3U!dmF>l2Ima?FpK z0`EW}KPc`wuEyF~xllP!8OlFkgDFy{mNNcFZY70yVX_01c9eH62zIN+dIEklo_}pR zDaY8Il^uO4aRHzb+Xc7==^{k8UgOO|h`$Cu<JFH?MFGnLH#|_gJ!}XZSSx*m|26sf zYaW<9{W<PX$H%(cwd3_mk_r{6@%bVNBk<CTFvA8U#%FAqb4!SdCXzA7R+%C9ChW$I z=cdX~pD|+{d)_2ANT}IFyzS8)wXT(B{ow0o+8+U@r=7>`6+rdtZyJi+?J!}Rebb+^ zjzF*hb62UjnY(4%@jr?F<yd&R0f-X>&Umj3{-`h~f=ba%^UE=PnpdE6I5x%Q2_M;z z=Y_NoK1>~Ip##@+ATHVR$wru^T)A@x(TBAbz7kUk#c9z6S-D-f77Yv?Xg5&}T=3Fl z*4MR50&z;NiKT`Xgq(LDlN6Z{kcx>FN#1t29jEIG7ye{XnQL?dPVxA<dcXun57r4K zdHupdb$YmIoU2;h_)RM(66My8|10j@O)5CDW*(n>_O<JYvs443evU(3^CHK%4~_L3 z%3SPhKNP<L!v&K|S{$+;2sc?^Q5hT~xWtu~VR8lB73yC<Wbx!~x5OKC@+f)bSrX}x zRjS|?YCDFmVrN4|w4ICUXZfT7-4;j#LdVqBdlF?xhmN*kia%B};CtE84j69=5+&<o z!VXaqu^hX?h|%WPn5Mr1GdJlo2{Vrxw8MAA%r~SgiGqt4PlEm%1(!gse!1K?ju#Z? z=r|nd)Cv*n4;W9q9_z`&Os6)!G0EU;bNOzRcrY=(*v`17xWDJfVwDrgLWU?Yz-Li* zlTtq+BJY*8o__gVIBxfLXs~wPaTAbvMN*5f>7xJ!x8E2zLtQ6@$O9F!VGUuv@4b#W zF0?8~!eoGN+FvKp4q2tv+)m!v-_4FqT0)(6$mEc!X*rDOE=JJIC`8um{lJi9+Rk2> znYJacpd5ZWh?)Yay&kD3%~WEs2^Axb^}gd(sTZpaOGfM6ScE=c^)^o)ak{QsyPGaV zTdW(*)Q^+wLzSybeSVnlMmIlEk%yvlXw)!i`A>4{8y~j6h@c&}I}WgU=IAqy(i8Dy zp%`oqpG6K_k+3Lv>vWK70|{^PmBs&@xFpTb*u=@MpA04s#+FDO?`Ar7SWZKI4f?yP z%Yi)mEN$hF=rGOw=-5S9>!+W-!ALYo5GTfc%f#2@ICYC2*)d++4LUaowCul~bEsvC zdh@U#;d{kbici!+K15MQkx!%jzW^6E8OvX0*KoPs|7>J@ED>5-qh^&YrbZWu^lA}e z%x{6UW^T~m1dHay7!y!<vBCJCUoR^LunM(d)xQn{lFLvCuA`C`#hVZ8@k(AN7g9Jr zZVg=|uL7I?S0|@O`x+WM7%_Bi4_vm@keXlzz%A$+jRIp#r$MzADf)S+8MB&l2UAz9 zbjm8p^MPJ5C~Oljfy*EnS4sLsp!{JTVRmG9O^3U!=~*Ki$b60#d_laqMqL#Ur7WQ< zttz<~bv>aO{%5p1g(f7J$Lq|=`SoevO~7T>@a+$uvoDk_rLRS_L2$V5Fytf!=J9OC zIxH*6IeD#oa=8dmWfJtL+a6jGV-8wD;>il0VwFzjd6r^=aMGkWOZj$-rR;v{Tm3DL zKmXKUqSON%EwE}p!;y@kuODmIt(@gj0DWsqYMHtYGs?7u2Nfz9>y8XN9cez^B&nxE zj>>gyuxmRF#A2p3iH=^%0sgVYqdTF|`20gYuJS8o>dWQvxGH@wJGdg4=OaL%%)##V zBoUyP=^t-S<6LIxDygo*BD@Y~+&#U$TuxLXUT<$>0CZd}e7k{N)ye4~fPcT=X>B@R z1fB!lJaL|rWMO++S+%!sC2RIioxowA))-QH8DSto>v-k+3<HH;IOXYgIL({wxwr&U zzPKsrs%4fsiOttH0q+gW1w7>BRHVKG%1arR42+MyI|LXXZ*_Q^EE8E_!oBnfdG{7L z(f2w(t(si9W;I|>t|+!*7k!uOE9_~zNKeTb2+*O?@fwDsHcWhj{?p4-@}a>r`$Vhx z_~Q9D{EJrOxFcqD&wwT`=N<N4$|?JoD{=${(Fg4!v0Ad<h=lj=FwoR2#WIYn+}G*t z72g_E02rOhkzXOD{n~NR-VLQyOqo8hj)6S=D{g{K$`!f^PCxr1c<Z3D!|u8G=3oBI z^%q>ch7`V35*0-~TXD4*NQ@942$E=4lLTcRLLra^YjhM1o6LOv3)rE@;bNS}t%}r! zwKNIyw8dIfu{qW#sKC>g)sv&@ZI>j5e)2vE^Szs*aRuc0tx8k1@~$4iqIor)Cca@) zsti*ih`7dt{e;P7^5MT}jhMtG<`nfr)Tyh8^iZUjPyGxMTTPdzWo-{lqLuY)vEI{e zNnN-$e0hm{)5TNGafoWHw9CoTcbGHEoSMKmrU5foqyBJA0M<2$9Fx3WUz%L;n)ct> z@%tjc;$K=!j!k@wJ!dy~AEOpr)a;9x94L%%4F{&Ig(xyaaS7UQ9Fwz9Zh9U<U*2S! zAv0xP-IAY&UT5&K#RF$onsqe#Zj&mqf}8y4q?2g5<^VSaz-W$UGnA1^Iv!3OA~|f* z3$$p`{sOWsoa@8w8ZazN>*Ty<6eEPD6wPeVcJ1T+Tn))2zHhb`^@^$~ss-yRp%~%$ zH8?s(obLvUp72YV6y4Q`Z8n`tI}cD8i(;`#*dtmy`En21LQT3mr$Cu5ZMG1P%Jsl@ zaceTYiYK+v%r(@r-x_(oZTBzv{!Z9K{GW$Ae#sOk-MZG&vil#tXL@9{Dd*`FZ?aIk zj;hG<RN^W;HDEgtSbp?LDEnn+Ve_%o`cUkvX7`?y#6;KDivpF76<d~Vx?{S+JN)$V zi;Gh~0mHhv%Q9(jouCSYO<Qv*r*6#kMwM3Y%(9d?b4gvu@8>H?nT>65Ej44=ZU}U` z0fAnC+;V)lCHfe>xCAscI=Lg?yioa!S0Q=Vez{!p-!^`L*ic7E@qM&Ln#{o2nyH%y zU4&^h4UvZ;8Pz|WwPdq|(8TJS1nxRrC!%WmRz+~_%`|`E6gxz;5r_U$t;2Hzs8#N` z71f78>~St<5CU&Fr5#;&gccO3Ch7ua|K%cM6O&cwx)X7-&PuokDl~`*tq<%Bf{<yX zx_8647SmhsLnp#{hLa=?$*Tt^4x-y$!Aca9WQ!)>7&m14BmO~D*)`h^TkwqSx=`Yo zYE1(ayW!k%T32gRzOO6$H}F~0B%FDYlpC__W+8^2Bt(EM3p%UltO~Kfm*RjbQKXvQ z#_VYW1Shz-&SKLu9!g=GMntTgi=6#fw7g?4RMV;UuwlgprNWnOKu;jR#D$Y``ff<l zVpNg{s>3!UNwF@)B1_Rm?Fc%KpR=(X67rx%`E0FXTS?A^!SBH%-Mrtk9<RN+ebv26 zJ%x?SFg3d6ICM>$?}f&|E?zy)vZd?_0C*Z+Gph?2KzEWP8n4nJz=vKy$PAI5m|n@R zD%N}%J6&qvQW`oAu_(kjXLT?^13l{^SM0EiaPulmhz8S1cFQ~(bIm>rM5HU#z87JG z!@R9c=$vs$g&Y@eSCT(`8ZP2w<uh7S>o89|B_d<U23319ahJ&fJym7!^mduR(0MQ? z9aUXx(qu;TX@NFApwe7Bmbeb>4Qp99%{7>QEu$e<h0WU{)&q`?r%D&d&bYG6z_D5* zBd-}vm*@901R53w(4)@4xZEvo5fNS86<@EypxZl?L{iF{v2w|>L_0jy<LpKh$hucM zq}KBfouRyxHNwIIg<rswfZ|eVz$|9Y!ttf7$s=O+t+`f=B+ZF*F5*(1hoItjW2J!f z*Mz4(be6_uFD;`x*bOvC4WRLkk?|F7v~S@#$Fvc1_&|Pnm|Y38++*HVM{sd<K%<RH z8aJ~-!3p@&m2>3n9cQCrE|4swS*Z&M6i%jmNgYj@mBj&Ijb*wUxDFe@g~~n2VT?}K zAtg0-R0{UsVoe*|V{w0r)@uytb8I+2)8nA-3W>RX4&1y#>uygvIeEA#(1GVMY9w6t z&a;QqsbmTVUaNS-_N09)3ij9rj&EYR_D-0^3-bC>H)}}k9+_P>>X4bm`n_CBrvp%2 zWGYE0KBaelkw$qOy!c=LPeSR{Jj}GVhy}c(6Ird{qoy5_Ti#@Ypfgl0(ds2hjzCyZ zLK#icYAec&G1PK0*UVNe0m0oManb;Z*W^YgA+E?#HYle>dM65uRl1E+3!X`BlCm<; z)TH1>p8~COoQK-^i0ZbN*8StHn#@zoZl0{<O}ZnUlOR%SlyUW97y(FOL2NID3|e1_ z-)K1*Ti5~^$yJi?2DMFBM&a<ag8iE81H>k%ywVOAIOA8yQfRF3xFB<QjF~n>ZVK+? zi=Abp!$xv0j;)&w&f-NL<~k?67rd*BR-68;BE~8bQ10VxqIYa@881BJZfj|#wNy&P z+?G0iR77@=;NZ~CiPTdHX_s9rJTr@<17}T+cw+!V2pfhz$rwOJa~SCxk@pLP!U?gL zhpa_&t~sJw2FgEXS)#(!xhg5KiSTW@;_aF;$Q}VyU(s#4Ow46gV>-77Da^JJq%Xn` zR4I=F+%TUKKx>)hqW3kMy^)H#*$~5Wtl*aEoxg}-#y{oZO`=wNl!gqoZXuaZJ!zF4 z-O++OglkL!`<jy8NeXWSsOHx}{6z);Z;%>GCWVmc8snSUM(1>uIF`!B>%0bHhpvC@ zb7?lyjA0(hZfxqk`x+IzxzTaiy}U<2wn*<|+^wO3%LxcGOvJ&Hs@-&tJRw%+SY6C6 zxN<uBek0TD7Mf~KP^blbCmMLmJoHb~gD0<E9J~aU?Kv>ty>tDEk;o0{y<3lHm3(aG z+B^5Z`|0XYDM+D*18Xte2LC@S$_h}dD0=6=RB%%Plgr<?$~xV+3*R;D!iAignp|!L zj@sQMo_`jj!-D)Zq%oIu=axKD_o6?jsF=(baa0QP^b6p{B|q7HvEMc<_OW&YANxho z>~&TXNnEzgv5dBCTO2OZESw{*h4bJt$&hC6x`xx{V?*-|b*{G;8C(MDGMvJlyXT}N zrjRLp>DD=f-R9H82<!RSyM?vYSc2F_x;TZOY@zBlUB@W6RO)Oa#4$7K4KQ%Sn>dXK z@V}{XlFbg58659})59N*4!<9T#qzdy{svQBUzT||PXIpH3M(Id25L3&b1y;i@XwG5 zGw=wkJb7YqOyV%z)OvnWTmMwaqc>{y^mgeSNq&4OnR{7%x_0zJxDqI}K9Sfw+g#ZV z0X)vLY#Pd;e3QWx%HUtILUzoLrhjIo$tcrmZoWCbDl=zJ4#(s;o|HOG7CE1Y{%#2` z+t}P#nZyCWdy%6p(k%-pWEUyGo8s+5T`Y$ZG|$qwL|%$%)kvJe$n?{u4}cMFBuyg= zU7jVFgb@~|MjN3RWyznw5?^JKy7%ezOr`NEc%q+sSH-%INhwx<!Nw8RQW6i3Mn9Oe z#BzIMCfBcC93CDX{czMfFM#Z!N1){R4d8{nqA{l~>ta??RGt#bV-Oow9z!fZw!Tj~ zC^%DSQrl;HzOKYVRhV`=VokC~&DypmHCcnl^Q;ti0?KZWn1aqu<l5wMIKGl-XKH^? zC-<9qi%wO+Zt!Yi#zCrhck%jJz}a|<_oTbFX2T1eG{oA1Sazmdindg-6-m(lffTzY zD3=2F(o8eP?0`V-24c!a{}v<8Q^%Guq5*7?A9@cB6A|ar8w3i4bF$#iP3hrCyM2$@ zG_{4FgxI<C#blg`u(LJy30Db$3)Xbm^J{iXk~u^6e|P=cF}Vt`_?|j$nX7AZD$yAR zn+-P}dG`WaJ*|pyO~6DVct-gx<KE|VZnvQq7d?l@InwVuuhJ`ufRsFH8e$}v$G-Py z%b}RTWrxmBfZP8H^Cb9ZMH$`J^k7R)ZM+M@-*4t+4G0@9SgkX1Z_Ah35<4&<TnV6c z3fGHW=_`*$XjakN2v&O_d7*G}?Oh4t{|!Qxl`s~w^56;CXV&c8qF1(-MmWO9r(gd) zB_rAKf2TFONd|@c?ynUJwD%&K>s7w5V*&6YD^PvdPyi!Gw{0}gV9Bfsy|%Q5O6_hl z!Od#o#cP=}kVLITue;ScTJG59MCMknPuCxf&^zaR=xdj~(ek5&jf8*`>*H?2jZJx& zkY`QQZ9Gm^L)K)dh<x;XngK*^hGi6kS5ieq;*9Tpxm>Lh*s|)Xf^!t-NK&2^K+3c0 zU9XAzjRJ)|HO6C+BOxTZi#+vf`bCifQPb|&-AKKQ7lg4fQKkVHzjpHMK+>iR<D|yu zSoh)<5G56m_Npwi6o}1p_!3;wH-r$}EHw&akPe0~;C3mh+>}Jci^|d7unUJhAI5>- zQ$xh(p=Ckh^Uu+z-ES1GT#Dwg_AU)`WCKYxqphDKR<hKtNFiN)pojxhaLc7-Qx3wq z&{v$6)HkePq{bmBNcVSJUz6?N5{rJIIioNsHCc1T!Nb||na+VGAr8!xU}+wvYubrQ z6kV~yi`Vr_=sN>+4?(2;G5`mz<2*}g2X|XllPvf~k&h|+wxp&$P(3)>7R{551E$=$ zweL2MCWiU(rizHZk3CMaR(etMWT^LcPh@H0l_lAXTqEe9Nl7>`73xy9jAC7E2|4l< zvJ!^WHb*u{JPOfk#Hq75^3r7bPAD=zJGBhCUGX~^pW77pQN%@8ecP{1t!D;Fy+Z;= z1he?nJiZA4CW<Gt^zpOKeG}_`;Zq|^ha8`NF`&AcT5VzBS|MQ)(u(X%5;W8*^NvQN z{Rg6Tsoh$VrLFbKT7+0MEzMRS53oq{BFra4lxzOi|Aez9zxgVI-)gla#mcEgM_t%c zYn9A<B5ByTGSb?cDSah?Fc9mV)2-x51zeHG#~{a>pVut8b2+=FlQFEuIC&W<c0quX zM#5;hBPSX2(dc`p2nXGxel$IRg0Eyia4Y9(&zB_1o!dh$Z>JycM#kpJ&Me<avyM!s zYR#x*=H#kT>*VU&^Ld<RsJ#7CuqZ*dt&0xZwr$(CZQJG?wr$(CZQC~Iu*aGI-FNM? zV#R%3w=ycC9;>3VXSQh3vwc2;eYv&4I|5FkAKD~j(OVdQFFwZp^>bwD9K%eWCxS;) z=>dYIo+x^tNY85F?Cj((maj_KFvuAiZIj>#KxEX8pJ_>O2ueiH<~iP~{6UX3+1HHb zq4_|&;Wxg57FC;2V(vIM(nel{rp;)V!-lBtee+SYvg2;^JyVN9VRBCur%QG+hzkTA z+CgM;JF%C~w5;gcxsowy4xjRQCibc|TN_b@3BM1<1D$0)rQrQ8sbM;)NB}!Fkn?Us zP0Je_QFRkusr>=X3-UWa&kHc!%cWi^uGQfd`m4%wXrNz#5h@SIGPT6LmdEw1Vwt`- zJv6+G>pih28f!jwmIDJhX8WmP^zl5xL~UhP_1sO8&K<o$!_`tTL3fvt>2t_tfJEOs zhj@Ck1)N|cvs_UZ)uxE6q(`S+jwSu$Nf#Q1{dG>`vUu&7DksRYjJ*0mxOl4pb75(x zS*!LWkmpzd?cFU2S<4)HJKWFm*}#jOr{D<M-?c;?yUw}T8E?=0!^8(BP=fqi?vBWl zfRBF^X8}28`kD^zwJhw;8qFYG)Wjma0$di#6zLG9sc?*J9Ssxpj!K}$NF^tBK=j2d zJ(Lxg(gR%$<c08aD|`A%8pp0x+Ju*CWSfytmEDq-5i&3oMA2J1H(S;R8`imBo|e2W zi5IL&oIx>G;@U17MWa|`z%d+vCxuFQe2f3AfOxgMeZ>gzWsTe-^F%EJ?8XtLc6N{M zN_qDBqyL{^c;iPWq*NUMfEazi{}v37939I4e^cTAJ?Q`M;Q;<mXu6g2f2G2MrtixA zCl!8bMxJs;az(m^Vw|3eQmtN<LW-7VhDK^dVQq>2|Dp|4*P2iN4_(4|;rEp0->Xvn zyZ_&W`~R8#uJ^z9A^!uI^Iv2M-6X-dO$LOJyB}0yxh|#79Xt7(84@!`Y@_4!5*%Tp z@GXR*b;`p%_v`vDTT+sHk5ga!Tv4mJwE-M$c=u;s9$vmb@Apq{7tB6OL43LaoiAy( z)M)}{SAUDW^W5BQAT+NIOtP6<!H@DsZog4ug;%_HNE|Sl!My!DYeI|U`nAhHsI#B< zZRD?a)l1pG5vj@(@VR`Wm}c?5O0Zbi*cCX<t(6P#SlHc862#$3m*8%Fstnb3$;@66 z7tbq!mxSBBdjg~W*5LADHa`Yc1c?R8y0Wtk{IguRoSBdbW5*P95O8zkB<?f%C)iFA zdR=v{cy76mHbJnEi(iYz3ZX}|UO7---Ymc!I<Eo)1@|1++}#_<6=n$){GuqF=xcaG z^d4Fv#auAL@DjLYS<r~1hVwdK3XqE7Td%G`)rC#=((4mGrNRfRtnB@+(%+v>d!8*^ z8xipKzkVv)sMpkV!M$Zm`{SejhAv)l3HNiy!P_%@HsKQ8{j%c6_n9a}hHNTL_@~vU z9)_6H1Yy$t<&id+T2Zn=F$gOT*$mJCpmn>?LDv*ok83e8g%kqPuW_Dj1o8Ms&51^z zV;JiYq8NXVq()H%0=g#~(UerM88PV`CeC@xuF?g9u8qv^5Kx4&rb3lx=S->J9dDt) zJY-f14@8HKKxs7!@e-ga^zYdRoFtuj3@^lXp)cxFsdi7~r$^O{<T2LBW_A%f<IGZM zSIJcF9qdEZT`)&01F0NeXX_x|B8?(FR{ScCj3P2gj1-dOA!{#Du`km8*ScALOsYi+ zO{u^)9Dz&}xvw)omV&_g^+>diG@HfrMUs>jy@1m)$?)a=2>ky4A+LSDIj#i#H*5|H z0K~sRpyl@;V#5EujQ{t_;~$94+R*$zEH-<)|El%tP)_Cl)Ow4mwEY$XOz*2YLazz1 zlJ%7v6+<=XCSK%o<CrC$%7~e9Nvp|u0vko=9^d4H@CBCvHXE@b$-~i@yo&%I4uFYN zb2_f@scOh*>ZU;}%nOvQrO8>b+JG-*>!Gr}hDQ6}N*K5W0rRKL@YWP7SXMS%EQ{kw zh^8rG`5Nu(;m$cl?loLywzAE2oh(<7-NReCtVyJM>YRzg92+nEo3rGik;08aOnFmc z#g4ztOdqjdm^r=A$Aev3*oA+>{r|3}S=8?gRMgljLUNB9Q&X_Mv-kWKFP7Lx^w~7m zc})a+UuVF&ZAz8R*qOO^)tc*1NhYw*7!&}_YkjKfU8deJlBY}vUnd72mw%@v|I4<D zwlWBFf8z4X>cidJeSzU7X{RFH)YMXkK5^-SEWK9!lZ-#3c?d1v4_5=-P6-hhVjH23 zZPu-1@vuNex#6qV)#_RI)VV;tu<kzVA!AKisp0PNbI`3Y=dGa#;QRBE5zZO6SO3B< zI$(aeI~<1J8+KG-uTeyY7X-{l7NG?`Vk0QH1~`a@W3YaI1pzS#1tz_lR4;&Jv=2!D zCa}z%8c6$5pU%8FI#r*imi{u#k)aVkm*&7bIG%QBu7ZztmlF@$AZ!aBnvhpUO<1Oj zz}pU%N=dT&3n_hwH97Oj0&;%eMhJZu5(=AzCI#n+oZaJzkF`|N;BA(=8(sqWdy=&M z#a}-+3H?lZLrg#m0WqW2xpM%8&ED$Jz5sSQ3tx*y=kirke4#*b)g_0$R-_ZNUsDzl z4+DN>8&=YE4<xEdUx2!U^e+cvm~?x5RPl5CF)gICD73r>xZ8bMdyodv3S3Y>Q?HIK zfEJ#;JwMyLvswC$Kw2dgf?pZEut@>ca(GBCxlKc`<W8kXR1`1DL#JFHra-_8wQ-Sj zh4z^Rb`yIsKRbb19(EUQ;N_KzLs}R*g%tN*h>b%oKklr|T>Z>bTeN?&E(wfBCWe24 zs^)q5zASgjw1uBjE|GD-KH4s?y$}31>w5q1KKOt3Vv)?`b6{Wq00M~rzJ>iyNQ=S$ zUX3b=3W~^z{x>Mke<5006lLwV2@rZ7sZUc?oThotD#I#yOL{bkFxGY1^y&>H8h?9- z49ZkCh2d$D@P<Cq+1dJMN|M`Q$019%#`UXrR4ZDqlBSB?wE3!P%K0TK$6CqBm6pKR zKd};wC%KLIkty!Nw=2DBF%rljgDRyoQ;^g4FpxKTH4~Z}H~Mlp>#y0Gr4HQ^QKVt} zW1q;}XG0kqU>hW{yL|CeS;$-L2iq#idW~nq4k5W_{*3L3{Yzf;_^e4%!SS!$W_t%- zgIey&9iGi8?Mm{N*?9k*YLS1zuYR3BG_R*KMNYz=!}I}z1^qt!`@zr!YWUZA@d7F= zeZT6@iagmnDxf@;q3quk?KDxkD=cItNO?FZI<Ej>NHAZRr%Y+RoB^0uxvV7s^d7kQ zY}!#+hkNKwme?cmzo&mupaZ?d(W~Lb=MSJ*b@zB?&#c&>{)S-vi6w)-pTS0F>iBlR zyr>Q;@wqizIUUig|4U1ws4dj!9CsMp&L^eGSIU3JSXzXzXDysb*KN`d(LiE_&+y)1 zAk#s~EE$K=GF=pbZdpW$jy_M*us*B&BJ~&gKNG3xN#VBYAMMBS|I0}GKa2hU)It{j zdlTvZg_hCUTH5_v^Z#qb|1VWk!)@)p)t-{~sxNW9N=7Y_x;T3a$B7VEmXw_YFX@$d zaSN__C9E7jlMaT85Pc~1ao2-R&zE9S`fVgc;NZANKmXHuSTPNC3m!HXf#FDn-<T*d zY2GF>KNP{>MJw{avlStP_TV`tA-cEYYf@n&WBQa5u#_%Ck#$q~5P-r!@knDz5~8Se z&yqk=wjzUuUp)TCyD=CSR_xPu=7&5I3;8Z1rO`<{JVoM5z>UFA%KZQ!Kfs16@Npe_ z*YpW4$=1#@MT&fk7kbT%Ja-HUPnV0~87er+em&Ji+Y#iLoBYu7{yl<_o^mN^N9!4P z-9dtH$<`HAV<L}R<>7!JqZSzVMsZXk<1ra|V}bvO(6N^L=xF8Eg+5_7#+IBkC)$cR z6BOU{Z2?~|m!J+vwH4hI!(KYhwLac^4MjM$j_>uZVpEx|t8;!fUER}uKNH@nKkq9r z?cfH@FBA*knD>1*^@^|8=Plhca!udV=YeR|&$=^*!GMbw`VBi6K|;e}qMfJi$ydtb zPnbQmqa-!e|NY?TI{c6r<1j^I{-t-A8G#E9u5o$PfSMD8w((A(t)|GDLEytFoy7Bs zc~E5~OEn1WPXI(4kQ8VaK+^w_AY>JH3GzlZFd_;p&`2f;F3>E#0%WyBG$(j%YZbx< zEv9}oK8YhymOMtYO?c9tv8Y=u#&-+xZN0t)pqxO%QIE<zTvIXdFIDIk<PeaxKWJC+ zu4nNQ@v?tOjxP>rd2)d-37%LFARuEp(dUVCg8CHjVG|;``9T(LF52%pDZpsSMsC>m zd6=U-aMbLbi0J{OP#}aO9xEQ4WX8YrX@J2RgzHS21DIAwlAS=+2HooLN*@sDww?$$ z0;f_#fgHsIXg0JL;HdoEBlZhJJ-`QH<WI2L1GUAsG@-!w9S}9BBhhCmFar$2FVRk( zbtkKa6u%$(Un|!vU^6O(K-<fg)wxjvkPI<e!1!~kepC@m+38B<G<Q%*Njw~-%;5<u zu9;QBFG5|l+Qk;Fvi1o6KiI+pb2b1uuu0~$1GRpf`A4U!;yuQB0VaSk3SE3E?!FkE z)*Q7aeGB(&lPBjl$#zDcN7Scl1CYL^Lj)ZSf+fnpr$-V^8g26a=@#nI*x(0GkZi;n zsPX=49&3+f4<0I!DYgRq%<t8#V5DoLJy3TEF0j#ypX<>nTrUvnqosszs5P0n3O&$9 zwDAi0f&QTu_)kcpK#Ir>Cv$soH-&LG$VOELiXSLf2kefxst!V;-s6#4ek_gWO&u}> z+f;37rz@c?^EF4!0~Xy7d5EM*&;V+44WFQ;T%}8*>#NsTVAZMQq|?!Uba-9jgy<l& zEUU9y@#y&);d++LBu@}>Sqx?{Ij2n;p+2N*127MvUzlhCcojqLo+*5ANuGGS5QZ1u zpWtNcp5L>RX&7z*QyRnLZ4NDPuhfX%=Q!Q-OJMso+-K_;Gz?(UsO{=TuzzBQhT0X% zh>ki&K?Q&G;q$=Qpfp2>I~fB({#+cuna7-rjO>;=_`^YXvg%i<0Oz8k|2_}F`~4VR zEW!c*$`aut6do}Ckm!WaLd!n}f}4%GII_ky>vI*4EY&93ARm$_{?&k$SL+nEli>Ej zbl+ASFEXicGKNLoLFTnc&u&jjOnOjeeim{hKKiw@Gx_T3V8l8Un~C0=i^@ctI`-C7 z<Wt$Qoz>Fh$_3yFSZ>4=ujS5+nw25(QRaCEQj!}~GwRe(2166Rhd-e*qLji9tMpHG zeFT{Fx3#^Zqo{rR2<EE_=J`51V_vvzIKfS>`1Gv`#iiTlSf!vxlS+()xn`CYQhP*Q z%aaS>+QN6z_AzS%tSbHt7(_Q1;<`YWcH=P`W+jbY0n!;sJ@hcyabFsl_`tt0^-KJ~ z49e35(B{n<%N&2aw0Qvwu?U^!#LEgWm&iu~hP0!~cVdQ#r@D$u*G~Yl2z91T9`2#2 z-0`P?Syu;(xV2W-@sAQ|tNdayi>usxuE~>&iiC&!pq>vBhQ%_<59Ef2;3G$dMI{|) zt8~LPK!Z>c<w9Jufx-tYDX(n`j;Ue-$ek^aanG=9oF*FUmTc6aLsx7;as5`Q4&o>p zF+n72t}mQHpx2}@XVxGYlhsGbf|y`byj2fwSa}J}9_nFpmPsJQqGU7qH3%}#5a7oL zvjZ=X?y&8w2~40^K<B9kNixXb$%RdN!ARo2$ji@0U>q0-O%-7hw^jZpJvL_ptgG8F z<i5e?MJa$m!9UUZz{$Z~7X)U-_|-GyNi)F7Al0({x1p#fV<_DAM0$d1Tm8#)7bi=? z9?nDaThKlHZmVmL>?%^Ck&)Z`4?qvRo7hn{sZ>Mh=P%nliAaxzFvE7iTC15z%R8bj zVSch~x<a;t%hGe78hb-djYpc~Rro7wnF@N`9)wV@KtO0DNsgD;n$Tt`9FRM`?%535 zX5!UWvK8ZfF@<|Fs}r>z)}JA+vNz=YdC$#|uG%EbJX(yd0NztDu_D3RuxJDtzm^?x z5XF5BT=0&ynOdswQ$8ae3K8F;ozjUt7?KxmbuX9^Y+qfK;5X}w)9tCMtr}qWRhF1Y z=JC9QBVO7E40yEiKH_ZFj`LkdyT?NO^LGjqH_zuH%1F;a^ZPs1A%lg|bH$w|h`=bL z00I_9!R!Y&U40$bsI7Fd;eA3QR>P8@kxQSs$yIT2shl&TN1#+qWJ$kZpWz+6<0%dd z8tiawrE3CMT6{lT44o!c3)0=nNAT)$Z}V>*WEBoRn3_@1P#r-O2LfqFi+O<Zr4hNq zz{zFiSq+j(wBf;Sf<-OkBl2Q_!@C0R;=^@DjlZ6*_GH@aDxr$s;To)j3Z7<hQQP!3 zN|miEG4C-|W?K--mL!h!Tkh+$-h{b)_Tc|Snbt*>Y8icb1owwzM3$ph>s7~%g$M^J zj`^}mXr_MlW<Tsh;lSIhz#7!-uCwZ?`JYv0$_Ugz<N;`BUVy#qgDq>$DS!MuJS-}? zE~?50kNL3Ku$#N`=F=twRGzjC-D@(w52)0T7a_m*3;X??jJR|<)ea*<u6^9|ILB!z zpj35mHse2)1nju=&`Qb4w4;bkX(HB1DY>q&Ah&QWadcoctV<BV3bxKkknObQvX+nD zU>fbxuuumPn+SWQn6=T!<$*7JMg^tF_+s@oiidnVBMoY;((>hc-e3r4GDiX*9=P62 zLM4xS<_stdq;gpAOku)5rf9`%5C(fuW(k5hezxKNAWiTvE}Ngiu@CNaIIqG6lDYEb zOi|{~A#-I|SPQCVb7s<C<at@jCLMIDfVz%=l;ti1E4aO7P1lO&>DLi{yn&l6ZNBqP z=8M0Cnavobw%lJi40)*$DKDbss;u%LqC`bUH(pz_QygTNZB+=FPYm>Q$rs?Q7`!&n z0@Q1`jd@{}7)I)PKI-Un#a-5QsD<*YXu-Hc3R_x((+1IXM31?8YR|A`fk(mODZLS$ zumH!X%itD>etv8u1QNXJBu0u47B%96B_U`*x=Iy?#z{p&f(#LDOp$?6hNK!Zz5qAO z%ZNI0fw~Lbu=pH<z?<Ut^5$VH2|+ZGnR%xF=q|uUzGDqDLfJpho?Jo{F=E=a3V7&W zeE@p&>PWn873A<v43Dg}1@C@d6O_uTj&jA`r3(;xc@5M)AWhV87cj$7vgHJ5%3y+1 zs_}QFbPE7=)&&z?J@x);%eEQs5axaavU9T7MyH>@xCQfma7Ado6=}ad0LP_k%adfJ zza`eGo5}~*2%7x+Ss7v7w*Wk-rJhjfLB87Q2^U7$iYmWR57X<LJ_SZgteZe25h9vD z?1PXr*jh{wOR7pY<wp$ddJFAxP*QbLCXKt;y&sf=o7~eh?Is>^RVVFZgJK!+`R~*t zL&du1tR@iwhsws?Rlp(6jv%vW?vW|jakDx@S9@a2)zQ&{3%|}^|IfmgHNwl-j4paX zfzq8dqzByB&E=nto74lxmGz%gLEjRkTjmTtfo0xe$%*b1HyPq@%b87R>+Iv<$HLXZ zw#srV8muMAH~BZ}Ax^g>nifJHvc?`vXOQ*H%+C%A0)HoPN2dBa-Y&m)(=`qhnpUK@ zk^mOs>OZ%ShjfCanF$~3KrW0^%(bbV_?3ZOXCVfDA;$Nr-_X)LbM02@T!H;w&W&c} zE9=ov>Y<s9lGTl_x*aj;AC$yvCPW`e<la|xNsWJTLe9q3y}Di~YLa7DzST7{mnGYo zvMDm;1eu{eHr4g(B)*Cs$|=H^$LQJ2g`?<7%9S+zg$o+rvE$?gz1!l?-)PA*1Homp zywWeT@Y)QZp<8D_xAN!88((*1BX;>SWX3TZ){>NDiEv356|uMi_vPx35fy1%uoOG7 zhfhZt9R_JYW68+3e8E=Hx%C<Kc%iTVnx0I_tCsCuUjMXQ{M}&7>sTw?QOQ>=w#H=J ziS3M}Xh~tc9j=dcT4|k%^n$U%s_#Nx89#=}x$uX_`80mwKMytQUT2Vzf&uM(|0&6t zJJ<E?apn`f^IfxrYpLzdnd21%ZGWh(se27KPXP(dgk_kA0|h(B*)Oo&(Qd<Tqo$|s zfz)3zYi0=Jf)}q4#$A=`ZgCH!D5zkSV6oB<H>^=Ne`jwcy1&O6<ypCWx^_B4tTj{5 zACfi30MN8An(e?K(KlT3V@Td`zch2pPO(pF`=LW5^-e*Lkm6}EF!<3SS+-eK?>cXM z20QYZi*Vxk$J3nyee25|y1f|Ls$3Gb&}C6@KHa-Hi#U^Gm1I}6;a6^5mj==0c|5EG z-4l{Xo530ejncM>6E^d+(!qtnt1aYLu`{j9tnN};&20EZaeQ1M95NZ#l~$)CH7aFq zrOfSp$%$CjW!ynJLSDJsJO$0J2tBRkd_!*SBlA$sHyXkAGBC}&*6_He>z?nD$aO>1 zn3w06C521l=pH*Lafcj|S1mZDcl?3Z*ZX4sX=mcs6E&b;$kH5P)v#Lf_??lNJI8n) z$f>eL1xjIOd^NT^xi(I4+<OFK5kB1U?q}HDIAw3$NOL<vbO-Yy=d$=3MCp#u16gwO zol}JQgcv$oe-sk1A_~ed=;8^$xd*<+=tS@Ue*8ejFwG52iRbmHBCMTd#1*n}6orL$ zK~w^1a8S<_@=N(kYK?u+vUgkB!mxb*dMOReW1{aT9OK-><g@Zo*si|!Xy*GH<yczT z?Ji6H#6Vu;W-oYm1G{oHBjCxH(LK_<pnK{h0jp|Duz`H9(+Dpk<?us#j+olWfUNiZ zB<|;`yz8SOf4CnvRpni17vv^tx4SrNT_kmHw)v+h;VVV&y=niqZk*gpVe=0pm$Nf4 z@Eb5OATbOVI}R8|+z)Ur5_u*1Bl<5e|I?Dpmj&6MC%I#DFIQ*hZl2xnBUt|3@uJ;A ze15$han^z}zVKq#oZyf!jQtqdvzVG{A48fek1tjRN&0{Zuq-Zn8hh-et5QeY-=+1E z-lbPNdv|273(@Tiv6U|gp*C1(bNq?mO(v=!%eITN0B$;yk7MLNb4UmU4?LH;a(3-^ zd%IFlb^`u2!f#?%5%ly!+QQVma6lR!kQR*vG1X0ot63*0x_AN6<SQT|wiF_fQ4uql z1xj$?+7MjuK68m(*$1NJ&-YSmVdL&Rcya@Pf~3fIAaekop-h3ykOHM?Y4>mI-)G<> zj)$_{xX0Wz_r>)AxI2k&4@gMQ<Jl(Zu-1-biHGm~7B`Yu<3_$fKt0bANZE@Z&^!pK zb`q$qdQt>is;sRs@&xNWYAr4lM2(^B`}K=0{>sn`C(H!Ve0=9axJx{Vm4V-c6JX46 zUwdHRtL(L>X$7X685ORM&eG-lGvex(cfcv$LV@r!10PU$K=yvp(YPnVt)kjvt?+#R zBotNYIr~j~VGh>NsKwI4LvGPZkKLL1)ytv)_R2oPDE$O2kg+R0*hD8SQQR2pRE7z0 zLuTDpuBIp{iK0FTz(cvYL^RMdHwD8wo4lo)D6VFWwl^x4EO-fECQh;p*k%pvK?PXr z<m3~$<r!L*Gvf~ktCQf9{C^Cno{Mz6t$&2^NS6QZWd2VB%H;na2Gsu#^J&KSpZO$~ zc<%linfhWUA%#L}&gRaRXo^4P=*Gj{>U?-S%c;JKD%dDV1O^BOKug{F`?=bL4<I3# zVRHKx1X|ct)m2qh`ENjvje-4sC(qev%0?~5{;8cFTJVehIT~O@r@iv>_44U<Wc^bs zCfYH7_~T;G%ftEpaXyt4=EvmMQlh()Ubga(Gm~Ux(MwyJl`?Z>uGx^0f&T7N4C|X_ zma?55!TPwkc|AJ4SV^}uQQFG<PwsnJ&P<{6XVT<sb~hG*!+$)=^3^O6-N8?ffx|}w z=I@cD%q(taPOfIL_Hjr4NRFJT=EyWQYa#77QdlX={ApeCvKU>n<fE<~Bb%vkP(oWv zp$#jgnDIzJO(Mb03Y^;i_STLCIQ=X(VK`HWS2JIn%R25U$-G+Zm5-7IMQw^<9m(E} zts7lu3Te;?DP#pc&PG08SkXK?_uRivUp6zmnoMSRX98bd0gc`zyOU|CXqXx{5p7_z zw4DNBEYnpY6?o`)f8)e@KQ3)eAu>uiz2E_@_tn5i8qz`UE4^yTfrTL`0P-jUy0g?I zW8X^yee#>-7qk9S-K)Nt@6P?IHm$QfH#~5!FW36Wp{b`|8{iEBTwDEWlq|b5=yWFN z@Ug<BqGk>osa!<^%aSQ;twcZ#mIAMIdfNrS8}d6FcoWy)^63XfMcP}<RH;-g6Xgpz zSyxJtZn4wt1~i&O7t|G9keF(|WvbBAKT~LJHT6Yai<v@Em2aBH!Qt_HdAP{3%&4_~ zTp0+MFnl-kObL?d)G|l&Odc;Z(&}tAgRDnz&6;Ft22tQ>T7vnRokp6c(<nY*T)vBZ z@MO|;lkuJ<9m;>0GU)*ouQI_^`x=;KgL_vTNtD`j^^-uK>TIG*35M;JW;TeR+jpjd zyy64b>bt;c7)h+Z%rZKeAT33ufVA!f(EGjj+ErveNvwa^ORRK*Eu74tkH}Y7ArIt} zdN<X$>${OfMJ8lA<MzN_{QwI^S^fv2$`lX`5=2%eb;fp}m`93C6ljfj5()*S3gRW8 zu1#UB1L#e9P(TFbeaW1K{Q(&O2}I}*wCKVLUl;Z_uU*x{FLBgaSed?Q=^$#~2B?ay zt(^i1!E&LE&zA7{G1N_dj)la*>83Jk_r=43nQ_&k@7N*9=<Sl5)O2N`RkId2B$-j# z*Rv4<;>pTzv=q!tY30YrD%<PB$Ut{C=*R1qcMe7RC+Tg(vc#1DV?C7@1G?prhq<GY zUBF~wl(H-^@(uFp5!JE%zhK0Y%mm&(C$4!5&0Fo&I0C?<c~Fx48KswMr+42wE)MK? z!f@SIq0xn{gpOp*vQTHx^(7`G1T2-04D#5m`lG1zlIP$9y^5%5-)wBajt3n)++9Sa zg0hgpYgcC=&0SeP_~-mQ9uJ?X%eRP8%g!iT$C;)U6<%{Hr31p3!|@Ge{UMyr3+SBI zdlR>#X~)|gg^PtIx`v}gfnvqCzvw0ThIS&=Yl#vMTzCDqIRkyyS^xmXYf;@8nN6K) zVnCML*qWk1+^r27O1tk=ss7^f=(HaDCYlvo1`vzW#BK+v*xw&0sDuMiAigwi{wdF@ zh9rr%Z<O(zaW?6e1h5pa-GgO=ruLA6tbE?;fv#at9LEsLm_cU+=6&kpl{gOJo8=C9 z&w-I0<)MF`-G3%d8ps<G-U}r!0LG9_qPdzP2wi_8>H)c)Kl1lN+o2K*PIMI+8Soc4 zEnGzn=ec=@YV*_sE@y#=vd6_@X)iWwgO>+C2g8~iz}N6eJhiEk1xt>aJn_oe`FHT= zl?$p^jEHP%+Ckn5lr&$qLcJUt!BsB9{7x>XxMV7RZf4|UgD!I=Q+87{NAx@u?9c)Y zYETzKx-F54C<Oc}R4x?|29Mo=K#U>a>vB?o?zk@goK(hW%F7)9884ylhV$WrDN;e! zOD`346NGo6$AMa-#&C~Fa(Ix6K0m5i&hWDUFNcGdV_z-brjQ{^)vRgM77~I)xe?I1 zPNP5(s7Ux6qyR}V<CJ1|w9&TUhBeHW2|MmqhKDDL?&AOn(E%Viw|xk=xw)~bFsTp) z_{={8G^4Xq;I!f02|8vWE*ykdR2@P_{L&&iir3IUn4M(Il>=X8tTi!D+Yk3MDZlFv z&shNH4Hb^a=i~Qyh6?iq7mDFJE=+Ewm*VkX?X(|XVYkjvZHz#5dunYCL3W5_arQwk z$Vl{yDE`1w;pheUbP_YlYsy7zMQMtKQx2)h%Jfp1yuwt1gD6Pj#A>SPuI~0(#RlR) z`mtA(jDU!yoTm*or4RaF(ePYxRK;GHX2GAQm$(zaOCxgPVOAnLfv@rhL@N}#Ri*IA z2Sa7*gzr2R1EyXe=n;>44Wxl@+vsq5P^@YEUmYCWi(4nFr}t~SXlW>f!0s>M_O+m2 z^CpM<hiPSnmysCv9vQ(lO<-+pmSKay^8T$#yo@r<OqFv#AhFyHtXHPfe$LIg_SUbL zHVS&4Rg%7rvhkj-T7=pfn^oEdn)XOF*RIHg5IGFc0+nRpzubge#wNQ<!-RRV+HVQW z)AUlNO%96Vz`;|4cfS){B_8?9IEf1$*5P_0lca0!Jx^1gN@H%mECh*LDl@pj{;3Ge z>JkuUa8sHWVs25Ls~TjO!F10(F7{R(?)I|WddTc&_5pWOsJTiy^t98R#TQc%{zLs# z71&LE<k<1t4{CJ&wIQJ8e2xHcXSZN|w{3ZRo=8R^nLhH*G5JG}lFg{sX31oE^{=Yy zB4XF=!BE6x1z3ILao5i~D93=KPVl3SMaW%UNs2EoTq31qSUL+>C;=cfrP~S7cuV2f z@#ke7)H`v3^U}WDfG6z6&-eq(Q3@_T$fOHV{K<)@`7FO=N<??v3P|wlh)8InF2N^# z<d_rZj)itazdlq#R)*Sm_cSI!-(;3@cBcIzbdhp?L8)Dsz_Fu2a8weHmaQ3@h@@~3 zTPrHdg+W-?VBT4K^&Q=R9V4o9vlBp|DNqYpleK(r-0!w=c%vCwMGLHMK%$YZV+=#i z-P8Xh^wIAgK#oJ1_%Jg2KBRGITl$NS)ASo0sE>C?WN_iL95I?=$WAj3EBpe~hud%k zntV9o!p@`tZWW_)wR!4NJv+aG8U({UH10s+`T~B4lzB~JbnfS+1tE5TrBFIl2gxP# zQak0hC&xMUxJG+u*6d@>g_R08y(Q`dm6_QIP7<1uc{ECc=S6qAwr2EN8^Y<9%K92? zvG9vc$<8h{`B@AXrsZO-GB_@a=I)de=Mh3(85p*-F1h5&&0u`+l_*9Fa)Lbum3hRR z)zwgvx#|uUCZ!-Tq0_xNyX-wzgr*VN%<&Mm29+p-s{M5?IN@c{@lq%nL%z_xEsZT@ z&g!ylZ@M5oNR2j(yQBl$&sn5hI>OgZ^8u>@iq@(6%siWhcD{2J^zhs3WupZuc8x}Z zKSPzLsOMLo2y<!C?6AdOpqUd#MjH2+Y(H=&Pg$8u>;_j|bM2J!L#>e4`$TEY05upl z5$(<A$Rc6?{j54r_xqT<C<Ho+X(>a2Qpv%?muHKza<L`9Tf`C$h^;bp^aZ6CUlRQw z$;tUWo5<_?c?5P_^=sezo1omR*sFgb$eQ=tINZn4;Znx+M)T?aCWbfgX81<S`OH+2 z#({+>{+0wUB=jqJ29R!F|1a>f2>l($7n&WHYC>EOAS!WwB`Jr;<MExn0)9Oy=&l9K zV7`kQfvO;-2B&+hay53FS|DIek?&#Ey;2}3;_~QBqLn?mFX5^+sS%Kt(Dc<%tBVr5 z9GYaR55cwM{Z2^Noun4c_8U5BwaAalv`5qK^l|zygJ*)9EM02XO*|E$5;@w~5i7|< zLjH>ykP&*DcZ&fxUXsX;--klYH_+ST+$Rkx88`cMoJYhy(mSe#PTTe3My@PMEr#Kd zg}g)mRPxlgzaLF!9cOLBD1E<cW|OunD&^>vzT0+{SG%nRl&e(5!^ow8_{k53<r%s% zU{b9+8_RoW%Sm2{lA5_=Af{({;E+cEUZn0ediN~X#q$|(oZU8S8BzB$eQ1s~w_B#X zfH`S%W3N)>_JzT7g~AN1juFu^8w%l7>onJ3A_r5Im8t|wC?>9A<{D=+<*y)g239yE z1&(E%x!?iFH_>{js?;Rjg-22<oCTh+aD50eQrBISi<w+Dg^$N-`Byl#d?yut$0n?7 zg4p!AHwp2vzI;CH{!Kxlp@o-EJa2oBF<U!nL1q>W8mXts^iLs;zats@Cs++4T$#%4 zLE}y{I}37`%x;<J#tXf)&n>Pba>BAx&UPblvs}ULWg0|WxeE}{Ht8XWN!k`X#1FKh z>Q2Cp_^CG!T|FhY66-B2s%0d;xdX+Pi6KQSH{>uL9_PJ4J3o9T30O;4(|A0lV$to1 zs{&X3Q9ZpOpCD>-_E%C(iSiEjJNd0h5TGda>sC74bs_9WDl1Onk=p}Dpw4};1ei0H zO)gm@=CWF}b2;miGq_2VEvj)g*6#p@y@%`8IbJ$O54pKqe*0QjSdPR`MWc;nE%ND{ zLsU)~G)&L1zfY$?Jy7Xj5^Sm%hHFe29?W<hjD~uaO(;5v!G(dUz^w`>*Dk;zRBCu? z1%-Jlj^S%RiDhmwdugL2r|w71+^k+W*HOGsB_iX!u1-^c8bvNwzBIk5KMi(axg%e! zk?6Mh7DyC2X|<z{v%@Y@FdHa#J{dZm6!4%x&Xw_qxC%9zQ5DJx9Ti{l;aD90r>*G} zMR^{yg%2k{J<l;Y6BdZ4g~L|7;6RkZ)EaMDdn{_YNvyke>3J4_D%pg+m6PrQ1Q}*6 zEsZ(QOcD(H#Vgyg_Elg|dz-k(-GcoE4^LQh4URhLJ(^ec9vb(CTUN^phI$BSEAX!A z!%5Z(NHIic>cs$hXJqnyh|_{;12<Cl1sh*PXrr^3ywKGxOLPas_%t<8Gej40uq%9% z>%NTBZDt3%ghV#cKVf|g4t~l7>PE%u)P6u6O4gN!^C0m#58Br}VI#9JaKz<lK1LkL z&BdW%ljsCCUnb4%OCCrHya}SgIvICW=rcCpW2~j>P86F{G!W>20XX0m9_wRK9_JwY zrcuyARb4Y8om51eYaJliE*@_nOQg=`3d}?x{+P)5c-$CNO!ZREtSu`td{_bjoDS}& zF)e(|OD>N0<Pem(?UR&21kvIS=R!Jy8&xv4W)~yGz~b=<2rszYBO&ay(jlO|8VV=| zeSBnPrybAM_wTIM14{HPUv-!^s{(;5r^5P4P<l*CFXq52x&7!M++{Dfm(euB{$7+^ zgBp24>vS92pOvF^djm`{C#G=YRqXooaqJm9y${_}x@7vmvY;p74!}-fGACm-H0v1l z>%&-W3}Ce0mc?9TDHUhE9m5h)%I-%eWP?<B%CLt+o*%^C^$8F}_%Dr8YNb;JkbT9G z7`b@kEaElfir^(SOFL-AgasD1_5EN)n8mkBNPL%Mw@ymx*sw_f_O|!+=gOCIl;9)D z$7itSJS)j?{KMt_5V-hi@ruToIaF#K9Sp56AguX_(MS*J4s3I<oXh!T4%^r<&G#7! zAv*glL2aR>cCR$2K`0+HYn2TXmVSl<L#5_c-1g*?qy~00O>zu%tU}B+-t2sHKRfxC z<!S(@p{sT$v5`<ve5HeUMA&bsuaj{;iMqDMeVUx95?=Pv*`<@P7~KPJx4waJ^DNe8 z2`lg5woYzxfwk=~msF1&THtSYx1oMAG=<5~srhXb>~g}_ioX<50gfg>7#Rf5l&MyV z{=6MJt|F8+4^L?^V3hmtiD+M~#wUxHF)lriB7{!PR$2b1C6WezS#05H65VPg{){2g z@pZ4?{RCv?wm9MXdQTVfu*#zjwu?U4YZD!hx6yv@T(TDm2;qJrL-mUWAs15!_4NM^ z!p`J<9G<`UoJ-(aR|<q5gA1MS+q;X0LVE(A7#!>{<x|rvAUfhPWkOpE0)bRgJ}CEY z2VX!b2}CUgYP>0{<m~}a%6NpfeZ0M`Bp4z_#GsKA`M$hQwuejmow#F&B-<Pe-BN-S zkP~>{v%L<luC?D6PBSInGA2<sCvGKfkwna^_ps8P7%u50+sd0w_X7nE4YVfHMQDrc z$+lCXo@Yk}r9Vpu4f>aZIYI*X;&6EI{bRKL5jg@+TYwe|V~QR$CMm*70a3FZkYftt z26)0U<||Z~V};QJdi%4hQgB<!UL%nsBo2SXk1>c_-<RUz2K7{PIo`^U5%1~A8Z4NV z{?&JZ)!YFZ)?4fUs<du?p-`xV9<GCYbb*h{3N##HkP{URI$h|%fGPgZ6rro_B-NsN z;<=E8hB7?A+JIxj%fw520SlrtjBJC^_(dcKR*$^Pn*3JkvBuJ4S~<UbO6-K^-rZvl zBa4AcaUX9mzqYOvy1wi=C_Um4;S3$o@fdqL(I^p&JfQTbdF*63-<@X40$m^}_9UUM z8V@QF-t|YCBoeqDpzqemMk9ss)jc-BYkHZMrkI^GKy}1oDy7;EyZ|#?iiDn%(gLT@ zb@xM@oSo`hSKaQ=uYtCKr9O={c6@KWtZ>YVLbfXH!_#A9tA1e`3+?BTffM*35c^cY zKK7W8TQ^&znD~j>jqGl|ZV_*>f*4(!VyDl=$ALNSJ!t_Y8iip>=N;I9EjY8&Rk6f9 zcSd4j%~`DR?xo8Ne?KF_aefX1c!|Taf}uihf}>t2Y+4uaaj0uI&9F2-cPh3Q%EJ_M zXk0fNLFN{VN!qy(?u}s@4W}{u2UE!Bg45{A#xI#Vxdl?*sw9=!piXb|CV4Vw5^S)w z_bB%p38v=6>NfJU^XgW77P1mM*9-DCkrRk={sVLQ!hrEw;kPSwRWTggbrgmGnec<w z&ZiVRK)C1uL?EYa-o;l~ii$FA(ZNf@QMqPcElEIbWVx?KiBlYuA(llB&jr!fiwz1M zq0>p{2sWZ^39UN+xqzynf9nGAtnTQU!+MWXn&;RaD|UR3t71!OSKCHzi}39LRi-_u z%}y8L1YFM&u@o*2wveFc<?;kybLwZ=E|X}DQ<4o2vQS9!IFHxj$~Cf|3@YI;DQ=XD zHA#+a7b*m>x96Xdo8_2s3@rtDBzlicT{#E3nik0{*&qg&Kh=9|9n@w3s|XvpFuf=V zNpz_Zpju?wGx-z4h4>1<8^)r#A{hZ!(5Z3s>xR3ea&&rE<g9?dBV|my+=Kw4<u5mK z$}V?yN-DB{V0#!vPv5X0JlLu{ksq2Q_QcR)xq7FpE)L^i5bIfdZVEemT8%hb;vCc5 z65t|EvN*<8TqNqK1MLk68Wxtu)#0HRcDCFzOS{?K;3y(|$pK(OmvC!0!@DF?e+-vK zK0;QOZ13ePyj;fTWsWWqWxPE*RvqdYlLy!+4Eo&@)K#Y8fVp{J$SOs(Flp?_dVpOQ zTY6uxloSZ6v^9Ys#SZE;`up&nwN1@vhjCA9Hj{HFU0zmeDI`L==<HzET~5-c-M7^5 z@aK133w+SfoO>W@6?GVrj?KGcIZ7-P;bSTlauldqVo&NBE#P$_$kr3&MLSfF=J{JT zO(4|gK__EFHn*A~J;y>=U6fAozC6>~{p{a=_X8$##OT9}5utI)TEry+?s<?+j$Dc( zZQ<^Ci;!n?NNV$Jp?vqJOGx(v3EnaKp%XwUYZ^30z)ugjn5>rtY=0X5X?6`@62a{4 z!!@6TSM_l4Wpbz)pix&u#Mw)#i>(9+<+AHV(cm=qPHZH)w}))Acpt&enA6)-6?_GA znjQu%k8A`73JLt8O(|T47eCjKoI?8qz5%1did^1@0kA4?1nndykHb|5Y*S8!H#l0A zeTe)QD6|m}Adqb<P*{5(7S-{<Kg%7#<}$(>fgDVgIRR*G4aAYUwrkxC6e>#%{lt%4 zglTmm5|yH*!l#*T?$-FG#Endk__8MU<(jzae!3q@Q*HBY+}TJV5_nyO&)trJD&BJ$ zf?iOu1jcsiaWiZT4D#w?X`U5*0pVG>4Nx~@E&0op;$z1lwry2*=U|Ds$<lN_yc{uS z+aYW54h$y}2lHxWL5IN&PwyUqyD8QQXK@&j4}p1jW48?b7YZLzA4U57GfP7`?E<J- zlqa=(rZPXOTY2Hij3(3t{miD>#1#0H6wN{t%{9l>LDku@$k$SW0E))~x^6gB(%cx9 zQu-1jA-5+GteoE$nl&Y*7#TSeUJxz9w##gsxsB0H&QW6~c4MIlY2-6IK7bKc<8wS_ zy`h^w?I616OKp9Cwu3vqz`6_S3vt58{s`%t(i#E?XsH#Olo5?n>-x`lq|)w<W#2%% z&lup<Vj~=HCDs`+Zf$8P#g^O?<Q~aTA0<9}@q6gAM5G=}2O+&l5iDn55MXwAaU`;| zOx(55A^<_rpuQj=U1)Lui>X5$5ulWL^pQ(TV-pG)pI99{zBNpXx|@Mz8qQgNzJcZh zt))3M*A>tR-V?2(=gPlEB!x;PaMt?^w9?>FuE2PHZcHckn=upaZK?V;hI_ZdV`-^B z&94Nb_4Ya`>ceGlXrOZvZL!eqj<a+RuG*2Ynq1v;{(is((sm|<(w_rz7nzA^N2y}G z!^<AjJV*31jqPaI*0F>@9<j3C8d%o(nh#eoxmTrqogh2vMTJ3?Sm>!w=^p1w=r=^f ziKddbFqC_v5cLcdap$Jo%eXb1XI&=^>-JCcG5U9cZXRZMB`|FrSJKE3%=Yj(xq3Rp zX+&lV0J#f{TJ_dNM2xg%9!BhA**zuza}m+|e*<>!b4sj$uLhl}0VN_>y59*4P)r+d z4cw&gb=a0;XuD~;r8~o%KfoOsyRGe4)Jp17PnIkG*b$$o)bgTK&6nIYF>x^)ORR<n ztF>ra@)#$h3(f%-%AJCOI=yq07dGlTQ8ve6A>GKO+ei+aXOlOU#ZC)9UGbe3akzkb zEnw6_=N>gPZgUhucCSTA1uEZ>N~<tG0fo4AS_FBECW^+7p8!HtMA!6Eurl|e`H~74 z{;B~(VdLXUKF-&)Em_$kT%N)4bek=`qsga<Yh`FbeoQ2(9?eSCEq23K^w?7!ukrQ0 zrz=otz6P3{8~EHta*geyh7u(_>q?$_(K{JLyOa{cZ7VDmfNi>z{@%!ZNPB(+!uVUn z4$fIfHndCn;iVvzv?Hfs4fGAA9Z+ri!8t8TFK~sJkjF+OT8lV)oYKjcgNqS?sc4Oi ztr}{9d2KVI()Rtzv?FJZhnT6CUa*`BKNntf?{Dk}BGB≦le$BTElJy|zO7dIzI| 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�aCI2kNkY;JL-U-=qj51$m$M0Lp>=f@c{}W5kW=%Y25uA zB&|ZQigJhkN(F+wu_N>zcPjijf7H*m;_SY6HylkLSK50fV=hrDqg38;rxpOXEu+@f z&&{=|efCDPQ;WP+4e66OKx}Df*VJsmB{kQp)I(#7A(6eor2)b*D{#!gX@wLIN}!DD z<e0h#qGxC}inRfJNKoe4xdP;i+5IRSHC#4t1@lBgUryhfCeYULPeU>&DQtzgm$60H z?Ic_Q+C1k?vuFz?z==x~d<ZSJ3Cpu#NP=@LP!YVwQdzw|5|<08MOh_)Q76F8qRXgA zJhw#56H)dq^9bD{*M!1kRGXc+Oiad@VJ-F<U|;68-R3rLGIZi|yHl;iRq<DT9m>`h zNvnHS@ST!!(hqdlw_OkMHQWRS*aTcKJVTHucpkkF8Ag}Y3}}I^$8|&hG}Z#56iv17 zwu!IPI2UBqZx93c*vbGv?||@IdBOn1R03vaHgBOV(W$U|S+}(2>ujX_igH!7gP(SB zyCU2qs?w=)np2ph+j@!lZkviFZ|)l7>mpH~I;w3o`?EW*^d4R^mSpz(zKzgKgG5Y1 zHni4a3v(brRlAd394t_QWWWVBhTT0<x6ettka_DQ!x+8~I)UCV{p<bXWM?urS;K-z zlE<miFzOk~rAD=)gZ0a65gL_qog4YI@-psnM%9H76PZXrClvPS32GF9xCzapghBU; zlzs42c{9a!787?Lb0DRs=!DM3=h&#Kjg{~t%V`5b$9{wNEHU2hYF3emkgEnZMis<J zqP~qp-kF2fQeeGiP+SgoaRI=id3WR!J5?jzxWIS~%}Hs=3f&QY25YNn3Cmw)0_RkS zES0WCxAmNL<`*~rBU-=JTf%|SXNga;Uzfdd*E$IcHxJ^r1L-WjdxUHgow#cm2W5P? z2Vgx6O86+V0)9OA{Mm_RceBX?p<8N_3GV}mXELeZb4g$>IEf%>Rg0YlOmBZ@B5h`~ zvUaM-Q~(vShXQ%V%3S<n&Ea_ACn^EwgkAF-wt6pEU@_`K&n-Bwk=Qo_@3FUZom!7g z1rd){PbtN*_uE_ho@d~_MmVFd<vzilx|saiM-&OckWRy&InLn=Q~g2NO0gAE2yT#Y z@Ni;-XUHT+DN^$!(^j3Nx4Pxs*FP-=w@S*HE@RwN1=y2HfIXI_6N6aEthu_yx?;Eq z5OfnAiFDabBO&ayO5~Us#I3=uwDF9BZvhh%01~PZ^~Qv}Wvxc+k{lan*uV{^@`p>$ z9QZApwiPgqm!3TiU4&`*N!+A}#ULZ&rV<3I3QNu(6>Uum`{dR0a5~4F@c0+lJYGM4 zufCTxwMPpO5c>}OSpl{K#>22P-hATMI%v^e(e|7l4Y*k(IZJov(9;7i3x{N+u}7{Z zEkY4A7!QQPQTih(=kmH89=g3EL?EyTInLb9F}+Fp!9)K`mWYRYo#q*Hej*zh-GTUy z3DT1&ui(^Q{yOTA`aHN%p7n&P=p^u=;u`xWJ8O958oy47qp9eOo=F0Me1TK~aK!0m zvr15TzKU)QrH-Ci8AlveG9o!9rLAY;uC1D&eJ7u7jhZ9};VHBnknV&qUucZnSUOy5 z7B{3h+uML!DG;m58*WZxV~Vtip>+>;gI2W->DNVZ$B%u|eS{aj@#@hvc$?<6U$2ba za#&iJUKVgZq9Ct@I=Ib7-Sg44^EU4RHnXY`j^zkvrUVJ^$ay*jONlb0>MGi9HTZda z>p{RNjas3MPv6P{#PG>rLO}~GU4E!nJ=@oW^m&y=Xc<laQiOx|Ot%Av5dj`(vaK+? z^#^Jv#Mk*F?a0MO(a2Y5C*gbN%@1n8G}~97^vwupQ9cjw=*;EE`|$+}XN58;cozl8 zH|)&Zdmhn*^zb;yOd!}wUT7tXR@X1r>e@~<0)?4{`(h7^a_dY{o7jOrqYm@pTLE*= zRP_`&nd6nvIKDBtv?<H4^z`>Ry$8zPvu2psIoc(Nv?*}}Ia#JuF4!4ip~5YF+?EV( zPNZL5{HMN<8;tv>{dvlIUIvh%@UQQ$UwI<Hc|)d#Zg|Vt0EX@LPp98u?IJFmdvk(M z%Rce=d=ea?zG}9Ee6SMQ9Kt%=<bIX|QDjU?-YGLvHsN0kb}GP9Wi3S7D(%)PpjHMy z<Mv7uI8B=qbnE;i8g15q?-c=nti!5?OX<g+V>b+TM;hP6$tOC}&+kmCG<T-+_H5`h zT<&HU?^1f22$R`~S)UoH-__H{PVaE>XFsO~&V2!9&QT}#9SFYM$!0$-ypnxegP2}- zm;5JTDMVn-r2%F`N_0qLf<4WihqIGN7(VSO*;A$lY|)<(ao{g>VWi&vv9u7DSj;d6 zx5QjIcm_d6*Rd9Ft!Mpxg3n69^dTn9(RVJOGhI(2i8B{!@zxNK*r$Gmgsiy|7ms&< zzP1-jVlmKD?>>=<m<S-N(i-CU6DPbmYYAq}<E#uJyJ3(SS@R%PAlX>tl8etJpz#-t zY$5OYe2)S*ii+4sRLYLVj|WkPYaS(a7v~hBul9U6bPM)YEi+!No)OhK!&)5s_txZ5 zY}L@oIO?@o3Zw#<*gcd^<v#afTwbM!SP%=K(l`3;!DrxUzQJca(xjQs5}|bae)*91 z`(jkzH<(`1U>)98vEz>ie*b7283#i|HX#52hRFWC_y5nSS>OMiuFS~Xz{2*gRPb-| zz`y#kqa+2pb%wt|+7C+Ex#eFKsQ|@|$mbK!^FCm~RO}q$y{nV1X$2`ayc>*=&V~gu zkqF^G-5r}>-feP4aUNX)1_{c9)L8XpBDPeN;y^WOY5>?8i#QUGg~rKcgG`bovTS9r z;cV8Kw7;0aL`rJQoT4bQgaN#+(tx(hs8((vnCSt9`3_(icAt(xmm-d=^a}vU$62k2 z*3<ujn6>n?g33~gEv|N3l&$E|MwaC;E_w=6WO-mef^D?F=<LIJ>#qg9e!n$RlcY8= zRL7akFDDhX2?-@2a5l+%Msy;XbNCA?Q3KkhpVQXBgdZ3~eN0p9Uk)^Ke~6PVkb?U9 zpVN^~y>5~@xqEsA^*w%lPsz}SaBs>|UsHBoCpwR~N0V5vwvpMSH>3@*eG<cv+xx(R zBL@A-L-2xyo|#bh#IeDY6e9gpl&XvJS^aW2Fh5Mg-e9J7TTo2DnQB``{ATdEfjJA? zo@eYTMD~=!KV|2{32r#6%8_utmL;>%TWLVy83GXQHN$8t0P61gz*9y46)l&&uK0cQ zsNy_KK6|G&^-B2UOlq@Vca$j~hI0xT5>JXkOJ)1Ux!bITdR<wk^J}q>wLPktD^DmT zDu@l1@8iz*6$I$@8t2>TyN_m~cr<;?GJnF-puTF;)K%R(_#Jd=dj|ezUe|m_*3=DU z({9@)*n9N0JJH(G3@k%j*XvVH-<f-W?#P3y#MhnMz0#G@a%Di^kPHfW*9wq0)qIRf zU$U;GuxOz$eE<9VpTZbS3+;{Y-y_p7*ne050sl+&Z)a`&e<)D@)zM@L+sbK!?cU1| zwBRB{k+@=++UD}kWnI^{+Q~;}!46MGFg$KBjYv7JvAF&FrlkWw+#ke*Lv}sO%vgb> zmj06N8PIn<daz*imgNSP1isM6O`|B18_l9+#Fp<ZxGp*@BG`><CxT?}k>uiW`c7iH zp>tzz&v5IE*$gYFX9d`Mz6<Aht!!qP*-Bi~`kjUi81tY9)u7;}-VDYR<X7qtN2&px z@o=-E_6VZcih-g%T1mVw*zBqxiUl5k1jM;){IGseu)`Yc?=|#GM^|4Eg)S{-lUmw( z)@{SwI&WOFAes2XJGSt)%j}(}HJhi*?7Fk;;c5&<hV6)7S75!;@VpDW*g5@X5$tG0 zQ*U%;hTmwy5t}w`lP@&dH0~*P6b#z0zto}L?hT|Lr`HfsEbU*JrS}m=^$mtOv2;!V zWGJlkL9aI>l7jdFlzoYJfdG!J#_qOXWnn`DfOq*OOzQlbZ~-3LMqjkxqEM0arL&3y z_t5+rzkOVXUR>DjmIc@Z#JEPu<i!^)#^ZFVq|PG3t>~W0jW0z<D=KRmZIYqJnA7^J zL>8Q}w<6v9oqXYgVh{p0{tityaz>UWj(&w3jYo2iO|AU!L@13c3Uf!le!`@4t^tBM z^&mxXC@v0IM=z1SCr#znu^&o^Qggr})0Y|^T~myJ-JP7hw2xvGjm692gdq@X=4&;X z$vLZ|g<dq%$Lzxb$@Y&DN(g6*Fs>=`GHc7yN45oy9T8xS5@wX+ccS;l!f@>sCz*jx zXEHe`<TSyGu_6R8pEsMiEA0bbIO!FjM8WPsI|eW8YgUY|s8>W0rRx*n(Z*o?4Q{-I zyS+-PeBc0y3!Lop4CIH!*;u<OlU0-c901ps@<?UqCH&!)yeY?*ZT!Z&S80Pe*Eu=- z>$Pgv@h76tJLHp7qC6VfBBrns#r`76_Lkk<H}HIdSICmemBtjzLD?bjJJ?PSiO;`q zhA!wARzgRFC?Ji&E$ym9yu*e$JGUM*0R){N3gQp%^nK-{oLh39O#xq17_?{55T`7W zJ?vItnKw?f-A|;Wp`H}xwOqn$1hrw8aY}tO`(A|E2m-h)Jb`x3^y(03YnKbf!wL)6 ztZr>~z2DFKz>DhOfnpO0xCw;SD;G3R>uFT$MY#me^W&c!K5_SUAg)$`b-d$mlGq4P zy9a;FG?0W6Q4bs5fvdqf;;cs)yZE|X&SBxgT&wWCUPI_^{Fi+Do6#X*R&-dq{9c}z zdbAOcf(7?XVfY>zH?G05PubDU(+cChzuYjpjm~E-sA<<lD9_TEC0931-q;~cPL3-2 zXGI=OiBAgRZWsd(0_(5`jDAR{74GIjvJ?IH;lz}pM$H9WtzZrkP@V1y9D9ohZ!_;K zM(-yOpfv7a1~Hno8ic^EB*oE^Iu`|I;d}^o=NBC8N}Bd$dHL46R30YtR`b67@e;KL zC*nCv6H^x)(BOcHUq=cv?O?`7tU}SbPR+2)RnCMH&E5gx=y|`v5@8Oa%w)SqH1D3p z7pxHlA8Blv9zk$!7)FsXcB~mA1!nTx-jrFA`!1$^!__W2r%Fj{V>R9-jXF}}G9aSP zPx6)Zdfcqb*}Z`Uc!T$n!47EU4O+!6L8@mFp*KN(0U+vU>HsZ+r)~U&?F7t_IKBiW zaC(#c;IwbTz|Okzl1RKHJh%_2S-mT0`7Jn571#-lyPqUo)7kfYAlRZ5CalMpv=y@5 z@vM`3WF@fm^b9k<#rMd)2$Oh!b9`Wh{nZ_C4P+s21;xX|{V3E>!hr0@0&pv_{|@X_ zJ(H-e?^abRiGu7e=r~WQChDD%^r{?@NIUx3^O|p>?w)D4^tP)--KegL^9Bc+q%@;C z;jhI8!&+3kRMcQsT@tKS0W~kd&rKg8W;r{r8{U=F;dyv97yYc~`_|WK=P!542ij58 z<}n)gNf1kCOvMBlt27?f4M#~bK^?ZxtHA<Dx&xZvPfzh6oz_RmqLd9H)SUvx_1z|) zPk>cQQYgPky(uHq3vpbeGeELq_#8FX-iYdxEo|0Fg8`rL<<t!J)<g#|NDV`Ole!{B z5KRT+lEA8{XL*KCZa|JB06xhSKHg(W!Mv{DWnIN)8fPD-#|aqjuZKyDqNZ6PilG>D zROq7QS-_rrWo1J%+eK%A%yB2(=iuB!Bb3O=zZhOp0FI^m$<viN_X-3mom3hF(TPt` zFk8&uKh%z(Rw<MUUiGAyE<>0TW$Zcrqe#wLZB=ELD`OzVDgL&DdQ|E%4ry%#Dw+?} zP$0+`v&5QaIYT+7IV>@Klq;BmtctiE!*1x~#h*houL8|_$uk!%kNxE7FYyHuau&z3 z_1OumTViBKR9qQbvSzVmKI#M7N~6ED>Zzz2aq}thvDf5~4&tHCy^Ka7jkI$v-w859 z;q5QX2b79=@_`out^FGulRi^o$(^R;MdPW55npr;7**65Etnh*!cmfzq1H`s=1O_2 zWMBCyPE-%CN?=u@qOng5tsjRMg-lq*<!!?mPG|Y=Rjo@QUeFk7bZa`{e!xjcp4-}U zz<iUF00B81g5IW0{3hGvzJ;t9F;P{9iw<jm;^Fvewm<sFNO6v>a(W9snd}k++}+1D zgP}n_^R{-ZNldL(WluZ~?NS-pD8WozMYpDLXw6@&%n`Pf7RPitPGk~W=58j0Qx;Ti zeKMZ#^0-Njccs+u$x9?=V7gadC1DMrnkRbP;wJ%jl4m^L@J%kfFqWEbE3A33%%mW9 z>PmttmO3gMzV`YSyf#o8<xT?-&dd!<4w<Ip5T1)8=9a>q-oy<0kxEeh;|0!5`^$|E zKO#0*!ydFsb$+SGan8nD8_~OFwVjYrYq@<TtrP@Yyk3ACtE(CbNLtC2X4ZAbk<^yB zBlAWqp}D#el!)r8cG2n?y2P?Igtr}~rmh|w#hW+KyPuBI9q;z0Pghm$Dt*jP+0vu) z^s99gr%J?dfGB#qa;T~0+<+(8W@<qU)`AS=@Jw)uvD^gQSq+&pQp**g&)^ASO1UQA za}wZ=M|uRc-Ea$8Ta_Gat+kwYHbmQK2|b#l?wRbtVFyV;Q>&bv$E$<_W~J>0ybj$3 zb14kwpCR;SOF4E-^8q_=LMy-nisibT$xQuWxZ{vfHwf>F$ggl6Ib={@e)D(t5aDXQ zGJwDK#ATq6=6|g4Tr!3mWFm%CGLx;_R>@Aw=<OElgHBw5?0p$HwdV+Pl(?bwbK<aR za%JRhOl{$V7+g@rcd<)BdDLhCv^$hK8$zydvY4WR;{J>>TF>h)9)R#W9Ca;UE3cF- zvpM?yF*7<@Ih?+MhsamO#k!JOa?wI}1B+GtWu)H%N}C>pl-X_uO;_-OP^}ON_gi1O z`+%7%cXjd5A$NV9tAbF&Dkzx$q};zN?hE1A3g^N&ol@^?`StpHek8mU1`a^EX<noq zA=4&)A-*S(V+e=Ml=bPb!#VtEv&&#VC9o2|U#Bx*Rcd7}RT;HpwS}q-AD{r}*p<MR zTpJLxtCtTL@cx`Z=Z-Fzp!9VG*gu<$KWuPtj9Zs73~ym;(Bfkp77}}Pd5#)<wv*ay z!2NbSI#z=Nx*_9y6zBFLB*<%oUK=-5w?!3W3K`~4Yad4PPOV=k$4xiIPvsQJ$k#m9 zq3aH-DZpZByf~0=$7YJuky;ek&<hpVHPKGvaU5Rhw*6L$Rt<;u6^s-?4LFq6*{W1l z?O}SY>_OQMu)p$3lH1?yEUpjg8MMiu{tb`vk(KAl*+(#Eusr}#)FyR)lS0pmR5BE! z%SR|`JNNM;01mr*tpcRS(pDwkC#V39q-WJFq%x@cc9&9jH$eV9G^@-AoF_s|YME1C z0d7adi&b5zf<&y1&G?sd0a}2XnGW@xN-cysCdVhvaDB%`gAeM^Twf;cYy(%zjXtx! z9cPVddL6esXywJ7IUNW_gE7I}H|$%C*<vf3<vuQJRkY_e4r{pqjt66mC5D)8R3X-I zJbGcV9h~V!_irFADJ@eEiuxQ`EmNMGxuW#qv^^s5r8?9~P1cP(Kt<w|kxbwP`xoal z2<O~2fasyq=ZP$#e#B{HJ;jcMf>k_wlYEd3lK!XB-zzKGz=3@h{-^-3FK0@ZvnuTN z^oiWUk&u{#%F)J^{9G=7Z&O+-5_{D~tkxp3MLd=O<xi&~q`18h-DVGQy$hna_aV~h z7S(|PywKVSVKj9x3i9mQJ>E{}<4ktyg5M4pme4kkHEATr3f^my$yg;WN`Vd%5<joQ z5uFDw%%^N{y<7rN0eUi*A0+8OwulHYcpJ87!OVif%s#-7xeQfk!HMWh2t)kA`w5a+ zRdXjH{x~E1(&zy}ntj&p;zLkQSw@I@$O(`D3*C;VLn3!7>kPEG-QJ!$cdTI7e9FXl zF9v}aNg_F8ML-~drPmv^r^(u0;TZq><1<2fls=@jO!-OYHF%7e<W%mQN)lRn2ESn@ z#Mbqax!9^Ia{||gl@Dgk7>aLqBKwkNdGUfcrWIot5C=9sm=RHne10QqeF(nmKyk+e z=zzaQ?J)<;piqBP;wodyQL_?rev=-?zC&b&6jkK^NwjR1uaux_!j`Mj;g-D%L$Qr% z1DYAW&gbLt@?MW|@IDs_o7~L@PxFM>8SOKZyl&;~U}h_71fvr@HngTAD|L+@>D(}0 zVOa9C5E*o9cReZbKFblRYnul#uT<hU<$s~dbvk@xl!bR~-D$$Sh#S`^WY$h+M5{&# z^jZ^m=nCd)AXXPVk=ja$NFAT=dMdWop-GjnvZ$WlWcpyG;%|%1sA|A}8ZeiNrC|Qu zq!`~*KT5|s&fgn1*tuFV^E+ULYCbw_-$c7+BSXV=y;OiR{cl!DVKl{HymK!ipX2wc zd{;IWoq%#Ef?QGsylvBCdyaBVv@&@|?V4&1cjamyT*?<)D42r4Z4S}{An<T?vdfSK zop#va`{Eq^rHY2R<Sx(iU*StY6d$sY7Abyt$a==SDy|}YeJuru+~6S?dC7KbSdkL= zd$*#@c5Phe2#i&ecY<Wn;N*F9Wa<0Wt>!%S2<-3B3I`QLndIrkJ-V#23$^a^)KF{m zpX-46N<YFm@Q+_u62%fGS|bG@rEV2*RbmF%h=MmgYszKA6%}F8N+ZEc>JKD{tt<;d z+8Sb@84RbeG%qGfohIz)w>$qQECWHH!J+~W0D!{x-)RDV|2vw1sf+DDxzPWWB5?KB ztlVHj`)gL}M}d+U;jFk0C)&*GGty!;s<Sk#n%2P!#LXk|m=c9oi?2PEJnX#SBqWHZ zCtMLg9~uOaG><wRxY?qd^$h+IFV8}?<fg@xfxl~~LK+f5j2$Z#i-i~y(KMmK>#9F+ zWbq9+h>$>yRqYfPL*8dZd~GNsl@QKf#gFJD$%V>bzRwbF)1MoN3<dfNo7*cn;(;I_ zRZ`K2Lv-XJCw3GuY}#`yFaCTZ7pO-cjBh|vi4V+sQEC*UH&Cp=$7Xu=5@}FJ9zK8! zkFstA$3xOYI3#JT3!wm%Qx!E%k=7K^99b>vkXN7@-P%I_1BbaF>EYl<v!f%fV1jwC zYT_CO)`WrNCg4@gR-h<stI@v#K8vcZvI3i6nq2UTniQlzLVktfP6`y;51znsU0dG? zn)lFK20OvDM-Omfgo}ERk=G|_qka+1lWZ&{HDr;33$bO(JgwLdEx3S7i?m!h1X&RW z3y9DJ8}kk}NDPb=Z^vA+x`qaVsPmvmHE1o!WZ9h!(7M-4$fL-d1OG8dvg3gOa0CD& z<V%1O2v-<O2Dw3%pq9Q5fOT9+$6U{TZmldUK3!Dwf`wv~qcJ+?-QaGw#QfDlU+kCp zg%*9_;7=cM+0$((kC0-w6d<m0o&+nYu^?T4T(|<oV@EqD*!>pTxyCT&tdZ=GMqB_8 z>?8_3+g#05zf&8iJYRHMj^Z^oPS!(doWIYdq=2OpZJvL09yUwE5ATvK(5WGSOq5O} zFQZP0tWYnm8L(5x&45|D+^KJYd{BdP62A&*u(+Rma#JT=wQ=jsN|<Y16rCZD&Erm} zQQLJCIie)PZDErZr%<TT|K5;<A{dX_0E%)sRAxg2mg91bH@WZkxtF@3mzW^rO(&MK zTrE1n?f%N{Nf0n<W@8}2V_vaZpFjo3?+CiP^@W@KjA87|>-=$Qlk(K8$kJz1M8<_r z#;KyGDOn)J=)11URX6Y=-NhDF{kX2z?4hq?u}<?^W18}Ki@d@VG>PpyS<YbtU@leK z1WG@*`#v^>ukH<_6vym}q@++$EtQODT*+wo=(ggMQ!TGo33U)l=1G8$1rMkKi5d~M z1fD|CBgi=}lYc0a%b7xfI#aJ&P4UJ<Z+;A6i;iMnKKHT2wfwMA%nL;n{wL&UYMgaU zGpyO|6tgUbK`oQ!V$-qfxL9@CvF~T#UD0Yv%@&<%81@(~EYMpF?a=P_4JZ5{kel$K z&UWJ1zySTm);gcBXFhO8uId|O^s5B=@&S{-R=a;ap8&f(=`s(@h$Nh~909aZQMQ@% zasZhOQVtLjPCmc~slDQ|(XsF?Qo=Tcr1L9^D%L)*jsVUL530XGbub>OXFW8+EBYO< z&|n}THo>~Aa|8W{qOQ06x*K%JF9!mfNEt8UFghkN$pmHMvw&Rwk$YgP?Rwh<>D1t) z>MT*HY+RBYCw<0r+1|Xt&V4%1#hrWK=yUa6pisg?Q+OPLX#4x(C4yQM4#o=tN;fBE zBP`l-Ks($Y%pK0vxeoDH3zE=lr3U2dq}N@*8xsgZREua;@F<HoENhJU7Q{*`zFHUB zKnTVX(B@JUXT_OL)OwQOpD5T@u7LL{{m7?;$#wr@5ykd!08@?j3TnF<C2Da$Hk_N% zC-Eqz&A40fx!Xiwomj62<a-(f6x@WjeVB|3X7g?ynTB6ND+P0?_nlWbVCJ|1#8(hs zil)y-+%p>El-*fti|(EQgH~#WMw;vy)n=vre{58M1Db-=xQ~CUG|BWiv)B4VOjb(l zG2`g`lw)SUGW7={nvNc{VJo>>BVu@QYHPP2t~3V+fAS2rG<xT|WAAq`dPg2v$XOA{ z9AdaXPSX^=H;K!|SmNhWUzn;dhXfGs9=$=M5N|}*RMQNcER&G1cK}!$<=-Rsj$DJo zNQQ3kZ$sEO+e}Rm9hd}VkQ*@Uu<F81nx4#|WdfEh<ycjIV6Ckvz0T0;MFQ}fCTH_= z17|1LU=BNf)my&=`meO;=~zn=cz;ymCOeOOYlzvL6pJp%wIpv2;-+l`6{X<cVY#2H z{&8j6^x1mT_jrU5beScFVAV<0caZGgFX@?#m&coEX>bb)$2d%P^VnR*I#k!5yn8f^ zxo{i6L^jrRO_wciYfC%8wC9G!Y^DUK`LIf*&MVa-{lHcnzunyTQ^&UgwJBI3W}C~j zy;d-U%E37e?PR~Xg!quKl}!vzs1ZVvzN4GM>`1W(w+6}9+p<E#DAcmQsvl``7F0z} z=xkkG32OR+N%f-lLopAm)_Ia4@j(U?Q(xZf`E>zDA_ffiIM+KN`uJ1EMSo5poKT+R zJyM^ql%n4Y3o?86+(66a>R%(#MRt#?5i<~fZ;uiR4CrFv?9Eu4>!F?rEc<be5Zq99 zf3Rut8d`3Ef(sF^yJGcs>Im)&?CM4aRSohevyI-lBQncXxAEjg=~?FN^D{ntsMywp ziO+^yVyu^Di6T9q%AjUS;fQXQ7tj-FX`4+|jl!J;RSTw?1Iive!L5JN(7_paA2g0- ze635N>Xo);=7UwgaEw@t`Sfy*<epA-+qjGD1|CN>g}NLr?pN@Oobh3mRwZw5%X7E> zW28PY7rfH~EZ%WTn)w|aSx69Qdq3a$%Zy3WFYerylsu}HXTh+lxnuR4Rn37}^&l9Y z;ms6M9_f}^3&itU(BH<j8|j8jLsJgp!IL;<Y3u+ZQJ|`7pKR-PWeKMtL1p6*&mwa% zq>@R$8V}yJ5;v?r3b#ZBb~{;*vq|^19MTSs3gWsXUf1HMzr~rxoo)_sXZ7QnXuWs> z6~2DmzgFoC!#)!>3z834%4#q_ip_nsc4M@lZ2PeBi=upulH`Z@x6*H5SI7BgRxC$B zKRP)z!I+@kEN>a<IT^?@|GDvS`T~x?h28|6YnnG(6<{YEyV88)_`_lAR5_oAoKgNM zp!W96Dsht;H!j_Hw46Q<aBA1x+pC4{5Yi-53FjmDj15<FR%bMkNNzNM!Y<6lhNI9t zp)s?HuewMbV<6OulSyVw(uKFeeqj}}dahE5p*yq2_Ojl)r<do2R5SA4f+2=<SFI~m z6%i%jQNsUe@Y`&El6{U3u$m|K=L`KGUTDeBhzA!W0Kn0I>xKIK@AQ2Zw#Fvz{~_1= zFDo=!dB<*n0l{}i&q25x%us3>P)>@P5Tk~`#%p)3jy{rWWcpHS1LCg7$+ex%IZ!rY z|M2>QcZa^i`{C&$bt9LrIzNAzMsB<mG(<B8AgO3<_kNn{QGhenJ~CjpWF^>yk&}4R z`~v`QiU^to0|u7JWY)bBeGRM1vD^K!szf_94iFZXj;Ws(^{hvv7*wfPtWg8$&~6J6 zg#HDnVg&Ciu12t#CUWkF{<L+)Dy~AGrOD@&@7GMEuU=rGyl+%>Nff{C#s}~|p%SN& ze1hw<I7`15BTnC9mrrz3g=*&!qP$#2q;t`IJ>q(|^gRG7r?3kEWu(LU`1l_}#w6V! z)kvBqM!~h)c?aDK+9$k)Ug@l=)9LV1XR}=Q#tgYdIPFxwww#wuKV@FpDV!oiLT(Yn zAhBGTnNgX^`@hQKgYbpu){M6#XDlEs<h)fd!TK~oD^{7nY6~pLg|fNH0@P2hC9Eem zu;Z*p%Q94A1^^mV_*N_IV&Dwf1kCLDM`-U0S|e!jMaEi6-n}jIuW|0Wnh<M$qemiJ z%sD`J)Xzc4$nuBCNND~b+6JL%Qh!5^?!<of6TlYApaztmKh2fs!;HKkt6;oaME042 zK&#zVv!%{16U}{31R*k(P0dsRB}9<z4%Tiy2&&mP1(-%KjC^KoQ54xK9+v9tHY>L8 zWNNaV`}K>?f-%~&zJaC|lu*?b&NiE*n9i_v$pm+Bz5?2NUqHvH_`JUDfjepp8}ZS) zDGfsqX?GNNei6qWlOu0*k#{j)|ID+?M#ebH{xwCt{zD-6KZgSTmmUN=L(9LO=zn?q z;jwZ$7>?h0pdOZ{D$+&~Irmr|c5B)en^tM5$XZcrqY`Pt3KT-rMHm3sm8|do$+^y9 zXCM$5`_m3@HiClp_4jiQ`u*=dX|jvr(TX4i!q-a&2E7xB<Z*BN-W=Z-uHh8N=IOya zH`Xr^5|uSB_YgU11=XN!^gH$EP#S)N+t}BS46~paVsAe8gf{(DYbN8RuHeXnslHS6 z^y8rKxF`5sK6kmBTi!hmWO$Xn#0VAWzBr&vbjPvX5E8_90zf7XP9lh;;JZJcRO*`b z+Nza@PJJardlyJKDwPNtRFY&)Y^g&AP%w_Ot-BOVi9^yT!Z+0P7-l;S7ny2NdUCeA zj-Ta!;A$lJ`k<#g=uF5=t=~t-QR)4;=%K#VyA6x^&&Heddw#AbDdcY(QB3shOVST7 z{zhts*o2-R4kSCNp)>$eEfq#TkZ1{SA<GAB5g*ZlXO;^t`QIv}&8#=$pE+~GJu)KK z@L<Tc%!QDpMfy}l+NCQVt;pwnwr@l`D<fEXHe%gXDn;1Om8?zN70G+<goM_twCpJ$ zpx}{l<9GehN9uazS84O>vWMbKh<Yl}QZGq{ZAN8pU0JXg?^F&ieF6C}1{`CuQZY<< zMDo!UyoVNu%3q|zmbhp!09jS=>o2UN!F&B2f!TeMQDf|E8$prM{ZK`YSWGQ+B}5OS z?z!GT-dpMitw6zB$VvK~WD*i)88h{#0YwOwxTgf>&l8^b#FL6q^3Gvwf1njdiMh+r zECOEamPMXdcZ87^PU82O0Rq8GbW|FEWJH701Xq@&t%h09lJw%#EuzZCLLYyJ1vN7M zsX!;~K)!vTSg{^Yq&F`XoVC%oD?n=KW|GWnwt~uSF>>DGI}@V%&S@JC8=t;ju-s!6 z?1GItE37^n8_55CKI0x9Rbv0;(Rf%vD7EWo|40$be}u_HH)x$5CNpTb@<l1haS=4* zji)g@Y)kU3(^rZza?CpMhQ#%UqwEm^PAA1M)F;^rllts}Tjw4o*u|6Ef@85_t~@Te zk{~)d!UYeMCFh`MVyH`$y<4an7(^a3Cpp1H(U)?~)8tH{G(uB76!GSFCF#9J<{Gp@ zbpsWOqybD00XpBER4rK%C7hsimoNmt)3BI;JLn(3_Ub4~Qf``ai@90wb@(p|<XJP& z>kt#*Mghtd5uiReJhdWbK+KZL`K<HbZ1eCg^YHvn`Jz}-U}C;x4^YIT_jQBG(RsKB zj~qJEsD)vCRL%f|MTEpCx3(b&8A<Pnr2eH9(&|GhXDb?6gkG)O&q+IU3ycy)A_^dN z58Gsr6TeV=))Qi3+OLl+Gu<W8N-XggvkaCRIl_z;LU4lt$Wv#*G9<R_!?k&sv<N_- z6jt#|#!~5~Z^EM~PP36wP$v_$bFAgz9DmFcnvY3Hg4wU2><EaEtY{y(P8lmgg6~nB zrfCdYS^+p~NWU_xh}5I5iS$tb2vjD#!Uh-z0_8hsfy})k8l>@e1JT_~;=F3gQq7N* z+^_5Do`{w0rT=V-pKoPeX-Y6pcKY8m)mn+G6g)0)k1aFP&m`P3x+TgdT%Xy7Avv_r zxjtoLj`aeR2k%Zr5z2&#Vl{<Wp_9L8CAOx>C!@}if=MeON<lg_<LY3~3J&`+#d6&D zjN6GrpRg~Wx4{%Kz`ZxAigs_v7dI;U@QHs^P~;VaCRtKh*J-Q#%@cq(I_Bur$9^8j z!;kF#X+O1TG~kVexd<rXU?Cw7J;bPRjVGQva7e3TorYixr4Y_dU~o3EIP<JPNIAwL z%jQSb!hj+$p`|#eP)YGjwpIo;3g&QT;<@x1Md5iZ?(hmv_J;p?ePM=736~Un3^iUX z+g#`9T}A_S4?uq0MU0ZU@1~{7D?b(S$U_jKMX43oQLNNA9{_~aorees<$1Bdb1EVU zO105#Ogh}bAX7J_w@6E@N~Djq_u}CI6w>SEzj!n~;Esk+T%BJ6hy&U?JA;sbgB{{k z4S<SGjZZ+x9VO}tdZ%ruIz0tw@D(&7vC{l0_L=y86<ZwTS>A+fHD*!Ox&4HrN(G%^ z^0<i%SSr^JVxBsYpVF^u5TRn4GjF0p4;ph<q}Hf~6Re=1Fn0hDpbTSmvHFGe?C}sN z95@$Aoq?SN>tW)ebqL_2B>3c%zF}DjVpET)BBGT4RHDJqUz0i-aeBx<v?p~oE4>zX z-ex8b{rilnYZzxWW`5fUW_1MS_fc_%Dd0>x1t9yQRNS_BC73a#Z$Z2-c>)xR;DdV0 z#vI~DK&nN7b&{aPWWMoGzHkV8xOTOBd<w?Rl&(m+{6<6R2`b@xI9hvx=VIhjT=3o$ z8kqUD$ILGb0>6XWzFfEwVMA{#G6&rEz15Smd|V*B{I2+kqxSt@s3$DooM%X(aKBn$ zuVf$6`SD=qWfj+Y-P~so^40TIWfY&g8Z68>P^FMq4Y|#a<SYY~Vto;3Wks*ekMO1d zp5(FG`P+O+z$N(Wh6gE+pc7cvuUBO#G{9nX4+$M1ja4P&JIEYe?=RA)%ov`ld09~b zi3RGV^3~!&lUS(#45yod<@;Cbpme-yJ~UCRHHA;iVhBK|&>HM##2nviK9Y1yE1qgX z>7QsVyxT?I+*nFYHC55#&X{ZQ{{B!R<vUxSqt4DJs9F}W&G<mwuqI;4mjHhICADlq zntHh`-(?~N$a7aonH$~^Yni-{>EP<XW{hrT;LN(r&H1Y>L7%^<->dw_`%M>1iNcXO za)&$Ne4NtAB|4W|xf7Gm0e%6dZe^B7_IA+)UPs#%Ck^`aD)rzXO3TnMk~%B5vAusn zX#URMoMf@Wg9T$oP8!G8noWil&W<&I>+WTE2xIzn;*y$kofgK*mY7j2Nai&^R3xny zu8-V7W`-Q?#)ViiQ^${suqVBn%N&U{Qgw^+J5A^&cmH;V!Zb(N5=m$nEy%O@9`g-4 zRp@sVnn)1Nvi9dC!igr_QS&?4Sm=Ehiyvh?51OUSirFLmm?0p$SwnR?zm~JqayjFv z;h+!E4s<hV^~tWb0+C33QMZ+M!_=%(PI7*+&FjbJB6o#3C*tE6e*-CqC%PHW0^g}D z9(K)IX2P+?`w^+cbcK+!p-nvuO&2-erLjW34|lM75-j5*T2OQMpOuGt#sb#Jj}r<8 z2fXXKn4*xAX3<k60X23w?Mrq`#C>Gd_AVQVzkHAGkM-Nv%g;w^Zz|`ZrxZ0qdu}{G zcH`R~BNg|(foB#Gtu+0j9iGl`UF%JJWc}aTsvm;#84~g&sjU^xYYA07YpFLNpEi#5 z*>zH`F%IBjR*snK5@}otUoee<ief#6C5P!axv?`pSNqyoUGp`IEK?<f)|FuMIO|q< zw1U468g>z%mN{MpIgOZgZJfehOi}q#4lLd+%SyAv39XD<-t{hON*z-&2ox@w!m}V5 zR-kau{agDjQBTPoUak#LALa`C{Iv0Kwu&bR8&WBfhUEhRx=>I`Wn<NnDI7^BxDVX8 zx)c&!9=Q_Twofpw%ts6170qqR)(Xzuby{bpkqf!_suGuMbGOBymjpE?;NuH3KIbQ8 zVb*lWO1V3X%eBRC95uq&I|uU=DN|Kn8d%un*t%im)m(hU*H|^>U$-CN)Fd8bCi360 z_2If0f`fJTA`B*1%v%7$3n-QuTv38oS{*Kj4H9v(<8#@<;Cf>C>Bb{e3lwSy5-)Gf zJDMyz8Hu`VF+w1)*1Ju_916;E#N6@uEStqA)L+KNz5Zg95ZPEx;cm#&UyzzCaCYW& zsht$!+OJof=$4Shv@blFoc96@0;;y$O|{AgzhY2-&*{!~xZ-*0TnPWAU=zRS5I7ig zl8_`FS=M7{`Sc?2WeJF-rpA2=c$&<_>l_r)uINU)c>>b71lGC|5^h)mYj@Kxb3lbk z*)Kdsw%=26Zo0Ur-5w$B<ZZW3`+C;3Iaoz6`~W+GRE_+$#%lR~PLdBZ)=ApMOV_wV zWbTou?vB{+_J7UKPb=q@G<{|)=J0w6&yFT*1x-dPBQq;hdQF{ugXllNl|$2~iQytX zyWyT9z&b->H{_mI$(R`&Sjwt)NWT}m=}u~#AAcf~ytyxZv<<*!wFebmGnUk<+nxJM zv7vs~B1l!7b!ihnNp2sX7v|Gild9G1fAZ2Oi*&J#LrEp5=JA{Usv?Oux3$YNcLymJ zq<auj>)((eiFQA>JZgDa0cBg2V|tsPM_dVxcZy9PU!iTAw|D=ob?)0ss-%$Sru20^ zbKwoOO~&+$Jd+4YC-6yA53~NsL!Y7p>WDcBahN_SflZQRF84FWr;TWVVaU<z&!WZ> z^HR5ee|f5K;XHHT?1rIxg_kRd14h7ic?5h_#?C~DOD#`ew%U|Od6g`ooLv0E(cJ0G zb1ub&X1q_uw<(J$6Q-F(7e`y~5zvT|mg1(y(|h|Ftge$~0XV%BQ{K?vFS841@_r$; zJiXpZHnVHl(o~MShud}`W0dhyG`$e7#@(UF`pEKRhN3__h#z)(P^@LWGi$5w{a#_< zf|`q7B4l8|Yr~fOjLlbXtG9!7LM21KPV?j}_d7HBu@(<|pDB%?9~kwA^2P&@=R#iS zjtkZp4S?>lqCNp>XI@;KPiyoHMe&=o<Jw^zWU+&>CXY`?mx+BR@AZXu?i2rm#NpWj z&SO8|E99irZYDE*6ePOVI!&gVt1Hj&+Sq${_m&^5-j?R3{$&=$(!>KWeT>56KtA8O zFIqUDJkcqaO$HO7cg^A#?LO-uysnTtV|SrU$<Gd1k5A_5s<rE;!0lOz#n?!P<TSpM zJe{0oDgKjjV%Oua?;n9HrtH%>2V^z1I~PQE9l;IqWEx4kOq64EkKC2WdY!g}``GbR zuEyJPm(Aa57e_fG&+bZU?`A*paJIe!g~AUhT@L#J^o+pZkpdR+mCW2WhoHOs*|9wG zCWI?YuqEFM7JnNd`efvR5$RLgKY>P>3W0)6xVxnD!HKpy<t`Bmo`_ZC=3I;8xFD8E z&<e42h4zqkG?Y4jzQ6ZB`=4A^c(B@4ps64QLPNy6cYViL@yJj2N`yZvQnI`}JIiAw z9@N-)?8u#L&f;L=`p;1gTpcz5X2Xrx6eOU)RBXOc^zK-C)qLw@bog?~-jm{#s_)`r zcf-v9e7LUSR9@f#DH8pkhtl^@w|m0Yc=4)NLq8M*<NHaMY_8gWd(%6(Cq4<r`Z?x! zO4ye9ppM8~oX@{|YwmCR*eh(D-f}*^>lEdbgVxY_Ny2SD=#{>0v~}eKULJnMN~Dmb zG329bqxU=gSj{Zib)MSt;@w`{MMDOOj_hvBbU4Fn7R*bcIPjDF`IIhor`4T!i1FSx zny!l9#Sm@J4waApiq^{X%?$n+0`gQK!_%(+7<&&zhjF5$zcWs5lbl3lW&1v8^HS5# zqDv~I{33h3I2k{#u<>ZHK<J@^J#V?ZtMx^o;pO-;&4<C#`uW7cEx?N^OX~l+M&plG zor31}6mjlykZwFPOoVPChRcD#`&|~+4RWsD%Wo$F<YCJ?Oq(s0e(pKTH5A-D`*$i> zSq_FP^3!`X=h$=6%_a~Bw)kg8s4jM@s3bRz5INQ(kB@;-cB$V;`;)~1?z6+=&Z!Y! zOt_cX>0%fQ?npk&MNwU}Z|@uX0>A5dKQ;&p4I)pXdf{aQk=&|NU${4?g++ufi_xp+ zJeAtcWBKY?ZMyQvWL2oHr<Hw}mywgpHM{&gsGzc3hkCxlqnqsMFTPEF_m;}d5~u?L z&(7Z^n#3bs;sbyv4Jg_WA#)2O=gXIMgTGzi3HUYtT<Rek<DO%Kn|22Z(;C~kCaTH2 zH-^W%$**>l4LNc*#9#!}4KU~VN?MneO;<kN-MDT;98LGxfvTLGIjn{2PpXz*r4$yr zg#9*2bp!}8+hTpzK{PTDaUf&Le?HiSoDDO6HzETOQ{v2XnRqD`SAAy^M#Ui-_~Rw+ zOD!HCrLpH*Np!RT!#58+o!c!|N~%_rC5ah}gIUD7vx`L<vYYH)+HX3m1`shp|I-zU z<&=kq8)ffi$@`(Pe&ZHh;`l5cC;VPDSS}@SK&1{!V8=@FF~VnQ_nmRf?7_#>7zd?@ zF~_;*Ke_awl#X&%{{GT)hDnlj1las11udtMnn|iB5Y1(BWoS#2_Q`t&ES~3Rv-7v? zfqq_(3<`13g=-W@>#{sMEJaszV%{g}TF599CZg<Lso~aC(}vr&KO<YYvShRbQu3oe zjaUjfP=*0@66(@C9*=eC06#q+cm?sUF9;T2`?wM~Z7W(d&VIuL_|wli*ze{%A1o>7 zTG2X}?fok^rt#u&_qmr-Eny7F1zxf7K5dzVr=DQ_4}rPW8bFr41v=t|h4{fY;Ch#) zAUrr|yM)B6ze?6TqM2O{F9s1UOVj}|uMcYZnwSWDx@L_X7iBbl_9{IQ(1-dvunp!D zA~OA2L42!N<=a~+R{pN6LW7AOxhElq@+^rnXTFY55!$L;w`4h~29b?<p?2eHhN|C1 z>hXa=<5+$|G<*!pm>?4eUQS%ltgcbGidT*)Ci?_Z6;(+<+p_~asvs?(zckAKMcg}e z=fXwnmPy{&wr$(CZQHhOCo8sX+t!M08!Jxg+pTU-o!07V|ATokFUFkXd3qlR{Dj@C z!L);v8z_@5&R?Q}*G0e#bwEIhTjmnJjI@_^DzMSs9Jl(H+vdok)q&IPz^kfqjafeU ziLUr-+wcPY*#JfbDH>;jFNQ=u&R?;4ybDsrain9|iy~l8(tpGPqB*+L9g;p0=F+Ca z+zdCk6K|y=ju{v)y`M{&w^f1}rlB^_H(2((Q<l;uscB|4IwP|E_GQ^>-Bu$pUUlN< zv1obzV&Y_~H+)@PQl;BQRcVu5`z;oOVZD4C*Ox1gs6SXy1hz5EXSCO(;yyvYj+7l+ zt5bi&ZH6nCTYY6B^kS#&-yIUg<rhJDs;vgQ)!@q3DPhhm$9z$(l(9*z&fwPKylB1# zw$tX$!InS8e##if=FXA^s(I?d@ARLeMb^!Hz9VLARiRsD@Oq6<7=h>S`mmda;^s*Y z&jO#sb+j@;X*<z7XW4MUWpx3=SBqd4il(1i5ddqU82x@3PkNh1Ak*I`yBs@1dj;8E zHvtWjs4Z8f0zz5G&WPz7$Ar%Vu`E-U*7&ul#2g(L%bq1_Q<@q7>dTPBWC0OU;b*y4 z5V9(#ilD4wSjUk=ludd|M2yK1d-t}w0{hBdMNPqOu=FPtt_iY6LHoRzgl&-ZF=>#G zIcq(I98Qll8b9prW`3Q@){Yyjk;H(qAe@F~S##e(%#!?1?Y`a4w)}_)!ILAy^3QRG z@zdWn`MLb#r!uoS>&0@)OD#UWv?KO|bF)M*J#2)uA?sLY4%2@H<l_`m!rbX?gZT3C z66NKPKl~}Y!HNu9Z{xLWIKLgkK|n=HYCy^}ZrXymNLhm5;ymc!sm^tfvQ<G{a3E5W zYb}v66PKbtvMxb$_~3`~W#Y5hVgkn}Q`NLvMt$pqi3?eUs({wS!4Bn29&qs#w@-5{ z9-?+RIT+DB9hk1DbfoIxiqA=TP#yXOF^bfMRJnV^tdb;m2PNBOJmMCPdwX4uqm5Rx zB`%!p>Zs>6sJig)di|KCxFYS_aSvOf2cBqeAJ>u>)p#FGbMA4lW$<1EvL0^y-rf&G z@@EN(;>Hby1x#U}d!eJ;%8eohCZJ*lTO||;5rg<XC-oQoY6m_090d(tZO{d0as4P_ zr0VF?{GEe>{ao5Fg&N~q3k5b=&$no=|15giY5IQnzyUeRFXvWLE6zO<QT%%A#R)Bc zYLu;{640nGP$2tTtvaY&-86>Vw@`d1uSH9CKniZUL8EGiI<v{=j7WWBRYu_N2aO8z z`jSbmTwCl0#zIgIeB9#+dSGp#=AZvKKKz=KDF*Xr&8^S_Fo@pv1c3i%AvT{>BPoXg z1ms};e+xqS{O>Hp{=XC(t!eWLLyV~7cVB3C;xt_a5=k*p7{w6993~UEV$eDe-$6n{ zzxLCcb)?0BqH?pHSHIoY-rhFLB299uNyKouazKML7o(alGQA<>9RZ-1or;U_DG2@( zP~frl-RJesdtE9e3|U3=VE}n*9&56MC^nf`kC3JtG(Y|T&XE|+qG8eC0DavZNJn9x z3g-{lH_;KEXsYgRJq{<^DOcLx5@-=l(KskAPYM!}cVfx4KoM9^`GRwucyPWxekCo+ zBuQe@%Xs8ubCuBUPguGdXK8K3hktq>_#o?v;p!E_8VAHx>RIW!19A0$93Bdm7>Js} z9O$Td#`B(y^<QRAAEnTGg;$I*Hu#}F5w6n1Yy4aD(#4#7<l+Vw{E262zT^+GMfuzy zOP)<+@TUF=ZfW$+sZ%;Ob?p55>c$;PRi-Xmqg&FKfBYa26Se_#c4r@*iMmOYn|YK@ zr-LTto5<=OZldj#o|;vx4wGl9{0B*XSt+fSLU*M96vVZvSv5-H%*Dp<DO0*ojfEZ_ zMJ_7&D&%iGgYQif3dp^v$*f$iR8RdYopfp(^5+=-=bo+o8KtfNk6oe(@qfE#|4aKO zH&-iLD_5`oLkD$5`|7^}9`bKqKZw#HV%NkoO+pO8QcLE{NN(H3O6LW{-=iQ&Nnu%J zSYT~su8%zjjD3+*$&HH=7ZnBKq><ahb_H5NzVe{w=E(7`yRsZG8SY7A0~oBo{FC{- zM8|ohqED1inWq}MHb@F9Sn#6E6T<R7zbnM3-WxcY-omJBTF%ng!IAG<sUq|fwO0|$ zr_ZZ9xYzkubt?nXD><b>Ipej#?VUo;?A9a*qqQI6V6$muy%r7z1j&AnJOlD3&N8Ak ztTBGK!P4U)Hx~=UWN_Ak^$yTAkMX-p&J_yu^z_t2S;VI<O(|8t@}T=THoNMCNusb` zGsN=pQGoWjDf!WUb6U{ubY#ld7l;W)MpseFB8wbKQ?uxq{k{^nwjk5Sx2%Wh0+>k1 zh0`?-0P+6kf^o(?XlSJ8dvZ=n@$fLea;H?8d0;iF<mWfJA#Q=-x`zn9!i%k8$CS;u z1ykl@M)|(>&;)C$33~XnA58)!oD(h*mrxx#UrS`irSf53m^w@h<Pdb_g_N9p1rWH1 zB^uH<3yaW2fJOy^I1(vV;??lr;{F>r>>l6~Ke!yww=Yz`&&f%7YCk8V@G-i)XSCZX zdxz?sk>oX%99rIM*DPvGbjaSk-DMt`UWrZ@aQ4cp=1Ye(c$#SF#*Li3Y1#y+lP(Ze z93R9s@wD3eCKjqVLd7=J&zg_ZtS~Q@A2L35ISrJCKSBhfbz)2g%Rrfd-c)N_O5Wy{ zlUjbTpp^y^rb8wpL&|>VIW`RU{dm@~>P!#pa_fB58rq80s4}9myz@&Bmw62SBKAVi zQ`rVIuzX(IV(7@Nn)(Iu%?%-{*^TCn?wm7`)Iboi<E(R_xI-)uv*Qmgmg;9)rv;Wd z(}AX8K@-YJ&Mqm^V(PVFvXFhvgC%KoOT%yS?1g|?gqLmN7@Os0iH#E>iY+FOC~v#G zv@C;!mFk)mf>Xg&vbGBsqy~fsU$Z_9J_fq+XB+RZ$^2*6vob>|6FP7L&k(Ee%96~0 za&@V>4a?W6sq-ZDg_?GXh!;qF;!{;Fj2B?nTbfG10@qD<pN;*=h0e_4TT0FQ6Ah$3 zPMex(J=aB6)nH)P$7W(TS&6s-X%%rqh$}8$ayH))FdhOkPs4Cf1yL8A&}+m3l#OgP zCm$ux67QL#EKgN>h6<nE$O&l#CK3iM3r(XuY%^u|W(NXI*A1H)CUT#lp}HO=3)Ooh zgPQ4>8H%fc%G1Tci!h3))=IJ_=n<lTFk{lhyhd2x5`fkR2gKTbZJ3Iy1KR*ceis-@ zEBD9qlSO|3uy_1wm2}>#CQ*Qc1_UD6sJP#cq_l(O?_+U~)+WnRaeSe9o;o;Uu+FFA zPmLTm^#@&f&K(i-&Vp9$&w~Qmxc!l^m(dUGlp<?5TdD2^FT<EyRTVMF+roNl=EG!{ z-)AnkKP1L%%;aFkf|O5Vp3GZDDQ+DFvy2bII(i1R4TytZ9B~y->N4w-52H(&Csg79 zNH#Npuo}|TP9+Q!#(zv2w$t#zMhi8lnu|L#OlUIht9U3GcCaqmRZUdeFrZo!a$z^U zxSjREB`UVbESlsYgrE)ze$%Y3dvCPDH9&X7{fI1-sXoFpnDSLIi)YhGzCBx2UL}a9 zv^@BUeg%j}*D42I5K2n%xAj79w3LG)9Kq4O)7d=~e7-I0-FbbLA}3L{?J+RGF1QBn z1!(WV;F#xP-v;$jQ(wKcsW|U-Zq|14zFgL-h}71f)xh$P@9{KnC#gqc&XySb4;3&E z42TTHF^y5j=tCh0Oeq&C-|H8l7GM!Jnw_wP1mTxlFiow`yy-9YpH1LFY-ZAQ%H<7B zBb**q4j5}51(&YrH)#Mw9_<$*gus+xXWH^f7b&?bG1+xU6pQ(S(VC4i+0axdo-8in zxIT}4BW>&cPF~I_BbX_K>;en-HTuqi1^x5220sE=ODf?l3r=+$Ixr6`!@rhtFjJP* zcrYNBhoqhm27CznW&z72sVA@&I`6R-D;@UG!za5SH1QpztB#KAqdFw_v5tXABO3&5 zr{i!`ST}o^e+?!Nj)IRdiuqbq7%G0@P1$&*>CV>h6wm@Dg|s-qae%_V=Ca&MN{3<2 zvy<T78>{u=^H$~+SaP-?4vhw$#vw5a<?}mE)MwG<_9dY8ua#v%(q_*OPYePabgwzw z^HVtMEOV}?>Sw4Y&tw#{fHJISW{Gi%di{FG6c}Ira)><cjI3TLY}oX<qyJdQcv)gC zvEeHzj|E1bUsa-$ixlTNZ#-lW`nM;~n<~32v(rj@I$ksxC9<Vm=cy$a*)64bG!pNM z9;VAnyT@J<^BvlS>|VRq=m!@;Ua(eCYj(4-xmWqy<l1mQAz_C&G8foque2qGcQ?>o z+Bfu$VJSbWo9}c&ez$R}hpw#GuvUaU>jl@4=K=*I`efS}w5+`@I=}pvkoQS9e<fyt z2+(dmAZ<A=&sVq3e$F7i%ESZsfVIi|*5-_tlM#y}vY@V(e+`6NQtdC@F>WAjp?q@W zFno`VD5dg-?PgxAUs@^^C&geuU|R%CvBA|5rtR?esgw}_<j6_))fd|gatWy{#VP@_ zLyiD=5>I}KCeD2nOSfP)Q#r$I=T+c2n?Rk%Yfa!*PJyUUWlwL@*U~WzwN|CDgLZ|1 zTx<?0WiJL0`@MwJJM7>OUClxL^)mo-z7sD)pY~W59e)YcGV+B8I8FHpsFFyZU4MPi z-1|B{q^xWRdz}v8kmY9HkU@`w_7UEF)!luqN9v8W5MFGz?=OXjvt}#W&Xg9-fs>}Y zujiM;V^N3q8u;cLCML)HNOIwc_;IhWG7&h!@HLvfgtXoL%*xt7I523|h`Y3m)_ITY z9yq>e?yF`-RW$8vhkt1yAZJ1&*1S+R%98Q@hKI9-JK)IIT^RShx&h4@e;gQP5xO`- zTAg(gbk>Fn2@zW|d9EN9c_1;u9Uma4PKv31MW?74+!sy2(+FoS-s5E{uTo*mQEYJ^ z=~Il!hEtTULw81Z7b-ch%DBK?ba>jc8lh<^za;qyy|{=N4^X<vs$d%dL?BGK-4vH9 zq}nK(4Fk<<^}EU6ZNYFpjtd0Nme62EJ+#?pO?4f1;K4P1U4VyldDLNM1Gd@*$JO0` ze3bSg*=r7h*<IG^tp&$c<2${Lq8beUHdDGcrGtl=`qcHb77J<y)Q)u!`BBeevnBr# z2rA$6;V*CxlQ<q^z35P*<XxJ@Wa?U?y90DF49RB;IRYS$<;!w0yKmm?6xU{-Ya_e8 zaFV)rQPXTV@x8!uCNMutqXhmsb_J9jWTPBio<Vj4vScj-Zp7sA@={Kx0^cR#j{h)x zzM=cCSpIP;V0W6H$^CZ+q_|OqA|ccWZqW?V<M&dgG+z}AmJMv5bt4IGOzatW%6nP$ zXk&L()oQ&lD#jKtgyNXDu1E>d(9>Gz`w6cI&Wnn~afgJ6E0e5fxR_kxTZyxdvV<qu z-Q#;Z3d4X8PgCKArQXrbTYlRw{!MgErO|zvW~E0h)r$Z2An-o}bBSM<hWmenKP9sN zcVPZM!~VSgcOGW$X7;8I&i_A{e<A;?=d^ZmGjskwjrSwHpC*4L+X%m!zcnb!`UlDV zNf#F6WVs0tGtB8(x5G2@HWDw?Y{`%~lXa4zGRZ&N@4VD=laEQCx4S+5*`vs)m3rrJ z-;E#7iF0(J_`S`mDeH;`L<x*KScrAi6#cnSLK-es*gCo!^Jtv4Qls-APeJH6`ujjD zkUgN{`@m|Tk9sj_g|@S^xr;9zFsaadepVu@aDVedtuGqmnr>>woS?qJOI38q8l~Us ziE$$Ke8$00+)pN!d8*~Av6Xgo3h{JkN?d=^&Cs-A%%(7PZue0iK$rXwvGh!Ru@Rw6 zv6*qglQHc7LzIwr##q@A3}x7ypCX3LVa^?!*Rw+)?!;aW)zA93gl$Z%3FRB4SASH@ z)q`iVulwmHB-dx}u>DrNxc08Ctzf5QOF-X@<x5q7TcO#@pTFb|w;bykPqg2oJ4Nbw zjk)k{?y*SHT#a?!qPm&1y2uke;nd2#sUz@qr7{+2bQFr?{14-B@z+zqC)DY|$Bp!G zBR`fqkJc9zUla`|@armH@LG(oxX$6;WeQas9Z)mQJKDwbs}+|Lu2BM5jj<Qf$@mh< z^|eQFs9pX+d7+;=Sw78XoIJ$Xa7Z%#`y#}4VoPXk1yG$K0e{U@v^&l05;V^rwZ@^O zqAe+RY>Q@7f1EL@WNS53rSzO>&7&jRSUqiizSwBq`s0)kt9BQzYj-E|`v2?=0n*zb zOSD<QHT#$M4_-;?QteOGI(gT)zjX;gE<ffwh<k6ldy?bhNCUcR1M%pSPRgVWO%+pC zm^pPbmGu(5=k8zB+lXe~ZMvk3UcNzo7Uh%ICa$nPFGt-P3?%DZfwjmECoz8CVt9L~ zR`4t`ziFcFOI-86N@)3CfyE>F&Yu5X+Z~D(s0g_6FWy+`6^egqBVO<9hjsmRN}Chr z`5BP5$$zi!Zg9VzR*Q#uz9k^;=J$S`JKl%)_wxmCci&H^Yx()H@OH6$Su!Si@|Sr3 zngmkisey(JC(zD|pOrV5oG^#~N8B9)8vvVub7!kH1T^&&y}m8JI=FT8AHIyK4QpCh zaOMz{Yz;;*q#Q+)fAnpK>OWsw4B>GqcD~P!<eIbblv)jr#$a#_@Y%xnc8=&|^~5Mx zW=MR$o@Ix;p5(r!^b#08B<w2eI{Y%OyBvL;++5`Yz2pqQ3!N!E5a%9QOJDlk|2TF$ zeV%+G|AVj?zDsdNXYew+a}w~m+w0HA#j_A|doy!uVDrXIh$l$MBl!8bIWcrT>{5G| z5Y$_*^|)8KPU&TUzkBW*sFmu&9gkstPp(CeVJPl>eUig`{eJuYnlnV`Pvqs{T@NiD z<OtzoAy<sn5;hTT4)EW2XT~*D(7YWqMA^D%!+3x?BxzrGIzBg%&fYu|fPh&1oFob! zcyn|SjG6tj5SO)J@LxuLj-m`Rq}TkjnYmQ&;)o!G()Z6VjUKHh>wEV2R!p=4&nD`s zc>;zyJA@{92GYLBLguK&B=I-KSE$j$%hBj#DmeZN!r@{+eE&WYE<E`Kl)@$4_U1E7 z?%8<_E?9%7YoTORxL-6RFc5CT*&!wPM8tmvxoI$4XM(z=Mh8<SN>+UFm=fVPi)|{- z`g#S9Vtoee*y^u(nRO}L0*A(}0MbchL9B!eCcG4_TWEf9REbkB)#I~;x-G5F)$XKX z0+UzOaDRA_oCEzs&&bB)>rhM31r;vok-)dHINE>(qzOhzsME+V=#u#kmj#F47n=24 zPk-R8*xw%6>8X}-3#CV>a>!%DzJbQVd6khDtrzBmvq{~}{x|`m9q4<T%zPv=`J(0$ z?%A_I#Og1)yBYiEEXXBKtz$KPJ=&DUz7P=z+?Nkt8=Db_T|`Tbz#N`wwEd}_b0?({ zj50j_@OH8$KDzpgPD2XMS%Nl~ptF1I3CYLz7pG~UM{)H4$9q?#KPLx9tROw`cg1Eo z=ncDA{CzSC?!|iy<vVpGh4+F#?#0G9=SNTv@+G1bA)p>-)Kvt@`oYGgn2_$_NG<#! z=urPrm?54BfA%G~SI)Ej>p3uo1S0$P5r8@!KH@uref|Q2EG4i%XEXQgCSS7B9WcAn zUloJY@P^zmOPw&eMmnX>r+9RjW5GaR(EyrdOz>^-h72}MF16|Qp;bN4xBk+Y2O;{V zk^nuS0__K#N$~?>0lDCaVQ%!*&#+W1H7H&pMZO2T#XCDY6%j|zMFQVcn+sS&dsFnW z7c@813+(ofJ!J*e1{uHS1p2Mly=Ky`QjkW0R6}V_*?IB=TzDPzXOXmlyhMHy%Vyys z`;jdB&i@+xJj*0K2sFNHffK$X+iHGR1rpKXif$ymzYzZ=f(u-Wzq$sq4mXAFgp`h_ zne-e>=&FWdp}hUFK1m1w#V~vZF-#>~BxCg-lfKW`;>O9mg1WyF4#_aGzQP1ZM7Wx9 z{{fN<oDcYK#ss&^@s&3RcL#S>c4g&sNL*Puf*DA5rf}kCy`%N0`Q$>Zcg~zyI#T7N z+sEFKf5I?|`FLI%{Acuh5(Ah5j`=S?Ccyt=^?TBc*AZU6vSA#UagpsGYiTPe_Z7$) zYws{VT=$b^K2bD_Oc5#S^8sJzB@rO&1r%tPYNzY5=9!akA=Ox)j3%p_eeLOGGw>-( z<0+&|;}inzOV~#XTs*W2lpp>1N4;HUFB((wLT+gm*YnyEJhVm{6lJBbpr!+2n<Asl zf?sDY8E2`_$fn)wOES?*yH9JxYAm$cL6mu~$K>`sXdG;i^#aA0F+%0$Y_z_kYF`+5 zZ%G<5k>~{lKB(>FX)WMgIlL-v#HY-6mRfHnACNs2g6p}?jr-_PB+`j=fO{U&fY}lA zfP{OPcXX~ud44o)g5?fWU>pFD0gqiY{y{-ZQ4U}2gbq$^oJ&3=y+G;0Wk+D^py%sw z;_D+h@J>q9JoZagZL(0H*PnS|-r<7{%m8a3BP^^LvP!;}TzmUsoh+gl$nxg}X}c!= zaQ`Aal=@T0p)4h2A2|l3G?16mkP&`=bvs)Nfk3d$0wnDMCK~h`KfA_<>TN6pjdC1i zBz~WSF@GN4Lw+FSj%3=?yyO8|#{-bhQUowYO$7F>xBm&^hbg)NH+1W#!v{6foNtUx z0_9LF=aT=rw#l$^%1amQntwPdStQKUy#2>3Ryz-}0z<s_UvwC&GA_rR)@$s*dchS< zuRq+I!?KkK3jY$hfM6mxZv1F)AQAht=Xo06DqgGojD1Clwye?&Qit7h7B@9(;)-AL z4X8HI3#yo0@J7&ibf?bwx@7hpz!{qB&&ahSYUTjvZ7UEkzS2QO4dC6!a8P(E%BrO< zO1)){ltr;E6q%pLp>2_vlWQm`ynHIM3ad%52}C5gB&!cha7vkdVm!s7P%yZdW}86| zkd@?aECGsues*w(Vk1t6>}Wr>)za%Y)r*Mp5S(EH*|$|AJZx|-3;e4Tyo`A=VIKjE z)Ro-TjRBqWV67zPyyjeT2IqFH-adTiQAGEbLnjwldxYP)QwAhGqfM=WzzF@Va;;x> zKl;zW0*(+>;@Rx%T5qNEW{(@6q#~;H^oR+~`kDYmY><EO%LVJ|JiYg~%fi(ct3e9~ zDcO!~(tr`t{OS!*YvUuqwL(Sp00fZFNbT*#&QIpv=%O9=RU16{0C`LV+1;`?=T5_T z&eyC&1F#Qm-o{NV`vqN7$X9&8My)qQAohiKaEO?*h_i3Ba+aaJA$Jm+1ndZnDi|bn zkxrZKKv!V<`m8-Fdyt8Uw;5G`)kHqwRxq?u`K~<#4RTrLfmH$1SSe9f5{;C>D<rrD zXZ)Y(QL+3mCoctnW-3+_osmic2EqK9uVe#gr_#ZXm>&pfc{&zjPwXGD$0#jTt$9^M z89C6`4halN*Zfenk#)WhF1lbCq+RpndcKVq@B3eO$!hTW|BCFA+5GO!49{bHp+eU{ z0v~)V)clyw*L~kL=Ya)QPD~(=POF?wrQrW*BHpkf!K$I%^yJ4QTPWT`6Pv*S1CA!) z#{tJQ=Ma`;Qg6r0KdRi@*L4s*ART<#YO%8_Z4`;<CZouTX{cD*&SQ=>Q1|ob*KY12 z*c75@AiC>fjoQ7Pbs6XRc(0sK9%oKqjPBA`nk55J!JZMaMbMx?1Oh1UxUx3)RR+aW zQHM^r^JlzYEnBruvaElOIe3y(Pm@3xZOc^l$jI(-?Ie8io{7=V=y~EIL_GVVxFNsi zoU~I{(nv|)YaK2Ii2H;-lior6KBn;D(_X?rp_calJ}R<c9(sE(mvOWlPqkvj3LIOl z-og0*1VWlUH^Au@(^#Bv$D8J#ARDh2a--l2hM|Ge#AByGQ{c8!lWqN9(miv)dh7sD zDYr|ys;W6xXhdYZySRPf3dw)pP$tx3QmK#+F1Jc6DudLI(|TM;gLY#xN3KPy^uSMD zD7ZOsj|kp;CeNZ3&gbc^eUo;}^N}5_R@k(GN3Q~rvT2RkM+*;2r8frfH}wIfjXozY z(}B%O5azq@5(oGsdLm+!wxz|%qqdS`7C(0|<mUGPFlSIsLvn>kRBl3%K`8l?*Xcst zNxQFMD6P8O2ADVJcyW{rIPAGHUvuKbF{ECSCyz{Zn%zLbm`WDI8{7DqxFuq&KRU8o z7Tt8sxy<^`AB0%asxDEm#4=qm3uv;crKhrIDe1cl&}Wh8iP5wi-)8#hR8<^->>Vp` z+8ANPq6w2+G`ZPLFzu>sLv)Ggq$;UL>OMYT%lDX-)JTXeZQN@R<*F$g=aqx3OCK1j z;dpV%@2EpI0$IX;C6-WrcDJ8Z583<?S0-f-7an6h+zv}g6Dc&J{;Ir!VTS-h4iF$3 zSZ4OT?Os^)$#U_y0G#e=XJppUVU85^fJh!pu6^~Q8{&$s75JZA>gZimTcqj4;{;@O zT-rz9i`FV|POBEd&Mfol5o_QK0$`<>%)F;#cC49b6kLy}E>SI1FAPKv#SaA}O5oT9 z4@IW!x(HH3k;J=fn489srs`!|!?d(#q^)rpr=g@{>}eY2vpZtqL8+BK5Cw<<;6s^_ zv?|(aDvY%_qd#b|BkddKwuUAFLn6_0&Vv13Nki!%s8jaP+#(BHD0K2baQ+@|<PZ8Z z$f+SOhK>0a?bYXzt;<@=AlpPXGT%CBV00*hW6&&*`7$1ha4bIQ^Bax@Yl0W$`$N;* zLFdC5&0kh|cz{mmV;K<Ig9gXGOJxy7JWVW~AGPNzjzWLYK^Dg|ErC#%UnGeF_p}J2 zM+Rx_b{5lO_ZLc{A5RAF7-jdlO-I(ZBu}p4Z17NCx&ZW5bl^1}=o6Y_tPTQZ(Q+>7 z><zGL!H0LRoTk1D%AjBJ<;JSa>7X##DW)01D0{xQ+fO^Al7Ohi$Zk4=Po&W{|9E3E zt~t2NVOO5=h2t}Bn0SPn#f&|?>b9YJJA3TRs>Px^Suj||;lM5?qm&ykVk14UYhOzd z+^&H1qV)7oc_)aH_r?uG@uJ%lG5mS6`ovY@aknJTSv(XFY|NlA^Qcru)+&a?M(oz@ z20FaHf*Tyn<Ok>%#FHw;Cq}K%pmK3OG{#4fGtGa8TA=OVR3F5()a!_@yB`>cO}=X4 z-_*H&p;&uezc=l#;74_bQ*r9e|KY#MR=S^QCpFSUmRphwCkVvZzE~oYOF&3&0-i9p zrKXTc^m|mUl3!>6o#=}A|GqlG^9Ii5QnZ9XXts#0P>hhUpvxtqbd*h8vda;_10NL| zRvp<GCd5i5Ct?c=RED5{K5!0er8Vo!4}`>obIurm6#UA!#8i?EqeO~_{UIjsW{EwO ztYm%Sq}!3_VKtV7&S>ca#}F&!K9my1gn#qD-qyczv~^=O#-)1TxWr?_o9Yy$nI+}- zc$S`2K`W5?Whh|{i5cFGe0TDa>7Wi;Q9oxnc9WFs-+>0f#TYr)-a3pCq;Ki#gy*Iq z3j79jBr=c(Os^d~LD+jCk{Xc37HB2rC#W0sL4$>rmreCeoBtBe@2}EA3Jr?_Ri+=) z&c5*&&<h1?2kDByolb&yLPMN!^zu~gc#Ym#i7*)<SvI%phQ~+7pteb?ZZQ@*ixF6m z#T4vp1|PkDVfA@ZNy9hGyK##DQugYJcQ0!3fa6;3q(L9QhI^o;Pyj9x9-^M?P`aRa z`B({<t2iS@hw<|P`Ixz9qyGgwbjXA74u%iHHxnLDz;q{K0O%xIguIQ90{d29#!^h8 z`OH3PrlD>J$|NZx%Ph&2GAYe(AQK$X{UvYIM<xT9G0YU++4vX(h-n9H9}J6Vg<z?W z*({vNDJ5nKztil^|1Q#VS@RG1RJAcATF|{HjDfk#noXFz=gC^CgVNTF15&rDap`v{ zI1xz10iTc)NsU=v3@K&vRWzX)FqjFAYF!Ar6L+z#!z3#LB@AEwJT%VhxCIcmEYWf= zWLW*5a-vb-RGRu}sVkrk-=Mvq;{?*|M`UU_^b^}GGMYDcWCrT{J#t7GRa(|Qz6tVL zJFr%N_~MM@=7_1NFJsyq_m@vL0sbN`f5Wi5upW&RIct7uyAcR{1qjWR`W@c!4V!dc zswih)4@x=NtRnIrYl$IlB2@~%MEOsv$H|=*V838;AJbAsAgCpVHx3jqp?<JfBHsr6 zg8>Xn8)?OMg3WK`{M?+WlP(<~X!G`gCc|xob<|1zbI0H|9q!S)sbCGmKbf1!svWz{ zkA%weO6n|2uTuTR(y0BUB)o0&K$8$zeese^l(*$yUsB958n_Pkhge>Oh~~m-MG24t zS6!gH`M!pu3~S=*w4*L+W6wR5MmV6x?(c*}qeRry-}6#KqH=Jo^p7i0U5UWz(&#Xy znm8SZnw|hnkThi0fg^YPjJ^<%#9PUVSvO+-1BeJS#ToF_^n8n2nz%Vr0Rx^D*jco4 z!>!*7g-~wx_2D(V6U29zwJHwHwYm6{wBiLEc)fsL{#&?9+|D%}#9-vT9RF0zp_jvr z*Wrjo21#hgv-u#cT(TlX5LIAJ=$j?NvjO3k7JI(0p92pY4ulos27@Mvi9|w!98=Gu zK=)aaCL!8DR6r;ZlP0l3pEi6agDv4Eu4EhpD{veBB$}j61J;Ys!3m~7)bpW<Ffm*8 z*uKQbRH>v>-wfK`HFy;i5K{LZ5*{o&&Rh2jY%X+Nm(G_~PQ>4-P7k`R<JMo&)ySj* z$_2SWgaGxtiumMs@SBeLhNPaQ_|O7Iby7v=k^jC)trmxuj^M8FWAxL@8rwTrUR-m^ zyXOd{i;NwW(FCW5II+qOD^fr%2qtD|$9(*%U|F&(FI40q1ua~2tD8&I(72rlZ5O5j z@m&5rbO^fuMn@OAg9|ImCJSHn*+K-yc~v{c#(V_Q+QORC0HPo{@NBL`7OZ6Uzsv$s z7KD|9Lb)U@81I=eTC_n^CL_c@P8cL8YQB$+d?v@Zp7<tkcagTX2-}~(1S3eg;=RBU z4}u}XY;c^U5ZKS)yTz-W8brQc7)5!!5-!aH<AO7}kONgVCZ5;56XyV=kit6?RBeTr z9$E?NG(Ucw1tjGfSi7G+gWj(@U_)`ld!YeRi|I<SdvxnS;a;PR;2>gm+No0~CJX;3 zSUQFdvASHx06g6(diYtvXIy#RO72;he>iw><O_3At3|ERkYL$L_kaWo$ddpKfvw$Y zRL(hOfx58<v3oZ>(C%0%@VG<_k>{l+hD3{qf9NH2c#Nij{nv~|_Sh+UzEM1}BCD8Y zzVQjY&6e-ShkCw`C<THU>;{S;h^mZ{7i6lZD}xb+gn{@mbO$ET3R-y#B5I*e#)7r1 zh}g^;PRq>PsuC12Uy&dRlUE^GKOo8qx&`v3q$n_A@KOV!QF#RcQu9UM#B>&1%)|>K z^vo06F<&LP0g(cuN3@mXZ!XM#(o;Gza)+SgZ|&{)a`u1y1f&erNo?m-upey2?b*L@ z&iq&K3iblmbs>uf(Ua6be}tormw2U)*&n}6ndPg_H_lE#N|K3fW!naMyE#Sh3RsSb zlf-{!J7@kl8<emtJgcl8o6Qma5u5)DV!A)SKDNWa@?YPr!9xRdA*3P#XEg>sjM7H4 zCCp4vf+&MiG{u5YKn*)zLVpq&hr{d_nN#~vU*=TY3N`UZBPNtjX**7&@`jW`+qH|E zM8sM<&=tH{h&?g*l`-q3yF1WfM<dvfye%U<&tqoE=eQ;)Fpz3)3TYSpcP<PGo&@EH z;~v8(Z$GU1GYqaaBFXoU?w{5Wm%>#DBS=CgDXpW%!LwtzlqN%)p8tAO|0FCwZWw>p zT_>D?^=ykIe4f#*<Z|M2eXs#M_onqq$xYxpfu%MNQD_XzM~mkC^9Y`*VWU}@YF!bh zA}=6F1nBl9r*!RtIeC<MIY{>vl7|U%HD_>!tE%hffqfgG3$owief7GS<Ch~as+no7 z)?_}84QzFysgCa8n8KhEyf^lozX2`^cmnvgQ~;^B=igcMh$ks0<_pH{hx(nX1@H-x zOqy_N%>yqnI6<Xcc&-$6+}VN4;6bB&9@Js^53qnw*$+?(zeJ9b6>(Q@zEz<G&P!Zb zzK!*^V&c3pn)`=(XyjzQ^B#ZnNN=|X2RXnIuqxCNho=(YF#@*_m$$sY*I%ePeTO#L zxwWEhOl$6Bo478+FSMm!LK9hwY##U~a?+pyrm8Q?AMYHb?pfC4>mx|t!El+O9gEVz z=FBCKRL}_~nRyD#>U*+@P+1+(?I{;@WjJ{n%~7-+pSP!dMGeko-$)D^Ewj18{hL}> zGKv;Fce%nN4&fCc*PPK;wlHd1zgl0s@1_op3zY>lIi(?6=Nr166BWYFrhSI9w@mA( zCewW?s{FLZ2<FlPClNlXyzavAxUohg+zmf$ED>@zMI&*~&O2&^G43BEU!lhbjbZzk z#lsnYqGS$o!_@Hy)bCDI+uOD^<?IKolPOeJ=qO7fsEpGEr51Oc&wj}W*I(rztpWka zyG5<0;^HDsJ^SIb;k!>uo%URL>iZrsB7D8|py`}!zVVg6JTf0i*ADN+j*b6;D{bF` z@W-_{|K_eO(o%wsw&aTwIM(kIG^;!tjb3dY0BPfYm^3>=!g6i*_pyIDc8o!o?{vKJ zfNFNTh61kmWba%>6o9^4LBT!6X=eG^7FGv|#Abi#$eFNouElY1?(3<Ie{!nX)&KKR zdrnT)#R^o)iyxg$sFAvBZ<7*7#XCb?jCB1&%$Rk7#hu^CmFS+<i#U@(Ss9(QP9vNy zP3C!zniKTStd^?lZ##SG2<F<gi5y=k5B&b7N_<7F#E$q8eV$vxH0<WGR!pVjTA3;m zZYi={;|g2v=+5DmV25wE1m^>=r!#~h#{6UG)3aNP)_u&8A@i1s6b0t#0^_+1uwwmU zXOjG};oMdiguyN((-<~Z8`0_n0*5k0dRJhR;fx?pUh9fSf&2QZ`*%CS68t2D(CRLj za)ipk^#Sx+q2wD}3W&Z*Gdrp+F9U9}tw}keS45%vStb@(S&%PySdHs82V4J86uj$q zNAo9}KhULK-m<_@N>2q%hfeu%FSIj3*P!l$l!tx}Pf&AvI_vLS_t3ZPum$!T2&i_w z&7IE!S`=exc@is^^ok?2xYJ;k1gummf5h-7D1tVxRMYG4?94Sy2&{pKT|!OLk~tfR z(@9ZA-Vw_kI=Sy_GjF~gNR3|`iAJf4npAdw<Yy!f>MWf>U5{ds&q^i46|>`Wg6ANx z=|Y%sjV@B*Y|JSMg^M#YQ#rEEc@60UqY_g@94`btrCT{|o~~ym*49&@zCStqZC(j> zMD<36A}6JC<A9WO{S=73l_rJ66B!=g3qWvzU_|X~9t#2+`nVbXTLbn=Q|CoP6bq>q zsidw2U7`L2YUSOEOr{{aP&U{8n0Kw6;YvTZz)E?VST_?O8*+%W_6x#lsqI-3DX_S* zXn<pFPCrqtmgXHKqYLJk1qqjm0`g;Kpw|ln14}>>O$!3mo0rOJ<02A|{Gy*t5-KGP ztuUV%V@u@iDF)dKnU<Y9)*uC%j9U0<al90zb`OfwFG}IpqU{@+YovomLDvba$2zXj zWMFgdn=tGZT^25A!3|#l;?!pf3Tp<d@6a%nite2Va=O_TW5Rm55goq;5<kO{BBn#Z z_FBO=FhZwG8ohs;;oFjo&yv@}$N7bW1lYuB<oVt`0j$^l{Yt;OK|k`O;U*zb<sIBh zjggBRhjFGA&t~Y}di1SvAK*@Ou?NdZFXm*H8VnCcxJu4~U@mr0@}qzy#L&+r)Ut+B zkf`^UYg9_Qn}McWmx|?0DWR-ZHf-UHZn|9$$jP*9X!=3Q>T{81HqBqVEkXbTUt=L> zOjdqWt>nB}!4FuJ57sV$tZbzZeRF^Iew4G7tpRT$a=11~o(tDPz_5k$C~)=2OyfTI zSJ57$f6B))PRB8h=TY1<^y#Zdi<iyFbVJQcP@o6hOARP}G0@V&BCjDS>l?u3KaVWP z)2v^JP~dHIUw&knw>ViR?f$k&qgQs7%wToiA5ATpI~+^f<Wjc;F&I6f4#>>+S@B*w zW)tZ}?sk{%!oU1FfkD#jvY?x1>NI*{@|9dh^mDch!+|be#YvO~u9ZrDZrD&+)@thQ zua>!yH+5ls@fLZ}*m}THx*t_%=vwY&(2$5Taq$d%y}h}#^qX2UuT!`57wb}Y;H?Sk zB80~MAd(f1iYI8-9fVIINQZ)L&UcGu`LY6_H#!9<I^cHzGV5OI@jLJDK6tb$2Ll&3 z({Nf-r7qj}FVMizp4a-q>wQXdER<(6!F1>=NS<&0F34xw9Zs<ZFxKT5Ua_}~L_Tg+ zR&fR=UEAhDytn9NljTEncheO7`fv2&I+k2z`%2Z&WW)RY6G{BgJ4Oo6ea(|BIZ?<t z6Il|bW-?oo98#{zHIoTQAhxOYXBdhNyR9m*eJlVp<OTHt8uQkVfg<>lr$_8D2r;z7 z<?=7w`h%-JlIFLd;xcEl;o<d`bcKCA7Iq&O!t9qf6IO=ZIIbxZjJlH9ytPPKQZd3! zEi2%N`|gsfD{TNo)^gfqy!1y$9g;h+?=cK{Vo$tOiw;o_jNop`-{1&IJvpR>gP+L) znjB-Vy8-?^D=JQulDNM2eItJ&vQw<+{2F|oW<@O?F~OL!mCItM{`$6NNKEsFktpxk z1C29ZWQ9t4*P$;v4U|KsRhK>xsJrNA=u47D-pUb!VdI~}z0ZuO7mz;Ri9s(L_e3@g zAKIT*27K%O;)qoAG0%<glv4yyLKpmPQaL6mTzH|6q<iM-&z2{S-(A+-b1E`2#*80s zqTNUp;ab_70)vrE1T(OX7H3ebcLMcfl9PWtmjmHsIl;f=J<G8e+jv*{$y~3;m=8`< zpzW!3xw?BrcO>uu<soM-h{^o)#guQ*#E3wtfnE{KNL2Y-7B~|1V5&Yu)g5ONnAe)9 zAUHen?KXK98wsXsGYR3;6RB`slvjuXZ;o7I`u_Yz^|O54J@ya=f#pQu+*v9_>4J-3 zvm10jsn2K@2Fnn{;XjJUQ?BS6FY;_gny)8>a`X0%E14~lg?S>YNGEWO)1UHB_@2`1 zBa~gU^lpLmzf?XuTm@F%W^kg3)Vx`{z0o+&fEu->6Z;8VnGX|v`8Zd&tI~jXEHJqv z&lDd0{Xopd1!fx5tGEj)a<o#WAw>WP|7|z}L-_uo;Q2xJa+%{uCT~glND9m!=Nf*E z_@hiU`ZEd4s?oUnKrNE6;ulKkCXC!cPpYz?dZ25)ooJ4%`Jgq5n9;;EJXV*3Gt%8k zE}JC+vl_0V1V>M21Lyc_nY`N|*eRv}`}G7&mD$0`hKLL_GBI0fX*hV?fmsm)#~%CJ zEy0{*t~=B6qeCDsY0P(zRMO0uh-$wP&FjDk&Q_5Cq5Tp|?u&jy8&}%*=dSl=>xMqM z)6i@G1yVDCCf=-i#w2Lrd`c^)Hf~1Uv6HK7uBF~wc&zN`m1Kl8TyV)^<35rNwoK(m zOq3I8y%Mtm{s#^&$1D`z5dCR5)}>&6&ey+Q#HgZ;5ZM$Et)KAB{{3hwhPUJFv@D6+ z5V5w26vhr$K&ShU44h4=Hx}2O(}bZC^0k?3RLNw%VXo-wU}&g0GBeM9QHv1E2`e0a z*O9V>T_EIX7jg8fumd6%kA%zLOw;pJi9vPcP`qT2*U3g4nFcFVtwuSxY7;x0QM@n1 zc<@!g3nibepxTlu!1tVvvc~Zc_Ow&ElmPzeQ)_|Y90FM5R)>C9bV<^a3e^Gnm&y;V z7ro8!Vi=_`8%%Z!gEM&6<k;w_7Db|HF7pLY^LQOOZ}01lx`OqfhcgnCrv=K4HwR_x zB?D9uk$^^+-(~9nkq;5`P#fC6S;81w$x)7%eaaq94^&052NU4EUUCFC%-9ZzY~#=H z7v-i-gLjmb8F<sqgLZkG?yB2nypcVJsraS`13;REsLuXC5!<0WP45wtjn6`Rjx+rs zCorzu;wUi`X0bQ=N7ia_$3>-rH&oJ89AunF18v0w$N=PT5`9g)-t2SQ0haW=^#XR- zc8ibw4sfu!Qxx#8or!HCT(@b~gNW|I=0DI1EmUKZ5_F5MFTc;_6aFVkraTHaJOJOE zZA!6z<gNFH6=HNws>8Dkj3?Cb{QNE9&7jER;zN=TjGQqT;omobquq1)WrsWj5tnAz zGrDn+P$t)2)8kmLr-uY>$e>*Oeg=iVN7BX2lt{0Qlg$HhlN?6p{<hgOJAdMIN{(!T zAz#g~z4Ou~VLuLDQqbc`S7wi*PcxFeHm{d>l-R5FEKUcrts(iyahSk)h5Kz5NQ@)H z=UQ)2m-}n+xWWEnrd%u+CVk`Djissq=we!NBe{vzbenIjb9kW*d`^2#ItBJ^=;0$6 z2r(#J*UK}7TgZlu-U@8s{-V)AJ0<1ejAYrwl+faBU35(_p21%h_jS?&fb+=Lfwrd% zaNvNd3Zo3=LL=?r>!0_$@o!~bkUuh`>SiyZdUC-~%BDFYP!sG%MH&8vLqub>&ouwB zGfg$1IdtJ85bFyGu(dOALtrMF0B01|$#i-VxZg9v5Esul{yxdhMkPQ`gZ@1(SY&g6 z(DegO*@F8BvjYJlh$}ml>*Y}(xwgAdTK{a?dOR!DD+UUmWV+j3vUkps$QZIbR(Z2L z!|<G47s`|-0%l<xhNYlq-rVbq*XKbFK~<Y^Y3n9js<$gWp$|UMX7KLD{yuu7sROHu zi}oEnIg$^oo&qTwmo!}m_RL-tZM3PEw7wfa%Xr}?V0FOJhp9IrePF{e5+1sOG&Xv_ z29GDCv4x4QNa}3;{5GL&5Xakp1{TPV9$vvJ#lCV4&8z#3p0bX=hM*VM@ckBx!slZC z@tyari4(N`f%vlKoSW8tBy30wA0^2tKu=Oe$Dw~Dlxv5tZmyTh(juJC_Q#udN^v{# zHC_2SL$fK9TCIb&(gC@5j7I6?GX538y{HIwUY5-Bs59B8>&9pbgq!KgGfSmIcPbt{ z+8V<7N}v-djEo3>PW3@dzAj<<tuGw4rw}2pY|D<rvkfUtY_%(q?>pu1dAbaDqz+wF z(-D$pnXM)JhY-;qrP&3N$X+qH+}K+&;<QnRKAzKn^g|Ji*AiCJtewO+#WI6cs`en> z5&oppPU?H@-l7*+cffFD&OYCKTvj<@IUIlF`k;mv2%U#IAYFHd+QzVfi29PA<I*}V zZ?8IMw{~Nb$&e`X_X6Rhk+d|C>rq9p?t-bnh6f1&=>D0O4uyj?{(M|agdic<<Rj_Z z1&<9ke~+fDdb414yno0?$WSETe0jqgizHRxDf!IYUfyZ!&gsT=m0Q9~0WJ{?D!9@J z(F0uM(!~E#xkvESympjqoKx5im-Y?>@G^X`Um3sVfa8U28$p#v0!<}7wbB+esH)nr z76A-iV5PTlm?cH~moaV8sZC+SC_(62iisLkMr~;bTS*Y)-Wx;C>x!1Eyd1n59P1O0 z+#-Y5(clK^>$OP4tQwRbVLR5_7t0m}p$fu$Xd%@Bl2t9)kfo1DVV97#clbQSH{c#j z#ylP`&O#Y0d(UpmqlZEIf#)R{`^J8GFo=Nj^=Q~1h4z|bz0^}r-j9UDvX$d@<@U9* zemt55oDHgEw?F{%sP~D2FFgcjlL8mw7XRJ|G^HBDJ>=KwDMYf(o8^+|Jw)U<40-;T zdhpiEa4X4=^M0BSw*NE?`nQ8AtgSf`ySa&kXL6(w3ec}KXlIfjl_=&~yuk)QFEv;( zC-gS5Cz`R<Kh9TvOxR!6-DWa(V=5~n@<}-lmCa<d+Q^%f1Rf@*ev*(^cv0ypbIkAY zrDvkTcimPWVnhx-lt_W7WsYUq({{uDuRZGm&YZk;xW|y$r)*zgPp29_S>2`6QM{tH zX!9;*YPM;62Ha2!=o^x6{V1g-U#^h;R_4hQyq)inFoEN%MNu-uR5m)k=Tp)apiGg+ zTSi*127mF=0w&MUAX|ktJD(|KXWvHW@{FF(rx3aw81fciB%d=bzLM9$k?;MiGXW^1 zj3W2i&fAFQUB^2tC_8ZS;}{f?upY^_h2q#iu`p)QoEH3ynHx?1r_!^j$}K}jEjvc_ z*}kxP$^_QG__4&0gxCUdCAz8D;9#84!maf)aBr+bITngTaBaXOq&Nd6CXC$sH)@q5 zU5HOgxVDWoRAe3(dk&#_ybA{}%C}rwv7I1Jvb!q;lR)m0wmg-7SIO1Ea-XS2Jrc0P z42Jp>qj8x&T#}?g5&`f~8JHiX%M6t}ZRUt|Vf|Q49cJG_fY7=jT(`B5FL_vM1V_(V z3X*_~XM&U`#uKdtM+Xkh@+vJBBh%m)xLX5)u$W-p4fPgM3fmK;UyHvs#(}pz6QPD* zlyo?mtm4G;$PKN|%<(8r{4^Pd^osezeX3cB`8y21`liuW60l_3StQUhL5tRtnF5mk zH>$gzkqGhA{vcqgJxe*g>c1{JbzfbF1A=~xq0T%;TQ~bz9qOc)3TezU?d;)UF!Oo3 z-q(7EY}L4$T8Tt8^~LK16!zKL@QC&CctqS1tqe4EINUQ`bdf|1>nG>?0TP$(*S#h2 z@7SVM67Jn@-bi~8ssU~C&X!u=_J+QH9==KZ8lEeB&gnGf%LdQU=WBU;KqP_OAp!p4 zZIY4SE4x=W?n%Cbg8%u!b`tT>r6IOWa^cQ_F6qNct+Az;aoF{^%2a;jpss{d=A5O% zbIa(vGs&qh?pysK?g!SJ5%`JAx=U!R!*SKvQCim#EW1W7WBWcDu%(#x0!nE-X|}*< z*XXy~j?Xm>1zNYKO8qvfwK2z-LHJ&G@<=LjC9TY?oRx}lGEPhoeEyye_V3~5?S5E9 z)Ph>6+M8?>rOviU!)=>cd+oZ`x|-jy=*&aa)VyN7SUjhdIysmPhv(ce^O!=VDh!XM zGq6gq`ZCbc1kd8wCfub`%<jMgMJ>w6^!`}{B3QoM5g2#3SaVO};gAHU+(u=cX?0;v zUVm-FHN*tP85q8^(G{>Vh)B)Ik9tJtyFQaqj*Lm4Hb?3$Y3vlfx#XWobSGm)Adi8s zA{tsa#=Nu>o;ckg60s24xF!_2eQSjgIsyEAP|MIPLe#pA#{QqLCA?#;oKoB`rdNV9 z5Yz^3<t73y2)Qr*!;JjrZ`^~bA1~X*6xFqqj&^tKuKD1k5u)BUu<;Aw>Z(a_$qJlw zYAz{$73eoyJPyh&BHkY|t`CIRoPi!e<(ZS8f9<bP>Wr5$<iFb>&u8rk?6x&ej!)k> zxZIF;zV@NQUhz;g(KoD>aAr$wC#?r>=UDPOzv4hk442JpIHLNpL#e<O%B#$eoIK_l zP=m{Q`GufzLcXfU1q%REQm*RHCc43^yd4efTemim4KW~wII?jNF=UIY1SWLU%ozy@ z3=+2!Gu4S!s`Eg~F;VPQ6zg`mct6h>b7xl^ThFvJ5saodE8hvJchI>2F2nf!T3-tY zgV>j9?q3g4YuE{8Zp%LbiIMl1X-JGDIbK|@d4x=^UU~lVBQkDzM^!){6oZc6tX_=o z@Mj?PyICAOp&@u_XQuUP^YXF1T);yUvvL<g@%W9A93SoYzOOfYxY}8W{MsV%4FE$D zE31V1<EP;&P20*?#L1mkvW=(Eog+>!ZrruSp_8HaFzEE-27Cqg<$DUI2(vKIKz0Sh z^Y3z)#nJY8witmy)k;~6^qw_r36o!}%^C@w1w>8!k8wL(vUmQXr4`f*xim~9jk@^% z2VOv-zs}O?$?6Cx&JIHmK{|S<Hy$6u)XFq-&!xr`vced^^6c|6&gQvqpXIbB3SjY1 z(+r3}@&xq?KLN;;FXIbXgBh(nEr3e=0>p+I*$*L)h}7{_jD_SVg31rP1h`x9n;nUE zzZ7OlqrdXcuc*++{<AkfKYRN4-LrkXA5>|<gqR6X`Q{pA)~S!P8#USjo9>U0B5v_H zV~MA4-)=vpXT5>U%;O3|FIZN$imO#AN<KgWSUm%`aV{LwSQ|RuM4f}|_fz*?+BaZE zMrcgI)nwATg0S!uCa(r_!B2)Z79Tm~khbVrY=y5&W^YWBfwGxnH*8}i@cn)Nas!c+ zHkL^fj`H<H2-Ue_lw52lsW>Ep!IF82IP)Ga$PQCUj<hvDt_Cj2NQjt_98SB<G|D>d z;2s$FM`XUGj24X2h^7Mxo1UAXHF<=(L|bpB){IS%i*)v}H*6^UDC$qp7nNTS=Qlh! zD$|ESYofiw##~@ZD<+YWyCnKexDK%vxx3YXjb~>(Jz3w)XuJ-0ZaHS+obN|u9u6cx zznlX2^Bf=u_+re!K;9OTCj(=zD9qz1p~aEl;kDiSuU{G2VhuKB!NN%)O3IPgxM!j0 zi4+2*PMR3?)SaLwf0F?koIyoGV%vyv3vp2WQ?bIW?d`kU-$f(k)fPGOP#kCB>eq25 z)za6#awsJB>~hP8qh97DXx8i!SXudvw~wN-L|xF_%YFIzTw3&P^O`sa<6~t9`WfjW zm8X%ATdrGav0!4PlN5yk9=r5gPpzLyNlo|d7KGP$;-*tWh6V)Zn9>_0B4Wstmt@JU zNT@Uhxd3r@>deP3teBij3wYwKV*W?hp}SQ>+<s<mZS1hQ_Lv&`?sofKGCO6*Izohh zSrzF;^uOYZs!TrF{N_M$j@iHXBdoNfP)kfTHN)V>5ut~XOnZdhD?qz7vHz&d(&J;S z4<YBvet$DePZtAvsl?-is|%B(ZZ;|<)4pJy@}lIVf|Q6Wkx)?tSO$U@&p>23#gEU@ zVz%OtOBxK#0w~|ZMsx2^c{=BqIEf<xzB3E>+5svHsLos_jNH?=Z@BVh9-Uxb)r)gL zStKNJ8juq6fM8K5q|9SYo`H28l5Fx8!!$rZn$Re$L#*L-Nq*rI4Y6&8*svY0E-l=b z{t~7OeiCx!4o*)OiR`f{={JqK4mpv?H^c(X3=U3HY8yL!X<g^$hZt&Ih^ebWQ2(43 zYDhmFm`@)zqEVc_Rd2unRjcm_YspqMGq`9=FW24#3+X?h-O}kh&^MhRVUffiOVwEz zwB~ePtj=N$r_vA3*~0~CR~f6xm`!4Fha<&f#9}ioVkQyzHF}K7TJ#?Syn*fo#I_Gv z<1%EG5Bvk5o*y5>{=fBV-Od@YwEO8N%9g<l?z?<BWSM$MlF1O6pA<g_Z!qV;FX_BG z{V}0z$Yk&Vt^=+L_kNNW^Q8D&3fvN=u(`k_K#kX&jw`1UoDTK3Yjs!)b+BbJAaB?@ zp%Yim7a^bP-6gbVvYA{2iapS1OTG2Q84B&%H78Naw8@u>AMb2UdGFwlBYL?*M$h$I zMV;mCPJC463pl1JDv7tIs2qlW&apM=j8CZx{n=YH8NbD7qHdWi!2H(qlWVnen$G7* z#^bSCg%Sypt{QLo6;t0__ksJ%&k?KyuE4FWtt}oKVFrhOgy4<?^T#$(g<mcg@x{&& z%3jmkKTr!hgLSJ2J0f#=yvWaWMKI6=Mw0)+KzPDE*3gF&xE;-s#X>%_dwYw2qmovB zo8H9_kE%H;_~}1|Q}q+i)p6JD3Punu7KDymW3PI8$JuVKK3AAAgT$5s#Mab-P)V+h z0zeFlBm9924&WI^S$?LILFgZ|X7~x!lI&ZwL2tc|+8E|F$q=VhK<UW4_FrkWY1@K! zE+XKM_~htlM4Lg^m(dr&<wO8e8P*FT=$t-{NvwiQh74TH1@EPpE)SVgff2eNDAt)z zqFPJFp{KxsOmSLeK5UyqEMY;aKp;f4Vn!t6aWtPM<;6ZWlA@0yXIO@53sbt{5=PY9 zE~QWERapa7`-H`EtpuD|$^7LqCf{+VO&9HvTo}ZO)E8jvBtJP>XsU(;i-?{?x4yl< zeV3MT#<?4u)_kB!L*l+bfcu^tM@q^6nUq|Nt8O<_YZ+gvue$QM=-YA);r~~y7n014 zSDSmPx$p)JzGBXag~z;simWMzFoULR!M9gthU?N#lV4u*HO{@)fNo=nxe1JWW%r|9 z+3s++ovbME_ahzhYXOIV*Wu*K*RR-47q2L}k|&=rbO-gaI6EoK8VTm%fHy2-CQ=oT zLaA&}RYe&igSM_R5)UUCZW%{J&jt2)6a+vIocG{={M@NnMBI}CxzCfM=<e3`wl7{R zno4f<1P0l@ckkPKAOpkvp33ar5|Pk^2j@i&ca?=Mx(H_K%7;h+qQ)3%#IN51f)>wm zU2p6T+Y5a0cI{#syw>+;UVmv?&71x23RP%|=zfYkg*t@2vY#MkUCNohz{#)O7&Gut zJpjLaiGGjHtjcvOx&#^8JQ_yZTikL>LX5W@;}(=~b4&bJ4pJzotetM$R@!!;%{5Ta zK8bwAh%54XYpdoyVXg9r8p#l@5fLD`M3qE@riG$w#LKt2>utI$C+R0f>1;7d&Y}gW zr{xLVaJb;1N^A`fHILIj5tNFJx9t)0+au*<w`wnxtHORvC+b}dX5)3$8_>QB`|N<G zT_;bd7ke6nr^aws0otQXx7~<{c-tb@<&V&EEIU6#@GUq(P<He|%YHUiLnm8bjNK36 z5`2@8x*0Z>`88mR9aq{5cB5{9Xx)bm-3NhkKPkgGekHf=*-F)++BG20PTNkhqkxm= z1&MBE%<WQ(+PiA*USu%6x3F1QRmeCz*!K7tD~W2v2%gkWdG&Zc=P9!_6zKssM`jkc z=Ds*XVtdyZD8@U)O^*SKAyM5SLT7sJa?h@&<>is(%E)HoX&$Ga#evnfs7NsE-QA)a z#q>lH{gtaD%q;}aDO{IaF}|6^b+Rf5Xf^;wef4Ad;2S@K=Av=xcd4R5+neqC!q~Jg zsAUyBf7DlBe%r+E5fB1GoxSE^j@@>+b9pU;!`c2#*zI+z9LZY3Aq6mAWV6L;F4X4* z!1ersxf~jf#Fr3I0x`%GXuAR7wzQO$0=@13FTBdeCP))lOZDdM^zI#&nzYnTr>$RV zP`J7rc@>>&ZEMpl(|!etE-%y483c?9{nrY;s=cb`!BwZhP}#(mn1PMf;}=txrH*6v z3aTX=VOGoj-p>2q$9LXeetCZY{~Qj!nZUI#D7n~vTq4n%^ba17{@3APa?%pD*P)bA zJHCYH8w@q%%3?%EX7P&C&9A7=!<Oc97F9O70$}kEHfXu5wo)}?8K1Dd=%+jz&C?Uq z*K3X9Dwiam1rtB++3h51#qRMF6oC3Bm#vgu+2nFe1-3n-l+&&Z+2sBH<b+F*$!y;R z$>h9hl1e+TGO{L;s9`E_155!0WlgrPii~MC)Szi9VzX`GY>X+g_v0$wA^7SgXGZ{S z-a-yzJ&C!Twx$*3FVaRnU*LiD84pTHG5HqJWlfh4TQggfa2oq}zk9m><iWGi<7W@{ zN88)8<I%$hPre_0`|Y>)@87%s?H2rx;u(7wl9W_EXO_o(0jZj&8m4uZyCEr+T$M_4 z#M{$zm~jp<e0$(Pie`F99=7x%3g2*iiHlLC4`B9VDe;YS(XzWPT@g)m-ZD$AMTqZ) z(ehIjP40*hIbM+a)oT>K?@Vlw5G|g8l?0X*ez2Z3siyM8%eE}iPat+s)--k=kw3B6 z8R_!ntN)Ss^sl;RY5>UY$%PmT1WA$U&=x5fDm(X!q;~LC<<MY-C&225zr1yzGf$5x zVwao;6Skkcc=llQoeael!2kSIGex=pU*p*jW3kmz4Pzr1oy^d2alzJ%pU8J21Oqo$ z+G0OF&M$$n)Lb)0Z~?)})K6T?cgrAboq?WCs}n>`VMPyE0_F0X%~nO|*hxrSGI7de zLl_lU45v(FK-`L6?9<&d+e+RHrR37ncx-n4!<(C*>&(fRhMz<?2sDY!R+VBts!+0w zQ3ZhhWx7d>Q?p$1eBu_*?bP|+ScvksDSQey$2^d_tYqV&&=?0_>|5^GvBzYJVYe{M z;z+tHa!;fx!X}{*YYmGFNr{SXt8{Sa=_MLFIU%wjppFg`D`FG$xx=E(eCzrfTvKI( zkw!YFoP+%hH(f*mc!Tj@*Jg|(4F>qo-yihKpc?jVWjShhS4?a{)s7Z;jVX*sQl1Df z5Jgk9V3|@#JWH+caTRW{aP?}b*-Es+wL4ZWdPT=-v((j(5zZa~U~^N`fdiFg<D3n+ zU?A}weYk{Qsi5R^?o*W5N0O<w<Dmd)5Av&UzH(E~k}B3S23iVBGuOhoJ@{xw)H;>c znVD0!VjcQ1<F)ko!tKUJZ9B~Dfak_e9(`ho@o<qiYge>Z>ib~j3<g%|#+b!>WX2d0 zIAI0VGER#rD+Nyy_2Mm0=|&^_f^Mtik&|bFfauP1N<}_Z%Vzo;rbTR|*k<sqkpPf} zKwxj#1xr1cPc$#JrgRfH>^}1CxMG+w6HGgn?yx0v(XOX-$kX}(6p;wX;Bdfwk+MB6 zDElS(+j8z*Juh)%^Uy<nu|llnQW3$z&tYw1k`0~Z7~?uI?OIwAXLgiS=V%QGMj+yd zIrK+@7I;W}<%?&Tjpqk$k>eoTy!M#yPDjft*qsSmhRBEdwpI{wy$(FF67Sx=)($_E zaQ3OW0l?Q3E)zYPQw(RCO0G((!KXXJ*k6xfWiC4df~bxwagh~GYr-i@K}co%o=eK) zar9&*uD3ut(9p6V7rH&*@7*Q`Xx%K-Rg1QfeHP}%JXyQmr!F=6QI4_*=gCdxqbeWK zj){Uj8@X4!>n;}-epT-J3-T!n-eOug=d`X1@Z^T0yiCT|cf|!KdqqF~a^ze@s|!aO zxSC{R-46AV-z25A1=;Y6hm6KRnj#>G1SjakQOrcxr$@lY4@6BHvsn*r^$@(@TUO)F zrdgts#kw|uLRt0yPA1*3<(To@v3oz;oHil8U}OWR<$50e2COhfaabbMW*7WwX7#3n z-h_t?xCeJ3*xsA^EXm56VzDiNF_#HJ>R<W}S<ZtjR|PN;oVy+<XPT{8f4`O~X=Bqe zd)q8}MVQ&M<Ofz#r)H)wn(t~ai>g<+nlk1#rr<Q6Af9;@#uc<=+HC+0Qy$G1UX+k? znX~&4Nd(1(1X9s}#QG!g5}O+_+#1d#XJ>aH&1x&4_Z?;@B9BVwsk^4q3b`3f>F@CY zdHT(@J`_etNeLB6w#jpI8L;G~3vx1_UWYYgD%USz%^DhcKBO7d(2)WKy{P9uRLibM z|Acv?wRey*x|Y~aJj!cGnhF<8?Z~w|qT&rYA}QZLW2A${JL8N=CEtQXM?ea-NGjjj zF+~++n<c>th(eKHX!a!uwP)aOs7K%mI9Q}t@^}!!e=RYPF095=-w?$#*eBV-_PdD5 zBFLdk)+M^Yf=eUd^aKI}UWFwOD_ooc7f*g4#5f|U;Jk%;0BL1~i@Fxc%+2qH*$lf4 zPuPK0yy3`wK($u1QoKL$qRdf;LS<82fP*UNqFjVxoGWX&xvp!fRU$~xNI6u>xz>0A zYbsB~msgk;cFaQ$-mWBy_kkk+n^yS0HBophpH=v}wY|0V{gxhHEwm<#lyK5Hx}Fk& z{^V<RH;;N+;}Sv{M$0Vf-u{w!_%^qII5*KXNaVTH_tKpgRZ1o*7Lo;cNDjSQ<oU<d zvJ9@G1g8Q1P1H{`hlaqs7L3`tt+M&V6`$g*q_ZMd=Gr-1r7!t$lPW=T`(;Qwat=xr zXG-RaeCVA^c>({Y9{fDWR0aWDa<(cp283bdm@7>YMlT)EUwNiJ0Rzv!$rV^pl1qRh zYg3=F)n3$J_JaXiWYcz)hbzR%SI}jcc^(#b=Q|IA#jn?CfWvrugU{NO#T<YzwMDL_ zY%h`inirZ^-J#M!&V=fA;dccpxEL>Ut84V>euHr^Cth^IvXf5zu}_K2g7#riITa~5 z={0q)r-AItsG7|bZaEEj(oE@)&U*tARjEr&F%V|CmHZgqAmeRG^<!$(hb4V_TwvN2 z{AWmkGI}~(XjtqHNXf7iDJ?P5q(CB#JF^<cu9I4}rQmR@meBEu^^EqR>SS)@4qKo- zw1<#onFL+w_NxWD9=ZF>aj(msrO3Eyl_XrKkYoT9b_V$ve03!sqwEqk1ny;wKc~tM zI-blGAdPxByHQUagj)Esc191))y&fN?+@I5$e!Wyn%B(B`>m{7=i2=;_tf((MsrYC zjd0~@t*I0O!!>26O%_H@h1f{)7XSt4v-{`~p7%i^*p8@rwqsw%Ju0I<)z?_LbvJT< z?qLh^Mv(_Q;=Z)x?DX#WX4Kp0*^;oeve-PWwp2+D?0r;R<60>A(<Z=Cp8&z+q-j_v z5HJQJB%LQ_^W%AK9r6*^^%4mp9u#*>F&t44GMkC&6o0E)l=^U~4EDU@e%hmOt?GbD zn20Gwz~LKUYJT6J5syuK!yk65*Fwr2g-03L9JNm^bp?b`Dj_aDq2;o*HZHxVq{EGK zDeLFL04Qs0huT_c?Dm0K-?x5jfqC}WaE0dE5^!k~Uq<o@b&;?7e(jxfrTuiA#>KoG zcxvVAD6R(#9G4|N&5w@i!DEWb^<X??A>Y7wSM|(3b2~bW-KS@xJ3%n$)xcgSEOL1f zHUvK_2HzwU<2)X`zXxE^(Kp+G+FI&c%iU=508W~(Axt+@wNg9%wS;B|_f5iW0c-aF zs}c6zF>S~kf<S<885-)Z5mN9isXK%0dBCj$WEJVGuZOi4ZPH(I{n#Z&@};;Y(wpcC z8kpRx#-$A+$}d%l^^y7K6gc4-KM(~;YfjP`T^66zq0^3|JOZkTPqK$WZh8r}3y2*T z52c{gGKxcG0*O5!07L(>^x)p&TjA1;`edQ1xzSflQ6)k7a&@#wXI45#fs_36HTfy& z@O{7qz3W=75S{Lvu!+rPXS5eIuLEp+=s6`-rO1Yu0XZ)T84c@X+y}x3Tj=TxcMUdR zb{?j)LWjAJlq673j53l$Wg!VQDSJ7-$Gv1VF(p93h%J0fem1}1NX-WHm>OV4hUR;G z+T%PP$BC~|9&$&)$0=~$<;a6g?V@`*PL{TsKS*MIFcgnuXNh}V?@iNL*V(LK;7$tp z@bnV~0RaL;xH^rC`3QX@d_A+$mB~}$FUm18`>cpXz`-XpJt}R&SePz~=mLC5m8}<B zrwxI^HrT}AfMn&JPHR(pRGxQlAv?|E33*p~L#Y?~Mz9)k90?Mrwp{wZ;^&(pFF{OA zpma!?%iT%+IXJ%F@n^go3Sd)%nu3)wr1#golCT0CXxrsYBqILnDyvTu4u1xNwa=Db zHVQJyys^vFNPyIs9&oqa;AXE~zFquO#p{pl*UhJj<xlLvnV?H_>sByt0wZq^qLC}g zL(>Q|Uasjp)MiaB$y%WLScj$S5tiIuE5h?(5$Lx=RG>t`{rYYCl>o*FhrapS8vMn; z;1tAfm#F(&E#czug+IDLRXF)uVBo@Ut914eQw|(6BMkrd0kvYWsQujL2ZnpT`M=@h zYW5m(C-Tz7RkIxGn=>H)L2r>A0;9!mQu8E~F7!V_eSY($5%oM|-B;f6R+!c^qFr;V zpr7FooW214uIZ(g=%dG{u!*I23UZc?==igYOzF?*Pt4LvRS~p`sH8mS0t97(L^^Tq zUQ#a!GrUL>N1>Z@3C)1Mw$nsw?=?PyR0ONUq1rT<FEQVgkwyjxGeGKE9Nd^Hou7Su zPM+N=<N4KAVdT5D5Du4NT&yw>`gx1F({Uz=hq>ii1w+zujQrJLJmdDo6ApD*Yw=0I zkWkcjZO#VQ+yK=Go8f4}dd*-1)LYRGhKLdWbGIRi&^$L<L=n|n!278|QV#v|m|URE zZ(BoBeWV``naS{SsZ!D$j8%}f2zGla_OrxsjRK(kO0!sNH_R#|Lof#JntGvXVq?uM zY(ks=LWsabT5m&D21(siRA2i!_Z@PNr-0YvV=afgT&ys51gOK)1xVr1kI4c65i=g5 z-Fk_-`V!6CW1B+<Bdg|RdIAzVC(t1k=y-X$oZQ{odN|qoZo**%qj|E3FDAG|jH9*- zOi`6-adB!jq=0tz{NLjesabhIy||_}{k22?Os~M?cJp+5=%j7k7OZ$Bx8Iu#D&~G8 zOrYXfVQx$xmurmusK9Kr+r&GwMG_aTvkqx<o9o$7%m2I~7?_plYKNM2TMjy`xS@p> z*vpi<m+ZhfOA1Q$gk!m+L?r2AEl@ayl+DQWtsoI>OQ{XsT9IN6V|pEukseJnQ<vG- zaiLCn^bk}l2;hQJSO@D2ANt&uKv1rA+t)F;N-DixEWJ)H?Nn#vj$5xv5DHvv#R2BF z4h?5$*A<}_*{%98<XAiBr|E(VU|PcsoYdK}O$m%+P{RAVAZGJ^vdr=23nRh)m7~}# zyK0oCuEz{wcC~E`Cx2c!NVuNsi=esD-5tjx+1zBr4*NHzlEQK%wQYCjIyGdCj!+8; zxZ5+esq!f*jVy^6aCY!MdtbdT4ksrVi^kqo@c4bXNx^9{E<P!^iQF0rXFFO|Ri1sJ z1W<!-CYS`jpd4H=$3!+7ec>5>;XG1bus|T-h*<klmP6M!hR*nMPu?EoIUu%7$3>oz zKK2Fw!qDe0ae0x=zDO##FEg%PT7IEj`JzcNzi>S07m!VsU(^cqC11iL^s7TV_7_Ry zJ^xb9;KlrlX8o0k)-v&WC|C1-t-%mu&F0CEfZs7KO}^m2j?>R?)uVL{GlmLjixt^w zXYI6CS(x;pvD{vv{;zBNAGdt_52^fFiO*B=&S;nJbLgk>Z!Z!D`2&l5)ADWkXlQ4} z@t>!kov{=s2HS9Nup8`dI3c~YC^Ad-50T`4FP=q5@dB8Jez}@a91_ir^N~7tW6CXp zZbKCL?-l#R>*~B3g;R|OUEtDJ*Q47L0krcJF~rWAdM=cpO*2oI;>arwvCPO*_hB@H z|66zop`|#A4tuSEH}a*oLbKagXDfrT_$I)?VSqkOwrU10Yr+{%19)=bFHBa_8iV22 ztp-E29}D^vp1<MiXgnEOeFUsK1=5r2d>NdKz$BfT_;lc~6hBkF0JV;tS|4Ws<<~Wj zPd!x>*+?L*_1?tC&f$QUKjY=kaQ%(xOyTt-gpX*}Qi^=z|L6yeR|I|64|D({9P)>w zu;iYb?B;HJ`>8gqmBnuEi2yA?!C60Y<GNCHp%&?~CMks2=8s+~|NQ^al`_-)cWzbx z`fEjc+AF*rg6pPhLv|evr~fk-PffrcNW!ZaR=zSzz!j{&IwmZh`Lki@Q2p=RC_4rB zxBK1|*NWy)cMQ7bj+lK}gGw6xd%dr_P8DT&YrjrIPKf+B=N3yMxEJ;m3?&fv3Gie7 zjq6G<DlBL3zv#N9>#mzwPRn&m>(|Y%a9|f(zk=8DB{i*7jnHx8L7Z3w2sr(e&Q};V zOW03iwQ5*PO1XM3Kz3Sbc*^KIsk5j{kjFQruq=5ZnrQ`Zyv%S5j7ND#ZSs-`!}X#n zjYA)7l5nueLh3>LnF_e<NzUz^XoH+`PUBJzFMxfw0SD54FX}0?(nIetgJ!8bYoj-7 zu&v{-KQ5CaMdDdQpbaf8Ap`|mLf&5H+n5?MsRD8LSL>P7`}J4X_}5>1b?B`5ZFwj< zKg}2BJC1h^FhT7>KpfZ=We;)xPIQBru@O*kOUU8siCOHyQeIxP(PPK-xJHZ~Rre#6 zFl*GNTPrIV&>eRy<PX{)F@lw~!CGQrXvM&DO7^6Gh(@023q6FJSk~2Hz+Hl^zlvKS zg(YX#h&)DY@eMY)jvGRm-HpJFQ0-oF(C~2-n@e%ECU`$I*2CKSt6j1AbNmI^YxJ7L z`bGXppTj9xB@1tz<16h!4^=j;;lj0eOMeY`Jerzivh_Ha`fv=XLB)ISl8QU~SzcmE zinBA!c*>z`F3^BR^KijKV{#qmMCHe^(x)p5h0a_PT2e$&uV+W>Bqg(#;8wYRx<Kpd z>$yJ%4gLUIXl6sNzK&oveJ&{j9*O$3phAC@HUeoU2q$tq%tXC;XW{4$TLK*!CS(t9 z`i|kXe2wX7K0~gy2}ZZL-6enlAs;Z421?6rljjYetD7PXTPrcmpHj?LBM;2rsGlAV z+Y35ww)U(CO>$UK_(5lEUm|DkEgwy$R}NKicK|v3aMLk;m)2Ul_SUnz^ZHxw&VK!^ zXVW=42WnbWqv<`y$OKf>;t_DsI!%P>j$(snhyGT5^yu|CgD8y{a1dKC$j~M^l(EL0 zn<lPBRS2E~Y86;&y=G7s&grYT2oe8{>d7^cEt<tg!WhQx=KEQ}f}Q~W_y|x_TtwfF zzr)Bl?aGA&`D$=Ayax~O-F18*14%7bV(c%33wObWOxef25Z#`^juKuyMh&sw4_~eI z1}l{btvJs7EdD%{QccRFBB|8rs)F|gK9mNZw0QNwp*+!2Ptr+#>dVZ9oEw&!#vQr5 z$sNwH=6#m+!=5PdydK$@57{;si)C1=mwCRV<Y=ptQ;Myj@L(BKYg6&yFgu*%o_t|P zGNyK5Yih61du&HL8(t>lW}sg!$VKY(?P^ymP5VewEmAL=$#wq<Q#p%5%ebhFJdlcf zM#kpe?%arE*Oc(KFxDOw#=;(MP+edx#!BBy(MjBMZ~W<W`Z^BB$YNlkAJX_?Dk5?- z_3Z&8=z@rk@L}m{Y~>Jdx)(E(v)NZ0lje#vRJfA;A25lUno%*ZlQy3dDP<C1kE7zj zORX|#&l{WtLE#pkdu@RKz$-MQjJQ@}sYk5evC}QZ2P=qd2&2R)hX>Y0#LU*W?%uz@ z9gRj>JC~{NQIUV7v@)nV=i)&a1C7>8z`lcSunY|Pl5Y#o2~R@kZrrtSOA(UkW*qv> zH50a*!?9tPoEV~P;-_JaQaUtMTKcNaYyqR>)CM>XRtN)1;K~HA@l|2!;;xBj#xnVU zWv6&)L!A#u4w_b3a$Pz)7;dNgSQD4R7f0K=S!?#H>pktLCZ^Ca5<Xm+#nKd4#O%KQ z7t#p-ivt_=7pE`w9h0yOBIooBQZ3dkZZ=v@$jOrQzfKAw@kd0VEU!MFu^uCP=bdF8 zPpTe#d>N(Kr=iH?JWYNf$m65q9J*b*_Z)rPwJLuyM48gd!O!o*pLatYRj8|_Rl&v3 z2m@n0e4d3J-R)q4t7fI(Qfsi^b1{FjGawKvavL!#)^Zc2CiU-j0#A=d3`|4&(dq|= z-)cEMGdVshj8Qexf<fVF`S({Z_w!j0TZ-O}m?0pX{{neU6sfqypNseiFfCdsu|zw< z2J+a5i^x?|lU{L<1W!X2VY6z~!h$*t<``!o+^@Gv_9L~FONfn_H20k48AzX+qw7A3 zyhlyR)(Rt{j0xnC7JIMXdd2bzb#=+Zi{WKm442KR3*@C2$mLG*ch(8zRwi$VZGyDw zK~|KNb~B_?4JvqP0)(zpDXdwGQ7+g;*zK)NKS(EI^a^VO#Wbz26r2taj^Qo2G_jWB zraCN{2Uar+fBvkW@Eg9P+cY&uz1^LlNenrKYrbR^H_lNkVH$KU>Q}FHo7MpLir~Bs z$8v{i<=}=jmCPO1=(&E574CMfQta7SZ&gHxiYMb`(CKt^%{Ov3=op(t>qR&GHc4m? zA3S`>F=wBbi#X$A@wvF_$4mGW>cab4^MN9MC|WFICxm!0Fbq7Q>Uqw+Iolh1<rt9a zV`-CH+gsm%w>2;<`-aThbCm{-g{ZpMt8s>FQd-m<arSr*b{rVhwxi-IndLIisHB8* zt#CEM+m~ckA&bD6WBo>&)#9HemxgO_Xd_|_x7)(}7@3|ca{qoqK9ZSy&Lhk@QJkx# zUFA{YVj%mRE;W_H+@-6`&1|({qRHt?fUKSuL$92dZyL_aNm1k&sT@v*r|Re9j@+Wt zjhakn>c_%|jWwA|&6<!!CxD6GR;t(rhL5+t&I#`nl}6`sy6m=Q3dZusNWdt~1KO(x zqla$LpQ&CSzr;*-m_Snt*<<E4OxaE!qkOEDd_n5<${6n?jE1hQB)6rKI!^YhsavdE z)<Vy;B5x>kIqhQ2A*8O0a+k0v1bP^j{FIm}&~J`AY`Rv+1#+41u&rZ8s1@(K^ET!E zoqQMdZ*4!k|LveFa^!jq&@e==!eq%OS^z{f`~2m=kwl53^lsAX7Re^FC}FQ#-&WDY z`@A~Ct1tL}<7(D%QFc*;^d;4jRyxR8XJbK(^AeU+xozI9EjiSQdweHUPOx2kL?ZSM z0Bd|ivSW|S*t1V2Sxe(NW})Of`2Z}KULR$_=Q(>%bAlXBx-aH03FZCFlzRsqr9Z!< zzv+!Bmx#UK*IWMO-fDeJe*1=h@yzmb=$hfg@^k2xai4r4PvI~36t?9oUcy88<5j$* zXH?r$YHdb6`o$$iWSp#`{H`fgR-^Ig$uoJ<TjM?1BJ%tfimE23*8hm8`iF$J7CDP` zObqZcZ)AgLZ;Tvv1AeR~lVQ_9CcBw{rC0k3S?Iq{0+N?~$voyfNiDg!3?z@{bZ=}y zT_@z+Xo_}%t@y<9Pl85nW))$@y>xMf)?F~Am?&MDb=ezIW>5yXlDQf9sdWW0k51xD zClc;-yjZ1km?*lzQ!VVHMSg;jPTx<qwkKN;ClXjY5`KIHz&TQ9;E^K95v$LrsQBnZ z{3$MHMY^meU1bg2HME&<t$auY-g`P;ZxEWJ!|rgH!2@fv5edc>%L^L{Xi~j9&Hmv6 z1lBN=aJPIQz%@+gX^|Z396DS2iB9MNtsugNGznKFmQPPx0f$l-DiiK_mJ#zTQQsBu zU?wi*#ON8q6ADRnrOa4&w*@&kNaGoK?x!hwIIRs;6}yh#A^lW(lC{ZYTqLMX0CFWI zpIalS$K^|8dr??mhXG9ZpdV;g;3*7}y#o)yae}++6m*ddWbw^SMm$jnx_29aw-c2D z)o-o^`Ha0)6{ZPF5wQN|@Ul1=DG{hyk_p5td?EjKL+;J$H>TZ&LQT>xIr{W7M{u_t zq!ej%Vr#c^BNd#*sPF-2{iO|NY4ALWK4u_1#ubbB%N!#)Nr>UFJ)KR)S?%5DMZRvC zt(0h>GAoYWYK9(6*=W<Cf1NIb71!(Ja4jRE-+HnC(wWsL(45N0)a%AH(wDS~^TvOw z+b(l42i5{Y8iQ>G1~&9FGGK9Mp4&^M`4%RsrlBiXzuUs3xk+@H_o{12SfOj9j~KTQ zynEva)(~^%mmE0L(iuvooQ;zOIFVB^g`CG2Dz<f<ID1Scy?8+$Ovxv#NWm*j%Mu55 zLQTW>V=OWuPx4xcPZ-^)aF1(Ift7ZQZj<nc-5dvbd-%SFEz}jt(8PgIq_8p5rZ5PV z{TXg1`N{nXik-l&bD>=+jT188W-o5E2MjFO+Hho1qo{9-in&$mz~j?!jtqNFGu#|y zH8-8+@6tor<K=R35h@B0r3i8DcGl9}F_%)b@~#YtJL#)FvsI8N-ioVpXi=Ii#0Fg7 zT9RtAP5S%o`&(Fgv!<#MeQD|DL^jz2sd|sT^!%wF28$Xmx8S7L+IAYXV%D`B-dJf^ zqd+~AcwoI%1UJd+XRp!;k^j=b?0HS7^=jALDVxjwt?jLE?>-!K0}Wjs90Pg0oR?I1 z9+iufz8~EIV1RV4%CrVx)IV<!idFG^&9z*=gR1+GOnUwf+(`ez@Q*pra2IOGUcytc zdJke9DrSYLrxE9NTlJ>MDF39E9gzxaFp5nOM9X4^|NM`D>~;QJR~oxq?$$M?DkBwJ z?^Oe*u-&b@SNdwI4VdD0Ye`eU&(Wj;S36FIju+rK0C4H@lQqUUBeSq-FP=p(KYmn3 zv$AZK(y?N5SaG?=lK@loHKeI#nC!QFfZS6<`>BIz1Zl1{e3q6V-Qp&*PF)q{&SAv| zzaHZa7xyQm3KRsa+IzM>-1h!-Ua({RGcg}&)qcJ(>RbJwJ!LPhH63Vb5Z!D#ybdHJ z!*-H6nD#al<I^ln^cwKb(8<QT7Wyohq@pG6w#=z&pzw(5dRC%0a}wRU|J~NMrv);4 zn=z;Hsy>GR_t$+EFWn7u94_H3kSa;8fPZt8NZSucTh$K-<O25&3n<DUJ^j$nXv*PY zoD}zSlp`3NQ2L+=XAx@uAhmv-wIWJ3H4QQIE)N;v#sDRT?#W!+?*_`KAARn6y6`M^ z1HSkrIr<2P3O6fNtrQ^=$FcNK=TFJ-Rk}mHlr5YUB8AZTkv)|M7HQIeJ9R4)p-qQ1 z|G);V-=FsTRd2|*>v{~e&b8e}?A6ei<d0bIE6474)>lqk<!Y(?aBpnV4fIfaMg~?% zVWIgiBsm7(CryTdKuvgj=?X|6{PX?z@XlZlD@l+0<IMr)#=y3xSPk(<RNG(;>AjtQ zetBOG=wbi;`2E|>!QT5LYWOj^pptJi9u{1r3e@?kO#EZ$PfsX;2Fwt6|JC3NspKXu z!^f+<Se|NgdV*DGFdGN`H(ympi&Y^dt|>v_3t9I2^E(6RbE|*w{`~#u5EsGg@xQ4T zb$Ww}#c22HAT4T%?hx`FfSqJ!TRLS6xAY`Af-{S@;U8cfqUfGHJ&1lCf_!l@jMBM; zUPp)cj=FQEa2X4KXfSfqU5lIC!}jh^bOZuX?dRm=+2>_H>hWp8aUrpEtv2ZeJpS^{ zpx4kCP&3gz`Ms^*gEO;5$geoRb;C(w`SwerckAP{`x|GnuB#%c5JzA;^^V3~ci97t zzBcAkvcF#r#-2aMCbq*p>VW@>rkDF3hy}05`W`>V0PVk;n#w}GSv;3CY)c$Mug1bN zkEuIG9dL&o`NKqEyANQlPP`H*JQUw-NAzQn#GevM;5}twb#kX0-NCG9OLRw;39)2& z7H9DZWys}^jYg#1p~3-qki41Fmmgz-Y#a>JlaK~&AC+p)=I3!SFK=UMbH1;O^r(oX z_}dw3U}Ug#p2Q`NFzMR06ZxU^9__g-fhpklutF=a1lLV~3ES_}TN;#!mHgmn2y`II zTqZn+#oX|(k3Mi}Oa1jC8!}Y82_S#M2c?Ecjvf$0o$Mop>g-d#>w>J26E#M1-QYgE z!f=ILEstBB<^#nDO?R<-0pN%B$qm{h`b(zCu|T>bQCp@`_3`gCjG0(A6DA0wV8I%4 zz)i_(UJ^IKVFE6#@-wN!oxyo0D?MYGfv!Y;j&)-4NwdXhjpLV7|E6$Hsm<87aEBi@ z(Z_ZjHOAA-kIGHQzHIZ5d<3*4=0x(80#l<o*(K6SmUFW5b)kc2ZmaPZ=giW{yvU@s zo+xoaE@1En;c7LjRt4*z&k!gayqoN`l&n-TUng3pThG|kJ{8lpML3;WGwi5;Fs8lK zL50aPBlBEpBTKXT@TabKFqXO1mZ98F%Nd{!i4Fq7F1frpabJKQrN9JWco<Xrv(t7a zozjw+cZ?(<=cO26_avc%US*3so`;O4*lqYLtTi>>+o*5dNK8myFb((yc1S3uN;RvU zpyfOT<WkK}$1y4j`*uUdjM`kxu{T53OoUS*{b(AbJ4-NYg-;LBnETdbwv8pBTLkpr zBg<GInPZ__^tA-g=JTh+tIaI(sk9Yz<se;k9049*0Q2aA)INYsyQa8ve>@%!#zzzp zLd1z^8~?ScfEPc`h>2kQRm<1m$XuUZ4}4-3mw$wvT`Tgrg?}C~wQyNSDsg@#+)n{= zA^R#E8Ff0S4%y1fIhI`-#tdt)&=XHDh|$6~cRicsi}m0S5Y{x(iK9FDP}rvsCH_)~ z&`O-mRAa{Nl-RiVDs_(J9F~9rrTK0v4{;FrfK*enoq|jSb-MUctyWf_LcB~h*(DYg zJjWcHl#jyA!6ox{gYM}VR7maw0E6h%j(d!d@XjTKuhgA~j5f<TS`2g&N1VkqL#}jj z!Tyc^-s&BxKs@2=zLT^cY<fVR8j>I5E_Q;Y{h{AEpoMq*i~xq8a?lTPEc9Exu;Z{h zJw-y{9ue8#=en&sZiD$bF(m#WXY5s>#L5@k+=1<m;dsU$@-*uMu#!9N<<JsR<DKs* zmfayu?|mGdC%20vpi3PGx=La6IE*pJwQ)HW)^(yV*J;qk!PZmBVY=n@Ok`KZE2W(1 zONuN=iV5>)%$-VEk^tUIw>XW#b|z$*w8Ag|;%bSo6+8%%b2E=>`OA=GHq7c=K~zg| zpDgmDIx0|ewYC2mR<XX`y6<fLy(Y2^IAvF0iF-EcI@&#~kMCdgSvRxU{6c$jG6xpA zpD<T9ym=Pvu)m*S0HAw5w)e@;cFp_U;QCGL(^Kc1yvDuh*<eDRVWe<L-12deXTG*< zO*>$K8Oa6;b?wl-xjDqFTES}l$<&780M<rZUBQ1O$ug=6luLncI6qCjxI%?S(e}-r zV#o*&*~y!kv1OH>rT=nn-T~5OU^VwuT@aLY_-VCRq{kP`zZeF^uqWb9-F5j{L_JIH zbNqoFK;=?wb3Y+b%dveqrF|z;1uuv4_{W*QE6mJaFIzf13q1I8nGmTe+eA!H6@a<i zHzJjBeGWve7V%R_Mu;fzDIGoa_~67>y&XDRdBFp?GdBrs+*DZ-Tq7=AAp*WeV-5iU z?ly&5c)g#b(=Mlc?q@MpD39{9v|>lAYZ$u739Mw9RPIT0y4{ei`{P`l?)?=E9<z6z zJ;{)F@!SH)@Hr=k@yAEP8ZhUdQjjzTj(0OCn~%n%Ja=oQ$crr064kF7gK@1A11}SH z>97@$8znG<l30QrzK)-2WBvXR=cl5Fx_O6`-yfR06WRzn*!&N{!I>X>R;StPqe62` z3QfZZ3FHAMBwV|&M$ojsw==$jUG{oZqNWdjqvCUbk*Zoi*0{t`<y)^!>$=nZz>xd_ zAh|LB=!1#Svuvkpc>o=QFui_&o?xFmIPV&j$k;vhnIa7LMVVm&A{cZQx@kL_ofU64 z*+bTm`o11d3~EC-LWum6Q{x05UfZO1=MIVGElo`{iQix)tsh3CA!k@NTvO{Hj-_#9 z1k{*IfVhhkaxJ1T@`Hpg)^jiI9Fd2r6Xe&@S&bbe=3A=i%uT5?c7OyCyGXngsb$M? z)IJqKM-NK!5r$jO_0BQ*GurNEtD>Ybmn-sU5%(9QuI(b~z~QwzXiJG;OlsjSFey#y z?E<$S$7febT+H+H%(B}0EZ9v0maVLH;DIVEsz;&2x}K|+Cs2!@H)R=@qRyX{tvyd( zoVQC;Jzj#4Lfc<Z!O)@qK(pAci?eWCLm=ajjWRIh3;M7HUP?g*wIA6ojm0|3`hv7B zBc*4gs4A*q>FvC{TiyDu+X_MlQID5NUOY5kGQ@gHW$L*<6MecS<0<1~ayltb0auS^ zX)#-+B+$VwJ8;K_ERZB~F6#0VtGv*wS2b6s`D($w!bc=7QdNc1<brq^Vu;ghfoc)Q zUw1pK^`<#-^oA>I>|Ih_MP2jA)WQvtdWbS{r*0-v36eJq!_0mRC1z)KfMbybN!Sw~ zo;5afjhskY&70d6uHX(?3RHuDN(!Q&F_~>eYbwP|cy$euEt#yS94V~&^K7vy;k+nA z7T_b;g2f#7f$wWOC;TR^PKVLa>gZ?@#EFsJcY;=5M2gE(E+Wa6;Yq%#rhxmTKI?6X z7&uPFnGZIsARo*uKi6$Ec4nb_!icR=6R+DtmrKN?5#Q)Ji@mc2KhxcCwj~~#z{2yG zpW|62htP++;J0^Rm6=2qi7J9rIof7S=k~iUytPen+%m<V^kZ|K+|)Y&7s&}A5ZrWP zj|`wh&dkA?kwW%cDLC_Hmg}_4o38=av5!UlYS+<sv3|ipnJcZxorJiJtAt#$^jz%+ zHI;2znw1XeR#HSeUfMS7(tgX@&2Y~cM=;Sqkx}XzW_EL(!=74LHE#|7v_<UqWHGX2 zd$k>pe&E%hObrgzM9roP6c`y9z>y_Iyr3fi?%NI;Xr0vP0X_eM)Awpdntz`cFjzm1 zaC8R4`07ghFfHH7W$}>BZ!FBazx`|L;8Itb@*QYt`)lD5o_lx`5#%cb4$S9gFSEax zJ9sfMJ>Q<yzhO4#o}xn0!o{j!l*<~Z44l0LeaK($zut-7V&ShUUS%#P0a<+sSx>c| zqg7cl10f-bVi$+&um1WD(|d7~$MW)0${7i;O~4z{Bg$H$W=t$6QGZy!rZp*A4T&MC zHKQ0FszrXjTys+?ylAyFV60gcsLD6jm4xjQCQv2%65UE`#ZiovbzH^8i4T1Uo;9s> zPZyZW3H>e740r(iAe|MS$FfM4i71$5<(#@f4pjvU7+VvJ+sf=4&hxIB3{ESei@c6M zef>+h>n2N8eqL9-BXkt;IaX~g(>b%zh#e6teywgI5XzKR0+`euIjgKw*tZD}&2!#& z<}zLw+G67q&R(+w7KBjr{8OBvItU$Ze!2J5@tiP)sDJC>!~5F<9_<OSD+D(Ff=HGd zc*13MrqMZ3PKsvIn+8HqQtV3)D!~o|e|MJ>Q8<1GS*rtCVnY$5$=MGNJ<J8HCQ?D| zmE|&3LmJca7n+~beJbkkOc+d{RWD>!K)~Rk3a`OdnNc>iN+9QARliT`myBwn#oWp~ zng|KTr~kk^_-~sJvD+_Jp&u~MX}*6b2!OwU0|r7BS)I^o!RIBi`AJ^cQw6?zd@>%g zf0g?EL}ZC&Nd=`7FHGa7P;y?dUWV2ip849@L!YrYtp6<q;)4nzc*G0mBg1Dr*|v3B z!S;D-6$u)I$e<73>;`pBIO~+3kWXv5p#=Gjzb{BwmRP;eXQ}e=;08HJ4=Gc7r$*_6 z2HT<^bMkV(riG^yRk@ROkiTDIia;~wVN-d}-Bd_5@o4R0x8M}&Wr{gpI%ctQen{-m z6GulVtp4S#Pg$)ItZ|L843;NM08+nIaiBjB8}suE!s2AhYF}5ymWs90Zc(G~Mv3ue zpTWykqi^TLy6Sk4<wyDaLXAJkJP50ZIYB>4vuPk~H4&1+k<8$Yj@S3-N7#KuJiqE! zj2=m!St<}-ujWoTMdn7oQVF?7?#He9oiyQ1Ov!ZH52A)QmE*^-Nw2U#&0ap&t0%Od z{CUFgWsYGk{RJKSF;VIuvv?NSeD?z>J3?;!M+xQIk|>DdI9-U|1<|n^%c&j0vnzcS zxFPkrty%nqUIB$lF}MvGAs|%`wlxVG#a%pl7|kVji;>p>dvZ}kmu#wkYx~>p9|U=H z^&)UEw7<xGJ|%MNqA`0~?@0pm;R{^l$ud=APQCgI1z}>lt-*~*UXVw6q-+PeOlHqt zzZQf^-fHIwN0^`s5WIpj-~;ASn8NT{{H^YKbu%`oCv?+>miqZL$S^UvC1z?ArhDum zNH{_lY_GxROdLpdjgNrQU(ZidWP&5=IyIh{<|SU=(eS@FUo5<CQ=fN&!XcK?R+F;2 z<~0;=dY<Yz8b{}a1Z4)oF<F=?^w;>(d68K~?qIpc>1X|lqrPLy9aHHN?+DX(nZv_c zGS?9?vYQR0u5aim)9z$IO#%8@6UX`?QLsA?#UUzus9~|nent4*Rb1>vX^)@1Nff(W z$HLdA|NEu!!sd$6UP+izoj0OYAAX~MD0@_yEMDP}4q45F+Fbr4aPG!t*a3Zd=SrP4 z-y0mz2!Js-=pshvH^gX+e*1VWMo5(g!P$3t2eD|nuqIwX;5c6u+qhzw*YL2PeUa=7 zSaN1wRqe5@&*+gB2}RHy0ft6abDoq~6Sgk;*zt_`V;%=pL=^nLN(6Gy%8A!lr49fh z9#*J^#{~Ma{<*h{q9BN7DDp>LB*)c=2q~i*#7)2+Bj<UXe+Ha?@B0Va&NDuQX#_cT zZqRHDND2%e;)(RYsy5!BS~8=0TIjb5pLADTmD(IRj}(!JE#Q7uQxeogVZoQFdoh;i zBsu09&yI4B9=;aN^X#tBAeL4(1WwvT7a1sE9hm%pK#CEl#w_6K03@2c5a{p2?d>5Z z40v$gP*ePfYrUZ<ZX5>IJLY`GJD9_cE}8Mu<9*<pprTTXln|U_tzbi72Uj4IY_%Po zO4MdFcEttM?TRLRfPW#$XfKWASLPaW#8EhxF^6gGMH1U29CQ6WDnb|(0AgsofsWNE zSlBvCGcVcQHLhKLAZw7;KJ_H{0Y2pse<zUG;dMyA9sMJ^ysDO{$yZe*7_or2wm(lX z3EARebOfh5A6V_S4F)llkHhO622`}nl#!L2s&}JfQ-6IlQ*{uHw5!ZG>5<3k)Z6^d z<E-K`NBJ^P>l^{1KxN9RY?F3_xqh|4>(1EtAkt7C+SN``;N^ETM0$-`1?bU<aW&B< zHGr^_dvSJ_%v0Eo_F1lTO{tA+9aN~Sl=5}r=!e?<Bqc(+JwX0Hqom);HXuzSlZdrj zp;<!*ygQKh`m$dR5NofF$nUR+lHafdB)MniWugfT2nN+Ac9dh1u{djfX)yK(P?;Ny z7Ob-}v~evyE=Gn3OaYD%*{9dI%BV0Qj05XmePetuwJn->Qk?)hnkL7yku|QX#ZSmZ zHH!Mcc?cPYS&z+Bc($NOK`mv?*9IrDrYc=s5AMp-nXWA^9apL&{A;|*2D1C@XtROX zJWrOF)wN7ngYmMRWX5gp+So6Lt*#JW$Soi44#p8ux-GAWMz@Bz;Aoux(2#1pUawpz zHTA!9=MIJ5J|({dmk?eVW8yH%V)jg=ZkI~WCE=eB=??#L?<u-H!zs*SN-c4oVxB(l zmjpL)d;C3qkJDfR%I<x|hvP*B%Mc+HgS$XFU63?3tBM7_3eh6#1W(cE0z!3+4P<0# zKsE_{ENYZ0JxktJ@!2x^gql)vitZU_)FCG%)9jtJ{~wbJlg(3CH9N(!obaEgxCUs0 z{~!MjhXXX7E~-|S54?qGCTXvQO+^yRp4td_II3fzjnCDXo75AR2JhVPV>d}}(rLci z@y}!(M&)gR)B5XBTvyB92xrd!z%edT==gW}_a7uo>xr}a<?r(EKPZ6j@ATh)MCGhV zlI-vD?>_+FORqn+#T{|!CIphtQ2Pk~K`kZ6&A9AtZYTH&zqOM#P0VBG9SZ1Vwn8Z6 z)lB|@;?Y^kSz_4NiZ%pZ#GgQ@LjbQGFmHn%uz1w*iOFVev>iSyt0r4C<q@?{FlwCp z9?)p4FWr)8V^EQ68sTrj_rYwNliWo44ZZ*ifPcntkojWq62w282n`Ew@ZZ`ibT%1< zeR;^%zTqp)eqrYJkLKL|(LT3#zzVLJo4#5*x7NPltF3yB2Hy7oW06a_E7{|qVnYdo zMQ-p73zZ=n2%GK(Eq8ZAAh8(1T{1uk0dUu+?a>s8+dI)Vjf=wlG`h=K7ScKTE=Kq0 z7kO660B9N6(H#3}*&sG$F8RLM<FLLD{B7K09-*Dt2=QTG8~+Jrx<{1-&7-^U=wA5f zTX=LA%M%i(Hn;&kJjNvQZ5l><w_6-*!Yo#1SYc1pwaV!xXZg|v16x(37?U(v7jX+g zYF$Kt>5!fgTGL~HCJIc(n<QN@6>L#zYIWmwB_2&}H<ET^=2G@pH$p#9VFKJkzt#k$ zXy3>?`uGWmCr~(LW<0%+hM#wy_UTl&mMVVn+k<E{3Pdf=sLBdvJGMTzM}fK8<<4jT zJwU?0P<D7@sXWBp`$LSqelYoN@;v|&=NP-|G+H<D^ay4$HY`#NgX_c`zY}=5vWF;| zs9;|Ax4s?9Tm}I|DygWsh^}!#u{}bAyxXK)Lcaemd+*-X#<A@U{*69GBj+4TASAHk z!~tW*@g?y&cAN>`C;J(|c^cF}+mf1eOUCTr{n@A1wN_Pk3!G%;eV=FMTpZC|UH4kG zuD><%49pJN%Y{kvuF`YX8}{zpzyHm{0U4u452Fssca8d-s0e?;3}eh-%cdiiVK4f- z#yIdM6Hpdm$(g<1W^9*qe6_6}f);@S7+r+)CI28yv_k1a@rNdl2Oo`Jpk!x-Q#Jy6 zfv;2SIo^VjPu;yXgi=8eoa$56nFPx~HR91B4$0gQn##B(>$0)UR<wN9?Jy1>SkRV~ zgaCi7_BeBAG9wfQpFC(0WQe#aYW5G&2mG3m^Q&lVB=3_)oh0Z^8gb>t`<fMxb*L&= zlFD{wdmBPoSVu6*r70l^b|g2AA=jkfaa+5)jUTjh%x2zI8J4$XK1H6>cFTu53}j=I zXyv`ie|8({3W3%!=a9Q}y>EAsNTrwrS3u{BSvKT@4qH7uDiC0gihisKfDl8G9C{!D z*;I+NA(|T&@qMzQIa^W32EUt)<JicM?=|CJ$f5hV?PFI`vTFH@?vEsn?a!-y>67>A zkM2qk4rK{Eu2(R-ZC;22PI5;UWh780ytf%r#D>54pa~|C?cNbf^(LPU);A)%UQ8Bl zfD}#v2mg#03n;atx_s+o<B`_@Aj1(U0frrfBhHeo;kQu?k%CIeMa99BnlYNPc0h9A z3~sT@VE`ND!Dbp~$)_hbp+AWMjy8`qZhp_PZ4FVvgV5v0$HX_)VK8x;-uHqUP1rrH z0eD4!Q5VR8Os*#1w0R!I<l8_eMzjvBo&m63c``_ZC;Ox0eK;ZNCxr+yRFZ>@%u#$? zwY%<+-34vMWl_4jhM1fl`8?rACmwf)T9oZ6=$tiwZ`%vFbxm}Tn%zkYSE3l^{xdXT zwnRQ7=GK+jk$3F0B%g_O_BoLry++x;SAF_4RtV$fr)dcQjcMiGoTwTE$5F5V0IN$d zvJD-2$_(A8Pr-myPvtU{9@Y;v1>m|KkK-5M>Exc%Z2nJ_$>I7MZ(sM`v1~sFgg|Dl z_5$h09z$ci1*70L|M7zI2b$#|ov5K<(FFVD``PUmla)pyr^94U0=iINYO^U<LPF0< z)!Keh$qDp+73%$f^%P%eYD04D;JUiYt-}LQRpD;1$@H<0EOCUYC-CC0-JU@28Ok&; zrrH{WK8a9(!>G=HW{wG;RM=LU_0MrhSel?9*NH?uIO5=uE)YA<-n_mqTRp8jDl6<; znEU5XUq9K$Og_o0bau7?P%Qu}f%p=iLg@1Ha(H<klLx*11yTpyAN~4l!_~d<%1!KK z<NgLUu>r3(@891VWhc{ggHi--98-Nm$eR`rBM<=R1#h1}K#goS=5`El+kRI345_zG zrdE1O8jK5myAuRP`Uhu+^K_v5!(2EL)i{cm2w&0Bw?eiXE@o=ZV=zh95PP^|K(Me? z4`<(_^qH2w$U-XN^MQWm95Nxl);8aD`{Ca><1*n<U%qU{<BxU98;wMt+oqjt5bO+p z^Sq-21y4ITRhf@9BuS>Z$r#%<-%AX)(Zus7O{0W{>qjM^>{z1SM!n3E4h4mU!(>wI z;Y&w|TPo5k@|%f5#zCMa@|O5|1Bfn%E(ajbf3OV#E8I>z<Q$|f^x&xa1|-zaHh%yt z-~b495+H1chEph{klCT+>%K(Em}4yXK}W3TZQ4Kzn6>U<Bx11AR+Si`Y8Z>u5F@-z zI7AU^beEB4ys<)+HD*mtlpXir1JX5jkJzXkRs@M!_xo*#kPLOtjJ}19pn7<OZLv%E zF(lA%O_1#F6}{3PSmxz7dMK&xTYPlE0V{QUW{=;gzn=j-4PDjimhc^!m*B0SWw70w zm<$8rxKpp%t^bb5g+V4kO*_z+>`LIzFm-f{cNAbPHD`UmV&Ah(l#GRqK*C%f?bBG> z;zL+5dIdx*pEJpO>;X2obSyGG)*Rm1KNUW)`CUVn#hMLXrT@Cx06kzTO~?i#Tu*Rq zJaPOSsClp>z-}vU#RMUT=tJVP!)b68YoE|0G5n2NagqsSj;rKBchH7UiUw(PtS3i# z#?DBS|9SmtL$=jPnO5h7U<E-~4>!Lh7YPB3N)RX1oY@r|%x-JQ0Of=x2j83X=u%A7 z5bN9y0||Mh@D-d8_#uP-O%M`V!X$C}-~-6Lf?qUGmnCDm`=yQJ=&D0im3Uz^_r{hb zl?s(d@QNr?iMp$kaR@iDMnO+l+!l4E`#<Y`(MpRcUIpju61ZX6V8RVMvZc{sMl@m3 z5X3n>B8`(Fb7g@=qB3Uf$OhsaKdtwc1UEM?peWLMvVPq`T$`!^8>3uF!P%hS{NI6g zFyM-BO<VzY5V~ZB5GUB`0!f8qH!iA(%v6dJ;)5F+0k^n!dI0KqW8BdvkPkz?gZv&N zO5g78gSN~b@bxXIIyXaz>5XJvXW3_V5TpuNev_}%P&zjN5qwV}<d2&{EijIO2LNH< zlLS=%JBma>%s0|lsZIfynM0=PhRJgV;f4w}xD7`+!@)@ewp50>%&Ix46`^mS72r=( zL5)U^5RK2Kuha=>Y8V|T;~TEIK-i_)yrYC6%jhF-jA)d<(SMiHNkbn(+n&@#*(SA% z07-4!->|2@0qnzX0u3AxS@m#hjJ#>M8gJX>hK84tq?WGw6TOUXX{U^nTu7{H1O41a zH&!@yA&5oTNhY2L;XNfh2zbtW{sZsiYAKUJ#u<o*`{-I|o>HBd2Ijy*yw#4bqVxDv z!-&@)&D`obXWrpUx9PGwNKGR*ZG&5_@lAJAeP1`vK?@V{`L?o{tc)>ktAw<FNy!^H z{D*gqwYr8he_-S3yu}vLh4k9dc_xH3Myjb#vUw<T3=$E}f{$%v!X@db{R^dbwJSD~ z9d9S=+=fe7exdT}i^H%;NH<(u@$JjXgs$l6yA(x=7cfSWGW*eZ^RijnUcEtTtv?dB ziK_v8kdW!y+qsh^S_IN0Js}(vjWs$+FXn`>=VhLJLOwbG;sLhpN^z>Bp^m1_Njd6f z(}v0=wS+Ue%q_<c^b^50AG8K7_JgBHxa!Rc5*WFr6l)PYX~)Yz*4G&<Pzi<_>FUVU zG`)&-TIXE}Y`1ksQqvn7eimDrZnWLq*m`Hhq#zUZ)alIQ$9Gl&y`G>Dd(2jHggBiI zlF{1BpWZ(I<)<gF)<$59;7-CGfPTD~4T3m(0tAI92lV!trWdH0gr}o86o=uU7^v66 zL3#F``?euSQ(+eqk5<8zsjdl$4FNb|eTl0K3?}|P8oh<Vi`((F2N*O45OgQjZAFPQ z;GYm#mj)_}%>EQ&ijC)9Ky}fZZ9p?$)8kMipT!uX&U!E1(^>44?FS1BOk;#n;lOy% zZNsy`?DZxZ7i2eDkZ9)Z3`n=AUq0l7I~7f|MIyKL$sS%>*B7j&x;Nl}qks^sJ+McH zleBuO`u^6ngEfYVx1=N;Fd(UDhM-2;$Sa{N2*v`ZOwBZ+o(hX*5+xwWOJ^u^uMf}z z1}@3m&D4_{u3}M=Kr}P@#2|n#Kzw=(IR@(@<vP_$BNG&SZVCSaz9M)KWj3m%f5S6{ zSLSji!0^m^66$%quyV0dxW%~@#SGmDf<xXyVYd=(<MecC8(O;_uu2dms@R^V&rQgt zApo*>5^+_D!p?;awaWddz8ycU+?hDeoHi8hqo#1Py`})Lbp*FtZ;VgdZulUwK}2?i z8aD|~gT(g!82*V{iG7?8{30DOK}Eu^AfzqCA5L3L{R6tcl;p>W9jt#vGxe3N)i4wo z!|Cj(?K)_^2fmmlHXYV4VA#!ZZ9b?SG<`K3quU)&a)k3``D89;Ewwh+Ckv|;`l>oB zll)^7DT(^02Ma2ci2lCqDj8K92+&R^-YqbMao*JGjqRDC1Px;5gtfKqk|sN9nzRi^ zTm8>dPO~_-YDZhZU2mga@vuha?SbGf>4oRf#gnZ)v*f-C1d7)H0y~KzHQ#B6VJ5=B z5K!^N+<a`*yVKV*U}xjtUgL6%aJ94psv!Vmg^-!KUDNKnCXnrUadsAJL+n!RgZ;P6 z(AD<@k+(hLfp~<N?i`^mCk1%9i-byWG9Et$y31U|sb??(hJxT-RHmhlEt6?60OJf? z>%l#M1CYca%5@d;fGh}&96L2htNB~3wE-cHRT91o+=J59zC?QcN0RSYdHNO~4{W>Z zCK17?mYx!IvE(C-CEA>I<#Y6ipg|IX4G-Qjj|fX+yKvOXNWvhE%2cGvNk03a9=V!7 z7K5^UYS$?;m_(^*rxT)!zxjDRg_o2>OQiPbA(jI4HNvf+?gL!HQT(Ni;~>HbExK{> z#?kYQd1t~M{^nzbMBvS0-f+OZ6N!{{#Mt|f^!P)VE`Ga%&eMJGNK1Th4`Iew8^y|; zM3gxRdhwT8g|S%}RLFTMdG5x?6Z+wHQ)h*IR?u%0e=RQPzm$5UmR!-e)|kA&Too%V zi5w>0ERMB{c^rPYMzXR5yNXY`-L>g@tllf9=nd9-dB9;hwd~=i%C*zk0Tn+Aj(Bt- zwFtSPJjvpughSYkQM)!C14MGissNx9b>4%(smUTFBy}d*M?4$Wk_nOQFT&fLpP505 zzn6TgY0p{9IkQ%|mM}Z5EO;+5=|Sy2fBIjp-$!=)jSh*WS0Nene*Uk2xmA9;zn|<2 zfAV~G=D1XNn>;Npt_Vf{-X?$!K`6kp;(d|40DKN|bb)fezzzkERNyEGW#RS9w}a&S z{bz)G^~2Avl2`djHmfqsA)O?zA<GE}(&d!B<=7Xs!Y;iBUTQkRbkpX({)6(~pPVmd zAMkz|^&qJ^{d4fH*FRc6>|fK5KKwj9fL8|x?+y<RkB-(3kFF2yc8?C;xqsH+*EPLy zzo7gPKzzGL$>a5Z4|?v!Aw0f5aDN{4dxzE9!2N%J51JcZAC}jLv;JCtbms0naRvre zP5v)Lq=tK>_ZqNNOL#Ty0WSF6yM4_Des_3x01tr2L=^_!p7UZKbv^D+(y4hb+M&FI zOyz0yYytk)pgm{#!951Y;2*<R9QIOvpSlZb0{$*;+71t~+vP8G)Zj^ZIHPAj6|-N9 za*Pju9g&aIj~S*}U|$;c1N*P^W6I9O8EzVIDI*O9#;XFBzq@1Ldz*)j(Is>8*CxbN zLL5hLwPFDzYkHBEIb^eeuVn)a!My{oTTZDA;bH?2#WfXiFfZ(e?`lZg-UT|Imi)cI zaQsjdaI-!=FI|s^orBFmvUx;V2tqcoVP@sRWqP&AE@7}k`C#of^3_a`!MhF6L6Er> z>mNTt0g!%4GA)lzCclCJ(vGT@pT-51;_=@;JaiScW`IT8^ya(pe#KrWjSBKX-K0eB z7!Nue71sn^27qf&x8c^>hhMHEWy;`yh;MaKTtGsR4n+ShW@b~%r2O;sEBBBleVAA7 zPaP~_AG+N%_vuQi;ze2pqI!oMQ^ZyHqNsA*s_Y#s1cx(X^s2e5k1U4gSvu~+3C2-! zLC#~>Wp@)WNQQ5y2YsLPZ>o4R+_&k$eFkR2zB7*4^kC~qxKR2I5*e#&But!s3r~*A zEd5|Lv7Zy++NM+w#baO-dd+SLPQ}k}_NBwBG!V;J{X<Y>+=EY_f4V5i<JF1m2UG}T zAMI&{?wM|ue<sMgo-eb`Kevv|L80@3!?tQ`s;0d)%I$riTj7Xvb<;+X-g73Bf!{GS zzcNw57-g!BVkfA@dICfp(@zXeoIYEx)k9_}ZY-WIPfSQv&GVz{97OS8P&q=PV(z6A zcF0!0cpf%W^|EjTS^EV@*R$m1GZz0LiVz4kg?&@7;HeW($g`M~;}Azz``(AlV_)4S zY1(r&GPH|i2>cVwNoO!;oL)q*8oqo+e3Gm^Ia#z82%6qVwvIf27dZ|yB{_xc=PkQL ze?X6D>OF;awLpAO$vaT1qsVl5izE(m5GQ@uuiGN~!6ODv_eKugoT@)S0_NtD+V}(F zv7D&H)S|e6zPgG46j0JVK=FR^IXDHuAo;V}sm8_8*(IguztQh1e74^0+hsJ4Cwol~ zx7#MuAMP)n$#5DCrHuBQw;IdEgXnmg83QY$&jU-D+(5Bo<5FrtK%i!h>3Cldl*OX7 zRAV(F8}O~67*rKxhFOWb#`V>j`D|*(A`#$_^h3A>^G#D<dgiLeo4IxnKF5UGOtHU- zMU|x-g_i2`U8*19O178eU4h~*!Lr%}lzscDu+S8TE%gw1Zufxg61WA9x>k-|rFGZS zhg=L^%A%7|X3lrcURc2)ZX<PS!3?k}rNV>!NX+jc>MGT3O2KKhfA0z)teY3}JZ{{5 z##5=082*6z&rC2zFcWxapt;bgBH9aoeP~NY@Fo4K-IM0@`yDQ9c(99z(XyMbCtR!H zz-tWtj^C?`S^oPX+Xp$L)<n!IgUX`zSs+_z4bUU9Zn+|F%CS1~Me<@S&5#{}rVNE2 zTY=|NgIa>Eif}}(;w^$!mAVwaCtgx6Ae&SEbRWC>*wQ=g6{m#FH6?7cls8SChdVY( zX}misAtd~@Ur~5V+9mpzFNJ!o`<@*%SR&*L3Afknsy~1)+}O=66*LA{bwmI4jH2X2 zZNYjVYnTrbR~rNG3LF7Kdnq;bJ*<g(=CEQt!fqF^GyLkh6?ebwGIJ1>FYH#@@1x$7 z!Km>)^oC)S$$ZN)2lY#d4HQcl!B+Bq6L%+jW6LB9#&+Nn2&QtPDF5M^K36S@sfUN& ztw!nwBZL0NROeo8lXy+aKqb6D7J+5b{0TDg@gmtPze1GN=u*bf@8Tr*wmnPhU7UO$ zjJQ`j8Nz(aok{&=!Cfw+vrO;;tM9Mgrf2B0iL<2EYtA{i><cIOk`)gM>Q>^d^#?Jf z6$$#lvEo2KM;jgZyXK=h0Eg}g;tYc%qPv~vIh|dhc5=X*aFCqhpH5x@4{EBJP5=}E z2(`3ABNr#|fOeD`s>;AI6|V|plPZb@!)1IS{j4aEkr;P#kFqX;pW~tnqlm+%Z$fr4 zbbjL<h3!~3u`fG9tKPGXc8}2-=wzFwf^5n4lZQ`brad$4&yXC+t-)5X({DJCyYYbx zQ{D%htgeV&AMvG;cw~F~ArAAR%w7Z|^&bZlTPx=eG_`NGBeja#l8-s>j}TLNb!zd2 zqlx7I&L#4GC1fDEZ#8`XXr2@v*^fGEG~mK|a5hL1fgu5l*UXJ^U0B=%2uQC*ETf~w z^OWmU`A~orOo_US2lyQgTH*h>37S-N#l+fc^l?Syx~dAE+WEBexDty?IBz=ST4;-= z;R%<Z)*dZ8bDA_YzK&X7wC>=)_4SfbH)3zoK9V^yyFjUw0#Dn4eBqU1+tP9P#w@R3 zTWP+8Iuxrmr64KnLsnH}@n)X-g50f4>LBto*C~v)Kq&SRscVqfV;yKf>ch*4=P$U6 z$cSpMqG@$TeVCt@5KWR@CeNu4-Tf;kH+>?*>%gsCnVl48GeAN$Bi;s6F4aOUjn>w{ zDE5zeKFQ}--VuWGn9R#8|0uaWQG7(Z2I!_!u#!4~1%5-qG0Gb5s`@{in4M0OKTw>x z<{SDm#+0B<4K7S~b-yKb6_3<E2tllHu!;L0#vDbywgWhXB721y$m#l=vzmfg4=rqj z>PUEVj8>%hi=S+%geS>=Tz^s8B0No0KH?Z)>Lh83?j+`RD6+<U302=EbH&|SbWK!v z$Lz0KrM~^fD$&M3XZGduyI}7s%N!tisI98juGVL`Pcqqo<xsROkt6rpGX0p9h_(xD zICf)PX5?5xR9`}*F!mf$X*`88JCu_)csp}V@8=kpWA4^DXsda%$PS6myP2SRzWU(F z*O5z<ZY9LE5ham~vE#E6YBlVi1$nzaT{tleLbM8uqu}GwiSIkaQRQT9?y?ImIZVex zc&0LuC&d&o!{~UenB5y1%pTg!6HF2|7^GbMY=qT0kpVbf&xu6yi4+}HMIkvTNNpzv zN%!TmuA|aFJ$d~c{`>aH4_!yL-Q-LuJ{~&p^4WGWx&yZAgTu?i#pdS8=EmXTh5Mhw z4K#H3*ZU(ls!v}%+240%4~MrX3{67W1MoK31rz$(@~^PS;SqlP<n7yE@Z-bkhOeN& z-gfVBe{WZQLq+}GaBZ)Dc>lV0XK%^(YyE5YzwSG3*UgV>_FZF>Yw>LS`0^FZ+;$Iu zO0Q@0^K0<Hy2gXj-@xO9?gr2;aIv^9#^Y<KdEM2tcQ{_Rf2{TQX4HRt0$m!f_xJkP zxqg2SoBa9BJ~jw#Wxrpa&95ii9yKkk^vTx&YK3omd%Fkkp!Z)<&wt*3{tw9d?P^*& zw^R#E=U!htCl1AP!i}qcv<5415Bn#+w<2FiDh2S6d7WO+R_mU)epX$`r2s!b1_aoi z6#xZ*r+^Ih!u{mR;M*TLk`r}PWfu7F>zxx31$UaBxKH!r1%{u(XA;jZ(%zq_20k;e z00ZO(Na4++Tko1`jqW=w=Y6al@5Sn8_xJw1^inkx2*P&+l+?+|u9W`*j8)=x!45z8 zZC^g%f<G1Wrcbd#qxGN$gcMOPu)^WIcm)uKPg4M;GscThhX<-2v{=(fSwtJ~{ea4z z28~{iFAl3H_S~XKy*+!qfO}+KEGoTXB<wYEQ0N0hE6amctDVF%12MKxzpV#$V>obJ z6P%VkW@RO6m)!8T?NccmtF&dR!wy8OsR%?+f%R~((U=_x#O*$|`z#4Jn$#>I&e6`e zdDE$L?n=Yj?lg?3eOKOQYZ-Q<am%dKcS|5}*u%@iCc~lboiKxVZEMi`n|FXzyB$b> zRvruZtG{nZEjwBF<VrM5-Ilc%;TCO>C4J@E{Ovbrj4IP@r-rQc@I(=2|0xuqod<4i z1dai)KN<Ut(@bEz-Z(F@xY>_w+xo9<Pk61JOYHOoo%u<M7+T2%+|A*apey5-5!$)* zli+o~I+_1oa^?et{{JT?G`tV~%&cnuj@j6=!A5j%R>m7`L#syo`>U7Znl7BKUsDIE zqP;aesz9v@JY^7kiZf=8^Be*{L0N}TYTrAt@56CcmRHHw!*2pf(S3{(3Ar><rmtjD z%n;Z|VAUD!_|7-qeRJQ+mv~7|Ll=#M>5-#@tkCf%o_PMYNxa?cRo`DV8WZfak<NgV z1*_$+aW1*Kp6aBN@Xm=?nVLDWfqF+~$&gL#g1FPAd&4(rRbj0EGj`252dAC=(kuN5 z!eEb7TicpO&rd%}FMoOV+pIZ}x?{Or$IkYO7i9;C?fZgrcm3gI%6hMFp){8+i5|X7 z>N0M+-3|vKut_&yW$eL}eNXuEE3K?Aak<LP-lP(5xY}7e0IF?*cTuSb9W!V=(F^Rm zH!_Y64(Ern!}4f!HlR0-pk<%loDu=)Cyz0|eWaIf&<KaxX{)R83R|nJY1Jv$HRM4G zMk8c-9AezQ4Foun%5GlTotqAW7#O~=-uf*@t*{cHrQ6<~f~I0PP)>C3hFfB_W@n4^ z)%1STc%|Tf^s`;H)cIZU?r{D3uv&vnardr?CUaEWEg<Al#Q?8ll7GmOyP!9K5QAbo zhW|W(f9~Ov`?K|X@ZYaz8(Z+-joJD)ca;vq-H)*q8+(1!HuUzkXFadd=<kilyhy|H zJ%*WpM)6+k-kYI^VEEegMc%G&bs5oqWo31A_-w>XhnYAixH((*=l|Z3t<ucEiDv49 zYj3ug9s@{VkF++k^&Tiv`t0_PS;|i-eK6jdi26rpPImr#&>vXhb^b}MZ}lN<+~$rc zejj6mpose=@9<<qraQYImTm_{OMLqVbULpgQfyvuMz90|Ofbyis+wn0C6<)An>fJ$ zl}U*nZEw=U{Uzdz%qVf5#%ba<Cs|JrGfv_!&Kf0DEc!_@mDfv!GsPimIhsWlvyI;u z1*n3_SOR#U5QFFE>T6u$ME}rz^?+SIlBGT$5h0NM{qNn_n*`gjci7iQa#O{WGg>B5 z=zZBjEu&J!Jb;jSd74~icS}INOfg9Yqyhmry<&PX$vzpA75KFw0v5cW)C$r>FAQyv z1JTz>G%numk)vUkeA0c<(DqKpiQS~+N$4rXGav*YwCj3aGL&+CRrLu(f%hHEUu5{K zUx?;L4She+3)!%J!p25`hM`))yCjg~1cY2zI*1|TZr)50yq)TWB1T8e%}ck~n>v>k z@L$8lj6B~}CD2%zid`_#oP;c!L59QeZB(-3yuz{u3!{#Jcb<>O?r!m&m#@CK1(_PE zhCw=SQwtYusDvyv?X>`o90uHzAvdpl1_E$9trDqV<M?WWv%>Iq5IYB#x)bRr=U;MJ zlppx}iO(z=tA#WwD11JYmR<r!S>GX8T*@?zlxn(RwpLeT>!N;-2unA8-um@<TE*X@ zi%An-xw<N@mj2{ZW2*MlYO{14<sGi~sy8}69FOvTGp?tv3<RjQsu%;X6g6hEF@pRw zrOaGl?Gfzv8w}q0mU49gPMkj`jzPE!jo(G{H~1y|`1bXy2Mo;7tFp9&>m!?=^tn1f zy|P`vEKhDOFaZXzfrJO(*yDJIEK#fq3OaCa(48*rBIqH=KRkYU<Y=2dAomVGlZb|S zn}d1F-Y~l6?rt=*h7cSVpZ>-MJw|a$n~q}M%4l`V_Mp1fw!m`<@_PM^?MaobZ4yAi zveUp^<dRl*>=~RXxH5MG{0a0KW9yUTAdufJUBkqif8$(WeXXsP8T!5cub2mHy0v3e z^zZ9gtz*yy$$1d;p|Q(mec<yONivqYru*s|sExax(rc>h7POiHVsG38zUM(2_90?M zXRIpotPr?Yzp%^@-enCpSJYHa>OkK=kXzd?yaBs^HC2LdjC-xQft`qco38u^C;v9x zapL=zd}$h;EEz`a`$u|Xi!@D@oP9|pk6S94&ChRLi>(1il$&Y%{jXL-TjkW~P3s~b z)$4s}g9UGp!by4F<kPJXAx3x&9m{=cWlo{oyxDeY@{2#k5;#^<Eca?&cWkUTPIK;w zcuXD8sS`0W(to1R_!xI)dshN!myBoLi(P{2jsEw&w->mQYAbk8wu1LHTY)Qd@cu{% zL)|mB&7d4gXl4LSdLad_u_l3<e$wm`yEl;P5Q<f3FdVSKX@IIE27^2)7Vre}1JeU$ zLc^_PeCIe&_cDiOIb=a*0W&#w!H255Z608c_=$H4;X2WyuI3aHDY-+pyD03haqhj7 zwOKu%D}uUIUp|}ohQF+h-7(Q?(AETuaAmPLI|uJtKU|pkrK1fzEdTbA);1b<3)I!z zD;&L1HgiqT@%mvAqJf`C$S4&Jfw-5<p|M$u@`6jWJ9wDJxe&*ryPpS%&%_CO0<GT> zj#a()QP{OJjGH}C5~7rV7l++Pta~iH*-2U!&o0bu7H>u0W6xZT>+9GhSxFNiz(4B4 z^@EM)*d1ZZu~8cvxKu4m*|2z2%dVNDD1JgnJC*#8pf<Na_;kciA7c}i8hUc}@+Mjq zbK_yma$S(_=3{HDZ8aaYHzna!Kp@t-b;mSp951KU)sVToh3{F^shY8LNw-Lm9Gey8 zDh(%ryfXW27$r1sy+^hB$H|6a(_+&=%f-^jbZFES-(V=#vpbV{B$YCz8Pg%v?vol{ z;mr1yzE*ynYeA20`BXxNte2m@v`&7J7KS=DV7`HptMb^~Om-XY#(PJ`@kXD1eH5m~ z;OPl^<*%XD-7a@(Ra7PQdE`1|WZO|4yBwV<-QHzyv|7Qnu%zw^EKRIc?VEq=H@pj} zk@e6%U9W-A8iJ0wvFS*51Fy?)KI}KEt%G^Dd@w|h;*Y+HKH{K6`a`8Atb+gSFPYEl z)|q!lGiYFQ5L61VqPAi;n;WtZB13wltN${=;9jF(;HA{RPc{(Bj%b4%)xcO%(yUrK zK>Eq5lk_5hN=wPkGeti_ZWg0L9pQ72QHX+R+aWZ^I%c?UgnC~Oaf2H?yG(w`&fL4E z7`S0oEXotu-Mvw7ZxvtyA&j9<zk5gEy+7hYeH?ak9B$OmsQ1o-2kvPduA$aWc>Dk1 zVGrU5!2ZwkhHZZah&%UrQDrjK@T7Y-DUQ=g7cztAK!48C($UVUf^aeNaVNCh<1#(@ zkj<+RvKUpzED}{gYsXddnkrgG5HE(?U=RXQq+AM18#u!XLWBv3MZViKpkzTE%OO|H z=4-^6Q$$f$Y)A4K|D0j6B5&5D6X@n+oVhJNML@&TAhj*(!Y{y(#JGk|-2Djo?i~Y| zV#-m-HiKBp5}8MMh{p?eY}^`5v-x>3t`L*($)qY0_cbJJXCFSF9UKxH;`ispWL%lx zK0x6jyyTp)69orRT>gy1Aa}dpnY%ySBraP3O`Rh@Sf@3_h!+@Ih0EjEb>)J19?Rk* zBoR(g5IT0P^Dqe|%%ePl*{buIoEtTv+U>W|ig(iDTQ#YnBz8o)3t)b*wxt+9wW$fW z**w&JST@)?-UTW*(m|jjiWe?DtpYWJE#K^v=p75OYye_YQyhqIx)l9_x|C?!6ExqE zL|up`B7iWE83kn?@hqkUI<5N$u{<-;nEou#ir6oYG83%+AUU>iqA5<MJc_YwRL1l; zoGS)6Z8dG}0&wrg%RA`Nh+E6;IR-k}W?iS5z}7E%$Nl6#ldtWEK$84g-Z(3mSu<nr zUvOb^=WjN56EeY+b%5uceS+MrDH(|W+$>T<FXT`=swUvBa4V5a*~8??eFg+{o%xvN z6C#ka<hXF>K!PT%k}e(EIvh8696X3;-oD!i%j%?~VRZue-H<w@7v7cl*!)fx@JDL1 z6=D&5d>lU}ur>FMOvX#P5B$XQQK*t0fE~&z^ko&Cn4TuTF8~P~Zx>yQ1p!w;yWwc< z*^)Ikt<MTpO;oOlGGmy4Ie3bP9RpC@Vm3o7el+{5X{}Wd0pn8jzWFT<34~pH<z-%> z$K4fp5dr8gVf#`oGfk@ufb*9brW>Y@f$4Bp;uvx-yL$s<8A$ppc&mOHC|7~t0V7&~ z=+R(txPR$|_fx^gJAU=tzfrIdj(}bs^U^lddHm&drbyH;jCa8?JUPCwVOEfu0pVjW z)5!-oPKeyDGc_p+e2OU=a1|Z*m(EUn5VKx`bY-N7>H@!x!`p*4+66(YK`)TvhunO$ z+n~rmN*Y$4y8WwLSa;^exX|PkWm0Fu8sm27I(5T`Rw)*I>)V{#-q;dhzPW3f_6g?F z7O9a+_Qq<xMS^S2(-1!LR=3x-Lj;B<tk)hXy{G-Q3F-|mj4i!yH7vxPlPasRp&SH) zG8mGA<0}&1AYueQ{v80|k?*`pq6n5Ac#m8t%LY7IS^^R2hd}GJ;Bc(Z3iMej+<`{U z3HZDZ8Ku>gE{NwKCX#gg>=^q)z)Z+w?|KH|1XF%;pL*SK{;`Y77R(UQtq@S0WIZQ1 zJ%e1A{XSw-<Wu((!6gc`<g~FIuwIy<9xY4Y0s|F4O0iG7ccE_AmXoyajvjXz`}rk} zEeB|D@O=>=Tpr&*kk99k<0G9fDgw6Wv~2D(B=T_C!e_2!w@&l#F|BY9XJCN!8HF;D zb-u~{G62RN${_A2jmO9@fWt4eUTJRba7}5gP$sA*Zij%=4qQn{Sb$~}K&oZ;xU1@% zGQ!}Fa-;=H_gU!DIgR3$5=^B+TU<fThA*Fmz$pJ4MOWFQI29G3+Y;k2hR1`Khgv}N zplj$)y%Z^%Jz_;zzvvz@w2FUwKp%c$Bd)OL#%deSahpPx%n}xi<Tk@;EJz~?beAof z_ZjDuR%1pq13NS#lEGp7(|N)DPsc(}L78C=2`4&E3n#52TiKD5&Lo7ggnaH}fN_ml z-G*X<JyOXgeuY7HV<d5nF;CsKZl8L{sfwBWaV13J91XjP!tFpNv5z29x;vC7Ao}1b z!Ho2}-M&tXPc!5=KgJ;;1`jzuIkm3l*521KkNp9D`{aiuC)jSV8=~<VL&V@)%=Cnc zM96G&QB-hgE2N4?QwcrQ*Fwwvd`c{QbBy1PiMqQXsIS!^=UTXR1fNWV`^H@HHN}(e z{D!>=>LK;Hl+8)O9S9Z$*cQG-MSCZ{&Y;ll-8*+5KN_WUk?CeI*9<4LbW|aH5ghvl z+5lr(@<osEHyA|o4y{+GW~dqBNE#8PBI?qF?lDO2v9p$+%4R}AComuo;eCcIk-)S* z5frhIh)@cR$yl>@(2oI6#ch}v=3;*Pjq=$1_8SEx)|c-hLG#@1-M7#8-@+1J&=OMW zHgxlL0_5E}r{Qv(_C;2rp3iOm#VkJo(tC2Amgx!T?}_!puicC|W~6lN!W77|u)olS z+9aTrw*I`=9YVJ}?FcNyv}($|Hsm_N`V1q$*vLN3$;!>?Oi0KCdJRs>wVoF<cV1>2 zz#Pa|6@S!oSEff!8W%8&=rW(vH@F7+kxzxKsR>pC^iJ-dcOHNhqGRl2TEyf{J=!>& z@e8PDap5@@j$|FZ>m6RMf7QQ!cR1_;K+nbz{&mOy!I5<|-Vi00YC&l4X6$eP_ijv} zVEi7S@6f#s$n4JU@rWPQHw3de!kHY|JVf@=Yk>Pd5U6Z*muYH$h!$|^LJjW{f~zD- z3~wzgZb8(8K0H;k_!oCyKegd{W(@V)z{0x6X)Bgb`f)M7k|DDc0FP9nB39*7Ud@4R zffyxDqC|TRgBa&#(P+lWl@_YD^Me&Hn~j68=+W)g?as?*t&8TNX7Ag5B=|M$JiPfz zU32~tOv0Z9O0cor!YVg}*R0s!Lp8>b9_;0FloH=K(w!!v2bpKn%6uuZyF^~NiyG6d zggpoamtabp*OS~Q<GpL#iDE3&hDz$6NB(7OSGwVd)ovGjP(N2}8T!3S5l*wOs868L z*nfgF9K`PuG9bFc;jRGQI2#}*IGPI;=b55o{7On#r2Q;iV?2wSa#B>Fjs%tE&=GfS z6f+h5r4m>`r~!&DE-2~K99OsZ*4@n?P+EU78<(K1SX{U<qs&cUohRoA*x#4R+=h6F z1~I*pAjuS2q`X)Xou?LZA0?4!@HIl#EXu;IOinFL7{hKbII20FmMzNxGD1quDD(UT z6T;?Wd3>G%-VnL+)w8|~biWYD+K;(A9OcRRmBG*-y*sSd4%YvDBr)OPb;#GX0g7Gm zh~!nR!-E7m>bF_2?`aI~Umxr{x{Ig_hlgMNXE&nyB2ct--K~iqeXVbe^Rd%@q-dD! zt+`omYVAvoV$wax$D|XRu~O^^oqOsRct}6wv|d!%VqD09m3QujN+*+eB;kUs_)W-q zf!ao^ksbXvkhzp)?=4|GMULoL`4NIB;R^6fKlhLRI-mkaw9CV1))vw%lLSJ^3P~lO zW5osZ0`L)+=riHOAl=986;QaAb^>++J}>_Dy5-encKjiqx4oTK(Hj*frDe4|#<DEh z{Zz0g)n(K_`p}WOG_XsN{;21O;&;hunxhkSjtn^|ReZ_U%t5bm#j(>uD2^p4kHO}Z zAF!mfQ-8%v#6s5Vi9;^TT@TfHv2Z&Tdc=BdxFJrm3rW!I3jW~cpzy8@4EQXPJbAS7 zjSgS5bUR*XcN&4-t?u5vd$dgwWLJF-*l)rdIN7Y>$TVEn3uj-HrlcvowO3Yn!3y{& z!dQTBny|%3hr0lN3h7oM`zj-{0&U&B`_<OnBT+IEbqG@?5Mr*93quyk4crVF%=p%? z3}a{{@Qa28LfvR}cN9Ji+0rsok9S=uJ2#dag)QrLeLSt<`WLhMZWqpv?-7)GSL-`n za8anWCt&Qw9LKfl$OxV00(qR{8RKnb>o_gbGh}d)I3?d<5^yqV5WAB4;;7D5j#%`& zx@$vp&Zd|I0kNu)Zr;Qh@^	XBys?7bi@MBRZi*ZSbvivQ3IL_>gro7y_MvcE&w? z9KVt0VnZS}pR_ir7I5n|rjL-z2Y-q0hTrt@1MmPF;5BWIT8k{3p3E0`rIJX<#Cf%* z`F(1g!rR~Wx>>V!N0mFQZc|+pUII7}qnI2hGfT1<Whbw2nD>YG`ZT`~c0d|L@3Ib1 zL7~p_mL1({>ZnOdq?tz`n5)a0g`LhytUkD{;p#?YH9zAw+OL*@toaceD;D|DE;W%f zXg)Q8fJIz{NiI2|?(F~-q0hHL25xX&vtoV(hgt(nvl=p!NQOU0r+wG+qcACJ5OJqf z2Ej2l7D!2yG^D*k;o4obPHd1kq#%Js*g%5}CM(Ph)VdMJ=$Hl*4g_s!rzLvCcp&)k zP)J%!_v=%s??M#X0MG?^RlAe^|6TO|)Gi9mRgua27F()$Pu1fcfr2d>vvUXCtM4*D z;vk8Q8KM;oz2+i98OB|Ma}_4JGYvKD=b)L-f6u<Y$z_#-n5kb;O3XH&Oz~DEXDigx zr~ae8#Qy>QpW8T-;>l#^?9VyUepx41S9>>jr*3@{^=)|@LG2Q^LcUCvt#2^|y1OkJ zEI7BbYy6lz03H3SSgXoD<-m1ZxebpD5mwTx7H;#TRWd13M)@n<DXEy}-AL|y{qX+% zKJ$lBi@S{Zxz_;mpuqCm$!5RF-AE!PqdNEECq7IN4<YcJT@O7j;W9qccQ9c->35VE zJ^90?!0Vtjd*6WR0xlwD4L06WHLc=aa=_1yd}d~5J#@2q@o&0tyzy~{w1^#(K<7zk zo!DDQGG0)@Z6_u7F1QwOkR^{$^qz8TZ9+mD>QbSW3|t#DU|NVmUC4`*(~C?;BVG?f zj7`pV`Pq~Pi|bb8Q6MPh(=a8nyf|{x=aadk1H-mHV288@T;ifwa{UQ<m0x!#kA9G} zz$UM(iE@dEE>4Afp&6$}$@72y{AT|-{CeX~S_$req;Uv66UsdMm`*x26md6s|9^s> z4gcDaSGqF<qtTW7!?nd_Id>@))~8u>x|`trL3g`*<QvTlqJ@^Dytuw5pC?y~%$ssu z>02aE?zsCB_(b0uq8E`tH=DwD<KZnAvw04SJNgIw_zH5fl<cz&*al<=-rMF!*YFHW z;;$!@31)L~%kon(&$dY;Md4$jm;x~$@~C~x#)!)ZXs=E%yl^4_P)jgSP#;~x)5T<- zo83DaK<#<8Pa#jxm*K&??K_7Dhr_|q8uk{$g4*J>+<S@!v&#|1ic$YL)+sq#q-E-e z38iIn)r}V?;6}x320ROz@G9_%M%QN;fqmau@pb$|RvJ!-B)6j56!UZvxJc!n%n*%D z{(?ECzvy<8-8pjuaUYI*e+YPdo$ea0)I9>P7Eo7`*M~dLCi;kYE&Z;E;o`$e?b|lw z;6``rN|cM2h}h}Pkmk__#->go(ee@J&9Zv1CfEl3_j6y>ie6s^RiNk8{yYWopbH79 zU<SJbGbo%S$s;p!gv{vS&4{qF_7RB|z`&<tFAa&Y)Dmh#YFTPBb_NCyn9jPklfv-G z%?tEvv=hxDKsE#E<_yzadon(=D?r6d_EMuX$ylnaXVr9-9F&p{dwwtrY`o9{Yc^(> z0oz-2BQCtQYO-cwTo;5CM_`KX{GF-GJi6WCgGvv(FS6t7!!>K!vyGP?*Sc)yHg8-! zZSpw<GuYs^aO3*1_hq<_1zB>e?QqO~zRYK{;<86=`@Mx68yFY>WyrtKwglAaZ)y&O z1w2?#ZE&=t#k{(?wbfO94)O_1QB13XlpuR@Krrr!a_psvXX7kOimK#khQQnB`Gq)E zXgDj<ajMPneqZ&v7u$rq(|1=b{DoLK{p1q;waj`-D2%(D(Hb+qERya;cZjulxLh-0 zcDjyfD^Y}@I=2!~0PQP+&^4$9o~RHT6;=|8uZ#v@4uYlUR?d~hI++wso@v~URqTEn zq{hH}?gNfe;f{;jAcfKP#+ke1AgXT+qL5o#8cDJ>{I=f-&sJWseb}@0dZsW)HT#&s zk=+W_CeS)~A1um9OrnPb)eyQ6hY1+r$a{WK2?0}p+U3PjH?U9qXLyChmlyf){-LF| zqw)j*yG@!19Njh#@^hnmS6jFj+(qsyfLULOtQa<+2xGnADDg77ljEwZ?^&33ABo_f zuGSA@ys6E0ff|Ah&Kq;{PhGZVi{(f4^$$ojjB5}6<s;<^5U`9Bg3RR{n<0C+3_6mK zoU=Q&553cyjut3z<7i(e)~P`OFtye9EO<?F440Wm4Ap8*J-gDZk&3R`fJ;H}^SvYx zR(c$t#wlOguLKM~?=r<Oq`&gy1ag)tW&s9Jio8xqg2ks0=x08|@=%JF14(njQ6uDl zgsa$yib<RLr^4|?XA81fi(eat=Q^rSD<G6+)#_LkFiJ=+IH%Lk(6w%lXMrT5o)Xb* z0W0E;XrnSI5eu&B%%$wN+qFywxibSLJly-fZS+-fB8evKJfj<7R^=rmdzR>smWDcd zt>$poon-k(u;mJ=CZDYVD^vhJEAx6WNn?O&s`uolLrN={(QS?pqFYKfNIGtmXqv7X z(jni1EvR3wG2!7s8$Tq=ey9${YM^|HBcniJ0Rj|7DtJya#|P4ifi&Oi53uX~Wk)Hm zo*4@|bZ4#r`|&&17`@w*rnil(A!j(nNCH34v#}#?Hk)ak+jDEt^V|CkIsf(9m`%Ew zC+-mCGYE^ms)3XE2okd=f@p8F_M-@`HvC?b>VUMVr&)@gJN==z_QZ2BQ-@b!B=HFl zRKjfZXP47ETfq5<j-pmrv<K<QIf&d#LFI2s{>Xju$bcsIqxDlTxgNzQYamUxVE~86 zcbqHok<I=m>o0YoI;RmFmUKg3P_=%-EzH`n<-_`B^K+^19*8ME?AUY{l_6hVS)8XY z=$)h2Up$wsz56qjE$!W3T^ifdcx_aZ_g9v_mI5(sL+~bUH7i`W*N_~-9n(KPqq0e& zyCgRPH{?}oU(ygZ6UI1GZK{^L&2D2GiB1Zcak@f_u@SB@w$RA)Uma&qTzV%aOS{c| zM4u?ak&xkmb&o>}_bJ=iR9~n-g4RNVYc+_4Z!f@U2QEaLaXK?AtUMFxkXcAzoJ3|^ zj4l@oDPw|P+WU3s74F#}->tf+TZ*p7aJ5EkK(-cKAY%2bM{m4|=cN=vah+~4L(O$f z#z&Vvt5$EEEYF9#5?QH9-frTyY0X1?GGcc@@_%3CvtD=5?F$kGUfZe<_iE%=1w@{0 zu;(h9s!8(&a<ADa(nXsY<_d%d>q)oYjeC!Eh2Bwnkw&y8bm2G1<U+lD<htZpLJ2^F z<6<l6nIS0C<LFnN;-Q;}rFm+ggsd_G$3t=(IXJj47=N%q&k)?@-=X%3?JT=+5G0^J zmfTh)FmAQ3N#M@uW)V1#Ht!7Xd`&L>><8lhRY!!+ewFx3)kB5=^e6;N1}U7jfHE?s zD*u4|b2~hnfQ2aFyn_AZD%(lI&fGLUH<#<{Sl6yLBV+c0ZmdRzhIl+o{q2}$!61+T z`T%a}>ud)V>9ZyrWjYg0kOR1;R;XMlc}Zq5W{qfM0^a&1u+w-afOMshP1^Z%lFzSD z=g0t<5CG&(qUVlTN2~JkAo+dazB<jp&iWzCE?80qUwL!}g)Auq*ov{cvRM&Q1))ko zf_>ox$J63d@-?|#W(Xs=i5&lj{30R3EucEupqoGc+ii|bb*WSp-wP9#D<%7l7w=h_ zUG)5@TJt>ch4w#)ceJ{y)iSMAmPZ*1s~p3x+!De>?XZ5n6L<~z`gHmKN^e!^pvnL{ z56ip4cc_`}`Xx$0`><7zvfZY4QP;A%PnhqH<gz7;t;R#eD;Z4=-{odwN*4#oDvXyd zLZd{pTPk7*8fx+Bw!P!Qm#vE~ORR&TVs?at9d4KEGlkN0jE5pQc<-mD*$Z}c_r6r# zMFvsE2)-Ry%nFTa5HWI1VImcOUw0iBPE%|5NTu>o=w#00l*<fSmYZ65xyJ7(ttuA3 zC@y*!JLqRyk-PX?#b?wZ0qc++AD7o)PCuDs*G|44yMGtsytqCd=hr9c>|<J8kJEXI z|3FjM<7^HQIM=87*-46#F7R_vX4j_>TUomKS$BQtQl_-)^Ru#8TwG7n^27BMRFBuQ z^y780m_s(6i?TR_#F5ukhHG<OEvByI)%84|X4il`Re&dwJ4BA;XRPzuO-8&G4#(@e z-QM1|`|mYS&3<=u2E`{CdUgGJp1VVEk)C86DY%X<7M~!F=`F6@=uvNPmGS_U*C)l~ z8mv;|>+|wDpPpS)#vs=+_B_3IOk_Ik_aFv;`)Iv?@a{2$s*E0wa%^?ZiL<d<E`tru zF;p5J<F8Q;4>^=;^yvCO@9Z63uJ2&cS@9A=4D_WN9N}DDSM#e$)~9c01$x;>B}f;@ zL!exM(O1=ZK9w&G*l-sr!N5M<8Nfpx93EDq$46kM&k?f%U~DO`;cl0Ibm5}n->wNw zdzg&)CxrFvZ6CbbJ-UVvA4!Zj<UUc?iJB#&!%^>j`Z2xEPNr#}UQsc(In&ubKH#NX zd$bA*fAI9#lebR}53Ub44mWVNFU$0TeTv*Jq-k)RYO>{q@rcBN1SJMXBX{r0ue*<7 zn2$zO;Bhx0cev~<0}l`W+7X$_xXR{S*8fSR=dk0o@Eou$xg`JQVkMNh=gZKpkfQiI z{sgPNU;E_Iyp+$%$1UHwUESQCmUkuajB-`_XH*d!6CIrsOu0Dzq7uJxI!Y)7Ar)Qp zj5}g|grT><b1o&qj$raS4&4f3cicDTkz3RqEh6Vj|2`$hMfqDsWFHabvLC_fnL5wy zyD@Ww&pBwP%E}x8c#=mz9v&m>_lS1v<HQjH!RVP>kq7ar=sy-07ezTA!U5mcN|4G+ zV={}t2IFLp^N)`(dI;wme}VY(x!ETv&M8SS^G$3~ifKkwztH%FeB#0CJy&X#`{*>+ z6E`7a=EfwRy*|TP^_nd@H9MQ%34G&$3mzhlY412S8wY;j(}5Sh_5Kvm17<hU5h9T_ zf^`EQ%tgYvpmBjdTI<S1!eHSMqf>|6CRIZ$FU@t{7Xid;8HkHi2ZKM@@B?Tc!Xg2S z4|Nh`06EwYT7mG|_|`k&K)ZvMS?&+B-+P;Geka8&>#>iy3RI1@HX0(d5y2K}w~dh- zi-G>C=ALGPHQ+-w)7nUj2$d>&)EX3#c`yGcC9J{ZQa+j&KzF9v!D?C`yNB?4{(pTJ zVXL>>NA1-cnT)*>)maONF1fu(0V{5U@^{Z}4|y1|srqra^`k^^R1_<hxtCHRlLyDP zWwy~-OlR54BK4WC8Ty*1J)8|c1k=b~(-Lf(?)#oEW>Mc8yt(jjIpWy3PQkt5HQm%K zBlmbmh^X`It^R8c_89W@2zA#o(L<PjZ<WOLSla1vF@2rR@{69*T5>vTlU$XYv>jVA zby~DTqYVgm!-X5x|C;`V^v)a3V-rT)<751y*5QEIx4Aads72Gz(7mv2Y%6A)p@Fq+ z7$F(4`0KR`)e;e75<m_;(0*f$6}#t1hJ-4c^Tf>ylH&WJ-Y3?w;|E=u#_k}lU((5A zRLTGLvmB}~|MZN<Q^XVj=b%1C%}Wrhntl<jMU~C%Bs*>dlq%2Cc?zBcp!m!kxi7)J zbAc!ZldFx5ae)>Jk1RllEzM3PS|1Iv<^_!RG>2QMi&<Z?TGc_!z1ON^B3q4Bf_dd# zE(0I6Rqa)CGB?j~*ja=RdH_a1xxWff$r_pnU{(Fo>L2<(1^kMS1Z@Hoi(Z7FxrT~1 z`*&N`2HEu50s1TJ;daX}gn2FACk#V@sN#@WcrNkjZWcaxeAi_&{wF8=b0_RkI=ccu z?lhmlNmR6rHWpM`$LF;<Zn*+lCK}modl*2k_GC7G{*frnnD?GO;?{#=pmPlWmQ-<) zA}xFmy{cEd+t8S=C~RQ6Ube<np|M)Eti6!5>dJw%!6fVEp@%FLuvvejXdB5Pa7m!E z1M$H=f6z+o1MB(VCb3wJP3?f#d*=8mq==6&4Ah+zT`0ch?2d%{%X2Sed+?o6y91cq ztxl1R0x}JR-MgYfi)bh6`cp8B*43&}bz0#n>oN`?ScTQ19DyliAq^8Lh#bi~*gA^f z3y!>hw<K1i<amCPM2!ntk*~HMKN@{?@3CMY1u#HJ#hT-u{uGt+k|q;C+BQtuZxOuz zWps=&u6-C!xNT%+<aGqR$UT+BtmH~c*?D{wkdgSZ3ec+tc%`FTX_%{v?vrMCo*LFd zvkr*&fTxwW*5Vkkri~EXp6P22=Tc=0#B&j`A1jt4rdK0o6qDIdN+o3X$ki78r7`*2 zEIH367s+Y<DWP6d>Nj>Q#P}2x$pSRTHVuM5VF7JfrbB3u^HHBLNC>tO<!?AbJ=t0K zBoG|w$dRp<#a;Sbx8rAf!PbdUBY=b)Xc1X?a6>RGxuMt^Z&YTGdjkdR#w<4DN2)_; z#HRC!s0q%n;-c(e?*bd1A|JrR{_vQYe7mKihyyN94L2WxAZpTlY=_TBVb4e$UIgGa z>N^Kp0nZ)$(F0`#J#tjjEOmFFTg>ZjE$>fjbIT|-p2H|A&7WeCuxxei%wx#j@dQv} zgydMaIL_e6nd$|lO!L!s%+7+!z;6k~A5_X$-l;_4UIB{=*b$@&QXfPAax9^kwg%vL z@oRSc-?<N0i0(`*`4s8{s#7Cja0T2q&UVe0wHVN97wZk0!$!rS3bM_UYgVPMh;H3U zw^w4e&>!0Hyh3`dTa6m`lyDM+M!AivEEd;+Z*Lgn?ey$QA~fkR^(rP7bbDT6vLnRL z^SkgpU{}zUna(XlGiEO%+7BjIw?AS+FFVNGQ0kiA<fP6)M*fXg?b+RCsfNEdBqhZk z+V^c~>T`pZ)_=gA#o>699Zxz1q4G(y1pL%n{3I`{JhBOd`BBSAJnO`H;}cV@ej920 z!-SX7ceTQ%FIZIh7u<=vyd&L|*YvSWkGk{HGoQ`T%zi!GgS47cn!;W8awFMl=1*lC z)A?Wyk57lNg8=o>(+GC#j*1IJ$l-<OcO#zX5`bAyWdjVZFuTWq8kdeCWv!d8$rZ+p zq~(|*6jy}Pp)A4x;p>-#lg>`_vvbHv@eyG{QuO8ofv;~4hp&n`()kXaD^6$SdC+<* z423NK+AyEKHb73dXOPzPI6Fz9!hBA7FK3uk@Hm5(fkg!bp?r2yl%=Z~vtdeg?jCRx z0rx?b&li{txk`H9FV2!X4>!Nv><@j}7kZB<&!~MS*9%0sNhg=-RRvKtcm<8gcMx2U zHEK)S##>sNkW++p;YM)6N6+mc_OQlXq?@bnw@D~~d%{J!ak>ipwvqSrcc?|uqrwM1 zCNef+N6J_sJRgKIf{~c2^2CTqBFw)}KlM~}g8Oqj>HhHiZC5t+3gL+`I+8wJl#^|( zR-dNT)$AlL3LEn+Rm^GSM4HlI-+-r+u2I9!-EE<v6A~Aye>^3dm_GAjmwN)Ty^(2+ zpNk_YqqVO#*G5+O3xL{M)q=Oz3rbAta=jIK#HwZo2@b2ZHNdweFoWYVkYsgfH};mO z?B<l~f>bdb9*DIK;e)`C9pklf6@A*wWazc{gm?g+78h5jV{#kR?G1>=oU_J(pw-;p z?Y`kd$cT$lJMCA?0q>Bbqa>N<F#HZ;n4?ZvZ_?k!z6x~IS(J?hpf4zOk)j-mW}?93 zr^8G&a<nr7&7qrvd6sbXL&_4g;~N}mZGTwMb4)Dns83K=JvN+PYaaR~P#r=R-~$S6 zq><4yh4paAzS)(6GK(0vm^_2%=EcIvdM9|Z$eoZn?)~D*(_gtfI_lVt!ybFPL-5D| z7NJiKXau8=c4E*=?97Y&lj71>@y1%Qo|lZ3_N!jKGsZlET#mCV%*u#Y8zdomuKI!2 zt=X^v!B@`_lhXHyl^GSzi3R4R`x^NGOg53CGzAGq7I0BjMf{~B?09&1(M%0%<6;df zu$_(jA=|S4s@M0u$Ee*Wrkgpz;g%^L2grGYMcgF{d_Lvlz%P|qu!DqIM)l6ecrK%c zZ1<v9d|0`U3edOf*Q5@_Dp^CHf3xwBfZ`z?4T^~pI0u{xfT~5=J%~MX+<->mLpp&n zcapec&=4Ov9~%fZl3jXbia9*p$DAwJZ4<0POZG9I0K*whue3}esKqmkCvg0pyOgdv z5_2SDttSe>!56MxQAfH-@_)yE@?lNrVT+P)55Ag<cth@`$Hk{EklpZAnU3?KD^xd_ zTlA2+$jS<Qw~<J&KPqHm#Sx}LH>3fo0ub4uTG;aQVm3^EElM!>Le<~uvYq801KN{m z>^@AdHU{?<M7f=4a!K~+d&&i9rE<ij#PdanH^fu9u}VcuIdOucDtOO%e_QjNin=^E z-vUxNtnDeVmdI%`@9Ww{95v`8b;?W;RUq>;vhxFz0UR{wbtT@!u-n~Y)|K&KH@z|t zx)~T@%zN`zhEQK!Wlbc(fEy9{g9;*~xKGM!tc5lJqQ}ALpu_Z4wQPG*kzk{1qtsh& zY@eUjPJ2ax_;cGcN`1<`WpRV2pK|jd?dDF>VRoAz0eUEvGC3aK;#_fvy?+k;DERRP zLkhYT4C{YrEqF}H@dUFNsfSoFoy_Pj>y>0|hFpTsFtW<BD-5`Vf9YTOi-E2lyoeEV ztjtcc67m#}?H+V20LpW802vY)zsHaG^}HxL)LbpEj7Kd*Fl8a+PvOQ&PAA~v3pe!f z;+Xt7Fi#XFU<P3OQMEXp=Kh96V*yBhbg_bEL8W4xM(E`%yPRAparvlL2ohgY$7*~` zaYHxvxceJ5`kT~D0qt#tsiR?G?^7J;d4kYoQu&~n%;<cC#qolrN~ru(HMrvfq%l#+ zpe8Wcq<~J%zcx*;R0o^ocnHus1;BQ>_bw6q6T0986y>CtOemfNqZ1fwgo+M3ti{82 zK+sUY&J+%zyHfcc1{&wC*s~ciW+&z<tR&TiQ6i2J5>y`6U7F>M*~l}KHigo>O51{3 zY}64z!e(Psk5m@0gTCP0v5w`<kibifV3j#x4@NSX6qjV<aDNpiAh%(@vV1Zj^Pf#z zgQ<8wxnbUU_}zoej%1K1PFf<If+_H+Ic1=jo0F6u-3pxIyGd_rbT9eu@B0bz40MH< ztb1<a3wN4;&JvOvVi4ss<5q-cF`(oL0w0A}1JZrWU_#6-^}-dI3Q_w;CmYaFK{<ry z@v2xPKx-e-{62=A^aw+19(xWg&;gr79b_r+Nq>mnyUX|UUBj3rB0ONiv#6g~<15GS zPOgv@8GJi<NGpbw>dq)LP-~qKHHi!vmw?<ttHx%`#q7fj^1Wkdc5-KH^TFm8FEO0O zQ1R*w7JObKg9Sd7PaY)?w(cQyhmEl7w*vVEP+7=C`()nRq$s`aBXv^1{<Gmjl(6_+ zuiesuZV92ygg<Th7K{lG%(o^cD*m1w5WJ#IFzw}GO*gJnf55e1csB{1_5+Aiw|`q9 z&T7nUp&c&;(`h^n&z||L{hX3*wdS$OG}+K@tIF3V{Y+4kt)q^*4qi#pyKM|uHKCx^ z4$*LTY@1d;6C!ootSBxbpdiv3y)CwrF8%Bd)PWeE@^5%-9X7YUx2e2%Lf)m~VX1Bi z7*7(IQJVlkR2;=wTMi4-iU-0d2-F{AJCAU$LR)w3B-dOaeAw_`HaC&>8T;30yP;PH zemaigxRF5X7+Jy_Eh<54jXEcB@q$evXugaXXX0KU#{yaZ5gu&Eno_wD1d$CpPxW$X zk00XLiIa35zOFknG~<ZyfC9)?&g&DZU?JD01klr9V=TKy1#2zuP++^i$pxt;<Q+dl za5<ZG`{tJ7PwK6hFAk1G=jN`&e^kipqk?M&Ca+I??MFf~=u6yuUio=*MV|#_YEwvR z`(`~v^o|q}JTiP&6Vfw64HB^&27tWPY+NBA9Lj0zZRU6$8U`|KwVv8R%*HSAL)&|+ zU&P(6E@+bD3vCUNa;iza!@?uqD{V8jL+BHTI3YG3&@+(4D!Q!}ad0&f2mj>8wKxLH zJb`IM{Xu<Jy)GA#G0Pmhy<Rvr34(g&7u%!J<>lot&rT{pOP!8@TR>F25d<o8h_XH$ zZf$ICYz^O6ezD-)Q(^Gp^;(*FPEu0tgt4<>s0`H5Z^}+bh7zxZ)5IgLoHc%bZong| z`6!bW=a!zz==V{c$TAE>%M(1v2jWlh{L$`1&neT96)89&w<GYsv0SUVX+j-Ta5r|Q z2pPR7cLSP{`fVH_@TBX}@mWv0j}=yoamD<q2G-NY6*mx8vE$IJz|y4FFh-{6J#Sd= zwA<ujDnu%}yeX|^^CWm@NQiC*wMZqphht2H{V`7ir9X;CWUtpL7;+U)9Z`c9v~E<M zGiB2{q4Z*G3V}|Z(@#cbn_==2<oGe@!HUGkyt3EHWrkh?m6LqA2CF8Q)Doz42hELd zZ<zS3+^>t`ZBb054`++3id_pFTX0^?XPG<y9o=q`rH4(SIKaMo3jG78h?50VI-<%+ zV(Gt}DDQ;v0VlSB&Nq@glN8n*C%4nX%YP?6U#3LdrC+nW9D{d6i9QVK5#d%I7lv6` z@~9vlPVZ2vL9^WQF?3rRBxR7<MG*)eV?aLKYS2C*-f{&hJM*@<NY66JO%3i*Flq=Y zA|*0)pc`2ocPwoIyy;|pT>*SztqKF}&fPY`@gf#!PLzfMR#?sP-GhhUcGR$LXOprA zh&xWRna`9R)ISb<C%k4JOweXG*7v<?h$rMTMqO(lxGS+qyJ0`_xSA>UEjHM#cG&IL zsn+E`HH%@dqaISEM2B7c)o8%lRkFAULK!^U(EuICRK}NIWin|sNXdHdQ8GEjG?5~M z<o&>i3G9ek%k^%N52Wj>l6@;g3?kbCWh>J&iJ6|kXj^i2VP>oDk`C)`Cv?$nu6ehS z(`raeUk6907wmWM|7wSKP)pSffo8Y_%On44Fy6BTB$)7C=lEtFQk%sde*y3~4m6)} zJcS01JuPP73rCUOYVmR>6aoU27r7OnxFC0$cpUCP3}g^4kcYqsBKrcrBvRZa-G5@f zxD7=AAvh9HRXPfP41pe5Sq1HITpKwdHOJM+2}ekZGM|FUpM!t~#PVO}n8=(^>L@kG zWl??rZFTnPf-P|(lg|--sTLf>^RPTNNSwA9>q0|~piT_MiGft)gK>7Ds4n6i4v&!u zZ#)c~{aH!^8~)UX(eEY!U+&c+Ql3~GGjmUnb;l04OI0sXw~b=<7HUQ{YUqgP!52Qw zLk(*X()14r-4V6hWp)?S=efbTi&@pd!r??|z;6^cR_Z%XnoW(nBR8WOe53<$V@*In zKJiL>>wZ>$C}0NhWCF{<zU{!JUS!$C@e=MZewvr5%sX%XSYpC$v310(zxxk9xOZgM z?=^C)bS;<Y-->&R-b?f-KHAtYE5c%)&2L>F1&5)%e16yQLW_AJQAG*EH8F#Lno!k! znq3i#4Frm$QFJE7NOFnn7NbE8lC^1iwML%0)y1L&P-$tDKZPUfc(m^cW{L33h;*S0 zp>C7{#DvEi?ak=-hth|9uMVjzp(u)WgW!pUtk~}8XYn|Wf%$xd@J(c;LHMV~T3*(b z%nbr*)!ZfQQ_!rwIna&3x7B+XD9!}4%IL-Yo-hb^l8ue`Hsa4Z{2MS2`2N6sbOcV4 zg6RQ$^KTmTt)|`;Q?SkB(-$#Ogd8Ur#|w%a2oREUNEZ0P2?kZdp`V8AlN{&|kjXdE zvLowJr4aGb7E~JFiF{ryvO?Sa*ia|lFSuDz-#m!6T8*sm%@}S6LkY+YK!q7Rn>DLw zFTgx=n?^6nzE%Xb*^h-2dCm)Ruh&Y4BAje(-GA_nnO7u(!L+n3ylRJ(R4!a2NqPqM z?m1-Lp|mJ!`b9qB#f$qxZqK7uKCNxSFdZ{rc6=%N(g!VHyTg+B6D4`=unO1}_^a8u zS(<7cHCMA_tLwi87@z{TkVt`x`NRM#05rX%rWJ*7Cc1+3xLDv7ew-zATahcLM2ixS z{>|vyq<81x<~N(T^prAdw&Quw=&Z=S7dV2M#N!;>N~~tjRV8d3O>e)M2R4*z6G#<i z8FW8_kmy*weDMCr91r|AxcTeq=;mmFP%&j9Ss9esd>e%zSwMWs<$^X7`+*1&K{%1h zE}>MGH0PFH@yYMJq95?(Jw~M=P4t>u->E4nN=iT<7^5n|ujH40Nkx!siZ2ogQq|>n zKlE1V&n3OI1^R}NO4J6;I+rphZLj_;JYPHxFq_HG##CEoXzii!a1!2EZ$U%}5s~G~ z7K4<|#vm5D4aM`hFa`VuH_k!sxVx=E;zU!i)^Qj5(N0&hddP_SVVjK}L5ch1nHuF^ z(<&Iv0Vs9`Nj@g9d&X!LOFjHa!L00L=6%%Bo1P!DsvR!w=j^st(~AeMcm5vPJ5-h1 zO$?(x2wsP>+|e?zI~NPuLF|loWK*<y^2qM{I9&(uLM|9pogtHHVjd#GC{Y_gv>S`@ zo~G%RV1))?2U-@1gC>34Jlvaz?I?*dt8=$DCv=YxJJ3*(6AawH<vA;bYv)Z{r{aM! zkb*46J^;jDk97v{rv*BN(fy_FmA-E;pS$a9^pFAudw0IweDHPO@+Y<x&!_mOL*7~n zX5#N;vs}SG)_ORaW!bg}OpdJE2)rLdMaykmKTYQ(oW^c4J^vCbB^kcc$;CNr$r1iI z>>a%8AFUlS_Hp4jQ^+9TUh~ggDj<2i!LUtC$jj&7VG8%;&cpj(JKn5ZpaQ{t**kc$ z@qZm%znfNl!oH?l52JSnha2lhdkBubb~x<s9gf$(VjSqjbXLqRK4Gzqut;xj_2N_i z;N9W)usV_t%53rz*V@Bs`@8tx;o&$FjO%Gyp5-$vLqA7I`l@RGytu@8W66LAjx@(r zF>zB3umgFOALo!s!973E$K!0)9Z2*6_~J~8lMmfQ0LaJ=1jl9y<Sd=dSFsh^C!kwR zx^IgMP#*mP0y_NozL?L8Dg1hsoz4-fxC0?SPxtrXm%Ct|I&sH!XS@&kvH`w?s}KJS zQh&Ra0`7s_HjG32?O=%LOx8XQ!FE^cV7o%gp<m6l*mNu>Rb>k?{(}9W0cr)pNc(}K zmA4Cn25XF-7o=De+mMr8iVtKk0|Hg%W3dA<Kg~|h=jq2B%AA7v00R$T%_ImRjcUbp z{Sj*3#>wF`LVv)j)h*N~ypAEmTzkr~SDfjNLvhitm=MQIAw?+EajP9=R)`&??W1|8 zxKvlEs^<cT6Yn~<s=L)S`HW)fZCzt<B8FUPjmc0nzUQA#CW|qv`U>#yMWd|SqdbRT z%LS_K7VY8_&gV}!KAJ<w5j}asJ@<+4yQl6d{x!qXW1a#c)sMBOMg8-lbfj)p*+-Z8 zxVQ|S{0rlggC~VMqx82QA#XP`oXhjV&Djh=>cR5pr0H|^mtkNYiud46<+j^d9OQx% z@w2OvHx@db16Vgeai2~KfdBAwc!g5}PrKVOGv$iC!18W!<u|Nx7Z;HJ^n>{Ub{K7V za#9WtQ31}xaN`2U-C4o6^(`KpUQ%mnAk?#hu*v6CHQ87}kBWk8F%29ijOnA%Yv6wK z<A>;?;CE>V2%-j^CY%94%>a`C>XAezOlnjZRY%X4uq$8*Wp^g!gs0gASw|*m#1&&l zcFoxtFiG+sGATLml@hlw3+v~NVT-|l<u9?yp<oUS293&-Fy3Gm9WJEfJYD2P7J$L1 zmHvcnP43!F=MZwnL`l5ld+WQfuQzu46c81Zs)os(Z|{HoK>1_uuV&n~d+e`BH+u-p z=0!yb%jzZTC^?aKe5;?VCF}6#Jz#y;!7a3+&E8Aet{x$b8d-1*;0fQ|yH93!o(@r1 zgtoV6BmI>AL}&@XrD7K`N`|-oFxk)CvAOf@*48&V2LiT3-*EoyP(=dHtCg#|4Qngx z(#unSSAZ58o%euL4UpL0z4&xjbU-~)uHo${C=%}KFf^^-uvVs9tA0+2dIy^`Tr03| zUVQ2{bQaD7b+s%YugZAf(Q25QcrzY?*(jL;Y3DSTxJ9qBq9X?6px1SUyFjV&8Cvjq zvU~8+&=rs!q5G`yWZ>nDh8k3(2?*cI=i(tz(lv+HZjM2_o6j(G=dRfgI?#rF_u#?i zceL+3N+8k=<CJYc^_tP{?DgF`%g9z>Y*#VcP)3AiKs-K5Kc_UMZqd7Ec0$dOrP)05 zv&qoJd=<1!YM64~?~OO%noDoP4)RSUkwzXL*iM<aDl^;Pc5~S)OUXSBYUj`28?)t? z1az(SKJdM7y9#D{4b03Hpm#sS?xPIPx|umxBiO)6Ua#s|>v;rT7jBaI3wwLsu$`7| zr9Zoq2nlBSMzZ^;6Yih^CYyHMy%ImYhK^>R@(P?sh4yqpX`R^WsIidO_DgCw;V10q zhgA0WMSk)D0_H9q6(L8B5$Nbcsw<t80Nj&wa<Z7D91{%R*0(SRnl%E{5vn4i$Er`i z_duFvcw3+ye8SV=YND7vjOySJQ1F?nR4+FpS3r$%<Ee2~7+U2SAG@Dd>W=|3genS; zZAaAXA>fpCUd2Itlz#dl+|<+NPWbNI4j9F$W?_8x{O4buKYjA{`7@||Yj}Tveg=lo zP(&$_Sa}!OqwMM;t&;d!ON4XoCY&PHYR`wUW`KrNdm5V)l;;U(oT=Cgs-$pmRBb#z zZ((IEmkR$eXhEn1a?<C<S6dCP{Xz+PcBtYQ9w6wL0^Ys&BpTzgiP3Qbd*wstWKY?m z@a@km@?dzmCDLLBRH50jKOCmpYa9XpU`v4lOquJ?sKR6QNo+(yf+D&?X5+f)Wd=UR z$vGVR<E!LZmd=vr<IA)hSKSWl6fo>_0dXANi178?h)-PCz}?l2QkklLH$YB6ga-Vg zi?ob%X%*E^Fe{)iW&<vC%<Xh1GmgvjbdI%Z;KDfjIJ~?+EXuQyI{=sXZ!sO+Dcv|G zAG7g>p5I0b<b`9GCa+1WhwglKJAjFnx)x?rhUcPQ<TsSZnHK^#I@pMDE8t%{y6uPZ zR=AX=?bG&+K5w8U808Qh|8T<$t;UZ!8$7x3h)=Rpx9iI475>+i<xUU$I4Eeq)+*@* z>_Z`o%cueDPgKN<+*wi%*Z_}%nE}v+6dv41z%f88w3rv2;K<SWb-k*jdp$oASvBck zlselNv|P*!;UJft9xBSaHY@WF!z|5)vur*}%ad~_+E$}`o15Q`-2dJCcC__y_~7f| z)`QU<)@W>OZQi^0-InK@h-1Vg6j?e^t}%6^JaadEnc&uD@r}Mhq$3gNknJRw^h<P@ z&t{;|#83kPY7!Ye$Em~$^(3{Q0A{*FW<cD%^*FA;X3|3ff6!^b&86;|kd%6wg&WB} z<PW*YpBDfopezQ9NfJ*Hb7_uS^3<4`wQjWacAB=g@A+qcT)D7ki9y-8pZ_Z(1!*=_ z6{+ql`VglWd$P_Vu1=;hC4^{U7?ZG3?avpDi^_!;M5A^W&Xeyw5gp}3YD@#=AGcNp z8{GLTP_s8B>08?bC<?%vrzOLQ7pJEnvwOWI5T=i4E%x(`bQ1bYw<vysttH#`5w#3N zC~y9J%az}x9GPJC`C75(ph52%L^e3=GKTOSqX9?dA4%|?iz`YFDvW!PtF)CFN!5{T z?B1Yu>RtefD5$&E6SWU9tQ@%*ZyLqA?I(_tF1K#j==x2KQUy0P7^wYkHyD|=TGj3_ z{7OsGFsgXJ;uu6h#Mm4!&?_9MGEy}r1L!?#Xg}z~-4x9-uxF(u?yX7945GZ0ZiGi} zBe+gsVZL7E&YZN#E!;6VF0LDn$a2sQ5!#{K^~D9nRDt|N!y9%Q$**fE%3<!F_-1}m z%|CdY!x<h(@`nq=-f=q=msN&rSL!21^-D5!wpZ}R8zi)71Lom6c8_sv?eg7!t1Wli zeI6e~{mdv3Z_(P9Zp6=>TO6*xaJFiVg^9-Pj{h7&L>wgD^Gr;{OxBJfm|D-|wWy5} z$}+sv7#ZrkT1=AOSHY5GSSjOV$%DGp{m?{fLgO^3IJB>1rys-#p#EH|ikj=G&;aAL znx?5K+bkU62m*gkcFH2-6=mmagBPbb35^1cxLY)>=g|9N+_;`$#4HMXlwyo6;ND;? zqv1z9B9*Kg`G2{Y15S$Smm9h=&-xPB&lA)OP7&qz9)1N5ccWx$a}(_~U70%Vh}fnn zHtM#Eg@N96(;HPCN>8;RQ7J#`8k_u+6U)lnBnkq~3Y=$p;v)mZhhDDXkRVk#b)G8a z$=Xd~S*vME0bMfsyX$#Nx4s|;%*$c{VHd<@ai85Dvk*@hJ~2tJn01DmwJ1*zPs)iq z7HAO+-HzOU%qE^g#b>*Kjl&;<ia<=*+@QOkx9Dz~6^ybV`wq3L$p(aJgA7P!L3D!V zVR@9$JKucs;GWVUn#aeC-Xf`-%Y547FO9YdSAnxp^@Z=%_!3}6xx>MPx~@=eAJFC` zUH8A$972sJ8BAE0N^N&VIB^FO{P?9x*GW?Z^x#<q)*yfhgGw=`8*S4N#gtbN+%ZN$ z4M1qU#~L``NS)NZ*d@$;?^YX-$_6M6I-xneAP?Bd6}+XiKHwmGk<QPDLjq)PtgI)U z_89?aEU2O9f03h+^`T<~KB@#l4<eakxyl7<2Q##1jX8CMq8JC8d$nnIM>j`6lzF2S zUVRV30|<xwaV$mYxuTt*a9P~ao;iH=UE_)GwmqclxFgmR<LdHRWG4pT32!9vnncUU zNjih02afmSF>;D-Yq8TJ#JNd$JDRZQ7D%Ai<Xi`l=E_()$&WurkSAYBr&&8zW|JH? z8!5=p)hr1xN%Ur!ni9KT;=AM(ijZhv>;C<(@4F*j6C@?p_p&V9*<*8%Y7RHhPNwx? zKqjFlII0B1qA1fcpLhx-0f_8@hfu+ojcx-y@j8AtHSrOD0B8w**xd#o8UG=;@HKE3 zEe=}Erk}1IQ@1S;vF=D^mLPODHF{rfbFh(G*{6%rP)7K3C`8xt5%$H9ycpY}3@}YQ zD=lM&4=*s{O2fCra@mZFJ*fm)MAt?6j9Esoz_)GMAF+dPux7Fd_KZW1a3wT%yqtZ5 zqGII%S#8kzljDM;Qr$i&K$@oqJw6+Bs-cj!+CH-;RD>u65(RfLu!$3hCF;?S0fQo+ zrliFucV1%wj1l8#n=m86@)7?<V$Zh7I3diNyOd7zPmX>rPQeR}uEd(aK&2e5<6<H^ zP`BE$*-@7BfnFkMRV~2vElmJjWTL)7Ae<L-^r0*zM~l0?5DB3@;}oX_!x)Kq&yiw? z={Vq$93V~o%gDG%w^<PB0>bOpVW5kAVg_B47X2*HiNwy*OSjYXuMH;-+b5gqZfzKB zX)lrj#0mS}Cb%X4$GuH*kUlQclMkp_9337U9({%G%TIrK^#Y%idxtYB=Quw&qoX^+ zH7Wy+_i*sh4|=$^*WW%!4(CT}y@Pj$<>BmTt?$16YBY7CKk<&p<6v6FLx6@zUBkqT zCC}fyaupJqGgh~^eNs${@_OtxEB*s|Nd2+lC}=vlhK#k7YdQqi(_%J1zozBC2LGc= zw@0r_(12c78EDS0=h@^M{Qs`8vPC($zRa=@ee&vdUA*({HxKR)k~<H#?mfW&Jh-== zU{i2P=7sALAo&oKuIn$p`dQv^zcK#p+OaP1|A!mZ+}$Xy3&Zup4fGtY+_%^60B6^Z zce{2(%iUo8ZJN<pA<0p=vLBwmz5em}lV^Q;e_`7?9377EDFVmgV(sDI8do)XL_ZIY z58gd;>$11q+gp8fIHISI`;YK(f6YG{ouPv}0q(tJaBS%eJ-rspZ1&p6c+%?0`xO1> z536<T10J+d?_lpgkNUsu9=!X{qcwc)CSCmIFAvubhld+S>)U;Bxp$+1jWgQ2v+eri zo^1CH$Lsz6UVm@IUJd`9Wfzjof<Sc8?(Sr}u_ojE4gc~Gq_ZJBzzWuqpW*l+>Flh4 zwA2SWc_jq$bTOgp-N`rO#R;ScajQ2?BpFVX^dRH_((jDkSH<jN_`c$hNO$B?h!E~$ zz4!V|e-Q@AG3MEL8(+Bp*+{;B{^HFq&mHCZAXzO^CsC!d3hpFd?8%F_&wqhqo=zPz zQs$tPBh;Q=MQJxEQiicNoP0EN+XM8Gl8_v+9I?Xt{p3T&TzjVD!B=1RNzMR=E>L|| zSJPv+!2o&?l0qG49L4O4KIkXl7`ebsAU;y%mF+qLtsX_Qw?97rDUnzv$Fg4{dNkCI z>eFmYb&n8=R5%H88^INOE7exXagJsuUAndr-MjsW+`Q1H{?ZYh6>Y<q`wr_cMj8r@ z)P$%9Y@=8FS6eC9JHa*J;y(k~7bhPS<;3de7JpKlAz5{wIhp_=O1(Q<o15P~?C)@v zEy%>+_N8M($q739=twy7n~oS&)UU~eHv4XJ&|MpK;c{|6x<}-G;;7>Nhk(9}kmQ7v zZS&-k10n@_z{QI=<OtADPFa_36^qNEj?m4YF+wAzHK-VlvuuW-MC_4hXA4YM{BwBj zc8$B<*dZ}tHo-uCKmjA}Lq3OD@<iBr@{P}7ss!_ET8tqLh!Zm)y@f~E9yTvsvIMU% zC7#?C#||fqx)aq?D<{m{KJ5a(Ef8r3Ie?Dc7a)r|0?Y2pL3Lp^X@ZpD75yG|MAw~B zM@kleJxZPyCfS&hP24l)g`Q4ttaEJQ+rrb?H>E$py@Xl-S4Oqh$=Pz;5N|;^)Z{aj z5`YQY=qo;Qs>}{^#)p*<KPu`Ni$m1VU{h9J{Cu~eG_qR_mFz;_)YjjYxR`rom|1_j zG_@8k95begy>$Ea^z4i_?5mbEi}+fea^bvUKp@mm5R`<f-ClsT$B6@;1hQVL-qQy2 zC7}=-Mp$bxeM25so#7!9EhIH^1Y4sC+)YVN2H;9AF)hsg&#p+>XGHaQFvKjak61yY zePD5!(4I|kA6i-OtrH!O-A3tQ$TsLkX~{)^hRH+=J#X^^-`Y{@b3TeZBD6GKq6SA? zt^BERWVJw049>;~?HvT2-vg|&>O4QCxEqLR?*ce8?YqD#B-91Ze?9|WDT32gTwS-C z=2nKI=x;ZF;`!4X&%ALL6(5f`^5FgN|NQY6*oHbU?(TO~E-QfuIMz{GaT_6g!$-Vf ztuRi78W@`0MiP^+Zr4=JdF##VXaxoE9$lQ4EVeibh(`dONBm+B|0Cgr>@+}pRfdTn zAil&eImoAG5%9Dt&jMYkpE=ZEB(_S3N$`wL-yTZ;nEHpuv3Ju_(N+@oBF7Fvbj~<0 zX&Nyb5^3Z;XNC@Y?oKYRMB#fX>?A1lp_`=3pQC11z_}voZMxe)w8cFl7`a(X|FsVk zu@j)~-E>f_9<8>MhJ4O?iJjS6mCH{DtLVPqjQG~<nTRq22994iwPvOP7Mn8afhT>C z70R!VXP-UgKW$hX@~B<5*-#m8)&Q91qlV3Qi;4P@X>!fP6GZc}n5owW@v71M^!#b- zYu3Mfeiz(A+$5aM9GN9;@i_~3C0&XTCYeHZI*A7Hr<4fo6Ag)=5Mq-3;0~A6TS)%_ zr#1ZmF0-c-2#pZ`@gAn^LtGsIF6BzHalfO%Ja@i(`0!i9i@Ca=bJ9j9*PMadwPutB z66QoG!mS3X0<G~ZdifcuU^`Ydv?Z8SGWkJSZ00N1+-(Q=>Zmz*qL-K&rQ{xW)saR* zXr+X{_zNT|<evIcde=0vquXE6T|*m$B(UTZzdR#UZiivdz23mbd4mSQDkL3`Js`=v z9{OO36(~Daqew&2PlV=ud?tu26dSK`=swzjqFEs$rlYk^zN_YRBt7aDs2eDKGZ(;M zFB?y?+K>c2Om0i;D+X|!f}jHO1fy8?&^U#p1}lRCkBvhHC%C6n4fJINSTk61fPYKN zNUlg1WQuJLuuh+w9x>>>gKqM}^S3fI?xX}tLi%HwsF$al^T=_MV_K(dE`f<Y2u{*` zq>4MkAG^a2niW}Zy;vI9dHp;vQn6N=&N9{}v;sB?`2)zV+2uNRL`9uqat?D7amP$t z5#}OuJ!IvOYPcJcQAmaLG?k_?9vJ@J(~aFk0p@`G#iAKscCrFLzuAA=HP=u_Hw0`W zO=5x`s<eACY%QA>^UPvk){<Of+G;p*ofXM;Js0uC<f#U{%dS4$mSOPhJ!Jqte_VS` zZn<!D2XXQQtxq}2$rVPS3htjh{c;b_)A_<pQ&5fB2K)1ZY};A_pkICPDBmE&PWe#6 zm7u;|dOx%eRa9_WwOXK}<#aKD%Z}2txk?Fua7KB~I9b>nvtbFX@S+bjkXOHO7(~xN zV}ZWs>xcIqY-6lG`mMYBH=Xz)LDmtx^h6*-e&Gda3ygz8PPdV4Bq~o$14H4h+KI8! z$8%9e?o{Mtkx`tTQl3jY%~TFHA!a}@34#RV5;h0wZJ_Uq>GTRw0s%l3bj!Scpnl-; zY=-YXa>X8Z8Rv&n)9V6gN=Q~yD=aNUM5A|vc)w_xNUcVlG(fn$`*T)KbJ8$8%Vs%b zOXEmi1k#i57>_I1)E>fEG1I#Je#bP0>Y*%(Y7VvtR1JW3J(;(@haMeq-avr!2JNC5 z|LFqJ^DD$UsV`-SAjHYEf@@S34Q-M7a*!MZ=gpr&Iz|n+=zVJ>mIUsgKoy<3J==lB zHKdAoaq2fu$}+v`^%+9O)`oA|s>DjB>4kCPh_B$G-sXFX@#nZfYA`AxiJI`fgq_HS z;bqm&7?O-Q0dW!1C^yap#W;(IqZinMScyVa3Bp;QlG8&=Xu`9F2<40KbnIg=e()+K z>$S2F9}S*cPZCkNhaAIaU0KD4n$9x*BzGFUs(IeXF`19NPU{7}7=)%~M@YFdzO6sd ztCQUg4dTc){Kq)=fYsEUGO&KaHTzlVl>q1dm5M(5bX-0f^a&;+0n}eN1_*i3!H{VR z0mcvor<hJ14SDikPyQ+SMXb3$=^}YX>j(WRF7St5oG45nqCUQ-i-(E&Y}^&qB(jK+ z+i-ysYBIeQQJS|?nsK{N;c+oYPSvfUAEmSdWGe{e2AA)mn%A9`IRe_ar5wn!uythT z32)F7nz;w%1QP*B`i3dbNsp{g@X{%!`F!qK%LaB4ztQ{EV4h(33%8A%#_)&mkt&^I zC4~)VsBuojEYX+;HCBq)Bpf&V$*jb-pM#LWqP*#J_r~iXk`e|36Y^wDUWy2O*k_Eo z$6`7<yBHqbQs}Mw;J^0Y{8VctT*e#Pir2ggR$bGGvIZm$IO=lhXysX^frgdjr$t_i z1j>%4g*h%D%Fb{-7T&Aktks%-m!;lZ_t7A^ECH{X89B>_lj+F)xd?*tRmPVltSlZr zgGRpxF@llC!tp?XCgnkcNWhdm#Qvb~u<D5E(}s4rQry`*_C~D(OZAQYse(=j`H*^X z4Q*8fZ-s{-w7$AIs^Bm8B6RBDo6H*74gjc`^sr}>;uyXW%q}`_D2u|M%mlK0g3hee z;ONuF<>lpuqtDX~*PCnxZnWbawB5QP?f&EKi;ag^g|X=SX42|vcH;jWtwGcIG%FT! zRwvWZMnB_@J;U<Ei8>`+MDj!&X8aQbbo753$#0u6RyyFDhb}<djPtNI0&)b#U&qoi zFx{u=Bp&_Lojvd(fnOxD0dKxd>DWhJkb^(vsk<5T89jzm8dV98xK5vkj!Jjey4#5u zwL9X?FATcvBy?wFx`RC#nI^HBk=7xc=nFi^!Eoi(KVQEJhGLo5u2uw`IG6_5Iw`@l zl$pW3WM>E1FDX)pZdEMGlk7LVI!r<*e9%pL>J3M*^7(AzIGbN)*{n|$-p)k=83@x7 zO&j-Y+lTK;E*K}TkX{*RAv>*i*YKxX0yg|ps)B)hi{gM}tHA7|5MEi3p@|0U#)VQA z?gK2SFnL05fQLds2EpBcTEj|#ADl5x()UQ>w+(Y&WpI&bT|dJUt;nsW|MU~KY`=8N zYZvhahPx2+g}NU?R0OqMthC*xF95L*W*n@2?so|(LB#DyYGPwahYg-%pO2gT4KSxz ztvM<lwCUZKh>pUn8U-wGU``_7=?f7|!XZ?QnZPYzd%4v=GG7Ib12=qXylMJ;Bfkb0 z5%Kndx@tUt1zhQfm<r0q9DNVzigTAoJ_URm0LIETwuTQ9$Zem3d7)ER<2EVK3RRZ7 z5>}&GW6(7EMRy0m<Intk>nkfl4SR>ABCn=E`5GhSrKG>K>zez86LK7J_LHI-F=l%z zNgH9=&ZnB)sv4SPTt=Nn&wxVEEf^*(d>Jb}<pVdbnD)?OII&BC7(rHaqvxuNm8?<; zddtxWUB4%jOjWeh4Fq}iy^os*ZG7d0-RQMPb~Nm`_Iy^&)7c4Z2yR~mO3jTNe**%# z1+JFqdj=TNWrk1>D`Wn{FP*&R+)ko|d{!%{Yv|;z0-Ttp*|aFZ`&?SuNBzjg7*l&= z5+eBow+p^~3KI(}ZT`f~Cza%<ufZt_ltb<w>Y&O-p8R)qCB=SZf8gF+oGK|c2{K$l z+RGD4^T7)IAJuzUF{14ApAgY>*Yx5S(K#~H(J@*j{zxvD`WvalI9jfFUp;+GTog&o zsMO>qZ{2@N-TY-yxhW-QHT4GuuypLx1-a<){iZ5jnA}VzJyUNTC{rYm><YGfaF%ci z+2EJEn;bQ`@XcvnW<Ov_ZRb_t<aO5rjAy_Vk~c2^KJL?biEIq^WLIL;(1r^;BtyQj zvm%tiHAKgkrn*DwxcM)3g)G^vBR7j$Z<R(H<~NvF_@+1kGyV@3XxI`5{PodIuN9t7 zG�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%0D>2f!myJt{N?Jny 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%0A@y* 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�P9)tOZ;eoup%sc#(kxg$R)Nf#4m? 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�H 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¥W!!%SJyY);)bWP-|9@f0-wDJ#RM=Rj+CvMT0OU$EnD z#ZgRHz%)f824!GDGo`O(j7^$hW&w*|<s5`59aU4Eb*V7ux=vyRJ@^{u9A;2I%_Qkh z(As5q3=>r6IctjK5K(SR*^RgXfT8J@BTHOU=~OCP8wwPEj4}jt1)RX3G5(G?lBxoW zOr>0Xlc7mlmHpC2h>GZMKfeu?g5Ep5{`}=<psjszGCY2=|KeXL@30H6T1L{uQ)NKy zkXtP5fEr<kN{15nI$^7dAiI?HZ$Ez@b~q@m&)|Up@t-&W^_M5`PQYcGeL_7iL`y~p z>8oY7yj^6QJmevO7At*ClrN^?#ulJ%ifh@~#~Mt-wZaC6^{N2oKbOx*WvH$wNr`~C zB%uPR+GEhNM<2S!Az=YNn9iUkItrUX{72g#H*<WN?};}jx~T@uoPntG^_PLs48IwK zx?F>12tm}Oy3ow%1C603#*D&LL|uc^BQ%@xwOs^$<=CKYd8;&~VDj=jSzb<1kk~;F zkbW(!8|(*1tD9YUg$grJNh!0n3V#f=2{JG9W@HR8TJ}YtysR~8M2ltV-K6s-a=Gs? zKSq#ZaG4Ob5kFqOe8EEdAlymER)nTw4CxQis=teGq8YIA1tmZPX=De?c=F}9PhTH> z+pxw26v_#w)STz(gnP3zGMSFeR?1Ke*i9c}Z*H?Che7SS%ujfkp{7{nC!JB$JAc*t z_MrFY@!i+=pUgj>-iJFbz6iO8_CZtoLl#~6I@uu?U}$h8ax93%k{j5PJD|cr|EqWr z{Q0ZTo77R_@=k(Mw|P1jd~o?X)8KjV)xYs!x@W<cUxoTy-IxE?KsVFE6R6+47pJqm z(?0xnKkTe-K7IZvUVK_jKgBnnlI5paeDNv&w8%fLicizUr^VvaI+}gD!2e(;VU2AW z9~TMK5(y~*P(g&IkB<Hbr1+2MDtb3vC#!;@D5S(JV#sGZpu$9EQ_iO3ZST+5@%f}l z10P`wIgR1}VLR`{v{qEuCw8^xPCBCxlkr|S*$s#EnzFU_kTdn~V4k(!Z1-TGs;2ll zMImOKXt>1c`@!FGBSAANkzNa+--ArDNUf{6Dd(45zoEOUg3WhcGM5iQ92_#WSBt?0 zx1B-x3WOvOnDXS;c!1Guy?IQbKKUFpg*njZ24JEn+`*wMv3Y}DWh4g%W60nQkkYQ> zcAAPbX4z8O!E<5~ij3!V&8q=7S&FC|_}DQkg%l?Oip0y)>;C6G(k1YxFrn8vAUlzx z0pCIm-h=3Z#N|9ImuTt>d?%+Ec5ni}gDda{be-3Nm7MFlxb&z=vZ-{%$;hQRxdW1) zGNhzQz6;xbLc_>0v@QQ-1EO39L%}=%5as)8bYaG`&X=p3F1urD3ZHF?BJ-Fvstx@U zGEh!1AZ{h1HrBDSNr}O-H`Uh!ZdS4g&)7wAjSfo8?9UER&cR3_e1!jTK8=@npP656 z5dmVT>@0yFHWFQTa3#bXcP5RtF=eN5JPV-v`EqPjvmEAOeWGyUk0%Wnny?E?dN_L0 zAET!ciQ=czQ~YU2#E0Fl?}HbgMj!OMFsupUz(-D21aYY2hx|J1U=}C$^t1(78d>{! z)!{L}9?pIQA`e@g0g|4CwLD$TLkAR7^HA})P0}e*x%Pc~H=TiFZP;ZX`>@>xe}o>v zG(~fDNm+=DAn#vcl8hL$SMESmB#{U@FF|@vHu(^Z4&C6Tu$KF1p8VDC`}SGIRQ*Hv z8?0@LTc6C;m=hYWjRZj+FB#!vg1tqA8T8|>DrO`|H=3Gd2#YMc>_zi90-{og3p#QP z`cpR(h>jMDLVM@%E{;uMNf8O8FN=(Vyy549W$xxC8p@Q0aYgD{fQep!i3|~pmzYRl zib4V<^7l1nS>zD|x+))eu2~IWOSDM~c_mxrs4{(eMxYR7il;yGiNdrAwKGA<#A`j` zI9R@IC6bDyG>FNxx)I+^G7<RJ%(z66g45VIYLso(JltGNpH*p<)dM}>*TULS1;7af zhfl<vi;c8twf%N8bBU2M_YldMMUbEP*xl-(@VhAb<xm&-=}EiRryxbV4|n6e&haNQ zoov_AW!@|j#UH|ZP;O^WN;Sn5;y$OiI;=atFPPy<BnYZ=u9Q9sU*s;QvMU}><3f7h zdfFdQQ5qm?%OUJ}mX(f@hB*p={SDiVvk=&pnO&UF?!$Y4g^D|IW{ckSd5=&pL*c`z zJMM2jjZ-Gcr|ji=bF%{B5r{4ITy-q9)bZ9*I}NQKIE}!uC0Se3(byvqi^7<<Z4~t* z*d^GYzO`+BOSPiaZc2P)pu0kB;se{9ODZ<I9+ZBe@f#fi-Z43Y;s(D%n#bQ33XA8> z=s+>$YMy2n%j8$GR^Vj?ZdD5L@x{y1blSOa^wtf4_5W?$v?3NnQt)kl_0q@9I<4c4 zrO*)>S6@Tuy&tuewLy3O=;kKoD>{)S?r8vFt{?n0D`IvxI0t{!0U{D*LG>v|$LpXH zdH#jtPDJu0yjT#A4$zHaN_Ec*{HiZV6LPoPcv7^5p@8m113e6nod+=Sq$tWqwH-{^ zYSvO{Qd01Cg((G5QsA5FvVjqhgD$gGGzFYK`O}}mx;j+2iJ`7aFqC9)@ZnVTIY??k zR9r91=}h?ZEB8(nm3vs^h=@t8VzDmCd_{4GB5>ok+xcDv>KvgkWi(jPS#srjy&udE zeea*-uwPtTB0~%%^bwxxJ82d1P0<=}>HUo~IZ3j7wn@?%0+Ti+-O{FJl$W+K#e`v1 zyi5|4?6G@b@;Y0bF_oAE9d!3k)eAlo<|XoY&7e4X$!tq%bx}}67o>MZcv&elGTEEd zZ)0w!3F70moLx+sS+?D2rme^C!4c&&0L`TTWc=dOa4+25SjJm~5)13i5*5Wd0qPg4 z0Ibu_=tKB&ynh;cBUH#F<qJNw4Qo5&wO-L&EM~0jl|^<DBfX`o-y(%C+YV0tMKA%O zWn&ykLP3A#JtgXvk}gLmVpM}C!6RBE*u#mJ4=%;UYw~nFN103Gu7Qo+U=oziZlNIo zd5F4Aor8+ej3I18g1zw>!uTr5Ho3morNocStAVgG?g&^Y?gK}l>-K{mq~!<gGV|=( zZ4He~M)-U}Mvpx`rT)i!uNLyUXp`+B><He>&R*;jNp7DT>2KR#n1Ae>fBdWRyjbb_ z75T`kVtk&wfK1y7<@fN_^&I+=``Vjkww#1`=rM&D=ii3a^TBZWqyN2AY7d7#`?xVH zXCgf{kzkjDe5%7%;N!csYGGY-cqZX@Vaj-9Q<9|y3|Zurc#fR8k`1Rx5Dn*eK66Wp zihq_^B_2qY#@;u|$dBY9I?Jx=bsFi8YO;x;Ecufh57V?OZ{{i0viv_Rw+RMPg%*u- zzuTUliqKnQ$K9Fq;@<q@*!-j0uG9BDZmtUNjgNWC71XX64+k~>1bL;g8Zr0);=!-4 zdjDfA{_TzTMkp4%FolAWZejkZ#DqpJ`GUew+U+jc*irJwi=k^||MsZ%+zXw813~b_ zoJ?<AA@++f^*W&+6b;$fr+@8z_F??uWI*n?O0xyZ?=>Ou>U4R7$V~yB5y2)~5qv~W z<`?=mK$onDW0gU>KGB?P7U9$wI|=sVt+2<Y4XkaAFvk@2w;!~|tp^4DSW0<<w^(zQ z2%T?&;y&G+10|_Ec*{c0^%`?+;GrZk;S{Ch9@76aLpK$s@vbF)G`ePo-<L)8;dcP< zop1+>f*Ofb25;d8zOOcC%VdGFFZcVd3jkcFD|k>hILl_YK$lidk|9q`u`~@Cf?!F^ z38ZbX>$|EAAHHn00*umKgU*`%lVQN2Q=H3T@AR&Gw6RV^a;_{vk;K2XtT}i{^{A}- zaGqZ2@d?MiM7_1bieQUI;D8)OElp8FWuE6d5h9;jGo1yj9WC9B8g5LQ^o*Ri2hOnL zSi2hsUa5@As(pc&yGoU)UdpS|y#<V0zbdY8QkMfa*w9wJP4g(lu0Il*q$hcbD8e)$ z580MNFzTC9(i2-Ps}BUyCwJv?`t05EK8AXhP6vg>+z!xpjA55ddQI~2;pP76pxxS= zbdK-tK@bX$eFvkfciL_wgqOleOl}<KQk0^WxmyRETNvfps!vI8IXbcYL$lO6O;s5& zsV)D~NDR}Bs8@ASPuwvvMj>(4JE8p<+N~X6B73~Z9tx7}`<lm7xwom8->z~lgO@y` zKxIK{pm@qUtu#4v&Qq2vd=sw#?r7fvGJ{66czKnqL8n|G5Y^@CD8A8k>qc@|H`E$) z)sgvkon7Z-$P@Oj|N8D{0M;*?7^7d3W$;%@PKCF0(gmDnpsBh|VP4W+ew!EZBFJQh zK0fuUh$4xTXj?W%={7`5L?Pu9E;f<zM-+3Dlf@55{g#1-c>pM_<rdRpi(6|oA<}q& z)9>S;(_q}vX^y&1g?iG#CbsD&WyfJ<d+c{=%1{|JAq_$uOa0wUD&Opa+Va?EYg3%} z{#1|MYR~M<NQD@SK9GEulvgjerM$9f?WoPLY*$OOVkv}U&HY;99eliS5zmt7)5}$K z5r2Bw8}&e$u1kkT)5H|ZpNSwVb#^xF7ofmY5jYiNP?FSkI?*K4yYUo2+obfyG^lF1 zjb`5z9$O(`XBT;i+_ZNdP2<`-)*dwd1|X=Pw148x<V$f-_Th$_t>0*TyNL+3axQ|p zv1eJvwCn7x{NkDp!F2VZk}kFDKm1iTN~&rlI$AA`>M=+Q<Ti51Gr=GeCs^IME60pi ztF|_DtC!DXacvd?XN;_BW#tGSo`$6|ouYf6j}O6`u#>;bB(@PHER1?OLBEVW*Wj)_ zNF(@-pahEqq#e)&^UHXBm858B`u8|nUnCJ4+SkeXHYw}vQe04nCu(_=MmpB`Dqi0f z6lEQq7vgU7$<X6dT+U?fTq<&0Z{QLkagE&98c(D-N6FI7Ec@H>%;=&X)0$#gl|A0* zr#?eFJ{2fvG_tGit^l_U^p$4`A8+%UAzOPK?5UmxyN)s6oHas>YAPg;z*OOYI`^_= zDn7BMZsdziS|qD9;bX*&yw6=cL5Nm(rAhduaU(99O4jJ3GJ7sL89L&?pz^bX;&hOw zz1l=7Diyh5Nl^L8!wybiqzgfJIJM^IzVVS+MyytLT!LseYjm>Up}@D7xY-(TUZMRl zt5Gm1uUGmpIi=;<s(rO)JzTR|=MX&Rdb&gWe|1^6TOb7Ha`th-r6^uggwv`6-A3=_ zdvH_`7NxPE@T<swoWL1`=)RE(7hgmL1}azG(B7N?_ZUZ3>S#AcXv#~ii6?Pqe15Rk z_NCvW{7QzDxjFOd>CLjlRi=o0Se7nt*l-zL6mO)tzVKo%(7UeTIx#X-^bSK<=!y$I z^)n2zT_rt3hzsHbqsFv2g@)UCj0fIeQW_=8aff)0-G~v>qM{5l-xhj?kG}qcjxBp_ z7KjLY!BJgnnsYW3*J!j|mBm?zY_mq9nk3)5s5=rQJ19FOimCYbo#ik~FA~k{D&<J8 z!f(v?VCHl<-Fwk{K?a3?Vt9p0?yzN6obO@l@E_T~?vEeA|35OWw&g4;GU?xvoaXUN ziHicQ@Vu(@wF~p&M4Q8MvuFx1?*GJTl(=NPwyrE<qaWp<>#Ey_5c96gIrE{fVs3e7 zD3v=BQmS2p1H!sV#YP8XAlJ6Z)VdbuAHr@s!PG1h<SI|sGj+t2Vk1FAn#S^;k}R6Z zn>2WW=9MDBdkTKcjhoOeL<VB>G9x;wx}q$R&^+bZ$0BIH<XgeJW}8r2-GYM6<F#=j zWe%S#-K;6^Szg=%_~&tK3<-z(4&T4S_no@{^W+QzUIo|%X{`R>yF8ayoKo-JTpc3; zKH|`$N5<vEI3ZksN3_k<ZBOdXvh{_f8UVAt!1NWyk_n{d3m`7eB3Y&z9QNhSxMC;b zXHRP&-<S=Glv_x}M1gV5h4Y+|3SZqjG2kemiLa4CE2>jz;W(`E&T}i%!knTS(yGZr z=}4CGOddabT5~3knBNhjo`=Eb!PBo{gADK=J%wD)45(m`>OX;RyYsf-x;TQ5Y4Gd> zvvJ`yslbamIY*lg;jevYyGL)0ytq{HkSYS_g71qXquJ8>&o^<0F5MeE4Y9&kU)5X; zN`+;5#YTluc5l+MHFpJe(VtCm5a{#ZS#SUlnTuOvJ4l-j=|zuT%pHCMM2;RPxEFj4 zwGXAaAAz+GIt+p85JyTy?CQ!qJ13x8)sJe5K82!3)jf5N22bISd05e-^QdNA@+y(m zHW`(&E7YVU`vDmM#b$A}evy6m?)y&IpNICw$nk!olK%d?bd>`X4i64M@@#+JwtG#{ zO1z}Ysek8A)9Ox3XQy`Q(C#Jj0<pYWKwlOx$ik(tK#l<Gtu~GQ0$%}m`zNBZNP#=R zc^x~2PVf-TV%4F)%5;{gVxHQ=oyC91fO~(~fC*jVGKM~Uv}qIYrq*cF#^8<Cm%sC1 z8-VtKgFTOCaq@c(HfjRd$QrCiK&T!p2zkHjXd8g`fuqe=zZI}n0dl(02#`yfV-}K% zGd1F?P>DG!e8-ayl<9hIoeZs=gVthRXRF&aWw=9e@95y*>mK~)&%t*9mjb5uIx14U z#q_Tc-6{Q#IQcbRo<*AlXIXhYUxWDlX0^(TSY$WGV_rqE8V&|IC=tChT3%o{quK8w zxhX;Lu*+aNlHNualxTF~FXoc=4{Uf|qn0B?szduzBv;~46MQJez3Nwvba#zHTBp;w zhDM<UyvjHPz+a;{gIA75C`oouWS|luUuqBUj!HvAIq?vBygqdL5R$nV944Rz6>Sf@ z-j~DEFOR(PnNj!9SNE`4-6LOJet9%@M$Jc}6-@chJ%GNdEMIkS)~m3LoqmOZ&iY#T zda;ggb5On-2~K>eonnS^gZkJ%iWGKFRu6emD@Pb1h?q0fO~zuRc71_4P5UaVE8q?` zZFfw`PaoEMyu{qGfBX3@))B;`zm8XFG>tohlL6>^t<Rr+(=uKT#miUb%P0Ku=&AYg zSd{#W`SP?QivG!Z8;ZAoZaH8Dsm+`kM^y!bJ+vxx`9J+WUM=TrdXfI^)p{M>VhC%I z(RHYFNjce6J1P?#sE3ZS%86XLufBV7UR_m=_oyEn2YBr|-Ic;dlw&;0=jt@vAi`Kp z`SVdei^hYbt7g}s{21H9EU1vYU_BosNK>%;Q8Mn!s|)1c;wVd{_1J0)FSr_iHo*22 zTD;B{t858C5`O<+=!<tUQ@Ut-kZ;bP<1%YO+=rd=wlchbZJ!$1$Gh0NWyB|O-$ah3 zYxY`}wwB()4w#$i7DAI>hM-R@`<QauoVwNxg-LKJd=^}-<T)07n(ddHyL<HC@Gnk} zP(}^9YkU~Aeg^IjL$12HUf)`eHuylBmhd>WFi_B4;5vI-%U<J>PD=Jqt;!2=LD^3v zidmMdzADzAcd1T47yqW>UnJo7M#Bo^qTL<VRSbd7o`0KWQPJTwLuL#}h+Y#@BEUO8 ztQhN^7E~gTRaJlXtzUz+)9XgeXvc*Ui*|1TlqJ`zD0Nnf&~T9~J0MW;@93s;Kp|xz zugN{|+4z@DvW`1#G)@l?^lkiDX~TRaSiSykbgYBgp#=O(CUsp+lWk=HC4yGvGLYxv z>;x*UVBg&hMl`)T`RBf(1As=<Jw`u<Et~OP*>_NR?CwUZF;Co{wDX;txOZoSrH+kF z_mFjvJl|Ri&X?|84*sNX+u^^B6_O1;aFujtwJ<eo%Ve*A2mnBLDBr6{*ZubKo4UKr z0*&VyHv>w><$TBbt&lnNJ!X91Lgx0xe>DKHM-S|@g7pu~a3Lf=ia)a_AoVfyX9!2@ zc_NNps)86>Z&Tn&fLY~bUHC39tj%NgvH%<s$|sqt)EfF$0ewrIYJzf(^Tpz~cnvn* zzFp7(cuKP&?qJ6>q@XP(OS)MM6obAqTRc9nr}@Oke2)$q(4or+lR(StHAN2wtqXdZ zS;tYH;lyqUHl};Wkogijo9H#>lQKXmZo?#ZmXQ#@$c%O9(%opoV4^ezk@0rYH^-w^ zBcIcuigi4V@hbU(lJ8SgJKjxR7`gbZX>Fl1hP11&&~ee2ml#DRr7<-tMXw0C6PI;k z6ELAe+x3oMDhnlE-ak@}kNbcW>21gU&b!SGEfx2XcD$J>1yeP+B(YR;*C-%ND0E%T z56Jn%BPS_f;AS0~8`!x!%kT%wBj5v6-D`zPL-R65;u}P(Lx;S#Eu~~t_n|na-o?Bg z#Hva%xs2T?QD+CAOaiS?#a1OAK!uqI|NQTN;V>g~Y&|(YKR7u2vKu^!<5*K-l5<Q_ zES!NQ0*QMo28wr)MQI??!R5SZ<rSi8ziWbrI~WOL5no_9FKF2*=Fe4EZXF)|iLTG> z1_zT;htU2xh!tsqNu_fmghgIddIj=Vi7w&JVnsB`>0g|Z6_+6Wbue$b-^jo#I?Hfz zCSCL(eSTeCQ|fa4yQBNTMd<O=`tXzB^%j)8DX79<n}|~ugzcgHsWcR6+fi*|g?w|y z@&m||M<I2BcCN3!GA&)sOt?<xDEwpRR0+v^1*?pSA9n5#%~(~P8p47Al+Y|9TeCo= z9t6-sLtY?La9Lp3Dlv&|uhIDJxypi`XA5L?(K3hOgVulB6_>oHbn`oICLO&c?w7({ zlm}NyL>GiblYa0cN*~ur&gs=<-p4r*O;y>5Jw*PhvW%a_1xB?@v&9OEoZ-&8<xCM- zI)e}5z@pku9HGydcBUv=VAOqa9fPPeIS@%J0Iw$9K&C{;SHH&Vthb`v6V}G86;u^J z<du3xK?MG_Z;`8AF&N&6wMb)BHeHu4_Y3<#Q-A}ScPN)Ay~kwW=?0I6SB@|7#=rxP z8H4lX`@tfeBzTT{8BiAgJH!|4V?d2M36Xca<K1uV31@tXCMzf8>Te(5fD>$^1eJ19 z7MsUuWdBi<XqnsXEavmFE4)*F9xa!cJqcDDgfNAn;(g8uOY;@}H$&bLM|iOgB79$F zlh>EnqBy+4fX953@_Aa4#<TT8gyFhu#}GKDAhs5m^%kTB=8>eL;DG0_7evSuHf*6V zvmnd-OA*~T!crU$Ri}VNNA7zJwMd0<?J8_ucd>)Zo(MR=F2YhBYc<qQWiFkvxfJhp zdkX)Qjifxh(R7Sd5jz)iqX|jGh0kJk;xDi5vC2yz7RK1t`=T+&cOb~ackjNhA`b*m zDRT=a%b*+ub72-a^cFcYiyV22L`t~FVY*>N(T&`xXtI$}VclSnEY%0tFY<%qN94#S z+{oC_KGq`c+zn>I2{qoscMir-r?6A0w7rh#Xv}G`>j_g%K}^p@@Y4*vVH7$edqfKi zz18D#qCj)t6sR0P0UrS)#cn<1Fs=(|^b999!yugtz``@=^=s(kAUx)COl8_cEnJ8e z&Y*?0Y~kqGDO%UUnP_1REnLVJzHHFKy#v_6i5W*!!uPviKBVxbr(YkyvJPowhZNQ} z1RT=lK!D>ztVpjpxr}SiqZ>LvS=U}{*Rr=U%_LkDK0JQRKTRQrI%r~3@@p*^bBV$P z#wQ~WX<Jsj|81rwaWkj5@`SGDl=_XbRQsSv9t9r^4I8#;p{6oy(x$p-sly~l9Gq<T z_b}N}z`pK=)(T=f(i7+g{@>%!T9I0Dj95sntQ-uOeGP$<M+pks<Xjx~G>_s)*|E6J z^c}0Y$(H5qHzE}UU9_i*wsQizs*q=(K(3Hl9mR_Y3lFzR4D5UIbakW6LLwc<`36SH zQuCBdLuf_g49O&!t2<p$BGJkvE30(UXL5LOFkN8ez`+7Lq*ka$Sr1AaP8Xu<rqV*S zH_T(K==hnnSZ!vn;^K5qZH>Z!yIk1tt3BA@txm>!th&OYUuVxPtL$8<ta_{aAIeFt zMq~RxzF+0^kjZ;R5Y;rAki=<m<Bk3|2kP=k^BV~ISrPEXsx}`oZ9>9))^SPg9n#u% zaCf>4NHy`9wXELQq@)Hd5?UBR0ZZ~0*R^M%p*x`a_7H2|pDry$p+-kC=ZA+8_kC_5 z_;d_SdQ=bmXN$2G$9Rs8I>h;Wo}9C4XN=FmD(lZLzOW&v%yY-S4!HTUtKD!X@tA#g zuObvoc3>d35l*4()f7=-j;$MT3o=qKDIFBt(lpkPc4DhteS@D01mI8kZXL*4o=(Dt z(;bnE(4snKKJqf{F>>dhn2Geus+jupqGB%?wTBf+u-!!WWfG(k%Saj|reuJQou(&# zG&lE>k+z(-50pbXe|H~Ro6C?_UYp=>1SB&CK#aMZ%i5X|d}~a5IsdBy0D!R7a_O-i z-HzbU9fM4YgwnV)1xXE(PV?0lZMV>n3k|JzL!@y->)k$<b7|o|SKhb!_?NHbzqsVT ztdh@tC7*N2=Ruo+WC(oY;|K2_GlNWd`F+c#@YG2BvQ^Zrch;-(aEIICgv_&$Mgz8a z&Fj398jFvL6FkE**YXdOEM^r0)ul0EqNl5E{IG)0?czmh1QG=fMJO!$xiI+!?S~77 zteoLim1+3Uz$RX!GwC8;;!RK(>j0AM#cd$(p_G>(@$H}2m`@S(f$NCWI<jzyi!a$_ zP9{d&DQR5L&BUA+=33s}sgmM75_d?VryDcqMVOUO-kl`9)0lPmM%=t2^Y>xJMaF4! zun>k1sk@c(6*3?k9XUY7=%CsaS{~7&pRY1tu43jtF4^`-4sFc5x5?+mkxV`T3f0iE zDPH}uiCK}$HWzbjLnQF)VqLy7GfH#eJ;xXT<NPDr{*wZ)DW_<I40xOg2;mn1t?WE5 zrgH=!+VDvOp6Q4Ukrc3e9#$s76ZnOCBdy<wKxfVN{%IU;Jytp*VnVx**whXH@IqNn z^o^*B1yOaEO^f(Nm(z%@2B-Z_8o&574fFi7LBELef)D2k0{0@&e+5JHk9|3)I(}wM zNbEWlz@y*E4P=NQq*o87dQ7UdPy^=2B}I6|Jw$C>C>jr~S*~F6ShZ-8S6&l7qpsTS znoeF&JzSE&?fJg&$V*rDk@H_}Lw3hRg`9?2*S4!sDWUt|KR&-5QX5SvqG_=KLSc{* zpbaryZX<p3A|Z#ksfM-pf)6PJ3F^z1M6ik^GL)B-vS&sd5h6nwFnpwlF3{4JaZz#z zpuGBs?nIL?mdQT~@+ZtFL<L79jP_JRZvD5*V1ga+mem&><F<UO=a$pKYZV04#R!%S z0Qo9TZ*e@2L=+P2(#=X5z0T7Jk5Oa3PPTD~I3pnOQJw%Mok<GAIY0#k#T&JtIjP|| z+kMwyGsQ0*d^8wNOXXyh5-E{|8g;LRVM>8f<5)AbkemrTWnV;2_2?ZA?HyW;g@O~N zv+4tg&-xDs$#)J)iSB%n@5*#QHETlP<%FyXqhwqnpdzKIr#e1PK!3GSfE@VKx&o~C zS>vfW!7QFp(hUyB(k<&wMhjTJyX~toO5h{b(`vAUOAi&QjRPg+@J|un*cAs!W|nd) z-a$3-%g`FFWREgFRDG=od(=bOT}anH%x;N(3-)e*kg^lBfA2WWtie0e(I%*ur*|E` zRU|yUM{ATG+drj+!@n<at{?N{{I+AHuM_EiI+(U-U*xqV=ED)D2KLx2NHh6TxScf* z?CM)FLg+<|rGuRr<$$7vwneNe#;zP+XJC@SnM5Evh1gjgwcwS1Pt^w4`P|2s$RxCN z3$+<(eabr}54BkN(WM|}hv8UZnfZu3jFs(<F2$*u@+^w%KPvf-4<kIG-qi<m98%#0 zO&J-KgWteqvdjr^{1J=ZrbSm)Q?@dIw#T&*2igzB0aZ+&zu*aqP$?!kRi|ny4ipIx zi8Do3K!BidU1LCg4cv+4<1uX;h7tQI!Z>ssPeXOQx~*~`%obKr%`5(suOi;r`XcK6 zCNE=2kSlMVhciLC%Sf;S<2LP5<bSL#YO9L=mzS5AB9-R~F@qT@n|0&k0eWx`<C9ch z%|Rx^Mvs)dj^i9u^lj%F4R1n?Xh(UixkIEqnwEk<gl2sACY>!Q$DCkx0XXUVP;YjK zad&%AQ(f>>7cf;GznbR4FTu*`a_P}xETU5x%*47YYSDswqvg%VJ+F!ivk+9bil%|O z<4Fxpf}!icF6?hhWR8!-l(Ik2eCk8=&8Ng!6r1QuUJ&<%FbX;W-T)T&=?5p!s*A_B zM&$j{B<Z!f?P?1%cf@lIikjO?O0#eOHDeH?wL;&qMwgkN(=}>{r<3+}*Qe^i*k)3; zklu`a%#X?Cc51I~zcp+JANR;YJ?81Be6peL*akiVlY%YCQlH*02s{h61->o1NKYpI z^Ng}m-nrNAFQ)t7Xly8lFVIO(bpgZnV`&e*NR9Lxb%~lV+hN}vkOV(07KfqR@`I$K z`nzO7#@1nLOPXbun^i72vo6o<eWsg)KQ<uBn|{>|W))ny7N5r}h6JV>7C(V|z*`l= zp|A9V7AVJ<UUpw*uF~VQAZ<OtL1+VuUBP}2v{91zrHIV6MF5Qo)y6M;Ou5M#VXIa4 z^Vc}~^}s#eeaEY>6s2Kx_r3;m-J%mAP(Ky3Ehj#pJ}#hHlb(oxP(_b<WG-=H&5^ul zEo-c8qjA`k`e`@#rzsj*aoM&!Mv((7lo=awn^a~LMPbZmu#iQs=!R7iWN^2L6cUt( z)@j9Z#k&v9URVQVgo|@6m}gLY3v0dcY$x8@x?X3%RYe>o`py)X5w6Zzz*>INW&?_m z;)9}tuo)F0#KeybD-Yu}KH*zMbe9*LF;A|Oco}-pKqDA?U&O*zuB%T2Z?LHCm#Uw3 z*Y6(xry+h?ORf5;ye`tTQ`;tLZpof9Q`2EEV!}Xwj;)h4T%v2}Dmt)H`Fxm&kc4J# zd@bsG4&i<;Jo5HNk_&`Dhn)<6IaYq7>NA`Dg+cwJ2pOq!j@6`Nb5hc`==KBM-E$8) zF*&4cR<#R7%tHmbsjjgV!Yz6wLZFIfJ>G$6$wW6LiyB@h;6v|n$t{w;(30J++jq1w z1Y1F!4>4T)Xk1d@#O-nhep?8nI~TH*bw8N+z@_Ok|J1^U>cmh!W9A87JA=%NX0>dE zm}vR;tW@sMTds%~@|tp5-0CbZh{b0Whn0Npzf9Z^u-8^}PrlkO84z(8FygZ=4Ls`d zJZWrdnSIPiG9g4*;6MtZRXKU^(G2T#gx+I5^%_kJ%&Ra<u98_yHzrZ;mvy$l^I^o( zTE2`t2Hr&~AY06qPyQ%9LwqfvRAeNSmd9%{OTwlTEdaKm>IxX&*|GDzXMXRMzwepf z_sZV~=J$d8{@^{tMqt<b)s=U8E9X}?NUY6N=l_y+P<gdD-OFcur~F~;8q>MgeU?AH z3wf9i_HsKOJo!|lT&YB4vpi42jMbEX(3gk1yRDcU^MfZhj`GJ%I-?Jh@qRcd`QqZ6 zRmHTGG@;!XbcdAbdJ}2c4esE=Df}%?L7JAS671j#Joe4$O2_qFl`Sf!$+OBEVl8fY zUDbV?TRbBV-jFETRUOT+E(>m&d`F^<2n=?4!{23ml?<(NZxtI^Cz5!g#_h@a_X}|} zK)uoN!q)b84Eu_$IX7jW$lFOZ%82=hlryINRplCSi%2m|5)uS&(+FiFs8rrhV;K*4 zN84ng$$=0KSRQ&0Z<Nke(0KgCH0bw(*0C9q?VW2$YLU)QJ0RPql*(;rdunC<t}`5G zJE-xzlb2Rnqc9mO3(6>582Ez1#+k2~ho6Szek=$Ft$|X0&q}ejf8fzbQ=zl@uryEl zESje6QvKfDs%UNt%Lcbo=t)f=l|5L$s%k2_&Vef#fMpaJ40I%}yp=?bKpsY9t08$v zwE41p!bqNKv0Hy56Jv?MK}(!42k3IM{|m#w9v1BNhXixoTR?tS$Qwb$VnvipgI#on z)5i#0;$x&x<yMAr>hx<A%sEXnjMB_GvQ&kC1L-v{#`;aG)M$lV`?U9vg9}q-={66l zi5+s>2&4*c8HQ*{{y#8n^vwGvybEIfzDT(hUdCOv$jvJa&DhnBfLpUP=ML719~GHK zsPI-~YJyFoOJ?~m^lzr#L!L<^ApMlB_>@EyEmempT^_5#cB#=Co1uq4KPDp~2=S(I z83n=vtGNm{i$?+crz+~Ybo3Y3)m5$g8FkEqsAWgoJj&<YU|mV;ORG)N{}*2bYeR-T zVL`Ww;$t79HRlh+b>BvjjmcnD2MxM-1hGPStvL?s6|l^3K^mU5com0JJ!>aRmX=O_ z*kR>V6>H(nleCD}#=?1*Ooom6myM3cqGz@IxwMBJpjQFhJsd3MD7?WtJvWDlf3qZb zE)99M@xTmpTGOT8v=?pT+hu%fh?81>w$=m-B}-eHEUk=qKZ3$zD>PHV9M+%{_JPE{ ziKcTC@|(1T>XQA?{e14!<)f(eM`myz1)bK?ry|rJx5O}s@E!#S4rQ_%8+{zthBRSA zssS1LR&##ReQE-p1V5zlP#9TlL-=@t8_Hvo0l}d_ubNPlTA!nQcx#bwjTUv+xFmck zk_Y)KRZ5=zqy7$-TDnr{R+l$Rj8R)<n8p_|4etRE=OPhroznPBgnB%oG-a3w6Sx_y zDLY-^M_!+DPkF*U8W*2S!@V4c9^YG6JC<Y+qc{|%6wg1K(nemc5f`$OSp&5!e<ivJ z)9U86yfaen8LPY|X678uH<$+*s?B2b%*jHf;g#~VDOJ%&JOnH)Ny4`Q<s59S)d}!2 zsof|amjWp(H;1B7oCFO1dFJ*cDO6rfp?rDc?D=_<$d#taJ5!zqm@2_~WDf~uIIbcE zJ8VHqsC+HXNit@lK}cd;t-4|`?Cm1AF6@`LiF)z?h-v#|Z<S=GPUtpBoZy(^;#uds z3W34M7whX#r1`3n7aubVvNDSK%2n=#M#J}v+Zq3sMt5p)8wyqRsMe58xERMqe;T%0 zZ-+aL&{;2GOMh@*(ylAAe(q#F2}(w?Tq~Bjk@(ZxXm8KiE}3wec(SS?Devk-`%G%h zN|8aDVHe)rTbB<TIc+H$E;Aei5%nZ3ad=jpr(YK6eV7RxO#@0y$CtCNjY*5P9Sc$B ziY)>4#(4!Mi8i4xInLAqh|I<w#!$U8xK8d(<6u5U7FR1&!B@tGP!~beajvd@N?!nO z2tMajO$q#J=_@Dlp!`-0f~`xtr2$VSt3ao+sxkYNrm0lQvfTp9$OZ6uZv-H%d>aq2 z_`lP*S3Y86yV}J|v<-@%+_iRZi`N)tVq_N5nSffYk{hkQj*%Zo`3U5Q4W&dKnbDyV zX2v}40QIOisa@%t&zw+l^tmOBaHQH1H*@&?lMj~L+5!sQLXIiDKe2&Ym(#^KwHG%! zu-6tR2VG)N7ot#+Er#J^rip%_zv^#4fA1cI>oN^BVTrM;v#5wl$QKm_d9E;Y*T1Zo zEp*1oozF1tg;R=fQWxwTSxuZql*kYTNX)FVR=HtBIv86;7<}lw7~(~m`HSJ{;1j0j zz<+Uo@Nf9ybRcqk;IIWI0;_kZ=>Z+M;`O@*<vY6$$t=-U2ONx@Q+Fl6f<|N8wr$(C zla6h7Y}@SE#)&$%apI(7+eydC^j+&d%+sv-2lZI1YJYpnT~z)_^@CC;yMgW`UcC^s z1_&GarN{6Zv1y|x*uK7F+Am{QZ2|kP4M7Wq9u2Ez_{s=w2+bUVRnUw*C|G*0nNuX~ z`v$5?`i*;rDZk(3-wC<emw~~F*=t(R?2diqwtAZ{GKsv@XfAOmupl|<TQOVvK&927 z7pHib*Df7k%rB?wVtv|hbb}kN9tS%o=GGVABe3_O6#L)7G*YWv-aYrWR%|4ds#vV( z%wKcnxA!rw6!o8$kMjd8N-D_+q;%oP*{B3;YSh3ra-}{28Xb{yg{|Efvq6fR!$wN@ zbsDlLzVEy4#enDm5uvGgYe|W?bn%HwT#K#RXbXUEJ6OD_iS2SeGkbUZ_6veC&gN(& zgt^@%Yt@JjHA$CRE$7huva#I{(xU^CYD0O64Nl$$X~0H)i821<n<09dL-hS6d9Yqc z?P0pb0SZP<Gh9<m{GY=I%_WKt=(#%_7K8WwaLpCx8*AFsXnq5Ah-P)NU6NMwqHm5* zFe0@@B2vqX1&jNN<VYKY=%J&FhCc_@3^v6=e@)tqfkd-$loa$?Jcf^XR3uk_T@gkj zU_si9tE5|aUfW5GKEp6fbLK&-Idbt_9v{&x2+@X4Kdvg2F)w?Hk1>+GMLmeM02L`~ zf~AOsi|dwx;a{qe62DH(kXBPgJ|zIf)dF+(A!is%f&y>tU!Wg5CS9HSC1y3(pvwZ* ztDv>jOudSCihuyxrYzEz$%^uNz~vG2(LWYW34lo_cO?au_Y8Ur1JAYrq$=bDx%?1{ zwG=hnOwr}-`>`*^3{cG9h9XRE3>dFAtxQ>I@>Y;YR6ISP;OR<-y}s&pwOYT#s+lPD z{MF7D?#SvRaR@l{f+ZLhkYXpKqvDe{yJcd6>lICLvdAs;<S)viN)Cf$c7^ctz+KcV z;ZYN#%Slcy3_)AQyu%9>FdzJ~TNu~Y%{exJ4V0@b-HFPWW$WqJ54ck+9%?{B5=#f( z5HGEW9fFl%b-eZ$d({^!SOkcC<3KZ!m=#Xu9(ha{s%YyDUk`dErJOTHRN9jzmu6{z zrK&Qe7#;mC1SjwJy3NwV*2~`}Qx$5jtk19NU7ZW~CR)Pj9Oh>_gmeGkOTqh{lQs2* z>b*_c)=h5D`eRQw;xw{B-cSVa$tN$olOG0=cfSVfF>c>lAmt4TE<c;<)wV@;m7K%r zS|mDf$k2=FEvHSD3QnIhYZh~!zAk)<$ObPzaE-n-7$usd8x~`4yTKeK3;yO4a}Xqf zmk=1C#2nHp@BaOh1T^d6ST~1(xd2+yJ=twmYI9EHX3;aq$Jn)v)>M{R&!+&{xtY-( z{v^Vo@S1a~+`R=5h>A@XEAo}O@jO3b6igG!06LQ7H9vry^`MMu_#R=5=O@y)c~<DQ z2ybM(Sb#`TfNCyD5c`*ie0bY`AEk&qU^t35E2TwPH`SW`f-PpE1}Z*;W<W*(Xwj<K zXr@4oF!dfwJ+Pvq`y&=Vaad#Zju$AAYu@i=Je75F6$N*YFA<i%hwLcRQ_(n?{SuBh z$lXX=di89Ak3uTj1)W^iUBS%9IDx6sT+a38mW4F2>TVhjY~1-%j;O9bE##+olzWCj zA{pRT)3np}{#0M_H9tx_7s(HfB8u{>Hf>r2uAhVqt}*rY_xQ}E4@8egcT@_cnC#1; zD1#Q^N_#EV>SEi^CdekV(*vdeCbsun>oMXa-)glnF4Gm4GP46mZvZ~LizKxEI7Irt z>VSinW2F-4KAMN`(sDJZD@RuW%JYf|^(8tM9wVi^PT|eJhNK|z9XqEf2Pq7@#IC?! znHR!-qzOVxJ;zMlqz37tG+)56R~AM}+P!TQVMD6(M$1T`m_B*~ob$%a&p14maL3)h zD^D%3FI%!K-*VOq!!fY#!=6mswQZTv?zycP)5;176U`{QtwKO<pL^5Iop*cS@-<T@ zE^>RXwFo-+K|l_6zFbF<1*K(w<8n3x*lZu;{=f6H+8W;q*}L+&8K{S*&{sEGW}5y~ z&HTv|MEX@xgHMF#KQ2(|&Lui^E#kf1i&}qA)05!n##ry#f|k9A>E@3R*EOUBb<Ywe zPU^UDxTz@X%pU*k1vjz9&M|SXM(cr*$TYuRwqR;X_TgXM7d{rn1j2rp9m@0>JiS-f z(uX)6=8Th(i-9Bey*a%~7>^OM3{>Kt0LOa(y;0mg2s&mxV5$GDBW;c-1u6d3FZ~da zu*{IFVEjSBlR-nUigKuK5~^AwfekA91qDLUORNA`c7PnibU+(LMKRcB@T?i%BmH|z z$SpuIGqKh${<%oy)O&;>9){-?hdCCdrk*(7?ys6Hd}kQ_`0fF(-bkEb;orBFWI#4# ze5jJMc(EAZ)Xh9T+CfGu5&{dsA(ifdIZ=Ys$Ka_^L7B{ARau-ih)F+RUl*lZr>s|* zv5H2ve4pZIcN0|fq#fG&li1*<=B1&~%v0cg*vN5bcFk+O<m{;wH48wZ?g~jW;9kx4 zRU<1Wj_-rX=)E#)@~_sh{In+(u$h|$^4_&}D6wtd-r{RBXxGh#G9i>qTG}wqqq<LN zMcqE+C^=CwWELyWFVdR0{^#Y}1mh`y@CNyx;vp2f1i2#gPUtF(q;%_pz0ST+<_o(& z8HL=S5eG3J32F;%X$y*$#9n19=J4>T?xQ(+wVgBm(L~JuSIT<Y2F#XoF+=lmovMD8 z83;PU>57lTI$k<_3P(J1k_fn4IA>Jeu9;PkmVUEr%Vmz@Y_k{+1k2Sp8pcRm3L8aX z!L*p&(GRA=zkP`ZuxI0G!Yi-^on+&Gc?5>B`V=PUy_yse(4}uJpfRv$>Th)|Ngyz3 zbvZiE6MPI1Jt3G<jv`8+uSQ6la0EFe)S{wbdgo?>rFPLUe}Y6LYv5`e<Wfkhu5>@< zI+73Oq;*CQIaI?C)I#V-CDr8MZ&r;GM&%@gP{urm+bvdP@195s$dk3Ad|;o8^0p8% z=M6$so0l6o&c7VHaM(qjawclgt5_M$rMgGBX}<-9z;G4NTY&t=5qpWJa-bBlSQSA% z65N4Gf+y6*+RQ-Ml4rg<&Jg&m19ik?Zx^|PZn0*RLF88T>kb1nq}x$HsiIbddkGEa zeT_+4)A$f6&q1Yu4za5AadBn8b(cr4>*(ruvD(?ve$2oo$EWqA{eXlGEE7k#!Pwdi zc6W%obiiJVeN(IBStnrT45uxsh78S*a9+p&hODeEqV04hCadnruwN*qUPaCZo-h~< z3@aP>r}k6Q$yGe@0`9Vg@sP$BN%W~|vN93m;2Nqn#F`M70_MX+&4dO%7li9D@bmWb zXW`H%0XXRFvSv}*ANdz!IU)>CEg04;Ioy0`li7&B@BJ4m7v@;sAgNx+4dH_N39E2K z59v47uI9Ydl?=Pe6`waw+wHQwXZO~UtPCK97;bM!r}Ev`Ek=qJch%PHUQvFk58Q&k zpt~{s38DLb5j=ixBL0Q){dliwTfTOc@=>r>_yd((v!lwHQPe%=lJ*e?`TCD%2m0mS zldmkF28H*)4T{4q!zeKAW;OyW+t(xz)Q0Z|6AJI<DT(Mbe6&^Ino@V=iFpS$DQ!Lg zS?DYGdlpB>4Y#{D3)O}2wp=skS`EAZ%zCFmWaROgb0HPbGnuVqy9BX6NLE~BgWKwE zOg5emd!00Yz|a=kAKlh)|55TXOU6cSVliMGBs0srh43OF_JGr@ZN70tUmm9Ct9>*Q z&i9Y2fNVS@-WDy9Uiy507Je%DM@u=0W4ckpcSk(}>#t{G>cM@Vh#S6Y4y_wQEY5c= zPAjQ?W<Jf|!RtscWTzsV%?qtI^OQIs_4L<zWTeV(9612GQG59z<0fw(k>o%b32(#5 z(q2}m>!r|`SUJx}@{`TzftwQYV;h)`qFfV~xXdDxg%I8)e*ubb-9P-XN<JAB^M&P0 z06hLe=Y$Cbh%e88WxU0rAOg>Y94zj-lb_Jfb5OVUylFCc?Ow*5FCR*!8{RVN9%lTu zK;!py5K&gFI|V<F-yyi8TdOk9fWvCS<}K|CE{x?SI=Pemc`-i!LYJ@f19<(TGW%#L z^Kx;W8>@$kxeZW40@a_NB>Mi$nDsJ+2ss%}ch@TZ`lTng@YA_?5Wi2>&tCyijhCfm z5Vb*$m)?#r26a}Ur`|v|9G6Y(HOn(`)A4r}%T2MM*Zp6hpTqFUs&iWm8IO2)sDZHP z&b~0Qe>ZzVMade9!V~!Zv-rDpH<*OUddVtLXcqD8Zg2DvAh}fQksAam(9sgJWAB~) zfaYhcAg#U70JSxD=iJ^-U&99KuUa2C*T$cr`9S=(dWB08u?HOt*Md!2POJdm;yV}u zfd0MR#6rQHNBqw2K^{izw_Y@U#2BCQM0Wt<RGHkj*8Git;Ue*P+pdsxKC!>@gsTon z4ErKdJ0wl|wD7yk(37}`HDA}K#(n@JPt)QqBdf9IBIiH*H;CIUEDkUFEc18z+9PC3 zskyJ5V~6wpz#R4UI>eoJB4)N|C4^EgUknVjY8NGUVMNsB!WlCfeCP^F?43>__}hPl zB7=K9zl}?ip2?rsj%-lqGY!b*Kfa2eEm&dNm=Cs6Jbm|=uJOz$1K6_c<v>9XX!lV! zOD?1E2t;|>R?oe+SNC`r<m(+wJkK^4k7I#|Bg4!!bHbcdkCXOWVI4hq9sh-OE8L;t zmfnHUMG^%zA1|(O3!=f2hnTF@a){c_bIg`VrhqB+>QQ^qFeYYrBOk6EZo-&5-KluT zk(_{j2ci)Z=unDacNG3|7wqxhcg64V;E?AcAp+yeG6MZ&l_@*Fp=O)>*;y8KzC~0J z9)Aoi8n{HaYX$#j%t2kg0V9p^M&`gvdc78HgvGRNl0n;U_$ha<*3%)Bz*M?@h2^qo zcA1i+@m)^j(*QfL2*s$KnXWMu7p1@kPudPrF~qrbb_Wp&S>a*Dp9YzjNchd@KO)=b z`3@v2Ef5d_OVIyAWJ~k^64^S~IQ~~=>;J!Gwln^AnH!@`yU*|RJV}CL$OEh6p7jF* zDlz+;JoMDMQ|qY!3JXpm3RZD63{g3})JLbC>T_<GSzzzFn<D{YaDdj&)vg-+yxBl^ zzIg7P9{&w%&TVtQ>^l60y(6=RExW${?sZE59Dkm-R)(x@TkI2t`rXcj=~Lru1we5~ zS?8d0<Fn0U>*^_Fw8r}{FEhRq;8kF5Wl1#Oe2PsTf5QS!(B4w_U^#~R)@|#$dXp;+ z<NLb+B1w3iDOJ&s!JlZ@zG54Xc;sEW*O4MQ64=uG)Tz^sbvs_6d&;RDFdf2x=fl16 zT8AyrmwnRC?M7tvuwhce-Fp^wlDo`jN8x6ek(_BS<lEkLy;lw%-L68`=TGG2Ia05F z<C$r{dSU;&$xfrwr?%q4R+$jupJ9dmzU(GGg9x5VRgYo=@^M~i1$W1MXNKMHp@-ue z=5^6{rJ&`3LoP%%7w;S2$lODH9}+O$mEF_vlq2LcHT=2#Zj%9O&?w@!UI-WOx9&yL zb|Hn2Z=-PUecVI^BJEMIQ|svDW!5%JmHga|%U$5x{sR8`(Y6QKo#($@>)rgj`_XD< zJai=IWU6+L(;J^S#}FtJ^Xl1Tk3zEldp(p$EDQ0J)UE-r{EIq!2N&^k#W<~bzJnc+ zgKk)K(DT9`@PiqjzLyDbV<IGRQCo$M1{L~%G;Ql}Vx}Ld?qCCq)FMAP&^jy@7q@I_ zoV{{I%DVUo&PfB6s#$NWcT~K1xo^L`#O7g4*0fMJX8g4Aie`PwEc|&(l><rqQM4*# zxHjrZ#BsiG;%#;Uxh=rVUFZ71GN+dtsfopvF~W8sJ{r<c@!BjYfzRb*)F5Pb9#dh{ z`zs>8L8}1&hdL7mGxUr02JSx36E|%J(C7>Paj6T-A%6pXTC@oXe=g+^`L=JYQ(W(l zE@$&4{mTySZG|^1{3{Ar2KivizIXDb@Vq+y`0^Q}qNY=Y?Tn$u$$lrjl%i|_8!M&@ zt1@AsizD9F=xU$M^>1*4hACp&4J-~vO&zN<b?4T7QvfX%3k+*ShYt9`N|j&`*U=FI zPpAFmu4~g4)y{M<Z5P5>5R6jPI+X4`IuOFy4$N#2`;}njbeZoYXp_<?qmE7g1bwUh zw1wf=8!mR|$`nfZy5a)NTyDx((z5W!1IJDV=`16~pvu9!-(vNg0Y=}_$!SKFywy5F z{)P8|1}Cb2R%A;aqp(zRrX?}JyGcyy8nob-ltmk;XKJ1B{clun`wH(sgHmJ_l|E%a zJO)Id--{3=7pHR!o#T^F#+-T}+OPUCv366Wl%GAXW?Zx@**}ums9!rbRdN|*j&Y6b zvMS;TLkzLMY*Bljco7Oc`^O_<V55R58H_zqy(^&=g7DPG)2gn#S)XL%!fE(xBe>TZ zP1iFsyAe0>{(R~u7a!_i5Fa&O@lh&R3V|}cHxO@sKx$+W1CTdrH(A!F+1{6&-QIGa zhGr-IA+P+Vzn-37nB+xXzHYH%jMVLfKOYnS#(J)rMTR-0;93)Q)!mF-?4wVclQTBE zzWOcFwAW}hZF3lYJ}vkCA-bq3Z-00l2>LD6N+lCAt>)pHrYbt=$qIzqv7g$2NvoNX zfAV=K-XNq1Krmz0X8DPWriOB$_D!SymEzKGzT-P2iuUpErI#Y|9~F@apF9Xx^<@mH zX4Fd9Pf(n|8Ep(E8kmK|<YV&Z_-KgjY-%!<Yx>0}uVNkfmFyiBZEGdr!QTm-#53qv zb-)I@24Vc5ulF4`Ez(#@093TXLM5qBF2%m}E(E8PRr708YzYRhx-8&8e90jYpQD~n zd;ir=nWI&~|CfbIIutr@ElrH`B-LzM6AH?99RDxTJ5yM`e^>QrUABWM8!X+W=qJ)= z#$%~@?aWMG6$GYj(j{ddT;ZrPOg=lf7@JKgLR*pmh9^^C?^`jt7ZJQ5@{+J9SRvhr zgK6>m=j0sD#k-ArOf_}f0E`Q8oK1-?Y1liOc27>qQkBFaxr`SY<qZ3{JFIgZ%}r#v z_K5n3m^ffxT|>y<32JelRV8D?4>C3v&PM^%ws1hB@uMBUu)$Kw#xDvF##Ci9>6wcQ zL_^*CNh9QU<I$8?A)~>P-#lF*vMr4W5>MFdovjN6;aUPgDypO!VsD_t4cNFQX?@Z2 zh4uc9oNMn-Cv)5mqA|#y1n<HVFK�Gavex>?YS(V>fROaP{U59RZb6y-y?&4H^ly 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®wjUvWLt)h;^)nXFr*(dr;;gH%UF@fW(VhCs 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%0Aa~( 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 zπ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%0DR-a_h-f+|tRRo3hpt7? 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≷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�iZqn&q}kW7H)NoC5#@051mQgo^+rC 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�&bxLCual$f*=E8)7nWg4y$E@~*pX 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%0DIT%wIQA^r8!!{h-`;7*j&& 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%0A5Mi*BO<txyS?)nFtuw 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