Wiki2GoEditor 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,24 @@
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
+ * Active selection functions.
22
+ */
23
+
24
+ var FCKSelection = FCK.Selection = new Object() ;
@@ -0,0 +1,151 @@
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
+ * Active selection functions. (Gecko specific implementation)
22
+ */
23
+
24
+ // Get the selection type (like document.select.type in IE).
25
+ FCKSelection.GetType = function()
26
+ {
27
+ // if ( ! this._Type )
28
+ // {
29
+ // By default set the type to "Text".
30
+ this._Type = 'Text' ;
31
+
32
+ // Check if the actual selection is a Control (IMG, TABLE, HR, etc...).
33
+ var oSel ;
34
+ try { oSel = FCK.EditorWindow.getSelection() ; }
35
+ catch (e) {}
36
+
37
+ if ( oSel && oSel.rangeCount == 1 )
38
+ {
39
+ var oRange = oSel.getRangeAt(0) ;
40
+ if ( oRange.startContainer == oRange.endContainer && (oRange.endOffset - oRange.startOffset) == 1 && oRange.startContainer.nodeType != Node.TEXT_NODE )
41
+ this._Type = 'Control' ;
42
+ }
43
+ // }
44
+ return this._Type ;
45
+ }
46
+
47
+ // Retrieves the selected element (if any), just in the case that a single
48
+ // element (object like and image or a table) is selected.
49
+ FCKSelection.GetSelectedElement = function()
50
+ {
51
+ if ( this.GetType() == 'Control' )
52
+ {
53
+ var oSel = FCK.EditorWindow.getSelection() ;
54
+ return oSel.anchorNode.childNodes[ oSel.anchorOffset ] ;
55
+ }
56
+ return null ;
57
+ }
58
+
59
+ FCKSelection.GetParentElement = function()
60
+ {
61
+ if ( this.GetType() == 'Control' )
62
+ return FCKSelection.GetSelectedElement().parentNode ;
63
+ else
64
+ {
65
+ var oSel = FCK.EditorWindow.getSelection() ;
66
+ if ( oSel )
67
+ {
68
+ var oNode = oSel.anchorNode ;
69
+
70
+ while ( oNode && oNode.nodeType != 1 )
71
+ oNode = oNode.parentNode ;
72
+
73
+ return oNode ;
74
+ }
75
+ }
76
+ return null ;
77
+ }
78
+
79
+ FCKSelection.SelectNode = function( element )
80
+ {
81
+ // FCK.Focus() ;
82
+
83
+ var oRange = FCK.EditorDocument.createRange() ;
84
+ oRange.selectNode( element ) ;
85
+
86
+ var oSel = FCK.EditorWindow.getSelection() ;
87
+ oSel.removeAllRanges() ;
88
+ oSel.addRange( oRange ) ;
89
+ }
90
+
91
+ FCKSelection.Collapse = function( toStart )
92
+ {
93
+ var oSel = FCK.EditorWindow.getSelection() ;
94
+
95
+ if ( toStart == null || toStart === true )
96
+ oSel.collapseToStart() ;
97
+ else
98
+ oSel.collapseToEnd() ;
99
+ }
100
+
101
+ // The "nodeTagName" parameter must be Upper Case.
102
+ FCKSelection.HasAncestorNode = function( nodeTagName )
103
+ {
104
+ var oContainer = this.GetSelectedElement() ;
105
+ if ( ! oContainer && FCK.EditorWindow )
106
+ {
107
+ try { oContainer = FCK.EditorWindow.getSelection().getRangeAt(0).startContainer ; }
108
+ catch(e){}
109
+ }
110
+
111
+ while ( oContainer )
112
+ {
113
+ if ( oContainer.nodeType == 1 && oContainer.tagName == nodeTagName ) return true ;
114
+ oContainer = oContainer.parentNode ;
115
+ }
116
+
117
+ return false ;
118
+ }
119
+
120
+ // The "nodeTagName" parameter must be Upper Case.
121
+ FCKSelection.MoveToAncestorNode = function( nodeTagName )
122
+ {
123
+ var oNode ;
124
+
125
+ var oContainer = this.GetSelectedElement() ;
126
+ if ( ! oContainer )
127
+ oContainer = FCK.EditorWindow.getSelection().getRangeAt(0).startContainer ;
128
+
129
+ while ( oContainer )
130
+ {
131
+ if ( oContainer.nodeName == nodeTagName )
132
+ return oContainer ;
133
+
134
+ oContainer = oContainer.parentNode ;
135
+ }
136
+ return null ;
137
+ }
138
+
139
+ FCKSelection.Delete = function()
140
+ {
141
+ // Gets the actual selection.
142
+ var oSel = FCK.EditorWindow.getSelection() ;
143
+
144
+ // Deletes the actual selection contents.
145
+ for ( var i = 0 ; i < oSel.rangeCount ; i++ )
146
+ {
147
+ oSel.getRangeAt(i).deleteContents() ;
148
+ }
149
+
150
+ return oSel ;
151
+ }
@@ -0,0 +1,158 @@
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
+ * Active selection functions. (IE specific implementation)
22
+ */
23
+
24
+ // Get the selection type.
25
+ FCKSelection.GetType = function()
26
+ {
27
+ return FCK.EditorDocument.selection.type ;
28
+ }
29
+
30
+ // Retrieves the selected element (if any), just in the case that a single
31
+ // element (object like and image or a table) is selected.
32
+ FCKSelection.GetSelectedElement = function()
33
+ {
34
+ if ( this.GetType() == 'Control' )
35
+ {
36
+ var oRange = FCK.EditorDocument.selection.createRange() ;
37
+
38
+ if ( oRange && oRange.item )
39
+ return FCK.EditorDocument.selection.createRange().item(0) ;
40
+ }
41
+ }
42
+
43
+ FCKSelection.GetParentElement = function()
44
+ {
45
+ switch ( this.GetType() )
46
+ {
47
+ case 'Control' :
48
+ return FCKSelection.GetSelectedElement().parentElement ;
49
+ case 'None' :
50
+ return null ;
51
+ default :
52
+ return FCK.EditorDocument.selection.createRange().parentElement() ;
53
+ }
54
+ }
55
+
56
+ FCKSelection.SelectNode = function( node )
57
+ {
58
+ FCK.Focus() ;
59
+ FCK.EditorDocument.selection.empty() ;
60
+ var oRange ;
61
+ try
62
+ {
63
+ // Try to select the node as a control.
64
+ oRange = FCK.EditorDocument.body.createControlRange() ;
65
+ oRange.addElement( node ) ;
66
+ }
67
+ catch(e)
68
+ {
69
+ // If failed, select it as a text range.
70
+ oRange = FCK.EditorDocument.body.createTextRange() ;
71
+ oRange.moveToElementText( node ) ;
72
+ }
73
+
74
+ oRange.select() ;
75
+ }
76
+
77
+ FCKSelection.Collapse = function( toStart )
78
+ {
79
+ FCK.Focus() ;
80
+ if ( this.GetType() == 'Text' )
81
+ {
82
+ var oRange = FCK.EditorDocument.selection.createRange() ;
83
+ oRange.collapse( toStart == null || toStart === true ) ;
84
+ oRange.select() ;
85
+ }
86
+ }
87
+
88
+ // The "nodeTagName" parameter must be Upper Case.
89
+ FCKSelection.HasAncestorNode = function( nodeTagName )
90
+ {
91
+ var oContainer ;
92
+
93
+ if ( FCK.EditorDocument.selection.type == "Control" )
94
+ {
95
+ oContainer = this.GetSelectedElement() ;
96
+ }
97
+ else
98
+ {
99
+ var oRange = FCK.EditorDocument.selection.createRange() ;
100
+ oContainer = oRange.parentElement() ;
101
+ }
102
+
103
+ while ( oContainer )
104
+ {
105
+ if ( oContainer.tagName == nodeTagName ) return true ;
106
+ oContainer = oContainer.parentNode ;
107
+ }
108
+
109
+ return false ;
110
+ }
111
+
112
+ // The "nodeTagName" parameter must be UPPER CASE.
113
+ FCKSelection.MoveToAncestorNode = function( nodeTagName )
114
+ {
115
+ var oNode, oRange ;
116
+
117
+ if ( ! FCK.EditorDocument )
118
+ return null ;
119
+
120
+ if ( FCK.EditorDocument.selection.type == "Control" )
121
+ {
122
+ oRange = FCK.EditorDocument.selection.createRange() ;
123
+ for ( i = 0 ; i < oRange.length ; i++ )
124
+ {
125
+ if (oRange(i).parentNode)
126
+ {
127
+ oNode = oRange(i).parentNode ;
128
+ break ;
129
+ }
130
+ }
131
+ }
132
+ else
133
+ {
134
+ oRange = FCK.EditorDocument.selection.createRange() ;
135
+ oNode = oRange.parentElement() ;
136
+ }
137
+
138
+ while ( oNode && oNode.nodeName != nodeTagName )
139
+ oNode = oNode.parentNode ;
140
+
141
+ return oNode ;
142
+ }
143
+
144
+ FCKSelection.Delete = function()
145
+ {
146
+ // Gets the actual selection.
147
+ var oSel = FCK.EditorDocument.selection ;
148
+
149
+ // Deletes the actual selection contents.
150
+ if ( oSel.type.toLowerCase() != "none" )
151
+ {
152
+ oSel.clear() ;
153
+ }
154
+
155
+ return oSel ;
156
+ }
157
+
158
+
@@ -0,0 +1,385 @@
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
+ * Manage table operations.
22
+ */
23
+
24
+ var FCKTableHandler = new Object() ;
25
+
26
+ FCKTableHandler.InsertRow = function()
27
+ {
28
+ // Get the row where the selection is placed in.
29
+ var oRow = FCKSelection.MoveToAncestorNode( 'TR' ) ;
30
+ if ( !oRow ) return ;
31
+
32
+ // Create a clone of the row.
33
+ var oNewRow = oRow.cloneNode( true ) ;
34
+
35
+ // Insert the new row (copy) before of it.
36
+ oRow.parentNode.insertBefore( oNewRow, oRow ) ;
37
+
38
+ // Clean the row (it seems that the new row has been added after it).
39
+ FCKTableHandler.ClearRow( oRow ) ;
40
+ }
41
+
42
+ FCKTableHandler.DeleteRows = function( row )
43
+ {
44
+ // If no row has been passed as a parameter,
45
+ // then get the row where the selection is placed in.
46
+ if ( !row )
47
+ row = FCKSelection.MoveToAncestorNode( 'TR' ) ;
48
+ if ( !row ) return ;
49
+
50
+ // Get the row's table.
51
+ var oTable = FCKTools.GetElementAscensor( row, 'TABLE' ) ;
52
+
53
+ // If just one row is available then delete the entire table.
54
+ if ( oTable.rows.length == 1 )
55
+ {
56
+ FCKTableHandler.DeleteTable( oTable ) ;
57
+ return ;
58
+ }
59
+
60
+ // Delete the row.
61
+ row.parentNode.removeChild( row ) ;
62
+ }
63
+
64
+ FCKTableHandler.DeleteTable = function( table )
65
+ {
66
+ // If no table has been passed as a parameer,
67
+ // then get the table where the selection is placed in.
68
+ if ( !table )
69
+ {
70
+ table = FCKSelection.GetSelectedElement() ;
71
+ if ( !table || table.tagName != 'TABLE' )
72
+ table = FCKSelection.MoveToAncestorNode( 'TABLE' ) ;
73
+ }
74
+ if ( !table ) return ;
75
+
76
+ // Delete the table.
77
+ FCKSelection.SelectNode( table ) ;
78
+ FCKSelection.Collapse();
79
+ table.parentNode.removeChild( table ) ;
80
+ }
81
+
82
+ FCKTableHandler.InsertColumn = function()
83
+ {
84
+ // Get the cell where the selection is placed in.
85
+ var oCell = FCKSelection.MoveToAncestorNode('TD') || FCKSelection.MoveToAncestorNode('TH') ;
86
+
87
+ if ( !oCell ) return ;
88
+
89
+ // Get the cell's table.
90
+ var oTable = FCKTools.GetElementAscensor( oCell, 'TABLE' ) ;
91
+
92
+ // Get the index of the column to be created (based on the cell).
93
+ var iIndex = oCell.cellIndex + 1 ;
94
+
95
+ // Loop throw all rows available in the table.
96
+ for ( var i = 0 ; i < oTable.rows.length ; i++ )
97
+ {
98
+ // Get the row.
99
+ var oRow = oTable.rows[i] ;
100
+
101
+ // If the row doens't have enought cells, ignore it.
102
+ if ( oRow.cells.length < iIndex )
103
+ continue ;
104
+
105
+ oCell = oRow.cells[iIndex-1].cloneNode(false) ;
106
+
107
+ if ( FCKBrowserInfo.IsGecko )
108
+ oCell.innerHTML = GECKO_BOGUS ;
109
+
110
+ // Get the cell that is placed in the new cell place.
111
+ var oBaseCell = oRow.cells[iIndex] ;
112
+
113
+ // If the cell is available (we are not in the last cell of the row).
114
+ if ( oBaseCell )
115
+ oRow.insertBefore( oCell, oBaseCell ) ; // Insert the new cell just before of it.
116
+ else
117
+ oRow.appendChild( oCell ) ; // Append the cell at the end of the row.
118
+ }
119
+ }
120
+
121
+ FCKTableHandler.DeleteColumns = function()
122
+ {
123
+ // Get the cell where the selection is placed in.
124
+ var oCell = FCKSelection.MoveToAncestorNode('TD') || FCKSelection.MoveToAncestorNode('TH') ;
125
+
126
+ if ( !oCell ) return ;
127
+
128
+ // Get the cell's table.
129
+ var oTable = FCKTools.GetElementAscensor( oCell, 'TABLE' ) ;
130
+
131
+ // Get the cell index.
132
+ var iIndex = oCell.cellIndex ;
133
+
134
+ // Loop throw all rows (from down to up, because it's possible that some
135
+ // rows will be deleted).
136
+ for ( var i = oTable.rows.length - 1 ; i >= 0 ; i-- )
137
+ {
138
+ // Get the row.
139
+ var oRow = oTable.rows[i] ;
140
+
141
+ // If the cell to be removed is the first one and the row has just one cell.
142
+ if ( iIndex == 0 && oRow.cells.length == 1 )
143
+ {
144
+ // Remove the entire row.
145
+ FCKTableHandler.DeleteRows( oRow ) ;
146
+ continue ;
147
+ }
148
+
149
+ // If the cell to be removed exists the delete it.
150
+ if ( oRow.cells[iIndex] )
151
+ oRow.removeChild( oRow.cells[iIndex] ) ;
152
+ }
153
+ }
154
+
155
+ FCKTableHandler.InsertCell = function( cell )
156
+ {
157
+ // Get the cell where the selection is placed in.
158
+ var oCell = cell ? cell : FCKSelection.MoveToAncestorNode( 'TD' ) ;
159
+ if ( !oCell ) return null ;
160
+
161
+ // Create the new cell element to be added.
162
+ var oNewCell = FCK.EditorDocument.createElement( 'TD' ) ;
163
+ if ( FCKBrowserInfo.IsGecko )
164
+ oNewCell.innerHTML = GECKO_BOGUS ;
165
+ // oNewCell.innerHTML = "&nbsp;" ;
166
+
167
+ // If it is the last cell in the row.
168
+ if ( oCell.cellIndex == oCell.parentNode.cells.length - 1 )
169
+ {
170
+ // Add the new cell at the end of the row.
171
+ oCell.parentNode.appendChild( oNewCell ) ;
172
+ }
173
+ else
174
+ {
175
+ // Add the new cell before the next cell (after the active one).
176
+ oCell.parentNode.insertBefore( oNewCell, oCell.nextSibling ) ;
177
+ }
178
+
179
+ return oNewCell ;
180
+ }
181
+
182
+ FCKTableHandler.DeleteCell = function( cell )
183
+ {
184
+ // If this is the last cell in the row.
185
+ if ( cell.parentNode.cells.length == 1 )
186
+ {
187
+ // Delete the entire row.
188
+ FCKTableHandler.DeleteRows( FCKTools.GetElementAscensor( cell, 'TR' ) ) ;
189
+ return ;
190
+ }
191
+
192
+ // Delete the cell from the row.
193
+ cell.parentNode.removeChild( cell ) ;
194
+ }
195
+
196
+ FCKTableHandler.DeleteCells = function()
197
+ {
198
+ var aCells = FCKTableHandler.GetSelectedCells() ;
199
+
200
+ for ( var i = aCells.length - 1 ; i >= 0 ; i-- )
201
+ {
202
+ FCKTableHandler.DeleteCell( aCells[i] ) ;
203
+ }
204
+ }
205
+
206
+ FCKTableHandler.MergeCells = function()
207
+ {
208
+ // Get all selected cells.
209
+ var aCells = FCKTableHandler.GetSelectedCells() ;
210
+
211
+ // At least 2 cells must be selected.
212
+ if ( aCells.length < 2 )
213
+ return ;
214
+
215
+ // The merge can occour only if the selected cells are from the same row.
216
+ if ( aCells[0].parentNode != aCells[aCells.length-1].parentNode )
217
+ return ;
218
+
219
+ // Calculate the new colSpan for the first cell.
220
+ var iColSpan = isNaN( aCells[0].colSpan ) ? 1 : aCells[0].colSpan ;
221
+
222
+ var sHtml = '' ;
223
+ var oCellsContents = FCK.EditorDocument.createDocumentFragment() ;
224
+
225
+ for ( var i = aCells.length - 1 ; i >= 0 ; i-- )
226
+ {
227
+ var eCell = aCells[i] ;
228
+
229
+ // Move its contents to the document fragment.
230
+ for ( var c = eCell.childNodes.length - 1 ; c >= 0 ; c-- )
231
+ {
232
+ var eChild = eCell.removeChild( eCell.childNodes[c] ) ;
233
+
234
+ if ( ( eChild.hasAttribute && eChild.hasAttribute('_moz_editor_bogus_node') ) || ( eChild.getAttribute && eChild.getAttribute( 'type', 2 ) == '_moz' ) )
235
+ continue ;
236
+
237
+ oCellsContents.insertBefore( eChild, oCellsContents.firstChild ) ;
238
+ }
239
+
240
+ if ( i > 0 )
241
+ {
242
+ // Accumulate the colspan of the cell.
243
+ iColSpan += isNaN( eCell.colSpan ) ? 1 : eCell.colSpan ;
244
+
245
+ // Delete the cell.
246
+ FCKTableHandler.DeleteCell( eCell ) ;
247
+ }
248
+ }
249
+
250
+ // Set the innerHTML of the remaining cell (the first one).
251
+ aCells[0].colSpan = iColSpan ;
252
+
253
+ if ( FCKBrowserInfo.IsGecko && oCellsContents.childNodes.length == 0 )
254
+ aCells[0].innerHTML = GECKO_BOGUS ;
255
+ else
256
+ aCells[0].appendChild( oCellsContents ) ;
257
+ }
258
+
259
+ FCKTableHandler.SplitCell = function()
260
+ {
261
+ // Check that just one cell is selected, otherwise return.
262
+ var aCells = FCKTableHandler.GetSelectedCells() ;
263
+ if ( aCells.length != 1 )
264
+ return ;
265
+
266
+ var aMap = this._CreateTableMap( aCells[0].parentNode.parentNode ) ;
267
+ var iCellIndex = FCKTableHandler._GetCellIndexSpan( aMap, aCells[0].parentNode.rowIndex , aCells[0] ) ;
268
+
269
+ var aCollCells = this._GetCollumnCells( aMap, iCellIndex ) ;
270
+
271
+ for ( var i = 0 ; i < aCollCells.length ; i++ )
272
+ {
273
+ if ( aCollCells[i] == aCells[0] )
274
+ {
275
+ var oNewCell = this.InsertCell( aCells[0] ) ;
276
+ if ( !isNaN( aCells[0].rowSpan ) && aCells[0].rowSpan > 1 )
277
+ oNewCell.rowSpan = aCells[0].rowSpan ;
278
+ }
279
+ else
280
+ {
281
+ if ( isNaN( aCollCells[i].colSpan ) )
282
+ aCollCells[i].colSpan = 2 ;
283
+ else
284
+ aCollCells[i].colSpan += 1 ;
285
+ }
286
+ }
287
+ }
288
+
289
+ // Get the cell index from a TableMap.
290
+ FCKTableHandler._GetCellIndexSpan = function( tableMap, rowIndex, cell )
291
+ {
292
+ if ( tableMap.length < rowIndex + 1 )
293
+ return null ;
294
+
295
+ var oRow = tableMap[ rowIndex ] ;
296
+
297
+ for ( var c = 0 ; c < oRow.length ; c++ )
298
+ {
299
+ if ( oRow[c] == cell )
300
+ return c ;
301
+ }
302
+
303
+ return null ;
304
+ }
305
+
306
+ // Get the cells available in a collumn of a TableMap.
307
+ FCKTableHandler._GetCollumnCells = function( tableMap, collumnIndex )
308
+ {
309
+ var aCollCells = new Array() ;
310
+
311
+ for ( var r = 0 ; r < tableMap.length ; r++ )
312
+ {
313
+ var oCell = tableMap[r][collumnIndex] ;
314
+ if ( oCell && ( aCollCells.length == 0 || aCollCells[ aCollCells.length - 1 ] != oCell ) )
315
+ aCollCells[ aCollCells.length ] = oCell ;
316
+ }
317
+
318
+ return aCollCells ;
319
+ }
320
+
321
+ // This function is quite hard to explain. It creates a matrix representing all cells in a table.
322
+ // The difference here is that the "spanned" cells (colSpan and rowSpan) are duplicated on the matrix
323
+ // cells that are "spanned". For example, a row with 3 cells where the second cell has colSpan=2 and rowSpan=3
324
+ // will produce a bi-dimensional matrix with the following values (representing the cells):
325
+ // Cell1, Cell2, Cell2, Cell 3
326
+ // Cell4, Cell2, Cell2, Cell 5
327
+ FCKTableHandler._CreateTableMap = function( table )
328
+ {
329
+ var aRows = table.rows ;
330
+
331
+ // Row and Collumn counters.
332
+ var r = -1 ;
333
+
334
+ var aMap = new Array() ;
335
+
336
+ for ( var i = 0 ; i < aRows.length ; i++ )
337
+ {
338
+ r++ ;
339
+ if ( !aMap[r] )
340
+ aMap[r] = new Array() ;
341
+
342
+ var c = -1 ;
343
+
344
+ for ( var j = 0 ; j < aRows[i].cells.length ; j++ )
345
+ {
346
+ var oCell = aRows[i].cells[j] ;
347
+
348
+ c++ ;
349
+ while ( aMap[r][c] )
350
+ c++ ;
351
+
352
+ var iColSpan = isNaN( oCell.colSpan ) ? 1 : oCell.colSpan ;
353
+ var iRowSpan = isNaN( oCell.rowSpan ) ? 1 : oCell.rowSpan ;
354
+
355
+ for ( var rs = 0 ; rs < iRowSpan ; rs++ )
356
+ {
357
+ if ( !aMap[r + rs] )
358
+ aMap[r + rs] = new Array() ;
359
+
360
+ for ( var cs = 0 ; cs < iColSpan ; cs++ )
361
+ {
362
+ aMap[r + rs][c + cs] = aRows[i].cells[j] ;
363
+ }
364
+ }
365
+
366
+ c += iColSpan - 1 ;
367
+ }
368
+ }
369
+ return aMap ;
370
+ }
371
+
372
+ FCKTableHandler.ClearRow = function( tr )
373
+ {
374
+ // Get the array of row's cells.
375
+ var aCells = tr.cells ;
376
+
377
+ // Replace the contents of each cell with "nothing".
378
+ for ( var i = 0 ; i < aCells.length ; i++ )
379
+ {
380
+ if ( FCKBrowserInfo.IsGecko )
381
+ aCells[i].innerHTML = GECKO_BOGUS ;
382
+ else
383
+ aCells[i].innerHTML = '' ;
384
+ }
385
+ }