Wiki2GoEditor 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/Wiki2Go_install_editor.rb +13 -0
- data/fckeditor/editor/_source/classes/fckcontextmenu.js +134 -0
- data/fckeditor/editor/_source/classes/fckdocumentfragment_gecko.js +46 -0
- data/fckeditor/editor/_source/classes/fckdocumentfragment_ie.js +58 -0
- data/fckeditor/editor/_source/classes/fckdomrange.js +452 -0
- data/fckeditor/editor/_source/classes/fckdomrange_gecko.js +71 -0
- data/fckeditor/editor/_source/classes/fckdomrange_ie.js +149 -0
- data/fckeditor/editor/_source/classes/fckeditingarea.js +253 -0
- data/fckeditor/editor/_source/classes/fckelementpath.js +66 -0
- data/fckeditor/editor/_source/classes/fckenterkey.js +556 -0
- data/fckeditor/editor/_source/classes/fckevents.js +53 -0
- data/fckeditor/editor/_source/classes/fckicon.js +98 -0
- data/fckeditor/editor/_source/classes/fckiecleanup.js +68 -0
- data/fckeditor/editor/_source/classes/fckimagepreloader.js +68 -0
- data/fckeditor/editor/_source/classes/fckkeystrokehandler.js +136 -0
- data/fckeditor/editor/_source/classes/fckmenublock.js +143 -0
- data/fckeditor/editor/_source/classes/fckmenublockpanel.js +54 -0
- data/fckeditor/editor/_source/classes/fckmenuitem.js +160 -0
- data/fckeditor/editor/_source/classes/fckpanel.js +303 -0
- data/fckeditor/editor/_source/classes/fckplugin.js +56 -0
- data/fckeditor/editor/_source/classes/fckspecialcombo.js +363 -0
- data/fckeditor/editor/_source/classes/fckstyledef.js +59 -0
- data/fckeditor/editor/_source/classes/fckstyledef_gecko.js +119 -0
- data/fckeditor/editor/_source/classes/fckstyledef_ie.js +142 -0
- data/fckeditor/editor/_source/classes/fckstylesloader.js +88 -0
- data/fckeditor/editor/_source/classes/fcktoolbar.js +120 -0
- data/fckeditor/editor/_source/classes/fcktoolbarbreak_gecko.js +36 -0
- data/fckeditor/editor/_source/classes/fcktoolbarbreak_ie.js +38 -0
- data/fckeditor/editor/_source/classes/fcktoolbarbutton.js +74 -0
- data/fckeditor/editor/_source/classes/fcktoolbarbuttonui.js +222 -0
- data/fckeditor/editor/_source/classes/fcktoolbarfontformatcombo.js +114 -0
- data/fckeditor/editor/_source/classes/fcktoolbarfontscombo.js +47 -0
- data/fckeditor/editor/_source/classes/fcktoolbarfontsizecombo.js +52 -0
- data/fckeditor/editor/_source/classes/fcktoolbarpanelbutton.js +91 -0
- data/fckeditor/editor/_source/classes/fcktoolbarspecialcombo.js +134 -0
- data/fckeditor/editor/_source/classes/fcktoolbarstylecombo.js +111 -0
- data/fckeditor/editor/_source/classes/fckw3crange.js +448 -0
- data/fckeditor/editor/_source/classes/fckxml_gecko.js +87 -0
- data/fckeditor/editor/_source/classes/fckxml_ie.js +90 -0
- data/fckeditor/editor/_source/commandclasses/fck_othercommands.js +380 -0
- data/fckeditor/editor/_source/commandclasses/fckfitwindow.js +169 -0
- data/fckeditor/editor/_source/commandclasses/fcknamedcommand.js +37 -0
- data/fckeditor/editor/_source/commandclasses/fckpasteplaintextcommand.js +38 -0
- data/fckeditor/editor/_source/commandclasses/fckpastewordcommand.js +40 -0
- data/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_gecko.js +39 -0
- data/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_ie.js +67 -0
- data/fckeditor/editor/_source/commandclasses/fckstylecommand.js +99 -0
- data/fckeditor/editor/_source/commandclasses/fcktablecommand.js +71 -0
- data/fckeditor/editor/_source/commandclasses/fcktextcolorcommand.js +175 -0
- data/fckeditor/editor/_source/fckconstants.js +52 -0
- data/fckeditor/editor/_source/fckeditorapi.js +161 -0
- data/fckeditor/editor/_source/fckjscoreextensions.js +152 -0
- data/fckeditor/editor/_source/fckscriptloader.js +108 -0
- data/fckeditor/editor/_source/internals/fck.js +859 -0
- data/fckeditor/editor/_source/internals/fck_contextmenu.js +307 -0
- data/fckeditor/editor/_source/internals/fck_gecko.js +254 -0
- data/fckeditor/editor/_source/internals/fck_ie.js +383 -0
- data/fckeditor/editor/_source/internals/fckbrowserinfo.js +48 -0
- data/fckeditor/editor/_source/internals/fckcodeformatter.js +100 -0
- data/fckeditor/editor/_source/internals/fckcommands.js +132 -0
- data/fckeditor/editor/_source/internals/fckconfig.js +199 -0
- data/fckeditor/editor/_source/internals/fckdebug.js +56 -0
- data/fckeditor/editor/_source/internals/fckdialog.js +38 -0
- data/fckeditor/editor/_source/internals/fckdialog_gecko.js +103 -0
- data/fckeditor/editor/_source/internals/fckdialog_ie.js +48 -0
- data/fckeditor/editor/_source/internals/fckdocumentprocessor.js +243 -0
- data/fckeditor/editor/_source/internals/fckdomtools.js +294 -0
- data/fckeditor/editor/_source/internals/fcklanguagemanager.js +161 -0
- data/fckeditor/editor/_source/internals/fcklisthandler.js +152 -0
- data/fckeditor/editor/_source/internals/fcklistslib.js +60 -0
- data/fckeditor/editor/_source/internals/fckplugins.js +46 -0
- data/fckeditor/editor/_source/internals/fckregexlib.js +95 -0
- data/fckeditor/editor/_source/internals/fckselection.js +24 -0
- data/fckeditor/editor/_source/internals/fckselection_gecko.js +151 -0
- data/fckeditor/editor/_source/internals/fckselection_ie.js +158 -0
- data/fckeditor/editor/_source/internals/fcktablehandler.js +385 -0
- data/fckeditor/editor/_source/internals/fcktablehandler_gecko.js +57 -0
- data/fckeditor/editor/_source/internals/fcktablehandler_ie.js +58 -0
- data/fckeditor/editor/_source/internals/fcktoolbaritems.js +121 -0
- data/fckeditor/editor/_source/internals/fcktoolbarset.js +357 -0
- data/fckeditor/editor/_source/internals/fcktools.js +225 -0
- data/fckeditor/editor/_source/internals/fcktools_gecko.js +235 -0
- data/fckeditor/editor/_source/internals/fcktools_ie.js +214 -0
- data/fckeditor/editor/_source/internals/fckundo_gecko.js +27 -0
- data/fckeditor/editor/_source/internals/fckundo_ie.js +123 -0
- data/fckeditor/editor/_source/internals/fckurlparams.js +39 -0
- data/fckeditor/editor/_source/internals/fckxhtml.js +466 -0
- data/fckeditor/editor/_source/internals/fckxhtml_gecko.js +66 -0
- data/fckeditor/editor/_source/internals/fckxhtml_ie.js +194 -0
- data/fckeditor/editor/_source/internals/fckxhtmlentities.js +345 -0
- data/fckeditor/editor/css/behaviors/disablehandles.htc +15 -0
- data/fckeditor/editor/css/behaviors/showtableborders.htc +36 -0
- data/fckeditor/editor/css/fck_editorarea.css +91 -0
- data/fckeditor/editor/css/fck_internal.css +111 -0
- data/fckeditor/editor/css/fck_showtableborders_gecko.css +42 -0
- data/fckeditor/editor/css/images/fck_anchor.gif +0 -0
- data/fckeditor/editor/css/images/fck_flashlogo.gif +0 -0
- data/fckeditor/editor/css/images/fck_hiddenfield.gif +0 -0
- data/fckeditor/editor/css/images/fck_pagebreak.gif +0 -0
- data/fckeditor/editor/dialog/common/fck_dialog_common.css +83 -0
- data/fckeditor/editor/dialog/common/fck_dialog_common.js +154 -0
- data/fckeditor/editor/dialog/common/fcknumericfield.htc +24 -0
- data/fckeditor/editor/dialog/common/images/locked.gif +0 -0
- data/fckeditor/editor/dialog/common/images/reset.gif +0 -0
- data/fckeditor/editor/dialog/common/images/unlocked.gif +0 -0
- data/fckeditor/editor/dialog/common/moz-bindings.xml +30 -0
- data/fckeditor/editor/dialog/fck_about.html +155 -0
- data/fckeditor/editor/dialog/fck_about/logo_fckeditor.gif +0 -0
- data/fckeditor/editor/dialog/fck_about/logo_fredck.gif +0 -0
- data/fckeditor/editor/dialog/fck_anchor.html +227 -0
- data/fckeditor/editor/dialog/fck_button.html +107 -0
- data/fckeditor/editor/dialog/fck_checkbox.html +107 -0
- data/fckeditor/editor/dialog/fck_colorselector.html +171 -0
- data/fckeditor/editor/dialog/fck_docprops.html +600 -0
- data/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html +113 -0
- data/fckeditor/editor/dialog/fck_find.html +173 -0
- data/fckeditor/editor/dialog/fck_flash.html +146 -0
- data/fckeditor/editor/dialog/fck_flash/fck_flash.js +288 -0
- data/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html +46 -0
- data/fckeditor/editor/dialog/fck_form.html +105 -0
- data/fckeditor/editor/dialog/fck_hiddenfield.html +116 -0
- data/fckeditor/editor/dialog/fck_image.html +252 -0
- data/fckeditor/editor/dialog/fck_image/fck_image.js +486 -0
- data/fckeditor/editor/dialog/fck_image/fck_image_preview.html +66 -0
- data/fckeditor/editor/dialog/fck_link.html +293 -0
- data/fckeditor/editor/dialog/fck_link/fck_link.js +664 -0
- data/fckeditor/editor/dialog/fck_listprop.html +116 -0
- data/fckeditor/editor/dialog/fck_paste.html +285 -0
- data/fckeditor/editor/dialog/fck_radiobutton.html +107 -0
- data/fckeditor/editor/dialog/fck_replace.html +156 -0
- data/fckeditor/editor/dialog/fck_select.html +176 -0
- data/fckeditor/editor/dialog/fck_select/fck_select.js +169 -0
- data/fckeditor/editor/dialog/fck_smiley.html +105 -0
- data/fckeditor/editor/dialog/fck_source.html +65 -0
- data/fckeditor/editor/dialog/fck_specialchar.html +113 -0
- data/fckeditor/editor/dialog/fck_spellerpages.html +64 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/blank.html +0 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js +87 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html +153 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm +174 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php +196 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl +180 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js +462 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html +71 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css +49 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js +272 -0
- data/fckeditor/editor/dialog/fck_table.html +286 -0
- data/fckeditor/editor/dialog/fck_tablecell.html +255 -0
- data/fckeditor/editor/dialog/fck_template.html +242 -0
- data/fckeditor/editor/dialog/fck_template/images/template1.gif +0 -0
- data/fckeditor/editor/dialog/fck_template/images/template2.gif +0 -0
- data/fckeditor/editor/dialog/fck_template/images/template3.gif +0 -0
- data/fckeditor/editor/dialog/fck_textarea.html +94 -0
- data/fckeditor/editor/dialog/fck_textfield.html +139 -0
- data/fckeditor/editor/fckdebug.html +153 -0
- data/fckeditor/editor/fckdialog.html +324 -0
- data/fckeditor/editor/fckeditor.html +227 -0
- data/fckeditor/editor/fckeditor.original.html +319 -0
- data/fckeditor/editor/filemanager/browser/default/browser.css +88 -0
- data/fckeditor/editor/filemanager/browser/default/browser.html +154 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/basexml.asp +62 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/class_upload.asp +234 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/commands.asp +183 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/config.asp +49 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/connector.asp +124 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/io.asp +89 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/util.asp +55 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx +30 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/cfm/config.cfm +99 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/cfm/connector.cfm +363 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/lasso/config.lasso +65 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/lasso/connector.lasso +249 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/perl/basexml.pl +63 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/perl/commands.pl +158 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/perl/connector.cgi +137 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/perl/io.pl +131 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/perl/upload_fck.pl +667 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/perl/util.pl +60 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/php/basexml.php +75 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/php/commands.php +222 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/php/config.php +56 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/php/connector.php +113 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/php/io.php +101 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/php/util.php +41 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/py/connector.py +785 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/test.html +180 -0
- data/fckeditor/editor/filemanager/browser/default/frmactualfolder.html +67 -0
- data/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html +113 -0
- data/fckeditor/editor/filemanager/browser/default/frmfolders.html +196 -0
- data/fckeditor/editor/filemanager/browser/default/frmresourceslist.html +160 -0
- data/fckeditor/editor/filemanager/browser/default/frmresourcetype.html +65 -0
- data/fckeditor/editor/filemanager/browser/default/frmupload.html +113 -0
- data/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/Folder.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/Folder32.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/ai.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/avi.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/bmp.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/default.icon.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/gif.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/html.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/jpg.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/mdb.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/mp3.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/rdp.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/txt.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/vsd.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/ai.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/bmp.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/gif.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/html.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/js.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/mdb.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/pdf.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/png.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/swf.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/vsd.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/spacer.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/js/common.js +55 -0
- data/fckeditor/editor/filemanager/browser/default/js/fckxml.js +130 -0
- data/fckeditor/editor/filemanager/upload/asp/class_upload.asp +234 -0
- data/fckeditor/editor/filemanager/upload/asp/config.asp +52 -0
- data/fckeditor/editor/filemanager/upload/asp/io.asp +29 -0
- data/fckeditor/editor/filemanager/upload/asp/upload.asp +121 -0
- data/fckeditor/editor/filemanager/upload/aspx/upload.aspx +30 -0
- data/fckeditor/editor/filemanager/upload/cfm/config.cfm +98 -0
- data/fckeditor/editor/filemanager/upload/cfm/upload.cfm +168 -0
- data/fckeditor/editor/filemanager/upload/lasso/config.lasso +65 -0
- data/fckeditor/editor/filemanager/upload/lasso/upload.lasso +157 -0
- data/fckeditor/editor/filemanager/upload/php/config.php +56 -0
- data/fckeditor/editor/filemanager/upload/php/upload.php +124 -0
- data/fckeditor/editor/filemanager/upload/php/util.php +40 -0
- data/fckeditor/editor/filemanager/upload/test.html +133 -0
- data/fckeditor/editor/images/anchor.gif +0 -0
- data/fckeditor/editor/images/arrow_ltr.gif +0 -0
- data/fckeditor/editor/images/arrow_rtl.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/angel_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/angry_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/broken_heart.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/cake.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/confused_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/cry_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/devil_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/embaressed_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/envelope.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/heart.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/kiss.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/lightbulb.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/omg_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/regular_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/sad_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/shades_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/teeth_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/thumbs_down.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/thumbs_up.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/tounge_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/wink_smile.gif +0 -0
- data/fckeditor/editor/images/spacer.gif +0 -0
- data/fckeditor/editor/js/fckeditorcode_gecko.js +98 -0
- data/fckeditor/editor/js/fckeditorcode_ie.js +99 -0
- data/fckeditor/editor/lang/_getfontformat.html +85 -0
- data/fckeditor/editor/lang/_translationstatus.txt +76 -0
- data/fckeditor/editor/lang/af.js +504 -0
- data/fckeditor/editor/lang/ar.js +504 -0
- data/fckeditor/editor/lang/bg.js +504 -0
- data/fckeditor/editor/lang/bn.js +504 -0
- data/fckeditor/editor/lang/bs.js +504 -0
- data/fckeditor/editor/lang/ca.js +504 -0
- data/fckeditor/editor/lang/cs.js +504 -0
- data/fckeditor/editor/lang/da.js +504 -0
- data/fckeditor/editor/lang/de.js +504 -0
- data/fckeditor/editor/lang/el.js +504 -0
- data/fckeditor/editor/lang/en-au.js +504 -0
- data/fckeditor/editor/lang/en-ca.js +504 -0
- data/fckeditor/editor/lang/en-uk.js +504 -0
- data/fckeditor/editor/lang/en.js +504 -0
- data/fckeditor/editor/lang/eo.js +504 -0
- data/fckeditor/editor/lang/es.js +504 -0
- data/fckeditor/editor/lang/et.js +504 -0
- data/fckeditor/editor/lang/eu.js +505 -0
- data/fckeditor/editor/lang/fa.js +504 -0
- data/fckeditor/editor/lang/fi.js +504 -0
- data/fckeditor/editor/lang/fo.js +504 -0
- data/fckeditor/editor/lang/fr.js +504 -0
- data/fckeditor/editor/lang/gl.js +504 -0
- data/fckeditor/editor/lang/he.js +504 -0
- data/fckeditor/editor/lang/hi.js +504 -0
- data/fckeditor/editor/lang/hr.js +504 -0
- data/fckeditor/editor/lang/hu.js +504 -0
- data/fckeditor/editor/lang/it.js +504 -0
- data/fckeditor/editor/lang/ja.js +504 -0
- data/fckeditor/editor/lang/km.js +504 -0
- data/fckeditor/editor/lang/ko.js +504 -0
- data/fckeditor/editor/lang/lt.js +504 -0
- data/fckeditor/editor/lang/lv.js +504 -0
- data/fckeditor/editor/lang/mn.js +504 -0
- data/fckeditor/editor/lang/ms.js +504 -0
- data/fckeditor/editor/lang/nb.js +504 -0
- data/fckeditor/editor/lang/nl.js +504 -0
- data/fckeditor/editor/lang/no.js +504 -0
- data/fckeditor/editor/lang/pl.js +504 -0
- data/fckeditor/editor/lang/pt-br.js +504 -0
- data/fckeditor/editor/lang/pt.js +504 -0
- data/fckeditor/editor/lang/ro.js +504 -0
- data/fckeditor/editor/lang/ru.js +504 -0
- data/fckeditor/editor/lang/sk.js +504 -0
- data/fckeditor/editor/lang/sl.js +504 -0
- data/fckeditor/editor/lang/sr-latn.js +504 -0
- data/fckeditor/editor/lang/sr.js +504 -0
- data/fckeditor/editor/lang/sv.js +504 -0
- data/fckeditor/editor/lang/th.js +504 -0
- data/fckeditor/editor/lang/tr.js +504 -0
- data/fckeditor/editor/lang/uk.js +504 -0
- data/fckeditor/editor/lang/vi.js +504 -0
- data/fckeditor/editor/lang/zh-cn.js +504 -0
- data/fckeditor/editor/lang/zh.js +504 -0
- data/fckeditor/editor/plugins/autogrow/fckplugin.js +92 -0
- data/fckeditor/editor/plugins/placeholder/fck_placeholder.html +100 -0
- data/fckeditor/editor/plugins/placeholder/fckplugin.js +187 -0
- data/fckeditor/editor/plugins/placeholder/lang/de.js +27 -0
- data/fckeditor/editor/plugins/placeholder/lang/en.js +27 -0
- data/fckeditor/editor/plugins/placeholder/lang/fr.js +27 -0
- data/fckeditor/editor/plugins/placeholder/lang/it.js +27 -0
- data/fckeditor/editor/plugins/placeholder/lang/pl.js +27 -0
- data/fckeditor/editor/plugins/placeholder/placeholder.gif +0 -0
- data/fckeditor/editor/plugins/simplecommands/fckplugin.js +29 -0
- data/fckeditor/editor/plugins/tablecommands/fckplugin.js +32 -0
- data/fckeditor/editor/skins/_fckviewstrips.html +121 -0
- data/fckeditor/editor/skins/default/fck_dialog.css +137 -0
- data/fckeditor/editor/skins/default/fck_editor.css +464 -0
- data/fckeditor/editor/skins/default/fck_strip.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.arrowright.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.buttonarrow.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.collapse.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.end.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.expand.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.separator.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.start.gif +0 -0
- data/fckeditor/editor/skins/office2003/fck_dialog.css +138 -0
- data/fckeditor/editor/skins/office2003/fck_editor.css +476 -0
- data/fckeditor/editor/skins/office2003/fck_strip.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.arrowright.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.bg.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.buttonarrow.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.collapse.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.end.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.expand.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.separator.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.start.gif +0 -0
- data/fckeditor/editor/skins/silver/fck_dialog.css +141 -0
- data/fckeditor/editor/skins/silver/fck_editor.css +473 -0
- data/fckeditor/editor/skins/silver/fck_strip.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.arrowright.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.buttonarrow.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.collapse.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.end.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.expand.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.separator.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.start.gif +0 -0
- data/fckeditor/fckconfig.js +224 -0
- data/fckeditor/fckeditor.js +214 -0
- data/fckeditor/fckstyles.xml +53 -0
- data/fckeditor/fcktemplates.xml +103 -0
- data/lib/Wiki2GoEditor/Install/editor.rb +39 -0
- data/test/test_install.rb +40 -0
- metadata +517 -0
@@ -0,0 +1,66 @@
|
|
1
|
+
/*
|
2
|
+
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
|
3
|
+
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
|
4
|
+
*
|
5
|
+
* == BEGIN LICENSE ==
|
6
|
+
*
|
7
|
+
* Licensed under the terms of any of the following licenses at your
|
8
|
+
* choice:
|
9
|
+
*
|
10
|
+
* - GNU General Public License Version 2 or later (the "GPL")
|
11
|
+
* http://www.gnu.org/licenses/gpl.html
|
12
|
+
*
|
13
|
+
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
|
14
|
+
* http://www.gnu.org/licenses/lgpl.html
|
15
|
+
*
|
16
|
+
* - Mozilla Public License Version 1.1 or later (the "MPL")
|
17
|
+
* http://www.mozilla.org/MPL/MPL-1.1.html
|
18
|
+
*
|
19
|
+
* == END LICENSE ==
|
20
|
+
*
|
21
|
+
* Manages the DOM anscensors element list of a specific DOM node
|
22
|
+
* (limited to body, inclusive).
|
23
|
+
*/
|
24
|
+
|
25
|
+
// TODO: Implement IE cleanup.
|
26
|
+
|
27
|
+
var FCKElementPath = function( lastNode )
|
28
|
+
{
|
29
|
+
var eBlock = null ;
|
30
|
+
var eBlockLimit = null ;
|
31
|
+
|
32
|
+
var aElements = new Array() ;
|
33
|
+
|
34
|
+
var e = lastNode ;
|
35
|
+
while ( e )
|
36
|
+
{
|
37
|
+
if ( e.nodeType == 1 )
|
38
|
+
{
|
39
|
+
if ( !this.LastElement )
|
40
|
+
this.LastElement = e ;
|
41
|
+
|
42
|
+
var sElementName = e.nodeName.toLowerCase() ;
|
43
|
+
|
44
|
+
if ( !eBlockLimit )
|
45
|
+
{
|
46
|
+
if ( !eBlock && FCKListsLib.PathBlockElements[ sElementName ] != null )
|
47
|
+
eBlock = e ;
|
48
|
+
|
49
|
+
if ( FCKListsLib.PathBlockLimitElements[ sElementName ] != null )
|
50
|
+
eBlockLimit = e ;
|
51
|
+
}
|
52
|
+
|
53
|
+
aElements.push( e ) ;
|
54
|
+
|
55
|
+
if ( sElementName == 'body' )
|
56
|
+
break ;
|
57
|
+
}
|
58
|
+
e = e.parentNode ;
|
59
|
+
}
|
60
|
+
|
61
|
+
this.Block = eBlock ;
|
62
|
+
this.BlockLimit = eBlockLimit ;
|
63
|
+
this.Elements = aElements ;
|
64
|
+
}
|
65
|
+
|
66
|
+
|
@@ -0,0 +1,556 @@
|
|
1
|
+
/*
|
2
|
+
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
|
3
|
+
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
|
4
|
+
*
|
5
|
+
* == BEGIN LICENSE ==
|
6
|
+
*
|
7
|
+
* Licensed under the terms of any of the following licenses at your
|
8
|
+
* choice:
|
9
|
+
*
|
10
|
+
* - GNU General Public License Version 2 or later (the "GPL")
|
11
|
+
* http://www.gnu.org/licenses/gpl.html
|
12
|
+
*
|
13
|
+
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
|
14
|
+
* http://www.gnu.org/licenses/lgpl.html
|
15
|
+
*
|
16
|
+
* - Mozilla Public License Version 1.1 or later (the "MPL")
|
17
|
+
* http://www.mozilla.org/MPL/MPL-1.1.html
|
18
|
+
*
|
19
|
+
* == END LICENSE ==
|
20
|
+
*
|
21
|
+
* Controls the [Enter] keystroke behavior in a document.
|
22
|
+
*/
|
23
|
+
|
24
|
+
/*
|
25
|
+
* Constructor.
|
26
|
+
* @targetDocument : the target document.
|
27
|
+
* @enterMode : the behavior for the <Enter> keystroke.
|
28
|
+
* May be "p", "div", "br". Default is "p".
|
29
|
+
* @shiftEnterMode : the behavior for the <Shift>+<Enter> keystroke.
|
30
|
+
* May be "p", "div", "br". Defaults to "br".
|
31
|
+
*/
|
32
|
+
var FCKEnterKey = function( targetWindow, enterMode, shiftEnterMode )
|
33
|
+
{
|
34
|
+
this.Window = targetWindow ;
|
35
|
+
this.EnterMode = enterMode || 'p' ;
|
36
|
+
this.ShiftEnterMode = shiftEnterMode || 'br' ;
|
37
|
+
|
38
|
+
// Setup the Keystroke Handler.
|
39
|
+
var oKeystrokeHandler = new FCKKeystrokeHandler( false ) ;
|
40
|
+
oKeystrokeHandler._EnterKey = this ;
|
41
|
+
oKeystrokeHandler.OnKeystroke = FCKEnterKey_OnKeystroke ;
|
42
|
+
|
43
|
+
oKeystrokeHandler.SetKeystrokes( [
|
44
|
+
[ 13 , 'Enter' ],
|
45
|
+
[ SHIFT + 13, 'ShiftEnter' ],
|
46
|
+
[ 8 , 'Backspace' ],
|
47
|
+
[ 46 , 'Delete' ]
|
48
|
+
] ) ;
|
49
|
+
|
50
|
+
oKeystrokeHandler.AttachToElement( targetWindow.document ) ;
|
51
|
+
}
|
52
|
+
|
53
|
+
|
54
|
+
function FCKEnterKey_OnKeystroke( keyCombination, keystrokeValue )
|
55
|
+
{
|
56
|
+
var oEnterKey = this._EnterKey ;
|
57
|
+
|
58
|
+
try
|
59
|
+
{
|
60
|
+
switch ( keystrokeValue )
|
61
|
+
{
|
62
|
+
case 'Enter' :
|
63
|
+
return oEnterKey.DoEnter() ;
|
64
|
+
break ;
|
65
|
+
|
66
|
+
case 'ShiftEnter' :
|
67
|
+
return oEnterKey.DoShiftEnter() ;
|
68
|
+
break ;
|
69
|
+
|
70
|
+
case 'Backspace' :
|
71
|
+
return oEnterKey.DoBackspace() ;
|
72
|
+
break ;
|
73
|
+
|
74
|
+
case 'Delete' :
|
75
|
+
return oEnterKey.DoDelete() ;
|
76
|
+
}
|
77
|
+
}
|
78
|
+
catch (e)
|
79
|
+
{
|
80
|
+
// If for any reason we are not able to handle it, go
|
81
|
+
// ahead with the browser default behavior.
|
82
|
+
}
|
83
|
+
|
84
|
+
return false ;
|
85
|
+
}
|
86
|
+
|
87
|
+
/*
|
88
|
+
* Executes the <Enter> key behavior.
|
89
|
+
*/
|
90
|
+
FCKEnterKey.prototype.DoEnter = function( mode, hasShift )
|
91
|
+
{
|
92
|
+
this._HasShift = ( hasShift === true ) ;
|
93
|
+
|
94
|
+
var sMode = mode || this.EnterMode ;
|
95
|
+
|
96
|
+
if ( sMode == 'br' )
|
97
|
+
return this._ExecuteEnterBr() ;
|
98
|
+
else
|
99
|
+
return this._ExecuteEnterBlock( sMode ) ;
|
100
|
+
}
|
101
|
+
|
102
|
+
/*
|
103
|
+
* Executes the <Shift>+<Enter> key behavior.
|
104
|
+
*/
|
105
|
+
FCKEnterKey.prototype.DoShiftEnter = function()
|
106
|
+
{
|
107
|
+
return this.DoEnter( this.ShiftEnterMode, true ) ;
|
108
|
+
}
|
109
|
+
|
110
|
+
/*
|
111
|
+
* Executes the <Backspace> key behavior.
|
112
|
+
*/
|
113
|
+
FCKEnterKey.prototype.DoBackspace = function()
|
114
|
+
{
|
115
|
+
var bCustom = false ;
|
116
|
+
|
117
|
+
// Get the current selection.
|
118
|
+
var oRange = new FCKDomRange( this.Window ) ;
|
119
|
+
oRange.MoveToSelection() ;
|
120
|
+
|
121
|
+
if ( !oRange.CheckIsCollapsed() )
|
122
|
+
return false ;
|
123
|
+
|
124
|
+
var oStartBlock = oRange.StartBlock ;
|
125
|
+
var oEndBlock = oRange.EndBlock ;
|
126
|
+
|
127
|
+
// The selection boundaries must be in the same "block limit" element
|
128
|
+
if ( oRange.StartBlockLimit == oRange.EndBlockLimit && oStartBlock && oEndBlock )
|
129
|
+
{
|
130
|
+
if ( !oRange.CheckIsCollapsed() )
|
131
|
+
{
|
132
|
+
var bEndOfBlock = oRange.CheckEndOfBlock() ;
|
133
|
+
|
134
|
+
oRange.DeleteContents() ;
|
135
|
+
|
136
|
+
if ( oStartBlock != oEndBlock )
|
137
|
+
{
|
138
|
+
oRange.SetStart(oEndBlock,1) ;
|
139
|
+
oRange.SetEnd(oEndBlock,1) ;
|
140
|
+
|
141
|
+
// if ( bEndOfBlock )
|
142
|
+
// oEndBlock.parentNode.removeChild( oEndBlock ) ;
|
143
|
+
}
|
144
|
+
|
145
|
+
oRange.Select() ;
|
146
|
+
|
147
|
+
bCustom = ( oStartBlock == oEndBlock ) ;
|
148
|
+
}
|
149
|
+
|
150
|
+
if ( oRange.CheckStartOfBlock() )
|
151
|
+
{
|
152
|
+
var oCurrentBlock = oRange.StartBlock ;
|
153
|
+
|
154
|
+
var ePrevious = FCKDomTools.GetPreviousSourceElement( oCurrentBlock, true, [ 'BODY', oRange.StartBlockLimit.nodeName ], ['UL','OL'] ) ;
|
155
|
+
|
156
|
+
bCustom = this._ExecuteBackspace( oRange, ePrevious, oCurrentBlock ) ;
|
157
|
+
}
|
158
|
+
else if ( FCKBrowserInfo.IsGecko )
|
159
|
+
{
|
160
|
+
// Firefox looses the selection when executing CheckStartOfBlock, so we must reselect.
|
161
|
+
oRange.Select() ;
|
162
|
+
}
|
163
|
+
}
|
164
|
+
|
165
|
+
oRange.Release() ;
|
166
|
+
return bCustom ;
|
167
|
+
}
|
168
|
+
|
169
|
+
FCKEnterKey.prototype._ExecuteBackspace = function( range, previous, currentBlock )
|
170
|
+
{
|
171
|
+
var bCustom = false ;
|
172
|
+
|
173
|
+
// We could be in a nested LI.
|
174
|
+
if ( !previous && currentBlock.nodeName.IEquals( 'LI' ) && currentBlock.parentNode.parentNode.nodeName.IEquals( 'LI' ) )
|
175
|
+
{
|
176
|
+
this._OutdentWithSelection( currentBlock, range ) ;
|
177
|
+
return true ;
|
178
|
+
}
|
179
|
+
|
180
|
+
if ( previous && previous.nodeName.IEquals( 'LI' ) )
|
181
|
+
{
|
182
|
+
var oNestedList = FCKDomTools.GetLastChild( previous, ['UL','OL'] ) ;
|
183
|
+
|
184
|
+
while ( oNestedList )
|
185
|
+
{
|
186
|
+
previous = FCKDomTools.GetLastChild( oNestedList, 'LI' ) ;
|
187
|
+
oNestedList = FCKDomTools.GetLastChild( previous, ['UL','OL'] ) ;
|
188
|
+
}
|
189
|
+
}
|
190
|
+
|
191
|
+
if ( previous && currentBlock )
|
192
|
+
{
|
193
|
+
// If we are in a LI, and the previous block is not an LI, we must outdent it.
|
194
|
+
if ( currentBlock.nodeName.IEquals( 'LI' ) && !previous.nodeName.IEquals( 'LI' ) )
|
195
|
+
{
|
196
|
+
this._OutdentWithSelection( currentBlock, range ) ;
|
197
|
+
return true ;
|
198
|
+
}
|
199
|
+
|
200
|
+
// Take a reference to the parent for post processing cleanup.
|
201
|
+
var oCurrentParent = currentBlock.parentNode ;
|
202
|
+
|
203
|
+
var sPreviousName = previous.nodeName.toLowerCase() ;
|
204
|
+
if ( FCKListsLib.EmptyElements[ sPreviousName ] != null || sPreviousName == 'table' )
|
205
|
+
{
|
206
|
+
FCKDomTools.RemoveNode( previous ) ;
|
207
|
+
bCustom = true ;
|
208
|
+
}
|
209
|
+
else
|
210
|
+
{
|
211
|
+
// Remove the current block.
|
212
|
+
FCKDomTools.RemoveNode( currentBlock ) ;
|
213
|
+
|
214
|
+
// Remove any empty tag left by the block removal.
|
215
|
+
while ( oCurrentParent.innerHTML.Trim().length == 0 )
|
216
|
+
{
|
217
|
+
var oParent = oCurrentParent.parentNode ;
|
218
|
+
oParent.removeChild( oCurrentParent ) ;
|
219
|
+
oCurrentParent = oParent ;
|
220
|
+
}
|
221
|
+
|
222
|
+
// Cleanup the previous and the current elements.
|
223
|
+
FCKDomTools.TrimNode( currentBlock ) ;
|
224
|
+
FCKDomTools.TrimNode( previous ) ;
|
225
|
+
|
226
|
+
// Append a space to the previous.
|
227
|
+
// Maybe it is not always desirable...
|
228
|
+
// previous.appendChild( this.Window.document.createTextNode( ' ' ) ) ;
|
229
|
+
|
230
|
+
// Set the range to the end of the previous element and bookmark it.
|
231
|
+
range.SetStart( previous, 2 ) ;
|
232
|
+
range.Collapse( true ) ;
|
233
|
+
var oBookmark = range.CreateBookmark() ;
|
234
|
+
|
235
|
+
// Move the contents of the block to the previous element and delete it.
|
236
|
+
FCKDomTools.MoveChildren( currentBlock, previous ) ;
|
237
|
+
|
238
|
+
// Place the selection at the bookmark.
|
239
|
+
range.MoveToBookmark( oBookmark ) ;
|
240
|
+
range.Select() ;
|
241
|
+
|
242
|
+
bCustom = true ;
|
243
|
+
}
|
244
|
+
}
|
245
|
+
|
246
|
+
return bCustom ;
|
247
|
+
}
|
248
|
+
|
249
|
+
/*
|
250
|
+
* Executes the <Delete> key behavior.
|
251
|
+
*/
|
252
|
+
FCKEnterKey.prototype.DoDelete = function()
|
253
|
+
{
|
254
|
+
// The <Delete> has the same effect as the <Backspace>, so we have the same
|
255
|
+
// results if we just move to the next block and apply the same <Backspace> logic.
|
256
|
+
|
257
|
+
var bCustom = false ;
|
258
|
+
|
259
|
+
// Get the current selection.
|
260
|
+
var oRange = new FCKDomRange( this.Window ) ;
|
261
|
+
oRange.MoveToSelection() ;
|
262
|
+
|
263
|
+
// There is just one special case for collapsed selections at the end of a block.
|
264
|
+
if ( oRange.CheckIsCollapsed() && oRange.CheckEndOfBlock( FCKBrowserInfo.IsGecko ) )
|
265
|
+
{
|
266
|
+
var oCurrentBlock = oRange.StartBlock ;
|
267
|
+
|
268
|
+
var eNext = FCKDomTools.GetNextSourceElement( oCurrentBlock, true, [ oRange.StartBlockLimit.nodeName ], ['UL','OL'] ) ;
|
269
|
+
|
270
|
+
bCustom = this._ExecuteBackspace( oRange, oCurrentBlock, eNext ) ;
|
271
|
+
}
|
272
|
+
|
273
|
+
oRange.Release() ;
|
274
|
+
return bCustom ;
|
275
|
+
}
|
276
|
+
|
277
|
+
FCKEnterKey.prototype._ExecuteEnterBlock = function( blockTag, range )
|
278
|
+
{
|
279
|
+
// Get the current selection.
|
280
|
+
var oRange = range || new FCKDomRange( this.Window ) ;
|
281
|
+
|
282
|
+
// If we don't have a range, move it to the selection.
|
283
|
+
if ( !range )
|
284
|
+
oRange.MoveToSelection() ;
|
285
|
+
|
286
|
+
// The selection boundaries must be in the same "block limit" element.
|
287
|
+
if ( oRange.StartBlockLimit == oRange.EndBlockLimit )
|
288
|
+
{
|
289
|
+
// If the StartBlock or EndBlock are not available (for text without a
|
290
|
+
// block tag), we must fix them, by moving the text to a block.
|
291
|
+
if ( !oRange.StartBlock )
|
292
|
+
this._FixBlock( oRange, true, blockTag ) ;
|
293
|
+
|
294
|
+
if ( !oRange.EndBlock )
|
295
|
+
this._FixBlock( oRange, false, blockTag ) ;
|
296
|
+
|
297
|
+
// Get the current blocks.
|
298
|
+
var eStartBlock = oRange.StartBlock ;
|
299
|
+
var eEndBlock = oRange.EndBlock ;
|
300
|
+
|
301
|
+
// Delete the current selection.
|
302
|
+
if ( !oRange.CheckIsEmpty() )
|
303
|
+
oRange.DeleteContents() ;
|
304
|
+
|
305
|
+
// If the selection boundaries are in the same block element
|
306
|
+
if ( eStartBlock == eEndBlock )
|
307
|
+
{
|
308
|
+
var eNewBlock ;
|
309
|
+
|
310
|
+
var bIsStartOfBlock = oRange.CheckStartOfBlock() ;
|
311
|
+
var bIsEndOfBlock = oRange.CheckEndOfBlock() ;
|
312
|
+
|
313
|
+
if ( bIsStartOfBlock && !bIsEndOfBlock )
|
314
|
+
{
|
315
|
+
eNewBlock = eStartBlock.cloneNode(false) ;
|
316
|
+
|
317
|
+
if ( FCKBrowserInfo.IsGeckoLike )
|
318
|
+
eNewBlock.innerHTML = GECKO_BOGUS ;
|
319
|
+
|
320
|
+
// Place the new block before the current block element.
|
321
|
+
eStartBlock.parentNode.insertBefore( eNewBlock, eStartBlock ) ;
|
322
|
+
|
323
|
+
// This is tricky, but to make the new block visible correctly
|
324
|
+
// we must select it.
|
325
|
+
if ( FCKBrowserInfo.IsIE )
|
326
|
+
{
|
327
|
+
// Move the selection to the new block.
|
328
|
+
oRange.MoveToNodeContents( eNewBlock ) ;
|
329
|
+
|
330
|
+
oRange.Select() ;
|
331
|
+
}
|
332
|
+
|
333
|
+
// Move the selection to the new block.
|
334
|
+
oRange.MoveToElementEditStart( eStartBlock ) ;
|
335
|
+
}
|
336
|
+
else
|
337
|
+
{
|
338
|
+
// Check if the selection is at the end of the block.
|
339
|
+
if ( bIsEndOfBlock )
|
340
|
+
{
|
341
|
+
var sStartBlockTag = eStartBlock.tagName.toUpperCase() ;
|
342
|
+
|
343
|
+
// If the entire block is selected, and we are in a LI, let's decrease its indentation.
|
344
|
+
if ( bIsStartOfBlock && sStartBlockTag == 'LI' )
|
345
|
+
{
|
346
|
+
this._OutdentWithSelection( eStartBlock, oRange ) ;
|
347
|
+
oRange.Release() ;
|
348
|
+
return true ;
|
349
|
+
}
|
350
|
+
else
|
351
|
+
{
|
352
|
+
// If is a header tag, or we are in a Shift+Enter (#77),
|
353
|
+
// create a new block element.
|
354
|
+
if ( (/^H[1-6]$/).test( sStartBlockTag ) || this._HasShift )
|
355
|
+
eNewBlock = this.Window.document.createElement( blockTag ) ;
|
356
|
+
// Otherwise, duplicate the current block.
|
357
|
+
else
|
358
|
+
{
|
359
|
+
eNewBlock = eStartBlock.cloneNode(false) ;
|
360
|
+
this._RecreateEndingTree( eStartBlock, eNewBlock ) ;
|
361
|
+
}
|
362
|
+
|
363
|
+
if ( FCKBrowserInfo.IsGeckoLike )
|
364
|
+
{
|
365
|
+
eNewBlock.innerHTML = GECKO_BOGUS ;
|
366
|
+
|
367
|
+
// If the entire block is selected, let's add a bogus in the start block.
|
368
|
+
if ( bIsStartOfBlock )
|
369
|
+
eStartBlock.innerHTML = GECKO_BOGUS ;
|
370
|
+
}
|
371
|
+
}
|
372
|
+
}
|
373
|
+
else
|
374
|
+
{
|
375
|
+
// Extract the contents of the block from the selection point to the end of its contents.
|
376
|
+
oRange.SetEnd( eStartBlock, 2 ) ;
|
377
|
+
var eDocFrag = oRange.ExtractContents() ;
|
378
|
+
|
379
|
+
// Duplicate the block element after it.
|
380
|
+
eNewBlock = eStartBlock.cloneNode(false) ;
|
381
|
+
|
382
|
+
// It could be that we are in a LI with a child UL/OL. Insert a bogus to give us space to type.
|
383
|
+
FCKDomTools.TrimNode( eDocFrag.RootNode ) ;
|
384
|
+
if ( eDocFrag.RootNode.firstChild.nodeType == 1 && eDocFrag.RootNode.firstChild.tagName.toUpperCase().Equals( 'UL', 'OL' ) )
|
385
|
+
eNewBlock.innerHTML = GECKO_BOGUS ;
|
386
|
+
|
387
|
+
// Place the extracted contents in the duplicated block.
|
388
|
+
eDocFrag.AppendTo( eNewBlock ) ;
|
389
|
+
|
390
|
+
if ( FCKBrowserInfo.IsGecko )
|
391
|
+
{
|
392
|
+
// In Gecko, the last child node must be a bogus <br>.
|
393
|
+
this._AppendBogusBr( eStartBlock ) ;
|
394
|
+
this._AppendBogusBr( eNewBlock ) ;
|
395
|
+
}
|
396
|
+
}
|
397
|
+
|
398
|
+
if ( eNewBlock )
|
399
|
+
{
|
400
|
+
FCKDomTools.InsertAfterNode( eStartBlock, eNewBlock ) ;
|
401
|
+
|
402
|
+
// Move the selection to the new block.
|
403
|
+
oRange.MoveToElementEditStart( eNewBlock ) ;
|
404
|
+
|
405
|
+
if ( FCKBrowserInfo.IsGecko )
|
406
|
+
eNewBlock.scrollIntoView( false ) ;
|
407
|
+
}
|
408
|
+
}
|
409
|
+
}
|
410
|
+
else
|
411
|
+
{
|
412
|
+
// Move the selection to the end block.
|
413
|
+
oRange.MoveToElementEditStart( eEndBlock ) ;
|
414
|
+
}
|
415
|
+
|
416
|
+
oRange.Select() ;
|
417
|
+
}
|
418
|
+
|
419
|
+
// Release the resources used by the range.
|
420
|
+
oRange.Release() ;
|
421
|
+
|
422
|
+
return true ;
|
423
|
+
}
|
424
|
+
|
425
|
+
FCKEnterKey.prototype._ExecuteEnterBr = function( blockTag )
|
426
|
+
{
|
427
|
+
// Get the current selection.
|
428
|
+
var oRange = new FCKDomRange( this.Window ) ;
|
429
|
+
oRange.MoveToSelection() ;
|
430
|
+
|
431
|
+
// The selection boundaries must be in the same "block limit" element.
|
432
|
+
if ( oRange.StartBlockLimit == oRange.EndBlockLimit )
|
433
|
+
{
|
434
|
+
oRange.DeleteContents() ;
|
435
|
+
|
436
|
+
// Get the new selection (it is collapsed at this point).
|
437
|
+
oRange.MoveToSelection() ;
|
438
|
+
|
439
|
+
var bIsStartOfBlock = oRange.CheckStartOfBlock() ;
|
440
|
+
var bIsEndOfBlock = oRange.CheckEndOfBlock() ;
|
441
|
+
|
442
|
+
var sStartBlockTag = oRange.StartBlock ? oRange.StartBlock.tagName.toUpperCase() : '' ;
|
443
|
+
|
444
|
+
var bHasShift = this._HasShift ;
|
445
|
+
|
446
|
+
if ( !bHasShift && sStartBlockTag == 'LI' )
|
447
|
+
return this._ExecuteEnterBlock( null, oRange ) ;
|
448
|
+
|
449
|
+
// If we are at the end of a header block.
|
450
|
+
if ( !bHasShift && bIsEndOfBlock && (/^H[1-6]$/).test( sStartBlockTag ) )
|
451
|
+
{
|
452
|
+
FCKDebug.Output( 'BR - Header' ) ;
|
453
|
+
|
454
|
+
// Insert a BR after the current paragraph.
|
455
|
+
FCKDomTools.InsertAfterNode( oRange.StartBlock, this.Window.document.createElement( 'br' ) ) ;
|
456
|
+
|
457
|
+
// The space is required by Gecko only to make the cursor blink.
|
458
|
+
if ( FCKBrowserInfo.IsGecko )
|
459
|
+
FCKDomTools.InsertAfterNode( oRange.StartBlock, this.Window.document.createTextNode( '' ) ) ;
|
460
|
+
|
461
|
+
// IE and Gecko have different behaviors regarding the position.
|
462
|
+
oRange.SetStart( oRange.StartBlock.nextSibling, FCKBrowserInfo.IsIE ? 3 : 1 ) ;
|
463
|
+
}
|
464
|
+
else
|
465
|
+
{
|
466
|
+
FCKDebug.Output( 'BR - No Header' ) ;
|
467
|
+
|
468
|
+
var eBr = this.Window.document.createElement( 'br' ) ;
|
469
|
+
|
470
|
+
oRange.InsertNode( eBr ) ;
|
471
|
+
|
472
|
+
// The space is required by Gecko only to make the cursor blink.
|
473
|
+
if ( FCKBrowserInfo.IsGecko )
|
474
|
+
FCKDomTools.InsertAfterNode( eBr, this.Window.document.createTextNode( '' ) ) ;
|
475
|
+
|
476
|
+
// If we are at the end of a block, we must be sure the bogus node is available in that block.
|
477
|
+
if ( bIsEndOfBlock && FCKBrowserInfo.IsGecko )
|
478
|
+
this._AppendBogusBr( eBr.parentNode ) ;
|
479
|
+
|
480
|
+
if ( FCKBrowserInfo.IsIE )
|
481
|
+
oRange.SetStart( eBr, 4 ) ;
|
482
|
+
else
|
483
|
+
oRange.SetStart( eBr.nextSibling, 1 ) ;
|
484
|
+
|
485
|
+
}
|
486
|
+
|
487
|
+
// This collapse guarantees the cursor will be blinking.
|
488
|
+
oRange.Collapse( true ) ;
|
489
|
+
|
490
|
+
oRange.Select() ;
|
491
|
+
}
|
492
|
+
|
493
|
+
// Release the resources used by the range.
|
494
|
+
oRange.Release() ;
|
495
|
+
|
496
|
+
return true ;
|
497
|
+
}
|
498
|
+
|
499
|
+
// Transform a block without a block tag in a valid block (orphan text in the body or td, usually).
|
500
|
+
FCKEnterKey.prototype._FixBlock = function( range, isStart, blockTag )
|
501
|
+
{
|
502
|
+
// Bookmark the range so we can restore it later.
|
503
|
+
var oBookmark = range.CreateBookmark() ;
|
504
|
+
|
505
|
+
// Collapse the range to the requested ending boundary.
|
506
|
+
range.Collapse( isStart ) ;
|
507
|
+
|
508
|
+
// Expands it to the block contents.
|
509
|
+
range.Expand( 'block_contents' ) ;
|
510
|
+
|
511
|
+
// Create the fixed block.
|
512
|
+
var oFixedBlock = this.Window.document.createElement( blockTag ) ;
|
513
|
+
|
514
|
+
// Move the contents of the temporary range to the fixed block.
|
515
|
+
range.ExtractContents().AppendTo( oFixedBlock ) ;
|
516
|
+
FCKDomTools.TrimNode( oFixedBlock ) ;
|
517
|
+
|
518
|
+
// Insert the fixed block into the DOM.
|
519
|
+
range.InsertNode( oFixedBlock ) ;
|
520
|
+
|
521
|
+
// Move the range back to the bookmarked place.
|
522
|
+
range.MoveToBookmark( oBookmark ) ;
|
523
|
+
}
|
524
|
+
|
525
|
+
// Appends a bogus <br> at the end of the element, if not yet available.
|
526
|
+
FCKEnterKey.prototype._AppendBogusBr = function( element )
|
527
|
+
{
|
528
|
+
var eLastChild = element.getElementsByTagName('br') ;
|
529
|
+
|
530
|
+
if ( eLastChild )
|
531
|
+
eLastChild = eLastChild[ eLastChild.legth - 1 ] ;
|
532
|
+
|
533
|
+
if ( !eLastChild || eLastChild.getAttribute( 'type', 2 ) != '_moz' )
|
534
|
+
element.appendChild( FCKTools.CreateBogusBR( this.Window.document ) ) ;
|
535
|
+
}
|
536
|
+
|
537
|
+
// Recreate the elements tree at the end of the source block, at the beginning
|
538
|
+
// of the target block. Eg.:
|
539
|
+
// If source = <p><u>Some</u> sample <b><i>text</i></b></p> then target = <p><b><i></i></b></p>
|
540
|
+
// If source = <p><u>Some</u> sample text</p> then target = <p></p>
|
541
|
+
FCKEnterKey.prototype._RecreateEndingTree = function( source, target )
|
542
|
+
{
|
543
|
+
while ( ( source = source.lastChild ) && source.nodeType == 1 && FCKListsLib.InlineChildReqElements[ source.nodeName.toLowerCase() ] != null )
|
544
|
+
target = target.insertBefore( source.cloneNode( false ), target.firstChild ) ;
|
545
|
+
}
|
546
|
+
|
547
|
+
// Outdents a LI, maintaining the seletion defined on a range.
|
548
|
+
FCKEnterKey.prototype._OutdentWithSelection = function( li, range )
|
549
|
+
{
|
550
|
+
var oBookmark = range.CreateBookmark() ;
|
551
|
+
|
552
|
+
FCKListHandler.OutdentListItem( li ) ;
|
553
|
+
|
554
|
+
range.MoveToBookmark( oBookmark ) ;
|
555
|
+
range.Select() ;
|
556
|
+
}
|