Wiki2GoEditor 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (403) hide show
  1. data/bin/Wiki2Go_install_editor.rb +13 -0
  2. data/fckeditor/editor/_source/classes/fckcontextmenu.js +134 -0
  3. data/fckeditor/editor/_source/classes/fckdocumentfragment_gecko.js +46 -0
  4. data/fckeditor/editor/_source/classes/fckdocumentfragment_ie.js +58 -0
  5. data/fckeditor/editor/_source/classes/fckdomrange.js +452 -0
  6. data/fckeditor/editor/_source/classes/fckdomrange_gecko.js +71 -0
  7. data/fckeditor/editor/_source/classes/fckdomrange_ie.js +149 -0
  8. data/fckeditor/editor/_source/classes/fckeditingarea.js +253 -0
  9. data/fckeditor/editor/_source/classes/fckelementpath.js +66 -0
  10. data/fckeditor/editor/_source/classes/fckenterkey.js +556 -0
  11. data/fckeditor/editor/_source/classes/fckevents.js +53 -0
  12. data/fckeditor/editor/_source/classes/fckicon.js +98 -0
  13. data/fckeditor/editor/_source/classes/fckiecleanup.js +68 -0
  14. data/fckeditor/editor/_source/classes/fckimagepreloader.js +68 -0
  15. data/fckeditor/editor/_source/classes/fckkeystrokehandler.js +136 -0
  16. data/fckeditor/editor/_source/classes/fckmenublock.js +143 -0
  17. data/fckeditor/editor/_source/classes/fckmenublockpanel.js +54 -0
  18. data/fckeditor/editor/_source/classes/fckmenuitem.js +160 -0
  19. data/fckeditor/editor/_source/classes/fckpanel.js +303 -0
  20. data/fckeditor/editor/_source/classes/fckplugin.js +56 -0
  21. data/fckeditor/editor/_source/classes/fckspecialcombo.js +363 -0
  22. data/fckeditor/editor/_source/classes/fckstyledef.js +59 -0
  23. data/fckeditor/editor/_source/classes/fckstyledef_gecko.js +119 -0
  24. data/fckeditor/editor/_source/classes/fckstyledef_ie.js +142 -0
  25. data/fckeditor/editor/_source/classes/fckstylesloader.js +88 -0
  26. data/fckeditor/editor/_source/classes/fcktoolbar.js +120 -0
  27. data/fckeditor/editor/_source/classes/fcktoolbarbreak_gecko.js +36 -0
  28. data/fckeditor/editor/_source/classes/fcktoolbarbreak_ie.js +38 -0
  29. data/fckeditor/editor/_source/classes/fcktoolbarbutton.js +74 -0
  30. data/fckeditor/editor/_source/classes/fcktoolbarbuttonui.js +222 -0
  31. data/fckeditor/editor/_source/classes/fcktoolbarfontformatcombo.js +114 -0
  32. data/fckeditor/editor/_source/classes/fcktoolbarfontscombo.js +47 -0
  33. data/fckeditor/editor/_source/classes/fcktoolbarfontsizecombo.js +52 -0
  34. data/fckeditor/editor/_source/classes/fcktoolbarpanelbutton.js +91 -0
  35. data/fckeditor/editor/_source/classes/fcktoolbarspecialcombo.js +134 -0
  36. data/fckeditor/editor/_source/classes/fcktoolbarstylecombo.js +111 -0
  37. data/fckeditor/editor/_source/classes/fckw3crange.js +448 -0
  38. data/fckeditor/editor/_source/classes/fckxml_gecko.js +87 -0
  39. data/fckeditor/editor/_source/classes/fckxml_ie.js +90 -0
  40. data/fckeditor/editor/_source/commandclasses/fck_othercommands.js +380 -0
  41. data/fckeditor/editor/_source/commandclasses/fckfitwindow.js +169 -0
  42. data/fckeditor/editor/_source/commandclasses/fcknamedcommand.js +37 -0
  43. data/fckeditor/editor/_source/commandclasses/fckpasteplaintextcommand.js +38 -0
  44. data/fckeditor/editor/_source/commandclasses/fckpastewordcommand.js +40 -0
  45. data/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_gecko.js +39 -0
  46. data/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_ie.js +67 -0
  47. data/fckeditor/editor/_source/commandclasses/fckstylecommand.js +99 -0
  48. data/fckeditor/editor/_source/commandclasses/fcktablecommand.js +71 -0
  49. data/fckeditor/editor/_source/commandclasses/fcktextcolorcommand.js +175 -0
  50. data/fckeditor/editor/_source/fckconstants.js +52 -0
  51. data/fckeditor/editor/_source/fckeditorapi.js +161 -0
  52. data/fckeditor/editor/_source/fckjscoreextensions.js +152 -0
  53. data/fckeditor/editor/_source/fckscriptloader.js +108 -0
  54. data/fckeditor/editor/_source/internals/fck.js +859 -0
  55. data/fckeditor/editor/_source/internals/fck_contextmenu.js +307 -0
  56. data/fckeditor/editor/_source/internals/fck_gecko.js +254 -0
  57. data/fckeditor/editor/_source/internals/fck_ie.js +383 -0
  58. data/fckeditor/editor/_source/internals/fckbrowserinfo.js +48 -0
  59. data/fckeditor/editor/_source/internals/fckcodeformatter.js +100 -0
  60. data/fckeditor/editor/_source/internals/fckcommands.js +132 -0
  61. data/fckeditor/editor/_source/internals/fckconfig.js +199 -0
  62. data/fckeditor/editor/_source/internals/fckdebug.js +56 -0
  63. data/fckeditor/editor/_source/internals/fckdialog.js +38 -0
  64. data/fckeditor/editor/_source/internals/fckdialog_gecko.js +103 -0
  65. data/fckeditor/editor/_source/internals/fckdialog_ie.js +48 -0
  66. data/fckeditor/editor/_source/internals/fckdocumentprocessor.js +243 -0
  67. data/fckeditor/editor/_source/internals/fckdomtools.js +294 -0
  68. data/fckeditor/editor/_source/internals/fcklanguagemanager.js +161 -0
  69. data/fckeditor/editor/_source/internals/fcklisthandler.js +152 -0
  70. data/fckeditor/editor/_source/internals/fcklistslib.js +60 -0
  71. data/fckeditor/editor/_source/internals/fckplugins.js +46 -0
  72. data/fckeditor/editor/_source/internals/fckregexlib.js +95 -0
  73. data/fckeditor/editor/_source/internals/fckselection.js +24 -0
  74. data/fckeditor/editor/_source/internals/fckselection_gecko.js +151 -0
  75. data/fckeditor/editor/_source/internals/fckselection_ie.js +158 -0
  76. data/fckeditor/editor/_source/internals/fcktablehandler.js +385 -0
  77. data/fckeditor/editor/_source/internals/fcktablehandler_gecko.js +57 -0
  78. data/fckeditor/editor/_source/internals/fcktablehandler_ie.js +58 -0
  79. data/fckeditor/editor/_source/internals/fcktoolbaritems.js +121 -0
  80. data/fckeditor/editor/_source/internals/fcktoolbarset.js +357 -0
  81. data/fckeditor/editor/_source/internals/fcktools.js +225 -0
  82. data/fckeditor/editor/_source/internals/fcktools_gecko.js +235 -0
  83. data/fckeditor/editor/_source/internals/fcktools_ie.js +214 -0
  84. data/fckeditor/editor/_source/internals/fckundo_gecko.js +27 -0
  85. data/fckeditor/editor/_source/internals/fckundo_ie.js +123 -0
  86. data/fckeditor/editor/_source/internals/fckurlparams.js +39 -0
  87. data/fckeditor/editor/_source/internals/fckxhtml.js +466 -0
  88. data/fckeditor/editor/_source/internals/fckxhtml_gecko.js +66 -0
  89. data/fckeditor/editor/_source/internals/fckxhtml_ie.js +194 -0
  90. data/fckeditor/editor/_source/internals/fckxhtmlentities.js +345 -0
  91. data/fckeditor/editor/css/behaviors/disablehandles.htc +15 -0
  92. data/fckeditor/editor/css/behaviors/showtableborders.htc +36 -0
  93. data/fckeditor/editor/css/fck_editorarea.css +91 -0
  94. data/fckeditor/editor/css/fck_internal.css +111 -0
  95. data/fckeditor/editor/css/fck_showtableborders_gecko.css +42 -0
  96. data/fckeditor/editor/css/images/fck_anchor.gif +0 -0
  97. data/fckeditor/editor/css/images/fck_flashlogo.gif +0 -0
  98. data/fckeditor/editor/css/images/fck_hiddenfield.gif +0 -0
  99. data/fckeditor/editor/css/images/fck_pagebreak.gif +0 -0
  100. data/fckeditor/editor/dialog/common/fck_dialog_common.css +83 -0
  101. data/fckeditor/editor/dialog/common/fck_dialog_common.js +154 -0
  102. data/fckeditor/editor/dialog/common/fcknumericfield.htc +24 -0
  103. data/fckeditor/editor/dialog/common/images/locked.gif +0 -0
  104. data/fckeditor/editor/dialog/common/images/reset.gif +0 -0
  105. data/fckeditor/editor/dialog/common/images/unlocked.gif +0 -0
  106. data/fckeditor/editor/dialog/common/moz-bindings.xml +30 -0
  107. data/fckeditor/editor/dialog/fck_about.html +155 -0
  108. data/fckeditor/editor/dialog/fck_about/logo_fckeditor.gif +0 -0
  109. data/fckeditor/editor/dialog/fck_about/logo_fredck.gif +0 -0
  110. data/fckeditor/editor/dialog/fck_anchor.html +227 -0
  111. data/fckeditor/editor/dialog/fck_button.html +107 -0
  112. data/fckeditor/editor/dialog/fck_checkbox.html +107 -0
  113. data/fckeditor/editor/dialog/fck_colorselector.html +171 -0
  114. data/fckeditor/editor/dialog/fck_docprops.html +600 -0
  115. data/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html +113 -0
  116. data/fckeditor/editor/dialog/fck_find.html +173 -0
  117. data/fckeditor/editor/dialog/fck_flash.html +146 -0
  118. data/fckeditor/editor/dialog/fck_flash/fck_flash.js +288 -0
  119. data/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html +46 -0
  120. data/fckeditor/editor/dialog/fck_form.html +105 -0
  121. data/fckeditor/editor/dialog/fck_hiddenfield.html +116 -0
  122. data/fckeditor/editor/dialog/fck_image.html +252 -0
  123. data/fckeditor/editor/dialog/fck_image/fck_image.js +486 -0
  124. data/fckeditor/editor/dialog/fck_image/fck_image_preview.html +66 -0
  125. data/fckeditor/editor/dialog/fck_link.html +293 -0
  126. data/fckeditor/editor/dialog/fck_link/fck_link.js +664 -0
  127. data/fckeditor/editor/dialog/fck_listprop.html +116 -0
  128. data/fckeditor/editor/dialog/fck_paste.html +285 -0
  129. data/fckeditor/editor/dialog/fck_radiobutton.html +107 -0
  130. data/fckeditor/editor/dialog/fck_replace.html +156 -0
  131. data/fckeditor/editor/dialog/fck_select.html +176 -0
  132. data/fckeditor/editor/dialog/fck_select/fck_select.js +169 -0
  133. data/fckeditor/editor/dialog/fck_smiley.html +105 -0
  134. data/fckeditor/editor/dialog/fck_source.html +65 -0
  135. data/fckeditor/editor/dialog/fck_specialchar.html +113 -0
  136. data/fckeditor/editor/dialog/fck_spellerpages.html +64 -0
  137. data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/blank.html +0 -0
  138. data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js +87 -0
  139. data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html +153 -0
  140. data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm +174 -0
  141. data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php +196 -0
  142. data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl +180 -0
  143. data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js +462 -0
  144. data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html +71 -0
  145. data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css +49 -0
  146. data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js +272 -0
  147. data/fckeditor/editor/dialog/fck_table.html +286 -0
  148. data/fckeditor/editor/dialog/fck_tablecell.html +255 -0
  149. data/fckeditor/editor/dialog/fck_template.html +242 -0
  150. data/fckeditor/editor/dialog/fck_template/images/template1.gif +0 -0
  151. data/fckeditor/editor/dialog/fck_template/images/template2.gif +0 -0
  152. data/fckeditor/editor/dialog/fck_template/images/template3.gif +0 -0
  153. data/fckeditor/editor/dialog/fck_textarea.html +94 -0
  154. data/fckeditor/editor/dialog/fck_textfield.html +139 -0
  155. data/fckeditor/editor/fckdebug.html +153 -0
  156. data/fckeditor/editor/fckdialog.html +324 -0
  157. data/fckeditor/editor/fckeditor.html +227 -0
  158. data/fckeditor/editor/fckeditor.original.html +319 -0
  159. data/fckeditor/editor/filemanager/browser/default/browser.css +88 -0
  160. data/fckeditor/editor/filemanager/browser/default/browser.html +154 -0
  161. data/fckeditor/editor/filemanager/browser/default/connectors/asp/basexml.asp +62 -0
  162. data/fckeditor/editor/filemanager/browser/default/connectors/asp/class_upload.asp +234 -0
  163. data/fckeditor/editor/filemanager/browser/default/connectors/asp/commands.asp +183 -0
  164. data/fckeditor/editor/filemanager/browser/default/connectors/asp/config.asp +49 -0
  165. data/fckeditor/editor/filemanager/browser/default/connectors/asp/connector.asp +124 -0
  166. data/fckeditor/editor/filemanager/browser/default/connectors/asp/io.asp +89 -0
  167. data/fckeditor/editor/filemanager/browser/default/connectors/asp/util.asp +55 -0
  168. data/fckeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx +30 -0
  169. data/fckeditor/editor/filemanager/browser/default/connectors/cfm/config.cfm +99 -0
  170. data/fckeditor/editor/filemanager/browser/default/connectors/cfm/connector.cfm +363 -0
  171. data/fckeditor/editor/filemanager/browser/default/connectors/lasso/config.lasso +65 -0
  172. data/fckeditor/editor/filemanager/browser/default/connectors/lasso/connector.lasso +249 -0
  173. data/fckeditor/editor/filemanager/browser/default/connectors/perl/basexml.pl +63 -0
  174. data/fckeditor/editor/filemanager/browser/default/connectors/perl/commands.pl +158 -0
  175. data/fckeditor/editor/filemanager/browser/default/connectors/perl/connector.cgi +137 -0
  176. data/fckeditor/editor/filemanager/browser/default/connectors/perl/io.pl +131 -0
  177. data/fckeditor/editor/filemanager/browser/default/connectors/perl/upload_fck.pl +667 -0
  178. data/fckeditor/editor/filemanager/browser/default/connectors/perl/util.pl +60 -0
  179. data/fckeditor/editor/filemanager/browser/default/connectors/php/basexml.php +75 -0
  180. data/fckeditor/editor/filemanager/browser/default/connectors/php/commands.php +222 -0
  181. data/fckeditor/editor/filemanager/browser/default/connectors/php/config.php +56 -0
  182. data/fckeditor/editor/filemanager/browser/default/connectors/php/connector.php +113 -0
  183. data/fckeditor/editor/filemanager/browser/default/connectors/php/io.php +101 -0
  184. data/fckeditor/editor/filemanager/browser/default/connectors/php/util.php +41 -0
  185. data/fckeditor/editor/filemanager/browser/default/connectors/py/connector.py +785 -0
  186. data/fckeditor/editor/filemanager/browser/default/connectors/test.html +180 -0
  187. data/fckeditor/editor/filemanager/browser/default/frmactualfolder.html +67 -0
  188. data/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html +113 -0
  189. data/fckeditor/editor/filemanager/browser/default/frmfolders.html +196 -0
  190. data/fckeditor/editor/filemanager/browser/default/frmresourceslist.html +160 -0
  191. data/fckeditor/editor/filemanager/browser/default/frmresourcetype.html +65 -0
  192. data/fckeditor/editor/filemanager/browser/default/frmupload.html +113 -0
  193. data/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif +0 -0
  194. data/fckeditor/editor/filemanager/browser/default/images/Folder.gif +0 -0
  195. data/fckeditor/editor/filemanager/browser/default/images/Folder32.gif +0 -0
  196. data/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif +0 -0
  197. data/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif +0 -0
  198. data/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif +0 -0
  199. data/fckeditor/editor/filemanager/browser/default/images/icons/32/ai.gif +0 -0
  200. data/fckeditor/editor/filemanager/browser/default/images/icons/32/avi.gif +0 -0
  201. data/fckeditor/editor/filemanager/browser/default/images/icons/32/bmp.gif +0 -0
  202. data/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif +0 -0
  203. data/fckeditor/editor/filemanager/browser/default/images/icons/32/default.icon.gif +0 -0
  204. data/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif +0 -0
  205. data/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif +0 -0
  206. data/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif +0 -0
  207. data/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif +0 -0
  208. data/fckeditor/editor/filemanager/browser/default/images/icons/32/gif.gif +0 -0
  209. data/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif +0 -0
  210. data/fckeditor/editor/filemanager/browser/default/images/icons/32/html.gif +0 -0
  211. data/fckeditor/editor/filemanager/browser/default/images/icons/32/jpg.gif +0 -0
  212. data/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif +0 -0
  213. data/fckeditor/editor/filemanager/browser/default/images/icons/32/mdb.gif +0 -0
  214. data/fckeditor/editor/filemanager/browser/default/images/icons/32/mp3.gif +0 -0
  215. data/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif +0 -0
  216. data/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif +0 -0
  217. data/fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif +0 -0
  218. data/fckeditor/editor/filemanager/browser/default/images/icons/32/rdp.gif +0 -0
  219. data/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif +0 -0
  220. data/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif +0 -0
  221. data/fckeditor/editor/filemanager/browser/default/images/icons/32/txt.gif +0 -0
  222. data/fckeditor/editor/filemanager/browser/default/images/icons/32/vsd.gif +0 -0
  223. data/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif +0 -0
  224. data/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif +0 -0
  225. data/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif +0 -0
  226. data/fckeditor/editor/filemanager/browser/default/images/icons/ai.gif +0 -0
  227. data/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif +0 -0
  228. data/fckeditor/editor/filemanager/browser/default/images/icons/bmp.gif +0 -0
  229. data/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif +0 -0
  230. data/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif +0 -0
  231. data/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif +0 -0
  232. data/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif +0 -0
  233. data/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif +0 -0
  234. data/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif +0 -0
  235. data/fckeditor/editor/filemanager/browser/default/images/icons/gif.gif +0 -0
  236. data/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif +0 -0
  237. data/fckeditor/editor/filemanager/browser/default/images/icons/html.gif +0 -0
  238. data/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif +0 -0
  239. data/fckeditor/editor/filemanager/browser/default/images/icons/js.gif +0 -0
  240. data/fckeditor/editor/filemanager/browser/default/images/icons/mdb.gif +0 -0
  241. data/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif +0 -0
  242. data/fckeditor/editor/filemanager/browser/default/images/icons/pdf.gif +0 -0
  243. data/fckeditor/editor/filemanager/browser/default/images/icons/png.gif +0 -0
  244. data/fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif +0 -0
  245. data/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif +0 -0
  246. data/fckeditor/editor/filemanager/browser/default/images/icons/swf.gif +0 -0
  247. data/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif +0 -0
  248. data/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif +0 -0
  249. data/fckeditor/editor/filemanager/browser/default/images/icons/vsd.gif +0 -0
  250. data/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif +0 -0
  251. data/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif +0 -0
  252. data/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif +0 -0
  253. data/fckeditor/editor/filemanager/browser/default/images/spacer.gif +0 -0
  254. data/fckeditor/editor/filemanager/browser/default/js/common.js +55 -0
  255. data/fckeditor/editor/filemanager/browser/default/js/fckxml.js +130 -0
  256. data/fckeditor/editor/filemanager/upload/asp/class_upload.asp +234 -0
  257. data/fckeditor/editor/filemanager/upload/asp/config.asp +52 -0
  258. data/fckeditor/editor/filemanager/upload/asp/io.asp +29 -0
  259. data/fckeditor/editor/filemanager/upload/asp/upload.asp +121 -0
  260. data/fckeditor/editor/filemanager/upload/aspx/upload.aspx +30 -0
  261. data/fckeditor/editor/filemanager/upload/cfm/config.cfm +98 -0
  262. data/fckeditor/editor/filemanager/upload/cfm/upload.cfm +168 -0
  263. data/fckeditor/editor/filemanager/upload/lasso/config.lasso +65 -0
  264. data/fckeditor/editor/filemanager/upload/lasso/upload.lasso +157 -0
  265. data/fckeditor/editor/filemanager/upload/php/config.php +56 -0
  266. data/fckeditor/editor/filemanager/upload/php/upload.php +124 -0
  267. data/fckeditor/editor/filemanager/upload/php/util.php +40 -0
  268. data/fckeditor/editor/filemanager/upload/test.html +133 -0
  269. data/fckeditor/editor/images/anchor.gif +0 -0
  270. data/fckeditor/editor/images/arrow_ltr.gif +0 -0
  271. data/fckeditor/editor/images/arrow_rtl.gif +0 -0
  272. data/fckeditor/editor/images/smiley/msn/angel_smile.gif +0 -0
  273. data/fckeditor/editor/images/smiley/msn/angry_smile.gif +0 -0
  274. data/fckeditor/editor/images/smiley/msn/broken_heart.gif +0 -0
  275. data/fckeditor/editor/images/smiley/msn/cake.gif +0 -0
  276. data/fckeditor/editor/images/smiley/msn/confused_smile.gif +0 -0
  277. data/fckeditor/editor/images/smiley/msn/cry_smile.gif +0 -0
  278. data/fckeditor/editor/images/smiley/msn/devil_smile.gif +0 -0
  279. data/fckeditor/editor/images/smiley/msn/embaressed_smile.gif +0 -0
  280. data/fckeditor/editor/images/smiley/msn/envelope.gif +0 -0
  281. data/fckeditor/editor/images/smiley/msn/heart.gif +0 -0
  282. data/fckeditor/editor/images/smiley/msn/kiss.gif +0 -0
  283. data/fckeditor/editor/images/smiley/msn/lightbulb.gif +0 -0
  284. data/fckeditor/editor/images/smiley/msn/omg_smile.gif +0 -0
  285. data/fckeditor/editor/images/smiley/msn/regular_smile.gif +0 -0
  286. data/fckeditor/editor/images/smiley/msn/sad_smile.gif +0 -0
  287. data/fckeditor/editor/images/smiley/msn/shades_smile.gif +0 -0
  288. data/fckeditor/editor/images/smiley/msn/teeth_smile.gif +0 -0
  289. data/fckeditor/editor/images/smiley/msn/thumbs_down.gif +0 -0
  290. data/fckeditor/editor/images/smiley/msn/thumbs_up.gif +0 -0
  291. data/fckeditor/editor/images/smiley/msn/tounge_smile.gif +0 -0
  292. data/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif +0 -0
  293. data/fckeditor/editor/images/smiley/msn/wink_smile.gif +0 -0
  294. data/fckeditor/editor/images/spacer.gif +0 -0
  295. data/fckeditor/editor/js/fckeditorcode_gecko.js +98 -0
  296. data/fckeditor/editor/js/fckeditorcode_ie.js +99 -0
  297. data/fckeditor/editor/lang/_getfontformat.html +85 -0
  298. data/fckeditor/editor/lang/_translationstatus.txt +76 -0
  299. data/fckeditor/editor/lang/af.js +504 -0
  300. data/fckeditor/editor/lang/ar.js +504 -0
  301. data/fckeditor/editor/lang/bg.js +504 -0
  302. data/fckeditor/editor/lang/bn.js +504 -0
  303. data/fckeditor/editor/lang/bs.js +504 -0
  304. data/fckeditor/editor/lang/ca.js +504 -0
  305. data/fckeditor/editor/lang/cs.js +504 -0
  306. data/fckeditor/editor/lang/da.js +504 -0
  307. data/fckeditor/editor/lang/de.js +504 -0
  308. data/fckeditor/editor/lang/el.js +504 -0
  309. data/fckeditor/editor/lang/en-au.js +504 -0
  310. data/fckeditor/editor/lang/en-ca.js +504 -0
  311. data/fckeditor/editor/lang/en-uk.js +504 -0
  312. data/fckeditor/editor/lang/en.js +504 -0
  313. data/fckeditor/editor/lang/eo.js +504 -0
  314. data/fckeditor/editor/lang/es.js +504 -0
  315. data/fckeditor/editor/lang/et.js +504 -0
  316. data/fckeditor/editor/lang/eu.js +505 -0
  317. data/fckeditor/editor/lang/fa.js +504 -0
  318. data/fckeditor/editor/lang/fi.js +504 -0
  319. data/fckeditor/editor/lang/fo.js +504 -0
  320. data/fckeditor/editor/lang/fr.js +504 -0
  321. data/fckeditor/editor/lang/gl.js +504 -0
  322. data/fckeditor/editor/lang/he.js +504 -0
  323. data/fckeditor/editor/lang/hi.js +504 -0
  324. data/fckeditor/editor/lang/hr.js +504 -0
  325. data/fckeditor/editor/lang/hu.js +504 -0
  326. data/fckeditor/editor/lang/it.js +504 -0
  327. data/fckeditor/editor/lang/ja.js +504 -0
  328. data/fckeditor/editor/lang/km.js +504 -0
  329. data/fckeditor/editor/lang/ko.js +504 -0
  330. data/fckeditor/editor/lang/lt.js +504 -0
  331. data/fckeditor/editor/lang/lv.js +504 -0
  332. data/fckeditor/editor/lang/mn.js +504 -0
  333. data/fckeditor/editor/lang/ms.js +504 -0
  334. data/fckeditor/editor/lang/nb.js +504 -0
  335. data/fckeditor/editor/lang/nl.js +504 -0
  336. data/fckeditor/editor/lang/no.js +504 -0
  337. data/fckeditor/editor/lang/pl.js +504 -0
  338. data/fckeditor/editor/lang/pt-br.js +504 -0
  339. data/fckeditor/editor/lang/pt.js +504 -0
  340. data/fckeditor/editor/lang/ro.js +504 -0
  341. data/fckeditor/editor/lang/ru.js +504 -0
  342. data/fckeditor/editor/lang/sk.js +504 -0
  343. data/fckeditor/editor/lang/sl.js +504 -0
  344. data/fckeditor/editor/lang/sr-latn.js +504 -0
  345. data/fckeditor/editor/lang/sr.js +504 -0
  346. data/fckeditor/editor/lang/sv.js +504 -0
  347. data/fckeditor/editor/lang/th.js +504 -0
  348. data/fckeditor/editor/lang/tr.js +504 -0
  349. data/fckeditor/editor/lang/uk.js +504 -0
  350. data/fckeditor/editor/lang/vi.js +504 -0
  351. data/fckeditor/editor/lang/zh-cn.js +504 -0
  352. data/fckeditor/editor/lang/zh.js +504 -0
  353. data/fckeditor/editor/plugins/autogrow/fckplugin.js +92 -0
  354. data/fckeditor/editor/plugins/placeholder/fck_placeholder.html +100 -0
  355. data/fckeditor/editor/plugins/placeholder/fckplugin.js +187 -0
  356. data/fckeditor/editor/plugins/placeholder/lang/de.js +27 -0
  357. data/fckeditor/editor/plugins/placeholder/lang/en.js +27 -0
  358. data/fckeditor/editor/plugins/placeholder/lang/fr.js +27 -0
  359. data/fckeditor/editor/plugins/placeholder/lang/it.js +27 -0
  360. data/fckeditor/editor/plugins/placeholder/lang/pl.js +27 -0
  361. data/fckeditor/editor/plugins/placeholder/placeholder.gif +0 -0
  362. data/fckeditor/editor/plugins/simplecommands/fckplugin.js +29 -0
  363. data/fckeditor/editor/plugins/tablecommands/fckplugin.js +32 -0
  364. data/fckeditor/editor/skins/_fckviewstrips.html +121 -0
  365. data/fckeditor/editor/skins/default/fck_dialog.css +137 -0
  366. data/fckeditor/editor/skins/default/fck_editor.css +464 -0
  367. data/fckeditor/editor/skins/default/fck_strip.gif +0 -0
  368. data/fckeditor/editor/skins/default/images/toolbar.arrowright.gif +0 -0
  369. data/fckeditor/editor/skins/default/images/toolbar.buttonarrow.gif +0 -0
  370. data/fckeditor/editor/skins/default/images/toolbar.collapse.gif +0 -0
  371. data/fckeditor/editor/skins/default/images/toolbar.end.gif +0 -0
  372. data/fckeditor/editor/skins/default/images/toolbar.expand.gif +0 -0
  373. data/fckeditor/editor/skins/default/images/toolbar.separator.gif +0 -0
  374. data/fckeditor/editor/skins/default/images/toolbar.start.gif +0 -0
  375. data/fckeditor/editor/skins/office2003/fck_dialog.css +138 -0
  376. data/fckeditor/editor/skins/office2003/fck_editor.css +476 -0
  377. data/fckeditor/editor/skins/office2003/fck_strip.gif +0 -0
  378. data/fckeditor/editor/skins/office2003/images/toolbar.arrowright.gif +0 -0
  379. data/fckeditor/editor/skins/office2003/images/toolbar.bg.gif +0 -0
  380. data/fckeditor/editor/skins/office2003/images/toolbar.buttonarrow.gif +0 -0
  381. data/fckeditor/editor/skins/office2003/images/toolbar.collapse.gif +0 -0
  382. data/fckeditor/editor/skins/office2003/images/toolbar.end.gif +0 -0
  383. data/fckeditor/editor/skins/office2003/images/toolbar.expand.gif +0 -0
  384. data/fckeditor/editor/skins/office2003/images/toolbar.separator.gif +0 -0
  385. data/fckeditor/editor/skins/office2003/images/toolbar.start.gif +0 -0
  386. data/fckeditor/editor/skins/silver/fck_dialog.css +141 -0
  387. data/fckeditor/editor/skins/silver/fck_editor.css +473 -0
  388. data/fckeditor/editor/skins/silver/fck_strip.gif +0 -0
  389. data/fckeditor/editor/skins/silver/images/toolbar.arrowright.gif +0 -0
  390. data/fckeditor/editor/skins/silver/images/toolbar.buttonarrow.gif +0 -0
  391. data/fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif +0 -0
  392. data/fckeditor/editor/skins/silver/images/toolbar.collapse.gif +0 -0
  393. data/fckeditor/editor/skins/silver/images/toolbar.end.gif +0 -0
  394. data/fckeditor/editor/skins/silver/images/toolbar.expand.gif +0 -0
  395. data/fckeditor/editor/skins/silver/images/toolbar.separator.gif +0 -0
  396. data/fckeditor/editor/skins/silver/images/toolbar.start.gif +0 -0
  397. data/fckeditor/fckconfig.js +224 -0
  398. data/fckeditor/fckeditor.js +214 -0
  399. data/fckeditor/fckstyles.xml +53 -0
  400. data/fckeditor/fcktemplates.xml +103 -0
  401. data/lib/Wiki2GoEditor/Install/editor.rb +39 -0
  402. data/test/test_install.rb +40 -0
  403. 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
+ }