rich 1.3.1 → 1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
- } )();