ckeditor-jess 3.4.3

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 (680) hide show
  1. data/README.rdoc +161 -0
  2. data/Rakefile +45 -0
  3. data/app/controllers/ckeditor_controller.rb +85 -0
  4. data/app/helpers/ckeditor_helper.rb +38 -0
  5. data/app/views/ckeditor/_asset.html.erb +15 -0
  6. data/app/views/ckeditor/_swfupload.html.erb +51 -0
  7. data/app/views/ckeditor/files.html.erb +91 -0
  8. data/app/views/ckeditor/images.html.erb +91 -0
  9. data/app/views/layouts/ckeditor.html.erb +29 -0
  10. data/config/routes.rb +5 -0
  11. data/examples/migrations/attachment_fu/create_assets.rb +30 -0
  12. data/examples/migrations/paperclip/create_assets.rb +25 -0
  13. data/examples/models/attachment_fu/asset.rb +45 -0
  14. data/examples/models/attachment_fu/attachment_file.rb +46 -0
  15. data/examples/models/attachment_fu/picture.rb +46 -0
  16. data/examples/models/paperclip/asset.rb +65 -0
  17. data/examples/models/paperclip/attachment_file.rb +22 -0
  18. data/examples/models/paperclip/picture.rb +39 -0
  19. data/examples/s3/attachment_file.rb +23 -0
  20. data/examples/s3/picture.rb +41 -0
  21. data/examples/s3/s3.yml +2 -0
  22. data/generators/ckeditor_install/USAGE +7 -0
  23. data/generators/ckeditor_install/ckeditor_install_generator.rb +28 -0
  24. data/generators/ckeditor_install/templates/README +0 -0
  25. data/generators/ckeditor_install/templates/ckeditor.rb +56 -0
  26. data/generators/ckeditor_install/templates/ckeditor/CHANGES.html +993 -0
  27. data/generators/ckeditor_install/templates/ckeditor/INSTALL.html +92 -0
  28. data/generators/ckeditor_install/templates/ckeditor/LICENSE.html +1334 -0
  29. data/generators/ckeditor_install/templates/ckeditor/_samples/ajax.html +87 -0
  30. data/generators/ckeditor_install/templates/ckeditor/_samples/api.html +152 -0
  31. data/generators/ckeditor_install/templates/ckeditor/_samples/api_dialog.html +188 -0
  32. data/generators/ckeditor_install/templates/ckeditor/_samples/api_dialog/my_dialog.js +28 -0
  33. data/generators/ckeditor_install/templates/ckeditor/_samples/asp/advanced.asp +105 -0
  34. data/generators/ckeditor_install/templates/ckeditor/_samples/asp/events.asp +136 -0
  35. data/generators/ckeditor_install/templates/ckeditor/_samples/asp/index.html +103 -0
  36. data/generators/ckeditor_install/templates/ckeditor/_samples/asp/replace.asp +72 -0
  37. data/generators/ckeditor_install/templates/ckeditor/_samples/asp/replaceall.asp +77 -0
  38. data/generators/ckeditor_install/templates/ckeditor/_samples/asp/sample_posteddata.asp +46 -0
  39. data/generators/ckeditor_install/templates/ckeditor/_samples/asp/standalone.asp +72 -0
  40. data/generators/ckeditor_install/templates/ckeditor/_samples/assets/output_for_flash.fla +0 -0
  41. data/generators/ckeditor_install/templates/ckeditor/_samples/assets/output_for_flash.swf +0 -0
  42. data/generators/ckeditor_install/templates/ckeditor/_samples/assets/output_xhtml.css +204 -0
  43. data/generators/ckeditor_install/templates/ckeditor/_samples/assets/swfobject.js +18 -0
  44. data/generators/ckeditor_install/templates/ckeditor/_samples/autogrow.html +75 -0
  45. data/generators/ckeditor_install/templates/ckeditor/_samples/divreplace.html +137 -0
  46. data/generators/ckeditor_install/templates/ckeditor/_samples/enterkey.html +88 -0
  47. data/generators/ckeditor_install/templates/ckeditor/_samples/fullpage.html +62 -0
  48. data/generators/ckeditor_install/templates/ckeditor/_samples/index.html +57 -0
  49. data/generators/ckeditor_install/templates/ckeditor/_samples/jqueryadapter.html +73 -0
  50. data/generators/ckeditor_install/templates/ckeditor/_samples/output_for_flash.html +257 -0
  51. data/generators/ckeditor_install/templates/ckeditor/_samples/output_html.html +259 -0
  52. data/generators/ckeditor_install/templates/ckeditor/_samples/output_xhtml.html +159 -0
  53. data/generators/ckeditor_install/templates/ckeditor/_samples/php/advanced.php +93 -0
  54. data/generators/ckeditor_install/templates/ckeditor/_samples/php/events.php +130 -0
  55. data/generators/ckeditor_install/templates/ckeditor/_samples/php/replace.php +63 -0
  56. data/generators/ckeditor_install/templates/ckeditor/_samples/php/replaceall.php +68 -0
  57. data/generators/ckeditor_install/templates/ckeditor/_samples/php/standalone.php +64 -0
  58. data/generators/ckeditor_install/templates/ckeditor/_samples/replacebyclass.html +49 -0
  59. data/generators/ckeditor_install/templates/ckeditor/_samples/replacebycode.html +80 -0
  60. data/generators/ckeditor_install/templates/ckeditor/_samples/sample.css +81 -0
  61. data/generators/ckeditor_install/templates/ckeditor/_samples/sample.js +65 -0
  62. data/generators/ckeditor_install/templates/ckeditor/_samples/sample_posteddata.php +59 -0
  63. data/generators/ckeditor_install/templates/ckeditor/_samples/sharedspaces.html +131 -0
  64. data/generators/ckeditor_install/templates/ckeditor/_samples/skins.html +83 -0
  65. data/generators/ckeditor_install/templates/ckeditor/_samples/ui_color.html +87 -0
  66. data/generators/ckeditor_install/templates/ckeditor/_samples/ui_languages.html +103 -0
  67. data/generators/ckeditor_install/templates/ckeditor/_source/adapters/jquery.js +297 -0
  68. data/generators/ckeditor_install/templates/ckeditor/_source/core/_bootstrap.js +96 -0
  69. data/generators/ckeditor_install/templates/ckeditor/_source/core/ajax.js +142 -0
  70. data/generators/ckeditor_install/templates/ckeditor/_source/core/ckeditor.js +133 -0
  71. data/generators/ckeditor_install/templates/ckeditor/_source/core/ckeditor_base.js +196 -0
  72. data/generators/ckeditor_install/templates/ckeditor/_source/core/ckeditor_basic.js +239 -0
  73. data/generators/ckeditor_install/templates/ckeditor/_source/core/command.js +209 -0
  74. data/generators/ckeditor_install/templates/ckeditor/_source/core/commanddefinition.js +129 -0
  75. data/generators/ckeditor_install/templates/ckeditor/_source/core/config.js +430 -0
  76. data/generators/ckeditor_install/templates/ckeditor/_source/core/dataprocessor.js +65 -0
  77. data/generators/ckeditor_install/templates/ckeditor/_source/core/dom.js +20 -0
  78. data/generators/ckeditor_install/templates/ckeditor/_source/core/dom/comment.js +32 -0
  79. data/generators/ckeditor_install/templates/ckeditor/_source/core/dom/document.js +224 -0
  80. data/generators/ckeditor_install/templates/ckeditor/_source/core/dom/documentfragment.js +49 -0
  81. data/generators/ckeditor_install/templates/ckeditor/_source/core/dom/domobject.js +255 -0
  82. data/generators/ckeditor_install/templates/ckeditor/_source/core/dom/element.js +1564 -0
  83. data/generators/ckeditor_install/templates/ckeditor/_source/core/dom/elementpath.js +119 -0
  84. data/generators/ckeditor_install/templates/ckeditor/_source/core/dom/event.js +142 -0
  85. data/generators/ckeditor_install/templates/ckeditor/_source/core/dom/node.js +683 -0
  86. data/generators/ckeditor_install/templates/ckeditor/_source/core/dom/nodelist.js +26 -0
  87. data/generators/ckeditor_install/templates/ckeditor/_source/core/dom/range.js +1883 -0
  88. data/generators/ckeditor_install/templates/ckeditor/_source/core/dom/rangelist.js +214 -0
  89. data/generators/ckeditor_install/templates/ckeditor/_source/core/dom/text.js +123 -0
  90. data/generators/ckeditor_install/templates/ckeditor/_source/core/dom/walker.js +445 -0
  91. data/generators/ckeditor_install/templates/ckeditor/_source/core/dom/window.js +96 -0
  92. data/generators/ckeditor_install/templates/ckeditor/_source/core/dtd.js +238 -0
  93. data/generators/ckeditor_install/templates/ckeditor/_source/core/editor.js +924 -0
  94. data/generators/ckeditor_install/templates/ckeditor/_source/core/editor_basic.js +182 -0
  95. data/generators/ckeditor_install/templates/ckeditor/_source/core/env.js +270 -0
  96. data/generators/ckeditor_install/templates/ckeditor/_source/core/event.js +342 -0
  97. data/generators/ckeditor_install/templates/ckeditor/_source/core/eventInfo.js +120 -0
  98. data/generators/ckeditor_install/templates/ckeditor/_source/core/focusmanager.js +152 -0
  99. data/generators/ckeditor_install/templates/ckeditor/_source/core/htmlparser.js +224 -0
  100. data/generators/ckeditor_install/templates/ckeditor/_source/core/htmlparser/basicwriter.js +145 -0
  101. data/generators/ckeditor_install/templates/ckeditor/_source/core/htmlparser/cdata.js +43 -0
  102. data/generators/ckeditor_install/templates/ckeditor/_source/core/htmlparser/comment.js +60 -0
  103. data/generators/ckeditor_install/templates/ckeditor/_source/core/htmlparser/element.js +240 -0
  104. data/generators/ckeditor_install/templates/ckeditor/_source/core/htmlparser/filter.js +288 -0
  105. data/generators/ckeditor_install/templates/ckeditor/_source/core/htmlparser/fragment.js +504 -0
  106. data/generators/ckeditor_install/templates/ckeditor/_source/core/htmlparser/text.js +55 -0
  107. data/generators/ckeditor_install/templates/ckeditor/_source/core/imagecacher.js +80 -0
  108. data/generators/ckeditor_install/templates/ckeditor/_source/core/lang.js +156 -0
  109. data/generators/ckeditor_install/templates/ckeditor/_source/core/loader.js +243 -0
  110. data/generators/ckeditor_install/templates/ckeditor/_source/core/plugindefinition.js +66 -0
  111. data/generators/ckeditor_install/templates/ckeditor/_source/core/plugins.js +85 -0
  112. data/generators/ckeditor_install/templates/ckeditor/_source/core/resourcemanager.js +238 -0
  113. data/generators/ckeditor_install/templates/ckeditor/_source/core/scriptloader.js +200 -0
  114. data/generators/ckeditor_install/templates/ckeditor/_source/core/skins.js +212 -0
  115. data/generators/ckeditor_install/templates/ckeditor/_source/core/themes.js +19 -0
  116. data/generators/ckeditor_install/templates/ckeditor/_source/core/tools.js +734 -0
  117. data/generators/ckeditor_install/templates/ckeditor/_source/core/ui.js +116 -0
  118. data/generators/ckeditor_install/templates/ckeditor/_source/core/xml.js +165 -0
  119. data/generators/ckeditor_install/templates/ckeditor/_source/lang/_languages.js +83 -0
  120. data/generators/ckeditor_install/templates/ckeditor/_source/lang/_translationstatus.txt +60 -0
  121. data/generators/ckeditor_install/templates/ckeditor/_source/lang/af.js +758 -0
  122. data/generators/ckeditor_install/templates/ckeditor/_source/lang/ar.js +758 -0
  123. data/generators/ckeditor_install/templates/ckeditor/_source/lang/bg.js +758 -0
  124. data/generators/ckeditor_install/templates/ckeditor/_source/lang/bn.js +758 -0
  125. data/generators/ckeditor_install/templates/ckeditor/_source/lang/bs.js +758 -0
  126. data/generators/ckeditor_install/templates/ckeditor/_source/lang/ca.js +758 -0
  127. data/generators/ckeditor_install/templates/ckeditor/_source/lang/cs.js +758 -0
  128. data/generators/ckeditor_install/templates/ckeditor/_source/lang/cy.js +758 -0
  129. data/generators/ckeditor_install/templates/ckeditor/_source/lang/da.js +758 -0
  130. data/generators/ckeditor_install/templates/ckeditor/_source/lang/de.js +758 -0
  131. data/generators/ckeditor_install/templates/ckeditor/_source/lang/el.js +758 -0
  132. data/generators/ckeditor_install/templates/ckeditor/_source/lang/en-au.js +758 -0
  133. data/generators/ckeditor_install/templates/ckeditor/_source/lang/en-ca.js +758 -0
  134. data/generators/ckeditor_install/templates/ckeditor/_source/lang/en-gb.js +758 -0
  135. data/generators/ckeditor_install/templates/ckeditor/_source/lang/en.js +758 -0
  136. data/generators/ckeditor_install/templates/ckeditor/_source/lang/eo.js +758 -0
  137. data/generators/ckeditor_install/templates/ckeditor/_source/lang/es.js +758 -0
  138. data/generators/ckeditor_install/templates/ckeditor/_source/lang/et.js +758 -0
  139. data/generators/ckeditor_install/templates/ckeditor/_source/lang/eu.js +758 -0
  140. data/generators/ckeditor_install/templates/ckeditor/_source/lang/fa.js +758 -0
  141. data/generators/ckeditor_install/templates/ckeditor/_source/lang/fi.js +758 -0
  142. data/generators/ckeditor_install/templates/ckeditor/_source/lang/fo.js +758 -0
  143. data/generators/ckeditor_install/templates/ckeditor/_source/lang/fr-ca.js +758 -0
  144. data/generators/ckeditor_install/templates/ckeditor/_source/lang/fr.js +758 -0
  145. data/generators/ckeditor_install/templates/ckeditor/_source/lang/gl.js +758 -0
  146. data/generators/ckeditor_install/templates/ckeditor/_source/lang/gu.js +758 -0
  147. data/generators/ckeditor_install/templates/ckeditor/_source/lang/he.js +758 -0
  148. data/generators/ckeditor_install/templates/ckeditor/_source/lang/hi.js +758 -0
  149. data/generators/ckeditor_install/templates/ckeditor/_source/lang/hr.js +758 -0
  150. data/generators/ckeditor_install/templates/ckeditor/_source/lang/hu.js +758 -0
  151. data/generators/ckeditor_install/templates/ckeditor/_source/lang/is.js +758 -0
  152. data/generators/ckeditor_install/templates/ckeditor/_source/lang/it.js +758 -0
  153. data/generators/ckeditor_install/templates/ckeditor/_source/lang/ja.js +758 -0
  154. data/generators/ckeditor_install/templates/ckeditor/_source/lang/km.js +758 -0
  155. data/generators/ckeditor_install/templates/ckeditor/_source/lang/ko.js +758 -0
  156. data/generators/ckeditor_install/templates/ckeditor/_source/lang/lt.js +758 -0
  157. data/generators/ckeditor_install/templates/ckeditor/_source/lang/lv.js +758 -0
  158. data/generators/ckeditor_install/templates/ckeditor/_source/lang/mn.js +758 -0
  159. data/generators/ckeditor_install/templates/ckeditor/_source/lang/ms.js +758 -0
  160. data/generators/ckeditor_install/templates/ckeditor/_source/lang/nb.js +758 -0
  161. data/generators/ckeditor_install/templates/ckeditor/_source/lang/nl.js +758 -0
  162. data/generators/ckeditor_install/templates/ckeditor/_source/lang/no.js +758 -0
  163. data/generators/ckeditor_install/templates/ckeditor/_source/lang/pl.js +758 -0
  164. data/generators/ckeditor_install/templates/ckeditor/_source/lang/pt-br.js +757 -0
  165. data/generators/ckeditor_install/templates/ckeditor/_source/lang/pt.js +758 -0
  166. data/generators/ckeditor_install/templates/ckeditor/_source/lang/ro.js +758 -0
  167. data/generators/ckeditor_install/templates/ckeditor/_source/lang/ru.js +758 -0
  168. data/generators/ckeditor_install/templates/ckeditor/_source/lang/sk.js +758 -0
  169. data/generators/ckeditor_install/templates/ckeditor/_source/lang/sl.js +758 -0
  170. data/generators/ckeditor_install/templates/ckeditor/_source/lang/sr-latn.js +758 -0
  171. data/generators/ckeditor_install/templates/ckeditor/_source/lang/sr.js +758 -0
  172. data/generators/ckeditor_install/templates/ckeditor/_source/lang/sv.js +758 -0
  173. data/generators/ckeditor_install/templates/ckeditor/_source/lang/th.js +758 -0
  174. data/generators/ckeditor_install/templates/ckeditor/_source/lang/tr.js +757 -0
  175. data/generators/ckeditor_install/templates/ckeditor/_source/lang/uk.js +758 -0
  176. data/generators/ckeditor_install/templates/ckeditor/_source/lang/vi.js +758 -0
  177. data/generators/ckeditor_install/templates/ckeditor/_source/lang/zh-cn.js +758 -0
  178. data/generators/ckeditor_install/templates/ckeditor/_source/lang/zh.js +758 -0
  179. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/a11yhelp/dialogs/a11yhelp.js +211 -0
  180. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/a11yhelp/lang/en.js +108 -0
  181. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/a11yhelp/lang/he.js +216 -0
  182. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/a11yhelp/plugin.js +46 -0
  183. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/about/dialogs/about.js +73 -0
  184. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/about/dialogs/logo_ckeditor.png +0 -0
  185. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/about/plugin.js +23 -0
  186. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/ajax_save/plugin.js +43 -0
  187. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/attachment/dialogs/attachment.js +384 -0
  188. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/attachment/images/attachment.png +0 -0
  189. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/attachment/lang/en.js +10 -0
  190. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/attachment/lang/ru.js +10 -0
  191. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/attachment/lang/uk.js +10 -0
  192. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/attachment/plugin.js +44 -0
  193. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/autogrow/plugin.js +86 -0
  194. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/basicstyles/plugin.js +101 -0
  195. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/bidi/plugin.js +259 -0
  196. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/blockquote/plugin.js +301 -0
  197. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/button/plugin.js +277 -0
  198. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/clipboard/dialogs/paste.js +205 -0
  199. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/clipboard/plugin.js +412 -0
  200. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/colorbutton/plugin.js +250 -0
  201. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/colordialog/dialogs/colordialog.js +336 -0
  202. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/colordialog/plugin.js +13 -0
  203. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/contextmenu/plugin.js +290 -0
  204. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/dialog/dialogDefinition.js +315 -0
  205. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/dialog/plugin.js +3015 -0
  206. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/dialogadvtab/plugin.js +213 -0
  207. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/dialogui/plugin.js +1523 -0
  208. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/div/dialogs/div.js +535 -0
  209. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/div/plugin.js +121 -0
  210. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/domiterator/plugin.js +356 -0
  211. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/editingblock/plugin.js +229 -0
  212. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/elementspath/plugin.js +206 -0
  213. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/embed/dialogs/embed.js +65 -0
  214. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/embed/images/embed.png +0 -0
  215. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/embed/lang/en.js +9 -0
  216. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/embed/lang/ru.js +9 -0
  217. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/embed/lang/uk.js +9 -0
  218. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/embed/plugin.js +43 -0
  219. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/enterkey/plugin.js +363 -0
  220. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/entities/plugin.js +226 -0
  221. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/fakeobjects/plugin.js +122 -0
  222. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/filebrowser/plugin.js +501 -0
  223. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/find/dialogs/find.js +890 -0
  224. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/find/plugin.js +46 -0
  225. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/flash/dialogs/flash.js +698 -0
  226. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/flash/images/placeholder.png +0 -0
  227. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/flash/plugin.js +168 -0
  228. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/floatpanel/plugin.js +402 -0
  229. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/font/plugin.js +234 -0
  230. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/format/plugin.js +194 -0
  231. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/forms/dialogs/button.js +135 -0
  232. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/forms/dialogs/checkbox.js +153 -0
  233. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/forms/dialogs/form.js +177 -0
  234. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/forms/dialogs/hiddenfield.js +98 -0
  235. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/forms/dialogs/radio.js +135 -0
  236. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/forms/dialogs/select.js +556 -0
  237. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/forms/dialogs/textarea.js +114 -0
  238. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/forms/dialogs/textfield.js +199 -0
  239. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/forms/images/hiddenfield.gif +0 -0
  240. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/forms/plugin.js +284 -0
  241. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/horizontalrule/plugin.js +36 -0
  242. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/htmldataprocessor/plugin.js +502 -0
  243. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/htmlwriter/plugin.js +319 -0
  244. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/iframedialog/plugin.js +136 -0
  245. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/image/dialogs/image.js +1396 -0
  246. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/image/plugin.js +81 -0
  247. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/indent/plugin.js +455 -0
  248. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/justify/plugin.js +221 -0
  249. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/keystrokes/plugin.js +225 -0
  250. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/link/dialogs/anchor.js +99 -0
  251. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/link/dialogs/link.js +1424 -0
  252. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/link/images/anchor.gif +0 -0
  253. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/link/plugin.js +238 -0
  254. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/list/plugin.js +710 -0
  255. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/listblock/plugin.js +257 -0
  256. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/liststyle/dialogs/liststyle.js +204 -0
  257. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/liststyle/plugin.js +66 -0
  258. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/maximize/plugin.js +350 -0
  259. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/menu/plugin.js +408 -0
  260. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/menubutton/plugin.js +94 -0
  261. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/newpage/plugin.js +53 -0
  262. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/pagebreak/images/pagebreak.gif +0 -0
  263. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/pagebreak/plugin.js +121 -0
  264. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/panel/plugin.js +399 -0
  265. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/panelbutton/plugin.js +147 -0
  266. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/pastefromword/filter/default.js +1170 -0
  267. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/pastefromword/plugin.js +122 -0
  268. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/pastetext/dialogs/pastetext.js +70 -0
  269. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/pastetext/plugin.js +145 -0
  270. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/popup/plugin.js +64 -0
  271. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/preview/plugin.js +108 -0
  272. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/print/plugin.js +41 -0
  273. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/removeformat/plugin.js +184 -0
  274. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/resize/plugin.js +157 -0
  275. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/richcombo/plugin.js +370 -0
  276. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/save/plugin.js +55 -0
  277. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/scayt/dialogs/options.js +534 -0
  278. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/scayt/dialogs/toolbar.css +71 -0
  279. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/scayt/plugin.js +945 -0
  280. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/selection/plugin.js +1375 -0
  281. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/showblocks/images/block_address.png +0 -0
  282. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/showblocks/images/block_blockquote.png +0 -0
  283. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/showblocks/images/block_div.png +0 -0
  284. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/showblocks/images/block_h1.png +0 -0
  285. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/showblocks/images/block_h2.png +0 -0
  286. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/showblocks/images/block_h3.png +0 -0
  287. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/showblocks/images/block_h4.png +0 -0
  288. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/showblocks/images/block_h5.png +0 -0
  289. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/showblocks/images/block_h6.png +0 -0
  290. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/showblocks/images/block_p.png +0 -0
  291. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/showblocks/images/block_pre.png +0 -0
  292. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/showblocks/plugin.js +155 -0
  293. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/showborders/plugin.js +201 -0
  294. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/smiley/dialogs/smiley.js +218 -0
  295. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/smiley/images/angel_smile.gif +0 -0
  296. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/smiley/images/angry_smile.gif +0 -0
  297. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/smiley/images/broken_heart.gif +0 -0
  298. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/smiley/images/confused_smile.gif +0 -0
  299. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/smiley/images/cry_smile.gif +0 -0
  300. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/smiley/images/devil_smile.gif +0 -0
  301. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/smiley/images/embaressed_smile.gif +0 -0
  302. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/smiley/images/envelope.gif +0 -0
  303. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/smiley/images/heart.gif +0 -0
  304. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/smiley/images/kiss.gif +0 -0
  305. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/smiley/images/lightbulb.gif +0 -0
  306. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/smiley/images/omg_smile.gif +0 -0
  307. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/smiley/images/regular_smile.gif +0 -0
  308. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/smiley/images/sad_smile.gif +0 -0
  309. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/smiley/images/shades_smile.gif +0 -0
  310. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/smiley/images/teeth_smile.gif +0 -0
  311. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/smiley/images/thumbs_down.gif +0 -0
  312. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/smiley/images/thumbs_up.gif +0 -0
  313. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/smiley/images/tounge_smile.gif +0 -0
  314. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  315. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/smiley/images/wink_smile.gif +0 -0
  316. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/smiley/plugin.js +94 -0
  317. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/sourcearea/plugin.js +207 -0
  318. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/specialchar/dialogs/specialchar.js +409 -0
  319. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/specialchar/plugin.js +29 -0
  320. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/styles/plugin.js +1479 -0
  321. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/styles/styles/default.js +88 -0
  322. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/stylescombo/plugin.js +206 -0
  323. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/tab/plugin.js +367 -0
  324. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/table/dialogs/table.js +672 -0
  325. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/table/plugin.js +78 -0
  326. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/tableresize/plugin.js +450 -0
  327. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/tabletools/dialogs/tableCell.js +533 -0
  328. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/tabletools/plugin.js +1120 -0
  329. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/templates/dialogs/templates.js +233 -0
  330. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/templates/plugin.js +99 -0
  331. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/templates/templates/default.js +94 -0
  332. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/templates/templates/images/template1.gif +0 -0
  333. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/templates/templates/images/template2.gif +0 -0
  334. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/templates/templates/images/template3.gif +0 -0
  335. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/toolbar/plugin.js +481 -0
  336. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/uicolor/dialogs/uicolor.js +205 -0
  337. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/uicolor/lang/en.js +15 -0
  338. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/uicolor/lang/he.js +15 -0
  339. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/uicolor/plugin.js +37 -0
  340. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/uicolor/uicolor.gif +0 -0
  341. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  342. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  343. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  344. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  345. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/uicolor/yui/assets/yui.css +15 -0
  346. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/uicolor/yui/yui.js +71 -0
  347. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/undo/plugin.js +554 -0
  348. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/wsc/dialogs/ciframe.html +49 -0
  349. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/wsc/dialogs/tmpFrameset.html +52 -0
  350. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/wsc/dialogs/wsc.css +82 -0
  351. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/wsc/dialogs/wsc.js +176 -0
  352. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/wsc/plugin.js +33 -0
  353. data/generators/ckeditor_install/templates/ckeditor/_source/plugins/wysiwygarea/plugin.js +1146 -0
  354. data/generators/ckeditor_install/templates/ckeditor/_source/skins/kama/dialog.css +882 -0
  355. data/generators/ckeditor_install/templates/ckeditor/_source/skins/kama/editor.css +25 -0
  356. data/generators/ckeditor_install/templates/ckeditor/_source/skins/kama/elementspath.css +73 -0
  357. data/generators/ckeditor_install/templates/ckeditor/_source/skins/kama/icons.css +357 -0
  358. data/generators/ckeditor_install/templates/ckeditor/_source/skins/kama/icons.png +0 -0
  359. data/generators/ckeditor_install/templates/ckeditor/_source/skins/kama/icons_rtl.png +0 -0
  360. data/generators/ckeditor_install/templates/ckeditor/_source/skins/kama/images/dialog_sides.gif +0 -0
  361. data/generators/ckeditor_install/templates/ckeditor/_source/skins/kama/images/dialog_sides.png +0 -0
  362. data/generators/ckeditor_install/templates/ckeditor/_source/skins/kama/images/dialog_sides_rtl.png +0 -0
  363. data/generators/ckeditor_install/templates/ckeditor/_source/skins/kama/images/mini.gif +0 -0
  364. data/generators/ckeditor_install/templates/ckeditor/_source/skins/kama/images/noimage.png +0 -0
  365. data/generators/ckeditor_install/templates/ckeditor/_source/skins/kama/images/sprites.png +0 -0
  366. data/generators/ckeditor_install/templates/ckeditor/_source/skins/kama/images/sprites_ie6.png +0 -0
  367. data/generators/ckeditor_install/templates/ckeditor/_source/skins/kama/images/toolbar_start.gif +0 -0
  368. data/generators/ckeditor_install/templates/ckeditor/_source/skins/kama/mainui.css +195 -0
  369. data/generators/ckeditor_install/templates/ckeditor/_source/skins/kama/menu.css +216 -0
  370. data/generators/ckeditor_install/templates/ckeditor/_source/skins/kama/panel.css +217 -0
  371. data/generators/ckeditor_install/templates/ckeditor/_source/skins/kama/presets.css +49 -0
  372. data/generators/ckeditor_install/templates/ckeditor/_source/skins/kama/reset.css +84 -0
  373. data/generators/ckeditor_install/templates/ckeditor/_source/skins/kama/richcombo.css +277 -0
  374. data/generators/ckeditor_install/templates/ckeditor/_source/skins/kama/skin.js +268 -0
  375. data/generators/ckeditor_install/templates/ckeditor/_source/skins/kama/templates.css +88 -0
  376. data/generators/ckeditor_install/templates/ckeditor/_source/skins/kama/toolbar.css +409 -0
  377. data/generators/ckeditor_install/templates/ckeditor/_source/skins/office2003/dialog.css +785 -0
  378. data/generators/ckeditor_install/templates/ckeditor/_source/skins/office2003/editor.css +25 -0
  379. data/generators/ckeditor_install/templates/ckeditor/_source/skins/office2003/elementspath.css +74 -0
  380. data/generators/ckeditor_install/templates/ckeditor/_source/skins/office2003/icons.css +354 -0
  381. data/generators/ckeditor_install/templates/ckeditor/_source/skins/office2003/icons.png +0 -0
  382. data/generators/ckeditor_install/templates/ckeditor/_source/skins/office2003/icons_rtl.png +0 -0
  383. data/generators/ckeditor_install/templates/ckeditor/_source/skins/office2003/images/dialog_sides.gif +0 -0
  384. data/generators/ckeditor_install/templates/ckeditor/_source/skins/office2003/images/dialog_sides.png +0 -0
  385. data/generators/ckeditor_install/templates/ckeditor/_source/skins/office2003/images/dialog_sides_rtl.png +0 -0
  386. data/generators/ckeditor_install/templates/ckeditor/_source/skins/office2003/images/mini.gif +0 -0
  387. data/generators/ckeditor_install/templates/ckeditor/_source/skins/office2003/images/noimage.png +0 -0
  388. data/generators/ckeditor_install/templates/ckeditor/_source/skins/office2003/images/sprites.png +0 -0
  389. data/generators/ckeditor_install/templates/ckeditor/_source/skins/office2003/images/sprites_ie6.png +0 -0
  390. data/generators/ckeditor_install/templates/ckeditor/_source/skins/office2003/mainui.css +145 -0
  391. data/generators/ckeditor_install/templates/ckeditor/_source/skins/office2003/menu.css +213 -0
  392. data/generators/ckeditor_install/templates/ckeditor/_source/skins/office2003/panel.css +212 -0
  393. data/generators/ckeditor_install/templates/ckeditor/_source/skins/office2003/presets.css +49 -0
  394. data/generators/ckeditor_install/templates/ckeditor/_source/skins/office2003/reset.css +84 -0
  395. data/generators/ckeditor_install/templates/ckeditor/_source/skins/office2003/richcombo.css +297 -0
  396. data/generators/ckeditor_install/templates/ckeditor/_source/skins/office2003/skin.js +81 -0
  397. data/generators/ckeditor_install/templates/ckeditor/_source/skins/office2003/templates.css +87 -0
  398. data/generators/ckeditor_install/templates/ckeditor/_source/skins/office2003/toolbar.css +470 -0
  399. data/generators/ckeditor_install/templates/ckeditor/_source/skins/v2/dialog.css +800 -0
  400. data/generators/ckeditor_install/templates/ckeditor/_source/skins/v2/editor.css +25 -0
  401. data/generators/ckeditor_install/templates/ckeditor/_source/skins/v2/elementspath.css +74 -0
  402. data/generators/ckeditor_install/templates/ckeditor/_source/skins/v2/icons.css +354 -0
  403. data/generators/ckeditor_install/templates/ckeditor/_source/skins/v2/icons.png +0 -0
  404. data/generators/ckeditor_install/templates/ckeditor/_source/skins/v2/icons_rtl.png +0 -0
  405. data/generators/ckeditor_install/templates/ckeditor/_source/skins/v2/images/dialog_sides.gif +0 -0
  406. data/generators/ckeditor_install/templates/ckeditor/_source/skins/v2/images/dialog_sides.png +0 -0
  407. data/generators/ckeditor_install/templates/ckeditor/_source/skins/v2/images/dialog_sides_rtl.png +0 -0
  408. data/generators/ckeditor_install/templates/ckeditor/_source/skins/v2/images/mini.gif +0 -0
  409. data/generators/ckeditor_install/templates/ckeditor/_source/skins/v2/images/noimage.png +0 -0
  410. data/generators/ckeditor_install/templates/ckeditor/_source/skins/v2/images/sprites.png +0 -0
  411. data/generators/ckeditor_install/templates/ckeditor/_source/skins/v2/images/sprites_ie6.png +0 -0
  412. data/generators/ckeditor_install/templates/ckeditor/_source/skins/v2/images/toolbar_start.gif +0 -0
  413. data/generators/ckeditor_install/templates/ckeditor/_source/skins/v2/mainui.css +154 -0
  414. data/generators/ckeditor_install/templates/ckeditor/_source/skins/v2/menu.css +215 -0
  415. data/generators/ckeditor_install/templates/ckeditor/_source/skins/v2/panel.css +212 -0
  416. data/generators/ckeditor_install/templates/ckeditor/_source/skins/v2/presets.css +50 -0
  417. data/generators/ckeditor_install/templates/ckeditor/_source/skins/v2/reset.css +84 -0
  418. data/generators/ckeditor_install/templates/ckeditor/_source/skins/v2/richcombo.css +297 -0
  419. data/generators/ckeditor_install/templates/ckeditor/_source/skins/v2/skin.js +77 -0
  420. data/generators/ckeditor_install/templates/ckeditor/_source/skins/v2/templates.css +87 -0
  421. data/generators/ckeditor_install/templates/ckeditor/_source/skins/v2/toolbar.css +423 -0
  422. data/generators/ckeditor_install/templates/ckeditor/_source/themes/default/theme.js +361 -0
  423. data/generators/ckeditor_install/templates/ckeditor/adapters/jquery.js +6 -0
  424. data/generators/ckeditor_install/templates/ckeditor/ckeditor.js +137 -0
  425. data/generators/ckeditor_install/templates/ckeditor/ckeditor.pack +211 -0
  426. data/generators/ckeditor_install/templates/ckeditor/ckeditor_basic.js +8 -0
  427. data/generators/ckeditor_install/templates/ckeditor/ckeditor_basic_source.js +20 -0
  428. data/generators/ckeditor_install/templates/ckeditor/ckeditor_source.js +25 -0
  429. data/generators/ckeditor_install/templates/ckeditor/config.js +43 -0
  430. data/generators/ckeditor_install/templates/ckeditor/contents.css +39 -0
  431. data/generators/ckeditor_install/templates/ckeditor/css/ckfinder.css +299 -0
  432. data/generators/ckeditor_install/templates/ckeditor/css/fck_dialog.css +119 -0
  433. data/generators/ckeditor_install/templates/ckeditor/css/fck_editor.css +448 -0
  434. data/generators/ckeditor_install/templates/ckeditor/css/swfupload.css +94 -0
  435. data/generators/ckeditor_install/templates/ckeditor/images/add.gif +0 -0
  436. data/generators/ckeditor_install/templates/ckeditor/images/cancelbutton.gif +0 -0
  437. data/generators/ckeditor_install/templates/ckeditor/images/ckfnothumb.gif +0 -0
  438. data/generators/ckeditor_install/templates/ckeditor/images/doc.gif +0 -0
  439. data/generators/ckeditor_install/templates/ckeditor/images/mp3.gif +0 -0
  440. data/generators/ckeditor_install/templates/ckeditor/images/pdf.gif +0 -0
  441. data/generators/ckeditor_install/templates/ckeditor/images/rar.gif +0 -0
  442. data/generators/ckeditor_install/templates/ckeditor/images/refresh.gif +0 -0
  443. data/generators/ckeditor_install/templates/ckeditor/images/select_files.png +0 -0
  444. data/generators/ckeditor_install/templates/ckeditor/images/spacer.gif +0 -0
  445. data/generators/ckeditor_install/templates/ckeditor/images/swf.gif +0 -0
  446. data/generators/ckeditor_install/templates/ckeditor/images/toolbar.start.gif +0 -0
  447. data/generators/ckeditor_install/templates/ckeditor/images/xls.gif +0 -0
  448. data/generators/ckeditor_install/templates/ckeditor/lang/_languages.js +6 -0
  449. data/generators/ckeditor_install/templates/ckeditor/lang/_translationstatus.txt +60 -0
  450. data/generators/ckeditor_install/templates/ckeditor/lang/af.js +6 -0
  451. data/generators/ckeditor_install/templates/ckeditor/lang/ar.js +6 -0
  452. data/generators/ckeditor_install/templates/ckeditor/lang/bg.js +6 -0
  453. data/generators/ckeditor_install/templates/ckeditor/lang/bn.js +6 -0
  454. data/generators/ckeditor_install/templates/ckeditor/lang/bs.js +6 -0
  455. data/generators/ckeditor_install/templates/ckeditor/lang/ca.js +6 -0
  456. data/generators/ckeditor_install/templates/ckeditor/lang/cs.js +6 -0
  457. data/generators/ckeditor_install/templates/ckeditor/lang/cy.js +6 -0
  458. data/generators/ckeditor_install/templates/ckeditor/lang/da.js +6 -0
  459. data/generators/ckeditor_install/templates/ckeditor/lang/de.js +6 -0
  460. data/generators/ckeditor_install/templates/ckeditor/lang/el.js +6 -0
  461. data/generators/ckeditor_install/templates/ckeditor/lang/en-au.js +6 -0
  462. data/generators/ckeditor_install/templates/ckeditor/lang/en-ca.js +6 -0
  463. data/generators/ckeditor_install/templates/ckeditor/lang/en-gb.js +6 -0
  464. data/generators/ckeditor_install/templates/ckeditor/lang/en.js +6 -0
  465. data/generators/ckeditor_install/templates/ckeditor/lang/eo.js +6 -0
  466. data/generators/ckeditor_install/templates/ckeditor/lang/es.js +6 -0
  467. data/generators/ckeditor_install/templates/ckeditor/lang/et.js +6 -0
  468. data/generators/ckeditor_install/templates/ckeditor/lang/eu.js +6 -0
  469. data/generators/ckeditor_install/templates/ckeditor/lang/fa.js +6 -0
  470. data/generators/ckeditor_install/templates/ckeditor/lang/fi.js +6 -0
  471. data/generators/ckeditor_install/templates/ckeditor/lang/fo.js +6 -0
  472. data/generators/ckeditor_install/templates/ckeditor/lang/fr-ca.js +6 -0
  473. data/generators/ckeditor_install/templates/ckeditor/lang/fr.js +6 -0
  474. data/generators/ckeditor_install/templates/ckeditor/lang/gl.js +6 -0
  475. data/generators/ckeditor_install/templates/ckeditor/lang/gu.js +6 -0
  476. data/generators/ckeditor_install/templates/ckeditor/lang/he.js +6 -0
  477. data/generators/ckeditor_install/templates/ckeditor/lang/hi.js +6 -0
  478. data/generators/ckeditor_install/templates/ckeditor/lang/hr.js +6 -0
  479. data/generators/ckeditor_install/templates/ckeditor/lang/hu.js +6 -0
  480. data/generators/ckeditor_install/templates/ckeditor/lang/is.js +6 -0
  481. data/generators/ckeditor_install/templates/ckeditor/lang/it.js +6 -0
  482. data/generators/ckeditor_install/templates/ckeditor/lang/ja.js +6 -0
  483. data/generators/ckeditor_install/templates/ckeditor/lang/km.js +6 -0
  484. data/generators/ckeditor_install/templates/ckeditor/lang/ko.js +6 -0
  485. data/generators/ckeditor_install/templates/ckeditor/lang/lt.js +6 -0
  486. data/generators/ckeditor_install/templates/ckeditor/lang/lv.js +6 -0
  487. data/generators/ckeditor_install/templates/ckeditor/lang/mn.js +6 -0
  488. data/generators/ckeditor_install/templates/ckeditor/lang/ms.js +6 -0
  489. data/generators/ckeditor_install/templates/ckeditor/lang/nb.js +6 -0
  490. data/generators/ckeditor_install/templates/ckeditor/lang/nl.js +6 -0
  491. data/generators/ckeditor_install/templates/ckeditor/lang/no.js +6 -0
  492. data/generators/ckeditor_install/templates/ckeditor/lang/pl.js +6 -0
  493. data/generators/ckeditor_install/templates/ckeditor/lang/pt-br.js +6 -0
  494. data/generators/ckeditor_install/templates/ckeditor/lang/pt.js +6 -0
  495. data/generators/ckeditor_install/templates/ckeditor/lang/ro.js +6 -0
  496. data/generators/ckeditor_install/templates/ckeditor/lang/ru.js +6 -0
  497. data/generators/ckeditor_install/templates/ckeditor/lang/sk.js +6 -0
  498. data/generators/ckeditor_install/templates/ckeditor/lang/sl.js +6 -0
  499. data/generators/ckeditor_install/templates/ckeditor/lang/sr-latn.js +6 -0
  500. data/generators/ckeditor_install/templates/ckeditor/lang/sr.js +6 -0
  501. data/generators/ckeditor_install/templates/ckeditor/lang/sv.js +6 -0
  502. data/generators/ckeditor_install/templates/ckeditor/lang/th.js +6 -0
  503. data/generators/ckeditor_install/templates/ckeditor/lang/tr.js +6 -0
  504. data/generators/ckeditor_install/templates/ckeditor/lang/uk.js +6 -0
  505. data/generators/ckeditor_install/templates/ckeditor/lang/vi.js +6 -0
  506. data/generators/ckeditor_install/templates/ckeditor/lang/zh-cn.js +6 -0
  507. data/generators/ckeditor_install/templates/ckeditor/lang/zh.js +6 -0
  508. data/generators/ckeditor_install/templates/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +7 -0
  509. data/generators/ckeditor_install/templates/ckeditor/plugins/a11yhelp/lang/en.js +6 -0
  510. data/generators/ckeditor_install/templates/ckeditor/plugins/a11yhelp/lang/he.js +6 -0
  511. data/generators/ckeditor_install/templates/ckeditor/plugins/about/dialogs/about.js +6 -0
  512. data/generators/ckeditor_install/templates/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  513. data/generators/ckeditor_install/templates/ckeditor/plugins/ajax_save/plugin.js +1 -0
  514. data/generators/ckeditor_install/templates/ckeditor/plugins/attachment/dialogs/attachment.js +1 -0
  515. data/generators/ckeditor_install/templates/ckeditor/plugins/attachment/images/attachment.png +0 -0
  516. data/generators/ckeditor_install/templates/ckeditor/plugins/attachment/lang/en.js +10 -0
  517. data/generators/ckeditor_install/templates/ckeditor/plugins/attachment/lang/ru.js +10 -0
  518. data/generators/ckeditor_install/templates/ckeditor/plugins/attachment/lang/uk.js +10 -0
  519. data/generators/ckeditor_install/templates/ckeditor/plugins/attachment/plugin.js +1 -0
  520. data/generators/ckeditor_install/templates/ckeditor/plugins/autogrow/plugin.js +6 -0
  521. data/generators/ckeditor_install/templates/ckeditor/plugins/clipboard/dialogs/paste.js +7 -0
  522. data/generators/ckeditor_install/templates/ckeditor/plugins/colordialog/dialogs/colordialog.js +7 -0
  523. data/generators/ckeditor_install/templates/ckeditor/plugins/dialog/dialogDefinition.js +4 -0
  524. data/generators/ckeditor_install/templates/ckeditor/plugins/div/dialogs/div.js +8 -0
  525. data/generators/ckeditor_install/templates/ckeditor/plugins/embed/dialogs/embed.js +1 -0
  526. data/generators/ckeditor_install/templates/ckeditor/plugins/embed/images/embed.png +0 -0
  527. data/generators/ckeditor_install/templates/ckeditor/plugins/embed/lang/en.js +9 -0
  528. data/generators/ckeditor_install/templates/ckeditor/plugins/embed/lang/ru.js +9 -0
  529. data/generators/ckeditor_install/templates/ckeditor/plugins/embed/lang/uk.js +9 -0
  530. data/generators/ckeditor_install/templates/ckeditor/plugins/embed/plugin.js +1 -0
  531. data/generators/ckeditor_install/templates/ckeditor/plugins/find/dialogs/find.js +9 -0
  532. data/generators/ckeditor_install/templates/ckeditor/plugins/flash/dialogs/flash.js +9 -0
  533. data/generators/ckeditor_install/templates/ckeditor/plugins/flash/images/placeholder.png +0 -0
  534. data/generators/ckeditor_install/templates/ckeditor/plugins/forms/dialogs/button.js +6 -0
  535. data/generators/ckeditor_install/templates/ckeditor/plugins/forms/dialogs/checkbox.js +6 -0
  536. data/generators/ckeditor_install/templates/ckeditor/plugins/forms/dialogs/form.js +6 -0
  537. data/generators/ckeditor_install/templates/ckeditor/plugins/forms/dialogs/hiddenfield.js +6 -0
  538. data/generators/ckeditor_install/templates/ckeditor/plugins/forms/dialogs/radio.js +6 -0
  539. data/generators/ckeditor_install/templates/ckeditor/plugins/forms/dialogs/select.js +9 -0
  540. data/generators/ckeditor_install/templates/ckeditor/plugins/forms/dialogs/textarea.js +6 -0
  541. data/generators/ckeditor_install/templates/ckeditor/plugins/forms/dialogs/textfield.js +7 -0
  542. data/generators/ckeditor_install/templates/ckeditor/plugins/forms/images/hiddenfield.gif +0 -0
  543. data/generators/ckeditor_install/templates/ckeditor/plugins/iframedialog/plugin.js +6 -0
  544. data/generators/ckeditor_install/templates/ckeditor/plugins/image/dialogs/image.js +13 -0
  545. data/generators/ckeditor_install/templates/ckeditor/plugins/link/dialogs/anchor.js +6 -0
  546. data/generators/ckeditor_install/templates/ckeditor/plugins/link/dialogs/link.js +11 -0
  547. data/generators/ckeditor_install/templates/ckeditor/plugins/link/images/anchor.gif +0 -0
  548. data/generators/ckeditor_install/templates/ckeditor/plugins/liststyle/dialogs/liststyle.js +6 -0
  549. data/generators/ckeditor_install/templates/ckeditor/plugins/pagebreak/images/pagebreak.gif +0 -0
  550. data/generators/ckeditor_install/templates/ckeditor/plugins/pastefromword/filter/default.js +10 -0
  551. data/generators/ckeditor_install/templates/ckeditor/plugins/pastetext/dialogs/pastetext.js +6 -0
  552. data/generators/ckeditor_install/templates/ckeditor/plugins/scayt/dialogs/options.js +8 -0
  553. data/generators/ckeditor_install/templates/ckeditor/plugins/scayt/dialogs/toolbar.css +6 -0
  554. data/generators/ckeditor_install/templates/ckeditor/plugins/showblocks/images/block_address.png +0 -0
  555. data/generators/ckeditor_install/templates/ckeditor/plugins/showblocks/images/block_blockquote.png +0 -0
  556. data/generators/ckeditor_install/templates/ckeditor/plugins/showblocks/images/block_div.png +0 -0
  557. data/generators/ckeditor_install/templates/ckeditor/plugins/showblocks/images/block_h1.png +0 -0
  558. data/generators/ckeditor_install/templates/ckeditor/plugins/showblocks/images/block_h2.png +0 -0
  559. data/generators/ckeditor_install/templates/ckeditor/plugins/showblocks/images/block_h3.png +0 -0
  560. data/generators/ckeditor_install/templates/ckeditor/plugins/showblocks/images/block_h4.png +0 -0
  561. data/generators/ckeditor_install/templates/ckeditor/plugins/showblocks/images/block_h5.png +0 -0
  562. data/generators/ckeditor_install/templates/ckeditor/plugins/showblocks/images/block_h6.png +0 -0
  563. data/generators/ckeditor_install/templates/ckeditor/plugins/showblocks/images/block_p.png +0 -0
  564. data/generators/ckeditor_install/templates/ckeditor/plugins/showblocks/images/block_pre.png +0 -0
  565. data/generators/ckeditor_install/templates/ckeditor/plugins/smiley/dialogs/smiley.js +7 -0
  566. data/generators/ckeditor_install/templates/ckeditor/plugins/smiley/images/angel_smile.gif +0 -0
  567. data/generators/ckeditor_install/templates/ckeditor/plugins/smiley/images/angry_smile.gif +0 -0
  568. data/generators/ckeditor_install/templates/ckeditor/plugins/smiley/images/broken_heart.gif +0 -0
  569. data/generators/ckeditor_install/templates/ckeditor/plugins/smiley/images/confused_smile.gif +0 -0
  570. data/generators/ckeditor_install/templates/ckeditor/plugins/smiley/images/cry_smile.gif +0 -0
  571. data/generators/ckeditor_install/templates/ckeditor/plugins/smiley/images/devil_smile.gif +0 -0
  572. data/generators/ckeditor_install/templates/ckeditor/plugins/smiley/images/embaressed_smile.gif +0 -0
  573. data/generators/ckeditor_install/templates/ckeditor/plugins/smiley/images/envelope.gif +0 -0
  574. data/generators/ckeditor_install/templates/ckeditor/plugins/smiley/images/heart.gif +0 -0
  575. data/generators/ckeditor_install/templates/ckeditor/plugins/smiley/images/kiss.gif +0 -0
  576. data/generators/ckeditor_install/templates/ckeditor/plugins/smiley/images/lightbulb.gif +0 -0
  577. data/generators/ckeditor_install/templates/ckeditor/plugins/smiley/images/omg_smile.gif +0 -0
  578. data/generators/ckeditor_install/templates/ckeditor/plugins/smiley/images/regular_smile.gif +0 -0
  579. data/generators/ckeditor_install/templates/ckeditor/plugins/smiley/images/sad_smile.gif +0 -0
  580. data/generators/ckeditor_install/templates/ckeditor/plugins/smiley/images/shades_smile.gif +0 -0
  581. data/generators/ckeditor_install/templates/ckeditor/plugins/smiley/images/teeth_smile.gif +0 -0
  582. data/generators/ckeditor_install/templates/ckeditor/plugins/smiley/images/thumbs_down.gif +0 -0
  583. data/generators/ckeditor_install/templates/ckeditor/plugins/smiley/images/thumbs_up.gif +0 -0
  584. data/generators/ckeditor_install/templates/ckeditor/plugins/smiley/images/tounge_smile.gif +0 -0
  585. data/generators/ckeditor_install/templates/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  586. data/generators/ckeditor_install/templates/ckeditor/plugins/smiley/images/wink_smile.gif +0 -0
  587. data/generators/ckeditor_install/templates/ckeditor/plugins/specialchar/dialogs/specialchar.js +7 -0
  588. data/generators/ckeditor_install/templates/ckeditor/plugins/styles/styles/default.js +6 -0
  589. data/generators/ckeditor_install/templates/ckeditor/plugins/table/dialogs/table.js +9 -0
  590. data/generators/ckeditor_install/templates/ckeditor/plugins/tableresize/plugin.js +7 -0
  591. data/generators/ckeditor_install/templates/ckeditor/plugins/tabletools/dialogs/tableCell.js +8 -0
  592. data/generators/ckeditor_install/templates/ckeditor/plugins/templates/dialogs/templates.js +7 -0
  593. data/generators/ckeditor_install/templates/ckeditor/plugins/templates/templates/default.js +6 -0
  594. data/generators/ckeditor_install/templates/ckeditor/plugins/templates/templates/images/template1.gif +0 -0
  595. data/generators/ckeditor_install/templates/ckeditor/plugins/templates/templates/images/template2.gif +0 -0
  596. data/generators/ckeditor_install/templates/ckeditor/plugins/templates/templates/images/template3.gif +0 -0
  597. data/generators/ckeditor_install/templates/ckeditor/plugins/uicolor/dialogs/uicolor.js +7 -0
  598. data/generators/ckeditor_install/templates/ckeditor/plugins/uicolor/lang/en.js +6 -0
  599. data/generators/ckeditor_install/templates/ckeditor/plugins/uicolor/lang/he.js +6 -0
  600. data/generators/ckeditor_install/templates/ckeditor/plugins/uicolor/plugin.js +6 -0
  601. data/generators/ckeditor_install/templates/ckeditor/plugins/uicolor/uicolor.gif +0 -0
  602. data/generators/ckeditor_install/templates/ckeditor/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  603. data/generators/ckeditor_install/templates/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  604. data/generators/ckeditor_install/templates/ckeditor/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  605. data/generators/ckeditor_install/templates/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  606. data/generators/ckeditor_install/templates/ckeditor/plugins/uicolor/yui/assets/yui.css +6 -0
  607. data/generators/ckeditor_install/templates/ckeditor/plugins/uicolor/yui/yui.js +76 -0
  608. data/generators/ckeditor_install/templates/ckeditor/plugins/wsc/dialogs/ciframe.html +49 -0
  609. data/generators/ckeditor_install/templates/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +52 -0
  610. data/generators/ckeditor_install/templates/ckeditor/plugins/wsc/dialogs/wsc.css +6 -0
  611. data/generators/ckeditor_install/templates/ckeditor/plugins/wsc/dialogs/wsc.js +7 -0
  612. data/generators/ckeditor_install/templates/ckeditor/skins/kama/dialog.css +9 -0
  613. data/generators/ckeditor_install/templates/ckeditor/skins/kama/editor.css +12 -0
  614. data/generators/ckeditor_install/templates/ckeditor/skins/kama/icons.png +0 -0
  615. data/generators/ckeditor_install/templates/ckeditor/skins/kama/icons_rtl.png +0 -0
  616. data/generators/ckeditor_install/templates/ckeditor/skins/kama/images/dialog_sides.gif +0 -0
  617. data/generators/ckeditor_install/templates/ckeditor/skins/kama/images/dialog_sides.png +0 -0
  618. data/generators/ckeditor_install/templates/ckeditor/skins/kama/images/dialog_sides_rtl.png +0 -0
  619. data/generators/ckeditor_install/templates/ckeditor/skins/kama/images/mini.gif +0 -0
  620. data/generators/ckeditor_install/templates/ckeditor/skins/kama/images/noimage.png +0 -0
  621. data/generators/ckeditor_install/templates/ckeditor/skins/kama/images/sprites.png +0 -0
  622. data/generators/ckeditor_install/templates/ckeditor/skins/kama/images/sprites_ie6.png +0 -0
  623. data/generators/ckeditor_install/templates/ckeditor/skins/kama/images/toolbar_start.gif +0 -0
  624. data/generators/ckeditor_install/templates/ckeditor/skins/kama/skin.js +7 -0
  625. data/generators/ckeditor_install/templates/ckeditor/skins/kama/templates.css +6 -0
  626. data/generators/ckeditor_install/templates/ckeditor/skins/office2003/dialog.css +9 -0
  627. data/generators/ckeditor_install/templates/ckeditor/skins/office2003/editor.css +13 -0
  628. data/generators/ckeditor_install/templates/ckeditor/skins/office2003/icons.png +0 -0
  629. data/generators/ckeditor_install/templates/ckeditor/skins/office2003/icons_rtl.png +0 -0
  630. data/generators/ckeditor_install/templates/ckeditor/skins/office2003/images/dialog_sides.gif +0 -0
  631. data/generators/ckeditor_install/templates/ckeditor/skins/office2003/images/dialog_sides.png +0 -0
  632. data/generators/ckeditor_install/templates/ckeditor/skins/office2003/images/dialog_sides_rtl.png +0 -0
  633. data/generators/ckeditor_install/templates/ckeditor/skins/office2003/images/mini.gif +0 -0
  634. data/generators/ckeditor_install/templates/ckeditor/skins/office2003/images/noimage.png +0 -0
  635. data/generators/ckeditor_install/templates/ckeditor/skins/office2003/images/sprites.png +0 -0
  636. data/generators/ckeditor_install/templates/ckeditor/skins/office2003/images/sprites_ie6.png +0 -0
  637. data/generators/ckeditor_install/templates/ckeditor/skins/office2003/skin.js +6 -0
  638. data/generators/ckeditor_install/templates/ckeditor/skins/office2003/templates.css +6 -0
  639. data/generators/ckeditor_install/templates/ckeditor/skins/v2/dialog.css +9 -0
  640. data/generators/ckeditor_install/templates/ckeditor/skins/v2/editor.css +12 -0
  641. data/generators/ckeditor_install/templates/ckeditor/skins/v2/icons.png +0 -0
  642. data/generators/ckeditor_install/templates/ckeditor/skins/v2/icons_rtl.png +0 -0
  643. data/generators/ckeditor_install/templates/ckeditor/skins/v2/images/dialog_sides.gif +0 -0
  644. data/generators/ckeditor_install/templates/ckeditor/skins/v2/images/dialog_sides.png +0 -0
  645. data/generators/ckeditor_install/templates/ckeditor/skins/v2/images/dialog_sides_rtl.png +0 -0
  646. data/generators/ckeditor_install/templates/ckeditor/skins/v2/images/mini.gif +0 -0
  647. data/generators/ckeditor_install/templates/ckeditor/skins/v2/images/noimage.png +0 -0
  648. data/generators/ckeditor_install/templates/ckeditor/skins/v2/images/sprites.png +0 -0
  649. data/generators/ckeditor_install/templates/ckeditor/skins/v2/images/sprites_ie6.png +0 -0
  650. data/generators/ckeditor_install/templates/ckeditor/skins/v2/images/toolbar_start.gif +0 -0
  651. data/generators/ckeditor_install/templates/ckeditor/skins/v2/skin.js +6 -0
  652. data/generators/ckeditor_install/templates/ckeditor/skins/v2/templates.css +6 -0
  653. data/generators/ckeditor_install/templates/ckeditor/swfupload/fileprogress.js +269 -0
  654. data/generators/ckeditor_install/templates/ckeditor/swfupload/handlers.js +170 -0
  655. data/generators/ckeditor_install/templates/ckeditor/swfupload/mootools-1.2.3-core-yc.js +356 -0
  656. data/generators/ckeditor_install/templates/ckeditor/swfupload/querystring.js +40 -0
  657. data/generators/ckeditor_install/templates/ckeditor/swfupload/swfupload.js +1 -0
  658. data/generators/ckeditor_install/templates/ckeditor/swfupload/swfupload.queue.js +1 -0
  659. data/generators/ckeditor_install/templates/ckeditor/swfupload/swfupload.swf +0 -0
  660. data/generators/ckeditor_install/templates/ckeditor/swfupload/swfupload.swfobject.js +111 -0
  661. data/generators/ckeditor_install/templates/ckeditor/themes/default/theme.js +8 -0
  662. data/generators/ckeditor_migration/USAGE +12 -0
  663. data/generators/ckeditor_migration/ckeditor_migration_generator.rb +36 -0
  664. data/generators/ckeditor_migration/templates/models/attachment_fu/asset.rb +32 -0
  665. data/generators/ckeditor_migration/templates/models/attachment_fu/attachment_file.rb +24 -0
  666. data/generators/ckeditor_migration/templates/models/attachment_fu/migration.rb +30 -0
  667. data/generators/ckeditor_migration/templates/models/attachment_fu/picture.rb +25 -0
  668. data/generators/ckeditor_migration/templates/models/paperclip/asset.rb +88 -0
  669. data/generators/ckeditor_migration/templates/models/paperclip/attachment_file.rb +40 -0
  670. data/generators/ckeditor_migration/templates/models/paperclip/migration.rb +31 -0
  671. data/generators/ckeditor_migration/templates/models/paperclip/picture.rb +23 -0
  672. data/lib/ckeditor.rb +89 -0
  673. data/lib/ckeditor/form_builder.rb +22 -0
  674. data/lib/ckeditor/formtastic.rb +12 -0
  675. data/lib/ckeditor/middleware.rb +18 -0
  676. data/lib/ckeditor/safe_buffer.rb +34 -0
  677. data/lib/ckeditor/utils.rb +19 -0
  678. data/lib/ckeditor/version.rb +11 -0
  679. data/lib/ckeditor/view_helper.rb +91 -0
  680. metadata +768 -0
@@ -0,0 +1,214 @@
1
+ /*
2
+ Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ (function()
7
+ {
8
+ /**
9
+ * Represents a list os CKEDITOR.dom.range objects, which can be easily
10
+ * iterated sequentially.
11
+ * @constructor
12
+ * @param {CKEDITOR.dom.range|Array} [ranges] The ranges contained on this list.
13
+ * Note that, if an array of ranges is specified, the range sequence
14
+ * should match its DOM order. This class will not help to sort them.
15
+ */
16
+ CKEDITOR.dom.rangeList = function( ranges )
17
+ {
18
+ if ( ranges instanceof CKEDITOR.dom.rangeList )
19
+ return ranges;
20
+
21
+ if ( !ranges )
22
+ ranges = [];
23
+ else if ( ranges instanceof CKEDITOR.dom.range )
24
+ ranges = [ ranges ];
25
+
26
+ return CKEDITOR.tools.extend( ranges, mixins );
27
+ };
28
+
29
+ var mixins =
30
+ /** @lends CKEDITOR.dom.rangeList.prototype */
31
+ {
32
+ /**
33
+ * Creates an instance of the rangeList iterator, it should be used
34
+ * only when the ranges processing could be DOM intrusive, which
35
+ * means it may pollute and break other ranges in this list.
36
+ * Otherwise, it's enough to just iterate over this array in a for loop.
37
+ * @returns {CKEDITOR.dom.rangeListIterator}
38
+ */
39
+ createIterator : function()
40
+ {
41
+ var rangeList = this,
42
+ bookmark = CKEDITOR.dom.walker.bookmark(),
43
+ guard = function( node ) { return ! ( node.is && node.is( 'tr' ) ); },
44
+ bookmarks = [],
45
+ current;
46
+
47
+ /**
48
+ * @lends CKEDITOR.dom.rangeListIterator.prototype
49
+ */
50
+ return {
51
+
52
+ /**
53
+ * Retrieves the next range in the list.
54
+ * @param {Boolean} mergeConsequent Whether join two adjacent ranges into single, e.g. consequent table cells.
55
+ */
56
+ getNextRange : function( mergeConsequent )
57
+ {
58
+ current = current == undefined ? 0 : current + 1;
59
+
60
+ var range = rangeList[ current ];
61
+
62
+ // Multiple ranges might be mangled by each other.
63
+ if ( range && rangeList.length > 1 )
64
+ {
65
+ // Bookmarking all other ranges on the first iteration,
66
+ // the range correctness after it doesn't matter since we'll
67
+ // restore them before the next iteration.
68
+ if ( !current )
69
+ {
70
+ // Make sure bookmark correctness by reverse processing.
71
+ for ( var i = rangeList.length - 1; i >= 0; i-- )
72
+ bookmarks.unshift( rangeList[ i ].createBookmark( true ) );
73
+ }
74
+
75
+ if ( mergeConsequent )
76
+ {
77
+ // Figure out how many ranges should be merged.
78
+ var mergeCount = 0;
79
+ while ( rangeList[ current + mergeCount + 1 ] )
80
+ {
81
+ var doc = range.document,
82
+ found = 0,
83
+ left = doc.getById( bookmarks[ mergeCount ].endNode ),
84
+ right = doc.getById( bookmarks[ mergeCount + 1 ].startNode ),
85
+ next;
86
+
87
+ // Check subsequent range.
88
+ while ( 1 )
89
+ {
90
+ next = left.getNextSourceNode( false );
91
+ if ( !right.equals( next ) )
92
+ {
93
+ // This could be yet another bookmark or
94
+ // walking across block boundaries.
95
+ if ( bookmark( next ) || ( next.type == CKEDITOR.NODE_ELEMENT && next.isBlockBoundary() ) )
96
+ {
97
+ left = next;
98
+ continue;
99
+ }
100
+ }
101
+ else
102
+ found = 1;
103
+
104
+ break;
105
+ }
106
+
107
+ if ( !found )
108
+ break;
109
+
110
+ mergeCount++;
111
+ }
112
+ }
113
+
114
+ range.moveToBookmark( bookmarks.shift() );
115
+
116
+ var next;
117
+ // Merge ranges finally after moving to bookmarks.
118
+ while( mergeCount-- )
119
+ {
120
+ next = rangeList[ ++current ];
121
+ next.moveToBookmark( bookmarks.shift() );
122
+ range.setEnd( next.endContainer, next.endOffset );
123
+ }
124
+ }
125
+
126
+ return range;
127
+ }
128
+ };
129
+ },
130
+
131
+ createBookmarks : function( serializable )
132
+ {
133
+ var retval = [], bookmark;
134
+ for ( var i = 0; i < this.length ; i++ )
135
+ {
136
+ retval.push( bookmark = this[ i ].createBookmark( serializable, true) );
137
+
138
+ // Updating the container & offset values for ranges
139
+ // that have been touched.
140
+ for ( var j = i + 1; j < this.length; j++ )
141
+ {
142
+ this[ j ] = updateDirtyRange( bookmark, this[ j ] );
143
+ this[ j ] = updateDirtyRange( bookmark, this[ j ], true );
144
+ }
145
+ }
146
+ return retval;
147
+ },
148
+
149
+ createBookmarks2 : function( normalized )
150
+ {
151
+ var bookmarks = [];
152
+
153
+ for ( var i = 0 ; i < this.length ; i++ )
154
+ bookmarks.push( this[ i ].createBookmark2( normalized ) );
155
+
156
+ return bookmarks;
157
+ },
158
+
159
+ /**
160
+ * Move each range in the list to the position specified by a list of bookmarks.
161
+ * @param {Array} bookmarks The list of bookmarks, each one matching a range in the list.
162
+ */
163
+ moveToBookmarks : function( bookmarks )
164
+ {
165
+ for ( var i = 0 ; i < this.length ; i++ )
166
+ this[ i ].moveToBookmark( bookmarks[ i ] );
167
+ }
168
+ };
169
+
170
+ // Update the specified range which has been mangled by previous insertion of
171
+ // range bookmark nodes.(#3256)
172
+ function updateDirtyRange( bookmark, dirtyRange, checkEnd )
173
+ {
174
+ var serializable = bookmark.serializable,
175
+ container = dirtyRange[ checkEnd ? 'endContainer' : 'startContainer' ],
176
+ offset = checkEnd ? 'endOffset' : 'startOffset';
177
+
178
+ var bookmarkStart = serializable ?
179
+ dirtyRange.document.getById( bookmark.startNode )
180
+ : bookmark.startNode;
181
+
182
+ var bookmarkEnd = serializable ?
183
+ dirtyRange.document.getById( bookmark.endNode )
184
+ : bookmark.endNode;
185
+
186
+ if ( container.equals( bookmarkStart.getPrevious() ) )
187
+ {
188
+ dirtyRange.startOffset = dirtyRange.startOffset
189
+ - container.getLength()
190
+ - bookmarkEnd.getPrevious().getLength();
191
+ container = bookmarkEnd.getNext();
192
+ }
193
+ else if ( container.equals( bookmarkEnd.getPrevious() ) )
194
+ {
195
+ dirtyRange.startOffset = dirtyRange.startOffset - container.getLength();
196
+ container = bookmarkEnd.getNext();
197
+ }
198
+
199
+ container.equals( bookmarkStart.getParent() ) && dirtyRange[ offset ]++;
200
+ container.equals( bookmarkEnd.getParent() ) && dirtyRange[ offset ]++;
201
+
202
+ // Update and return this range.
203
+ dirtyRange[ checkEnd ? 'endContainer' : 'startContainer' ] = container;
204
+ return dirtyRange;
205
+ }
206
+ })();
207
+
208
+ /**
209
+ * (Virtual Class) Do not call this constructor. This class is not really part
210
+ * of the API. It just describes the return type of {@link CKEDITOR.dom.rangeList#createIterator}.
211
+ * @name CKEDITOR.dom.rangeListIterator
212
+ * @constructor
213
+ * @example
214
+ */
@@ -0,0 +1,123 @@
1
+ /*
2
+ Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ /**
7
+ * @fileOverview Defines the {@link CKEDITOR.dom.text} class, which represents
8
+ * a DOM text node.
9
+ */
10
+
11
+ /**
12
+ * Represents a DOM text node.
13
+ * @constructor
14
+ * @augments CKEDITOR.dom.node
15
+ * @param {Object|String} text A native DOM text node or a string containing
16
+ * the text to use to create a new text node.
17
+ * @param {CKEDITOR.dom.document} [ownerDocument] The document that will contain
18
+ * the node in case of new node creation. Defaults to the current document.
19
+ * @example
20
+ * var nativeNode = document.createTextNode( 'Example' );
21
+ * var text = CKEDITOR.dom.text( nativeNode );
22
+ * @example
23
+ * var text = CKEDITOR.dom.text( 'Example' );
24
+ */
25
+ CKEDITOR.dom.text = function( text, ownerDocument )
26
+ {
27
+ if ( typeof text == 'string' )
28
+ text = ( ownerDocument ? ownerDocument.$ : document ).createTextNode( text );
29
+
30
+ // Theoretically, we should call the base constructor here
31
+ // (not CKEDITOR.dom.node though). But, IE doesn't support expando
32
+ // properties on text node, so the features provided by domObject will not
33
+ // work for text nodes (which is not a big issue for us).
34
+ //
35
+ // CKEDITOR.dom.domObject.call( this, element );
36
+
37
+ /**
38
+ * The native DOM text node represented by this class instance.
39
+ * @type Object
40
+ * @example
41
+ * var element = new CKEDITOR.dom.text( 'Example' );
42
+ * alert( element.$.nodeType ); // "3"
43
+ */
44
+ this.$ = text;
45
+ };
46
+
47
+ CKEDITOR.dom.text.prototype = new CKEDITOR.dom.node();
48
+
49
+ CKEDITOR.tools.extend( CKEDITOR.dom.text.prototype,
50
+ /** @lends CKEDITOR.dom.text.prototype */
51
+ {
52
+ /**
53
+ * The node type. This is a constant value set to
54
+ * {@link CKEDITOR.NODE_TEXT}.
55
+ * @type Number
56
+ * @example
57
+ */
58
+ type : CKEDITOR.NODE_TEXT,
59
+
60
+ getLength : function()
61
+ {
62
+ return this.$.nodeValue.length;
63
+ },
64
+
65
+ getText : function()
66
+ {
67
+ return this.$.nodeValue;
68
+ },
69
+
70
+ /**
71
+ * Breaks this text node into two nodes at the specified offset,
72
+ * keeping both in the tree as siblings. This node then only contains
73
+ * all the content up to the offset point. A new text node, which is
74
+ * inserted as the next sibling of this node, contains all the content
75
+ * at and after the offset point. When the offset is equal to the
76
+ * length of this node, the new node has no data.
77
+ * @param {Number} The position at which to split, starting from zero.
78
+ * @returns {CKEDITOR.dom.text} The new text node.
79
+ */
80
+ split : function( offset )
81
+ {
82
+ // If the offset is after the last char, IE creates the text node
83
+ // on split, but don't include it into the DOM. So, we have to do
84
+ // that manually here.
85
+ if ( CKEDITOR.env.ie && offset == this.getLength() )
86
+ {
87
+ var next = this.getDocument().createText( '' );
88
+ next.insertAfter( this );
89
+ return next;
90
+ }
91
+
92
+ var doc = this.getDocument();
93
+ var retval = new CKEDITOR.dom.text( this.$.splitText( offset ), doc );
94
+
95
+ // IE BUG: IE8 does not update the childNodes array in DOM after splitText(),
96
+ // we need to make some DOM changes to make it update. (#3436)
97
+ if ( CKEDITOR.env.ie8 )
98
+ {
99
+ var workaround = new CKEDITOR.dom.text( '', doc );
100
+ workaround.insertAfter( retval );
101
+ workaround.remove();
102
+ }
103
+
104
+ return retval;
105
+ },
106
+
107
+ /**
108
+ * Extracts characters from indexA up to but not including indexB.
109
+ * @param {Number} indexA An integer between 0 and one less than the
110
+ * length of the text.
111
+ * @param {Number} [indexB] An integer between 0 and the length of the
112
+ * string. If omitted, extracts characters to the end of the text.
113
+ */
114
+ substring : function( indexA, indexB )
115
+ {
116
+ // We need the following check due to a Firefox bug
117
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=458886
118
+ if ( typeof indexB != 'number' )
119
+ return this.$.nodeValue.substr( indexA );
120
+ else
121
+ return this.$.nodeValue.substring( indexA, indexB );
122
+ }
123
+ });
@@ -0,0 +1,445 @@
1
+ /*
2
+ Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ (function()
7
+ {
8
+ // This function is to be called under a "walker" instance scope.
9
+ function iterate( rtl, breakOnFalse )
10
+ {
11
+ // Return null if we have reached the end.
12
+ if ( this._.end )
13
+ return null;
14
+
15
+ var node,
16
+ range = this.range,
17
+ guard,
18
+ userGuard = this.guard,
19
+ type = this.type,
20
+ getSourceNodeFn = ( rtl ? 'getPreviousSourceNode' : 'getNextSourceNode' );
21
+
22
+ // This is the first call. Initialize it.
23
+ if ( !this._.start )
24
+ {
25
+ this._.start = 1;
26
+
27
+ // Trim text nodes and optmize the range boundaries. DOM changes
28
+ // may happen at this point.
29
+ range.trim();
30
+
31
+ // A collapsed range must return null at first call.
32
+ if ( range.collapsed )
33
+ {
34
+ this.end();
35
+ return null;
36
+ }
37
+ }
38
+
39
+ // Create the LTR guard function, if necessary.
40
+ if ( !rtl && !this._.guardLTR )
41
+ {
42
+ // Gets the node that stops the walker when going LTR.
43
+ var limitLTR = range.endContainer,
44
+ blockerLTR = limitLTR.getChild( range.endOffset );
45
+
46
+ this._.guardLTR = function( node, movingOut )
47
+ {
48
+ return ( ( !movingOut || !limitLTR.equals( node ) )
49
+ && ( !blockerLTR || !node.equals( blockerLTR ) )
50
+ && ( node.type != CKEDITOR.NODE_ELEMENT || !movingOut || node.getName() != 'body' ) );
51
+ };
52
+ }
53
+
54
+ // Create the RTL guard function, if necessary.
55
+ if ( rtl && !this._.guardRTL )
56
+ {
57
+ // Gets the node that stops the walker when going LTR.
58
+ var limitRTL = range.startContainer,
59
+ blockerRTL = ( range.startOffset > 0 ) && limitRTL.getChild( range.startOffset - 1 );
60
+
61
+ this._.guardRTL = function( node, movingOut )
62
+ {
63
+ return ( ( !movingOut || !limitRTL.equals( node ) )
64
+ && ( !blockerRTL || !node.equals( blockerRTL ) )
65
+ && ( node.type != CKEDITOR.NODE_ELEMENT || !movingOut || node.getName() != 'body' ) );
66
+ };
67
+ }
68
+
69
+ // Define which guard function to use.
70
+ var stopGuard = rtl ? this._.guardRTL : this._.guardLTR;
71
+
72
+ // Make the user defined guard function participate in the process,
73
+ // otherwise simply use the boundary guard.
74
+ if ( userGuard )
75
+ {
76
+ guard = function( node, movingOut )
77
+ {
78
+ if ( stopGuard( node, movingOut ) === false )
79
+ return false;
80
+
81
+ return userGuard( node, movingOut );
82
+ };
83
+ }
84
+ else
85
+ guard = stopGuard;
86
+
87
+ if ( this.current )
88
+ node = this.current[ getSourceNodeFn ]( false, type, guard );
89
+ else
90
+ {
91
+ // Get the first node to be returned.
92
+
93
+ if ( rtl )
94
+ {
95
+ node = range.endContainer;
96
+
97
+ if ( range.endOffset > 0 )
98
+ {
99
+ node = node.getChild( range.endOffset - 1 );
100
+ if ( guard( node ) === false )
101
+ node = null;
102
+ }
103
+ else
104
+ node = ( guard ( node, true ) === false ) ?
105
+ null : node.getPreviousSourceNode( true, type, guard );
106
+ }
107
+ else
108
+ {
109
+ node = range.startContainer;
110
+ node = node.getChild( range.startOffset );
111
+
112
+ if ( node )
113
+ {
114
+ if ( guard( node ) === false )
115
+ node = null;
116
+ }
117
+ else
118
+ node = ( guard ( range.startContainer, true ) === false ) ?
119
+ null : range.startContainer.getNextSourceNode( true, type, guard ) ;
120
+ }
121
+ }
122
+
123
+ while ( node && !this._.end )
124
+ {
125
+ this.current = node;
126
+
127
+ if ( !this.evaluator || this.evaluator( node ) !== false )
128
+ {
129
+ if ( !breakOnFalse )
130
+ return node;
131
+ }
132
+ else if ( breakOnFalse && this.evaluator )
133
+ return false;
134
+
135
+ node = node[ getSourceNodeFn ]( false, type, guard );
136
+ }
137
+
138
+ this.end();
139
+ return this.current = null;
140
+ }
141
+
142
+ function iterateToLast( rtl )
143
+ {
144
+ var node, last = null;
145
+
146
+ while ( ( node = iterate.call( this, rtl ) ) )
147
+ last = node;
148
+
149
+ return last;
150
+ }
151
+
152
+ CKEDITOR.dom.walker = CKEDITOR.tools.createClass(
153
+ {
154
+ /**
155
+ * Utility class to "walk" the DOM inside a range boundaries. If
156
+ * necessary, partially included nodes (text nodes) are broken to
157
+ * reflect the boundaries limits, so DOM and range changes may happen.
158
+ * Outside changes to the range may break the walker.
159
+ *
160
+ * The walker may return nodes that are not totaly included into the
161
+ * range boundaires. Let's take the following range representation,
162
+ * where the square brackets indicate the boundaries:
163
+ *
164
+ * [&lt;p&gt;Some &lt;b&gt;sample] text&lt;/b&gt;
165
+ *
166
+ * While walking forward into the above range, the following nodes are
167
+ * returned: &lt;p&gt;, "Some ", &lt;b&gt; and "sample". Going
168
+ * backwards instead we have: "sample" and "Some ". So note that the
169
+ * walker always returns nodes when "entering" them, but not when
170
+ * "leaving" them. The guard function is instead called both when
171
+ * entering and leaving nodes.
172
+ *
173
+ * @constructor
174
+ * @param {CKEDITOR.dom.range} range The range within which walk.
175
+ */
176
+ $ : function( range )
177
+ {
178
+ this.range = range;
179
+
180
+ /**
181
+ * A function executed for every matched node, to check whether
182
+ * it's to be considered into the walk or not. If not provided, all
183
+ * matched nodes are considered good.
184
+ * If the function returns "false" the node is ignored.
185
+ * @name CKEDITOR.dom.walker.prototype.evaluator
186
+ * @property
187
+ * @type Function
188
+ */
189
+ // this.evaluator = null;
190
+
191
+ /**
192
+ * A function executed for every node the walk pass by to check
193
+ * whether the walk is to be finished. It's called when both
194
+ * entering and exiting nodes, as well as for the matched nodes.
195
+ * If this function returns "false", the walking ends and no more
196
+ * nodes are evaluated.
197
+ * @name CKEDITOR.dom.walker.prototype.guard
198
+ * @property
199
+ * @type Function
200
+ */
201
+ // this.guard = null;
202
+
203
+ /** @private */
204
+ this._ = {};
205
+ },
206
+
207
+ // statics :
208
+ // {
209
+ // /* Creates a CKEDITOR.dom.walker instance to walk inside DOM boundaries set by nodes.
210
+ // * @param {CKEDITOR.dom.node} startNode The node from wich the walk
211
+ // * will start.
212
+ // * @param {CKEDITOR.dom.node} [endNode] The last node to be considered
213
+ // * in the walk. No more nodes are retrieved after touching or
214
+ // * passing it. If not provided, the walker stops at the
215
+ // * &lt;body&gt; closing boundary.
216
+ // * @returns {CKEDITOR.dom.walker} A DOM walker for the nodes between the
217
+ // * provided nodes.
218
+ // */
219
+ // createOnNodes : function( startNode, endNode, startInclusive, endInclusive )
220
+ // {
221
+ // var range = new CKEDITOR.dom.range();
222
+ // if ( startNode )
223
+ // range.setStartAt( startNode, startInclusive ? CKEDITOR.POSITION_BEFORE_START : CKEDITOR.POSITION_AFTER_END ) ;
224
+ // else
225
+ // range.setStartAt( startNode.getDocument().getBody(), CKEDITOR.POSITION_AFTER_START ) ;
226
+ //
227
+ // if ( endNode )
228
+ // range.setEndAt( endNode, endInclusive ? CKEDITOR.POSITION_AFTER_END : CKEDITOR.POSITION_BEFORE_START ) ;
229
+ // else
230
+ // range.setEndAt( startNode.getDocument().getBody(), CKEDITOR.POSITION_BEFORE_END ) ;
231
+ //
232
+ // return new CKEDITOR.dom.walker( range );
233
+ // }
234
+ // },
235
+ //
236
+ proto :
237
+ {
238
+ /**
239
+ * Stop walking. No more nodes are retrieved if this function gets
240
+ * called.
241
+ */
242
+ end : function()
243
+ {
244
+ this._.end = 1;
245
+ },
246
+
247
+ /**
248
+ * Retrieves the next node (at right).
249
+ * @returns {CKEDITOR.dom.node} The next node or null if no more
250
+ * nodes are available.
251
+ */
252
+ next : function()
253
+ {
254
+ return iterate.call( this );
255
+ },
256
+
257
+ /**
258
+ * Retrieves the previous node (at left).
259
+ * @returns {CKEDITOR.dom.node} The previous node or null if no more
260
+ * nodes are available.
261
+ */
262
+ previous : function()
263
+ {
264
+ return iterate.call( this, 1 );
265
+ },
266
+
267
+ /**
268
+ * Check all nodes at right, executing the evaluation fuction.
269
+ * @returns {Boolean} "false" if the evaluator function returned
270
+ * "false" for any of the matched nodes. Otherwise "true".
271
+ */
272
+ checkForward : function()
273
+ {
274
+ return iterate.call( this, 0, 1 ) !== false;
275
+ },
276
+
277
+ /**
278
+ * Check all nodes at left, executing the evaluation fuction.
279
+ * @returns {Boolean} "false" if the evaluator function returned
280
+ * "false" for any of the matched nodes. Otherwise "true".
281
+ */
282
+ checkBackward : function()
283
+ {
284
+ return iterate.call( this, 1, 1 ) !== false;
285
+ },
286
+
287
+ /**
288
+ * Executes a full walk forward (to the right), until no more nodes
289
+ * are available, returning the last valid node.
290
+ * @returns {CKEDITOR.dom.node} The last node at the right or null
291
+ * if no valid nodes are available.
292
+ */
293
+ lastForward : function()
294
+ {
295
+ return iterateToLast.call( this );
296
+ },
297
+
298
+ /**
299
+ * Executes a full walk backwards (to the left), until no more nodes
300
+ * are available, returning the last valid node.
301
+ * @returns {CKEDITOR.dom.node} The last node at the left or null
302
+ * if no valid nodes are available.
303
+ */
304
+ lastBackward : function()
305
+ {
306
+ return iterateToLast.call( this, 1 );
307
+ },
308
+
309
+ reset : function()
310
+ {
311
+ delete this.current;
312
+ this._ = {};
313
+ }
314
+
315
+ }
316
+ });
317
+
318
+ /*
319
+ * Anything whose display computed style is block, list-item, table,
320
+ * table-row-group, table-header-group, table-footer-group, table-row,
321
+ * table-column-group, table-column, table-cell, table-caption, or whose node
322
+ * name is hr, br (when enterMode is br only) is a block boundary.
323
+ */
324
+ var blockBoundaryDisplayMatch =
325
+ {
326
+ block : 1,
327
+ 'list-item' : 1,
328
+ table : 1,
329
+ 'table-row-group' : 1,
330
+ 'table-header-group' : 1,
331
+ 'table-footer-group' : 1,
332
+ 'table-row' : 1,
333
+ 'table-column-group' : 1,
334
+ 'table-column' : 1,
335
+ 'table-cell' : 1,
336
+ 'table-caption' : 1
337
+ },
338
+ blockBoundaryNodeNameMatch = { hr : 1 };
339
+
340
+ CKEDITOR.dom.element.prototype.isBlockBoundary = function( customNodeNames )
341
+ {
342
+ var nodeNameMatches = CKEDITOR.tools.extend( {},
343
+ blockBoundaryNodeNameMatch, customNodeNames || {} );
344
+
345
+ return blockBoundaryDisplayMatch[ this.getComputedStyle( 'display' ) ] ||
346
+ nodeNameMatches[ this.getName() ];
347
+ };
348
+
349
+ CKEDITOR.dom.walker.blockBoundary = function( customNodeNames )
350
+ {
351
+ return function( node , type )
352
+ {
353
+ return ! ( node.type == CKEDITOR.NODE_ELEMENT
354
+ && node.isBlockBoundary( customNodeNames ) );
355
+ };
356
+ };
357
+
358
+ CKEDITOR.dom.walker.listItemBoundary = function()
359
+ {
360
+ return this.blockBoundary( { br : 1 } );
361
+ };
362
+
363
+ /**
364
+ * Whether the to-be-evaluated node is a bookmark node OR bookmark node
365
+ * inner contents.
366
+ * @param {Boolean} contentOnly Whether only test againt the text content of
367
+ * bookmark node instead of the element itself(default).
368
+ * @param {Boolean} isReject Whether should return 'false' for the bookmark
369
+ * node instead of 'true'(default).
370
+ */
371
+ CKEDITOR.dom.walker.bookmark = function( contentOnly, isReject )
372
+ {
373
+ function isBookmarkNode( node )
374
+ {
375
+ return ( node && node.getName
376
+ && node.getName() == 'span'
377
+ && node.hasAttribute( '_cke_bookmark' ) );
378
+ }
379
+
380
+ return function( node )
381
+ {
382
+ var isBookmark, parent;
383
+ // Is bookmark inner text node?
384
+ isBookmark = ( node && !node.getName && ( parent = node.getParent() )
385
+ && isBookmarkNode( parent ) );
386
+ // Is bookmark node?
387
+ isBookmark = contentOnly ? isBookmark : isBookmark || isBookmarkNode( node );
388
+ return !! ( isReject ^ isBookmark );
389
+ };
390
+ };
391
+
392
+ /**
393
+ * Whether the node is a text node containing only whitespaces characters.
394
+ * @param isReject
395
+ */
396
+ CKEDITOR.dom.walker.whitespaces = function( isReject )
397
+ {
398
+ return function( node )
399
+ {
400
+ var isWhitespace = node && ( node.type == CKEDITOR.NODE_TEXT )
401
+ && !CKEDITOR.tools.trim( node.getText() );
402
+ return !! ( isReject ^ isWhitespace );
403
+ };
404
+ };
405
+
406
+ /**
407
+ * Whether the node is invisible in wysiwyg mode.
408
+ * @param isReject
409
+ */
410
+ CKEDITOR.dom.walker.invisible = function( isReject )
411
+ {
412
+ var whitespace = CKEDITOR.dom.walker.whitespaces();
413
+ return function( node )
414
+ {
415
+ // Nodes that take no spaces in wysiwyg:
416
+ // 1. White-spaces but not including NBSP;
417
+ // 2. Empty inline elements, e.g. <b></b> we're checking here
418
+ // 'offsetHeight' instead of 'offsetWidth' for properly excluding
419
+ // all sorts of empty paragraph, e.g. <br />.
420
+ var isInvisible = whitespace( node ) || node.is && !node.$.offsetHeight;
421
+ return !! ( isReject ^ isInvisible );
422
+ };
423
+ };
424
+
425
+ var tailNbspRegex = /^[\t\r\n ]*(?:&nbsp;|\xa0)$/,
426
+ isNotWhitespaces = CKEDITOR.dom.walker.whitespaces( 1 ),
427
+ isNotBookmark = CKEDITOR.dom.walker.bookmark( 0, 1 ),
428
+ fillerEvaluator = function( element )
429
+ {
430
+ return isNotBookmark( element ) && isNotWhitespaces( element );
431
+ };
432
+
433
+ // Check if there's a filler node at the end of an element, and return it.
434
+ CKEDITOR.dom.element.prototype.getBogus = function()
435
+ {
436
+ var tail = this.getLast( fillerEvaluator );
437
+ if ( tail && ( !CKEDITOR.env.ie ? tail.is && tail.is( 'br' )
438
+ : tail.getText && tailNbspRegex.test( tail.getText() ) ) )
439
+ {
440
+ return tail;
441
+ }
442
+ return false;
443
+ };
444
+
445
+ })();