rich 1.3.1 → 1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1048) hide show
  1. data/README.rdoc +9 -6
  2. data/app/assets/javascripts/rich/base.js.erb +0 -1
  3. data/app/assets/javascripts/rich/editor/rich_editor.js.erb +1 -3
  4. data/lib/rich.rb +2 -2
  5. data/lib/rich/version.rb +1 -1
  6. data/vendor/assets/ckeditor/ckeditor-contrib/plugins/mediaembed/images/icon.png +0 -0
  7. data/vendor/assets/ckeditor/ckeditor-contrib/plugins/mediaembed/plugin.js +64 -0
  8. data/vendor/assets/ckeditor/ckeditor/CHANGES.md +56 -0
  9. data/vendor/assets/ckeditor/ckeditor/{LICENSE.html → LICENSE.md} +27 -90
  10. data/vendor/assets/ckeditor/ckeditor/README.md +39 -0
  11. data/vendor/assets/ckeditor/ckeditor/build-config.js +103 -0
  12. data/vendor/assets/ckeditor/ckeditor/ckeditor.js +884 -151
  13. data/vendor/assets/ckeditor/ckeditor/config.js +10 -11
  14. data/vendor/assets/ckeditor/ckeditor/contents.css +79 -5
  15. data/vendor/assets/ckeditor/ckeditor/lang/en.js +3 -4
  16. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +10 -7
  17. data/vendor/assets/ckeditor/ckeditor/{_source/plugins/a11yhelp → plugins/a11yhelp/dialogs}/lang/_translationstatus.txt +5 -3
  18. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js +9 -0
  19. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js +9 -0
  20. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js +9 -0
  21. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js +10 -0
  22. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js +9 -0
  23. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/da.js +9 -0
  24. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/de.js +10 -0
  25. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/el.js +10 -0
  26. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/en.js +9 -0
  27. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js +10 -0
  28. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/es.js +10 -0
  29. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/et.js +9 -0
  30. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js +9 -0
  31. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js +10 -0
  32. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js +10 -0
  33. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js +9 -0
  34. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/he.js +9 -0
  35. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js +9 -0
  36. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js +9 -0
  37. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js +9 -0
  38. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/it.js +10 -0
  39. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js +9 -0
  40. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js +10 -0
  41. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js +9 -0
  42. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js +10 -0
  43. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js +9 -0
  44. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js +9 -0
  45. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js +9 -0
  46. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js +10 -0
  47. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/no.js +9 -0
  48. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js +9 -0
  49. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js +9 -0
  50. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js +9 -0
  51. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js +9 -0
  52. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js +9 -0
  53. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js +10 -0
  54. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js +9 -0
  55. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js +10 -0
  56. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js +10 -0
  57. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js +9 -0
  58. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js +9 -0
  59. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js +9 -0
  60. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js +7 -0
  61. data/vendor/assets/ckeditor/ckeditor/plugins/about/dialogs/about.js +6 -6
  62. data/vendor/assets/ckeditor/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  63. data/vendor/assets/ckeditor/ckeditor/plugins/clipboard/dialogs/paste.js +11 -7
  64. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/css/codemirror.css +239 -0
  65. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/codemirror.js +160 -0
  66. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/css.js +10 -0
  67. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/htmlmixed.js +4 -0
  68. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/javascript.js +13 -0
  69. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/util/closetag.js +3 -0
  70. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/util/colorize.js +1 -0
  71. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/util/continuecomment.js +2 -0
  72. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/util/continuelist.js +1 -0
  73. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/util/dialog.css +32 -0
  74. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/util/dialog.js +3 -0
  75. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/util/foldcode.js +7 -0
  76. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/util/formatting.js +4 -0
  77. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/util/javascript-hint.js +5 -0
  78. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/util/loadmode.js +3 -0
  79. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/util/match-highlighter.js +2 -0
  80. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/util/matchbrackets.js +4 -0
  81. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/util/multiplex.js +4 -0
  82. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/util/overlay.js +2 -0
  83. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/util/pig-hint.js +6 -0
  84. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/util/runmode-standalone.js +5 -0
  85. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/util/runmode.js +2 -0
  86. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/util/search.js +5 -0
  87. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/util/searchcursor.js +5 -0
  88. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/util/simple-hint.css +16 -0
  89. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/util/simple-hint.js +4 -0
  90. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/util/xml-hint.js +3 -0
  91. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/js/xml.js +10 -0
  92. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/theme/ambiance-mobile.css +6 -0
  93. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/theme/ambiance.css +76 -0
  94. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/theme/blackboard.css +25 -0
  95. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/theme/cobalt.css +18 -0
  96. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/theme/eclipse.css +25 -0
  97. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/theme/elegant.css +10 -0
  98. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/theme/erlang-dark.css +21 -0
  99. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/theme/lesser-dark.css +44 -0
  100. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/theme/monokai.css +28 -0
  101. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/theme/neat.css +9 -0
  102. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/theme/night.css +21 -0
  103. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/theme/rubyblue.css +21 -0
  104. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/theme/solarized.css +207 -0
  105. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/theme/twilight.css +25 -0
  106. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/theme/vibrant-ink.css +27 -0
  107. data/vendor/assets/ckeditor/ckeditor/plugins/codemirror/theme/xq-dark.css +46 -0
  108. data/vendor/assets/ckeditor/ckeditor/plugins/colordialog/dialogs/colordialog.js +13 -7
  109. data/vendor/assets/ckeditor/ckeditor/plugins/dialog/dialogDefinition.js +4 -4
  110. data/vendor/assets/ckeditor/ckeditor/plugins/div/dialogs/div.js +9 -8
  111. data/vendor/assets/ckeditor/ckeditor/{images → plugins/fakeobjects/images}/spacer.gif +0 -0
  112. data/vendor/assets/ckeditor/ckeditor/plugins/find/dialogs/find.js +24 -10
  113. data/vendor/assets/ckeditor/ckeditor/plugins/flash/dialogs/flash.js +23 -9
  114. data/vendor/assets/ckeditor/ckeditor/plugins/flash/images/placeholder.png +0 -0
  115. data/vendor/assets/ckeditor/ckeditor/plugins/forms/dialogs/button.js +8 -6
  116. data/vendor/assets/ckeditor/ckeditor/plugins/forms/dialogs/checkbox.js +8 -6
  117. data/vendor/assets/ckeditor/ckeditor/plugins/forms/dialogs/form.js +8 -6
  118. data/vendor/assets/ckeditor/ckeditor/plugins/forms/dialogs/hiddenfield.js +8 -6
  119. data/vendor/assets/ckeditor/ckeditor/plugins/forms/dialogs/radio.js +8 -6
  120. data/vendor/assets/ckeditor/ckeditor/plugins/forms/dialogs/select.js +20 -9
  121. data/vendor/assets/ckeditor/ckeditor/plugins/forms/dialogs/textarea.js +8 -6
  122. data/vendor/assets/ckeditor/ckeditor/plugins/forms/dialogs/textfield.js +10 -6
  123. data/vendor/assets/ckeditor/ckeditor/plugins/forms/images/hiddenfield.gif +0 -0
  124. data/vendor/assets/ckeditor/ckeditor/plugins/icons.png +0 -0
  125. data/vendor/assets/ckeditor/ckeditor/plugins/iframe/dialogs/iframe.js +10 -7
  126. data/vendor/assets/ckeditor/ckeditor/plugins/iframe/images/placeholder.png +0 -0
  127. data/vendor/assets/ckeditor/ckeditor/plugins/image/dialogs/image.js +41 -13
  128. data/vendor/assets/ckeditor/ckeditor/{_source/skins/kama → plugins/image}/images/noimage.png +0 -0
  129. data/vendor/assets/ckeditor/ckeditor/plugins/link/dialogs/anchor.js +8 -6
  130. data/vendor/assets/ckeditor/ckeditor/plugins/link/dialogs/link.js +36 -12
  131. data/vendor/assets/ckeditor/ckeditor/plugins/link/images/anchor.png +0 -0
  132. data/vendor/assets/ckeditor/ckeditor/plugins/liststyle/dialogs/liststyle.js +10 -7
  133. data/vendor/assets/ckeditor/ckeditor/plugins/magicline/images/icon.png +0 -0
  134. data/vendor/assets/ckeditor/ckeditor/plugins/pagebreak/images/pagebreak.gif +0 -0
  135. data/vendor/assets/ckeditor/ckeditor/plugins/pastefromword/filter/default.js +31 -11
  136. data/vendor/assets/ckeditor/ckeditor/plugins/preview/preview.html +10 -0
  137. data/vendor/assets/ckeditor/ckeditor/plugins/scayt/LICENSE.md +28 -0
  138. data/vendor/assets/ckeditor/ckeditor/plugins/scayt/README.md +25 -0
  139. data/vendor/assets/ckeditor/ckeditor/plugins/scayt/dialogs/options.js +19 -8
  140. data/vendor/assets/ckeditor/ckeditor/plugins/scayt/dialogs/toolbar.css +70 -5
  141. data/vendor/assets/ckeditor/ckeditor/plugins/showblocks/images/block_address.png +0 -0
  142. data/vendor/assets/ckeditor/ckeditor/plugins/showblocks/images/block_blockquote.png +0 -0
  143. data/vendor/assets/ckeditor/ckeditor/plugins/showblocks/images/block_div.png +0 -0
  144. data/vendor/assets/ckeditor/ckeditor/plugins/showblocks/images/block_h1.png +0 -0
  145. data/vendor/assets/ckeditor/ckeditor/plugins/showblocks/images/block_h2.png +0 -0
  146. data/vendor/assets/ckeditor/ckeditor/plugins/showblocks/images/block_h3.png +0 -0
  147. data/vendor/assets/ckeditor/ckeditor/plugins/showblocks/images/block_h4.png +0 -0
  148. data/vendor/assets/ckeditor/ckeditor/plugins/showblocks/images/block_h5.png +0 -0
  149. data/vendor/assets/ckeditor/ckeditor/plugins/showblocks/images/block_h6.png +0 -0
  150. data/vendor/assets/ckeditor/ckeditor/plugins/showblocks/images/block_p.png +0 -0
  151. data/vendor/assets/ckeditor/ckeditor/plugins/showblocks/images/block_pre.png +0 -0
  152. data/vendor/assets/ckeditor/ckeditor/plugins/smiley/dialogs/smiley.js +10 -7
  153. data/vendor/assets/ckeditor/ckeditor/plugins/smiley/images/angel_smile.gif +0 -0
  154. data/vendor/assets/ckeditor/ckeditor/plugins/smiley/images/angry_smile.gif +0 -0
  155. data/vendor/assets/ckeditor/ckeditor/plugins/smiley/images/broken_heart.gif +0 -0
  156. data/vendor/assets/ckeditor/ckeditor/plugins/smiley/images/confused_smile.gif +0 -0
  157. data/vendor/assets/ckeditor/ckeditor/plugins/smiley/images/cry_smile.gif +0 -0
  158. data/vendor/assets/ckeditor/ckeditor/plugins/smiley/images/devil_smile.gif +0 -0
  159. data/vendor/assets/ckeditor/ckeditor/plugins/smiley/images/embaressed_smile.gif +0 -0
  160. data/vendor/assets/ckeditor/ckeditor/{_source/plugins/smiley/images/embaressed_smile.gif → plugins/smiley/images/embarrassed_smile.gif} +0 -0
  161. data/vendor/assets/ckeditor/ckeditor/plugins/smiley/images/envelope.gif +0 -0
  162. data/vendor/assets/ckeditor/ckeditor/plugins/smiley/images/heart.gif +0 -0
  163. data/vendor/assets/ckeditor/ckeditor/plugins/smiley/images/kiss.gif +0 -0
  164. data/vendor/assets/ckeditor/ckeditor/plugins/smiley/images/lightbulb.gif +0 -0
  165. data/vendor/assets/ckeditor/ckeditor/plugins/smiley/images/omg_smile.gif +0 -0
  166. data/vendor/assets/ckeditor/ckeditor/plugins/smiley/images/regular_smile.gif +0 -0
  167. data/vendor/assets/ckeditor/ckeditor/plugins/smiley/images/sad_smile.gif +0 -0
  168. data/vendor/assets/ckeditor/ckeditor/plugins/smiley/images/shades_smile.gif +0 -0
  169. data/vendor/assets/ckeditor/ckeditor/plugins/smiley/images/teeth_smile.gif +0 -0
  170. data/vendor/assets/ckeditor/ckeditor/plugins/smiley/images/thumbs_down.gif +0 -0
  171. data/vendor/assets/ckeditor/ckeditor/plugins/smiley/images/thumbs_up.gif +0 -0
  172. data/vendor/assets/ckeditor/ckeditor/{_source/plugins/smiley/images/tounge_smile.gif → plugins/smiley/images/tongue_smile.gif} +0 -0
  173. data/vendor/assets/ckeditor/ckeditor/plugins/smiley/images/tounge_smile.gif +0 -0
  174. data/vendor/assets/ckeditor/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  175. data/vendor/assets/ckeditor/ckeditor/plugins/smiley/images/wink_smile.gif +0 -0
  176. data/vendor/assets/ckeditor/ckeditor/{_source/plugins/specialchar → plugins/specialchar/dialogs}/lang/_translationstatus.txt +2 -1
  177. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ca.js +13 -0
  178. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cs.js +13 -0
  179. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cy.js +14 -0
  180. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/de.js +13 -0
  181. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/el.js +13 -0
  182. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en.js +13 -0
  183. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/eo.js +12 -0
  184. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/et.js +13 -0
  185. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fa.js +13 -0
  186. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fi.js +13 -0
  187. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fr.js +11 -0
  188. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/he.js +13 -0
  189. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/hr.js +13 -0
  190. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/it.js +14 -0
  191. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ku.js +14 -0
  192. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/lv.js +13 -0
  193. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nb.js +11 -0
  194. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nl.js +13 -0
  195. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/no.js +11 -0
  196. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js +11 -0
  197. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sk.js +13 -0
  198. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sv.js +11 -0
  199. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/tr.js +12 -0
  200. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ug.js +13 -0
  201. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js +9 -0
  202. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/specialchar.js +14 -7
  203. data/vendor/assets/ckeditor/ckeditor/plugins/table/dialogs/table.js +20 -9
  204. data/vendor/assets/ckeditor/ckeditor/plugins/tabletools/dialogs/tableCell.js +16 -8
  205. data/vendor/assets/ckeditor/ckeditor/plugins/templates/dialogs/templates.css +84 -0
  206. data/vendor/assets/ckeditor/ckeditor/plugins/templates/dialogs/templates.js +10 -7
  207. data/vendor/assets/ckeditor/ckeditor/plugins/templates/templates/default.js +6 -6
  208. data/vendor/assets/ckeditor/ckeditor/plugins/templates/templates/images/template1.gif +0 -0
  209. data/vendor/assets/ckeditor/ckeditor/plugins/templates/templates/images/template2.gif +0 -0
  210. data/vendor/assets/ckeditor/ckeditor/plugins/templates/templates/images/template3.gif +0 -0
  211. data/vendor/assets/ckeditor/ckeditor/plugins/wsc/LICENSE.md +28 -0
  212. data/vendor/assets/ckeditor/ckeditor/plugins/wsc/README.md +25 -0
  213. data/vendor/assets/ckeditor/ckeditor/plugins/wsc/dialogs/ciframe.html +0 -0
  214. data/vendor/assets/ckeditor/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +0 -0
  215. data/vendor/assets/ckeditor/ckeditor/plugins/wsc/dialogs/wsc.css +77 -1
  216. data/vendor/assets/ckeditor/ckeditor/plugins/wsc/dialogs/wsc.js +11 -7
  217. data/vendor/assets/ckeditor/ckeditor/samples/ajax.html +82 -0
  218. data/vendor/assets/ckeditor/ckeditor/{_samples → samples}/api.html +93 -78
  219. data/vendor/assets/ckeditor/ckeditor/samples/appendto.html +57 -0
  220. data/vendor/assets/ckeditor/ckeditor/samples/assets/inlineall/logo.png +0 -0
  221. data/vendor/assets/ckeditor/ckeditor/{_samples/assets/output_xhtml.css → samples/assets/outputxhtml/outputxhtml.css} +1 -1
  222. data/vendor/assets/ckeditor/ckeditor/{_samples/assets/_posteddata.php → samples/assets/posteddata.php} +9 -9
  223. data/vendor/assets/ckeditor/ckeditor/samples/assets/sample.css +3 -0
  224. data/vendor/assets/ckeditor/ckeditor/samples/assets/sample.jpg +0 -0
  225. data/vendor/assets/ckeditor/ckeditor/samples/assets/uilanguages/languages.js +7 -0
  226. data/vendor/assets/ckeditor/ckeditor/samples/divreplace.html +141 -0
  227. data/vendor/assets/ckeditor/ckeditor/samples/index.html +122 -0
  228. data/vendor/assets/ckeditor/ckeditor/samples/inlineall.html +311 -0
  229. data/vendor/assets/ckeditor/ckeditor/samples/inlinebycode.html +122 -0
  230. data/vendor/assets/ckeditor/ckeditor/samples/plugins/dialog/assets/my_dialog.js +48 -0
  231. data/vendor/assets/ckeditor/ckeditor/samples/plugins/dialog/dialog.html +187 -0
  232. data/vendor/assets/ckeditor/ckeditor/samples/plugins/enterkey/enterkey.html +103 -0
  233. data/vendor/assets/ckeditor/ckeditor/{_samples/assets/output_for_flash.fla → samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla} +0 -0
  234. data/vendor/assets/ckeditor/ckeditor/{_samples/assets/output_for_flash.swf → samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf} +0 -0
  235. data/vendor/assets/ckeditor/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js +18 -0
  236. data/vendor/assets/ckeditor/ckeditor/samples/plugins/htmlwriter/outputforflash.html +280 -0
  237. data/vendor/assets/ckeditor/ckeditor/samples/plugins/htmlwriter/outputhtml.html +237 -0
  238. data/vendor/assets/ckeditor/ckeditor/samples/plugins/magicline/magicline.html +203 -0
  239. data/vendor/assets/ckeditor/ckeditor/{_samples/assets/parsesample.css → samples/plugins/stylesheetparser/assets/sample.css} +0 -0
  240. data/vendor/assets/ckeditor/ckeditor/samples/plugins/stylesheetparser/stylesheetparser.html +82 -0
  241. data/vendor/assets/ckeditor/ckeditor/samples/plugins/toolbar/toolbar.html +200 -0
  242. data/vendor/assets/ckeditor/ckeditor/samples/plugins/wysiwygarea/fullpage.html +71 -0
  243. data/vendor/assets/ckeditor/ckeditor/samples/readonly.html +73 -0
  244. data/vendor/assets/ckeditor/ckeditor/samples/replacebyclass.html +57 -0
  245. data/vendor/assets/ckeditor/ckeditor/samples/replacebycode.html +56 -0
  246. data/vendor/assets/ckeditor/ckeditor/samples/sample.css +333 -0
  247. data/vendor/assets/ckeditor/ckeditor/samples/sample.js +5 -0
  248. data/vendor/assets/ckeditor/ckeditor/{_samples → samples}/sample_posteddata.php +5 -10
  249. data/vendor/assets/ckeditor/ckeditor/samples/tabindex.html +75 -0
  250. data/vendor/assets/ckeditor/ckeditor/samples/uicolor.html +69 -0
  251. data/vendor/assets/ckeditor/ckeditor/samples/uilanguages.html +119 -0
  252. data/vendor/assets/ckeditor/ckeditor/samples/xhtmlstyle.html +219 -0
  253. data/vendor/assets/ckeditor/ckeditor/skins/moono/dialog.css +5 -0
  254. data/vendor/assets/ckeditor/ckeditor/skins/moono/dialog_ie.css +5 -0
  255. data/vendor/assets/ckeditor/ckeditor/skins/moono/dialog_ie7.css +5 -0
  256. data/vendor/assets/ckeditor/ckeditor/skins/moono/dialog_ie8.css +5 -0
  257. data/vendor/assets/ckeditor/ckeditor/skins/moono/dialog_iequirks.css +5 -0
  258. data/vendor/assets/ckeditor/ckeditor/skins/moono/dialog_opera.css +5 -0
  259. data/vendor/assets/ckeditor/ckeditor/skins/moono/editor.css +5 -0
  260. data/vendor/assets/ckeditor/ckeditor/skins/moono/editor_gecko.css +5 -0
  261. data/vendor/assets/ckeditor/ckeditor/skins/moono/editor_ie.css +5 -0
  262. data/vendor/assets/ckeditor/ckeditor/skins/moono/editor_ie7.css +5 -0
  263. data/vendor/assets/ckeditor/ckeditor/skins/moono/editor_ie8.css +5 -0
  264. data/vendor/assets/ckeditor/ckeditor/skins/moono/editor_iequirks.css +5 -0
  265. data/vendor/assets/ckeditor/ckeditor/skins/moono/icons.png +0 -0
  266. data/vendor/assets/ckeditor/ckeditor/skins/moono/images/arrow.png +0 -0
  267. data/vendor/assets/ckeditor/ckeditor/skins/moono/images/close.png +0 -0
  268. data/vendor/assets/ckeditor/ckeditor/skins/moono/images/mini.png +0 -0
  269. data/vendor/assets/ckeditor/ckeditor/skins/moono/readme.md +51 -0
  270. data/vendor/assets/ckeditor/ckeditor/styles.js +112 -0
  271. metadata +190 -795
  272. data/vendor/assets/ckeditor/ckeditor-contrib/plugins/MediaEmbed/dialogs/mediaembed.html +0 -14
  273. data/vendor/assets/ckeditor/ckeditor-contrib/plugins/MediaEmbed/images/icon.gif +0 -0
  274. data/vendor/assets/ckeditor/ckeditor-contrib/plugins/MediaEmbed/plugin.js +0 -61
  275. data/vendor/assets/ckeditor/ckeditor-contrib/plugins/audio/README +0 -0
  276. data/vendor/assets/ckeditor/ckeditor-contrib/plugins/audio/dialogs/audio.js +0 -265
  277. data/vendor/assets/ckeditor/ckeditor-contrib/plugins/audio/docs/install.html +0 -72
  278. data/vendor/assets/ckeditor/ckeditor-contrib/plugins/audio/docs/styles.css +0 -67
  279. data/vendor/assets/ckeditor/ckeditor-contrib/plugins/audio/images/icon.png +0 -0
  280. data/vendor/assets/ckeditor/ckeditor-contrib/plugins/audio/images/placeholder.png +0 -0
  281. data/vendor/assets/ckeditor/ckeditor-contrib/plugins/audio/plugin.js +0 -165
  282. data/vendor/assets/ckeditor/ckeditor/CHANGES.html +0 -1503
  283. data/vendor/assets/ckeditor/ckeditor/INSTALL.html +0 -92
  284. data/vendor/assets/ckeditor/ckeditor/_samples/adobeair/application.xml +0 -32
  285. data/vendor/assets/ckeditor/ckeditor/_samples/adobeair/run.bat +0 -9
  286. data/vendor/assets/ckeditor/ckeditor/_samples/adobeair/run.sh +0 -8
  287. data/vendor/assets/ckeditor/ckeditor/_samples/adobeair/sample.html +0 -45
  288. data/vendor/assets/ckeditor/ckeditor/_samples/ajax.html +0 -98
  289. data/vendor/assets/ckeditor/ckeditor/_samples/api_dialog.html +0 -198
  290. data/vendor/assets/ckeditor/ckeditor/_samples/api_dialog/my_dialog.js +0 -28
  291. data/vendor/assets/ckeditor/ckeditor/_samples/asp/advanced.asp +0 -105
  292. data/vendor/assets/ckeditor/ckeditor/_samples/asp/events.asp +0 -136
  293. data/vendor/assets/ckeditor/ckeditor/_samples/asp/index.html +0 -103
  294. data/vendor/assets/ckeditor/ckeditor/_samples/asp/replace.asp +0 -72
  295. data/vendor/assets/ckeditor/ckeditor/_samples/asp/replaceall.asp +0 -77
  296. data/vendor/assets/ckeditor/ckeditor/_samples/asp/sample_posteddata.asp +0 -46
  297. data/vendor/assets/ckeditor/ckeditor/_samples/asp/standalone.asp +0 -72
  298. data/vendor/assets/ckeditor/ckeditor/_samples/assets/swfobject.js +0 -18
  299. data/vendor/assets/ckeditor/ckeditor/_samples/autogrow.html +0 -108
  300. data/vendor/assets/ckeditor/ckeditor/_samples/bbcode.html +0 -125
  301. data/vendor/assets/ckeditor/ckeditor/_samples/devtools.html +0 -94
  302. data/vendor/assets/ckeditor/ckeditor/_samples/divreplace.html +0 -154
  303. data/vendor/assets/ckeditor/ckeditor/_samples/enterkey.html +0 -115
  304. data/vendor/assets/ckeditor/ckeditor/_samples/fullpage.html +0 -82
  305. data/vendor/assets/ckeditor/ckeditor/_samples/index.html +0 -116
  306. data/vendor/assets/ckeditor/ckeditor/_samples/jqueryadapter.html +0 -99
  307. data/vendor/assets/ckeditor/ckeditor/_samples/output_for_flash.html +0 -275
  308. data/vendor/assets/ckeditor/ckeditor/_samples/output_html.html +0 -285
  309. data/vendor/assets/ckeditor/ckeditor/_samples/output_xhtml.html +0 -181
  310. data/vendor/assets/ckeditor/ckeditor/_samples/php/advanced.php +0 -120
  311. data/vendor/assets/ckeditor/ckeditor/_samples/php/events.php +0 -153
  312. data/vendor/assets/ckeditor/ckeditor/_samples/php/index.html +0 -47
  313. data/vendor/assets/ckeditor/ckeditor/_samples/php/replace.php +0 -87
  314. data/vendor/assets/ckeditor/ckeditor/_samples/php/replaceall.php +0 -88
  315. data/vendor/assets/ckeditor/ckeditor/_samples/php/standalone.php +0 -83
  316. data/vendor/assets/ckeditor/ckeditor/_samples/placeholder.html +0 -81
  317. data/vendor/assets/ckeditor/ckeditor/_samples/readonly.html +0 -91
  318. data/vendor/assets/ckeditor/ckeditor/_samples/replacebyclass.html +0 -64
  319. data/vendor/assets/ckeditor/ckeditor/_samples/replacebycode.html +0 -97
  320. data/vendor/assets/ckeditor/ckeditor/_samples/sample.css +0 -163
  321. data/vendor/assets/ckeditor/ckeditor/_samples/sample.js +0 -65
  322. data/vendor/assets/ckeditor/ckeditor/_samples/sharedspaces.html +0 -153
  323. data/vendor/assets/ckeditor/ckeditor/_samples/skins.html +0 -110
  324. data/vendor/assets/ckeditor/ckeditor/_samples/stylesheetparser.html +0 -93
  325. data/vendor/assets/ckeditor/ckeditor/_samples/tableresize.html +0 -115
  326. data/vendor/assets/ckeditor/ckeditor/_samples/ui_color.html +0 -129
  327. data/vendor/assets/ckeditor/ckeditor/_samples/ui_languages.html +0 -134
  328. data/vendor/assets/ckeditor/ckeditor/_source/adapters/jquery.js +0 -306
  329. data/vendor/assets/ckeditor/ckeditor/_source/core/_bootstrap.js +0 -87
  330. data/vendor/assets/ckeditor/ckeditor/_source/core/ckeditor.js +0 -141
  331. data/vendor/assets/ckeditor/ckeditor/_source/core/ckeditor_base.js +0 -235
  332. data/vendor/assets/ckeditor/ckeditor/_source/core/ckeditor_basic.js +0 -238
  333. data/vendor/assets/ckeditor/ckeditor/_source/core/command.js +0 -225
  334. data/vendor/assets/ckeditor/ckeditor/_source/core/commanddefinition.js +0 -129
  335. data/vendor/assets/ckeditor/ckeditor/_source/core/config.js +0 -447
  336. data/vendor/assets/ckeditor/ckeditor/_source/core/dataprocessor.js +0 -65
  337. data/vendor/assets/ckeditor/ckeditor/_source/core/dom.js +0 -20
  338. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/comment.js +0 -44
  339. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/document.js +0 -251
  340. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/documentfragment.js +0 -49
  341. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/domobject.js +0 -258
  342. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/element.js +0 -1796
  343. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/elementpath.js +0 -117
  344. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/event.js +0 -145
  345. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/node.js +0 -691
  346. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/nodelist.js +0 -26
  347. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/range.js +0 -2068
  348. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/rangelist.js +0 -213
  349. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/text.js +0 -128
  350. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/walker.js +0 -496
  351. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/window.js +0 -96
  352. data/vendor/assets/ckeditor/ckeditor/_source/core/dtd.js +0 -266
  353. data/vendor/assets/ckeditor/ckeditor/_source/core/editor.js +0 -1059
  354. data/vendor/assets/ckeditor/ckeditor/_source/core/editor_basic.js +0 -186
  355. data/vendor/assets/ckeditor/ckeditor/_source/core/env.js +0 -305
  356. data/vendor/assets/ckeditor/ckeditor/_source/core/event.js +0 -342
  357. data/vendor/assets/ckeditor/ckeditor/_source/core/eventInfo.js +0 -120
  358. data/vendor/assets/ckeditor/ckeditor/_source/core/focusmanager.js +0 -152
  359. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser.js +0 -224
  360. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/basicwriter.js +0 -145
  361. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/cdata.js +0 -43
  362. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/comment.js +0 -60
  363. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/element.js +0 -308
  364. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/filter.js +0 -288
  365. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/fragment.js +0 -537
  366. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/text.js +0 -53
  367. data/vendor/assets/ckeditor/ckeditor/_source/core/lang.js +0 -157
  368. data/vendor/assets/ckeditor/ckeditor/_source/core/loader.js +0 -240
  369. data/vendor/assets/ckeditor/ckeditor/_source/core/plugindefinition.js +0 -83
  370. data/vendor/assets/ckeditor/ckeditor/_source/core/plugins.js +0 -103
  371. data/vendor/assets/ckeditor/ckeditor/_source/core/resourcemanager.js +0 -238
  372. data/vendor/assets/ckeditor/ckeditor/_source/core/scriptloader.js +0 -180
  373. data/vendor/assets/ckeditor/ckeditor/_source/core/skins.js +0 -184
  374. data/vendor/assets/ckeditor/ckeditor/_source/core/themes.js +0 -19
  375. data/vendor/assets/ckeditor/ckeditor/_source/core/tools.js +0 -763
  376. data/vendor/assets/ckeditor/ckeditor/_source/core/ui.js +0 -128
  377. data/vendor/assets/ckeditor/ckeditor/_source/lang/_languages.js +0 -84
  378. data/vendor/assets/ckeditor/ckeditor/_source/lang/_translationstatus.txt +0 -63
  379. data/vendor/assets/ckeditor/ckeditor/_source/lang/af.js +0 -815
  380. data/vendor/assets/ckeditor/ckeditor/_source/lang/ar.js +0 -815
  381. data/vendor/assets/ckeditor/ckeditor/_source/lang/bg.js +0 -815
  382. data/vendor/assets/ckeditor/ckeditor/_source/lang/bn.js +0 -815
  383. data/vendor/assets/ckeditor/ckeditor/_source/lang/bs.js +0 -815
  384. data/vendor/assets/ckeditor/ckeditor/_source/lang/ca.js +0 -815
  385. data/vendor/assets/ckeditor/ckeditor/_source/lang/cs.js +0 -815
  386. data/vendor/assets/ckeditor/ckeditor/_source/lang/cy.js +0 -815
  387. data/vendor/assets/ckeditor/ckeditor/_source/lang/da.js +0 -815
  388. data/vendor/assets/ckeditor/ckeditor/_source/lang/de.js +0 -815
  389. data/vendor/assets/ckeditor/ckeditor/_source/lang/el.js +0 -815
  390. data/vendor/assets/ckeditor/ckeditor/_source/lang/en-au.js +0 -815
  391. data/vendor/assets/ckeditor/ckeditor/_source/lang/en-ca.js +0 -815
  392. data/vendor/assets/ckeditor/ckeditor/_source/lang/en-gb.js +0 -815
  393. data/vendor/assets/ckeditor/ckeditor/_source/lang/en.js +0 -815
  394. data/vendor/assets/ckeditor/ckeditor/_source/lang/eo.js +0 -815
  395. data/vendor/assets/ckeditor/ckeditor/_source/lang/es.js +0 -815
  396. data/vendor/assets/ckeditor/ckeditor/_source/lang/et.js +0 -815
  397. data/vendor/assets/ckeditor/ckeditor/_source/lang/eu.js +0 -815
  398. data/vendor/assets/ckeditor/ckeditor/_source/lang/fa.js +0 -815
  399. data/vendor/assets/ckeditor/ckeditor/_source/lang/fi.js +0 -815
  400. data/vendor/assets/ckeditor/ckeditor/_source/lang/fo.js +0 -815
  401. data/vendor/assets/ckeditor/ckeditor/_source/lang/fr-ca.js +0 -815
  402. data/vendor/assets/ckeditor/ckeditor/_source/lang/fr.js +0 -815
  403. data/vendor/assets/ckeditor/ckeditor/_source/lang/gl.js +0 -815
  404. data/vendor/assets/ckeditor/ckeditor/_source/lang/gu.js +0 -815
  405. data/vendor/assets/ckeditor/ckeditor/_source/lang/he.js +0 -815
  406. data/vendor/assets/ckeditor/ckeditor/_source/lang/hi.js +0 -815
  407. data/vendor/assets/ckeditor/ckeditor/_source/lang/hr.js +0 -815
  408. data/vendor/assets/ckeditor/ckeditor/_source/lang/hu.js +0 -815
  409. data/vendor/assets/ckeditor/ckeditor/_source/lang/is.js +0 -815
  410. data/vendor/assets/ckeditor/ckeditor/_source/lang/it.js +0 -815
  411. data/vendor/assets/ckeditor/ckeditor/_source/lang/ja.js +0 -815
  412. data/vendor/assets/ckeditor/ckeditor/_source/lang/ka.js +0 -815
  413. data/vendor/assets/ckeditor/ckeditor/_source/lang/km.js +0 -815
  414. data/vendor/assets/ckeditor/ckeditor/_source/lang/ko.js +0 -815
  415. data/vendor/assets/ckeditor/ckeditor/_source/lang/lt.js +0 -815
  416. data/vendor/assets/ckeditor/ckeditor/_source/lang/lv.js +0 -815
  417. data/vendor/assets/ckeditor/ckeditor/_source/lang/mk.js +0 -814
  418. data/vendor/assets/ckeditor/ckeditor/_source/lang/mn.js +0 -815
  419. data/vendor/assets/ckeditor/ckeditor/_source/lang/ms.js +0 -815
  420. data/vendor/assets/ckeditor/ckeditor/_source/lang/nb.js +0 -815
  421. data/vendor/assets/ckeditor/ckeditor/_source/lang/nl.js +0 -815
  422. data/vendor/assets/ckeditor/ckeditor/_source/lang/no.js +0 -815
  423. data/vendor/assets/ckeditor/ckeditor/_source/lang/pl.js +0 -815
  424. data/vendor/assets/ckeditor/ckeditor/_source/lang/pt-br.js +0 -814
  425. data/vendor/assets/ckeditor/ckeditor/_source/lang/pt.js +0 -815
  426. data/vendor/assets/ckeditor/ckeditor/_source/lang/ro.js +0 -815
  427. data/vendor/assets/ckeditor/ckeditor/_source/lang/ru.js +0 -815
  428. data/vendor/assets/ckeditor/ckeditor/_source/lang/sk.js +0 -815
  429. data/vendor/assets/ckeditor/ckeditor/_source/lang/sl.js +0 -815
  430. data/vendor/assets/ckeditor/ckeditor/_source/lang/sr-latn.js +0 -815
  431. data/vendor/assets/ckeditor/ckeditor/_source/lang/sr.js +0 -815
  432. data/vendor/assets/ckeditor/ckeditor/_source/lang/sv.js +0 -814
  433. data/vendor/assets/ckeditor/ckeditor/_source/lang/th.js +0 -815
  434. data/vendor/assets/ckeditor/ckeditor/_source/lang/tr.js +0 -814
  435. data/vendor/assets/ckeditor/ckeditor/_source/lang/ug.js +0 -814
  436. data/vendor/assets/ckeditor/ckeditor/_source/lang/uk.js +0 -815
  437. data/vendor/assets/ckeditor/ckeditor/_source/lang/vi.js +0 -815
  438. data/vendor/assets/ckeditor/ckeditor/_source/lang/zh-cn.js +0 -815
  439. data/vendor/assets/ckeditor/ckeditor/_source/lang/zh.js +0 -815
  440. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/a11yhelp.js +0 -222
  441. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/cs.js +0 -89
  442. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/cy.js +0 -89
  443. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/da.js +0 -89
  444. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/de.js +0 -89
  445. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/el.js +0 -89
  446. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/en.js +0 -108
  447. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/eo.js +0 -89
  448. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/fa.js +0 -89
  449. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/fi.js +0 -89
  450. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/fr.js +0 -89
  451. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/gu.js +0 -89
  452. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/he.js +0 -89
  453. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/it.js +0 -89
  454. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/mk.js +0 -89
  455. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/nb.js +0 -89
  456. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/nl.js +0 -89
  457. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/no.js +0 -89
  458. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/tr.js +0 -89
  459. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/ug.js +0 -89
  460. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/vi.js +0 -89
  461. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/zh-cn.js +0 -89
  462. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/plugin.js +0 -47
  463. data/vendor/assets/ckeditor/ckeditor/_source/plugins/about/dialogs/about.js +0 -76
  464. data/vendor/assets/ckeditor/ckeditor/_source/plugins/about/dialogs/logo_ckeditor.png +0 -0
  465. data/vendor/assets/ckeditor/ckeditor/_source/plugins/about/plugin.js +0 -24
  466. data/vendor/assets/ckeditor/ckeditor/_source/plugins/adobeair/plugin.js +0 -228
  467. data/vendor/assets/ckeditor/ckeditor/_source/plugins/ajax/plugin.js +0 -152
  468. data/vendor/assets/ckeditor/ckeditor/_source/plugins/autogrow/plugin.js +0 -141
  469. data/vendor/assets/ckeditor/ckeditor/_source/plugins/basicstyles/plugin.js +0 -129
  470. data/vendor/assets/ckeditor/ckeditor/_source/plugins/bbcode/plugin.js +0 -931
  471. data/vendor/assets/ckeditor/ckeditor/_source/plugins/bidi/plugin.js +0 -334
  472. data/vendor/assets/ckeditor/ckeditor/_source/plugins/blockquote/plugin.js +0 -305
  473. data/vendor/assets/ckeditor/ckeditor/_source/plugins/button/plugin.js +0 -290
  474. data/vendor/assets/ckeditor/ckeditor/_source/plugins/clipboard/dialogs/paste.js +0 -223
  475. data/vendor/assets/ckeditor/ckeditor/_source/plugins/clipboard/plugin.js +0 -479
  476. data/vendor/assets/ckeditor/ckeditor/_source/plugins/colorbutton/plugin.js +0 -300
  477. data/vendor/assets/ckeditor/ckeditor/_source/plugins/colordialog/dialogs/colordialog.js +0 -387
  478. data/vendor/assets/ckeditor/ckeditor/_source/plugins/colordialog/plugin.js +0 -15
  479. data/vendor/assets/ckeditor/ckeditor/_source/plugins/contextmenu/plugin.js +0 -179
  480. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/_translationstatus.txt +0 -27
  481. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/bg.js +0 -16
  482. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/cs.js +0 -16
  483. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/cy.js +0 -16
  484. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/da.js +0 -16
  485. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/de.js +0 -16
  486. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/el.js +0 -16
  487. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/en.js +0 -16
  488. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/eo.js +0 -16
  489. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/et.js +0 -16
  490. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/fa.js +0 -16
  491. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/fi.js +0 -16
  492. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/fr.js +0 -16
  493. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/gu.js +0 -16
  494. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/he.js +0 -16
  495. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/hr.js +0 -16
  496. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/it.js +0 -16
  497. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/nb.js +0 -16
  498. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/nl.js +0 -16
  499. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/no.js +0 -16
  500. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/pl.js +0 -16
  501. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/tr.js +0 -16
  502. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/ug.js +0 -16
  503. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/uk.js +0 -16
  504. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/vi.js +0 -16
  505. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/zh-cn.js +0 -16
  506. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/plugin.js +0 -173
  507. data/vendor/assets/ckeditor/ckeditor/_source/plugins/dialog/dialogDefinition.js +0 -1166
  508. data/vendor/assets/ckeditor/ckeditor/_source/plugins/dialog/plugin.js +0 -3319
  509. data/vendor/assets/ckeditor/ckeditor/_source/plugins/dialogadvtab/plugin.js +0 -208
  510. data/vendor/assets/ckeditor/ckeditor/_source/plugins/dialogui/plugin.js +0 -1549
  511. data/vendor/assets/ckeditor/ckeditor/_source/plugins/div/dialogs/div.js +0 -535
  512. data/vendor/assets/ckeditor/ckeditor/_source/plugins/div/plugin.js +0 -121
  513. data/vendor/assets/ckeditor/ckeditor/_source/plugins/docprops/dialogs/docprops.js +0 -674
  514. data/vendor/assets/ckeditor/ckeditor/_source/plugins/docprops/plugin.js +0 -22
  515. data/vendor/assets/ckeditor/ckeditor/_source/plugins/domiterator/plugin.js +0 -366
  516. data/vendor/assets/ckeditor/ckeditor/_source/plugins/editingblock/plugin.js +0 -278
  517. data/vendor/assets/ckeditor/ckeditor/_source/plugins/elementspath/plugin.js +0 -218
  518. data/vendor/assets/ckeditor/ckeditor/_source/plugins/enterkey/plugin.js +0 -433
  519. data/vendor/assets/ckeditor/ckeditor/_source/plugins/entities/plugin.js +0 -254
  520. data/vendor/assets/ckeditor/ckeditor/_source/plugins/fakeobjects/plugin.js +0 -175
  521. data/vendor/assets/ckeditor/ckeditor/_source/plugins/filebrowser/plugin.js +0 -533
  522. data/vendor/assets/ckeditor/ckeditor/_source/plugins/find/dialogs/find.js +0 -915
  523. data/vendor/assets/ckeditor/ckeditor/_source/plugins/find/plugin.js +0 -47
  524. data/vendor/assets/ckeditor/ckeditor/_source/plugins/flash/dialogs/flash.js +0 -674
  525. data/vendor/assets/ckeditor/ckeditor/_source/plugins/flash/images/placeholder.png +0 -0
  526. data/vendor/assets/ckeditor/ckeditor/_source/plugins/flash/plugin.js +0 -154
  527. data/vendor/assets/ckeditor/ckeditor/_source/plugins/floatpanel/plugin.js +0 -476
  528. data/vendor/assets/ckeditor/ckeditor/_source/plugins/font/plugin.js +0 -234
  529. data/vendor/assets/ckeditor/ckeditor/_source/plugins/format/plugin.js +0 -197
  530. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/button.js +0 -118
  531. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/checkbox.js +0 -153
  532. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/form.js +0 -177
  533. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/hiddenfield.js +0 -100
  534. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/radio.js +0 -135
  535. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/select.js +0 -558
  536. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/textarea.js +0 -135
  537. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/textfield.js +0 -199
  538. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/images/hiddenfield.gif +0 -0
  539. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/plugin.js +0 -288
  540. data/vendor/assets/ckeditor/ckeditor/_source/plugins/horizontalrule/plugin.js +0 -48
  541. data/vendor/assets/ckeditor/ckeditor/_source/plugins/htmldataprocessor/plugin.js +0 -600
  542. data/vendor/assets/ckeditor/ckeditor/_source/plugins/htmlwriter/plugin.js +0 -319
  543. data/vendor/assets/ckeditor/ckeditor/_source/plugins/iframe/dialogs/iframe.js +0 -229
  544. data/vendor/assets/ckeditor/ckeditor/_source/plugins/iframe/images/placeholder.png +0 -0
  545. data/vendor/assets/ckeditor/ckeditor/_source/plugins/iframe/plugin.js +0 -87
  546. data/vendor/assets/ckeditor/ckeditor/_source/plugins/iframedialog/plugin.js +0 -188
  547. data/vendor/assets/ckeditor/ckeditor/_source/plugins/image/dialogs/image.js +0 -1406
  548. data/vendor/assets/ckeditor/ckeditor/_source/plugins/image/plugin.js +0 -164
  549. data/vendor/assets/ckeditor/ckeditor/_source/plugins/indent/plugin.js +0 -480
  550. data/vendor/assets/ckeditor/ckeditor/_source/plugins/justify/plugin.js +0 -251
  551. data/vendor/assets/ckeditor/ckeditor/_source/plugins/keystrokes/plugin.js +0 -225
  552. data/vendor/assets/ckeditor/ckeditor/_source/plugins/link/dialogs/anchor.js +0 -144
  553. data/vendor/assets/ckeditor/ckeditor/_source/plugins/link/dialogs/link.js +0 -1427
  554. data/vendor/assets/ckeditor/ckeditor/_source/plugins/link/images/anchor.gif +0 -0
  555. data/vendor/assets/ckeditor/ckeditor/_source/plugins/link/plugin.js +0 -374
  556. data/vendor/assets/ckeditor/ckeditor/_source/plugins/list/plugin.js +0 -967
  557. data/vendor/assets/ckeditor/ckeditor/_source/plugins/listblock/plugin.js +0 -260
  558. data/vendor/assets/ckeditor/ckeditor/_source/plugins/liststyle/dialogs/liststyle.js +0 -225
  559. data/vendor/assets/ckeditor/ckeditor/_source/plugins/liststyle/plugin.js +0 -66
  560. data/vendor/assets/ckeditor/ckeditor/_source/plugins/maximize/plugin.js +0 -353
  561. data/vendor/assets/ckeditor/ckeditor/_source/plugins/menu/plugin.js +0 -542
  562. data/vendor/assets/ckeditor/ckeditor/_source/plugins/menubutton/plugin.js +0 -98
  563. data/vendor/assets/ckeditor/ckeditor/_source/plugins/newpage/plugin.js +0 -55
  564. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pagebreak/images/pagebreak.gif +0 -0
  565. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pagebreak/plugin.js +0 -164
  566. data/vendor/assets/ckeditor/ckeditor/_source/plugins/panel/plugin.js +0 -396
  567. data/vendor/assets/ckeditor/ckeditor/_source/plugins/panelbutton/plugin.js +0 -144
  568. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pastefromword/filter/default.js +0 -1367
  569. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pastefromword/plugin.js +0 -141
  570. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pastetext/dialogs/pastetext.js +0 -67
  571. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pastetext/plugin.js +0 -98
  572. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/dialogs/placeholder.js +0 -71
  573. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/_translationstatus.txt +0 -26
  574. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/bg.js +0 -16
  575. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/cs.js +0 -16
  576. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/cy.js +0 -16
  577. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/da.js +0 -16
  578. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/de.js +0 -16
  579. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/el.js +0 -16
  580. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/en.js +0 -16
  581. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/eo.js +0 -16
  582. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/et.js +0 -16
  583. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/fa.js +0 -16
  584. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/fi.js +0 -16
  585. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/fr.js +0 -16
  586. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/he.js +0 -16
  587. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/hr.js +0 -16
  588. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/it.js +0 -16
  589. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/nb.js +0 -16
  590. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/nl.js +0 -16
  591. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/no.js +0 -16
  592. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/pl.js +0 -16
  593. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/tr.js +0 -16
  594. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/ug.js +0 -16
  595. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/uk.js +0 -16
  596. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/vi.js +0 -16
  597. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/zh-cn.js +0 -16
  598. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/placeholder.gif +0 -0
  599. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/plugin.js +0 -171
  600. data/vendor/assets/ckeditor/ckeditor/_source/plugins/popup/plugin.js +0 -69
  601. data/vendor/assets/ckeditor/ckeditor/_source/plugins/preview/plugin.js +0 -113
  602. data/vendor/assets/ckeditor/ckeditor/_source/plugins/print/plugin.js +0 -42
  603. data/vendor/assets/ckeditor/ckeditor/_source/plugins/removeformat/plugin.js +0 -185
  604. data/vendor/assets/ckeditor/ckeditor/_source/plugins/resize/plugin.js +0 -169
  605. data/vendor/assets/ckeditor/ckeditor/_source/plugins/richcombo/plugin.js +0 -381
  606. data/vendor/assets/ckeditor/ckeditor/_source/plugins/save/plugin.js +0 -56
  607. data/vendor/assets/ckeditor/ckeditor/_source/plugins/scayt/dialogs/options.js +0 -537
  608. data/vendor/assets/ckeditor/ckeditor/_source/plugins/scayt/dialogs/toolbar.css +0 -71
  609. data/vendor/assets/ckeditor/ckeditor/_source/plugins/scayt/plugin.js +0 -973
  610. data/vendor/assets/ckeditor/ckeditor/_source/plugins/selection/plugin.js +0 -1855
  611. data/vendor/assets/ckeditor/ckeditor/_source/plugins/showblocks/images/block_address.png +0 -0
  612. data/vendor/assets/ckeditor/ckeditor/_source/plugins/showblocks/images/block_blockquote.png +0 -0
  613. data/vendor/assets/ckeditor/ckeditor/_source/plugins/showblocks/images/block_div.png +0 -0
  614. data/vendor/assets/ckeditor/ckeditor/_source/plugins/showblocks/images/block_h1.png +0 -0
  615. data/vendor/assets/ckeditor/ckeditor/_source/plugins/showblocks/images/block_h2.png +0 -0
  616. data/vendor/assets/ckeditor/ckeditor/_source/plugins/showblocks/images/block_h3.png +0 -0
  617. data/vendor/assets/ckeditor/ckeditor/_source/plugins/showblocks/images/block_h4.png +0 -0
  618. data/vendor/assets/ckeditor/ckeditor/_source/plugins/showblocks/images/block_h5.png +0 -0
  619. data/vendor/assets/ckeditor/ckeditor/_source/plugins/showblocks/images/block_h6.png +0 -0
  620. data/vendor/assets/ckeditor/ckeditor/_source/plugins/showblocks/images/block_p.png +0 -0
  621. data/vendor/assets/ckeditor/ckeditor/_source/plugins/showblocks/images/block_pre.png +0 -0
  622. data/vendor/assets/ckeditor/ckeditor/_source/plugins/showblocks/plugin.js +0 -160
  623. data/vendor/assets/ckeditor/ckeditor/_source/plugins/showborders/plugin.js +0 -207
  624. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/dialogs/smiley.js +0 -224
  625. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/images/angel_smile.gif +0 -0
  626. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/images/angry_smile.gif +0 -0
  627. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/images/broken_heart.gif +0 -0
  628. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/images/confused_smile.gif +0 -0
  629. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/images/cry_smile.gif +0 -0
  630. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/images/devil_smile.gif +0 -0
  631. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/images/envelope.gif +0 -0
  632. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/images/heart.gif +0 -0
  633. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/images/kiss.gif +0 -0
  634. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/images/lightbulb.gif +0 -0
  635. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/images/omg_smile.gif +0 -0
  636. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/images/regular_smile.gif +0 -0
  637. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/images/sad_smile.gif +0 -0
  638. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/images/shades_smile.gif +0 -0
  639. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/images/teeth_smile.gif +0 -0
  640. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/images/thumbs_down.gif +0 -0
  641. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/images/thumbs_up.gif +0 -0
  642. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  643. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/images/wink_smile.gif +0 -0
  644. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/plugin.js +0 -94
  645. data/vendor/assets/ckeditor/ckeditor/_source/plugins/sourcearea/plugin.js +0 -209
  646. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/specialchar.js +0 -350
  647. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/cs.js +0 -126
  648. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/cy.js +0 -126
  649. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/de.js +0 -126
  650. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/en.js +0 -126
  651. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/eo.js +0 -126
  652. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/et.js +0 -126
  653. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/fa.js +0 -126
  654. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/fi.js +0 -126
  655. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/fr.js +0 -126
  656. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/hr.js +0 -126
  657. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/it.js +0 -126
  658. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/nb.js +0 -126
  659. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/nl.js +0 -126
  660. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/no.js +0 -126
  661. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/tr.js +0 -126
  662. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/ug.js +0 -126
  663. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/zh-cn.js +0 -126
  664. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/plugin.js +0 -70
  665. data/vendor/assets/ckeditor/ckeditor/_source/plugins/styles/plugin.js +0 -1706
  666. data/vendor/assets/ckeditor/ckeditor/_source/plugins/styles/styles/default.js +0 -88
  667. data/vendor/assets/ckeditor/ckeditor/_source/plugins/stylescombo/plugin.js +0 -218
  668. data/vendor/assets/ckeditor/ckeditor/_source/plugins/stylesheetparser/plugin.js +0 -148
  669. data/vendor/assets/ckeditor/ckeditor/_source/plugins/tab/plugin.js +0 -367
  670. data/vendor/assets/ckeditor/ckeditor/_source/plugins/table/dialogs/table.js +0 -618
  671. data/vendor/assets/ckeditor/ckeditor/_source/plugins/table/plugin.js +0 -78
  672. data/vendor/assets/ckeditor/ckeditor/_source/plugins/tableresize/plugin.js +0 -443
  673. data/vendor/assets/ckeditor/ckeditor/_source/plugins/tabletools/dialogs/tableCell.js +0 -520
  674. data/vendor/assets/ckeditor/ckeditor/_source/plugins/tabletools/plugin.js +0 -1185
  675. data/vendor/assets/ckeditor/ckeditor/_source/plugins/templates/dialogs/templates.js +0 -234
  676. data/vendor/assets/ckeditor/ckeditor/_source/plugins/templates/plugin.js +0 -100
  677. data/vendor/assets/ckeditor/ckeditor/_source/plugins/templates/templates/default.js +0 -94
  678. data/vendor/assets/ckeditor/ckeditor/_source/plugins/templates/templates/images/template1.gif +0 -0
  679. data/vendor/assets/ckeditor/ckeditor/_source/plugins/templates/templates/images/template2.gif +0 -0
  680. data/vendor/assets/ckeditor/ckeditor/_source/plugins/templates/templates/images/template3.gif +0 -0
  681. data/vendor/assets/ckeditor/ckeditor/_source/plugins/toolbar/plugin.js +0 -545
  682. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/dialogs/uicolor.js +0 -205
  683. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/_translationstatus.txt +0 -27
  684. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/bg.js +0 -15
  685. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/cs.js +0 -15
  686. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/cy.js +0 -15
  687. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/da.js +0 -15
  688. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/de.js +0 -15
  689. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/el.js +0 -15
  690. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/en.js +0 -15
  691. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/eo.js +0 -15
  692. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/et.js +0 -15
  693. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/fa.js +0 -15
  694. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/fi.js +0 -15
  695. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/fr.js +0 -15
  696. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/he.js +0 -15
  697. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/hr.js +0 -15
  698. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/it.js +0 -15
  699. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/mk.js +0 -15
  700. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/nb.js +0 -15
  701. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/nl.js +0 -15
  702. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/no.js +0 -15
  703. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/pl.js +0 -15
  704. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/tr.js +0 -15
  705. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/ug.js +0 -15
  706. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/uk.js +0 -15
  707. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/vi.js +0 -15
  708. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/zh-cn.js +0 -15
  709. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/plugin.js +0 -37
  710. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/uicolor.gif +0 -0
  711. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  712. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  713. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  714. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  715. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/yui/assets/yui.css +0 -15
  716. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/yui/yui.js +0 -71
  717. data/vendor/assets/ckeditor/ckeditor/_source/plugins/undo/plugin.js +0 -593
  718. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/dialogs/ciframe.html +0 -49
  719. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/dialogs/tmpFrameset.html +0 -52
  720. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/dialogs/wsc.css +0 -82
  721. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/dialogs/wsc.js +0 -192
  722. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/plugin.js +0 -33
  723. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wysiwygarea/plugin.js +0 -1346
  724. data/vendor/assets/ckeditor/ckeditor/_source/plugins/xml/plugin.js +0 -170
  725. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/dialog.css +0 -989
  726. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/editor.css +0 -25
  727. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/elementspath.css +0 -73
  728. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/icons.css +0 -366
  729. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/icons.png +0 -0
  730. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/icons_rtl.png +0 -0
  731. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/images/dialog_sides.gif +0 -0
  732. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/images/dialog_sides.png +0 -0
  733. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/images/dialog_sides_rtl.png +0 -0
  734. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/images/mini.gif +0 -0
  735. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/images/sprites.png +0 -0
  736. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/images/sprites_ie6.png +0 -0
  737. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/images/toolbar_start.gif +0 -0
  738. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/mainui.css +0 -206
  739. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/menu.css +0 -232
  740. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/panel.css +0 -217
  741. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/presets.css +0 -49
  742. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/reset.css +0 -85
  743. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/richcombo.css +0 -287
  744. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/skin.js +0 -236
  745. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/templates.css +0 -88
  746. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/toolbar.css +0 -408
  747. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/dialog.css +0 -891
  748. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/editor.css +0 -25
  749. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/elementspath.css +0 -74
  750. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/icons.css +0 -363
  751. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/icons.png +0 -0
  752. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/icons_rtl.png +0 -0
  753. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/images/dialog_sides.gif +0 -0
  754. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/images/dialog_sides.png +0 -0
  755. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/images/dialog_sides_rtl.png +0 -0
  756. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/images/mini.gif +0 -0
  757. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/images/noimage.png +0 -0
  758. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/images/sprites.png +0 -0
  759. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/images/sprites_ie6.png +0 -0
  760. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/mainui.css +0 -153
  761. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/menu.css +0 -229
  762. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/panel.css +0 -212
  763. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/presets.css +0 -49
  764. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/reset.css +0 -85
  765. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/richcombo.css +0 -309
  766. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/skin.js +0 -74
  767. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/templates.css +0 -87
  768. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/toolbar.css +0 -522
  769. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/dialog.css +0 -907
  770. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/editor.css +0 -25
  771. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/elementspath.css +0 -74
  772. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/icons.css +0 -363
  773. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/icons.png +0 -0
  774. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/icons_rtl.png +0 -0
  775. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/images/dialog_sides.gif +0 -0
  776. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/images/dialog_sides.png +0 -0
  777. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/images/dialog_sides_rtl.png +0 -0
  778. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/images/mini.gif +0 -0
  779. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/images/noimage.png +0 -0
  780. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/images/sprites.png +0 -0
  781. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/images/sprites_ie6.png +0 -0
  782. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/images/toolbar_start.gif +0 -0
  783. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/mainui.css +0 -162
  784. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/menu.css +0 -232
  785. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/panel.css +0 -212
  786. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/presets.css +0 -50
  787. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/reset.css +0 -85
  788. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/richcombo.css +0 -302
  789. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/skin.js +0 -70
  790. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/templates.css +0 -87
  791. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/toolbar.css +0 -465
  792. data/vendor/assets/ckeditor/ckeditor/_source/themes/default/theme.js +0 -407
  793. data/vendor/assets/ckeditor/ckeditor/adapters/jquery.js +0 -6
  794. data/vendor/assets/ckeditor/ckeditor/ckeditor.asp +0 -955
  795. data/vendor/assets/ckeditor/ckeditor/ckeditor.pack +0 -211
  796. data/vendor/assets/ckeditor/ckeditor/ckeditor.php +0 -29
  797. data/vendor/assets/ckeditor/ckeditor/ckeditor_basic.js +0 -8
  798. data/vendor/assets/ckeditor/ckeditor/ckeditor_basic_source.js +0 -20
  799. data/vendor/assets/ckeditor/ckeditor/ckeditor_php4.php +0 -566
  800. data/vendor/assets/ckeditor/ckeditor/ckeditor_php5.php +0 -556
  801. data/vendor/assets/ckeditor/ckeditor/ckeditor_source.js +0 -35
  802. data/vendor/assets/ckeditor/ckeditor/lang/_languages.js +0 -6
  803. data/vendor/assets/ckeditor/ckeditor/lang/_translationstatus.txt +0 -63
  804. data/vendor/assets/ckeditor/ckeditor/lang/af.js +0 -6
  805. data/vendor/assets/ckeditor/ckeditor/lang/ar.js +0 -6
  806. data/vendor/assets/ckeditor/ckeditor/lang/bg.js +0 -6
  807. data/vendor/assets/ckeditor/ckeditor/lang/bn.js +0 -6
  808. data/vendor/assets/ckeditor/ckeditor/lang/bs.js +0 -6
  809. data/vendor/assets/ckeditor/ckeditor/lang/ca.js +0 -6
  810. data/vendor/assets/ckeditor/ckeditor/lang/cs.js +0 -6
  811. data/vendor/assets/ckeditor/ckeditor/lang/cy.js +0 -6
  812. data/vendor/assets/ckeditor/ckeditor/lang/da.js +0 -6
  813. data/vendor/assets/ckeditor/ckeditor/lang/de.js +0 -6
  814. data/vendor/assets/ckeditor/ckeditor/lang/el.js +0 -6
  815. data/vendor/assets/ckeditor/ckeditor/lang/en-au.js +0 -6
  816. data/vendor/assets/ckeditor/ckeditor/lang/en-ca.js +0 -6
  817. data/vendor/assets/ckeditor/ckeditor/lang/en-gb.js +0 -6
  818. data/vendor/assets/ckeditor/ckeditor/lang/eo.js +0 -6
  819. data/vendor/assets/ckeditor/ckeditor/lang/es.js +0 -6
  820. data/vendor/assets/ckeditor/ckeditor/lang/et.js +0 -6
  821. data/vendor/assets/ckeditor/ckeditor/lang/eu.js +0 -6
  822. data/vendor/assets/ckeditor/ckeditor/lang/fa.js +0 -6
  823. data/vendor/assets/ckeditor/ckeditor/lang/fi.js +0 -6
  824. data/vendor/assets/ckeditor/ckeditor/lang/fo.js +0 -6
  825. data/vendor/assets/ckeditor/ckeditor/lang/fr-ca.js +0 -6
  826. data/vendor/assets/ckeditor/ckeditor/lang/fr.js +0 -6
  827. data/vendor/assets/ckeditor/ckeditor/lang/gl.js +0 -6
  828. data/vendor/assets/ckeditor/ckeditor/lang/gu.js +0 -6
  829. data/vendor/assets/ckeditor/ckeditor/lang/he.js +0 -6
  830. data/vendor/assets/ckeditor/ckeditor/lang/hi.js +0 -6
  831. data/vendor/assets/ckeditor/ckeditor/lang/hr.js +0 -6
  832. data/vendor/assets/ckeditor/ckeditor/lang/hu.js +0 -6
  833. data/vendor/assets/ckeditor/ckeditor/lang/is.js +0 -6
  834. data/vendor/assets/ckeditor/ckeditor/lang/it.js +0 -6
  835. data/vendor/assets/ckeditor/ckeditor/lang/ja.js +0 -6
  836. data/vendor/assets/ckeditor/ckeditor/lang/ka.js +0 -6
  837. data/vendor/assets/ckeditor/ckeditor/lang/km.js +0 -6
  838. data/vendor/assets/ckeditor/ckeditor/lang/ko.js +0 -6
  839. data/vendor/assets/ckeditor/ckeditor/lang/lt.js +0 -6
  840. data/vendor/assets/ckeditor/ckeditor/lang/lv.js +0 -6
  841. data/vendor/assets/ckeditor/ckeditor/lang/mk.js +0 -6
  842. data/vendor/assets/ckeditor/ckeditor/lang/mn.js +0 -6
  843. data/vendor/assets/ckeditor/ckeditor/lang/ms.js +0 -6
  844. data/vendor/assets/ckeditor/ckeditor/lang/nb.js +0 -6
  845. data/vendor/assets/ckeditor/ckeditor/lang/nl.js +0 -6
  846. data/vendor/assets/ckeditor/ckeditor/lang/no.js +0 -6
  847. data/vendor/assets/ckeditor/ckeditor/lang/pl.js +0 -6
  848. data/vendor/assets/ckeditor/ckeditor/lang/pt-br.js +0 -6
  849. data/vendor/assets/ckeditor/ckeditor/lang/pt.js +0 -6
  850. data/vendor/assets/ckeditor/ckeditor/lang/ro.js +0 -6
  851. data/vendor/assets/ckeditor/ckeditor/lang/ru.js +0 -6
  852. data/vendor/assets/ckeditor/ckeditor/lang/sk.js +0 -6
  853. data/vendor/assets/ckeditor/ckeditor/lang/sl.js +0 -6
  854. data/vendor/assets/ckeditor/ckeditor/lang/sr-latn.js +0 -6
  855. data/vendor/assets/ckeditor/ckeditor/lang/sr.js +0 -6
  856. data/vendor/assets/ckeditor/ckeditor/lang/sv.js +0 -6
  857. data/vendor/assets/ckeditor/ckeditor/lang/th.js +0 -6
  858. data/vendor/assets/ckeditor/ckeditor/lang/tr.js +0 -6
  859. data/vendor/assets/ckeditor/ckeditor/lang/ug.js +0 -6
  860. data/vendor/assets/ckeditor/ckeditor/lang/uk.js +0 -6
  861. data/vendor/assets/ckeditor/ckeditor/lang/vi.js +0 -6
  862. data/vendor/assets/ckeditor/ckeditor/lang/zh-cn.js +0 -6
  863. data/vendor/assets/ckeditor/ckeditor/lang/zh.js +0 -6
  864. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/_translationstatus.txt +0 -23
  865. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/cs.js +0 -6
  866. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/cy.js +0 -6
  867. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/da.js +0 -6
  868. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/de.js +0 -6
  869. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/el.js +0 -6
  870. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/en.js +0 -6
  871. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/eo.js +0 -6
  872. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/fa.js +0 -6
  873. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/fi.js +0 -6
  874. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/fr.js +0 -6
  875. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/gu.js +0 -6
  876. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/he.js +0 -6
  877. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/it.js +0 -6
  878. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/mk.js +0 -6
  879. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/nb.js +0 -6
  880. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/nl.js +0 -6
  881. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/no.js +0 -6
  882. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/tr.js +0 -6
  883. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/ug.js +0 -6
  884. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/vi.js +0 -6
  885. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/zh-cn.js +0 -6
  886. data/vendor/assets/ckeditor/ckeditor/plugins/adobeair/plugin.js +0 -6
  887. data/vendor/assets/ckeditor/ckeditor/plugins/ajax/plugin.js +0 -6
  888. data/vendor/assets/ckeditor/ckeditor/plugins/autogrow/plugin.js +0 -6
  889. data/vendor/assets/ckeditor/ckeditor/plugins/bbcode/plugin.js +0 -9
  890. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/_translationstatus.txt +0 -27
  891. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/bg.js +0 -6
  892. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/cs.js +0 -6
  893. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/cy.js +0 -6
  894. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/da.js +0 -6
  895. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/de.js +0 -6
  896. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/el.js +0 -6
  897. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/en.js +0 -6
  898. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/eo.js +0 -6
  899. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/et.js +0 -6
  900. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/fa.js +0 -6
  901. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/fi.js +0 -6
  902. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/fr.js +0 -6
  903. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/gu.js +0 -6
  904. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/he.js +0 -6
  905. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/hr.js +0 -6
  906. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/it.js +0 -6
  907. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/nb.js +0 -6
  908. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/nl.js +0 -6
  909. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/no.js +0 -6
  910. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/pl.js +0 -6
  911. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/tr.js +0 -6
  912. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/ug.js +0 -6
  913. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/uk.js +0 -6
  914. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/vi.js +0 -6
  915. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/zh-cn.js +0 -6
  916. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/plugin.js +0 -6
  917. data/vendor/assets/ckeditor/ckeditor/plugins/docprops/dialogs/docprops.js +0 -10
  918. data/vendor/assets/ckeditor/ckeditor/plugins/docprops/plugin.js +0 -6
  919. data/vendor/assets/ckeditor/ckeditor/plugins/iframedialog/plugin.js +0 -6
  920. data/vendor/assets/ckeditor/ckeditor/plugins/link/images/anchor.gif +0 -0
  921. data/vendor/assets/ckeditor/ckeditor/plugins/pastetext/dialogs/pastetext.js +0 -6
  922. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/dialogs/placeholder.js +0 -6
  923. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/_translationstatus.txt +0 -26
  924. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/bg.js +0 -6
  925. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/cs.js +0 -6
  926. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/cy.js +0 -6
  927. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/da.js +0 -6
  928. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/de.js +0 -6
  929. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/el.js +0 -6
  930. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/en.js +0 -6
  931. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/eo.js +0 -6
  932. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/et.js +0 -6
  933. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/fa.js +0 -6
  934. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/fi.js +0 -6
  935. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/fr.js +0 -6
  936. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/he.js +0 -6
  937. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/hr.js +0 -6
  938. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/it.js +0 -6
  939. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/nb.js +0 -6
  940. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/nl.js +0 -6
  941. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/no.js +0 -6
  942. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/pl.js +0 -6
  943. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/tr.js +0 -6
  944. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/ug.js +0 -6
  945. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/uk.js +0 -6
  946. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/vi.js +0 -6
  947. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/zh-cn.js +0 -6
  948. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/placeholder.gif +0 -0
  949. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/plugin.js +0 -6
  950. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/_translationstatus.txt +0 -19
  951. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/cs.js +0 -6
  952. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/cy.js +0 -6
  953. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/de.js +0 -6
  954. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/en.js +0 -6
  955. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/eo.js +0 -6
  956. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/et.js +0 -6
  957. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/fa.js +0 -6
  958. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/fi.js +0 -6
  959. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/fr.js +0 -6
  960. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/hr.js +0 -6
  961. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/it.js +0 -6
  962. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/nb.js +0 -6
  963. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/nl.js +0 -6
  964. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/no.js +0 -6
  965. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/tr.js +0 -6
  966. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/ug.js +0 -6
  967. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/zh-cn.js +0 -6
  968. data/vendor/assets/ckeditor/ckeditor/plugins/styles/styles/default.js +0 -6
  969. data/vendor/assets/ckeditor/ckeditor/plugins/stylesheetparser/plugin.js +0 -6
  970. data/vendor/assets/ckeditor/ckeditor/plugins/tableresize/plugin.js +0 -7
  971. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/dialogs/uicolor.js +0 -7
  972. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/_translationstatus.txt +0 -27
  973. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/bg.js +0 -6
  974. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/cs.js +0 -6
  975. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/cy.js +0 -6
  976. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/da.js +0 -6
  977. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/de.js +0 -6
  978. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/el.js +0 -6
  979. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/en.js +0 -6
  980. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/eo.js +0 -6
  981. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/et.js +0 -6
  982. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/fa.js +0 -6
  983. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/fi.js +0 -6
  984. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/fr.js +0 -6
  985. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/he.js +0 -6
  986. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/hr.js +0 -6
  987. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/it.js +0 -6
  988. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/mk.js +0 -6
  989. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/nb.js +0 -6
  990. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/nl.js +0 -6
  991. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/no.js +0 -6
  992. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/pl.js +0 -6
  993. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/tr.js +0 -6
  994. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/ug.js +0 -6
  995. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/uk.js +0 -6
  996. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/vi.js +0 -6
  997. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/zh-cn.js +0 -6
  998. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/plugin.js +0 -6
  999. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/uicolor.gif +0 -0
  1000. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  1001. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  1002. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  1003. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  1004. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/yui/assets/yui.css +0 -6
  1005. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/yui/yui.js +0 -76
  1006. data/vendor/assets/ckeditor/ckeditor/plugins/xml/plugin.js +0 -6
  1007. data/vendor/assets/ckeditor/ckeditor/skins/kama/dialog.css +0 -10
  1008. data/vendor/assets/ckeditor/ckeditor/skins/kama/editor.css +0 -13
  1009. data/vendor/assets/ckeditor/ckeditor/skins/kama/icons.png +0 -0
  1010. data/vendor/assets/ckeditor/ckeditor/skins/kama/icons_rtl.png +0 -0
  1011. data/vendor/assets/ckeditor/ckeditor/skins/kama/images/dialog_sides.gif +0 -0
  1012. data/vendor/assets/ckeditor/ckeditor/skins/kama/images/dialog_sides.png +0 -0
  1013. data/vendor/assets/ckeditor/ckeditor/skins/kama/images/dialog_sides_rtl.png +0 -0
  1014. data/vendor/assets/ckeditor/ckeditor/skins/kama/images/mini.gif +0 -0
  1015. data/vendor/assets/ckeditor/ckeditor/skins/kama/images/noimage.png +0 -0
  1016. data/vendor/assets/ckeditor/ckeditor/skins/kama/images/sprites.png +0 -0
  1017. data/vendor/assets/ckeditor/ckeditor/skins/kama/images/sprites_ie6.png +0 -0
  1018. data/vendor/assets/ckeditor/ckeditor/skins/kama/images/toolbar_start.gif +0 -0
  1019. data/vendor/assets/ckeditor/ckeditor/skins/kama/skin.js +0 -7
  1020. data/vendor/assets/ckeditor/ckeditor/skins/kama/templates.css +0 -6
  1021. data/vendor/assets/ckeditor/ckeditor/skins/office2003/dialog.css +0 -9
  1022. data/vendor/assets/ckeditor/ckeditor/skins/office2003/editor.css +0 -14
  1023. data/vendor/assets/ckeditor/ckeditor/skins/office2003/icons.png +0 -0
  1024. data/vendor/assets/ckeditor/ckeditor/skins/office2003/icons_rtl.png +0 -0
  1025. data/vendor/assets/ckeditor/ckeditor/skins/office2003/images/dialog_sides.gif +0 -0
  1026. data/vendor/assets/ckeditor/ckeditor/skins/office2003/images/dialog_sides.png +0 -0
  1027. data/vendor/assets/ckeditor/ckeditor/skins/office2003/images/dialog_sides_rtl.png +0 -0
  1028. data/vendor/assets/ckeditor/ckeditor/skins/office2003/images/mini.gif +0 -0
  1029. data/vendor/assets/ckeditor/ckeditor/skins/office2003/images/noimage.png +0 -0
  1030. data/vendor/assets/ckeditor/ckeditor/skins/office2003/images/sprites.png +0 -0
  1031. data/vendor/assets/ckeditor/ckeditor/skins/office2003/images/sprites_ie6.png +0 -0
  1032. data/vendor/assets/ckeditor/ckeditor/skins/office2003/skin.js +0 -6
  1033. data/vendor/assets/ckeditor/ckeditor/skins/office2003/templates.css +0 -6
  1034. data/vendor/assets/ckeditor/ckeditor/skins/v2/dialog.css +0 -9
  1035. data/vendor/assets/ckeditor/ckeditor/skins/v2/editor.css +0 -13
  1036. data/vendor/assets/ckeditor/ckeditor/skins/v2/icons.png +0 -0
  1037. data/vendor/assets/ckeditor/ckeditor/skins/v2/icons_rtl.png +0 -0
  1038. data/vendor/assets/ckeditor/ckeditor/skins/v2/images/dialog_sides.gif +0 -0
  1039. data/vendor/assets/ckeditor/ckeditor/skins/v2/images/dialog_sides.png +0 -0
  1040. data/vendor/assets/ckeditor/ckeditor/skins/v2/images/dialog_sides_rtl.png +0 -0
  1041. data/vendor/assets/ckeditor/ckeditor/skins/v2/images/mini.gif +0 -0
  1042. data/vendor/assets/ckeditor/ckeditor/skins/v2/images/noimage.png +0 -0
  1043. data/vendor/assets/ckeditor/ckeditor/skins/v2/images/sprites.png +0 -0
  1044. data/vendor/assets/ckeditor/ckeditor/skins/v2/images/sprites_ie6.png +0 -0
  1045. data/vendor/assets/ckeditor/ckeditor/skins/v2/images/toolbar_start.gif +0 -0
  1046. data/vendor/assets/ckeditor/ckeditor/skins/v2/skin.js +0 -6
  1047. data/vendor/assets/ckeditor/ckeditor/skins/v2/templates.css +0 -6
  1048. data/vendor/assets/ckeditor/ckeditor/themes/default/theme.js +0 -8
@@ -1,1855 +0,0 @@
1
- /*
2
- Copyright (c) 2003-2012, 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
- var bm,
166
- sel = doc.getSelection().getNative(),
167
- // Be error proof.
168
- range = sel && sel.type != 'None' && sel.getRangeAt( 0 );
169
-
170
- // Text selection position might get mangled by
171
- // subsequent dom modification, save it now for restoring. (#8617)
172
- if ( fillingChar.getLength() > 1
173
- && range && range.intersectsNode( fillingChar.$ ) )
174
- {
175
- bm = [ sel.anchorOffset, sel.focusOffset ];
176
-
177
- // Anticipate the offset change brought by the removed char.
178
- var startAffected = sel.anchorNode == fillingChar.$ && sel.anchorOffset > 0,
179
- endAffected = sel.focusNode == fillingChar.$ && sel.focusOffset > 0;
180
- startAffected && bm[ 0 ]--;
181
- endAffected && bm[ 1 ]--;
182
-
183
- // Revert the bookmark order on reverse selection.
184
- isReversedSelection( sel ) && bm.unshift( bm.pop() );
185
- }
186
-
187
- // We can't simply remove the filling node because the user
188
- // will actually enlarge it when typing, so we just remove the
189
- // invisible char from it.
190
- fillingChar.setText( fillingChar.getText().replace( /\u200B/g, '' ) );
191
-
192
- // Restore the bookmark.
193
- if ( bm )
194
- {
195
- var rng = sel.getRangeAt( 0 );
196
- rng.setStart( rng.startContainer, bm[ 0 ] );
197
- rng.setEnd( rng.startContainer, bm[ 1 ] );
198
- sel.removeAllRanges();
199
- sel.addRange( rng );
200
- }
201
- }
202
- }
203
-
204
- function isReversedSelection( sel )
205
- {
206
- if ( !sel.isCollapsed )
207
- {
208
- var range = sel.getRangeAt( 0 );
209
- // Potentially alter an reversed selection range.
210
- range.setStart( sel.anchorNode, sel.anchorOffset );
211
- range.setEnd( sel.focusNode, sel.focusOffset );
212
- return range.collapsed;
213
- }
214
- }
215
-
216
- CKEDITOR.plugins.add( 'selection',
217
- {
218
- init : function( editor )
219
- {
220
- // On WebKit only, we need a special "filling" char on some situations
221
- // (#1272). Here we set the events that should invalidate that char.
222
- if ( CKEDITOR.env.webkit )
223
- {
224
- editor.on( 'selectionChange', function() { checkFillingChar( editor.document ); } );
225
- editor.on( 'beforeSetMode', function() { removeFillingChar( editor.document ); } );
226
-
227
- var fillingCharBefore,
228
- resetSelection;
229
-
230
- function beforeData()
231
- {
232
- var doc = editor.document,
233
- fillingChar = getFillingChar( doc );
234
-
235
- if ( fillingChar )
236
- {
237
- // If cursor is right blinking by side of the filler node, save it for restoring,
238
- // as the following text substitution will blind it. (#7437)
239
- var sel = doc.$.defaultView.getSelection();
240
- if ( sel.type == 'Caret' && sel.anchorNode == fillingChar.$ )
241
- resetSelection = 1;
242
-
243
- fillingCharBefore = fillingChar.getText();
244
- fillingChar.setText( fillingCharBefore.replace( /\u200B/g, '' ) );
245
- }
246
- }
247
- function afterData()
248
- {
249
- var doc = editor.document,
250
- fillingChar = getFillingChar( doc );
251
-
252
- if ( fillingChar )
253
- {
254
- fillingChar.setText( fillingCharBefore );
255
-
256
- if ( resetSelection )
257
- {
258
- doc.$.defaultView.getSelection().setPosition( fillingChar.$,fillingChar.getLength() );
259
- resetSelection = 0;
260
- }
261
- }
262
- }
263
- editor.on( 'beforeUndoImage', beforeData );
264
- editor.on( 'afterUndoImage', afterData );
265
- editor.on( 'beforeGetData', beforeData, null, null, 0 );
266
- editor.on( 'getData', afterData );
267
- }
268
-
269
- editor.on( 'contentDom', function()
270
- {
271
- var doc = editor.document,
272
- body = doc.getBody(),
273
- html = doc.getDocumentElement();
274
-
275
- if ( CKEDITOR.env.ie )
276
- {
277
- // Other browsers don't loose the selection if the
278
- // editor document loose the focus. In IE, we don't
279
- // have support for it, so we reproduce it here, other
280
- // than firing the selection change event.
281
-
282
- var savedRange,
283
- saveEnabled,
284
- restoreEnabled = 1;
285
-
286
- // "onfocusin" is fired before "onfocus". It makes it
287
- // possible to restore the selection before click
288
- // events get executed.
289
- body.on( 'focusin', function( evt )
290
- {
291
- // If there are elements with layout they fire this event but
292
- // it must be ignored to allow edit its contents #4682
293
- if ( evt.data.$.srcElement.nodeName != 'BODY' )
294
- return;
295
-
296
- // Give the priority to locked selection since it probably
297
- // reflects the actual situation, besides locked selection
298
- // could be interfered because of text nodes normalizing.
299
- // (#6083, #6987)
300
- var lockedSelection = doc.getCustomData( 'cke_locked_selection' );
301
- if ( lockedSelection )
302
- {
303
- lockedSelection.unlock( 1 );
304
- lockedSelection.lock();
305
- }
306
- // Then check ff we have saved a range, restore it at this
307
- // point.
308
- else if ( savedRange && restoreEnabled )
309
- {
310
- // Well not break because of this.
311
- try { savedRange.select(); } catch (e) {}
312
- savedRange = null;
313
- }
314
- });
315
-
316
- body.on( 'focus', function()
317
- {
318
- // Enable selections to be saved.
319
- saveEnabled = 1;
320
-
321
- saveSelection();
322
- });
323
-
324
- body.on( 'beforedeactivate', function( evt )
325
- {
326
- // Ignore this event if it's caused by focus switch between
327
- // internal editable control type elements, e.g. layouted paragraph. (#4682)
328
- if ( evt.data.$.toElement )
329
- return;
330
-
331
- // Disable selections from being saved.
332
- saveEnabled = 0;
333
- restoreEnabled = 1;
334
- });
335
-
336
- // [IE] Iframe will still keep the selection when blurred, if
337
- // focus is moved onto a non-editing host, e.g. link or button, but
338
- // it becomes a problem for the object type selection, since the resizer
339
- // handler attached on it will mark other part of the UI, especially
340
- // for the dialog. (#8157)
341
- // [IE<8] Even worse For old IEs, the cursor will not vanish even if
342
- // the selection has been moved to another text input in some cases. (#4716)
343
- //
344
- // Now the range restore is disabled, so we simply force IE to clean
345
- // up the selection before blur.
346
- CKEDITOR.env.ie && editor.on( 'blur', function()
347
- {
348
- // Error proof when the editor is not visible. (#6375)
349
- try{ doc.$.selection.empty(); } catch ( er){}
350
- });
351
-
352
- // Listening on document element ensures that
353
- // scrollbar is included. (#5280)
354
- html.on( 'mousedown', function()
355
- {
356
- // Lock restore selection now, as we have
357
- // a followed 'click' event which introduce
358
- // new selection. (#5735)
359
- restoreEnabled = 0;
360
- });
361
-
362
- html.on( 'mouseup', function()
363
- {
364
- restoreEnabled = 1;
365
- });
366
-
367
- var scroll;
368
- // IE fires the "selectionchange" event when clicking
369
- // inside a selection. We don't want to capture that.
370
- body.on( 'mousedown', function( evt )
371
- {
372
- // IE scrolls document to top on right mousedown
373
- // when editor has no focus, remember this scroll
374
- // position and revert it before context menu opens. (#5778)
375
- if ( evt.data.$.button == 2 )
376
- {
377
- var sel = editor.document.$.selection;
378
- if ( sel.type == 'None' )
379
- scroll = editor.window.getScrollPosition();
380
- }
381
- disableSave();
382
- });
383
-
384
- body.on( 'mouseup',
385
- function( evt )
386
- {
387
- // Restore recorded scroll position when needed on right mouseup.
388
- if ( evt.data.$.button == 2 && scroll )
389
- {
390
- editor.document.$.documentElement.scrollLeft = scroll.x;
391
- editor.document.$.documentElement.scrollTop = scroll.y;
392
- }
393
- scroll = null;
394
-
395
- saveEnabled = 1;
396
- setTimeout( function()
397
- {
398
- saveSelection( true );
399
- },
400
- 0 );
401
- });
402
-
403
- body.on( 'keydown', disableSave );
404
- body.on( 'keyup',
405
- function()
406
- {
407
- saveEnabled = 1;
408
- saveSelection();
409
- });
410
-
411
- // When content doc is in standards mode, IE doesn't focus the editor when
412
- // clicking at the region below body (on html element) content, we emulate
413
- // the normal behavior on old IEs. (#1659, #7932)
414
- if ( ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat )
415
- && doc.$.compatMode != 'BackCompat' )
416
- {
417
- html.on( 'mousedown', function( evt )
418
- {
419
- evt = evt.data.$;
420
-
421
- // Expand the text range along with mouse move.
422
- function onHover( evt )
423
- {
424
- evt = evt.data.$;
425
- if ( textRng )
426
- {
427
- // Read the current cursor.
428
- var rngEnd = body.$.createTextRange();
429
- rngEnd.moveToPoint( evt.x, evt.y );
430
-
431
- // Handle drag directions.
432
- textRng.setEndPoint(
433
- textRng.compareEndPoints( 'StartToStart', rngEnd ) < 0 ?
434
- 'EndToEnd' :
435
- 'StartToStart',
436
- rngEnd );
437
-
438
- // Update selection with new range.
439
- textRng.select();
440
- }
441
- }
442
-
443
- // We're sure that the click happens at the region
444
- // below body, but not on scrollbar.
445
- if ( evt.y < html.$.clientHeight
446
- && evt.y > body.$.offsetTop + body.$.clientHeight
447
- && evt.x < html.$.clientWidth )
448
- {
449
- // Start to build the text range.
450
- var textRng = body.$.createTextRange();
451
- textRng.moveToPoint( evt.x, evt.y );
452
- textRng.select();
453
-
454
- html.on( 'mousemove', onHover );
455
-
456
- html.on( 'mouseup', function( evt )
457
- {
458
- html.removeListener( 'mousemove', onHover );
459
- evt.removeListener();
460
- textRng.select();
461
- textRng = null;
462
- } );
463
- }
464
- });
465
- }
466
-
467
- // It's much simpler for IE8, we just need to reselect the reported range.
468
- if ( CKEDITOR.env.ie8 )
469
- {
470
- html.on( 'mouseup', function( evt )
471
- {
472
- // The event is not fired when clicking on the scrollbars,
473
- // so we can safely check the following to understand
474
- // whether the empty space following <body> has been clicked.
475
- if ( evt.data.getTarget().getName() == 'html' )
476
- {
477
- var sel = CKEDITOR.document.$.selection,
478
- range = sel.createRange();
479
- // The selection range is reported on host, but actually it should applies to the content doc.
480
- if ( sel.type != 'None' && range.parentElement().ownerDocument == doc.$ )
481
- range.select();
482
- }
483
- } );
484
- }
485
-
486
- // IE is the only to provide the "selectionchange"
487
- // event.
488
- doc.on( 'selectionchange', saveSelection );
489
-
490
- function disableSave()
491
- {
492
- saveEnabled = 0;
493
- }
494
-
495
- function saveSelection( testIt )
496
- {
497
- if ( saveEnabled )
498
- {
499
- var doc = editor.document,
500
- sel = editor.getSelection(),
501
- nativeSel = sel && sel.getNative();
502
-
503
- // There is a very specific case, when clicking
504
- // inside a text selection. In that case, the
505
- // selection collapses at the clicking point,
506
- // but the selection object remains in an
507
- // unknown state, making createRange return a
508
- // range at the very start of the document. In
509
- // such situation we have to test the range, to
510
- // be sure it's valid.
511
- if ( testIt && nativeSel && nativeSel.type == 'None' )
512
- {
513
- // The "InsertImage" command can be used to
514
- // test whether the selection is good or not.
515
- // If not, it's enough to give some time to
516
- // IE to put things in order for us.
517
- if ( !doc.$.queryCommandEnabled( 'InsertImage' ) )
518
- {
519
- CKEDITOR.tools.setTimeout( saveSelection, 50, this, true );
520
- return;
521
- }
522
- }
523
-
524
- // Avoid saving selection from within text input. (#5747)
525
- var parentTag;
526
- if ( nativeSel && nativeSel.type && nativeSel.type != 'Control'
527
- && ( parentTag = nativeSel.createRange() )
528
- && ( parentTag = parentTag.parentElement() )
529
- && ( parentTag = parentTag.nodeName )
530
- && parentTag.toLowerCase() in { input: 1, textarea : 1 } )
531
- {
532
- return;
533
- }
534
-
535
- savedRange = nativeSel && sel.getRanges()[ 0 ];
536
-
537
- checkSelectionChangeTimeout.call( editor );
538
- }
539
- }
540
- }
541
- else
542
- {
543
- // In other browsers, we make the selection change
544
- // check based on other events, like clicks or keys
545
- // press.
546
-
547
- doc.on( 'mouseup', checkSelectionChangeTimeout, editor );
548
- doc.on( 'keyup', checkSelectionChangeTimeout, editor );
549
- doc.on( 'selectionchange', checkSelectionChangeTimeout, editor );
550
- }
551
-
552
- if ( CKEDITOR.env.webkit )
553
- {
554
- doc.on( 'keydown', function( evt )
555
- {
556
- var key = evt.data.getKey();
557
- // Remove the filling char before some keys get
558
- // executed, so they'll not get blocked by it.
559
- switch ( key )
560
- {
561
- case 13 : // ENTER
562
- case 33 : // PAGEUP
563
- case 34 : // PAGEDOWN
564
- case 35 : // HOME
565
- case 36 : // END
566
- case 37 : // LEFT-ARROW
567
- case 39 : // RIGHT-ARROW
568
- case 8 : // BACKSPACE
569
- case 45 : // INS
570
- case 46 : // DEl
571
- removeFillingChar( editor.document );
572
- }
573
-
574
- }, null, null, 10 );
575
- }
576
- });
577
-
578
- // Clear the cached range path before unload. (#7174)
579
- editor.on( 'contentDomUnload', editor.forceNextSelectionCheck, editor );
580
-
581
- editor.addCommand( 'selectAll', selectAllCmd );
582
- editor.ui.addButton( 'SelectAll',
583
- {
584
- label : editor.lang.selectAll,
585
- command : 'selectAll'
586
- });
587
-
588
- editor.selectionChange = checkSelectionChangeTimeout;
589
-
590
- // IE9 might cease to work if there's an object selection inside the iframe (#7639).
591
- CKEDITOR.env.ie9Compat && editor.on( 'destroy', function()
592
- {
593
- var sel = editor.getSelection();
594
- sel && sel.getNative().clear();
595
- }, null, null, 9 );
596
- }
597
- });
598
-
599
- /**
600
- * Gets the current selection from the editing area when in WYSIWYG mode.
601
- * @returns {CKEDITOR.dom.selection} A selection object or null if not in
602
- * WYSIWYG mode or no selection is available.
603
- * @example
604
- * var selection = CKEDITOR.instances.editor1.<strong>getSelection()</strong>;
605
- * alert( selection.getType() );
606
- */
607
- CKEDITOR.editor.prototype.getSelection = function()
608
- {
609
- return this.document && this.document.getSelection();
610
- };
611
-
612
- CKEDITOR.editor.prototype.forceNextSelectionCheck = function()
613
- {
614
- delete this._.selectionPreviousPath;
615
- };
616
-
617
- /**
618
- * Gets the current selection from the document.
619
- * @returns {CKEDITOR.dom.selection} A selection object.
620
- * @example
621
- * var selection = CKEDITOR.instances.editor1.document.<strong>getSelection()</strong>;
622
- * alert( selection.getType() );
623
- */
624
- CKEDITOR.dom.document.prototype.getSelection = function()
625
- {
626
- var sel = new CKEDITOR.dom.selection( this );
627
- return ( !sel || sel.isInvalid ) ? null : sel;
628
- };
629
-
630
- /**
631
- * No selection.
632
- * @constant
633
- * @example
634
- * if ( editor.getSelection().getType() == CKEDITOR.SELECTION_NONE )
635
- * alert( 'Nothing is selected' );
636
- */
637
- CKEDITOR.SELECTION_NONE = 1;
638
-
639
- /**
640
- * A text or a collapsed selection.
641
- * @constant
642
- * @example
643
- * if ( editor.getSelection().getType() == CKEDITOR.SELECTION_TEXT )
644
- * alert( 'A text is selected' );
645
- */
646
- CKEDITOR.SELECTION_TEXT = 2;
647
-
648
- /**
649
- * Element selection.
650
- * @constant
651
- * @example
652
- * if ( editor.getSelection().getType() == CKEDITOR.SELECTION_ELEMENT )
653
- * alert( 'An element is selected' );
654
- */
655
- CKEDITOR.SELECTION_ELEMENT = 3;
656
-
657
- /**
658
- * Manipulates the selection in a DOM document.
659
- * @constructor
660
- * @param {CKEDITOR.dom.document} document The DOM document that contains the selection.
661
- * @example
662
- * var sel = new <strong>CKEDITOR.dom.selection( CKEDITOR.document )</strong>;
663
- */
664
- CKEDITOR.dom.selection = function( document )
665
- {
666
- var lockedSelection = document.getCustomData( 'cke_locked_selection' );
667
-
668
- if ( lockedSelection )
669
- return lockedSelection;
670
-
671
- this.document = document;
672
- this.isLocked = 0;
673
- this._ =
674
- {
675
- cache : {}
676
- };
677
-
678
- /**
679
- * IE BUG: The selection's document may be a different document than the
680
- * editor document. Return null if that is the case.
681
- */
682
- if ( CKEDITOR.env.ie )
683
- {
684
- // Avoid breaking because of it. (#8836)
685
- try
686
- {
687
- var range = this.getNative().createRange();
688
- if ( !range ||
689
- ( range.item && range.item( 0 ).ownerDocument != this.document.$ ) ||
690
- ( range.parentElement && range.parentElement().ownerDocument != this.document.$ ) )
691
- {
692
- throw 0;
693
- }
694
- }
695
- catch ( e )
696
- {
697
- this.isInvalid = true;
698
- }
699
- }
700
-
701
- return this;
702
- };
703
-
704
- var styleObjectElements =
705
- {
706
- img:1,hr:1,li:1,table:1,tr:1,td:1,th:1,embed:1,object:1,ol:1,ul:1,
707
- a:1,input:1,form:1,select:1,textarea:1,button:1,fieldset:1,thead:1,tfoot:1
708
- };
709
-
710
- CKEDITOR.dom.selection.prototype =
711
- {
712
- /**
713
- * Gets the native selection object from the browser.
714
- * @function
715
- * @returns {Object} The native browser selection object.
716
- * @example
717
- * var selection = editor.getSelection().<strong>getNative()</strong>;
718
- */
719
- getNative :
720
- CKEDITOR.env.ie ?
721
- function()
722
- {
723
- return this._.cache.nativeSel || ( this._.cache.nativeSel = this.document.$.selection );
724
- }
725
- :
726
- function()
727
- {
728
- return this._.cache.nativeSel || ( this._.cache.nativeSel = this.document.getWindow().$.getSelection() );
729
- },
730
-
731
- /**
732
- * Gets the type of the current selection. The following values are
733
- * available:
734
- * <ul>
735
- * <li><code>{@link CKEDITOR.SELECTION_NONE}</code> (1): No selection.</li>
736
- * <li><code>{@link CKEDITOR.SELECTION_TEXT}</code> (2): A text or a collapsed
737
- * selection is selected.</li>
738
- * <li><code>{@link CKEDITOR.SELECTION_ELEMENT}</code> (3): An element is
739
- * selected.</li>
740
- * </ul>
741
- * @function
742
- * @returns {Number} One of the following constant values:
743
- * <code>{@link CKEDITOR.SELECTION_NONE}</code>, <code>{@link CKEDITOR.SELECTION_TEXT}</code>, or
744
- * <code>{@link CKEDITOR.SELECTION_ELEMENT}</code>.
745
- * @example
746
- * if ( editor.getSelection().<strong>getType()</strong> == CKEDITOR.SELECTION_TEXT )
747
- * alert( 'A text is selected' );
748
- */
749
- getType :
750
- CKEDITOR.env.ie ?
751
- function()
752
- {
753
- var cache = this._.cache;
754
- if ( cache.type )
755
- return cache.type;
756
-
757
- var type = CKEDITOR.SELECTION_NONE;
758
-
759
- try
760
- {
761
- var sel = this.getNative(),
762
- ieType = sel.type;
763
-
764
- if ( ieType == 'Text' )
765
- type = CKEDITOR.SELECTION_TEXT;
766
-
767
- if ( ieType == 'Control' )
768
- type = CKEDITOR.SELECTION_ELEMENT;
769
-
770
- // It is possible that we can still get a text range
771
- // object even when type == 'None' is returned by IE.
772
- // So we'd better check the object returned by
773
- // createRange() rather than by looking at the type.
774
- if ( sel.createRange().parentElement )
775
- type = CKEDITOR.SELECTION_TEXT;
776
- }
777
- catch(e) {}
778
-
779
- return ( cache.type = type );
780
- }
781
- :
782
- function()
783
- {
784
- var cache = this._.cache;
785
- if ( cache.type )
786
- return cache.type;
787
-
788
- var type = CKEDITOR.SELECTION_TEXT;
789
-
790
- var sel = this.getNative();
791
-
792
- if ( !sel )
793
- type = CKEDITOR.SELECTION_NONE;
794
- else if ( sel.rangeCount == 1 )
795
- {
796
- // Check if the actual selection is a control (IMG,
797
- // TABLE, HR, etc...).
798
-
799
- var range = sel.getRangeAt(0),
800
- startContainer = range.startContainer;
801
-
802
- if ( startContainer == range.endContainer
803
- && startContainer.nodeType == 1
804
- && ( range.endOffset - range.startOffset ) == 1
805
- && styleObjectElements[ startContainer.childNodes[ range.startOffset ].nodeName.toLowerCase() ] )
806
- {
807
- type = CKEDITOR.SELECTION_ELEMENT;
808
- }
809
- }
810
-
811
- return ( cache.type = type );
812
- },
813
-
814
- /**
815
- * Retrieves the <code>{@link CKEDITOR.dom.range}</code> instances that represent the current selection.
816
- * Note: Some browsers return multiple ranges even for a continuous selection. Firefox, for example, returns
817
- * one range for each table cell when one or more table rows are selected.
818
- * @function
819
- * @param {Boolean} [onlyEditables] If set to <code>true</code>, this function retrives editable ranges only.
820
- * @return {Array} Range instances that represent the current selection.
821
- * @example
822
- * var ranges = selection.<strong>getRanges()</strong>;
823
- * alert( ranges.length );
824
- */
825
- getRanges : (function()
826
- {
827
- var func = CKEDITOR.env.ie ?
828
- ( function()
829
- {
830
- function getNodeIndex( node ) { return new CKEDITOR.dom.node( node ).getIndex(); }
831
-
832
- // Finds the container and offset for a specific boundary
833
- // of an IE range.
834
- var getBoundaryInformation = function( range, start )
835
- {
836
- // Creates a collapsed range at the requested boundary.
837
- range = range.duplicate();
838
- range.collapse( start );
839
-
840
- // Gets the element that encloses the range entirely.
841
- var parent = range.parentElement(),
842
- doc = parent.ownerDocument;
843
-
844
- // Empty parent element, e.g. <i>^</i>
845
- if ( !parent.hasChildNodes() )
846
- return { container : parent, offset : 0 };
847
-
848
- var siblings = parent.children,
849
- child,
850
- sibling,
851
- testRange = range.duplicate(),
852
- startIndex = 0,
853
- endIndex = siblings.length - 1,
854
- index = -1,
855
- position,
856
- distance,
857
- container;
858
-
859
- // Binary search over all element childs to test the range to see whether
860
- // range is right on the boundary of one element.
861
- while ( startIndex <= endIndex )
862
- {
863
- index = Math.floor( ( startIndex + endIndex ) / 2 );
864
- child = siblings[ index ];
865
- testRange.moveToElementText( child );
866
- position = testRange.compareEndPoints( 'StartToStart', range );
867
-
868
- if ( position > 0 )
869
- endIndex = index - 1;
870
- else if ( position < 0 )
871
- startIndex = index + 1;
872
- else
873
- {
874
- // IE9 report wrong measurement with compareEndPoints when range anchors between two BRs.
875
- // e.g. <p>text<br />^<br /></p> (#7433)
876
- if ( CKEDITOR.env.ie9Compat && child.tagName == 'BR' )
877
- {
878
- // "Fall back" to w3c selection.
879
- var sel = doc.defaultView.getSelection();
880
- return { container : sel[ start ? 'anchorNode' : 'focusNode' ],
881
- offset : sel[ start ? 'anchorOffset' : 'focusOffset' ] };
882
- }
883
- else
884
- return { container : parent, offset : getNodeIndex( child ) };
885
- }
886
- }
887
-
888
- // All childs are text nodes,
889
- // or to the right hand of test range are all text nodes. (#6992)
890
- if ( index == -1 || index == siblings.length - 1 && position < 0 )
891
- {
892
- // Adapt test range to embrace the entire parent contents.
893
- testRange.moveToElementText( parent );
894
- testRange.setEndPoint( 'StartToStart', range );
895
-
896
- // IE report line break as CRLF with range.text but
897
- // only LF with textnode.nodeValue, normalize them to avoid
898
- // breaking character counting logic below. (#3949)
899
- distance = testRange.text.replace( /(\r\n|\r)/g, '\n' ).length;
900
-
901
- siblings = parent.childNodes;
902
-
903
- // Actual range anchor right beside test range at the boundary of text node.
904
- if ( !distance )
905
- {
906
- child = siblings[ siblings.length - 1 ];
907
-
908
- if ( child.nodeType != CKEDITOR.NODE_TEXT )
909
- return { container : parent, offset : siblings.length };
910
- else
911
- return { container : child, offset : child.nodeValue.length };
912
- }
913
-
914
- // Start the measuring until distance overflows, meanwhile count the text nodes.
915
- var i = siblings.length;
916
- while ( distance > 0 && i > 0 )
917
- {
918
- sibling = siblings[ --i ];
919
- if ( sibling.nodeType == CKEDITOR.NODE_TEXT )
920
- {
921
- container = sibling;
922
- distance -= sibling.nodeValue.length;
923
- }
924
- }
925
-
926
- return { container : container, offset : -distance };
927
- }
928
- // Test range was one offset beyond OR behind the anchored text node.
929
- else
930
- {
931
- // Adapt one side of test range to the actual range
932
- // for measuring the offset between them.
933
- testRange.collapse( position > 0 ? true : false );
934
- testRange.setEndPoint( position > 0 ? 'StartToStart' : 'EndToStart', range );
935
-
936
- // IE report line break as CRLF with range.text but
937
- // only LF with textnode.nodeValue, normalize them to avoid
938
- // breaking character counting logic below. (#3949)
939
- distance = testRange.text.replace( /(\r\n|\r)/g, '\n' ).length;
940
-
941
- // Actual range anchor right beside test range at the inner boundary of text node.
942
- if ( !distance )
943
- return { container : parent, offset : getNodeIndex( child ) + ( position > 0 ? 0 : 1 ) };
944
-
945
- // Start the measuring until distance overflows, meanwhile count the text nodes.
946
- while ( distance > 0 )
947
- {
948
- try
949
- {
950
- sibling = child[ position > 0 ? 'previousSibling' : 'nextSibling' ];
951
- if ( sibling.nodeType == CKEDITOR.NODE_TEXT )
952
- {
953
- distance -= sibling.nodeValue.length;
954
- container = sibling;
955
- }
956
- child = sibling;
957
- }
958
- // Measurement in IE could be somtimes wrong because of <select> element. (#4611)
959
- catch( e )
960
- {
961
- return { container : parent, offset : getNodeIndex( child ) };
962
- }
963
- }
964
-
965
- return { container : container, offset : position > 0 ? -distance : container.nodeValue.length + distance };
966
- }
967
- };
968
-
969
- return function()
970
- {
971
- // IE doesn't have range support (in the W3C way), so we
972
- // need to do some magic to transform selections into
973
- // CKEDITOR.dom.range instances.
974
-
975
- var sel = this.getNative(),
976
- nativeRange = sel && sel.createRange(),
977
- type = this.getType(),
978
- range;
979
-
980
- if ( !sel )
981
- return [];
982
-
983
- if ( type == CKEDITOR.SELECTION_TEXT )
984
- {
985
- range = new CKEDITOR.dom.range( this.document );
986
-
987
- var boundaryInfo = getBoundaryInformation( nativeRange, true );
988
- range.setStart( new CKEDITOR.dom.node( boundaryInfo.container ), boundaryInfo.offset );
989
-
990
- boundaryInfo = getBoundaryInformation( nativeRange );
991
- range.setEnd( new CKEDITOR.dom.node( boundaryInfo.container ), boundaryInfo.offset );
992
-
993
- // Correct an invalid IE range case on empty list item. (#5850)
994
- if ( range.endContainer.getPosition( range.startContainer ) & CKEDITOR.POSITION_PRECEDING
995
- && range.endOffset <= range.startContainer.getIndex() )
996
- {
997
- range.collapse();
998
- }
999
-
1000
- return [ range ];
1001
- }
1002
- else if ( type == CKEDITOR.SELECTION_ELEMENT )
1003
- {
1004
- var retval = [];
1005
-
1006
- for ( var i = 0 ; i < nativeRange.length ; i++ )
1007
- {
1008
- var element = nativeRange.item( i ),
1009
- parentElement = element.parentNode,
1010
- j = 0;
1011
-
1012
- range = new CKEDITOR.dom.range( this.document );
1013
-
1014
- for (; j < parentElement.childNodes.length && parentElement.childNodes[j] != element ; j++ )
1015
- { /*jsl:pass*/ }
1016
-
1017
- range.setStart( new CKEDITOR.dom.node( parentElement ), j );
1018
- range.setEnd( new CKEDITOR.dom.node( parentElement ), j + 1 );
1019
- retval.push( range );
1020
- }
1021
-
1022
- return retval;
1023
- }
1024
-
1025
- return [];
1026
- };
1027
- })()
1028
- :
1029
- function()
1030
- {
1031
-
1032
- // On browsers implementing the W3C range, we simply
1033
- // tranform the native ranges in CKEDITOR.dom.range
1034
- // instances.
1035
-
1036
- var ranges = [],
1037
- range,
1038
- doc = this.document,
1039
- sel = this.getNative();
1040
-
1041
- if ( !sel )
1042
- return ranges;
1043
-
1044
- // On WebKit, it may happen that we'll have no selection
1045
- // available. We normalize it here by replicating the
1046
- // behavior of other browsers.
1047
- if ( !sel.rangeCount )
1048
- {
1049
- range = new CKEDITOR.dom.range( doc );
1050
- range.moveToElementEditStart( doc.getBody() );
1051
- ranges.push( range );
1052
- }
1053
-
1054
- for ( var i = 0 ; i < sel.rangeCount ; i++ )
1055
- {
1056
- var nativeRange = sel.getRangeAt( i );
1057
-
1058
- range = new CKEDITOR.dom.range( doc );
1059
-
1060
- range.setStart( new CKEDITOR.dom.node( nativeRange.startContainer ), nativeRange.startOffset );
1061
- range.setEnd( new CKEDITOR.dom.node( nativeRange.endContainer ), nativeRange.endOffset );
1062
- ranges.push( range );
1063
- }
1064
- return ranges;
1065
- };
1066
-
1067
- return function( onlyEditables )
1068
- {
1069
- var cache = this._.cache;
1070
- if ( cache.ranges && !onlyEditables )
1071
- return cache.ranges;
1072
- else if ( !cache.ranges )
1073
- cache.ranges = new CKEDITOR.dom.rangeList( func.call( this ) );
1074
-
1075
- // Split range into multiple by read-only nodes.
1076
- if ( onlyEditables )
1077
- {
1078
- var ranges = cache.ranges;
1079
- for ( var i = 0; i < ranges.length; i++ )
1080
- {
1081
- var range = ranges[ i ];
1082
-
1083
- // Drop range spans inside one ready-only node.
1084
- var parent = range.getCommonAncestor();
1085
- if ( parent.isReadOnly() )
1086
- ranges.splice( i, 1 );
1087
-
1088
- if ( range.collapsed )
1089
- continue;
1090
-
1091
- // Range may start inside a non-editable element,
1092
- // replace the range start after it.
1093
- if ( range.startContainer.isReadOnly() )
1094
- {
1095
- var current = range.startContainer;
1096
- while( current )
1097
- {
1098
- if ( current.is( 'body' ) || !current.isReadOnly() )
1099
- break;
1100
-
1101
- if ( current.type == CKEDITOR.NODE_ELEMENT
1102
- && current.getAttribute( 'contentEditable' ) == 'false' )
1103
- range.setStartAfter( current );
1104
-
1105
- current = current.getParent();
1106
- }
1107
- }
1108
-
1109
- var startContainer = range.startContainer,
1110
- endContainer = range.endContainer,
1111
- startOffset = range.startOffset,
1112
- endOffset = range.endOffset,
1113
- walkerRange = range.clone();
1114
-
1115
- // Enlarge range start/end with text node to avoid walker
1116
- // being DOM destructive, it doesn't interfere our checking
1117
- // of elements below as well.
1118
- if ( startContainer && startContainer.type == CKEDITOR.NODE_TEXT )
1119
- {
1120
- if ( startOffset >= startContainer.getLength() )
1121
- walkerRange.setStartAfter( startContainer );
1122
- else
1123
- walkerRange.setStartBefore( startContainer );
1124
- }
1125
-
1126
- if ( endContainer && endContainer.type == CKEDITOR.NODE_TEXT )
1127
- {
1128
- if ( !endOffset )
1129
- walkerRange.setEndBefore( endContainer );
1130
- else
1131
- walkerRange.setEndAfter( endContainer );
1132
- }
1133
-
1134
- // Looking for non-editable element inside the range.
1135
- var walker = new CKEDITOR.dom.walker( walkerRange );
1136
- walker.evaluator = function( node )
1137
- {
1138
- if ( node.type == CKEDITOR.NODE_ELEMENT
1139
- && node.isReadOnly() )
1140
- {
1141
- var newRange = range.clone();
1142
- range.setEndBefore( node );
1143
-
1144
- // Drop collapsed range around read-only elements,
1145
- // it make sure the range list empty when selecting
1146
- // only non-editable elements.
1147
- if ( range.collapsed )
1148
- ranges.splice( i--, 1 );
1149
-
1150
- // Avoid creating invalid range.
1151
- if ( !( node.getPosition( walkerRange.endContainer ) & CKEDITOR.POSITION_CONTAINS ) )
1152
- {
1153
- newRange.setStartAfter( node );
1154
- if ( !newRange.collapsed )
1155
- ranges.splice( i + 1, 0, newRange );
1156
- }
1157
-
1158
- return true;
1159
- }
1160
-
1161
- return false;
1162
- };
1163
-
1164
- walker.next();
1165
- }
1166
- }
1167
-
1168
- return cache.ranges;
1169
- };
1170
- })(),
1171
-
1172
- /**
1173
- * Gets the DOM element in which the selection starts.
1174
- * @returns {CKEDITOR.dom.element} The element at the beginning of the
1175
- * selection.
1176
- * @example
1177
- * var element = editor.getSelection().<strong>getStartElement()</strong>;
1178
- * alert( element.getName() );
1179
- */
1180
- getStartElement : function()
1181
- {
1182
- var cache = this._.cache;
1183
- if ( cache.startElement !== undefined )
1184
- return cache.startElement;
1185
-
1186
- var node,
1187
- sel = this.getNative();
1188
-
1189
- switch ( this.getType() )
1190
- {
1191
- case CKEDITOR.SELECTION_ELEMENT :
1192
- return this.getSelectedElement();
1193
-
1194
- case CKEDITOR.SELECTION_TEXT :
1195
-
1196
- var range = this.getRanges()[0];
1197
-
1198
- if ( range )
1199
- {
1200
- if ( !range.collapsed )
1201
- {
1202
- range.optimize();
1203
-
1204
- // Decrease the range content to exclude particial
1205
- // selected node on the start which doesn't have
1206
- // visual impact. ( #3231 )
1207
- while ( 1 )
1208
- {
1209
- var startContainer = range.startContainer,
1210
- startOffset = range.startOffset;
1211
- // Limit the fix only to non-block elements.(#3950)
1212
- if ( startOffset == ( startContainer.getChildCount ?
1213
- startContainer.getChildCount() : startContainer.getLength() )
1214
- && !startContainer.isBlockBoundary() )
1215
- range.setStartAfter( startContainer );
1216
- else break;
1217
- }
1218
-
1219
- node = range.startContainer;
1220
-
1221
- if ( node.type != CKEDITOR.NODE_ELEMENT )
1222
- return node.getParent();
1223
-
1224
- node = node.getChild( range.startOffset );
1225
-
1226
- if ( !node || node.type != CKEDITOR.NODE_ELEMENT )
1227
- node = range.startContainer;
1228
- else
1229
- {
1230
- var child = node.getFirst();
1231
- while ( child && child.type == CKEDITOR.NODE_ELEMENT )
1232
- {
1233
- node = child;
1234
- child = child.getFirst();
1235
- }
1236
- }
1237
- }
1238
- else
1239
- {
1240
- node = range.startContainer;
1241
- if ( node.type != CKEDITOR.NODE_ELEMENT )
1242
- node = node.getParent();
1243
- }
1244
-
1245
- node = node.$;
1246
- }
1247
- }
1248
-
1249
- return cache.startElement = ( node ? new CKEDITOR.dom.element( node ) : null );
1250
- },
1251
-
1252
- /**
1253
- * Gets the currently selected element.
1254
- * @returns {CKEDITOR.dom.element} The selected element. Null if no
1255
- * selection is available or the selection type is not
1256
- * <code>{@link CKEDITOR.SELECTION_ELEMENT}</code>.
1257
- * @example
1258
- * var element = editor.getSelection().<strong>getSelectedElement()</strong>;
1259
- * alert( element.getName() );
1260
- */
1261
- getSelectedElement : function()
1262
- {
1263
- var cache = this._.cache;
1264
- if ( cache.selectedElement !== undefined )
1265
- return cache.selectedElement;
1266
-
1267
- var self = this;
1268
-
1269
- var node = CKEDITOR.tools.tryThese(
1270
- // Is it native IE control type selection?
1271
- function()
1272
- {
1273
- return self.getNative().createRange().item( 0 );
1274
- },
1275
- // If a table or list is fully selected.
1276
- function()
1277
- {
1278
- var root,
1279
- retval,
1280
- range = self.getRanges()[ 0 ],
1281
- ancestor = range.getCommonAncestor( 1, 1 ),
1282
- tags = { table:1,ul:1,ol:1,dl:1 };
1283
-
1284
- for ( var t in tags )
1285
- {
1286
- if ( ( root = ancestor.getAscendant( t, 1 ) ) )
1287
- break;
1288
- }
1289
-
1290
- if ( root )
1291
- {
1292
- // Enlarging the start boundary.
1293
- var testRange = new CKEDITOR.dom.range( this.document );
1294
- testRange.setStartAt( root, CKEDITOR.POSITION_AFTER_START );
1295
- testRange.setEnd( range.startContainer, range.startOffset );
1296
-
1297
- var enlargeables = CKEDITOR.tools.extend( tags, CKEDITOR.dtd.$listItem, CKEDITOR.dtd.$tableContent ),
1298
- walker = new CKEDITOR.dom.walker( testRange ),
1299
- // Check the range is at the inner boundary of the structural element.
1300
- guard = function( walker, isEnd )
1301
- {
1302
- return function( node, isWalkOut )
1303
- {
1304
- if ( node.type == CKEDITOR.NODE_TEXT && ( !CKEDITOR.tools.trim( node.getText() ) || node.getParent().data( 'cke-bookmark' ) ) )
1305
- return true;
1306
-
1307
- var tag;
1308
- if ( node.type == CKEDITOR.NODE_ELEMENT )
1309
- {
1310
- tag = node.getName();
1311
-
1312
- // Bypass bogus br at the end of block.
1313
- if ( tag == 'br' && isEnd && node.equals( node.getParent().getBogus() ) )
1314
- return true;
1315
-
1316
- if ( isWalkOut && tag in enlargeables || tag in CKEDITOR.dtd.$removeEmpty )
1317
- return true;
1318
- }
1319
-
1320
- walker.halted = 1;
1321
- return false;
1322
- };
1323
- };
1324
-
1325
- walker.guard = guard( walker );
1326
-
1327
- if ( walker.checkBackward() && !walker.halted )
1328
- {
1329
- walker = new CKEDITOR.dom.walker( testRange );
1330
- testRange.setStart( range.endContainer, range.endOffset );
1331
- testRange.setEndAt( root, CKEDITOR.POSITION_BEFORE_END );
1332
- walker.guard = guard( walker, 1 );
1333
- if ( walker.checkForward() && !walker.halted )
1334
- retval = root.$;
1335
- }
1336
- }
1337
-
1338
- if ( !retval )
1339
- throw 0;
1340
-
1341
- return retval;
1342
- },
1343
- // Figure it out by checking if there's a single enclosed
1344
- // node of the range.
1345
- function()
1346
- {
1347
- var range = self.getRanges()[ 0 ],
1348
- enclosed,
1349
- selected;
1350
-
1351
- // Check first any enclosed element, e.g. <ul>[<li><a href="#">item</a></li>]</ul>
1352
- for ( var i = 2; i && !( ( enclosed = range.getEnclosedNode() )
1353
- && ( enclosed.type == CKEDITOR.NODE_ELEMENT )
1354
- && styleObjectElements[ enclosed.getName() ]
1355
- && ( selected = enclosed ) ); i-- )
1356
- {
1357
- // Then check any deep wrapped element, e.g. [<b><i><img /></i></b>]
1358
- range.shrink( CKEDITOR.SHRINK_ELEMENT );
1359
- }
1360
-
1361
- return selected.$;
1362
- });
1363
-
1364
- return cache.selectedElement = ( node ? new CKEDITOR.dom.element( node ) : null );
1365
- },
1366
-
1367
- /**
1368
- * Retrieves the text contained within the range. An empty string is returned for non-text selection.
1369
- * @returns {String} A string of text within the current selection.
1370
- * @since 3.6.1
1371
- * @example
1372
- * var text = editor.getSelection().<strong>getSelectedText()</strong>;
1373
- * alert( text );
1374
- */
1375
- getSelectedText : function()
1376
- {
1377
- var cache = this._.cache;
1378
- if ( cache.selectedText !== undefined )
1379
- return cache.selectedText;
1380
-
1381
- var text = '',
1382
- nativeSel = this.getNative();
1383
- if ( this.getType() == CKEDITOR.SELECTION_TEXT )
1384
- text = CKEDITOR.env.ie ? nativeSel.createRange().text : nativeSel.toString();
1385
-
1386
- return ( cache.selectedText = text );
1387
- },
1388
-
1389
- /**
1390
- * Locks the selection made in the editor in order to make it possible to
1391
- * manipulate it without browser interference. A locked selection is
1392
- * cached and remains unchanged until it is released with the <code>#unlock</code>
1393
- * method.
1394
- * @example
1395
- * editor.getSelection().<strong>lock()</strong>;
1396
- */
1397
- lock : function()
1398
- {
1399
- // Call all cacheable function.
1400
- this.getRanges();
1401
- this.getStartElement();
1402
- this.getSelectedElement();
1403
- this.getSelectedText();
1404
-
1405
- // The native selection is not available when locked.
1406
- this._.cache.nativeSel = {};
1407
-
1408
- this.isLocked = 1;
1409
-
1410
- // Save this selection inside the DOM document.
1411
- this.document.setCustomData( 'cke_locked_selection', this );
1412
- },
1413
-
1414
- /**
1415
- * Unlocks the selection made in the editor and locked with the <code>#lock</code> method.
1416
- * An unlocked selection is no longer cached and can be changed.
1417
- * @param {Boolean} [restore] If set to <code>true</code>, the selection is restored back to the selection saved earlier by using the <code>#lock</code> method.
1418
- * @example
1419
- * editor.getSelection().<strong>unlock()</strong>;
1420
- */
1421
- unlock : function( restore )
1422
- {
1423
- var doc = this.document,
1424
- lockedSelection = doc.getCustomData( 'cke_locked_selection' );
1425
-
1426
- if ( lockedSelection )
1427
- {
1428
- doc.setCustomData( 'cke_locked_selection', null );
1429
-
1430
- if ( restore )
1431
- {
1432
- var selectedElement = lockedSelection.getSelectedElement(),
1433
- ranges = !selectedElement && lockedSelection.getRanges();
1434
-
1435
- this.isLocked = 0;
1436
- this.reset();
1437
-
1438
- doc.getBody().focus();
1439
-
1440
- if ( selectedElement )
1441
- this.selectElement( selectedElement );
1442
- else
1443
- this.selectRanges( ranges );
1444
- }
1445
- }
1446
-
1447
- if ( !lockedSelection || !restore )
1448
- {
1449
- this.isLocked = 0;
1450
- this.reset();
1451
- }
1452
- },
1453
-
1454
- /**
1455
- * Clears the selection cache.
1456
- * @example
1457
- * editor.getSelection().<strong>reset()</strong>;
1458
- */
1459
- reset : function()
1460
- {
1461
- this._.cache = {};
1462
- },
1463
-
1464
- /**
1465
- * Makes the current selection of type <code>{@link CKEDITOR.SELECTION_ELEMENT}</code> by enclosing the specified element.
1466
- * @param {CKEDITOR.dom.element} element The element to enclose in the selection.
1467
- * @example
1468
- * var element = editor.document.getById( 'sampleElement' );
1469
- * editor.getSelection.<strong>selectElement( element )</strong>;
1470
- */
1471
- selectElement : function( element )
1472
- {
1473
- if ( this.isLocked )
1474
- {
1475
- var range = new CKEDITOR.dom.range( this.document );
1476
- range.setStartBefore( element );
1477
- range.setEndAfter( element );
1478
-
1479
- this._.cache.selectedElement = element;
1480
- this._.cache.startElement = element;
1481
- this._.cache.ranges = new CKEDITOR.dom.rangeList( range );
1482
- this._.cache.type = CKEDITOR.SELECTION_ELEMENT;
1483
-
1484
- return;
1485
- }
1486
-
1487
- range = new CKEDITOR.dom.range( element.getDocument() );
1488
- range.setStartBefore( element );
1489
- range.setEndAfter( element );
1490
- range.select();
1491
-
1492
- this.document.fire( 'selectionchange' );
1493
- this.reset();
1494
-
1495
- },
1496
-
1497
- /**
1498
- * Clears the original selection and adds the specified ranges
1499
- * to the document selection.
1500
- * @param {Array} ranges An array of <code>{@link CKEDITOR.dom.range}</code> instances representing ranges to be added to the document.
1501
- * @example
1502
- * var ranges = new CKEDITOR.dom.range( editor.document );
1503
- * editor.getSelection().<strong>selectRanges( [ ranges ] )</strong>;
1504
- */
1505
- selectRanges : function( ranges )
1506
- {
1507
- if ( this.isLocked )
1508
- {
1509
- this._.cache.selectedElement = null;
1510
- this._.cache.startElement = ranges[ 0 ] && ranges[ 0 ].getTouchedStartNode();
1511
- this._.cache.ranges = new CKEDITOR.dom.rangeList( ranges );
1512
- this._.cache.type = CKEDITOR.SELECTION_TEXT;
1513
-
1514
- return;
1515
- }
1516
-
1517
- if ( CKEDITOR.env.ie )
1518
- {
1519
- if ( ranges.length > 1 )
1520
- {
1521
- // IE doesn't accept multiple ranges selection, so we join all into one.
1522
- var last = ranges[ ranges.length -1 ] ;
1523
- ranges[ 0 ].setEnd( last.endContainer, last.endOffset );
1524
- ranges.length = 1;
1525
- }
1526
-
1527
- if ( ranges[ 0 ] )
1528
- ranges[ 0 ].select();
1529
-
1530
- this.reset();
1531
- }
1532
- else
1533
- {
1534
- var sel = this.getNative();
1535
-
1536
- // getNative() returns null if iframe is "display:none" in FF. (#6577)
1537
- if ( !sel )
1538
- return;
1539
-
1540
- if ( ranges.length )
1541
- {
1542
- sel.removeAllRanges();
1543
- // Remove any existing filling char first.
1544
- CKEDITOR.env.webkit && removeFillingChar( this.document );
1545
- }
1546
-
1547
- for ( var i = 0 ; i < ranges.length ; i++ )
1548
- {
1549
- // Joining sequential ranges introduced by
1550
- // readonly elements protection.
1551
- if ( i < ranges.length -1 )
1552
- {
1553
- var left = ranges[ i ], right = ranges[ i +1 ],
1554
- between = left.clone();
1555
- between.setStart( left.endContainer, left.endOffset );
1556
- between.setEnd( right.startContainer, right.startOffset );
1557
-
1558
- // Don't confused by Firefox adjancent multi-ranges
1559
- // introduced by table cells selection.
1560
- if ( !between.collapsed )
1561
- {
1562
- between.shrink( CKEDITOR.NODE_ELEMENT, true );
1563
- var ancestor = between.getCommonAncestor(),
1564
- enclosed = between.getEnclosedNode();
1565
-
1566
- // The following cases has to be considered:
1567
- // 1. <span contenteditable="false">[placeholder]</span>
1568
- // 2. <input contenteditable="false" type="radio"/> (#6621)
1569
- if ( ancestor.isReadOnly() || enclosed && enclosed.isReadOnly() )
1570
- {
1571
- right.setStart( left.startContainer, left.startOffset );
1572
- ranges.splice( i--, 1 );
1573
- continue;
1574
- }
1575
- }
1576
- }
1577
-
1578
- var range = ranges[ i ];
1579
- var nativeRange = this.document.$.createRange();
1580
- var startContainer = range.startContainer;
1581
-
1582
- // In FF2, if we have a collapsed range, inside an empty
1583
- // element, we must add something to it otherwise the caret
1584
- // will not be visible.
1585
- // In Opera instead, the selection will be moved out of the
1586
- // element. (#4657)
1587
- if ( range.collapsed &&
1588
- ( CKEDITOR.env.opera || ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 ) ) &&
1589
- startContainer.type == CKEDITOR.NODE_ELEMENT &&
1590
- !startContainer.getChildCount() )
1591
- {
1592
- startContainer.appendText( '' );
1593
- }
1594
-
1595
- if ( range.collapsed
1596
- && CKEDITOR.env.webkit
1597
- && rangeRequiresFix( range ) )
1598
- {
1599
- // Append a zero-width space so WebKit will not try to
1600
- // move the selection by itself (#1272).
1601
- var fillingChar = createFillingChar( this.document );
1602
- range.insertNode( fillingChar ) ;
1603
-
1604
- var next = fillingChar.getNext();
1605
-
1606
- // If the filling char is followed by a <br>, whithout
1607
- // having something before it, it'll not blink.
1608
- // Let's remove it in this case.
1609
- if ( next && !fillingChar.getPrevious() && next.type == CKEDITOR.NODE_ELEMENT && next.getName() == 'br' )
1610
- {
1611
- removeFillingChar( this.document );
1612
- range.moveToPosition( next, CKEDITOR.POSITION_BEFORE_START );
1613
- }
1614
- else
1615
- range.moveToPosition( fillingChar, CKEDITOR.POSITION_AFTER_END );
1616
- }
1617
-
1618
- nativeRange.setStart( range.startContainer.$, range.startOffset );
1619
-
1620
- try
1621
- {
1622
- nativeRange.setEnd( range.endContainer.$, range.endOffset );
1623
- }
1624
- catch ( e )
1625
- {
1626
- // There is a bug in Firefox implementation (it would be too easy
1627
- // otherwise). The new start can't be after the end (W3C says it can).
1628
- // So, let's create a new range and collapse it to the desired point.
1629
- if ( e.toString().indexOf( 'NS_ERROR_ILLEGAL_VALUE' ) >= 0 )
1630
- {
1631
- range.collapse( 1 );
1632
- nativeRange.setEnd( range.endContainer.$, range.endOffset );
1633
- }
1634
- else
1635
- throw e;
1636
- }
1637
-
1638
- // Select the range.
1639
- sel.addRange( nativeRange );
1640
- }
1641
-
1642
- // Don't miss selection change event for non-IEs.
1643
- this.document.fire( 'selectionchange' );
1644
- this.reset();
1645
- }
1646
- },
1647
-
1648
- /**
1649
- * Creates a bookmark for each range of this selection (from <code>#getRanges</code>)
1650
- * by calling the <code>{@link CKEDITOR.dom.range.prototype.createBookmark}</code> method,
1651
- * with extra care taken to avoid interference among those ranges. The arguments
1652
- * received are the same as with the underlying range method.
1653
- * @returns {Array} Array of bookmarks for each range.
1654
- * @example
1655
- * var bookmarks = editor.getSelection().<strong>createBookmarks()</strong>;
1656
- */
1657
- createBookmarks : function( serializable )
1658
- {
1659
- return this.getRanges().createBookmarks( serializable );
1660
- },
1661
-
1662
- /**
1663
- * Creates a bookmark for each range of this selection (from <code>#getRanges</code>)
1664
- * by calling the <code>{@link CKEDITOR.dom.range.prototype.createBookmark2}</code> method,
1665
- * with extra care taken to avoid interference among those ranges. The arguments
1666
- * received are the same as with the underlying range method.
1667
- * @returns {Array} Array of bookmarks for each range.
1668
- * @example
1669
- * var bookmarks = editor.getSelection().<strong>createBookmarks2()</strong>;
1670
- */
1671
- createBookmarks2 : function( normalized )
1672
- {
1673
- return this.getRanges().createBookmarks2( normalized );
1674
- },
1675
-
1676
- /**
1677
- * Selects the virtual ranges denoted by the bookmarks by calling <code>#selectRanges</code>.
1678
- * @param {Array} bookmarks The bookmarks representing ranges to be selected.
1679
- * @returns {CKEDITOR.dom.selection} This selection object, after the ranges were selected.
1680
- * @example
1681
- * var bookmarks = editor.getSelection().createBookmarks();
1682
- * editor.getSelection().<strong>selectBookmarks( bookmarks )</strong>;
1683
- */
1684
- selectBookmarks : function( bookmarks )
1685
- {
1686
- var ranges = [];
1687
- for ( var i = 0 ; i < bookmarks.length ; i++ )
1688
- {
1689
- var range = new CKEDITOR.dom.range( this.document );
1690
- range.moveToBookmark( bookmarks[i] );
1691
- ranges.push( range );
1692
- }
1693
- this.selectRanges( ranges );
1694
- return this;
1695
- },
1696
-
1697
- /**
1698
- * Retrieves the common ancestor node of the first range and the last range.
1699
- * @returns {CKEDITOR.dom.element} The common ancestor of the selection.
1700
- * @example
1701
- * var ancestor = editor.getSelection().<strong>getCommonAncestor()</strong>;
1702
- */
1703
- getCommonAncestor : function()
1704
- {
1705
- var ranges = this.getRanges(),
1706
- startNode = ranges[ 0 ].startContainer,
1707
- endNode = ranges[ ranges.length - 1 ].endContainer;
1708
- return startNode.getCommonAncestor( endNode );
1709
- },
1710
-
1711
- /**
1712
- * Moves the scrollbar to the starting position of the current selection.
1713
- * @example
1714
- * editor.getSelection().<strong>scrollIntoView()</strong>;
1715
- */
1716
- scrollIntoView : function()
1717
- {
1718
- // If we have split the block, adds a temporary span at the
1719
- // range position and scroll relatively to it.
1720
- var start = this.getStartElement();
1721
- start.scrollIntoView();
1722
- }
1723
- };
1724
- })();
1725
-
1726
- ( function()
1727
- {
1728
- var notWhitespaces = CKEDITOR.dom.walker.whitespaces( true ),
1729
- fillerTextRegex = /\ufeff|\u00a0/,
1730
- nonCells = { table:1,tbody:1,tr:1 };
1731
-
1732
- CKEDITOR.dom.range.prototype.select =
1733
- CKEDITOR.env.ie ?
1734
- // V2
1735
- function( forceExpand )
1736
- {
1737
- var collapsed = this.collapsed,
1738
- isStartMarkerAlone, dummySpan, ieRange;
1739
-
1740
- // Try to make a object selection.
1741
- var selected = this.getEnclosedNode();
1742
- if ( selected )
1743
- {
1744
- try
1745
- {
1746
- ieRange = this.document.$.body.createControlRange();
1747
- ieRange.addElement( selected.$ );
1748
- ieRange.select();
1749
- return;
1750
- }
1751
- catch( er ) {}
1752
- }
1753
-
1754
- // IE doesn't support selecting the entire table row/cell, move the selection into cells, e.g.
1755
- // <table><tbody><tr>[<td>cell</b></td>... => <table><tbody><tr><td>[cell</td>...
1756
- if ( this.startContainer.type == CKEDITOR.NODE_ELEMENT && this.startContainer.getName() in nonCells
1757
- || this.endContainer.type == CKEDITOR.NODE_ELEMENT && this.endContainer.getName() in nonCells )
1758
- {
1759
- this.shrink( CKEDITOR.NODE_ELEMENT, true );
1760
- }
1761
-
1762
- var bookmark = this.createBookmark();
1763
-
1764
- // Create marker tags for the start and end boundaries.
1765
- var startNode = bookmark.startNode;
1766
-
1767
- var endNode;
1768
- if ( !collapsed )
1769
- endNode = bookmark.endNode;
1770
-
1771
- // Create the main range which will be used for the selection.
1772
- ieRange = this.document.$.body.createTextRange();
1773
-
1774
- // Position the range at the start boundary.
1775
- ieRange.moveToElementText( startNode.$ );
1776
- ieRange.moveStart( 'character', 1 );
1777
-
1778
- if ( endNode )
1779
- {
1780
- // Create a tool range for the end.
1781
- var ieRangeEnd = this.document.$.body.createTextRange();
1782
-
1783
- // Position the tool range at the end.
1784
- ieRangeEnd.moveToElementText( endNode.$ );
1785
-
1786
- // Move the end boundary of the main range to match the tool range.
1787
- ieRange.setEndPoint( 'EndToEnd', ieRangeEnd );
1788
- ieRange.moveEnd( 'character', -1 );
1789
- }
1790
- else
1791
- {
1792
- // The isStartMarkerAlone logic comes from V2. It guarantees that the lines
1793
- // will expand and that the cursor will be blinking on the right place.
1794
- // Actually, we are using this flag just to avoid using this hack in all
1795
- // situations, but just on those needed.
1796
- var next = startNode.getNext( notWhitespaces );
1797
- isStartMarkerAlone = ( !( next && next.getText && next.getText().match( fillerTextRegex ) ) // already a filler there?
1798
- && ( forceExpand || !startNode.hasPrevious() || ( startNode.getPrevious().is && startNode.getPrevious().is( 'br' ) ) ) );
1799
-
1800
- // Append a temporary <span>&#65279;</span> before the selection.
1801
- // This is needed to avoid IE destroying selections inside empty
1802
- // inline elements, like <b></b> (#253).
1803
- // It is also needed when placing the selection right after an inline
1804
- // element to avoid the selection moving inside of it.
1805
- dummySpan = this.document.createElement( 'span' );
1806
- dummySpan.setHtml( '&#65279;' ); // Zero Width No-Break Space (U+FEFF). See #1359.
1807
- dummySpan.insertBefore( startNode );
1808
-
1809
- if ( isStartMarkerAlone )
1810
- {
1811
- // To expand empty blocks or line spaces after <br>, we need
1812
- // instead to have any char, which will be later deleted using the
1813
- // selection.
1814
- // \ufeff = Zero Width No-Break Space (U+FEFF). (#1359)
1815
- this.document.createText( '\ufeff' ).insertBefore( startNode );
1816
- }
1817
- }
1818
-
1819
- // Remove the markers (reset the position, because of the changes in the DOM tree).
1820
- this.setStartBefore( startNode );
1821
- startNode.remove();
1822
-
1823
- if ( collapsed )
1824
- {
1825
- if ( isStartMarkerAlone )
1826
- {
1827
- // Move the selection start to include the temporary \ufeff.
1828
- ieRange.moveStart( 'character', -1 );
1829
-
1830
- ieRange.select();
1831
-
1832
- // Remove our temporary stuff.
1833
- this.document.$.selection.clear();
1834
- }
1835
- else
1836
- ieRange.select();
1837
-
1838
- this.moveToPosition( dummySpan, CKEDITOR.POSITION_BEFORE_START );
1839
- dummySpan.remove();
1840
- }
1841
- else
1842
- {
1843
- this.setEndBefore( endNode );
1844
- endNode.remove();
1845
- ieRange.select();
1846
- }
1847
-
1848
- this.document.fire( 'selectionchange' );
1849
- }
1850
- :
1851
- function()
1852
- {
1853
- this.document.getSelection().selectRanges( [ this ] );
1854
- };
1855
- } )();