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,13 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- coding: ISO-8859-1 -*-
3
+
4
+
5
+ require 'rubygems'
6
+ gem "Wiki2GoEditor"
7
+
8
+ require 'fileutils'
9
+ require 'Wiki2GoEditor/Install/editor.rb'
10
+
11
+ Wiki2GoEditor::Install::editor(ARGV) do |msg|
12
+ puts msg
13
+ end
@@ -0,0 +1,134 @@
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
+ * FCKContextMenu Class: renders an control a context menu.
22
+ */
23
+
24
+ var FCKContextMenu = function( parentWindow, langDir )
25
+ {
26
+ var oPanel = this._Panel = new FCKPanel( parentWindow, true ) ;
27
+ oPanel.AppendStyleSheet( FCKConfig.SkinPath + 'fck_editor.css' ) ;
28
+ oPanel.IsContextMenu = true ;
29
+
30
+ // The FCKTools.DisableSelection doesn't seems to work to avoid dragging of the icons in Mozilla
31
+ // so we stop the start of the dragging
32
+ if ( FCKBrowserInfo.IsGecko )
33
+ oPanel.Document.addEventListener( 'draggesture', function(e) {e.preventDefault(); return false;}, true ) ;
34
+
35
+ var oMenuBlock = this._MenuBlock = new FCKMenuBlock() ;
36
+ oMenuBlock.Panel = oPanel ;
37
+ oMenuBlock.OnClick = FCKTools.CreateEventListener( FCKContextMenu_MenuBlock_OnClick, this ) ;
38
+
39
+ this._Redraw = true ;
40
+ }
41
+
42
+
43
+ FCKContextMenu.prototype.SetMouseClickWindow = function( mouseClickWindow )
44
+ {
45
+ if ( !FCKBrowserInfo.IsIE )
46
+ {
47
+ this._Document = mouseClickWindow.document ;
48
+ this._Document.addEventListener( 'contextmenu', FCKContextMenu_Document_OnContextMenu, false ) ;
49
+ }
50
+ }
51
+
52
+ FCKContextMenu.prototype.AddItem = function( name, label, iconPathOrStripInfoArrayOrIndex, isDisabled )
53
+ {
54
+ var oItem = this._MenuBlock.AddItem( name, label, iconPathOrStripInfoArrayOrIndex, isDisabled) ;
55
+ this._Redraw = true ;
56
+ return oItem ;
57
+ }
58
+
59
+ FCKContextMenu.prototype.AddSeparator = function()
60
+ {
61
+ this._MenuBlock.AddSeparator() ;
62
+ this._Redraw = true ;
63
+ }
64
+
65
+ FCKContextMenu.prototype.RemoveAllItems = function()
66
+ {
67
+ this._MenuBlock.RemoveAllItems() ;
68
+ this._Redraw = true ;
69
+ }
70
+
71
+ FCKContextMenu.prototype.AttachToElement = function( element )
72
+ {
73
+ if ( FCKBrowserInfo.IsIE )
74
+ FCKTools.AddEventListenerEx( element, 'contextmenu', FCKContextMenu_AttachedElement_OnContextMenu, this ) ;
75
+ else
76
+ element._FCKContextMenu = this ;
77
+
78
+ // element.onmouseup = FCKContextMenu_AttachedElement_OnMouseUp ;
79
+ }
80
+
81
+ function FCKContextMenu_Document_OnContextMenu( e )
82
+ {
83
+ var el = e.target ;
84
+
85
+ while ( el )
86
+ {
87
+ if ( el._FCKContextMenu )
88
+ {
89
+ FCKTools.CancelEvent( e ) ;
90
+ FCKContextMenu_AttachedElement_OnContextMenu( e, el._FCKContextMenu, el ) ;
91
+ }
92
+ el = el.parentNode ;
93
+ }
94
+ }
95
+
96
+ function FCKContextMenu_AttachedElement_OnContextMenu( ev, fckContextMenu, el )
97
+ {
98
+ // var iButton = e ? e.which - 1 : event.button ;
99
+
100
+ // if ( iButton != 2 )
101
+ // return ;
102
+
103
+ var eTarget = el || this ;
104
+
105
+ if ( fckContextMenu.OnBeforeOpen )
106
+ fckContextMenu.OnBeforeOpen.call( fckContextMenu, eTarget ) ;
107
+
108
+ if ( fckContextMenu._MenuBlock.Count() == 0 )
109
+ return false ;
110
+
111
+ if ( fckContextMenu._Redraw )
112
+ {
113
+ fckContextMenu._MenuBlock.Create( fckContextMenu._Panel.MainNode ) ;
114
+ fckContextMenu._Redraw = false ;
115
+ }
116
+
117
+ // This will avoid that the content of the context menu can be dragged in IE
118
+ // as the content of the panel is recreated we need to do it every time
119
+ FCKTools.DisableSelection( fckContextMenu._Panel.Document.body ) ;
120
+
121
+ fckContextMenu._Panel.Show(
122
+ ev.pageX || ev.screenX,
123
+ ev.pageY || ev.screenY,
124
+ ev.currentTarget || null
125
+ ) ;
126
+
127
+ return false ;
128
+ }
129
+
130
+ function FCKContextMenu_MenuBlock_OnClick( menuItem, contextMenu )
131
+ {
132
+ contextMenu._Panel.Hide() ;
133
+ FCKTools.RunFunction( contextMenu.OnItemClick, contextMenu, menuItem ) ;
134
+ }
@@ -0,0 +1,46 @@
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
+ * This is a generic Document Fragment object. It is not intended to provide
22
+ * the W3C implementation, but is a way to fix the missing of a real Document
23
+ * Fragment in IE (where document.createDocumentFragment() returns a normal
24
+ * document instead), giving a standard interface for it.
25
+ * (IE Implementation)
26
+ */
27
+
28
+ var FCKDocumentFragment = function( parentDocument, baseDocFrag )
29
+ {
30
+ this.RootNode = baseDocFrag || parentDocument.createDocumentFragment() ;
31
+ }
32
+
33
+ FCKDocumentFragment.prototype =
34
+ {
35
+
36
+ // Append the contents of this Document Fragment to another element.
37
+ AppendTo : function( targetNode )
38
+ {
39
+ targetNode.appendChild( this.RootNode ) ;
40
+ },
41
+
42
+ InsertAfterNode : function( existingNode )
43
+ {
44
+ FCKDomTools.InsertAfterNode( existingNode, this.RootNode ) ;
45
+ }
46
+ }
@@ -0,0 +1,58 @@
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
+ * This is a generic Document Fragment object. It is not intended to provide
22
+ * the W3C implementation, but is a way to fix the missing of a real Document
23
+ * Fragment in IE (where document.createDocumentFragment() returns a normal
24
+ * document instead), giving a standard interface for it.
25
+ * (IE Implementation)
26
+ */
27
+
28
+ var FCKDocumentFragment = function( parentDocument )
29
+ {
30
+ this._Document = parentDocument ;
31
+ this.RootNode = parentDocument.createElement( 'div' ) ;
32
+ }
33
+
34
+ // Append the contents of this Document Fragment to another node.
35
+ FCKDocumentFragment.prototype =
36
+ {
37
+
38
+ AppendTo : function( targetNode )
39
+ {
40
+ FCKDomTools.MoveChildren( this.RootNode, targetNode ) ;
41
+ },
42
+
43
+ AppendHtml : function( html )
44
+ {
45
+ var eTmpDiv = this._Document.createElement( 'div' ) ;
46
+ eTmpDiv.innerHTML = html ;
47
+ FCKDomTools.MoveChildren( eTmpDiv, this.RootNode ) ;
48
+ },
49
+
50
+ InsertAfterNode : function( existingNode )
51
+ {
52
+ var eRoot = this.RootNode ;
53
+ var eLast ;
54
+
55
+ while( ( eLast = eRoot.lastChild ) )
56
+ FCKDomTools.InsertAfterNode( existingNode, eRoot.removeChild( eLast ) ) ;
57
+ }
58
+ } ;
@@ -0,0 +1,452 @@
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
+ * Class for working with a selection range, much like the W3C DOM Range, but
22
+ * it is not intented to be an implementation of the W3C interface.
23
+ */
24
+
25
+ var FCKDomRange = function( sourceWindow )
26
+ {
27
+ this.Window = sourceWindow ;
28
+ }
29
+
30
+ FCKDomRange.prototype =
31
+ {
32
+
33
+ _UpdateElementInfo : function()
34
+ {
35
+ if ( !this._Range )
36
+ this.Release( true ) ;
37
+ else
38
+ {
39
+ var eStart = this._Range.startContainer ;
40
+ var eEnd = this._Range.endContainer ;
41
+
42
+ var oElementPath = new FCKElementPath( eStart ) ;
43
+ this.StartContainer = oElementPath.LastElement ;
44
+ this.StartBlock = oElementPath.Block ;
45
+ this.StartBlockLimit = oElementPath.BlockLimit ;
46
+
47
+ if ( eStart != eEnd )
48
+ oElementPath = new FCKElementPath( eEnd ) ;
49
+ this.EndContainer = oElementPath.LastElement ;
50
+ this.EndBlock = oElementPath.Block ;
51
+ this.EndBlockLimit = oElementPath.BlockLimit ;
52
+ }
53
+ },
54
+
55
+ CreateRange : function()
56
+ {
57
+ return new FCKW3CRange( this.Window.document ) ;
58
+ },
59
+
60
+ DeleteContents : function()
61
+ {
62
+ if ( this._Range )
63
+ {
64
+ this._Range.deleteContents() ;
65
+ this._UpdateElementInfo() ;
66
+ }
67
+ },
68
+
69
+ ExtractContents : function()
70
+ {
71
+ if ( this._Range )
72
+ {
73
+ var docFrag = this._Range.extractContents() ;
74
+ this._UpdateElementInfo() ;
75
+ return docFrag ;
76
+ }
77
+ },
78
+
79
+ CheckIsCollapsed : function()
80
+ {
81
+ if ( this._Range )
82
+ return this._Range.collapsed ;
83
+ },
84
+
85
+ Collapse : function( toStart )
86
+ {
87
+ if ( this._Range )
88
+ this._Range.collapse( toStart ) ;
89
+
90
+ this._UpdateElementInfo() ;
91
+ },
92
+
93
+ Clone : function()
94
+ {
95
+ var oClone = FCKTools.CloneObject( this ) ;
96
+
97
+ if ( this._Range )
98
+ oClone._Range = this._Range.cloneRange() ;
99
+
100
+ return oClone ;
101
+ },
102
+
103
+ MoveToNodeContents : function( targetNode )
104
+ {
105
+ if ( !this._Range )
106
+ this._Range = this.CreateRange() ;
107
+
108
+ this._Range.selectNodeContents( targetNode ) ;
109
+
110
+ this._UpdateElementInfo() ;
111
+ },
112
+
113
+ MoveToElementStart : function( targetElement )
114
+ {
115
+ this.SetStart(targetElement,1) ;
116
+ this.SetEnd(targetElement,1) ;
117
+ },
118
+
119
+ // Moves to the first editing point inside a element. For example, in a
120
+ // element tree like "<p><b><i></i></b> Text</p>", the start editing point
121
+ // is "<p><b><i>^</i></b> Text</p>" (inside <i>).
122
+ MoveToElementEditStart : function( targetElement )
123
+ {
124
+ var child ;
125
+
126
+ while ( ( child = targetElement.firstChild ) && child.nodeType == 1 && FCKListsLib.EmptyElements[ child.nodeName.toLowerCase() ] == null )
127
+ targetElement = child ;
128
+
129
+ this.MoveToElementStart( targetElement ) ;
130
+ },
131
+
132
+ InsertNode : function( node )
133
+ {
134
+ if ( this._Range )
135
+ this._Range.insertNode( node ) ;
136
+ },
137
+
138
+ CheckIsEmpty : function( ignoreEndBRs )
139
+ {
140
+ if ( this.CheckIsCollapsed() )
141
+ return true ;
142
+
143
+ // Inserts the contents of the range in a div tag.
144
+ var eToolDiv = this.Window.document.createElement( 'div' ) ;
145
+ this._Range.cloneContents().AppendTo( eToolDiv ) ;
146
+
147
+ FCKDomTools.TrimNode( eToolDiv, ignoreEndBRs ) ;
148
+
149
+ return ( eToolDiv.innerHTML.length == 0 ) ;
150
+ },
151
+
152
+ CheckStartOfBlock : function()
153
+ {
154
+ // Create a clone of the current range.
155
+ var oTestRange = this.Clone() ;
156
+
157
+ // Collapse it to its start point.
158
+ oTestRange.Collapse( true ) ;
159
+
160
+ // Move the start boundary to the start of the block.
161
+ oTestRange.SetStart( oTestRange.StartBlock || oTestRange.StartBlockLimit, 1 ) ;
162
+
163
+ var bIsStartOfBlock = oTestRange.CheckIsEmpty() ;
164
+
165
+ oTestRange.Release() ;
166
+
167
+ return bIsStartOfBlock ;
168
+ },
169
+
170
+ CheckEndOfBlock : function( refreshSelection )
171
+ {
172
+ // Create a clone of the current range.
173
+ var oTestRange = this.Clone() ;
174
+
175
+ // Collapse it to its end point.
176
+ oTestRange.Collapse( false ) ;
177
+
178
+ // Move the end boundary to the end of the block.
179
+ oTestRange.SetEnd( oTestRange.EndBlock || oTestRange.EndBlockLimit, 2 ) ;
180
+
181
+ var bIsEndOfBlock = oTestRange.CheckIsCollapsed() ;
182
+
183
+ if ( !bIsEndOfBlock )
184
+ {
185
+ // Inserts the contents of the range in a div tag.
186
+ var eToolDiv = this.Window.document.createElement( 'div' ) ;
187
+ oTestRange._Range.cloneContents().AppendTo( eToolDiv ) ;
188
+ FCKDomTools.TrimNode( eToolDiv, true ) ;
189
+
190
+ // Find out if we are in an empty tree of inline elements, like <b><i><span></span></i></b>
191
+ bIsEndOfBlock = true ;
192
+ var eLastChild = eToolDiv ;
193
+ while ( ( eLastChild = eLastChild.lastChild ) )
194
+ {
195
+ // Check the following:
196
+ // 1. Is there more than one node in the parents children?
197
+ // 2. Is the node not an element node?
198
+ // 3. Is it not a inline element.
199
+ if ( eLastChild.previousSibling || eLastChild.nodeType != 1 || FCKListsLib.InlineChildReqElements[ eLastChild.nodeName.toLowerCase() ] == null )
200
+ {
201
+ // So we are not in the end of the range.
202
+ bIsEndOfBlock = false ;
203
+ break ;
204
+ }
205
+ }
206
+ }
207
+
208
+ oTestRange.Release() ;
209
+
210
+ if ( refreshSelection )
211
+ this.Select() ;
212
+
213
+ return bIsEndOfBlock ;
214
+ },
215
+
216
+ CreateBookmark : function()
217
+ {
218
+ // Create the bookmark info (random IDs).
219
+ var oBookmark =
220
+ {
221
+ StartId : 'fck_dom_range_start_' + (new Date()).valueOf() + '_' + Math.floor(Math.random()*1000),
222
+ EndId : 'fck_dom_range_end_' + (new Date()).valueOf() + '_' + Math.floor(Math.random()*1000)
223
+ } ;
224
+
225
+ var oDoc = this.Window.document ;
226
+ var eSpan ;
227
+ var oClone ;
228
+
229
+ // For collapsed ranges, add just the start marker.
230
+ if ( !this.CheckIsCollapsed() )
231
+ {
232
+ eSpan = oDoc.createElement( 'span' ) ;
233
+ eSpan.id = oBookmark.EndId ;
234
+ eSpan.innerHTML = '&nbsp;' ; // For IE, it must have something inside, otherwise it may be removed during operations.
235
+
236
+ oClone = this.Clone() ;
237
+ oClone.Collapse( false ) ;
238
+ oClone.InsertNode( eSpan ) ;
239
+ }
240
+
241
+ eSpan = oDoc.createElement( 'span' ) ;
242
+ eSpan.id = oBookmark.StartId ;
243
+ eSpan.innerHTML = '&nbsp;' ; // For IE, it must have something inside, otherwise it may be removed during operations.
244
+
245
+ oClone = this.Clone() ;
246
+ oClone.Collapse( true ) ;
247
+ oClone.InsertNode( eSpan ) ;
248
+
249
+ return oBookmark ;
250
+ },
251
+
252
+ MoveToBookmark : function( bookmark, preserveBookmark )
253
+ {
254
+ var oDoc = this.Window.document ;
255
+
256
+ var eStartSpan = oDoc.getElementById( bookmark.StartId ) ;
257
+ var eEndSpan = oDoc.getElementById( bookmark.EndId ) ;
258
+
259
+ this.SetStart( eStartSpan, 3 ) ;
260
+
261
+ if ( !preserveBookmark )
262
+ FCKDomTools.RemoveNode( eStartSpan ) ;
263
+
264
+ // If collapsed, the start span will not be available.
265
+ if ( eEndSpan )
266
+ {
267
+ this.SetEnd( eEndSpan, 3 ) ;
268
+
269
+ if ( !preserveBookmark )
270
+ FCKDomTools.RemoveNode( eEndSpan ) ;
271
+ }
272
+ else
273
+ this.Collapse( true ) ;
274
+ },
275
+
276
+ /*
277
+ * Moves the position of the start boundary of the range to a specific position
278
+ * relatively to a element.
279
+ * @position:
280
+ * 1 = After Start <target>^contents</target>
281
+ * 2 = Before End <target>contents^</target>
282
+ * 3 = Before Start ^<target>contents</target>
283
+ * 4 = After End <target>contents</target>^
284
+ */
285
+ SetStart : function( targetElement, position )
286
+ {
287
+ var oRange = this._Range ;
288
+ if ( !oRange )
289
+ oRange = this._Range = this.CreateRange() ;
290
+
291
+ switch( position )
292
+ {
293
+ case 1 : // After Start <target>^contents</target>
294
+ oRange.setStart( targetElement, 0 ) ;
295
+ break ;
296
+
297
+ case 2 : // Before End <target>contents^</target>
298
+ oRange.setStart( targetElement, targetElement.childNodes.length ) ;
299
+ break ;
300
+
301
+ case 3 : // Before Start ^<target>contents</target>
302
+ oRange.setStartBefore( targetElement ) ;
303
+ break ;
304
+
305
+ case 4 : // After End <target>contents</target>^
306
+ oRange.setStartAfter( targetElement ) ;
307
+ }
308
+ this._UpdateElementInfo() ;
309
+ },
310
+
311
+ /*
312
+ * Moves the position of the start boundary of the range to a specific position
313
+ * relatively to a element.
314
+ * @position:
315
+ * 1 = After Start <target>^contents</target>
316
+ * 2 = Before End <target>contents^</target>
317
+ * 3 = Before Start ^<target>contents</target>
318
+ * 4 = After End <target>contents</target>^
319
+ */
320
+ SetEnd : function( targetElement, position )
321
+ {
322
+ var oRange = this._Range ;
323
+ if ( !oRange )
324
+ oRange = this._Range = this.CreateRange() ;
325
+
326
+ switch( position )
327
+ {
328
+ case 1 : // After Start <target>^contents</target>
329
+ oRange.setEnd( targetElement, 0 ) ;
330
+ break ;
331
+
332
+ case 2 : // Before End <target>contents^</target>
333
+ oRange.setEnd( targetElement, targetElement.childNodes.length ) ;
334
+ break ;
335
+
336
+ case 3 : // Before Start ^<target>contents</target>
337
+ oRange.setEndBefore( targetElement ) ;
338
+ break ;
339
+
340
+ case 4 : // After End <target>contents</target>^
341
+ oRange.setEndAfter( targetElement ) ;
342
+ }
343
+ this._UpdateElementInfo() ;
344
+ },
345
+
346
+ Expand : function( unit )
347
+ {
348
+ var oNode, oSibling ;
349
+
350
+ switch ( unit )
351
+ {
352
+ case 'block_contents' :
353
+ if ( this.StartBlock )
354
+ this.SetStart( this.StartBlock, 1 ) ;
355
+ else
356
+ {
357
+ // Get the start node for the current range.
358
+ oNode = this._Range.startContainer ;
359
+
360
+ // If it is an element, get the current child node for the range (in the offset).
361
+ // If the offset node is not available, the the first one.
362
+ if ( oNode.nodeType == 1 )
363
+ {
364
+ if ( !( oNode = oNode.childNodes[ this._Range.startOffset ] ) )
365
+ oNode = oNode.firstChild ;
366
+ }
367
+
368
+ // Not able to defined the current position.
369
+ if ( !oNode )
370
+ return ;
371
+
372
+ // We must look for the left boundary, relative to the range
373
+ // start, which is limited by a block element.
374
+ while ( true )
375
+ {
376
+ oSibling = oNode.previousSibling ;
377
+
378
+ if ( !oSibling )
379
+ {
380
+ // Continue if we are not yet in the block limit (inside a <b>, for example).
381
+ if ( oNode.parentNode != this.StartBlockLimit )
382
+ oNode = oNode.parentNode ;
383
+ else
384
+ break ;
385
+ }
386
+ else if ( oSibling.nodeType != 1 || !(/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/).test( oSibling.nodeName.toUpperCase() ) )
387
+ {
388
+ // Continue if the sibling is not a block tag.
389
+ oNode = oSibling ;
390
+ }
391
+ else
392
+ break ;
393
+ }
394
+
395
+ this._Range.setStartBefore( oNode ) ;
396
+ }
397
+
398
+ if ( this.EndBlock )
399
+ this.SetEnd( this.EndBlock, 2 ) ;
400
+ else
401
+ {
402
+ oNode = this._Range.endContainer ;
403
+ if ( oNode.nodeType == 1 )
404
+ oNode = oNode.childNodes[ this._Range.endOffset ] || oNode.lastChild ;
405
+
406
+ if ( !oNode )
407
+ return ;
408
+
409
+ // We must look for the right boundary, relative to the range
410
+ // end, which is limited by a block element.
411
+ while ( true )
412
+ {
413
+ oSibling = oNode.nextSibling ;
414
+
415
+ if ( !oSibling )
416
+ {
417
+ // Continue if we are not yet in the block limit (inide a <b>, for example).
418
+ if ( oNode.parentNode != this.EndBlockLimit )
419
+ oNode = oNode.parentNode ;
420
+ else
421
+ break ;
422
+ }
423
+ else if ( oSibling.nodeType != 1 || !(/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/).test( oSibling.nodeName.toUpperCase() ) )
424
+ {
425
+ // Continue if the sibling is not a block tag.
426
+ oNode = oSibling ;
427
+ }
428
+ else
429
+ break ;
430
+ }
431
+
432
+ this._Range.setEndAfter( oNode ) ;
433
+ }
434
+
435
+ this._UpdateElementInfo() ;
436
+ }
437
+ },
438
+
439
+ Release : function( preserveWindow )
440
+ {
441
+ if ( !preserveWindow )
442
+ this.Window = null ;
443
+
444
+ this.StartContainer = null ;
445
+ this.StartBlock = null ;
446
+ this.StartBlockLimit = null ;
447
+ this.EndContainer = null ;
448
+ this.EndBlock = null ;
449
+ this.EndBlockLimit = null ;
450
+ this._Range = null ;
451
+ }
452
+ } ;