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,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
+ }