ckeditor 3.6.2 → 3.6.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (713) hide show
  1. data/README.rdoc +10 -2
  2. data/app/views/ckeditor/attachment_files/index.html.erb +1 -1
  3. data/app/views/ckeditor/pictures/index.html.erb +1 -1
  4. data/app/views/ckeditor/shared/_asset.html.erb +2 -1
  5. data/app/views/ckeditor/shared/_asset_tmpl.html.erb +2 -1
  6. data/app/views/layouts/ckeditor.html.erb +14 -7
  7. data/config/locales/es.ckeditor.yml +8 -0
  8. data/lib/ckeditor.rb +17 -0
  9. data/lib/ckeditor/utils.rb +1 -1
  10. data/lib/ckeditor/version.rb +1 -1
  11. data/lib/generators/ckeditor/install_generator.rb +7 -4
  12. data/lib/generators/ckeditor/templates/ckeditor.rb +3 -0
  13. data/lib/generators/ckeditor/templates/ckeditor/config.js +2 -2
  14. data/lib/generators/ckeditor/templates/ckeditor/filebrowser/javascripts/application.js +3 -2
  15. data/lib/generators/ckeditor/templates/ckeditor/filebrowser/stylesheets/uploader.css +11 -13
  16. data/lib/generators/ckeditor/templates/ckeditor/plugins/attachment/dialogs/attachment.js +1 -1
  17. data/test/ckeditor_test.rb +14 -0
  18. data/test/dummy/db/test.sqlite3 +0 -0
  19. data/test/dummy/log/test.log +6076 -8817
  20. data/test/generators/install_generator_test.rb +13 -0
  21. data/test/tmp/app/models/ckeditor/asset.rb +5 -0
  22. data/test/tmp/app/models/ckeditor/attachment_file.rb +15 -0
  23. data/test/tmp/app/models/ckeditor/picture.rb +13 -0
  24. metadata +161 -1534
  25. data/test/dummy/log/development.log +0 -818
  26. data/test/dummy/log/production.log +0 -0
  27. data/test/dummy/log/server.log +0 -0
  28. data/test/dummy/public/ckeditor_assets/attachments/4e53723cde2f151212000001/rails_tar.gz +0 -0
  29. data/test/dummy/public/ckeditor_assets/attachments/4e537333de2f15123b000001/rails_tar.gz +0 -0
  30. data/test/dummy/public/ckeditor_assets/attachments/4e537621de2f1514e9000001/rails_tar.gz +0 -0
  31. data/test/dummy/public/ckeditor_assets/attachments/4e53766ade2f15152c000001/rails_tar.gz +0 -0
  32. data/test/dummy/public/ckeditor_assets/attachments/4e53781ede2f1515b7000001/rails.tar.gz +0 -0
  33. data/test/dummy/public/ckeditor_assets/attachments/4e537849de2f151651000001/rails_tar.gz +0 -0
  34. data/test/dummy/public/ckeditor_assets/pictures/4e53723dde2f151212000002/content_rails.png +0 -0
  35. data/test/dummy/public/ckeditor_assets/pictures/4e53723dde2f151212000002/original_rails.png +0 -0
  36. data/test/dummy/public/ckeditor_assets/pictures/4e53723dde2f151212000002/thumb_rails.png +0 -0
  37. data/test/dummy/public/ckeditor_assets/pictures/4e537334de2f15123b000002/content_rails.png +0 -0
  38. data/test/dummy/public/ckeditor_assets/pictures/4e537334de2f15123b000002/original_rails.png +0 -0
  39. data/test/dummy/public/ckeditor_assets/pictures/4e537334de2f15123b000002/thumb_rails.png +0 -0
  40. data/test/dummy/public/ckeditor_assets/pictures/4e537637de2f1514e9000007/content_rails.png +0 -0
  41. data/test/dummy/public/ckeditor_assets/pictures/4e537637de2f1514e9000007/original_rails.png +0 -0
  42. data/test/dummy/public/ckeditor_assets/pictures/4e537637de2f1514e9000007/thumb_rails.png +0 -0
  43. data/test/dummy/public/ckeditor_assets/pictures/4e53768ade2f15152c000007/content_rails.png +0 -0
  44. data/test/dummy/public/ckeditor_assets/pictures/4e53768ade2f15152c000007/original_rails.png +0 -0
  45. data/test/dummy/public/ckeditor_assets/pictures/4e53768ade2f15152c000007/thumb_rails.png +0 -0
  46. data/test/dummy/public/ckeditor_assets/pictures/4e53783ade2f1515b7000007/content_rails.png +0 -0
  47. data/test/dummy/public/ckeditor_assets/pictures/4e53783ade2f1515b7000007/rails.png +0 -0
  48. data/test/dummy/public/ckeditor_assets/pictures/4e53783ade2f1515b7000007/thumb_rails.png +0 -0
  49. data/test/dummy/public/ckeditor_assets/pictures/4e537868de2f151651000007/content_rails.png +0 -0
  50. data/test/dummy/public/ckeditor_assets/pictures/4e537868de2f151651000007/original_rails.png +0 -0
  51. data/test/dummy/public/ckeditor_assets/pictures/4e537868de2f151651000007/thumb_rails.png +0 -0
  52. data/test/dummy/public/uploads/tmp/20110823-1231-4694-7541/rails.png +0 -0
  53. data/test/dummy/public/uploads/tmp/20110823-1232-4702-5501/rails.png +0 -0
  54. data/test/dummy/public/uploads/tmp/20110823-1245-5487-0966/rails.png +0 -0
  55. data/test/dummy/public/uploads/tmp/20110823-1245-5487-1597/rails.tar.gz +0 -0
  56. data/test/dummy/public/uploads/tmp/20110823-1245-5487-3892/rails.tar.gz +0 -0
  57. data/test/dummy/public/uploads/tmp/20110823-1245-5487-5787/rails.tar.gz +0 -0
  58. data/test/dummy/public/uploads/tmp/20110823-1245-5487-5790/rails.png +0 -0
  59. data/test/dummy/public/uploads/tmp/20110823-1245-5487-6435/rails.png +0 -0
  60. data/test/dummy/public/uploads/tmp/20110823-1245-5487-6978/rails.png +0 -0
  61. data/test/dummy/public/uploads/tmp/20110823-1245-5487-7226/rails.tar.gz +0 -0
  62. data/test/dummy/public/uploads/tmp/20110823-1245-5487-7290/rails.tar.gz +0 -0
  63. data/test/dummy/public/uploads/tmp/20110823-1245-5487-9279/rails.png +0 -0
  64. data/test/tmp/config/initializers/ckeditor.rb +0 -18
  65. data/test/tmp/public/javascripts/ckeditor/CHANGES.html +0 -1367
  66. data/test/tmp/public/javascripts/ckeditor/INSTALL.html +0 -92
  67. data/test/tmp/public/javascripts/ckeditor/LICENSE.html +0 -1327
  68. data/test/tmp/public/javascripts/ckeditor/_samples/adobeair/application.xml +0 -32
  69. data/test/tmp/public/javascripts/ckeditor/_samples/adobeair/run.bat +0 -9
  70. data/test/tmp/public/javascripts/ckeditor/_samples/adobeair/run.sh +0 -8
  71. data/test/tmp/public/javascripts/ckeditor/_samples/adobeair/sample.html +0 -45
  72. data/test/tmp/public/javascripts/ckeditor/_samples/ajax.html +0 -98
  73. data/test/tmp/public/javascripts/ckeditor/_samples/api.html +0 -192
  74. data/test/tmp/public/javascripts/ckeditor/_samples/api_dialog.html +0 -198
  75. data/test/tmp/public/javascripts/ckeditor/_samples/api_dialog/my_dialog.js +0 -28
  76. data/test/tmp/public/javascripts/ckeditor/_samples/asp/index.html +0 -103
  77. data/test/tmp/public/javascripts/ckeditor/_samples/assets/output_for_flash.fla +0 -0
  78. data/test/tmp/public/javascripts/ckeditor/_samples/assets/output_for_flash.swf +0 -0
  79. data/test/tmp/public/javascripts/ckeditor/_samples/assets/output_xhtml.css +0 -204
  80. data/test/tmp/public/javascripts/ckeditor/_samples/assets/parsesample.css +0 -70
  81. data/test/tmp/public/javascripts/ckeditor/_samples/assets/swfobject.js +0 -18
  82. data/test/tmp/public/javascripts/ckeditor/_samples/autogrow.html +0 -107
  83. data/test/tmp/public/javascripts/ckeditor/_samples/bbcode.html +0 -125
  84. data/test/tmp/public/javascripts/ckeditor/_samples/devtools.html +0 -94
  85. data/test/tmp/public/javascripts/ckeditor/_samples/divreplace.html +0 -154
  86. data/test/tmp/public/javascripts/ckeditor/_samples/enterkey.html +0 -115
  87. data/test/tmp/public/javascripts/ckeditor/_samples/fullpage.html +0 -82
  88. data/test/tmp/public/javascripts/ckeditor/_samples/index.html +0 -116
  89. data/test/tmp/public/javascripts/ckeditor/_samples/jqueryadapter.html +0 -99
  90. data/test/tmp/public/javascripts/ckeditor/_samples/output_for_flash.html +0 -275
  91. data/test/tmp/public/javascripts/ckeditor/_samples/output_html.html +0 -285
  92. data/test/tmp/public/javascripts/ckeditor/_samples/output_xhtml.html +0 -177
  93. data/test/tmp/public/javascripts/ckeditor/_samples/php/index.html +0 -47
  94. data/test/tmp/public/javascripts/ckeditor/_samples/placeholder.html +0 -81
  95. data/test/tmp/public/javascripts/ckeditor/_samples/readonly.html +0 -91
  96. data/test/tmp/public/javascripts/ckeditor/_samples/replacebyclass.html +0 -64
  97. data/test/tmp/public/javascripts/ckeditor/_samples/replacebycode.html +0 -97
  98. data/test/tmp/public/javascripts/ckeditor/_samples/sample.css +0 -163
  99. data/test/tmp/public/javascripts/ckeditor/_samples/sample.js +0 -65
  100. data/test/tmp/public/javascripts/ckeditor/_samples/sharedspaces.html +0 -153
  101. data/test/tmp/public/javascripts/ckeditor/_samples/skins.html +0 -110
  102. data/test/tmp/public/javascripts/ckeditor/_samples/stylesheetparser.html +0 -93
  103. data/test/tmp/public/javascripts/ckeditor/_samples/tableresize.html +0 -115
  104. data/test/tmp/public/javascripts/ckeditor/_samples/ui_color.html +0 -129
  105. data/test/tmp/public/javascripts/ckeditor/_samples/ui_languages.html +0 -134
  106. data/test/tmp/public/javascripts/ckeditor/_source/adapters/jquery.js +0 -306
  107. data/test/tmp/public/javascripts/ckeditor/_source/core/_bootstrap.js +0 -87
  108. data/test/tmp/public/javascripts/ckeditor/_source/core/ckeditor.js +0 -141
  109. data/test/tmp/public/javascripts/ckeditor/_source/core/ckeditor_base.js +0 -227
  110. data/test/tmp/public/javascripts/ckeditor/_source/core/ckeditor_basic.js +0 -238
  111. data/test/tmp/public/javascripts/ckeditor/_source/core/command.js +0 -209
  112. data/test/tmp/public/javascripts/ckeditor/_source/core/commanddefinition.js +0 -129
  113. data/test/tmp/public/javascripts/ckeditor/_source/core/config.js +0 -431
  114. data/test/tmp/public/javascripts/ckeditor/_source/core/dataprocessor.js +0 -65
  115. data/test/tmp/public/javascripts/ckeditor/_source/core/dom.js +0 -20
  116. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/comment.js +0 -32
  117. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/document.js +0 -251
  118. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/documentfragment.js +0 -49
  119. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/domobject.js +0 -258
  120. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/element.js +0 -1681
  121. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/elementpath.js +0 -119
  122. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/event.js +0 -145
  123. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/node.js +0 -695
  124. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/nodelist.js +0 -26
  125. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/range.js +0 -2032
  126. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/rangelist.js +0 -213
  127. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/text.js +0 -128
  128. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/walker.js +0 -462
  129. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/window.js +0 -96
  130. data/test/tmp/public/javascripts/ckeditor/_source/core/dtd.js +0 -266
  131. data/test/tmp/public/javascripts/ckeditor/_source/core/editor.js +0 -1059
  132. data/test/tmp/public/javascripts/ckeditor/_source/core/editor_basic.js +0 -186
  133. data/test/tmp/public/javascripts/ckeditor/_source/core/env.js +0 -291
  134. data/test/tmp/public/javascripts/ckeditor/_source/core/event.js +0 -342
  135. data/test/tmp/public/javascripts/ckeditor/_source/core/eventInfo.js +0 -120
  136. data/test/tmp/public/javascripts/ckeditor/_source/core/focusmanager.js +0 -152
  137. data/test/tmp/public/javascripts/ckeditor/_source/core/htmlparser.js +0 -224
  138. data/test/tmp/public/javascripts/ckeditor/_source/core/htmlparser/basicwriter.js +0 -145
  139. data/test/tmp/public/javascripts/ckeditor/_source/core/htmlparser/cdata.js +0 -43
  140. data/test/tmp/public/javascripts/ckeditor/_source/core/htmlparser/comment.js +0 -60
  141. data/test/tmp/public/javascripts/ckeditor/_source/core/htmlparser/element.js +0 -308
  142. data/test/tmp/public/javascripts/ckeditor/_source/core/htmlparser/filter.js +0 -288
  143. data/test/tmp/public/javascripts/ckeditor/_source/core/htmlparser/fragment.js +0 -497
  144. data/test/tmp/public/javascripts/ckeditor/_source/core/htmlparser/text.js +0 -55
  145. data/test/tmp/public/javascripts/ckeditor/_source/core/lang.js +0 -157
  146. data/test/tmp/public/javascripts/ckeditor/_source/core/loader.js +0 -240
  147. data/test/tmp/public/javascripts/ckeditor/_source/core/plugindefinition.js +0 -83
  148. data/test/tmp/public/javascripts/ckeditor/_source/core/plugins.js +0 -103
  149. data/test/tmp/public/javascripts/ckeditor/_source/core/resourcemanager.js +0 -238
  150. data/test/tmp/public/javascripts/ckeditor/_source/core/scriptloader.js +0 -180
  151. data/test/tmp/public/javascripts/ckeditor/_source/core/skins.js +0 -184
  152. data/test/tmp/public/javascripts/ckeditor/_source/core/themes.js +0 -19
  153. data/test/tmp/public/javascripts/ckeditor/_source/core/tools.js +0 -763
  154. data/test/tmp/public/javascripts/ckeditor/_source/core/ui.js +0 -128
  155. data/test/tmp/public/javascripts/ckeditor/_source/lang/_languages.js +0 -84
  156. data/test/tmp/public/javascripts/ckeditor/_source/lang/_translationstatus.txt +0 -61
  157. data/test/tmp/public/javascripts/ckeditor/_source/lang/af.js +0 -812
  158. data/test/tmp/public/javascripts/ckeditor/_source/lang/ar.js +0 -812
  159. data/test/tmp/public/javascripts/ckeditor/_source/lang/bg.js +0 -812
  160. data/test/tmp/public/javascripts/ckeditor/_source/lang/bn.js +0 -812
  161. data/test/tmp/public/javascripts/ckeditor/_source/lang/bs.js +0 -812
  162. data/test/tmp/public/javascripts/ckeditor/_source/lang/ca.js +0 -812
  163. data/test/tmp/public/javascripts/ckeditor/_source/lang/cs.js +0 -812
  164. data/test/tmp/public/javascripts/ckeditor/_source/lang/cy.js +0 -812
  165. data/test/tmp/public/javascripts/ckeditor/_source/lang/da.js +0 -812
  166. data/test/tmp/public/javascripts/ckeditor/_source/lang/de.js +0 -812
  167. data/test/tmp/public/javascripts/ckeditor/_source/lang/el.js +0 -812
  168. data/test/tmp/public/javascripts/ckeditor/_source/lang/en-au.js +0 -812
  169. data/test/tmp/public/javascripts/ckeditor/_source/lang/en-ca.js +0 -812
  170. data/test/tmp/public/javascripts/ckeditor/_source/lang/en-gb.js +0 -812
  171. data/test/tmp/public/javascripts/ckeditor/_source/lang/en.js +0 -812
  172. data/test/tmp/public/javascripts/ckeditor/_source/lang/eo.js +0 -812
  173. data/test/tmp/public/javascripts/ckeditor/_source/lang/es.js +0 -812
  174. data/test/tmp/public/javascripts/ckeditor/_source/lang/et.js +0 -812
  175. data/test/tmp/public/javascripts/ckeditor/_source/lang/eu.js +0 -812
  176. data/test/tmp/public/javascripts/ckeditor/_source/lang/fa.js +0 -812
  177. data/test/tmp/public/javascripts/ckeditor/_source/lang/fi.js +0 -812
  178. data/test/tmp/public/javascripts/ckeditor/_source/lang/fo.js +0 -812
  179. data/test/tmp/public/javascripts/ckeditor/_source/lang/fr-ca.js +0 -812
  180. data/test/tmp/public/javascripts/ckeditor/_source/lang/fr.js +0 -812
  181. data/test/tmp/public/javascripts/ckeditor/_source/lang/gl.js +0 -812
  182. data/test/tmp/public/javascripts/ckeditor/_source/lang/gu.js +0 -812
  183. data/test/tmp/public/javascripts/ckeditor/_source/lang/he.js +0 -812
  184. data/test/tmp/public/javascripts/ckeditor/_source/lang/hi.js +0 -812
  185. data/test/tmp/public/javascripts/ckeditor/_source/lang/hr.js +0 -812
  186. data/test/tmp/public/javascripts/ckeditor/_source/lang/hu.js +0 -812
  187. data/test/tmp/public/javascripts/ckeditor/_source/lang/is.js +0 -812
  188. data/test/tmp/public/javascripts/ckeditor/_source/lang/it.js +0 -812
  189. data/test/tmp/public/javascripts/ckeditor/_source/lang/ja.js +0 -812
  190. data/test/tmp/public/javascripts/ckeditor/_source/lang/ka.js +0 -812
  191. data/test/tmp/public/javascripts/ckeditor/_source/lang/km.js +0 -812
  192. data/test/tmp/public/javascripts/ckeditor/_source/lang/ko.js +0 -812
  193. data/test/tmp/public/javascripts/ckeditor/_source/lang/lt.js +0 -812
  194. data/test/tmp/public/javascripts/ckeditor/_source/lang/lv.js +0 -812
  195. data/test/tmp/public/javascripts/ckeditor/_source/lang/mn.js +0 -812
  196. data/test/tmp/public/javascripts/ckeditor/_source/lang/ms.js +0 -812
  197. data/test/tmp/public/javascripts/ckeditor/_source/lang/nb.js +0 -812
  198. data/test/tmp/public/javascripts/ckeditor/_source/lang/nl.js +0 -812
  199. data/test/tmp/public/javascripts/ckeditor/_source/lang/no.js +0 -812
  200. data/test/tmp/public/javascripts/ckeditor/_source/lang/pl.js +0 -812
  201. data/test/tmp/public/javascripts/ckeditor/_source/lang/pt-br.js +0 -811
  202. data/test/tmp/public/javascripts/ckeditor/_source/lang/pt.js +0 -812
  203. data/test/tmp/public/javascripts/ckeditor/_source/lang/ro.js +0 -812
  204. data/test/tmp/public/javascripts/ckeditor/_source/lang/ru.js +0 -812
  205. data/test/tmp/public/javascripts/ckeditor/_source/lang/sk.js +0 -812
  206. data/test/tmp/public/javascripts/ckeditor/_source/lang/sl.js +0 -812
  207. data/test/tmp/public/javascripts/ckeditor/_source/lang/sr-latn.js +0 -812
  208. data/test/tmp/public/javascripts/ckeditor/_source/lang/sr.js +0 -812
  209. data/test/tmp/public/javascripts/ckeditor/_source/lang/sv.js +0 -811
  210. data/test/tmp/public/javascripts/ckeditor/_source/lang/th.js +0 -812
  211. data/test/tmp/public/javascripts/ckeditor/_source/lang/tr.js +0 -811
  212. data/test/tmp/public/javascripts/ckeditor/_source/lang/uk.js +0 -812
  213. data/test/tmp/public/javascripts/ckeditor/_source/lang/vi.js +0 -812
  214. data/test/tmp/public/javascripts/ckeditor/_source/lang/zh-cn.js +0 -812
  215. data/test/tmp/public/javascripts/ckeditor/_source/lang/zh.js +0 -812
  216. data/test/tmp/public/javascripts/ckeditor/_source/plugins/a11yhelp/dialogs/a11yhelp.js +0 -222
  217. data/test/tmp/public/javascripts/ckeditor/_source/plugins/a11yhelp/lang/en.js +0 -108
  218. data/test/tmp/public/javascripts/ckeditor/_source/plugins/a11yhelp/lang/he.js +0 -216
  219. data/test/tmp/public/javascripts/ckeditor/_source/plugins/a11yhelp/plugin.js +0 -47
  220. data/test/tmp/public/javascripts/ckeditor/_source/plugins/about/dialogs/about.js +0 -76
  221. data/test/tmp/public/javascripts/ckeditor/_source/plugins/about/dialogs/logo_ckeditor.png +0 -0
  222. data/test/tmp/public/javascripts/ckeditor/_source/plugins/about/plugin.js +0 -24
  223. data/test/tmp/public/javascripts/ckeditor/_source/plugins/adobeair/plugin.js +0 -228
  224. data/test/tmp/public/javascripts/ckeditor/_source/plugins/ajax/plugin.js +0 -152
  225. data/test/tmp/public/javascripts/ckeditor/_source/plugins/autogrow/plugin.js +0 -88
  226. data/test/tmp/public/javascripts/ckeditor/_source/plugins/basicstyles/plugin.js +0 -101
  227. data/test/tmp/public/javascripts/ckeditor/_source/plugins/bbcode/plugin.js +0 -931
  228. data/test/tmp/public/javascripts/ckeditor/_source/plugins/bidi/plugin.js +0 -334
  229. data/test/tmp/public/javascripts/ckeditor/_source/plugins/blockquote/plugin.js +0 -305
  230. data/test/tmp/public/javascripts/ckeditor/_source/plugins/button/plugin.js +0 -290
  231. data/test/tmp/public/javascripts/ckeditor/_source/plugins/clipboard/dialogs/paste.js +0 -223
  232. data/test/tmp/public/javascripts/ckeditor/_source/plugins/clipboard/plugin.js +0 -453
  233. data/test/tmp/public/javascripts/ckeditor/_source/plugins/colorbutton/plugin.js +0 -294
  234. data/test/tmp/public/javascripts/ckeditor/_source/plugins/colordialog/dialogs/colordialog.js +0 -340
  235. data/test/tmp/public/javascripts/ckeditor/_source/plugins/colordialog/plugin.js +0 -15
  236. data/test/tmp/public/javascripts/ckeditor/_source/plugins/contextmenu/plugin.js +0 -177
  237. data/test/tmp/public/javascripts/ckeditor/_source/plugins/devtools/lang/en.js +0 -16
  238. data/test/tmp/public/javascripts/ckeditor/_source/plugins/devtools/plugin.js +0 -173
  239. data/test/tmp/public/javascripts/ckeditor/_source/plugins/dialog/dialogDefinition.js +0 -1166
  240. data/test/tmp/public/javascripts/ckeditor/_source/plugins/dialog/plugin.js +0 -3289
  241. data/test/tmp/public/javascripts/ckeditor/_source/plugins/dialogadvtab/plugin.js +0 -207
  242. data/test/tmp/public/javascripts/ckeditor/_source/plugins/dialogui/plugin.js +0 -1541
  243. data/test/tmp/public/javascripts/ckeditor/_source/plugins/div/dialogs/div.js +0 -535
  244. data/test/tmp/public/javascripts/ckeditor/_source/plugins/div/plugin.js +0 -121
  245. data/test/tmp/public/javascripts/ckeditor/_source/plugins/docprops/dialogs/docprops.js +0 -686
  246. data/test/tmp/public/javascripts/ckeditor/_source/plugins/docprops/plugin.js +0 -22
  247. data/test/tmp/public/javascripts/ckeditor/_source/plugins/domiterator/plugin.js +0 -361
  248. data/test/tmp/public/javascripts/ckeditor/_source/plugins/editingblock/plugin.js +0 -275
  249. data/test/tmp/public/javascripts/ckeditor/_source/plugins/elementspath/plugin.js +0 -218
  250. data/test/tmp/public/javascripts/ckeditor/_source/plugins/enterkey/plugin.js +0 -413
  251. data/test/tmp/public/javascripts/ckeditor/_source/plugins/entities/plugin.js +0 -250
  252. data/test/tmp/public/javascripts/ckeditor/_source/plugins/fakeobjects/plugin.js +0 -175
  253. data/test/tmp/public/javascripts/ckeditor/_source/plugins/filebrowser/plugin.js +0 -524
  254. data/test/tmp/public/javascripts/ckeditor/_source/plugins/find/dialogs/find.js +0 -903
  255. data/test/tmp/public/javascripts/ckeditor/_source/plugins/find/plugin.js +0 -47
  256. data/test/tmp/public/javascripts/ckeditor/_source/plugins/flash/dialogs/flash.js +0 -673
  257. data/test/tmp/public/javascripts/ckeditor/_source/plugins/flash/images/placeholder.png +0 -0
  258. data/test/tmp/public/javascripts/ckeditor/_source/plugins/flash/plugin.js +0 -154
  259. data/test/tmp/public/javascripts/ckeditor/_source/plugins/floatpanel/plugin.js +0 -428
  260. data/test/tmp/public/javascripts/ckeditor/_source/plugins/font/plugin.js +0 -234
  261. data/test/tmp/public/javascripts/ckeditor/_source/plugins/format/plugin.js +0 -197
  262. data/test/tmp/public/javascripts/ckeditor/_source/plugins/forms/dialogs/button.js +0 -118
  263. data/test/tmp/public/javascripts/ckeditor/_source/plugins/forms/dialogs/checkbox.js +0 -153
  264. data/test/tmp/public/javascripts/ckeditor/_source/plugins/forms/dialogs/form.js +0 -177
  265. data/test/tmp/public/javascripts/ckeditor/_source/plugins/forms/dialogs/hiddenfield.js +0 -100
  266. data/test/tmp/public/javascripts/ckeditor/_source/plugins/forms/dialogs/radio.js +0 -135
  267. data/test/tmp/public/javascripts/ckeditor/_source/plugins/forms/dialogs/select.js +0 -558
  268. data/test/tmp/public/javascripts/ckeditor/_source/plugins/forms/dialogs/textarea.js +0 -114
  269. data/test/tmp/public/javascripts/ckeditor/_source/plugins/forms/dialogs/textfield.js +0 -199
  270. data/test/tmp/public/javascripts/ckeditor/_source/plugins/forms/images/hiddenfield.gif +0 -0
  271. data/test/tmp/public/javascripts/ckeditor/_source/plugins/forms/plugin.js +0 -288
  272. data/test/tmp/public/javascripts/ckeditor/_source/plugins/horizontalrule/plugin.js +0 -48
  273. data/test/tmp/public/javascripts/ckeditor/_source/plugins/htmldataprocessor/plugin.js +0 -595
  274. data/test/tmp/public/javascripts/ckeditor/_source/plugins/htmlwriter/plugin.js +0 -319
  275. data/test/tmp/public/javascripts/ckeditor/_source/plugins/iframe/dialogs/iframe.js +0 -229
  276. data/test/tmp/public/javascripts/ckeditor/_source/plugins/iframe/images/placeholder.png +0 -0
  277. data/test/tmp/public/javascripts/ckeditor/_source/plugins/iframe/plugin.js +0 -87
  278. data/test/tmp/public/javascripts/ckeditor/_source/plugins/iframedialog/plugin.js +0 -188
  279. data/test/tmp/public/javascripts/ckeditor/_source/plugins/image/dialogs/image.js +0 -1406
  280. data/test/tmp/public/javascripts/ckeditor/_source/plugins/image/plugin.js +0 -81
  281. data/test/tmp/public/javascripts/ckeditor/_source/plugins/indent/plugin.js +0 -461
  282. data/test/tmp/public/javascripts/ckeditor/_source/plugins/justify/plugin.js +0 -253
  283. data/test/tmp/public/javascripts/ckeditor/_source/plugins/keystrokes/plugin.js +0 -225
  284. data/test/tmp/public/javascripts/ckeditor/_source/plugins/link/dialogs/anchor.js +0 -144
  285. data/test/tmp/public/javascripts/ckeditor/_source/plugins/link/dialogs/link.js +0 -1424
  286. data/test/tmp/public/javascripts/ckeditor/_source/plugins/link/images/anchor.gif +0 -0
  287. data/test/tmp/public/javascripts/ckeditor/_source/plugins/link/plugin.js +0 -374
  288. data/test/tmp/public/javascripts/ckeditor/_source/plugins/list/plugin.js +0 -734
  289. data/test/tmp/public/javascripts/ckeditor/_source/plugins/listblock/plugin.js +0 -268
  290. data/test/tmp/public/javascripts/ckeditor/_source/plugins/liststyle/dialogs/liststyle.js +0 -225
  291. data/test/tmp/public/javascripts/ckeditor/_source/plugins/liststyle/plugin.js +0 -66
  292. data/test/tmp/public/javascripts/ckeditor/_source/plugins/maximize/plugin.js +0 -352
  293. data/test/tmp/public/javascripts/ckeditor/_source/plugins/menu/plugin.js +0 -541
  294. data/test/tmp/public/javascripts/ckeditor/_source/plugins/menubutton/plugin.js +0 -98
  295. data/test/tmp/public/javascripts/ckeditor/_source/plugins/newpage/plugin.js +0 -54
  296. data/test/tmp/public/javascripts/ckeditor/_source/plugins/pagebreak/images/pagebreak.gif +0 -0
  297. data/test/tmp/public/javascripts/ckeditor/_source/plugins/pagebreak/plugin.js +0 -164
  298. data/test/tmp/public/javascripts/ckeditor/_source/plugins/panel/plugin.js +0 -403
  299. data/test/tmp/public/javascripts/ckeditor/_source/plugins/panelbutton/plugin.js +0 -144
  300. data/test/tmp/public/javascripts/ckeditor/_source/plugins/pastefromword/filter/default.js +0 -1367
  301. data/test/tmp/public/javascripts/ckeditor/_source/plugins/pastefromword/plugin.js +0 -141
  302. data/test/tmp/public/javascripts/ckeditor/_source/plugins/pastetext/dialogs/pastetext.js +0 -67
  303. data/test/tmp/public/javascripts/ckeditor/_source/plugins/pastetext/plugin.js +0 -98
  304. data/test/tmp/public/javascripts/ckeditor/_source/plugins/placeholder/dialogs/placeholder.js +0 -71
  305. data/test/tmp/public/javascripts/ckeditor/_source/plugins/placeholder/lang/en.js +0 -16
  306. data/test/tmp/public/javascripts/ckeditor/_source/plugins/placeholder/lang/he.js +0 -16
  307. data/test/tmp/public/javascripts/ckeditor/_source/plugins/placeholder/placeholder.gif +0 -0
  308. data/test/tmp/public/javascripts/ckeditor/_source/plugins/placeholder/plugin.js +0 -171
  309. data/test/tmp/public/javascripts/ckeditor/_source/plugins/popup/plugin.js +0 -64
  310. data/test/tmp/public/javascripts/ckeditor/_source/plugins/preview/plugin.js +0 -109
  311. data/test/tmp/public/javascripts/ckeditor/_source/plugins/print/plugin.js +0 -42
  312. data/test/tmp/public/javascripts/ckeditor/_source/plugins/removeformat/plugin.js +0 -185
  313. data/test/tmp/public/javascripts/ckeditor/_source/plugins/resize/plugin.js +0 -168
  314. data/test/tmp/public/javascripts/ckeditor/_source/plugins/richcombo/plugin.js +0 -381
  315. data/test/tmp/public/javascripts/ckeditor/_source/plugins/save/plugin.js +0 -56
  316. data/test/tmp/public/javascripts/ckeditor/_source/plugins/scayt/dialogs/options.js +0 -537
  317. data/test/tmp/public/javascripts/ckeditor/_source/plugins/scayt/dialogs/toolbar.css +0 -71
  318. data/test/tmp/public/javascripts/ckeditor/_source/plugins/scayt/plugin.js +0 -964
  319. data/test/tmp/public/javascripts/ckeditor/_source/plugins/selection/plugin.js +0 -1601
  320. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_address.png +0 -0
  321. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_blockquote.png +0 -0
  322. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_div.png +0 -0
  323. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_h1.png +0 -0
  324. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_h2.png +0 -0
  325. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_h3.png +0 -0
  326. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_h4.png +0 -0
  327. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_h5.png +0 -0
  328. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_h6.png +0 -0
  329. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_p.png +0 -0
  330. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_pre.png +0 -0
  331. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showblocks/plugin.js +0 -160
  332. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showborders/plugin.js +0 -207
  333. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/dialogs/smiley.js +0 -224
  334. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/angel_smile.gif +0 -0
  335. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/angry_smile.gif +0 -0
  336. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/broken_heart.gif +0 -0
  337. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/confused_smile.gif +0 -0
  338. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/cry_smile.gif +0 -0
  339. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/devil_smile.gif +0 -0
  340. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/embaressed_smile.gif +0 -0
  341. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/envelope.gif +0 -0
  342. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/heart.gif +0 -0
  343. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/kiss.gif +0 -0
  344. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/lightbulb.gif +0 -0
  345. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/omg_smile.gif +0 -0
  346. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/regular_smile.gif +0 -0
  347. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/sad_smile.gif +0 -0
  348. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/shades_smile.gif +0 -0
  349. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/teeth_smile.gif +0 -0
  350. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/thumbs_down.gif +0 -0
  351. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/thumbs_up.gif +0 -0
  352. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/tounge_smile.gif +0 -0
  353. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  354. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/wink_smile.gif +0 -0
  355. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/plugin.js +0 -94
  356. data/test/tmp/public/javascripts/ckeditor/_source/plugins/sourcearea/plugin.js +0 -209
  357. data/test/tmp/public/javascripts/ckeditor/_source/plugins/specialchar/dialogs/specialchar.js +0 -350
  358. data/test/tmp/public/javascripts/ckeditor/_source/plugins/specialchar/lang/en.js +0 -89
  359. data/test/tmp/public/javascripts/ckeditor/_source/plugins/specialchar/plugin.js +0 -70
  360. data/test/tmp/public/javascripts/ckeditor/_source/plugins/styles/plugin.js +0 -1696
  361. data/test/tmp/public/javascripts/ckeditor/_source/plugins/styles/styles/default.js +0 -88
  362. data/test/tmp/public/javascripts/ckeditor/_source/plugins/stylescombo/plugin.js +0 -218
  363. data/test/tmp/public/javascripts/ckeditor/_source/plugins/stylesheetparser/plugin.js +0 -148
  364. data/test/tmp/public/javascripts/ckeditor/_source/plugins/tab/plugin.js +0 -367
  365. data/test/tmp/public/javascripts/ckeditor/_source/plugins/table/dialogs/table.js +0 -602
  366. data/test/tmp/public/javascripts/ckeditor/_source/plugins/table/plugin.js +0 -78
  367. data/test/tmp/public/javascripts/ckeditor/_source/plugins/tableresize/plugin.js +0 -443
  368. data/test/tmp/public/javascripts/ckeditor/_source/plugins/tabletools/dialogs/tableCell.js +0 -525
  369. data/test/tmp/public/javascripts/ckeditor/_source/plugins/tabletools/plugin.js +0 -1194
  370. data/test/tmp/public/javascripts/ckeditor/_source/plugins/templates/dialogs/templates.js +0 -234
  371. data/test/tmp/public/javascripts/ckeditor/_source/plugins/templates/plugin.js +0 -99
  372. data/test/tmp/public/javascripts/ckeditor/_source/plugins/templates/templates/default.js +0 -94
  373. data/test/tmp/public/javascripts/ckeditor/_source/plugins/templates/templates/images/template1.gif +0 -0
  374. data/test/tmp/public/javascripts/ckeditor/_source/plugins/templates/templates/images/template2.gif +0 -0
  375. data/test/tmp/public/javascripts/ckeditor/_source/plugins/templates/templates/images/template3.gif +0 -0
  376. data/test/tmp/public/javascripts/ckeditor/_source/plugins/toolbar/plugin.js +0 -545
  377. data/test/tmp/public/javascripts/ckeditor/_source/plugins/uicolor/dialogs/uicolor.js +0 -205
  378. data/test/tmp/public/javascripts/ckeditor/_source/plugins/uicolor/lang/en.js +0 -15
  379. data/test/tmp/public/javascripts/ckeditor/_source/plugins/uicolor/lang/he.js +0 -15
  380. data/test/tmp/public/javascripts/ckeditor/_source/plugins/uicolor/plugin.js +0 -37
  381. data/test/tmp/public/javascripts/ckeditor/_source/plugins/uicolor/uicolor.gif +0 -0
  382. data/test/tmp/public/javascripts/ckeditor/_source/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  383. data/test/tmp/public/javascripts/ckeditor/_source/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  384. data/test/tmp/public/javascripts/ckeditor/_source/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  385. data/test/tmp/public/javascripts/ckeditor/_source/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  386. data/test/tmp/public/javascripts/ckeditor/_source/plugins/uicolor/yui/assets/yui.css +0 -15
  387. data/test/tmp/public/javascripts/ckeditor/_source/plugins/uicolor/yui/yui.js +0 -71
  388. data/test/tmp/public/javascripts/ckeditor/_source/plugins/undo/plugin.js +0 -580
  389. data/test/tmp/public/javascripts/ckeditor/_source/plugins/wsc/dialogs/ciframe.html +0 -49
  390. data/test/tmp/public/javascripts/ckeditor/_source/plugins/wsc/dialogs/tmpFrameset.html +0 -52
  391. data/test/tmp/public/javascripts/ckeditor/_source/plugins/wsc/dialogs/wsc.css +0 -82
  392. data/test/tmp/public/javascripts/ckeditor/_source/plugins/wsc/dialogs/wsc.js +0 -192
  393. data/test/tmp/public/javascripts/ckeditor/_source/plugins/wsc/plugin.js +0 -33
  394. data/test/tmp/public/javascripts/ckeditor/_source/plugins/wysiwygarea/plugin.js +0 -1351
  395. data/test/tmp/public/javascripts/ckeditor/_source/plugins/xml/plugin.js +0 -170
  396. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/dialog.css +0 -943
  397. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/editor.css +0 -25
  398. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/elementspath.css +0 -73
  399. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/icons.css +0 -366
  400. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/icons.png +0 -0
  401. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/icons_rtl.png +0 -0
  402. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/images/dialog_sides.gif +0 -0
  403. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/images/dialog_sides.png +0 -0
  404. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/images/dialog_sides_rtl.png +0 -0
  405. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/images/mini.gif +0 -0
  406. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/images/noimage.png +0 -0
  407. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/images/sprites.png +0 -0
  408. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/images/sprites_ie6.png +0 -0
  409. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/images/toolbar_start.gif +0 -0
  410. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/mainui.css +0 -203
  411. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/menu.css +0 -232
  412. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/panel.css +0 -217
  413. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/presets.css +0 -49
  414. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/reset.css +0 -84
  415. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/richcombo.css +0 -287
  416. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/skin.js +0 -236
  417. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/templates.css +0 -88
  418. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/toolbar.css +0 -407
  419. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/dialog.css +0 -844
  420. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/editor.css +0 -25
  421. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/elementspath.css +0 -74
  422. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/icons.css +0 -363
  423. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/icons.png +0 -0
  424. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/icons_rtl.png +0 -0
  425. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/images/dialog_sides.gif +0 -0
  426. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/images/dialog_sides.png +0 -0
  427. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/images/dialog_sides_rtl.png +0 -0
  428. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/images/mini.gif +0 -0
  429. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/images/noimage.png +0 -0
  430. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/images/sprites.png +0 -0
  431. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/images/sprites_ie6.png +0 -0
  432. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/mainui.css +0 -153
  433. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/menu.css +0 -229
  434. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/panel.css +0 -212
  435. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/presets.css +0 -49
  436. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/reset.css +0 -84
  437. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/richcombo.css +0 -309
  438. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/skin.js +0 -74
  439. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/templates.css +0 -87
  440. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/toolbar.css +0 -522
  441. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/dialog.css +0 -861
  442. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/editor.css +0 -25
  443. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/elementspath.css +0 -74
  444. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/icons.css +0 -363
  445. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/icons.png +0 -0
  446. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/icons_rtl.png +0 -0
  447. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/images/dialog_sides.gif +0 -0
  448. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/images/dialog_sides.png +0 -0
  449. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/images/dialog_sides_rtl.png +0 -0
  450. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/images/mini.gif +0 -0
  451. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/images/noimage.png +0 -0
  452. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/images/sprites.png +0 -0
  453. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/images/sprites_ie6.png +0 -0
  454. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/images/toolbar_start.gif +0 -0
  455. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/mainui.css +0 -162
  456. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/menu.css +0 -232
  457. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/panel.css +0 -212
  458. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/presets.css +0 -50
  459. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/reset.css +0 -84
  460. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/richcombo.css +0 -302
  461. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/skin.js +0 -70
  462. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/templates.css +0 -87
  463. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/toolbar.css +0 -465
  464. data/test/tmp/public/javascripts/ckeditor/_source/themes/default/theme.js +0 -395
  465. data/test/tmp/public/javascripts/ckeditor/adapters/jquery.js +0 -6
  466. data/test/tmp/public/javascripts/ckeditor/ckeditor.js +0 -147
  467. data/test/tmp/public/javascripts/ckeditor/ckeditor.pack +0 -211
  468. data/test/tmp/public/javascripts/ckeditor/ckeditor_basic.js +0 -8
  469. data/test/tmp/public/javascripts/ckeditor/ckeditor_basic_source.js +0 -20
  470. data/test/tmp/public/javascripts/ckeditor/ckeditor_source.js +0 -25
  471. data/test/tmp/public/javascripts/ckeditor/config.js +0 -65
  472. data/test/tmp/public/javascripts/ckeditor/contents.css +0 -25
  473. data/test/tmp/public/javascripts/ckeditor/filebrowser/images/gal_add.jpg +0 -0
  474. data/test/tmp/public/javascripts/ckeditor/filebrowser/images/gal_add.png +0 -0
  475. data/test/tmp/public/javascripts/ckeditor/filebrowser/images/gal_del.png +0 -0
  476. data/test/tmp/public/javascripts/ckeditor/filebrowser/images/gal_more.gif +0 -0
  477. data/test/tmp/public/javascripts/ckeditor/filebrowser/images/preloader.gif +0 -0
  478. data/test/tmp/public/javascripts/ckeditor/filebrowser/images/thumbs/ckfnothumb.gif +0 -0
  479. data/test/tmp/public/javascripts/ckeditor/filebrowser/images/thumbs/mp3.gif +0 -0
  480. data/test/tmp/public/javascripts/ckeditor/filebrowser/images/thumbs/pdf.gif +0 -0
  481. data/test/tmp/public/javascripts/ckeditor/filebrowser/images/thumbs/rar.gif +0 -0
  482. data/test/tmp/public/javascripts/ckeditor/filebrowser/images/thumbs/swf.gif +0 -0
  483. data/test/tmp/public/javascripts/ckeditor/filebrowser/images/thumbs/xls.gif +0 -0
  484. data/test/tmp/public/javascripts/ckeditor/filebrowser/javascripts/application.js +0 -222
  485. data/test/tmp/public/javascripts/ckeditor/filebrowser/javascripts/fileuploader.js +0 -1301
  486. data/test/tmp/public/javascripts/ckeditor/filebrowser/javascripts/jquery.js +0 -18
  487. data/test/tmp/public/javascripts/ckeditor/filebrowser/javascripts/jquery.tmpl.js +0 -10
  488. data/test/tmp/public/javascripts/ckeditor/filebrowser/javascripts/rails.js +0 -363
  489. data/test/tmp/public/javascripts/ckeditor/filebrowser/stylesheets/uploader.css +0 -117
  490. data/test/tmp/public/javascripts/ckeditor/images/spacer.gif +0 -0
  491. data/test/tmp/public/javascripts/ckeditor/lang/_languages.js +0 -6
  492. data/test/tmp/public/javascripts/ckeditor/lang/_translationstatus.txt +0 -61
  493. data/test/tmp/public/javascripts/ckeditor/lang/af.js +0 -6
  494. data/test/tmp/public/javascripts/ckeditor/lang/ar.js +0 -6
  495. data/test/tmp/public/javascripts/ckeditor/lang/bg.js +0 -6
  496. data/test/tmp/public/javascripts/ckeditor/lang/bn.js +0 -6
  497. data/test/tmp/public/javascripts/ckeditor/lang/bs.js +0 -6
  498. data/test/tmp/public/javascripts/ckeditor/lang/ca.js +0 -6
  499. data/test/tmp/public/javascripts/ckeditor/lang/cs.js +0 -6
  500. data/test/tmp/public/javascripts/ckeditor/lang/cy.js +0 -6
  501. data/test/tmp/public/javascripts/ckeditor/lang/da.js +0 -6
  502. data/test/tmp/public/javascripts/ckeditor/lang/de.js +0 -6
  503. data/test/tmp/public/javascripts/ckeditor/lang/el.js +0 -6
  504. data/test/tmp/public/javascripts/ckeditor/lang/en-au.js +0 -6
  505. data/test/tmp/public/javascripts/ckeditor/lang/en-ca.js +0 -6
  506. data/test/tmp/public/javascripts/ckeditor/lang/en-gb.js +0 -6
  507. data/test/tmp/public/javascripts/ckeditor/lang/en.js +0 -6
  508. data/test/tmp/public/javascripts/ckeditor/lang/eo.js +0 -6
  509. data/test/tmp/public/javascripts/ckeditor/lang/es.js +0 -6
  510. data/test/tmp/public/javascripts/ckeditor/lang/et.js +0 -6
  511. data/test/tmp/public/javascripts/ckeditor/lang/eu.js +0 -6
  512. data/test/tmp/public/javascripts/ckeditor/lang/fa.js +0 -6
  513. data/test/tmp/public/javascripts/ckeditor/lang/fi.js +0 -6
  514. data/test/tmp/public/javascripts/ckeditor/lang/fo.js +0 -6
  515. data/test/tmp/public/javascripts/ckeditor/lang/fr-ca.js +0 -6
  516. data/test/tmp/public/javascripts/ckeditor/lang/fr.js +0 -6
  517. data/test/tmp/public/javascripts/ckeditor/lang/gl.js +0 -6
  518. data/test/tmp/public/javascripts/ckeditor/lang/gu.js +0 -6
  519. data/test/tmp/public/javascripts/ckeditor/lang/he.js +0 -6
  520. data/test/tmp/public/javascripts/ckeditor/lang/hi.js +0 -6
  521. data/test/tmp/public/javascripts/ckeditor/lang/hr.js +0 -6
  522. data/test/tmp/public/javascripts/ckeditor/lang/hu.js +0 -6
  523. data/test/tmp/public/javascripts/ckeditor/lang/is.js +0 -6
  524. data/test/tmp/public/javascripts/ckeditor/lang/it.js +0 -6
  525. data/test/tmp/public/javascripts/ckeditor/lang/ja.js +0 -6
  526. data/test/tmp/public/javascripts/ckeditor/lang/ka.js +0 -6
  527. data/test/tmp/public/javascripts/ckeditor/lang/km.js +0 -6
  528. data/test/tmp/public/javascripts/ckeditor/lang/ko.js +0 -6
  529. data/test/tmp/public/javascripts/ckeditor/lang/lt.js +0 -6
  530. data/test/tmp/public/javascripts/ckeditor/lang/lv.js +0 -6
  531. data/test/tmp/public/javascripts/ckeditor/lang/mn.js +0 -6
  532. data/test/tmp/public/javascripts/ckeditor/lang/ms.js +0 -6
  533. data/test/tmp/public/javascripts/ckeditor/lang/nb.js +0 -6
  534. data/test/tmp/public/javascripts/ckeditor/lang/nl.js +0 -6
  535. data/test/tmp/public/javascripts/ckeditor/lang/no.js +0 -6
  536. data/test/tmp/public/javascripts/ckeditor/lang/pl.js +0 -6
  537. data/test/tmp/public/javascripts/ckeditor/lang/pt-br.js +0 -6
  538. data/test/tmp/public/javascripts/ckeditor/lang/pt.js +0 -6
  539. data/test/tmp/public/javascripts/ckeditor/lang/ro.js +0 -6
  540. data/test/tmp/public/javascripts/ckeditor/lang/ru.js +0 -6
  541. data/test/tmp/public/javascripts/ckeditor/lang/sk.js +0 -6
  542. data/test/tmp/public/javascripts/ckeditor/lang/sl.js +0 -6
  543. data/test/tmp/public/javascripts/ckeditor/lang/sr-latn.js +0 -6
  544. data/test/tmp/public/javascripts/ckeditor/lang/sr.js +0 -6
  545. data/test/tmp/public/javascripts/ckeditor/lang/sv.js +0 -6
  546. data/test/tmp/public/javascripts/ckeditor/lang/th.js +0 -6
  547. data/test/tmp/public/javascripts/ckeditor/lang/tr.js +0 -6
  548. data/test/tmp/public/javascripts/ckeditor/lang/uk.js +0 -6
  549. data/test/tmp/public/javascripts/ckeditor/lang/vi.js +0 -6
  550. data/test/tmp/public/javascripts/ckeditor/lang/zh-cn.js +0 -6
  551. data/test/tmp/public/javascripts/ckeditor/lang/zh.js +0 -6
  552. data/test/tmp/public/javascripts/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +0 -7
  553. data/test/tmp/public/javascripts/ckeditor/plugins/a11yhelp/lang/en.js +0 -6
  554. data/test/tmp/public/javascripts/ckeditor/plugins/a11yhelp/lang/he.js +0 -6
  555. data/test/tmp/public/javascripts/ckeditor/plugins/about/dialogs/about.js +0 -6
  556. data/test/tmp/public/javascripts/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  557. data/test/tmp/public/javascripts/ckeditor/plugins/adobeair/plugin.js +0 -6
  558. data/test/tmp/public/javascripts/ckeditor/plugins/ajax/plugin.js +0 -6
  559. data/test/tmp/public/javascripts/ckeditor/plugins/attachment/dialogs/attachment.js +0 -1
  560. data/test/tmp/public/javascripts/ckeditor/plugins/attachment/images/attachment.png +0 -0
  561. data/test/tmp/public/javascripts/ckeditor/plugins/attachment/lang/en.js +0 -10
  562. data/test/tmp/public/javascripts/ckeditor/plugins/attachment/lang/ru.js +0 -10
  563. data/test/tmp/public/javascripts/ckeditor/plugins/attachment/lang/uk.js +0 -10
  564. data/test/tmp/public/javascripts/ckeditor/plugins/attachment/plugin.js +0 -1
  565. data/test/tmp/public/javascripts/ckeditor/plugins/autogrow/plugin.js +0 -6
  566. data/test/tmp/public/javascripts/ckeditor/plugins/bbcode/plugin.js +0 -9
  567. data/test/tmp/public/javascripts/ckeditor/plugins/clipboard/dialogs/paste.js +0 -7
  568. data/test/tmp/public/javascripts/ckeditor/plugins/colordialog/dialogs/colordialog.js +0 -7
  569. data/test/tmp/public/javascripts/ckeditor/plugins/devtools/lang/en.js +0 -6
  570. data/test/tmp/public/javascripts/ckeditor/plugins/devtools/plugin.js +0 -6
  571. data/test/tmp/public/javascripts/ckeditor/plugins/dialog/dialogDefinition.js +0 -4
  572. data/test/tmp/public/javascripts/ckeditor/plugins/div/dialogs/div.js +0 -8
  573. data/test/tmp/public/javascripts/ckeditor/plugins/docprops/dialogs/docprops.js +0 -10
  574. data/test/tmp/public/javascripts/ckeditor/plugins/docprops/plugin.js +0 -6
  575. data/test/tmp/public/javascripts/ckeditor/plugins/embed/dialogs/embed.js +0 -1
  576. data/test/tmp/public/javascripts/ckeditor/plugins/embed/images/embed.png +0 -0
  577. data/test/tmp/public/javascripts/ckeditor/plugins/embed/lang/en.js +0 -9
  578. data/test/tmp/public/javascripts/ckeditor/plugins/embed/lang/ru.js +0 -9
  579. data/test/tmp/public/javascripts/ckeditor/plugins/embed/lang/uk.js +0 -9
  580. data/test/tmp/public/javascripts/ckeditor/plugins/embed/plugin.js +0 -1
  581. data/test/tmp/public/javascripts/ckeditor/plugins/find/dialogs/find.js +0 -10
  582. data/test/tmp/public/javascripts/ckeditor/plugins/flash/dialogs/flash.js +0 -9
  583. data/test/tmp/public/javascripts/ckeditor/plugins/flash/images/placeholder.png +0 -0
  584. data/test/tmp/public/javascripts/ckeditor/plugins/forms/dialogs/button.js +0 -6
  585. data/test/tmp/public/javascripts/ckeditor/plugins/forms/dialogs/checkbox.js +0 -6
  586. data/test/tmp/public/javascripts/ckeditor/plugins/forms/dialogs/form.js +0 -6
  587. data/test/tmp/public/javascripts/ckeditor/plugins/forms/dialogs/hiddenfield.js +0 -6
  588. data/test/tmp/public/javascripts/ckeditor/plugins/forms/dialogs/radio.js +0 -6
  589. data/test/tmp/public/javascripts/ckeditor/plugins/forms/dialogs/select.js +0 -9
  590. data/test/tmp/public/javascripts/ckeditor/plugins/forms/dialogs/textarea.js +0 -6
  591. data/test/tmp/public/javascripts/ckeditor/plugins/forms/dialogs/textfield.js +0 -6
  592. data/test/tmp/public/javascripts/ckeditor/plugins/forms/images/hiddenfield.gif +0 -0
  593. data/test/tmp/public/javascripts/ckeditor/plugins/iframe/dialogs/iframe.js +0 -7
  594. data/test/tmp/public/javascripts/ckeditor/plugins/iframe/images/placeholder.png +0 -0
  595. data/test/tmp/public/javascripts/ckeditor/plugins/iframedialog/plugin.js +0 -6
  596. data/test/tmp/public/javascripts/ckeditor/plugins/image/dialogs/image.js +0 -13
  597. data/test/tmp/public/javascripts/ckeditor/plugins/link/dialogs/anchor.js +0 -6
  598. data/test/tmp/public/javascripts/ckeditor/plugins/link/dialogs/link.js +0 -12
  599. data/test/tmp/public/javascripts/ckeditor/plugins/link/images/anchor.gif +0 -0
  600. data/test/tmp/public/javascripts/ckeditor/plugins/liststyle/dialogs/liststyle.js +0 -7
  601. data/test/tmp/public/javascripts/ckeditor/plugins/pagebreak/images/pagebreak.gif +0 -0
  602. data/test/tmp/public/javascripts/ckeditor/plugins/pastefromword/filter/default.js +0 -11
  603. data/test/tmp/public/javascripts/ckeditor/plugins/pastetext/dialogs/pastetext.js +0 -6
  604. data/test/tmp/public/javascripts/ckeditor/plugins/placeholder/dialogs/placeholder.js +0 -6
  605. data/test/tmp/public/javascripts/ckeditor/plugins/placeholder/lang/en.js +0 -6
  606. data/test/tmp/public/javascripts/ckeditor/plugins/placeholder/lang/he.js +0 -6
  607. data/test/tmp/public/javascripts/ckeditor/plugins/placeholder/placeholder.gif +0 -0
  608. data/test/tmp/public/javascripts/ckeditor/plugins/placeholder/plugin.js +0 -6
  609. data/test/tmp/public/javascripts/ckeditor/plugins/scayt/dialogs/options.js +0 -8
  610. data/test/tmp/public/javascripts/ckeditor/plugins/scayt/dialogs/toolbar.css +0 -6
  611. data/test/tmp/public/javascripts/ckeditor/plugins/showblocks/images/block_address.png +0 -0
  612. data/test/tmp/public/javascripts/ckeditor/plugins/showblocks/images/block_blockquote.png +0 -0
  613. data/test/tmp/public/javascripts/ckeditor/plugins/showblocks/images/block_div.png +0 -0
  614. data/test/tmp/public/javascripts/ckeditor/plugins/showblocks/images/block_h1.png +0 -0
  615. data/test/tmp/public/javascripts/ckeditor/plugins/showblocks/images/block_h2.png +0 -0
  616. data/test/tmp/public/javascripts/ckeditor/plugins/showblocks/images/block_h3.png +0 -0
  617. data/test/tmp/public/javascripts/ckeditor/plugins/showblocks/images/block_h4.png +0 -0
  618. data/test/tmp/public/javascripts/ckeditor/plugins/showblocks/images/block_h5.png +0 -0
  619. data/test/tmp/public/javascripts/ckeditor/plugins/showblocks/images/block_h6.png +0 -0
  620. data/test/tmp/public/javascripts/ckeditor/plugins/showblocks/images/block_p.png +0 -0
  621. data/test/tmp/public/javascripts/ckeditor/plugins/showblocks/images/block_pre.png +0 -0
  622. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/dialogs/smiley.js +0 -7
  623. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/angel_smile.gif +0 -0
  624. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/angry_smile.gif +0 -0
  625. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/broken_heart.gif +0 -0
  626. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/confused_smile.gif +0 -0
  627. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/cry_smile.gif +0 -0
  628. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/devil_smile.gif +0 -0
  629. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/embaressed_smile.gif +0 -0
  630. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/envelope.gif +0 -0
  631. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/heart.gif +0 -0
  632. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/kiss.gif +0 -0
  633. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/lightbulb.gif +0 -0
  634. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/omg_smile.gif +0 -0
  635. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/regular_smile.gif +0 -0
  636. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/sad_smile.gif +0 -0
  637. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/shades_smile.gif +0 -0
  638. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/teeth_smile.gif +0 -0
  639. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/thumbs_down.gif +0 -0
  640. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/thumbs_up.gif +0 -0
  641. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/tounge_smile.gif +0 -0
  642. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  643. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/wink_smile.gif +0 -0
  644. data/test/tmp/public/javascripts/ckeditor/plugins/specialchar/dialogs/specialchar.js +0 -7
  645. data/test/tmp/public/javascripts/ckeditor/plugins/specialchar/lang/en.js +0 -6
  646. data/test/tmp/public/javascripts/ckeditor/plugins/styles/styles/default.js +0 -6
  647. data/test/tmp/public/javascripts/ckeditor/plugins/stylesheetparser/plugin.js +0 -6
  648. data/test/tmp/public/javascripts/ckeditor/plugins/table/dialogs/table.js +0 -9
  649. data/test/tmp/public/javascripts/ckeditor/plugins/tableresize/plugin.js +0 -7
  650. data/test/tmp/public/javascripts/ckeditor/plugins/tabletools/dialogs/tableCell.js +0 -8
  651. data/test/tmp/public/javascripts/ckeditor/plugins/templates/dialogs/templates.js +0 -7
  652. data/test/tmp/public/javascripts/ckeditor/plugins/templates/templates/default.js +0 -6
  653. data/test/tmp/public/javascripts/ckeditor/plugins/templates/templates/images/template1.gif +0 -0
  654. data/test/tmp/public/javascripts/ckeditor/plugins/templates/templates/images/template2.gif +0 -0
  655. data/test/tmp/public/javascripts/ckeditor/plugins/templates/templates/images/template3.gif +0 -0
  656. data/test/tmp/public/javascripts/ckeditor/plugins/uicolor/dialogs/uicolor.js +0 -7
  657. data/test/tmp/public/javascripts/ckeditor/plugins/uicolor/lang/en.js +0 -6
  658. data/test/tmp/public/javascripts/ckeditor/plugins/uicolor/lang/he.js +0 -6
  659. data/test/tmp/public/javascripts/ckeditor/plugins/uicolor/plugin.js +0 -6
  660. data/test/tmp/public/javascripts/ckeditor/plugins/uicolor/uicolor.gif +0 -0
  661. data/test/tmp/public/javascripts/ckeditor/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  662. data/test/tmp/public/javascripts/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  663. data/test/tmp/public/javascripts/ckeditor/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  664. data/test/tmp/public/javascripts/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  665. data/test/tmp/public/javascripts/ckeditor/plugins/uicolor/yui/assets/yui.css +0 -6
  666. data/test/tmp/public/javascripts/ckeditor/plugins/uicolor/yui/yui.js +0 -76
  667. data/test/tmp/public/javascripts/ckeditor/plugins/wsc/dialogs/ciframe.html +0 -49
  668. data/test/tmp/public/javascripts/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +0 -52
  669. data/test/tmp/public/javascripts/ckeditor/plugins/wsc/dialogs/wsc.css +0 -6
  670. data/test/tmp/public/javascripts/ckeditor/plugins/wsc/dialogs/wsc.js +0 -7
  671. data/test/tmp/public/javascripts/ckeditor/plugins/xml/plugin.js +0 -6
  672. data/test/tmp/public/javascripts/ckeditor/skins/kama/dialog.css +0 -10
  673. data/test/tmp/public/javascripts/ckeditor/skins/kama/editor.css +0 -13
  674. data/test/tmp/public/javascripts/ckeditor/skins/kama/icons.png +0 -0
  675. data/test/tmp/public/javascripts/ckeditor/skins/kama/icons_rtl.png +0 -0
  676. data/test/tmp/public/javascripts/ckeditor/skins/kama/images/dialog_sides.gif +0 -0
  677. data/test/tmp/public/javascripts/ckeditor/skins/kama/images/dialog_sides.png +0 -0
  678. data/test/tmp/public/javascripts/ckeditor/skins/kama/images/dialog_sides_rtl.png +0 -0
  679. data/test/tmp/public/javascripts/ckeditor/skins/kama/images/mini.gif +0 -0
  680. data/test/tmp/public/javascripts/ckeditor/skins/kama/images/noimage.png +0 -0
  681. data/test/tmp/public/javascripts/ckeditor/skins/kama/images/sprites.png +0 -0
  682. data/test/tmp/public/javascripts/ckeditor/skins/kama/images/sprites_ie6.png +0 -0
  683. data/test/tmp/public/javascripts/ckeditor/skins/kama/images/toolbar_start.gif +0 -0
  684. data/test/tmp/public/javascripts/ckeditor/skins/kama/skin.js +0 -7
  685. data/test/tmp/public/javascripts/ckeditor/skins/kama/templates.css +0 -6
  686. data/test/tmp/public/javascripts/ckeditor/skins/office2003/dialog.css +0 -9
  687. data/test/tmp/public/javascripts/ckeditor/skins/office2003/editor.css +0 -14
  688. data/test/tmp/public/javascripts/ckeditor/skins/office2003/icons.png +0 -0
  689. data/test/tmp/public/javascripts/ckeditor/skins/office2003/icons_rtl.png +0 -0
  690. data/test/tmp/public/javascripts/ckeditor/skins/office2003/images/dialog_sides.gif +0 -0
  691. data/test/tmp/public/javascripts/ckeditor/skins/office2003/images/dialog_sides.png +0 -0
  692. data/test/tmp/public/javascripts/ckeditor/skins/office2003/images/dialog_sides_rtl.png +0 -0
  693. data/test/tmp/public/javascripts/ckeditor/skins/office2003/images/mini.gif +0 -0
  694. data/test/tmp/public/javascripts/ckeditor/skins/office2003/images/noimage.png +0 -0
  695. data/test/tmp/public/javascripts/ckeditor/skins/office2003/images/sprites.png +0 -0
  696. data/test/tmp/public/javascripts/ckeditor/skins/office2003/images/sprites_ie6.png +0 -0
  697. data/test/tmp/public/javascripts/ckeditor/skins/office2003/skin.js +0 -6
  698. data/test/tmp/public/javascripts/ckeditor/skins/office2003/templates.css +0 -6
  699. data/test/tmp/public/javascripts/ckeditor/skins/v2/dialog.css +0 -9
  700. data/test/tmp/public/javascripts/ckeditor/skins/v2/editor.css +0 -13
  701. data/test/tmp/public/javascripts/ckeditor/skins/v2/icons.png +0 -0
  702. data/test/tmp/public/javascripts/ckeditor/skins/v2/icons_rtl.png +0 -0
  703. data/test/tmp/public/javascripts/ckeditor/skins/v2/images/dialog_sides.gif +0 -0
  704. data/test/tmp/public/javascripts/ckeditor/skins/v2/images/dialog_sides.png +0 -0
  705. data/test/tmp/public/javascripts/ckeditor/skins/v2/images/dialog_sides_rtl.png +0 -0
  706. data/test/tmp/public/javascripts/ckeditor/skins/v2/images/mini.gif +0 -0
  707. data/test/tmp/public/javascripts/ckeditor/skins/v2/images/noimage.png +0 -0
  708. data/test/tmp/public/javascripts/ckeditor/skins/v2/images/sprites.png +0 -0
  709. data/test/tmp/public/javascripts/ckeditor/skins/v2/images/sprites_ie6.png +0 -0
  710. data/test/tmp/public/javascripts/ckeditor/skins/v2/images/toolbar_start.gif +0 -0
  711. data/test/tmp/public/javascripts/ckeditor/skins/v2/skin.js +0 -6
  712. data/test/tmp/public/javascripts/ckeditor/skins/v2/templates.css +0 -6
  713. data/test/tmp/public/javascripts/ckeditor/themes/default/theme.js +0 -8
@@ -1,1601 +0,0 @@
1
- /*
2
- Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
3
- For licensing, see LICENSE.html or http://ckeditor.com/license
4
- */
5
-
6
- (function()
7
- {
8
- // #### checkSelectionChange : START
9
-
10
- // The selection change check basically saves the element parent tree of
11
- // the current node and check it on successive requests. If there is any
12
- // change on the tree, then the selectionChange event gets fired.
13
- function checkSelectionChange()
14
- {
15
- try
16
- {
17
- // In IE, the "selectionchange" event may still get thrown when
18
- // releasing the WYSIWYG mode, so we need to check it first.
19
- var sel = this.getSelection();
20
- if ( !sel || !sel.document.getWindow().$ )
21
- return;
22
-
23
- var firstElement = sel.getStartElement();
24
- var currentPath = new CKEDITOR.dom.elementPath( firstElement );
25
-
26
- if ( !currentPath.compare( this._.selectionPreviousPath ) )
27
- {
28
- this._.selectionPreviousPath = currentPath;
29
- this.fire( 'selectionChange', { selection : sel, path : currentPath, element : firstElement } );
30
- }
31
- }
32
- catch (e)
33
- {}
34
- }
35
-
36
- var checkSelectionChangeTimer,
37
- checkSelectionChangeTimeoutPending;
38
-
39
- function checkSelectionChangeTimeout()
40
- {
41
- // Firing the "OnSelectionChange" event on every key press started to
42
- // be too slow. This function guarantees that there will be at least
43
- // 200ms delay between selection checks.
44
-
45
- checkSelectionChangeTimeoutPending = true;
46
-
47
- if ( checkSelectionChangeTimer )
48
- return;
49
-
50
- checkSelectionChangeTimeoutExec.call( this );
51
-
52
- checkSelectionChangeTimer = CKEDITOR.tools.setTimeout( checkSelectionChangeTimeoutExec, 200, this );
53
- }
54
-
55
- function checkSelectionChangeTimeoutExec()
56
- {
57
- checkSelectionChangeTimer = null;
58
-
59
- if ( checkSelectionChangeTimeoutPending )
60
- {
61
- // Call this with a timeout so the browser properly moves the
62
- // selection after the mouseup. It happened that the selection was
63
- // being moved after the mouseup when clicking inside selected text
64
- // with Firefox.
65
- CKEDITOR.tools.setTimeout( checkSelectionChange, 0, this );
66
-
67
- checkSelectionChangeTimeoutPending = false;
68
- }
69
- }
70
-
71
- // #### checkSelectionChange : END
72
-
73
- function rangeRequiresFix( range )
74
- {
75
- function isInlineCt( node )
76
- {
77
- return node && node.type == CKEDITOR.NODE_ELEMENT
78
- && node.getName() in CKEDITOR.dtd.$removeEmpty;
79
- }
80
-
81
- function singletonBlock( node )
82
- {
83
- var body = range.document.getBody();
84
- return !node.is( 'body' ) && body.getChildCount() == 1;
85
- }
86
-
87
- var start = range.startContainer,
88
- offset = range.startOffset;
89
-
90
- if ( start.type == CKEDITOR.NODE_TEXT )
91
- return false;
92
-
93
- // 1. Empty inline element. <span>^</span>
94
- // 2. Adjoin to inline element. <p><strong>text</strong>^</p>
95
- // 3. The only empty block in document. <body><p>^</p></body> (#7222)
96
- return !CKEDITOR.tools.trim( start.getHtml() ) ? isInlineCt( start ) || singletonBlock( start )
97
- : isInlineCt( start.getChild( offset - 1 ) ) || isInlineCt( start.getChild( offset ) );
98
- }
99
-
100
- var selectAllCmd =
101
- {
102
- modes : { wysiwyg : 1, source : 1 },
103
- readOnly : CKEDITOR.env.ie || CKEDITOR.env.webkit,
104
- exec : function( editor )
105
- {
106
- switch ( editor.mode )
107
- {
108
- case 'wysiwyg' :
109
- editor.document.$.execCommand( 'SelectAll', false, null );
110
- // Force triggering selectionChange (#7008)
111
- editor.forceNextSelectionCheck();
112
- editor.selectionChange();
113
- break;
114
- case 'source' :
115
- // Select the contents of the textarea
116
- var textarea = editor.textarea.$;
117
- if ( CKEDITOR.env.ie )
118
- textarea.createTextRange().execCommand( 'SelectAll' );
119
- else
120
- {
121
- textarea.selectionStart = 0;
122
- textarea.selectionEnd = textarea.value.length;
123
- }
124
- textarea.focus();
125
- }
126
- },
127
- canUndo : false
128
- };
129
-
130
- function createFillingChar( doc )
131
- {
132
- removeFillingChar( doc );
133
-
134
- var fillingChar = doc.createText( '\u200B' );
135
- doc.setCustomData( 'cke-fillingChar', fillingChar );
136
-
137
- return fillingChar;
138
- }
139
-
140
- function getFillingChar( doc )
141
- {
142
- return doc && doc.getCustomData( 'cke-fillingChar' );
143
- }
144
-
145
- // Checks if a filling char has been used, eventualy removing it (#1272).
146
- function checkFillingChar( doc )
147
- {
148
- var fillingChar = doc && getFillingChar( doc );
149
- if ( fillingChar )
150
- {
151
- // Use this flag to avoid removing the filling char right after
152
- // creating it.
153
- if ( fillingChar.getCustomData( 'ready' ) )
154
- removeFillingChar( doc );
155
- else
156
- fillingChar.setCustomData( 'ready', 1 );
157
- }
158
- }
159
-
160
- function removeFillingChar( doc )
161
- {
162
- var fillingChar = doc && doc.removeCustomData( 'cke-fillingChar' );
163
- if ( fillingChar )
164
- {
165
- // We can't simply remove the filling node because the user
166
- // will actually enlarge it when typing, so we just remove the
167
- // invisible char from it.
168
- fillingChar.setText( fillingChar.getText().replace( /\u200B/g, '' ) );
169
- fillingChar = 0;
170
- }
171
- }
172
-
173
- CKEDITOR.plugins.add( 'selection',
174
- {
175
- init : function( editor )
176
- {
177
- // On WebKit only, we need a special "filling" char on some situations
178
- // (#1272). Here we set the events that should invalidate that char.
179
- if ( CKEDITOR.env.webkit )
180
- {
181
- editor.on( 'selectionChange', function() { checkFillingChar( editor.document ); } );
182
- editor.on( 'beforeSetMode', function() { removeFillingChar( editor.document ); } );
183
- editor.on( 'key', function( e )
184
- {
185
- // Remove the filling char before some keys get
186
- // executed, so they'll not get blocked by it.
187
- switch ( e.data.keyCode )
188
- {
189
- case 13 : // ENTER
190
- case CKEDITOR.SHIFT + 13 : // SHIFT-ENTER
191
- case 37 : // LEFT-ARROW
192
- case 39 : // RIGHT-ARROW
193
- case 8 : // BACKSPACE
194
- removeFillingChar( editor.document );
195
- }
196
- }, null, null, 10 );
197
-
198
- var fillingCharBefore,
199
- resetSelection;
200
-
201
- function beforeData()
202
- {
203
- var doc = editor.document,
204
- fillingChar = getFillingChar( doc );
205
-
206
- if ( fillingChar )
207
- {
208
- // If cursor is right blinking by side of the filler node, save it for restoring,
209
- // as the following text substitution will blind it. (#7437)
210
- var sel = doc.$.defaultView.getSelection();
211
- if ( sel.type == 'Caret' && sel.anchorNode == fillingChar.$ )
212
- resetSelection = 1;
213
-
214
- fillingCharBefore = fillingChar.getText();
215
- fillingChar.setText( fillingCharBefore.replace( /\u200B/g, '' ) );
216
- }
217
- }
218
- function afterData()
219
- {
220
- var doc = editor.document,
221
- fillingChar = getFillingChar( doc );
222
-
223
- if ( fillingChar )
224
- {
225
- fillingChar.setText( fillingCharBefore );
226
-
227
- if ( resetSelection )
228
- {
229
- doc.$.defaultView.getSelection().setPosition( fillingChar.$,fillingChar.getLength() );
230
- resetSelection = 0;
231
- }
232
- }
233
- }
234
- editor.on( 'beforeUndoImage', beforeData );
235
- editor.on( 'afterUndoImage', afterData );
236
- editor.on( 'beforeGetData', beforeData, null, null, 0 );
237
- editor.on( 'getData', afterData );
238
- }
239
-
240
- editor.on( 'contentDom', function()
241
- {
242
- var doc = editor.document,
243
- body = doc.getBody(),
244
- html = doc.getDocumentElement();
245
-
246
- if ( CKEDITOR.env.ie )
247
- {
248
- // Other browsers don't loose the selection if the
249
- // editor document loose the focus. In IE, we don't
250
- // have support for it, so we reproduce it here, other
251
- // than firing the selection change event.
252
-
253
- var savedRange,
254
- saveEnabled,
255
- restoreEnabled = 1;
256
-
257
- // "onfocusin" is fired before "onfocus". It makes it
258
- // possible to restore the selection before click
259
- // events get executed.
260
- body.on( 'focusin', function( evt )
261
- {
262
- // If there are elements with layout they fire this event but
263
- // it must be ignored to allow edit its contents #4682
264
- if ( evt.data.$.srcElement.nodeName != 'BODY' )
265
- return;
266
-
267
- // If we have saved a range, restore it at this
268
- // point.
269
- if ( savedRange )
270
- {
271
- if ( restoreEnabled )
272
- {
273
- // Well not break because of this.
274
- try
275
- {
276
- savedRange.select();
277
- }
278
- catch (e)
279
- {}
280
-
281
- // Update locked selection because of the normalized text nodes. (#6083, #6987)
282
- var lockedSelection = doc.getCustomData( 'cke_locked_selection' );
283
- if ( lockedSelection )
284
- {
285
- lockedSelection.unlock();
286
- lockedSelection.lock();
287
- }
288
- }
289
-
290
- savedRange = null;
291
- }
292
- });
293
-
294
- body.on( 'focus', function()
295
- {
296
- // Enable selections to be saved.
297
- saveEnabled = 1;
298
-
299
- saveSelection();
300
- });
301
-
302
- body.on( 'beforedeactivate', function( evt )
303
- {
304
- // Ignore this event if it's caused by focus switch between
305
- // internal editable control type elements, e.g. layouted paragraph. (#4682)
306
- if ( evt.data.$.toElement )
307
- return;
308
-
309
- // Disable selections from being saved.
310
- saveEnabled = 0;
311
- restoreEnabled = 1;
312
- });
313
-
314
- // IE before version 8 will leave cursor blinking inside the document after
315
- // editor blurred unless we clean up the selection. (#4716)
316
- if ( CKEDITOR.env.ie && CKEDITOR.env.version < 8 )
317
- {
318
- editor.on( 'blur', function( evt )
319
- {
320
- // Try/Catch to avoid errors if the editor is hidden. (#6375)
321
- try
322
- {
323
- editor.document && editor.document.$.selection.empty();
324
- }
325
- catch (e) {}
326
- });
327
- }
328
-
329
- // Listening on document element ensures that
330
- // scrollbar is included. (#5280)
331
- html.on( 'mousedown', function()
332
- {
333
- // Lock restore selection now, as we have
334
- // a followed 'click' event which introduce
335
- // new selection. (#5735)
336
- restoreEnabled = 0;
337
- });
338
-
339
- html.on( 'mouseup', function()
340
- {
341
- restoreEnabled = 1;
342
- });
343
-
344
- // In IE6/7 the blinking cursor appears, but contents are
345
- // not editable. (#5634)
346
- if ( CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.version < 8 || CKEDITOR.env.quirks ) )
347
- {
348
- // The 'click' event is not fired when clicking the
349
- // scrollbars, so we can use it to check whether
350
- // the empty space following <body> has been clicked.
351
- html.on( 'click', function( evt )
352
- {
353
- if ( evt.data.getTarget().getName() == 'html' )
354
- editor.getSelection().getRanges()[ 0 ].select();
355
- });
356
- }
357
-
358
- var scroll;
359
- // IE fires the "selectionchange" event when clicking
360
- // inside a selection. We don't want to capture that.
361
- body.on( 'mousedown', function( evt )
362
- {
363
- // IE scrolls document to top on right mousedown
364
- // when editor has no focus, remember this scroll
365
- // position and revert it before context menu opens. (#5778)
366
- if ( evt.data.$.button == 2 )
367
- {
368
- var sel = editor.document.$.selection;
369
- if ( sel.type == 'None' )
370
- scroll = editor.window.getScrollPosition();
371
- }
372
- disableSave();
373
- });
374
-
375
- body.on( 'mouseup',
376
- function( evt )
377
- {
378
- // Restore recorded scroll position when needed on right mouseup.
379
- if ( evt.data.$.button == 2 && scroll )
380
- {
381
- editor.document.$.documentElement.scrollLeft = scroll.x;
382
- editor.document.$.documentElement.scrollTop = scroll.y;
383
- }
384
- scroll = null;
385
-
386
- saveEnabled = 1;
387
- setTimeout( function()
388
- {
389
- saveSelection( true );
390
- },
391
- 0 );
392
- });
393
-
394
- body.on( 'keydown', disableSave );
395
- body.on( 'keyup',
396
- function()
397
- {
398
- saveEnabled = 1;
399
- saveSelection();
400
- });
401
-
402
-
403
- // IE is the only to provide the "selectionchange"
404
- // event.
405
- doc.on( 'selectionchange', saveSelection );
406
-
407
- function disableSave()
408
- {
409
- saveEnabled = 0;
410
- }
411
-
412
- function saveSelection( testIt )
413
- {
414
- if ( saveEnabled )
415
- {
416
- var doc = editor.document,
417
- sel = editor.getSelection(),
418
- nativeSel = sel && sel.getNative();
419
-
420
- // There is a very specific case, when clicking
421
- // inside a text selection. In that case, the
422
- // selection collapses at the clicking point,
423
- // but the selection object remains in an
424
- // unknown state, making createRange return a
425
- // range at the very start of the document. In
426
- // such situation we have to test the range, to
427
- // be sure it's valid.
428
- if ( testIt && nativeSel && nativeSel.type == 'None' )
429
- {
430
- // The "InsertImage" command can be used to
431
- // test whether the selection is good or not.
432
- // If not, it's enough to give some time to
433
- // IE to put things in order for us.
434
- if ( !doc.$.queryCommandEnabled( 'InsertImage' ) )
435
- {
436
- CKEDITOR.tools.setTimeout( saveSelection, 50, this, true );
437
- return;
438
- }
439
- }
440
-
441
- // Avoid saving selection from within text input. (#5747)
442
- var parentTag;
443
- if ( nativeSel && nativeSel.type && nativeSel.type != 'Control'
444
- && ( parentTag = nativeSel.createRange() )
445
- && ( parentTag = parentTag.parentElement() )
446
- && ( parentTag = parentTag.nodeName )
447
- && parentTag.toLowerCase() in { input: 1, textarea : 1 } )
448
- {
449
- return;
450
- }
451
-
452
- savedRange = nativeSel && sel.getRanges()[ 0 ];
453
-
454
- checkSelectionChangeTimeout.call( editor );
455
- }
456
- }
457
- }
458
- else
459
- {
460
- // In other browsers, we make the selection change
461
- // check based on other events, like clicks or keys
462
- // press.
463
-
464
- doc.on( 'mouseup', checkSelectionChangeTimeout, editor );
465
- doc.on( 'keyup', checkSelectionChangeTimeout, editor );
466
- }
467
- });
468
-
469
- // Clear the cached range path before unload. (#7174)
470
- editor.on( 'contentDomUnload', editor.forceNextSelectionCheck, editor );
471
-
472
- editor.addCommand( 'selectAll', selectAllCmd );
473
- editor.ui.addButton( 'SelectAll',
474
- {
475
- label : editor.lang.selectAll,
476
- command : 'selectAll'
477
- });
478
-
479
- editor.selectionChange = checkSelectionChangeTimeout;
480
-
481
- // IE9 might cease to work if there's an object selection inside the iframe (#7639).
482
- CKEDITOR.env.ie9Compat && editor.on( 'destroy', function()
483
- {
484
- var sel = editor.getSelection();
485
- sel && sel.getNative().clear();
486
- }, null, null, 9 );
487
- }
488
- });
489
-
490
- /**
491
- * Gets the current selection from the editing area when in WYSIWYG mode.
492
- * @returns {CKEDITOR.dom.selection} A selection object or null if not on
493
- * WYSIWYG mode or no selection is available.
494
- * @example
495
- * var selection = CKEDITOR.instances.editor1.<b>getSelection()</b>;
496
- * alert( selection.getType() );
497
- */
498
- CKEDITOR.editor.prototype.getSelection = function()
499
- {
500
- return this.document && this.document.getSelection();
501
- };
502
-
503
- CKEDITOR.editor.prototype.forceNextSelectionCheck = function()
504
- {
505
- delete this._.selectionPreviousPath;
506
- };
507
-
508
- /**
509
- * Gets the current selection from the document.
510
- * @returns {CKEDITOR.dom.selection} A selection object.
511
- * @example
512
- * var selection = CKEDITOR.instances.editor1.document.<b>getSelection()</b>;
513
- * alert( selection.getType() );
514
- */
515
- CKEDITOR.dom.document.prototype.getSelection = function()
516
- {
517
- var sel = new CKEDITOR.dom.selection( this );
518
- return ( !sel || sel.isInvalid ) ? null : sel;
519
- };
520
-
521
- /**
522
- * No selection.
523
- * @constant
524
- * @example
525
- * if ( editor.getSelection().getType() == CKEDITOR.SELECTION_NONE )
526
- * alert( 'Nothing is selected' );
527
- */
528
- CKEDITOR.SELECTION_NONE = 1;
529
-
530
- /**
531
- * Text or collapsed selection.
532
- * @constant
533
- * @example
534
- * if ( editor.getSelection().getType() == CKEDITOR.SELECTION_TEXT )
535
- * alert( 'Text is selected' );
536
- */
537
- CKEDITOR.SELECTION_TEXT = 2;
538
-
539
- /**
540
- * Element selection.
541
- * @constant
542
- * @example
543
- * if ( editor.getSelection().getType() == CKEDITOR.SELECTION_ELEMENT )
544
- * alert( 'An element is selected' );
545
- */
546
- CKEDITOR.SELECTION_ELEMENT = 3;
547
-
548
- /**
549
- * Manipulates the selection in a DOM document.
550
- * @constructor
551
- * @example
552
- */
553
- CKEDITOR.dom.selection = function( document )
554
- {
555
- var lockedSelection = document.getCustomData( 'cke_locked_selection' );
556
-
557
- if ( lockedSelection )
558
- return lockedSelection;
559
-
560
- this.document = document;
561
- this.isLocked = 0;
562
- this._ =
563
- {
564
- cache : {}
565
- };
566
-
567
- /**
568
- * IE BUG: The selection's document may be a different document than the
569
- * editor document. Return null if that's the case.
570
- */
571
- if ( CKEDITOR.env.ie )
572
- {
573
- var range = this.getNative().createRange();
574
- if ( !range
575
- || ( range.item && range.item(0).ownerDocument != this.document.$ )
576
- || ( range.parentElement && range.parentElement().ownerDocument != this.document.$ ) )
577
- {
578
- this.isInvalid = true;
579
- }
580
- }
581
-
582
- return this;
583
- };
584
-
585
- var styleObjectElements =
586
- {
587
- img:1,hr:1,li:1,table:1,tr:1,td:1,th:1,embed:1,object:1,ol:1,ul:1,
588
- a:1,input:1,form:1,select:1,textarea:1,button:1,fieldset:1,thead:1,tfoot:1
589
- };
590
-
591
- CKEDITOR.dom.selection.prototype =
592
- {
593
- /**
594
- * Gets the native selection object from the browser.
595
- * @function
596
- * @returns {Object} The native selection object.
597
- * @example
598
- * var selection = editor.getSelection().<b>getNative()</b>;
599
- */
600
- getNative :
601
- CKEDITOR.env.ie ?
602
- function()
603
- {
604
- return this._.cache.nativeSel || ( this._.cache.nativeSel = this.document.$.selection );
605
- }
606
- :
607
- function()
608
- {
609
- return this._.cache.nativeSel || ( this._.cache.nativeSel = this.document.getWindow().$.getSelection() );
610
- },
611
-
612
- /**
613
- * Gets the type of the current selection. The following values are
614
- * available:
615
- * <ul>
616
- * <li>{@link CKEDITOR.SELECTION_NONE} (1): No selection.</li>
617
- * <li>{@link CKEDITOR.SELECTION_TEXT} (2): Text is selected or
618
- * collapsed selection.</li>
619
- * <li>{@link CKEDITOR.SELECTION_ELEMENT} (3): A element
620
- * selection.</li>
621
- * </ul>
622
- * @function
623
- * @returns {Number} One of the following constant values:
624
- * {@link CKEDITOR.SELECTION_NONE}, {@link CKEDITOR.SELECTION_TEXT} or
625
- * {@link CKEDITOR.SELECTION_ELEMENT}.
626
- * @example
627
- * if ( editor.getSelection().<b>getType()</b> == CKEDITOR.SELECTION_TEXT )
628
- * alert( 'Text is selected' );
629
- */
630
- getType :
631
- CKEDITOR.env.ie ?
632
- function()
633
- {
634
- var cache = this._.cache;
635
- if ( cache.type )
636
- return cache.type;
637
-
638
- var type = CKEDITOR.SELECTION_NONE;
639
-
640
- try
641
- {
642
- var sel = this.getNative(),
643
- ieType = sel.type;
644
-
645
- if ( ieType == 'Text' )
646
- type = CKEDITOR.SELECTION_TEXT;
647
-
648
- if ( ieType == 'Control' )
649
- type = CKEDITOR.SELECTION_ELEMENT;
650
-
651
- // It is possible that we can still get a text range
652
- // object even when type == 'None' is returned by IE.
653
- // So we'd better check the object returned by
654
- // createRange() rather than by looking at the type.
655
- if ( sel.createRange().parentElement )
656
- type = CKEDITOR.SELECTION_TEXT;
657
- }
658
- catch(e) {}
659
-
660
- return ( cache.type = type );
661
- }
662
- :
663
- function()
664
- {
665
- var cache = this._.cache;
666
- if ( cache.type )
667
- return cache.type;
668
-
669
- var type = CKEDITOR.SELECTION_TEXT;
670
-
671
- var sel = this.getNative();
672
-
673
- if ( !sel )
674
- type = CKEDITOR.SELECTION_NONE;
675
- else if ( sel.rangeCount == 1 )
676
- {
677
- // Check if the actual selection is a control (IMG,
678
- // TABLE, HR, etc...).
679
-
680
- var range = sel.getRangeAt(0),
681
- startContainer = range.startContainer;
682
-
683
- if ( startContainer == range.endContainer
684
- && startContainer.nodeType == 1
685
- && ( range.endOffset - range.startOffset ) == 1
686
- && styleObjectElements[ startContainer.childNodes[ range.startOffset ].nodeName.toLowerCase() ] )
687
- {
688
- type = CKEDITOR.SELECTION_ELEMENT;
689
- }
690
- }
691
-
692
- return ( cache.type = type );
693
- },
694
-
695
- /**
696
- * Retrieve the {@link CKEDITOR.dom.range} instances that represent the current selection.
697
- * Note: Some browsers returns multiple ranges even on a sequent selection, e.g. Firefox returns
698
- * one range for each table cell when one or more table row is selected.
699
- * @return {Array}
700
- * @example
701
- * var ranges = selection.getRanges();
702
- * alert(ranges.length);
703
- */
704
- getRanges : (function()
705
- {
706
- var func = CKEDITOR.env.ie ?
707
- ( function()
708
- {
709
- function getNodeIndex( node ) { return new CKEDITOR.dom.node( node ).getIndex(); }
710
-
711
- // Finds the container and offset for a specific boundary
712
- // of an IE range.
713
- var getBoundaryInformation = function( range, start )
714
- {
715
- // Creates a collapsed range at the requested boundary.
716
- range = range.duplicate();
717
- range.collapse( start );
718
-
719
- // Gets the element that encloses the range entirely.
720
- var parent = range.parentElement(),
721
- doc = parent.ownerDocument;
722
-
723
- // Empty parent element, e.g. <i>^</i>
724
- if ( !parent.hasChildNodes() )
725
- return { container : parent, offset : 0 };
726
-
727
- var siblings = parent.children,
728
- child,
729
- sibling,
730
- testRange = range.duplicate(),
731
- startIndex = 0,
732
- endIndex = siblings.length - 1,
733
- index = -1,
734
- position,
735
- distance;
736
-
737
- // Binary search over all element childs to test the range to see whether
738
- // range is right on the boundary of one element.
739
- while ( startIndex <= endIndex )
740
- {
741
- index = Math.floor( ( startIndex + endIndex ) / 2 );
742
- child = siblings[ index ];
743
- testRange.moveToElementText( child );
744
- position = testRange.compareEndPoints( 'StartToStart', range );
745
-
746
- if ( position > 0 )
747
- endIndex = index - 1;
748
- else if ( position < 0 )
749
- startIndex = index + 1;
750
- else
751
- {
752
- // IE9 report wrong measurement with compareEndPoints when range anchors between two BRs.
753
- // e.g. <p>text<br />^<br /></p> (#7433)
754
- if ( CKEDITOR.env.ie9Compat && child.tagName == 'BR' )
755
- {
756
- var bmId = 'cke_range_marker';
757
- range.execCommand( 'CreateBookmark', false, bmId );
758
- child = doc.getElementsByName( bmId )[ 0 ];
759
- var offset = getNodeIndex( child );
760
- parent.removeChild( child );
761
- return { container : parent, offset : offset };
762
- }
763
- else
764
- return { container : parent, offset : getNodeIndex( child ) };
765
- }
766
- }
767
-
768
- // All childs are text nodes,
769
- // or to the right hand of test range are all text nodes. (#6992)
770
- if ( index == -1 || index == siblings.length - 1 && position < 0 )
771
- {
772
- // Adapt test range to embrace the entire parent contents.
773
- testRange.moveToElementText( parent );
774
- testRange.setEndPoint( 'StartToStart', range );
775
-
776
- // IE report line break as CRLF with range.text but
777
- // only LF with textnode.nodeValue, normalize them to avoid
778
- // breaking character counting logic below. (#3949)
779
- distance = testRange.text.replace( /(\r\n|\r)/g, '\n' ).length;
780
-
781
- siblings = parent.childNodes;
782
-
783
- // Actual range anchor right beside test range at the boundary of text node.
784
- if ( !distance )
785
- {
786
- child = siblings[ siblings.length - 1 ];
787
-
788
- if ( child.nodeType == CKEDITOR.NODE_ELEMENT )
789
- return { container : parent, offset : siblings.length };
790
- else
791
- return { container : child, offset : child.nodeValue.length };
792
- }
793
-
794
- // Start the measuring until distance overflows, meanwhile count the text nodes.
795
- var i = siblings.length;
796
- while ( distance > 0 )
797
- distance -= siblings[ --i ].nodeValue.length;
798
-
799
- return { container : siblings[ i ], offset : -distance };
800
- }
801
- // Test range was one offset beyond OR behind the anchored text node.
802
- else
803
- {
804
- // Adapt one side of test range to the actual range
805
- // for measuring the offset between them.
806
- testRange.collapse( position > 0 ? true : false );
807
- testRange.setEndPoint( position > 0 ? 'StartToStart' : 'EndToStart', range );
808
-
809
- // IE report line break as CRLF with range.text but
810
- // only LF with textnode.nodeValue, normalize them to avoid
811
- // breaking character counting logic below. (#3949)
812
- distance = testRange.text.replace( /(\r\n|\r)/g, '\n' ).length;
813
-
814
- // Actual range anchor right beside test range at the inner boundary of text node.
815
- if ( !distance )
816
- return { container : parent, offset : getNodeIndex( child ) + ( position > 0 ? 0 : 1 ) };
817
-
818
- // Start the measuring until distance overflows, meanwhile count the text nodes.
819
- while ( distance > 0 )
820
- {
821
- try
822
- {
823
- sibling = child[ position > 0 ? 'previousSibling' : 'nextSibling' ];
824
- distance -= sibling.nodeValue.length;
825
- child = sibling;
826
- }
827
- // Measurement in IE could be somtimes wrong because of <select> element. (#4611)
828
- catch( e )
829
- {
830
- return { container : parent, offset : getNodeIndex( child ) };
831
- }
832
- }
833
-
834
- return { container : child, offset : position > 0 ? -distance : child.nodeValue.length + distance };
835
- }
836
- };
837
-
838
- return function()
839
- {
840
- // IE doesn't have range support (in the W3C way), so we
841
- // need to do some magic to transform selections into
842
- // CKEDITOR.dom.range instances.
843
-
844
- var sel = this.getNative(),
845
- nativeRange = sel && sel.createRange(),
846
- type = this.getType(),
847
- range;
848
-
849
- if ( !sel )
850
- return [];
851
-
852
- if ( type == CKEDITOR.SELECTION_TEXT )
853
- {
854
- range = new CKEDITOR.dom.range( this.document );
855
-
856
- var boundaryInfo = getBoundaryInformation( nativeRange, true );
857
- range.setStart( new CKEDITOR.dom.node( boundaryInfo.container ), boundaryInfo.offset );
858
-
859
- boundaryInfo = getBoundaryInformation( nativeRange );
860
- range.setEnd( new CKEDITOR.dom.node( boundaryInfo.container ), boundaryInfo.offset );
861
-
862
- // Correct an invalid IE range case on empty list item. (#5850)
863
- if ( range.endContainer.getPosition( range.startContainer ) & CKEDITOR.POSITION_PRECEDING
864
- && range.endOffset <= range.startContainer.getIndex() )
865
- {
866
- range.collapse();
867
- }
868
-
869
- return [ range ];
870
- }
871
- else if ( type == CKEDITOR.SELECTION_ELEMENT )
872
- {
873
- var retval = [];
874
-
875
- for ( var i = 0 ; i < nativeRange.length ; i++ )
876
- {
877
- var element = nativeRange.item( i ),
878
- parentElement = element.parentNode,
879
- j = 0;
880
-
881
- range = new CKEDITOR.dom.range( this.document );
882
-
883
- for (; j < parentElement.childNodes.length && parentElement.childNodes[j] != element ; j++ )
884
- { /*jsl:pass*/ }
885
-
886
- range.setStart( new CKEDITOR.dom.node( parentElement ), j );
887
- range.setEnd( new CKEDITOR.dom.node( parentElement ), j + 1 );
888
- retval.push( range );
889
- }
890
-
891
- return retval;
892
- }
893
-
894
- return [];
895
- };
896
- })()
897
- :
898
- function()
899
- {
900
-
901
- // On browsers implementing the W3C range, we simply
902
- // tranform the native ranges in CKEDITOR.dom.range
903
- // instances.
904
-
905
- var ranges = [],
906
- range,
907
- doc = this.document,
908
- sel = this.getNative();
909
-
910
- if ( !sel )
911
- return ranges;
912
-
913
- // On WebKit, it may happen that we'll have no selection
914
- // available. We normalize it here by replicating the
915
- // behavior of other browsers.
916
- if ( !sel.rangeCount )
917
- {
918
- range = new CKEDITOR.dom.range( doc );
919
- range.moveToElementEditStart( doc.getBody() );
920
- ranges.push( range );
921
- }
922
-
923
- for ( var i = 0 ; i < sel.rangeCount ; i++ )
924
- {
925
- var nativeRange = sel.getRangeAt( i );
926
-
927
- range = new CKEDITOR.dom.range( doc );
928
-
929
- range.setStart( new CKEDITOR.dom.node( nativeRange.startContainer ), nativeRange.startOffset );
930
- range.setEnd( new CKEDITOR.dom.node( nativeRange.endContainer ), nativeRange.endOffset );
931
- ranges.push( range );
932
- }
933
- return ranges;
934
- };
935
-
936
- return function( onlyEditables )
937
- {
938
- var cache = this._.cache;
939
- if ( cache.ranges && !onlyEditables )
940
- return cache.ranges;
941
- else if ( !cache.ranges )
942
- cache.ranges = new CKEDITOR.dom.rangeList( func.call( this ) );
943
-
944
- // Split range into multiple by read-only nodes.
945
- if ( onlyEditables )
946
- {
947
- var ranges = cache.ranges;
948
- for ( var i = 0; i < ranges.length; i++ )
949
- {
950
- var range = ranges[ i ];
951
-
952
- // Drop range spans inside one ready-only node.
953
- var parent = range.getCommonAncestor();
954
- if ( parent.isReadOnly() )
955
- ranges.splice( i, 1 );
956
-
957
- if ( range.collapsed )
958
- continue;
959
-
960
- var startContainer = range.startContainer,
961
- endContainer = range.endContainer,
962
- startOffset = range.startOffset,
963
- endOffset = range.endOffset,
964
- walkerRange = range.clone();
965
-
966
- // Range may start inside a non-editable element, restart range
967
- // by the end of it.
968
- var readOnly;
969
- if ( ( readOnly = startContainer.isReadOnly() ) )
970
- range.setStartAfter( readOnly );
971
-
972
- // Enlarge range start/end with text node to avoid walker
973
- // being DOM destructive, it doesn't interfere our checking
974
- // of elements below as well.
975
- if ( startContainer && startContainer.type == CKEDITOR.NODE_TEXT )
976
- {
977
- if ( startOffset >= startContainer.getLength() )
978
- walkerRange.setStartAfter( startContainer );
979
- else
980
- walkerRange.setStartBefore( startContainer );
981
- }
982
-
983
- if ( endContainer && endContainer.type == CKEDITOR.NODE_TEXT )
984
- {
985
- if ( !endOffset )
986
- walkerRange.setEndBefore( endContainer );
987
- else
988
- walkerRange.setEndAfter( endContainer );
989
- }
990
-
991
- // Looking for non-editable element inside the range.
992
- var walker = new CKEDITOR.dom.walker( walkerRange );
993
- walker.evaluator = function( node )
994
- {
995
- if ( node.type == CKEDITOR.NODE_ELEMENT
996
- && node.isReadOnly() )
997
- {
998
- var newRange = range.clone();
999
- range.setEndBefore( node );
1000
-
1001
- // Drop collapsed range around read-only elements,
1002
- // it make sure the range list empty when selecting
1003
- // only non-editable elements.
1004
- if ( range.collapsed )
1005
- ranges.splice( i--, 1 );
1006
-
1007
- // Avoid creating invalid range.
1008
- if ( !( node.getPosition( walkerRange.endContainer ) & CKEDITOR.POSITION_CONTAINS ) )
1009
- {
1010
- newRange.setStartAfter( node );
1011
- if ( !newRange.collapsed )
1012
- ranges.splice( i + 1, 0, newRange );
1013
- }
1014
-
1015
- return true;
1016
- }
1017
-
1018
- return false;
1019
- };
1020
-
1021
- walker.next();
1022
- }
1023
- }
1024
-
1025
- return cache.ranges;
1026
- };
1027
- })(),
1028
-
1029
- /**
1030
- * Gets the DOM element in which the selection starts.
1031
- * @returns {CKEDITOR.dom.element} The element at the beginning of the
1032
- * selection.
1033
- * @example
1034
- * var element = editor.getSelection().<b>getStartElement()</b>;
1035
- * alert( element.getName() );
1036
- */
1037
- getStartElement : function()
1038
- {
1039
- var cache = this._.cache;
1040
- if ( cache.startElement !== undefined )
1041
- return cache.startElement;
1042
-
1043
- var node,
1044
- sel = this.getNative();
1045
-
1046
- switch ( this.getType() )
1047
- {
1048
- case CKEDITOR.SELECTION_ELEMENT :
1049
- return this.getSelectedElement();
1050
-
1051
- case CKEDITOR.SELECTION_TEXT :
1052
-
1053
- var range = this.getRanges()[0];
1054
-
1055
- if ( range )
1056
- {
1057
- if ( !range.collapsed )
1058
- {
1059
- range.optimize();
1060
-
1061
- // Decrease the range content to exclude particial
1062
- // selected node on the start which doesn't have
1063
- // visual impact. ( #3231 )
1064
- while ( 1 )
1065
- {
1066
- var startContainer = range.startContainer,
1067
- startOffset = range.startOffset;
1068
- // Limit the fix only to non-block elements.(#3950)
1069
- if ( startOffset == ( startContainer.getChildCount ?
1070
- startContainer.getChildCount() : startContainer.getLength() )
1071
- && !startContainer.isBlockBoundary() )
1072
- range.setStartAfter( startContainer );
1073
- else break;
1074
- }
1075
-
1076
- node = range.startContainer;
1077
-
1078
- if ( node.type != CKEDITOR.NODE_ELEMENT )
1079
- return node.getParent();
1080
-
1081
- node = node.getChild( range.startOffset );
1082
-
1083
- if ( !node || node.type != CKEDITOR.NODE_ELEMENT )
1084
- node = range.startContainer;
1085
- else
1086
- {
1087
- var child = node.getFirst();
1088
- while ( child && child.type == CKEDITOR.NODE_ELEMENT )
1089
- {
1090
- node = child;
1091
- child = child.getFirst();
1092
- }
1093
- }
1094
- }
1095
- else
1096
- {
1097
- node = range.startContainer;
1098
- if ( node.type != CKEDITOR.NODE_ELEMENT )
1099
- node = node.getParent();
1100
- }
1101
-
1102
- node = node.$;
1103
- }
1104
- }
1105
-
1106
- return cache.startElement = ( node ? new CKEDITOR.dom.element( node ) : null );
1107
- },
1108
-
1109
- /**
1110
- * Gets the current selected element.
1111
- * @returns {CKEDITOR.dom.element} The selected element. Null if no
1112
- * selection is available or the selection type is not
1113
- * {@link CKEDITOR.SELECTION_ELEMENT}.
1114
- * @example
1115
- * var element = editor.getSelection().<b>getSelectedElement()</b>;
1116
- * alert( element.getName() );
1117
- */
1118
- getSelectedElement : function()
1119
- {
1120
- var cache = this._.cache;
1121
- if ( cache.selectedElement !== undefined )
1122
- return cache.selectedElement;
1123
-
1124
- var self = this;
1125
-
1126
- var node = CKEDITOR.tools.tryThese(
1127
- // Is it native IE control type selection?
1128
- function()
1129
- {
1130
- return self.getNative().createRange().item( 0 );
1131
- },
1132
- // Figure it out by checking if there's a single enclosed
1133
- // node of the range.
1134
- function()
1135
- {
1136
- var range = self.getRanges()[ 0 ],
1137
- enclosed,
1138
- selected;
1139
-
1140
- // Check first any enclosed element, e.g. <ul>[<li><a href="#">item</a></li>]</ul>
1141
- for ( var i = 2; i && !( ( enclosed = range.getEnclosedNode() )
1142
- && ( enclosed.type == CKEDITOR.NODE_ELEMENT )
1143
- && styleObjectElements[ enclosed.getName() ]
1144
- && ( selected = enclosed ) ); i-- )
1145
- {
1146
- // Then check any deep wrapped element, e.g. [<b><i><img /></i></b>]
1147
- range.shrink( CKEDITOR.SHRINK_ELEMENT );
1148
- }
1149
-
1150
- return selected.$;
1151
- });
1152
-
1153
- return cache.selectedElement = ( node ? new CKEDITOR.dom.element( node ) : null );
1154
- },
1155
-
1156
- /**
1157
- * Retrieves the text contained within the range, empty string is returned for non-text selection.
1158
- * @returns {String} string of text within the current selection.
1159
- * @since 3.6.1
1160
- * @example
1161
- * var text = editor.getSelectedText();
1162
- * alert( text );
1163
- */
1164
- getSelectedText : function()
1165
- {
1166
- var cache = this._.cache;
1167
- if ( cache.selectedText !== undefined )
1168
- return cache.selectedText;
1169
-
1170
- var text = '',
1171
- nativeSel = this.getNative();
1172
- if ( this.getType() == CKEDITOR.SELECTION_TEXT )
1173
- text = CKEDITOR.env.ie ? nativeSel.createRange().text : nativeSel.toString();
1174
-
1175
- return ( cache.selectedText = text );
1176
- },
1177
-
1178
- lock : function()
1179
- {
1180
- // Call all cacheable function.
1181
- this.getRanges();
1182
- this.getStartElement();
1183
- this.getSelectedElement();
1184
- this.getSelectedText();
1185
-
1186
- // The native selection is not available when locked.
1187
- this._.cache.nativeSel = {};
1188
-
1189
- this.isLocked = 1;
1190
-
1191
- // Save this selection inside the DOM document.
1192
- this.document.setCustomData( 'cke_locked_selection', this );
1193
- },
1194
-
1195
- unlock : function( restore )
1196
- {
1197
- var doc = this.document,
1198
- lockedSelection = doc.getCustomData( 'cke_locked_selection' );
1199
-
1200
- if ( lockedSelection )
1201
- {
1202
- doc.setCustomData( 'cke_locked_selection', null );
1203
-
1204
- if ( restore )
1205
- {
1206
- var selectedElement = lockedSelection.getSelectedElement(),
1207
- ranges = !selectedElement && lockedSelection.getRanges();
1208
-
1209
- this.isLocked = 0;
1210
- this.reset();
1211
-
1212
- doc.getBody().focus();
1213
-
1214
- if ( selectedElement )
1215
- this.selectElement( selectedElement );
1216
- else
1217
- this.selectRanges( ranges );
1218
- }
1219
- }
1220
-
1221
- if ( !lockedSelection || !restore )
1222
- {
1223
- this.isLocked = 0;
1224
- this.reset();
1225
- }
1226
- },
1227
-
1228
- reset : function()
1229
- {
1230
- this._.cache = {};
1231
- },
1232
-
1233
- /**
1234
- * Make the current selection of type {@link CKEDITOR.SELECTION_ELEMENT} by enclosing the specified element.
1235
- * @param element
1236
- */
1237
- selectElement : function( element )
1238
- {
1239
- if ( this.isLocked )
1240
- {
1241
- var range = new CKEDITOR.dom.range( this.document );
1242
- range.setStartBefore( element );
1243
- range.setEndAfter( element );
1244
-
1245
- this._.cache.selectedElement = element;
1246
- this._.cache.startElement = element;
1247
- this._.cache.ranges = new CKEDITOR.dom.rangeList( range );
1248
- this._.cache.type = CKEDITOR.SELECTION_ELEMENT;
1249
-
1250
- return;
1251
- }
1252
-
1253
- range = new CKEDITOR.dom.range( element.getDocument() );
1254
- range.setStartBefore( element );
1255
- range.setEndAfter( element );
1256
- range.select();
1257
-
1258
- this.document.fire( 'selectionchange' );
1259
- this.reset();
1260
-
1261
- },
1262
-
1263
- /**
1264
- * Adding the specified ranges to document selection preceding
1265
- * by clearing up the original selection.
1266
- * @param {CKEDITOR.dom.range} ranges
1267
- */
1268
- selectRanges : function( ranges )
1269
- {
1270
- if ( this.isLocked )
1271
- {
1272
- this._.cache.selectedElement = null;
1273
- this._.cache.startElement = ranges[ 0 ] && ranges[ 0 ].getTouchedStartNode();
1274
- this._.cache.ranges = new CKEDITOR.dom.rangeList( ranges );
1275
- this._.cache.type = CKEDITOR.SELECTION_TEXT;
1276
-
1277
- return;
1278
- }
1279
-
1280
- if ( CKEDITOR.env.ie )
1281
- {
1282
- if ( ranges.length > 1 )
1283
- {
1284
- // IE doesn't accept multiple ranges selection, so we join all into one.
1285
- var last = ranges[ ranges.length -1 ] ;
1286
- ranges[ 0 ].setEnd( last.endContainer, last.endOffset );
1287
- ranges.length = 1;
1288
- }
1289
-
1290
- if ( ranges[ 0 ] )
1291
- ranges[ 0 ].select();
1292
-
1293
- this.reset();
1294
- }
1295
- else
1296
- {
1297
- var sel = this.getNative();
1298
-
1299
- // getNative() returns null if iframe is "display:none" in FF. (#6577)
1300
- if ( !sel )
1301
- return;
1302
-
1303
- if ( ranges.length )
1304
- {
1305
- sel.removeAllRanges();
1306
- // Remove any existing filling char first.
1307
- CKEDITOR.env.webkit && removeFillingChar( this.document );
1308
- }
1309
-
1310
- for ( var i = 0 ; i < ranges.length ; i++ )
1311
- {
1312
- // Joining sequential ranges introduced by
1313
- // readonly elements protection.
1314
- if ( i < ranges.length -1 )
1315
- {
1316
- var left = ranges[ i ], right = ranges[ i +1 ],
1317
- between = left.clone();
1318
- between.setStart( left.endContainer, left.endOffset );
1319
- between.setEnd( right.startContainer, right.startOffset );
1320
-
1321
- // Don't confused by Firefox adjancent multi-ranges
1322
- // introduced by table cells selection.
1323
- if ( !between.collapsed )
1324
- {
1325
- between.shrink( CKEDITOR.NODE_ELEMENT, true );
1326
- var ancestor = between.getCommonAncestor(),
1327
- enclosed = between.getEnclosedNode();
1328
-
1329
- // The following cases has to be considered:
1330
- // 1. <span contenteditable="false">[placeholder]</span>
1331
- // 2. <input contenteditable="false" type="radio"/> (#6621)
1332
- if ( ancestor.isReadOnly() || enclosed && enclosed.isReadOnly() )
1333
- {
1334
- right.setStart( left.startContainer, left.startOffset );
1335
- ranges.splice( i--, 1 );
1336
- continue;
1337
- }
1338
- }
1339
- }
1340
-
1341
- var range = ranges[ i ];
1342
- var nativeRange = this.document.$.createRange();
1343
- var startContainer = range.startContainer;
1344
-
1345
- // In FF2, if we have a collapsed range, inside an empty
1346
- // element, we must add something to it otherwise the caret
1347
- // will not be visible.
1348
- // In Opera instead, the selection will be moved out of the
1349
- // element. (#4657)
1350
- if ( range.collapsed &&
1351
- ( CKEDITOR.env.opera || ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 ) ) &&
1352
- startContainer.type == CKEDITOR.NODE_ELEMENT &&
1353
- !startContainer.getChildCount() )
1354
- {
1355
- startContainer.appendText( '' );
1356
- }
1357
-
1358
- if ( range.collapsed
1359
- && CKEDITOR.env.webkit
1360
- && rangeRequiresFix( range ) )
1361
- {
1362
- // Append a zero-width space so WebKit will not try to
1363
- // move the selection by itself (#1272).
1364
- var fillingChar = createFillingChar( this.document );
1365
- range.insertNode( fillingChar ) ;
1366
-
1367
- var next = fillingChar.getNext();
1368
-
1369
- // If the filling char is followed by a <br>, whithout
1370
- // having something before it, it'll not blink.
1371
- // Let's remove it in this case.
1372
- if ( next && !fillingChar.getPrevious() && next.type == CKEDITOR.NODE_ELEMENT && next.getName() == 'br' )
1373
- {
1374
- removeFillingChar( this.document );
1375
- range.moveToPosition( next, CKEDITOR.POSITION_BEFORE_START );
1376
- }
1377
- else
1378
- range.moveToPosition( fillingChar, CKEDITOR.POSITION_AFTER_END );
1379
- }
1380
-
1381
- nativeRange.setStart( range.startContainer.$, range.startOffset );
1382
-
1383
- try
1384
- {
1385
- nativeRange.setEnd( range.endContainer.$, range.endOffset );
1386
- }
1387
- catch ( e )
1388
- {
1389
- // There is a bug in Firefox implementation (it would be too easy
1390
- // otherwise). The new start can't be after the end (W3C says it can).
1391
- // So, let's create a new range and collapse it to the desired point.
1392
- if ( e.toString().indexOf( 'NS_ERROR_ILLEGAL_VALUE' ) >= 0 )
1393
- {
1394
- range.collapse( 1 );
1395
- nativeRange.setEnd( range.endContainer.$, range.endOffset );
1396
- }
1397
- else
1398
- throw e;
1399
- }
1400
-
1401
- // Select the range.
1402
- sel.addRange( nativeRange );
1403
- }
1404
-
1405
- this.reset();
1406
- }
1407
- },
1408
-
1409
- /**
1410
- * Create bookmark for every single of this selection range (from #getRanges)
1411
- * by calling the {@link CKEDITOR.dom.range.prototype.createBookmark} method,
1412
- * with extra cares to avoid interferon among those ranges. Same arguments are
1413
- * received as with the underlay range method.
1414
- */
1415
- createBookmarks : function( serializable )
1416
- {
1417
- return this.getRanges().createBookmarks( serializable );
1418
- },
1419
-
1420
- /**
1421
- * Create bookmark for every single of this selection range (from #getRanges)
1422
- * by calling the {@link CKEDITOR.dom.range.prototype.createBookmark2} method,
1423
- * with extra cares to avoid interferon among those ranges. Same arguments are
1424
- * received as with the underlay range method.
1425
- */
1426
- createBookmarks2 : function( normalized )
1427
- {
1428
- return this.getRanges().createBookmarks2( normalized );
1429
- },
1430
-
1431
- /**
1432
- * Select the virtual ranges denote by the bookmarks by calling #selectRanges.
1433
- * @param bookmarks
1434
- */
1435
- selectBookmarks : function( bookmarks )
1436
- {
1437
- var ranges = [];
1438
- for ( var i = 0 ; i < bookmarks.length ; i++ )
1439
- {
1440
- var range = new CKEDITOR.dom.range( this.document );
1441
- range.moveToBookmark( bookmarks[i] );
1442
- ranges.push( range );
1443
- }
1444
- this.selectRanges( ranges );
1445
- return this;
1446
- },
1447
-
1448
- /**
1449
- * Retrieve the common ancestor node of the first range and the last range.
1450
- */
1451
- getCommonAncestor : function()
1452
- {
1453
- var ranges = this.getRanges(),
1454
- startNode = ranges[ 0 ].startContainer,
1455
- endNode = ranges[ ranges.length - 1 ].endContainer;
1456
- return startNode.getCommonAncestor( endNode );
1457
- },
1458
-
1459
- /**
1460
- * Moving scroll bar to the current selection's start position.
1461
- */
1462
- scrollIntoView : function()
1463
- {
1464
- // If we have split the block, adds a temporary span at the
1465
- // range position and scroll relatively to it.
1466
- var start = this.getStartElement();
1467
- start.scrollIntoView();
1468
- }
1469
- };
1470
- })();
1471
-
1472
- ( function()
1473
- {
1474
- var notWhitespaces = CKEDITOR.dom.walker.whitespaces( true ),
1475
- fillerTextRegex = /\ufeff|\u00a0/,
1476
- nonCells = { table:1,tbody:1,tr:1 };
1477
-
1478
- CKEDITOR.dom.range.prototype.select =
1479
- CKEDITOR.env.ie ?
1480
- // V2
1481
- function( forceExpand )
1482
- {
1483
- var collapsed = this.collapsed,
1484
- isStartMarkerAlone, dummySpan, ieRange;
1485
-
1486
- // Try to make a object selection.
1487
- var selected = this.getEnclosedNode();
1488
- if ( selected )
1489
- {
1490
- try
1491
- {
1492
- ieRange = this.document.$.body.createControlRange();
1493
- ieRange.addElement( selected.$ );
1494
- ieRange.select();
1495
- return;
1496
- }
1497
- catch( er ) {}
1498
- }
1499
-
1500
- // IE doesn't support selecting the entire table row/cell, move the selection into cells, e.g.
1501
- // <table><tbody><tr>[<td>cell</b></td>... => <table><tbody><tr><td>[cell</td>...
1502
- if ( this.startContainer.type == CKEDITOR.NODE_ELEMENT && this.startContainer.getName() in nonCells
1503
- || this.endContainer.type == CKEDITOR.NODE_ELEMENT && this.endContainer.getName() in nonCells )
1504
- {
1505
- this.shrink( CKEDITOR.NODE_ELEMENT, true );
1506
- }
1507
-
1508
- var bookmark = this.createBookmark();
1509
-
1510
- // Create marker tags for the start and end boundaries.
1511
- var startNode = bookmark.startNode;
1512
-
1513
- var endNode;
1514
- if ( !collapsed )
1515
- endNode = bookmark.endNode;
1516
-
1517
- // Create the main range which will be used for the selection.
1518
- ieRange = this.document.$.body.createTextRange();
1519
-
1520
- // Position the range at the start boundary.
1521
- ieRange.moveToElementText( startNode.$ );
1522
- ieRange.moveStart( 'character', 1 );
1523
-
1524
- if ( endNode )
1525
- {
1526
- // Create a tool range for the end.
1527
- var ieRangeEnd = this.document.$.body.createTextRange();
1528
-
1529
- // Position the tool range at the end.
1530
- ieRangeEnd.moveToElementText( endNode.$ );
1531
-
1532
- // Move the end boundary of the main range to match the tool range.
1533
- ieRange.setEndPoint( 'EndToEnd', ieRangeEnd );
1534
- ieRange.moveEnd( 'character', -1 );
1535
- }
1536
- else
1537
- {
1538
- // The isStartMarkerAlone logic comes from V2. It guarantees that the lines
1539
- // will expand and that the cursor will be blinking on the right place.
1540
- // Actually, we are using this flag just to avoid using this hack in all
1541
- // situations, but just on those needed.
1542
- var next = startNode.getNext( notWhitespaces );
1543
- isStartMarkerAlone = ( !( next && next.getText && next.getText().match( fillerTextRegex ) ) // already a filler there?
1544
- && ( forceExpand || !startNode.hasPrevious() || ( startNode.getPrevious().is && startNode.getPrevious().is( 'br' ) ) ) );
1545
-
1546
- // Append a temporary <span>&#65279;</span> before the selection.
1547
- // This is needed to avoid IE destroying selections inside empty
1548
- // inline elements, like <b></b> (#253).
1549
- // It is also needed when placing the selection right after an inline
1550
- // element to avoid the selection moving inside of it.
1551
- dummySpan = this.document.createElement( 'span' );
1552
- dummySpan.setHtml( '&#65279;' ); // Zero Width No-Break Space (U+FEFF). See #1359.
1553
- dummySpan.insertBefore( startNode );
1554
-
1555
- if ( isStartMarkerAlone )
1556
- {
1557
- // To expand empty blocks or line spaces after <br>, we need
1558
- // instead to have any char, which will be later deleted using the
1559
- // selection.
1560
- // \ufeff = Zero Width No-Break Space (U+FEFF). (#1359)
1561
- this.document.createText( '\ufeff' ).insertBefore( startNode );
1562
- }
1563
- }
1564
-
1565
- // Remove the markers (reset the position, because of the changes in the DOM tree).
1566
- this.setStartBefore( startNode );
1567
- startNode.remove();
1568
-
1569
- if ( collapsed )
1570
- {
1571
- if ( isStartMarkerAlone )
1572
- {
1573
- // Move the selection start to include the temporary \ufeff.
1574
- ieRange.moveStart( 'character', -1 );
1575
-
1576
- ieRange.select();
1577
-
1578
- // Remove our temporary stuff.
1579
- this.document.$.selection.clear();
1580
- }
1581
- else
1582
- ieRange.select();
1583
-
1584
- this.moveToPosition( dummySpan, CKEDITOR.POSITION_BEFORE_START );
1585
- dummySpan.remove();
1586
- }
1587
- else
1588
- {
1589
- this.setEndBefore( endNode );
1590
- endNode.remove();
1591
- ieRange.select();
1592
- }
1593
-
1594
- this.document.fire( 'selectionchange' );
1595
- }
1596
- :
1597
- function()
1598
- {
1599
- this.document.getSelection().selectRanges( [ this ] );
1600
- };
1601
- } )();