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