ckeditor-rails 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (708) hide show
  1. data/README.md +17 -14
  2. data/lib/ckeditor-rails/version.rb +1 -1
  3. data/vendor/assets/ckeditor/ckeditor/.htaccess +1 -1
  4. data/vendor/assets/ckeditor/ckeditor/CHANGES.html +139 -3
  5. data/vendor/assets/ckeditor/ckeditor/INSTALL.html +92 -92
  6. data/vendor/assets/ckeditor/ckeditor/LICENSE.html +2 -2
  7. data/vendor/assets/ckeditor/ckeditor/_samples/adobeair/application.xml +32 -32
  8. data/vendor/assets/ckeditor/ckeditor/_samples/adobeair/run.bat +9 -9
  9. data/vendor/assets/ckeditor/ckeditor/_samples/adobeair/run.sh +1 -1
  10. data/vendor/assets/ckeditor/ckeditor/_samples/adobeair/sample.html +45 -45
  11. data/vendor/assets/ckeditor/ckeditor/_samples/ajax.html +98 -98
  12. data/vendor/assets/ckeditor/ckeditor/_samples/api.html +192 -192
  13. data/vendor/assets/ckeditor/ckeditor/_samples/api_dialog.html +198 -198
  14. data/vendor/assets/ckeditor/ckeditor/_samples/api_dialog/my_dialog.js +28 -28
  15. data/vendor/assets/ckeditor/ckeditor/_samples/asp/advanced.asp +105 -105
  16. data/vendor/assets/ckeditor/ckeditor/_samples/asp/events.asp +136 -136
  17. data/vendor/assets/ckeditor/ckeditor/_samples/asp/index.html +103 -103
  18. data/vendor/assets/ckeditor/ckeditor/_samples/asp/replace.asp +72 -72
  19. data/vendor/assets/ckeditor/ckeditor/_samples/asp/replaceall.asp +77 -77
  20. data/vendor/assets/ckeditor/ckeditor/_samples/asp/sample_posteddata.asp +46 -46
  21. data/vendor/assets/ckeditor/ckeditor/_samples/asp/standalone.asp +72 -72
  22. data/vendor/assets/ckeditor/ckeditor/_samples/assets/_posteddata.php +59 -59
  23. data/vendor/assets/ckeditor/ckeditor/_samples/assets/output_xhtml.css +204 -204
  24. data/vendor/assets/ckeditor/ckeditor/_samples/assets/parsesample.css +70 -70
  25. data/vendor/assets/ckeditor/ckeditor/_samples/assets/swfobject.js +18 -18
  26. data/vendor/assets/ckeditor/ckeditor/_samples/autogrow.html +108 -107
  27. data/vendor/assets/ckeditor/ckeditor/_samples/bbcode.html +125 -125
  28. data/vendor/assets/ckeditor/ckeditor/_samples/devtools.html +94 -94
  29. data/vendor/assets/ckeditor/ckeditor/_samples/divreplace.html +154 -154
  30. data/vendor/assets/ckeditor/ckeditor/_samples/enterkey.html +115 -115
  31. data/vendor/assets/ckeditor/ckeditor/_samples/fullpage.html +82 -82
  32. data/vendor/assets/ckeditor/ckeditor/_samples/index.html +116 -116
  33. data/vendor/assets/ckeditor/ckeditor/_samples/jqueryadapter.html +99 -99
  34. data/vendor/assets/ckeditor/ckeditor/_samples/output_for_flash.html +275 -275
  35. data/vendor/assets/ckeditor/ckeditor/_samples/output_html.html +285 -285
  36. data/vendor/assets/ckeditor/ckeditor/_samples/output_xhtml.html +181 -177
  37. data/vendor/assets/ckeditor/ckeditor/_samples/php/advanced.php +120 -120
  38. data/vendor/assets/ckeditor/ckeditor/_samples/php/events.php +153 -153
  39. data/vendor/assets/ckeditor/ckeditor/_samples/php/index.html +47 -47
  40. data/vendor/assets/ckeditor/ckeditor/_samples/php/replace.php +87 -87
  41. data/vendor/assets/ckeditor/ckeditor/_samples/php/replaceall.php +88 -88
  42. data/vendor/assets/ckeditor/ckeditor/_samples/php/standalone.php +83 -83
  43. data/vendor/assets/ckeditor/ckeditor/_samples/placeholder.html +81 -81
  44. data/vendor/assets/ckeditor/ckeditor/_samples/readonly.html +91 -91
  45. data/vendor/assets/ckeditor/ckeditor/_samples/replacebyclass.html +64 -64
  46. data/vendor/assets/ckeditor/ckeditor/_samples/replacebycode.html +97 -97
  47. data/vendor/assets/ckeditor/ckeditor/_samples/sample.css +163 -163
  48. data/vendor/assets/ckeditor/ckeditor/_samples/sample.js +65 -65
  49. data/vendor/assets/ckeditor/ckeditor/_samples/sample_posteddata.php +21 -21
  50. data/vendor/assets/ckeditor/ckeditor/_samples/sharedspaces.html +153 -153
  51. data/vendor/assets/ckeditor/ckeditor/_samples/skins.html +110 -110
  52. data/vendor/assets/ckeditor/ckeditor/_samples/stylesheetparser.html +93 -93
  53. data/vendor/assets/ckeditor/ckeditor/_samples/tableresize.html +115 -115
  54. data/vendor/assets/ckeditor/ckeditor/_samples/ui_color.html +129 -129
  55. data/vendor/assets/ckeditor/ckeditor/_samples/ui_languages.html +134 -134
  56. data/vendor/assets/ckeditor/ckeditor/_source/adapters/jquery.js +306 -306
  57. data/vendor/assets/ckeditor/ckeditor/_source/core/_bootstrap.js +87 -87
  58. data/vendor/assets/ckeditor/ckeditor/_source/core/ckeditor.js +141 -141
  59. data/vendor/assets/ckeditor/ckeditor/_source/core/ckeditor_base.js +235 -227
  60. data/vendor/assets/ckeditor/ckeditor/_source/core/ckeditor_basic.js +238 -238
  61. data/vendor/assets/ckeditor/ckeditor/_source/core/command.js +225 -209
  62. data/vendor/assets/ckeditor/ckeditor/_source/core/commanddefinition.js +129 -129
  63. data/vendor/assets/ckeditor/ckeditor/_source/core/config.js +447 -431
  64. data/vendor/assets/ckeditor/ckeditor/_source/core/dataprocessor.js +65 -65
  65. data/vendor/assets/ckeditor/ckeditor/_source/core/dom.js +20 -20
  66. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/comment.js +44 -32
  67. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/document.js +251 -251
  68. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/documentfragment.js +49 -49
  69. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/domobject.js +258 -258
  70. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/element.js +1796 -1681
  71. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/elementpath.js +117 -119
  72. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/event.js +145 -145
  73. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/node.js +691 -695
  74. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/nodelist.js +26 -26
  75. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/range.js +2068 -2032
  76. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/rangelist.js +213 -213
  77. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/text.js +128 -128
  78. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/walker.js +496 -462
  79. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/window.js +96 -96
  80. data/vendor/assets/ckeditor/ckeditor/_source/core/dtd.js +266 -266
  81. data/vendor/assets/ckeditor/ckeditor/_source/core/editor.js +1059 -1059
  82. data/vendor/assets/ckeditor/ckeditor/_source/core/editor_basic.js +186 -186
  83. data/vendor/assets/ckeditor/ckeditor/_source/core/env.js +305 -291
  84. data/vendor/assets/ckeditor/ckeditor/_source/core/event.js +342 -342
  85. data/vendor/assets/ckeditor/ckeditor/_source/core/eventInfo.js +120 -120
  86. data/vendor/assets/ckeditor/ckeditor/_source/core/focusmanager.js +152 -152
  87. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser.js +224 -224
  88. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/basicwriter.js +145 -145
  89. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/cdata.js +43 -43
  90. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/comment.js +60 -60
  91. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/element.js +308 -308
  92. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/filter.js +288 -288
  93. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/fragment.js +537 -497
  94. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/text.js +53 -55
  95. data/vendor/assets/ckeditor/ckeditor/_source/core/lang.js +157 -157
  96. data/vendor/assets/ckeditor/ckeditor/_source/core/loader.js +240 -240
  97. data/vendor/assets/ckeditor/ckeditor/_source/core/plugindefinition.js +83 -83
  98. data/vendor/assets/ckeditor/ckeditor/_source/core/plugins.js +103 -103
  99. data/vendor/assets/ckeditor/ckeditor/_source/core/resourcemanager.js +238 -238
  100. data/vendor/assets/ckeditor/ckeditor/_source/core/scriptloader.js +180 -180
  101. data/vendor/assets/ckeditor/ckeditor/_source/core/skins.js +184 -184
  102. data/vendor/assets/ckeditor/ckeditor/_source/core/themes.js +19 -19
  103. data/vendor/assets/ckeditor/ckeditor/_source/core/tools.js +763 -763
  104. data/vendor/assets/ckeditor/ckeditor/_source/core/ui.js +128 -128
  105. data/vendor/assets/ckeditor/ckeditor/_source/lang/_languages.js +84 -84
  106. data/vendor/assets/ckeditor/ckeditor/_source/lang/_translationstatus.txt +63 -61
  107. data/vendor/assets/ckeditor/ckeditor/_source/lang/af.js +815 -812
  108. data/vendor/assets/ckeditor/ckeditor/_source/lang/ar.js +815 -812
  109. data/vendor/assets/ckeditor/ckeditor/_source/lang/bg.js +815 -812
  110. data/vendor/assets/ckeditor/ckeditor/_source/lang/bn.js +815 -812
  111. data/vendor/assets/ckeditor/ckeditor/_source/lang/bs.js +815 -812
  112. data/vendor/assets/ckeditor/ckeditor/_source/lang/ca.js +815 -812
  113. data/vendor/assets/ckeditor/ckeditor/_source/lang/cs.js +815 -812
  114. data/vendor/assets/ckeditor/ckeditor/_source/lang/cy.js +815 -812
  115. data/vendor/assets/ckeditor/ckeditor/_source/lang/da.js +815 -812
  116. data/vendor/assets/ckeditor/ckeditor/_source/lang/de.js +815 -812
  117. data/vendor/assets/ckeditor/ckeditor/_source/lang/el.js +815 -812
  118. data/vendor/assets/ckeditor/ckeditor/_source/lang/en-au.js +815 -812
  119. data/vendor/assets/ckeditor/ckeditor/_source/lang/en-ca.js +815 -812
  120. data/vendor/assets/ckeditor/ckeditor/_source/lang/en-gb.js +815 -812
  121. data/vendor/assets/ckeditor/ckeditor/_source/lang/en.js +815 -812
  122. data/vendor/assets/ckeditor/ckeditor/_source/lang/eo.js +815 -812
  123. data/vendor/assets/ckeditor/ckeditor/_source/lang/es.js +815 -812
  124. data/vendor/assets/ckeditor/ckeditor/_source/lang/et.js +815 -812
  125. data/vendor/assets/ckeditor/ckeditor/_source/lang/eu.js +815 -812
  126. data/vendor/assets/ckeditor/ckeditor/_source/lang/fa.js +815 -812
  127. data/vendor/assets/ckeditor/ckeditor/_source/lang/fi.js +815 -812
  128. data/vendor/assets/ckeditor/ckeditor/_source/lang/fo.js +815 -812
  129. data/vendor/assets/ckeditor/ckeditor/_source/lang/fr-ca.js +815 -812
  130. data/vendor/assets/ckeditor/ckeditor/_source/lang/fr.js +815 -812
  131. data/vendor/assets/ckeditor/ckeditor/_source/lang/gl.js +815 -812
  132. data/vendor/assets/ckeditor/ckeditor/_source/lang/gu.js +815 -812
  133. data/vendor/assets/ckeditor/ckeditor/_source/lang/he.js +815 -812
  134. data/vendor/assets/ckeditor/ckeditor/_source/lang/hi.js +815 -812
  135. data/vendor/assets/ckeditor/ckeditor/_source/lang/hr.js +815 -812
  136. data/vendor/assets/ckeditor/ckeditor/_source/lang/hu.js +815 -812
  137. data/vendor/assets/ckeditor/ckeditor/_source/lang/is.js +815 -812
  138. data/vendor/assets/ckeditor/ckeditor/_source/lang/it.js +815 -812
  139. data/vendor/assets/ckeditor/ckeditor/_source/lang/ja.js +815 -812
  140. data/vendor/assets/ckeditor/ckeditor/_source/lang/ka.js +815 -812
  141. data/vendor/assets/ckeditor/ckeditor/_source/lang/km.js +815 -812
  142. data/vendor/assets/ckeditor/ckeditor/_source/lang/ko.js +815 -812
  143. data/vendor/assets/ckeditor/ckeditor/_source/lang/lt.js +815 -812
  144. data/vendor/assets/ckeditor/ckeditor/_source/lang/lv.js +815 -812
  145. data/vendor/assets/ckeditor/ckeditor/_source/lang/mk.js +814 -0
  146. data/vendor/assets/ckeditor/ckeditor/_source/lang/mn.js +815 -812
  147. data/vendor/assets/ckeditor/ckeditor/_source/lang/ms.js +815 -812
  148. data/vendor/assets/ckeditor/ckeditor/_source/lang/nb.js +815 -812
  149. data/vendor/assets/ckeditor/ckeditor/_source/lang/nl.js +815 -812
  150. data/vendor/assets/ckeditor/ckeditor/_source/lang/no.js +815 -812
  151. data/vendor/assets/ckeditor/ckeditor/_source/lang/pl.js +815 -812
  152. data/vendor/assets/ckeditor/ckeditor/_source/lang/pt-br.js +814 -811
  153. data/vendor/assets/ckeditor/ckeditor/_source/lang/pt.js +815 -812
  154. data/vendor/assets/ckeditor/ckeditor/_source/lang/ro.js +815 -812
  155. data/vendor/assets/ckeditor/ckeditor/_source/lang/ru.js +815 -812
  156. data/vendor/assets/ckeditor/ckeditor/_source/lang/sk.js +815 -812
  157. data/vendor/assets/ckeditor/ckeditor/_source/lang/sl.js +815 -812
  158. data/vendor/assets/ckeditor/ckeditor/_source/lang/sr-latn.js +815 -812
  159. data/vendor/assets/ckeditor/ckeditor/_source/lang/sr.js +815 -812
  160. data/vendor/assets/ckeditor/ckeditor/_source/lang/sv.js +814 -811
  161. data/vendor/assets/ckeditor/ckeditor/_source/lang/th.js +815 -812
  162. data/vendor/assets/ckeditor/ckeditor/_source/lang/tr.js +814 -811
  163. data/vendor/assets/ckeditor/ckeditor/_source/lang/ug.js +814 -0
  164. data/vendor/assets/ckeditor/ckeditor/_source/lang/uk.js +815 -812
  165. data/vendor/assets/ckeditor/ckeditor/_source/lang/vi.js +815 -812
  166. data/vendor/assets/ckeditor/ckeditor/_source/lang/zh-cn.js +815 -812
  167. data/vendor/assets/ckeditor/ckeditor/_source/lang/zh.js +815 -812
  168. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/a11yhelp.js +222 -222
  169. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/_translationstatus.txt +23 -0
  170. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/cs.js +89 -0
  171. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/cy.js +89 -0
  172. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/da.js +89 -0
  173. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/de.js +89 -0
  174. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/el.js +89 -0
  175. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/en.js +108 -108
  176. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/eo.js +89 -0
  177. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/fa.js +89 -0
  178. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/fi.js +89 -0
  179. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/fr.js +89 -0
  180. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/gu.js +89 -0
  181. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/he.js +89 -216
  182. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/it.js +89 -0
  183. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/mk.js +89 -0
  184. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/nb.js +89 -0
  185. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/nl.js +89 -0
  186. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/no.js +89 -0
  187. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/tr.js +89 -0
  188. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/ug.js +89 -0
  189. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/vi.js +89 -0
  190. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/zh-cn.js +89 -0
  191. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/plugin.js +47 -47
  192. data/vendor/assets/ckeditor/ckeditor/_source/plugins/about/dialogs/about.js +76 -76
  193. data/vendor/assets/ckeditor/ckeditor/_source/plugins/about/plugin.js +24 -24
  194. data/vendor/assets/ckeditor/ckeditor/_source/plugins/adobeair/plugin.js +228 -228
  195. data/vendor/assets/ckeditor/ckeditor/_source/plugins/ajax/plugin.js +152 -152
  196. data/vendor/assets/ckeditor/ckeditor/_source/plugins/autogrow/plugin.js +141 -88
  197. data/vendor/assets/ckeditor/ckeditor/_source/plugins/basicstyles/plugin.js +129 -101
  198. data/vendor/assets/ckeditor/ckeditor/_source/plugins/bbcode/plugin.js +931 -931
  199. data/vendor/assets/ckeditor/ckeditor/_source/plugins/bidi/plugin.js +334 -334
  200. data/vendor/assets/ckeditor/ckeditor/_source/plugins/blockquote/plugin.js +305 -305
  201. data/vendor/assets/ckeditor/ckeditor/_source/plugins/button/plugin.js +290 -290
  202. data/vendor/assets/ckeditor/ckeditor/_source/plugins/clipboard/dialogs/paste.js +223 -223
  203. data/vendor/assets/ckeditor/ckeditor/_source/plugins/clipboard/plugin.js +479 -453
  204. data/vendor/assets/ckeditor/ckeditor/_source/plugins/colorbutton/plugin.js +300 -294
  205. data/vendor/assets/ckeditor/ckeditor/_source/plugins/colordialog/dialogs/colordialog.js +387 -340
  206. data/vendor/assets/ckeditor/ckeditor/_source/plugins/colordialog/plugin.js +15 -15
  207. data/vendor/assets/ckeditor/ckeditor/_source/plugins/contextmenu/plugin.js +179 -177
  208. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/_translationstatus.txt +27 -0
  209. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/bg.js +16 -0
  210. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/cs.js +16 -0
  211. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/cy.js +16 -0
  212. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/da.js +16 -0
  213. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/de.js +16 -0
  214. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/el.js +16 -0
  215. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/en.js +16 -16
  216. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/eo.js +16 -0
  217. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/et.js +16 -0
  218. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/fa.js +16 -0
  219. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/fi.js +16 -0
  220. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/fr.js +16 -0
  221. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/gu.js +16 -0
  222. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/he.js +16 -0
  223. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/hr.js +16 -0
  224. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/it.js +16 -0
  225. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/nb.js +16 -0
  226. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/nl.js +16 -0
  227. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/no.js +16 -0
  228. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/pl.js +16 -0
  229. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/tr.js +16 -0
  230. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/ug.js +16 -0
  231. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/uk.js +16 -0
  232. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/vi.js +16 -0
  233. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/zh-cn.js +16 -0
  234. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/plugin.js +173 -173
  235. data/vendor/assets/ckeditor/ckeditor/_source/plugins/dialog/dialogDefinition.js +1166 -1166
  236. data/vendor/assets/ckeditor/ckeditor/_source/plugins/dialog/plugin.js +3319 -3289
  237. data/vendor/assets/ckeditor/ckeditor/_source/plugins/dialogadvtab/plugin.js +208 -207
  238. data/vendor/assets/ckeditor/ckeditor/_source/plugins/dialogui/plugin.js +1549 -1541
  239. data/vendor/assets/ckeditor/ckeditor/_source/plugins/div/dialogs/div.js +535 -535
  240. data/vendor/assets/ckeditor/ckeditor/_source/plugins/div/plugin.js +121 -121
  241. data/vendor/assets/ckeditor/ckeditor/_source/plugins/docprops/dialogs/docprops.js +674 -686
  242. data/vendor/assets/ckeditor/ckeditor/_source/plugins/docprops/plugin.js +22 -22
  243. data/vendor/assets/ckeditor/ckeditor/_source/plugins/domiterator/plugin.js +366 -361
  244. data/vendor/assets/ckeditor/ckeditor/_source/plugins/editingblock/plugin.js +278 -275
  245. data/vendor/assets/ckeditor/ckeditor/_source/plugins/elementspath/plugin.js +218 -218
  246. data/vendor/assets/ckeditor/ckeditor/_source/plugins/enterkey/plugin.js +433 -413
  247. data/vendor/assets/ckeditor/ckeditor/_source/plugins/entities/plugin.js +254 -250
  248. data/vendor/assets/ckeditor/ckeditor/_source/plugins/fakeobjects/plugin.js +175 -175
  249. data/vendor/assets/ckeditor/ckeditor/_source/plugins/filebrowser/plugin.js +533 -524
  250. data/vendor/assets/ckeditor/ckeditor/_source/plugins/find/dialogs/find.js +915 -903
  251. data/vendor/assets/ckeditor/ckeditor/_source/plugins/find/plugin.js +47 -47
  252. data/vendor/assets/ckeditor/ckeditor/_source/plugins/flash/dialogs/flash.js +674 -673
  253. data/vendor/assets/ckeditor/ckeditor/_source/plugins/flash/plugin.js +154 -154
  254. data/vendor/assets/ckeditor/ckeditor/_source/plugins/floatpanel/plugin.js +476 -428
  255. data/vendor/assets/ckeditor/ckeditor/_source/plugins/font/plugin.js +234 -234
  256. data/vendor/assets/ckeditor/ckeditor/_source/plugins/format/plugin.js +197 -197
  257. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/button.js +118 -118
  258. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/checkbox.js +153 -153
  259. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/form.js +177 -177
  260. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/hiddenfield.js +100 -100
  261. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/radio.js +135 -135
  262. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/select.js +558 -558
  263. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/textarea.js +135 -114
  264. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/textfield.js +199 -199
  265. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/plugin.js +288 -288
  266. data/vendor/assets/ckeditor/ckeditor/_source/plugins/horizontalrule/plugin.js +48 -48
  267. data/vendor/assets/ckeditor/ckeditor/_source/plugins/htmldataprocessor/plugin.js +600 -595
  268. data/vendor/assets/ckeditor/ckeditor/_source/plugins/htmlwriter/plugin.js +319 -319
  269. data/vendor/assets/ckeditor/ckeditor/_source/plugins/iframe/dialogs/iframe.js +229 -229
  270. data/vendor/assets/ckeditor/ckeditor/_source/plugins/iframe/plugin.js +87 -87
  271. data/vendor/assets/ckeditor/ckeditor/_source/plugins/iframedialog/plugin.js +188 -188
  272. data/vendor/assets/ckeditor/ckeditor/_source/plugins/image/dialogs/image.js +1406 -1406
  273. data/vendor/assets/ckeditor/ckeditor/_source/plugins/image/plugin.js +164 -81
  274. data/vendor/assets/ckeditor/ckeditor/_source/plugins/indent/plugin.js +480 -461
  275. data/vendor/assets/ckeditor/ckeditor/_source/plugins/justify/plugin.js +251 -253
  276. data/vendor/assets/ckeditor/ckeditor/_source/plugins/keystrokes/plugin.js +225 -225
  277. data/vendor/assets/ckeditor/ckeditor/_source/plugins/link/dialogs/anchor.js +144 -144
  278. data/vendor/assets/ckeditor/ckeditor/_source/plugins/link/dialogs/link.js +1427 -1424
  279. data/vendor/assets/ckeditor/ckeditor/_source/plugins/link/plugin.js +374 -374
  280. data/vendor/assets/ckeditor/ckeditor/_source/plugins/list/plugin.js +967 -734
  281. data/vendor/assets/ckeditor/ckeditor/_source/plugins/listblock/plugin.js +260 -268
  282. data/vendor/assets/ckeditor/ckeditor/_source/plugins/liststyle/dialogs/liststyle.js +225 -225
  283. data/vendor/assets/ckeditor/ckeditor/_source/plugins/liststyle/plugin.js +66 -66
  284. data/vendor/assets/ckeditor/ckeditor/_source/plugins/maximize/plugin.js +353 -352
  285. data/vendor/assets/ckeditor/ckeditor/_source/plugins/menu/plugin.js +542 -541
  286. data/vendor/assets/ckeditor/ckeditor/_source/plugins/menubutton/plugin.js +98 -98
  287. data/vendor/assets/ckeditor/ckeditor/_source/plugins/newpage/plugin.js +55 -54
  288. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pagebreak/plugin.js +164 -164
  289. data/vendor/assets/ckeditor/ckeditor/_source/plugins/panel/plugin.js +396 -403
  290. data/vendor/assets/ckeditor/ckeditor/_source/plugins/panelbutton/plugin.js +144 -144
  291. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pastefromword/filter/default.js +1367 -1367
  292. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pastefromword/plugin.js +141 -141
  293. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pastetext/dialogs/pastetext.js +67 -67
  294. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pastetext/plugin.js +98 -98
  295. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/dialogs/placeholder.js +71 -71
  296. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/_translationstatus.txt +26 -0
  297. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/bg.js +16 -0
  298. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/cs.js +16 -0
  299. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/cy.js +16 -0
  300. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/da.js +16 -0
  301. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/de.js +16 -0
  302. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/el.js +16 -0
  303. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/en.js +16 -16
  304. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/eo.js +16 -0
  305. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/et.js +16 -0
  306. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/fa.js +16 -0
  307. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/fi.js +16 -0
  308. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/fr.js +16 -0
  309. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/he.js +16 -16
  310. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/hr.js +16 -0
  311. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/it.js +16 -0
  312. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/nb.js +16 -0
  313. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/nl.js +16 -0
  314. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/no.js +16 -0
  315. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/pl.js +16 -0
  316. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/tr.js +16 -0
  317. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/ug.js +16 -0
  318. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/uk.js +16 -0
  319. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/vi.js +16 -0
  320. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/zh-cn.js +16 -0
  321. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/plugin.js +171 -171
  322. data/vendor/assets/ckeditor/ckeditor/_source/plugins/popup/plugin.js +69 -64
  323. data/vendor/assets/ckeditor/ckeditor/_source/plugins/preview/plugin.js +113 -109
  324. data/vendor/assets/ckeditor/ckeditor/_source/plugins/print/plugin.js +42 -42
  325. data/vendor/assets/ckeditor/ckeditor/_source/plugins/removeformat/plugin.js +185 -185
  326. data/vendor/assets/ckeditor/ckeditor/_source/plugins/resize/plugin.js +169 -168
  327. data/vendor/assets/ckeditor/ckeditor/_source/plugins/richcombo/plugin.js +381 -381
  328. data/vendor/assets/ckeditor/ckeditor/_source/plugins/save/plugin.js +56 -56
  329. data/vendor/assets/ckeditor/ckeditor/_source/plugins/scayt/dialogs/options.js +537 -537
  330. data/vendor/assets/ckeditor/ckeditor/_source/plugins/scayt/dialogs/toolbar.css +71 -71
  331. data/vendor/assets/ckeditor/ckeditor/_source/plugins/scayt/plugin.js +973 -964
  332. data/vendor/assets/ckeditor/ckeditor/_source/plugins/selection/plugin.js +1855 -1601
  333. data/vendor/assets/ckeditor/ckeditor/_source/plugins/showblocks/plugin.js +160 -160
  334. data/vendor/assets/ckeditor/ckeditor/_source/plugins/showborders/plugin.js +207 -207
  335. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/dialogs/smiley.js +224 -224
  336. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/plugin.js +94 -94
  337. data/vendor/assets/ckeditor/ckeditor/_source/plugins/sourcearea/plugin.js +209 -209
  338. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/specialchar.js +350 -350
  339. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/_translationstatus.txt +19 -0
  340. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/cs.js +126 -0
  341. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/cy.js +126 -0
  342. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/de.js +126 -0
  343. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/en.js +126 -89
  344. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/eo.js +126 -0
  345. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/et.js +126 -0
  346. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/fa.js +126 -0
  347. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/fi.js +126 -0
  348. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/fr.js +126 -0
  349. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/hr.js +126 -0
  350. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/it.js +126 -0
  351. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/nb.js +126 -0
  352. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/nl.js +126 -0
  353. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/no.js +126 -0
  354. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/tr.js +126 -0
  355. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/ug.js +126 -0
  356. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/zh-cn.js +126 -0
  357. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/plugin.js +70 -70
  358. data/vendor/assets/ckeditor/ckeditor/_source/plugins/styles/plugin.js +1706 -1696
  359. data/vendor/assets/ckeditor/ckeditor/_source/plugins/styles/styles/default.js +88 -88
  360. data/vendor/assets/ckeditor/ckeditor/_source/plugins/stylescombo/plugin.js +218 -218
  361. data/vendor/assets/ckeditor/ckeditor/_source/plugins/stylesheetparser/plugin.js +148 -148
  362. data/vendor/assets/ckeditor/ckeditor/_source/plugins/tab/plugin.js +367 -367
  363. data/vendor/assets/ckeditor/ckeditor/_source/plugins/table/dialogs/table.js +618 -602
  364. data/vendor/assets/ckeditor/ckeditor/_source/plugins/table/plugin.js +78 -78
  365. data/vendor/assets/ckeditor/ckeditor/_source/plugins/tableresize/plugin.js +443 -443
  366. data/vendor/assets/ckeditor/ckeditor/_source/plugins/tabletools/dialogs/tableCell.js +520 -525
  367. data/vendor/assets/ckeditor/ckeditor/_source/plugins/tabletools/plugin.js +1185 -1194
  368. data/vendor/assets/ckeditor/ckeditor/_source/plugins/templates/dialogs/templates.js +234 -234
  369. data/vendor/assets/ckeditor/ckeditor/_source/plugins/templates/plugin.js +100 -99
  370. data/vendor/assets/ckeditor/ckeditor/_source/plugins/templates/templates/default.js +94 -94
  371. data/vendor/assets/ckeditor/ckeditor/_source/plugins/toolbar/plugin.js +545 -545
  372. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/dialogs/uicolor.js +205 -205
  373. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/_translationstatus.txt +27 -0
  374. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/bg.js +15 -0
  375. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/cs.js +15 -0
  376. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/cy.js +15 -0
  377. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/da.js +15 -0
  378. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/de.js +15 -0
  379. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/el.js +15 -0
  380. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/en.js +15 -15
  381. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/eo.js +15 -0
  382. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/et.js +15 -0
  383. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/fa.js +15 -0
  384. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/fi.js +15 -0
  385. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/fr.js +15 -0
  386. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/he.js +15 -15
  387. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/hr.js +15 -0
  388. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/it.js +15 -0
  389. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/mk.js +15 -0
  390. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/nb.js +15 -0
  391. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/nl.js +15 -0
  392. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/no.js +15 -0
  393. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/pl.js +15 -0
  394. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/tr.js +15 -0
  395. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/ug.js +15 -0
  396. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/uk.js +15 -0
  397. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/vi.js +15 -0
  398. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/zh-cn.js +15 -0
  399. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/plugin.js +37 -37
  400. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/yui/assets/yui.css +15 -15
  401. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/yui/yui.js +71 -71
  402. data/vendor/assets/ckeditor/ckeditor/_source/plugins/undo/plugin.js +593 -580
  403. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/dialogs/ciframe.html +49 -49
  404. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/dialogs/tmpFrameset.html +52 -52
  405. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/dialogs/wsc.css +82 -82
  406. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/dialogs/wsc.js +192 -192
  407. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/plugin.js +33 -33
  408. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wysiwygarea/plugin.js +1346 -1351
  409. data/vendor/assets/ckeditor/ckeditor/_source/plugins/xml/plugin.js +170 -170
  410. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/dialog.css +989 -943
  411. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/editor.css +25 -25
  412. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/elementspath.css +73 -73
  413. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/icons.css +366 -366
  414. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/mainui.css +206 -203
  415. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/menu.css +232 -232
  416. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/panel.css +217 -217
  417. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/presets.css +49 -49
  418. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/reset.css +85 -84
  419. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/richcombo.css +287 -287
  420. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/skin.js +236 -236
  421. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/templates.css +88 -88
  422. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/toolbar.css +408 -407
  423. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/dialog.css +891 -844
  424. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/editor.css +25 -25
  425. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/elementspath.css +74 -74
  426. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/icons.css +363 -363
  427. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/mainui.css +153 -153
  428. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/menu.css +229 -229
  429. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/panel.css +212 -212
  430. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/presets.css +49 -49
  431. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/reset.css +85 -84
  432. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/richcombo.css +309 -309
  433. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/skin.js +74 -74
  434. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/templates.css +87 -87
  435. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/toolbar.css +522 -522
  436. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/dialog.css +907 -861
  437. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/editor.css +25 -25
  438. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/elementspath.css +74 -74
  439. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/icons.css +363 -363
  440. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/mainui.css +162 -162
  441. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/menu.css +232 -232
  442. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/panel.css +212 -212
  443. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/presets.css +50 -50
  444. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/reset.css +85 -84
  445. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/richcombo.css +302 -302
  446. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/skin.js +70 -70
  447. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/templates.css +87 -87
  448. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/toolbar.css +465 -465
  449. data/vendor/assets/ckeditor/ckeditor/_source/themes/default/theme.js +407 -395
  450. data/vendor/assets/ckeditor/ckeditor/adapters/jquery.js +6 -6
  451. data/vendor/assets/ckeditor/ckeditor/ckeditor.asp +955 -955
  452. data/vendor/assets/ckeditor/ckeditor/ckeditor.js +134 -130
  453. data/vendor/assets/ckeditor/ckeditor/ckeditor.pack +211 -211
  454. data/vendor/assets/ckeditor/ckeditor/ckeditor.php +29 -29
  455. data/vendor/assets/ckeditor/ckeditor/ckeditor_basic.js +8 -8
  456. data/vendor/assets/ckeditor/ckeditor/ckeditor_basic_source.js +20 -20
  457. data/vendor/assets/ckeditor/ckeditor/ckeditor_php4.php +566 -566
  458. data/vendor/assets/ckeditor/ckeditor/ckeditor_php5.php +556 -556
  459. data/vendor/assets/ckeditor/ckeditor/ckeditor_source.js +14 -4
  460. data/vendor/assets/ckeditor/ckeditor/config.js +11 -11
  461. data/vendor/assets/ckeditor/ckeditor/contents.css +25 -25
  462. data/vendor/assets/ckeditor/ckeditor/lang/_languages.js +1 -1
  463. data/vendor/assets/ckeditor/ckeditor/lang/_translationstatus.txt +61 -59
  464. data/vendor/assets/ckeditor/ckeditor/lang/af.js +2 -2
  465. data/vendor/assets/ckeditor/ckeditor/lang/ar.js +2 -2
  466. data/vendor/assets/ckeditor/ckeditor/lang/bg.js +2 -2
  467. data/vendor/assets/ckeditor/ckeditor/lang/bn.js +2 -2
  468. data/vendor/assets/ckeditor/ckeditor/lang/bs.js +2 -2
  469. data/vendor/assets/ckeditor/ckeditor/lang/ca.js +2 -2
  470. data/vendor/assets/ckeditor/ckeditor/lang/cs.js +2 -2
  471. data/vendor/assets/ckeditor/ckeditor/lang/cy.js +2 -2
  472. data/vendor/assets/ckeditor/ckeditor/lang/da.js +2 -2
  473. data/vendor/assets/ckeditor/ckeditor/lang/de.js +2 -2
  474. data/vendor/assets/ckeditor/ckeditor/lang/el.js +2 -2
  475. data/vendor/assets/ckeditor/ckeditor/lang/en-au.js +2 -2
  476. data/vendor/assets/ckeditor/ckeditor/lang/en-ca.js +2 -2
  477. data/vendor/assets/ckeditor/ckeditor/lang/en-gb.js +2 -2
  478. data/vendor/assets/ckeditor/ckeditor/lang/en.js +2 -2
  479. data/vendor/assets/ckeditor/ckeditor/lang/eo.js +2 -2
  480. data/vendor/assets/ckeditor/ckeditor/lang/es.js +2 -2
  481. data/vendor/assets/ckeditor/ckeditor/lang/et.js +2 -2
  482. data/vendor/assets/ckeditor/ckeditor/lang/eu.js +2 -2
  483. data/vendor/assets/ckeditor/ckeditor/lang/fa.js +2 -2
  484. data/vendor/assets/ckeditor/ckeditor/lang/fi.js +2 -2
  485. data/vendor/assets/ckeditor/ckeditor/lang/fo.js +2 -2
  486. data/vendor/assets/ckeditor/ckeditor/lang/fr-ca.js +2 -2
  487. data/vendor/assets/ckeditor/ckeditor/lang/fr.js +2 -2
  488. data/vendor/assets/ckeditor/ckeditor/lang/gl.js +2 -2
  489. data/vendor/assets/ckeditor/ckeditor/lang/gu.js +2 -2
  490. data/vendor/assets/ckeditor/ckeditor/lang/he.js +2 -2
  491. data/vendor/assets/ckeditor/ckeditor/lang/hi.js +2 -2
  492. data/vendor/assets/ckeditor/ckeditor/lang/hr.js +2 -2
  493. data/vendor/assets/ckeditor/ckeditor/lang/hu.js +2 -2
  494. data/vendor/assets/ckeditor/ckeditor/lang/is.js +2 -2
  495. data/vendor/assets/ckeditor/ckeditor/lang/it.js +2 -2
  496. data/vendor/assets/ckeditor/ckeditor/lang/ja.js +2 -2
  497. data/vendor/assets/ckeditor/ckeditor/lang/ka.js +2 -2
  498. data/vendor/assets/ckeditor/ckeditor/lang/km.js +2 -2
  499. data/vendor/assets/ckeditor/ckeditor/lang/ko.js +2 -2
  500. data/vendor/assets/ckeditor/ckeditor/lang/lt.js +2 -2
  501. data/vendor/assets/ckeditor/ckeditor/lang/lv.js +2 -2
  502. data/vendor/assets/ckeditor/ckeditor/lang/mk.js +6 -0
  503. data/vendor/assets/ckeditor/ckeditor/lang/mn.js +2 -2
  504. data/vendor/assets/ckeditor/ckeditor/lang/ms.js +2 -2
  505. data/vendor/assets/ckeditor/ckeditor/lang/nb.js +2 -2
  506. data/vendor/assets/ckeditor/ckeditor/lang/nl.js +2 -2
  507. data/vendor/assets/ckeditor/ckeditor/lang/no.js +2 -2
  508. data/vendor/assets/ckeditor/ckeditor/lang/pl.js +2 -2
  509. data/vendor/assets/ckeditor/ckeditor/lang/pt-br.js +2 -2
  510. data/vendor/assets/ckeditor/ckeditor/lang/pt.js +2 -2
  511. data/vendor/assets/ckeditor/ckeditor/lang/ro.js +2 -2
  512. data/vendor/assets/ckeditor/ckeditor/lang/ru.js +2 -2
  513. data/vendor/assets/ckeditor/ckeditor/lang/sk.js +2 -2
  514. data/vendor/assets/ckeditor/ckeditor/lang/sl.js +2 -2
  515. data/vendor/assets/ckeditor/ckeditor/lang/sr-latn.js +2 -2
  516. data/vendor/assets/ckeditor/ckeditor/lang/sr.js +2 -2
  517. data/vendor/assets/ckeditor/ckeditor/lang/sv.js +2 -2
  518. data/vendor/assets/ckeditor/ckeditor/lang/th.js +2 -2
  519. data/vendor/assets/ckeditor/ckeditor/lang/tr.js +2 -2
  520. data/vendor/assets/ckeditor/ckeditor/lang/ug.js +6 -0
  521. data/vendor/assets/ckeditor/ckeditor/lang/uk.js +2 -2
  522. data/vendor/assets/ckeditor/ckeditor/lang/vi.js +2 -2
  523. data/vendor/assets/ckeditor/ckeditor/lang/zh-cn.js +2 -2
  524. data/vendor/assets/ckeditor/ckeditor/lang/zh.js +2 -2
  525. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +1 -1
  526. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/_translationstatus.txt +23 -0
  527. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/cs.js +6 -0
  528. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/cy.js +6 -0
  529. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/da.js +6 -0
  530. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/de.js +6 -0
  531. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/el.js +6 -0
  532. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/en.js +2 -2
  533. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/eo.js +6 -0
  534. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/fa.js +6 -0
  535. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/fi.js +6 -0
  536. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/fr.js +6 -0
  537. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/gu.js +6 -0
  538. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/he.js +2 -2
  539. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/it.js +6 -0
  540. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/mk.js +6 -0
  541. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/nb.js +6 -0
  542. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/nl.js +6 -0
  543. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/no.js +6 -0
  544. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/tr.js +6 -0
  545. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/ug.js +6 -0
  546. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/vi.js +6 -0
  547. data/vendor/assets/ckeditor/ckeditor/plugins/a11yhelp/lang/zh-cn.js +6 -0
  548. data/vendor/assets/ckeditor/ckeditor/plugins/about/dialogs/about.js +1 -1
  549. data/vendor/assets/ckeditor/ckeditor/plugins/adobeair/plugin.js +1 -1
  550. data/vendor/assets/ckeditor/ckeditor/plugins/ajax/plugin.js +1 -1
  551. data/vendor/assets/ckeditor/ckeditor/plugins/autogrow/plugin.js +2 -2
  552. data/vendor/assets/ckeditor/ckeditor/plugins/bbcode/plugin.js +1 -1
  553. data/vendor/assets/ckeditor/ckeditor/plugins/clipboard/dialogs/paste.js +2 -2
  554. data/vendor/assets/ckeditor/ckeditor/plugins/colordialog/dialogs/colordialog.js +3 -3
  555. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/_translationstatus.txt +27 -0
  556. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/bg.js +6 -0
  557. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/cs.js +6 -0
  558. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/cy.js +6 -0
  559. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/da.js +6 -0
  560. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/de.js +6 -0
  561. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/el.js +6 -0
  562. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/en.js +1 -1
  563. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/eo.js +6 -0
  564. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/et.js +6 -0
  565. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/fa.js +6 -0
  566. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/fi.js +6 -0
  567. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/fr.js +6 -0
  568. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/gu.js +6 -0
  569. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/he.js +6 -0
  570. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/hr.js +6 -0
  571. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/it.js +6 -0
  572. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/nb.js +6 -0
  573. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/nl.js +6 -0
  574. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/no.js +6 -0
  575. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/pl.js +6 -0
  576. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/tr.js +6 -0
  577. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/ug.js +6 -0
  578. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/uk.js +6 -0
  579. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/vi.js +6 -0
  580. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/lang/zh-cn.js +6 -0
  581. data/vendor/assets/ckeditor/ckeditor/plugins/devtools/plugin.js +2 -2
  582. data/vendor/assets/ckeditor/ckeditor/plugins/dialog/dialogDefinition.js +1 -1
  583. data/vendor/assets/ckeditor/ckeditor/plugins/div/dialogs/div.js +1 -1
  584. data/vendor/assets/ckeditor/ckeditor/plugins/docprops/dialogs/docprops.js +3 -3
  585. data/vendor/assets/ckeditor/ckeditor/plugins/docprops/plugin.js +1 -1
  586. data/vendor/assets/ckeditor/ckeditor/plugins/find/dialogs/find.js +6 -6
  587. data/vendor/assets/ckeditor/ckeditor/plugins/flash/dialogs/flash.js +2 -2
  588. data/vendor/assets/ckeditor/ckeditor/plugins/forms/dialogs/button.js +1 -1
  589. data/vendor/assets/ckeditor/ckeditor/plugins/forms/dialogs/checkbox.js +1 -1
  590. data/vendor/assets/ckeditor/ckeditor/plugins/forms/dialogs/form.js +1 -1
  591. data/vendor/assets/ckeditor/ckeditor/plugins/forms/dialogs/hiddenfield.js +1 -1
  592. data/vendor/assets/ckeditor/ckeditor/plugins/forms/dialogs/radio.js +1 -1
  593. data/vendor/assets/ckeditor/ckeditor/plugins/forms/dialogs/select.js +1 -1
  594. data/vendor/assets/ckeditor/ckeditor/plugins/forms/dialogs/textarea.js +2 -2
  595. data/vendor/assets/ckeditor/ckeditor/plugins/forms/dialogs/textfield.js +1 -1
  596. data/vendor/assets/ckeditor/ckeditor/plugins/iframe/dialogs/iframe.js +1 -1
  597. data/vendor/assets/ckeditor/ckeditor/plugins/iframedialog/plugin.js +1 -1
  598. data/vendor/assets/ckeditor/ckeditor/plugins/image/dialogs/image.js +9 -9
  599. data/vendor/assets/ckeditor/ckeditor/plugins/link/dialogs/anchor.js +1 -1
  600. data/vendor/assets/ckeditor/ckeditor/plugins/link/dialogs/link.js +6 -6
  601. data/vendor/assets/ckeditor/ckeditor/plugins/liststyle/dialogs/liststyle.js +1 -1
  602. data/vendor/assets/ckeditor/ckeditor/plugins/pastefromword/filter/default.js +1 -1
  603. data/vendor/assets/ckeditor/ckeditor/plugins/pastetext/dialogs/pastetext.js +1 -1
  604. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/dialogs/placeholder.js +1 -1
  605. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/_translationstatus.txt +26 -0
  606. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/bg.js +6 -0
  607. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/cs.js +6 -0
  608. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/cy.js +6 -0
  609. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/da.js +6 -0
  610. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/de.js +6 -0
  611. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/el.js +6 -0
  612. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/en.js +1 -1
  613. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/eo.js +6 -0
  614. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/et.js +6 -0
  615. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/fa.js +6 -0
  616. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/fi.js +6 -0
  617. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/fr.js +6 -0
  618. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/he.js +1 -1
  619. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/hr.js +6 -0
  620. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/it.js +6 -0
  621. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/nb.js +6 -0
  622. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/nl.js +6 -0
  623. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/no.js +6 -0
  624. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/pl.js +6 -0
  625. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/tr.js +6 -0
  626. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/ug.js +6 -0
  627. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/uk.js +6 -0
  628. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/vi.js +6 -0
  629. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/lang/zh-cn.js +6 -0
  630. data/vendor/assets/ckeditor/ckeditor/plugins/placeholder/plugin.js +2 -2
  631. data/vendor/assets/ckeditor/ckeditor/plugins/scayt/dialogs/options.js +1 -1
  632. data/vendor/assets/ckeditor/ckeditor/plugins/scayt/dialogs/toolbar.css +1 -1
  633. data/vendor/assets/ckeditor/ckeditor/plugins/smiley/dialogs/smiley.js +1 -1
  634. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/dialogs/specialchar.js +2 -2
  635. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/_translationstatus.txt +19 -0
  636. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/cs.js +6 -0
  637. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/cy.js +6 -0
  638. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/de.js +6 -0
  639. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/en.js +2 -2
  640. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/eo.js +6 -0
  641. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/et.js +6 -0
  642. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/fa.js +6 -0
  643. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/fi.js +6 -0
  644. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/fr.js +6 -0
  645. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/hr.js +6 -0
  646. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/it.js +6 -0
  647. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/nb.js +6 -0
  648. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/nl.js +6 -0
  649. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/no.js +6 -0
  650. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/tr.js +6 -0
  651. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/ug.js +6 -0
  652. data/vendor/assets/ckeditor/ckeditor/plugins/specialchar/lang/zh-cn.js +6 -0
  653. data/vendor/assets/ckeditor/ckeditor/plugins/styles/styles/default.js +1 -1
  654. data/vendor/assets/ckeditor/ckeditor/plugins/stylesheetparser/plugin.js +1 -1
  655. data/vendor/assets/ckeditor/ckeditor/plugins/table/dialogs/table.js +5 -5
  656. data/vendor/assets/ckeditor/ckeditor/plugins/tableresize/plugin.js +1 -1
  657. data/vendor/assets/ckeditor/ckeditor/plugins/tabletools/dialogs/tableCell.js +3 -3
  658. data/vendor/assets/ckeditor/ckeditor/plugins/templates/dialogs/templates.js +1 -1
  659. data/vendor/assets/ckeditor/ckeditor/plugins/templates/templates/default.js +1 -1
  660. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/dialogs/uicolor.js +1 -1
  661. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/_translationstatus.txt +27 -0
  662. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/bg.js +6 -0
  663. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/cs.js +6 -0
  664. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/cy.js +6 -0
  665. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/da.js +6 -0
  666. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/de.js +6 -0
  667. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/el.js +6 -0
  668. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/en.js +1 -1
  669. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/eo.js +6 -0
  670. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/et.js +6 -0
  671. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/fa.js +6 -0
  672. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/fi.js +6 -0
  673. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/fr.js +6 -0
  674. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/he.js +1 -1
  675. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/hr.js +6 -0
  676. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/it.js +6 -0
  677. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/mk.js +6 -0
  678. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/nb.js +6 -0
  679. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/nl.js +6 -0
  680. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/no.js +6 -0
  681. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/pl.js +6 -0
  682. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/tr.js +6 -0
  683. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/ug.js +6 -0
  684. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/uk.js +6 -0
  685. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/vi.js +6 -0
  686. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/lang/zh-cn.js +6 -0
  687. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/plugin.js +2 -2
  688. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/yui/assets/yui.css +1 -1
  689. data/vendor/assets/ckeditor/ckeditor/plugins/uicolor/yui/yui.js +1 -1
  690. data/vendor/assets/ckeditor/ckeditor/plugins/wsc/dialogs/ciframe.html +1 -1
  691. data/vendor/assets/ckeditor/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +1 -1
  692. data/vendor/assets/ckeditor/ckeditor/plugins/wsc/dialogs/wsc.css +1 -1
  693. data/vendor/assets/ckeditor/ckeditor/plugins/wsc/dialogs/wsc.js +2 -2
  694. data/vendor/assets/ckeditor/ckeditor/plugins/xml/plugin.js +1 -1
  695. data/vendor/assets/ckeditor/ckeditor/skins/kama/dialog.css +2 -2
  696. data/vendor/assets/ckeditor/ckeditor/skins/kama/editor.css +4 -4
  697. data/vendor/assets/ckeditor/ckeditor/skins/kama/skin.js +1 -1
  698. data/vendor/assets/ckeditor/ckeditor/skins/kama/templates.css +1 -1
  699. data/vendor/assets/ckeditor/ckeditor/skins/office2003/dialog.css +2 -2
  700. data/vendor/assets/ckeditor/ckeditor/skins/office2003/editor.css +2 -2
  701. data/vendor/assets/ckeditor/ckeditor/skins/office2003/skin.js +1 -1
  702. data/vendor/assets/ckeditor/ckeditor/skins/office2003/templates.css +1 -1
  703. data/vendor/assets/ckeditor/ckeditor/skins/v2/dialog.css +2 -2
  704. data/vendor/assets/ckeditor/ckeditor/skins/v2/editor.css +2 -2
  705. data/vendor/assets/ckeditor/ckeditor/skins/v2/skin.js +1 -1
  706. data/vendor/assets/ckeditor/ckeditor/skins/v2/templates.css +1 -1
  707. data/vendor/assets/ckeditor/ckeditor/themes/default/theme.js +8 -8
  708. metadata +225 -3
@@ -1,223 +1,223 @@
1
- /*
2
- Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
3
- For licensing, see LICENSE.html or http://ckeditor.com/license
4
- */
5
-
6
- CKEDITOR.dialog.add( 'paste', function( editor )
7
- {
8
- var lang = editor.lang.clipboard;
9
- var isCustomDomain = CKEDITOR.env.isCustomDomain();
10
-
11
- function onPasteFrameLoad( win )
12
- {
13
- var doc = new CKEDITOR.dom.document( win.document ),
14
- docElement = doc.$;
15
-
16
- var script = doc.getById( 'cke_actscrpt' );
17
- script && script.remove();
18
-
19
- CKEDITOR.env.ie ?
20
- docElement.body.contentEditable = "true" :
21
- docElement.designMode = "on";
22
-
23
- // IE before version 8 will leave cursor blinking inside the document after
24
- // editor blurred unless we clean up the selection. (#4716)
25
- if ( CKEDITOR.env.ie && CKEDITOR.env.version < 8 )
26
- {
27
- doc.getWindow().on( 'blur', function()
28
- {
29
- docElement.selection.empty();
30
- } );
31
- }
32
-
33
- doc.on( "keydown", function( e )
34
- {
35
- var domEvent = e.data,
36
- key = domEvent.getKeystroke(),
37
- processed;
38
-
39
- switch( key )
40
- {
41
- case 27 :
42
- this.hide();
43
- processed = 1;
44
- break;
45
-
46
- case 9 :
47
- case CKEDITOR.SHIFT + 9 :
48
- this.changeFocus( true );
49
- processed = 1;
50
- }
51
-
52
- processed && domEvent.preventDefault();
53
- }, this );
54
-
55
- editor.fire( 'ariaWidget', new CKEDITOR.dom.element( win.frameElement ) );
56
- }
57
-
58
- return {
59
- title : lang.title,
60
-
61
- minWidth : CKEDITOR.env.ie && CKEDITOR.env.quirks ? 370 : 350,
62
- minHeight : CKEDITOR.env.quirks ? 250 : 245,
63
- onShow : function()
64
- {
65
- // FIREFOX BUG: Force the browser to render the dialog to make the to-be-
66
- // inserted iframe editable. (#3366)
67
- this.parts.dialog.$.offsetHeight;
68
-
69
- this.setupContent();
70
- },
71
-
72
- onHide : function()
73
- {
74
- if ( CKEDITOR.env.ie )
75
- this.getParentEditor().document.getBody().$.contentEditable = 'true';
76
- },
77
-
78
- onLoad : function()
79
- {
80
- if ( ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) && editor.lang.dir == 'rtl' )
81
- this.parts.contents.setStyle( 'overflow', 'hidden' );
82
- },
83
-
84
- onOk : function()
85
- {
86
- this.commitContent();
87
- },
88
-
89
- contents : [
90
- {
91
- id : 'general',
92
- label : editor.lang.common.generalTab,
93
- elements : [
94
- {
95
- type : 'html',
96
- id : 'securityMsg',
97
- html : '<div style="white-space:normal;width:340px;">' + lang.securityMsg + '</div>'
98
- },
99
- {
100
- type : 'html',
101
- id : 'pasteMsg',
102
- html : '<div style="white-space:normal;width:340px;">'+lang.pasteMsg +'</div>'
103
- },
104
- {
105
- type : 'html',
106
- id : 'editing_area',
107
- style : 'width: 100%; height: 100%;',
108
- html : '',
109
- focus : function()
110
- {
111
- var win = this.getInputElement().$.contentWindow;
112
-
113
- // #3291 : JAWS needs the 500ms delay to detect that the editor iframe
114
- // iframe is no longer editable. So that it will put the focus into the
115
- // Paste from Word dialog's editable area instead.
116
- setTimeout( function()
117
- {
118
- win.focus();
119
- }, 500 );
120
- },
121
- setup : function()
122
- {
123
- var dialog = this.getDialog();
124
- var htmlToLoad =
125
- '<html dir="' + editor.config.contentsLangDirection + '"' +
126
- ' lang="' + ( editor.config.contentsLanguage || editor.langCode ) + '">' +
127
- '<head><style>body { margin: 3px; height: 95%; } </style></head><body>' +
128
- '<script id="cke_actscrpt" type="text/javascript">' +
129
- 'window.parent.CKEDITOR.tools.callFunction( ' + CKEDITOR.tools.addFunction( onPasteFrameLoad, dialog ) + ', this );' +
130
- '</script></body>' +
131
- '</html>';
132
-
133
- var src =
134
- CKEDITOR.env.air ?
135
- 'javascript:void(0)' :
136
- isCustomDomain ?
137
- 'javascript:void((function(){' +
138
- 'document.open();' +
139
- 'document.domain=\'' + document.domain + '\';' +
140
- 'document.close();' +
141
- '})())"'
142
- :
143
- '';
144
-
145
- var iframe = CKEDITOR.dom.element.createFromHtml(
146
- '<iframe' +
147
- ' class="cke_pasteframe"' +
148
- ' frameborder="0" ' +
149
- ' allowTransparency="true"' +
150
- ' src="' + src + '"' +
151
- ' role="region"' +
152
- ' aria-label="' + lang.pasteArea + '"' +
153
- ' aria-describedby="' + dialog.getContentElement( 'general', 'pasteMsg' ).domId + '"' +
154
- ' aria-multiple="true"' +
155
- '></iframe>' );
156
-
157
- iframe.on( 'load', function( e )
158
- {
159
- e.removeListener();
160
-
161
- var doc = iframe.getFrameDocument();
162
- doc.write( htmlToLoad );
163
-
164
- if ( CKEDITOR.env.air )
165
- onPasteFrameLoad.call( this, doc.getWindow().$ );
166
- }, dialog );
167
-
168
- iframe.setCustomData( 'dialog', dialog );
169
-
170
- var container = this.getElement();
171
- container.setHtml( '' );
172
- container.append( iframe );
173
-
174
- // IE need a redirect on focus to make
175
- // the cursor blinking inside iframe. (#5461)
176
- if ( CKEDITOR.env.ie )
177
- {
178
- var focusGrabber = CKEDITOR.dom.element.createFromHtml( '<span tabindex="-1" style="position:absolute;" role="presentation"></span>' );
179
- focusGrabber.on( 'focus', function()
180
- {
181
- iframe.$.contentWindow.focus();
182
- });
183
- container.append( focusGrabber );
184
-
185
- // Override focus handler on field.
186
- this.focus = function()
187
- {
188
- focusGrabber.focus();
189
- this.fire( 'focus' );
190
- };
191
- }
192
-
193
- this.getInputElement = function(){ return iframe; };
194
-
195
- // Force container to scale in IE.
196
- if ( CKEDITOR.env.ie )
197
- {
198
- container.setStyle( 'display', 'block' );
199
- container.setStyle( 'height', ( iframe.$.offsetHeight + 2 ) + 'px' );
200
- }
201
- },
202
- commit : function( data )
203
- {
204
- var container = this.getElement(),
205
- editor = this.getDialog().getParentEditor(),
206
- body = this.getInputElement().getFrameDocument().getBody(),
207
- bogus = body.getBogus(),
208
- html;
209
- bogus && bogus.remove();
210
-
211
- // Saving the contents so changes until paste is complete will not take place (#7500)
212
- html = body.getHtml();
213
-
214
- setTimeout( function(){
215
- editor.fire( 'paste', { 'html' : html } );
216
- }, 0 );
217
- }
218
- }
219
- ]
220
- }
221
- ]
222
- };
223
- });
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
+ CKEDITOR.dialog.add( 'paste', function( editor )
7
+ {
8
+ var lang = editor.lang.clipboard;
9
+ var isCustomDomain = CKEDITOR.env.isCustomDomain();
10
+
11
+ function onPasteFrameLoad( win )
12
+ {
13
+ var doc = new CKEDITOR.dom.document( win.document ),
14
+ docElement = doc.$;
15
+
16
+ var script = doc.getById( 'cke_actscrpt' );
17
+ script && script.remove();
18
+
19
+ CKEDITOR.env.ie ?
20
+ docElement.body.contentEditable = "true" :
21
+ docElement.designMode = "on";
22
+
23
+ // IE before version 8 will leave cursor blinking inside the document after
24
+ // editor blurred unless we clean up the selection. (#4716)
25
+ if ( CKEDITOR.env.ie && CKEDITOR.env.version < 8 )
26
+ {
27
+ doc.getWindow().on( 'blur', function()
28
+ {
29
+ docElement.selection.empty();
30
+ } );
31
+ }
32
+
33
+ doc.on( "keydown", function( e )
34
+ {
35
+ var domEvent = e.data,
36
+ key = domEvent.getKeystroke(),
37
+ processed;
38
+
39
+ switch( key )
40
+ {
41
+ case 27 :
42
+ this.hide();
43
+ processed = 1;
44
+ break;
45
+
46
+ case 9 :
47
+ case CKEDITOR.SHIFT + 9 :
48
+ this.changeFocus( 1 );
49
+ processed = 1;
50
+ }
51
+
52
+ processed && domEvent.preventDefault();
53
+ }, this );
54
+
55
+ editor.fire( 'ariaWidget', new CKEDITOR.dom.element( win.frameElement ) );
56
+ }
57
+
58
+ return {
59
+ title : lang.title,
60
+
61
+ minWidth : CKEDITOR.env.ie && CKEDITOR.env.quirks ? 370 : 350,
62
+ minHeight : CKEDITOR.env.quirks ? 250 : 245,
63
+ onShow : function()
64
+ {
65
+ // FIREFOX BUG: Force the browser to render the dialog to make the to-be-
66
+ // inserted iframe editable. (#3366)
67
+ this.parts.dialog.$.offsetHeight;
68
+
69
+ this.setupContent();
70
+ },
71
+
72
+ onHide : function()
73
+ {
74
+ if ( CKEDITOR.env.ie )
75
+ this.getParentEditor().document.getBody().$.contentEditable = 'true';
76
+ },
77
+
78
+ onLoad : function()
79
+ {
80
+ if ( ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) && editor.lang.dir == 'rtl' )
81
+ this.parts.contents.setStyle( 'overflow', 'hidden' );
82
+ },
83
+
84
+ onOk : function()
85
+ {
86
+ this.commitContent();
87
+ },
88
+
89
+ contents : [
90
+ {
91
+ id : 'general',
92
+ label : editor.lang.common.generalTab,
93
+ elements : [
94
+ {
95
+ type : 'html',
96
+ id : 'securityMsg',
97
+ html : '<div style="white-space:normal;width:340px;">' + lang.securityMsg + '</div>'
98
+ },
99
+ {
100
+ type : 'html',
101
+ id : 'pasteMsg',
102
+ html : '<div style="white-space:normal;width:340px;">'+lang.pasteMsg +'</div>'
103
+ },
104
+ {
105
+ type : 'html',
106
+ id : 'editing_area',
107
+ style : 'width: 100%; height: 100%;',
108
+ html : '',
109
+ focus : function()
110
+ {
111
+ var win = this.getInputElement().$.contentWindow;
112
+
113
+ // #3291 : JAWS needs the 500ms delay to detect that the editor iframe
114
+ // iframe is no longer editable. So that it will put the focus into the
115
+ // Paste from Word dialog's editable area instead.
116
+ setTimeout( function()
117
+ {
118
+ win.focus();
119
+ }, 500 );
120
+ },
121
+ setup : function()
122
+ {
123
+ var dialog = this.getDialog();
124
+ var htmlToLoad =
125
+ '<html dir="' + editor.config.contentsLangDirection + '"' +
126
+ ' lang="' + ( editor.config.contentsLanguage || editor.langCode ) + '">' +
127
+ '<head><style>body { margin: 3px; height: 95%; } </style></head><body>' +
128
+ '<script id="cke_actscrpt" type="text/javascript">' +
129
+ 'window.parent.CKEDITOR.tools.callFunction( ' + CKEDITOR.tools.addFunction( onPasteFrameLoad, dialog ) + ', this );' +
130
+ '</script></body>' +
131
+ '</html>';
132
+
133
+ var src =
134
+ CKEDITOR.env.air ?
135
+ 'javascript:void(0)' :
136
+ isCustomDomain ?
137
+ 'javascript:void((function(){' +
138
+ 'document.open();' +
139
+ 'document.domain=\'' + document.domain + '\';' +
140
+ 'document.close();' +
141
+ '})())"'
142
+ :
143
+ '';
144
+
145
+ var iframe = CKEDITOR.dom.element.createFromHtml(
146
+ '<iframe' +
147
+ ' class="cke_pasteframe"' +
148
+ ' frameborder="0" ' +
149
+ ' allowTransparency="true"' +
150
+ ' src="' + src + '"' +
151
+ ' role="region"' +
152
+ ' aria-label="' + lang.pasteArea + '"' +
153
+ ' aria-describedby="' + dialog.getContentElement( 'general', 'pasteMsg' ).domId + '"' +
154
+ ' aria-multiple="true"' +
155
+ '></iframe>' );
156
+
157
+ iframe.on( 'load', function( e )
158
+ {
159
+ e.removeListener();
160
+
161
+ var doc = iframe.getFrameDocument();
162
+ doc.write( htmlToLoad );
163
+
164
+ if ( CKEDITOR.env.air )
165
+ onPasteFrameLoad.call( this, doc.getWindow().$ );
166
+ }, dialog );
167
+
168
+ iframe.setCustomData( 'dialog', dialog );
169
+
170
+ var container = this.getElement();
171
+ container.setHtml( '' );
172
+ container.append( iframe );
173
+
174
+ // IE need a redirect on focus to make
175
+ // the cursor blinking inside iframe. (#5461)
176
+ if ( CKEDITOR.env.ie )
177
+ {
178
+ var focusGrabber = CKEDITOR.dom.element.createFromHtml( '<span tabindex="-1" style="position:absolute;" role="presentation"></span>' );
179
+ focusGrabber.on( 'focus', function()
180
+ {
181
+ iframe.$.contentWindow.focus();
182
+ });
183
+ container.append( focusGrabber );
184
+
185
+ // Override focus handler on field.
186
+ this.focus = function()
187
+ {
188
+ focusGrabber.focus();
189
+ this.fire( 'focus' );
190
+ };
191
+ }
192
+
193
+ this.getInputElement = function(){ return iframe; };
194
+
195
+ // Force container to scale in IE.
196
+ if ( CKEDITOR.env.ie )
197
+ {
198
+ container.setStyle( 'display', 'block' );
199
+ container.setStyle( 'height', ( iframe.$.offsetHeight + 2 ) + 'px' );
200
+ }
201
+ },
202
+ commit : function( data )
203
+ {
204
+ var container = this.getElement(),
205
+ editor = this.getDialog().getParentEditor(),
206
+ body = this.getInputElement().getFrameDocument().getBody(),
207
+ bogus = body.getBogus(),
208
+ html;
209
+ bogus && bogus.remove();
210
+
211
+ // Saving the contents so changes until paste is complete will not take place (#7500)
212
+ html = body.getHtml();
213
+
214
+ setTimeout( function(){
215
+ editor.fire( 'paste', { 'html' : html } );
216
+ }, 0 );
217
+ }
218
+ }
219
+ ]
220
+ }
221
+ ]
222
+ };
223
+ });
@@ -1,453 +1,479 @@
1
- /*
2
- Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
3
- For licensing, see LICENSE.html or http://ckeditor.com/license
4
- */
5
-
6
- /**
7
- * @file Clipboard support
8
- */
9
-
10
- (function()
11
- {
12
- // Tries to execute any of the paste, cut or copy commands in IE. Returns a
13
- // boolean indicating that the operation succeeded.
14
- var execIECommand = function( editor, command )
15
- {
16
- var doc = editor.document,
17
- body = doc.getBody();
18
-
19
- var enabled = 0;
20
- var onExec = function()
21
- {
22
- enabled = 1;
23
- };
24
-
25
- // The following seems to be the only reliable way to detect that
26
- // clipboard commands are enabled in IE. It will fire the
27
- // onpaste/oncut/oncopy events only if the security settings allowed
28
- // the command to execute.
29
- body.on( command, onExec );
30
-
31
- // IE6/7: document.execCommand has problem to paste into positioned element.
32
- ( CKEDITOR.env.version > 7 ? doc.$ : doc.$.selection.createRange() ) [ 'execCommand' ]( command );
33
-
34
- body.removeListener( command, onExec );
35
-
36
- return enabled;
37
- };
38
-
39
- // Attempts to execute the Cut and Copy operations.
40
- var tryToCutCopy =
41
- CKEDITOR.env.ie ?
42
- function( editor, type )
43
- {
44
- return execIECommand( editor, type );
45
- }
46
- : // !IE.
47
- function( editor, type )
48
- {
49
- try
50
- {
51
- // Other browsers throw an error if the command is disabled.
52
- return editor.document.$.execCommand( type, false, null );
53
- }
54
- catch( e )
55
- {
56
- return false;
57
- }
58
- };
59
-
60
- // A class that represents one of the cut or copy commands.
61
- var cutCopyCmd = function( type )
62
- {
63
- this.type = type;
64
- this.canUndo = this.type == 'cut'; // We can't undo copy to clipboard.
65
- this.startDisabled = true;
66
- };
67
-
68
- cutCopyCmd.prototype =
69
- {
70
- exec : function( editor, data )
71
- {
72
- this.type == 'cut' && fixCut( editor );
73
-
74
- var success = tryToCutCopy( editor, this.type );
75
-
76
- if ( !success )
77
- alert( editor.lang.clipboard[ this.type + 'Error' ] ); // Show cutError or copyError.
78
-
79
- return success;
80
- }
81
- };
82
-
83
- // Paste command.
84
- var pasteCmd =
85
- {
86
- canUndo : false,
87
-
88
- exec :
89
- CKEDITOR.env.ie ?
90
- function( editor )
91
- {
92
- // Prevent IE from pasting at the begining of the document.
93
- editor.focus();
94
-
95
- if ( !editor.document.getBody().fire( 'beforepaste' )
96
- && !execIECommand( editor, 'paste' ) )
97
- {
98
- editor.fire( 'pasteDialog' );
99
- return false;
100
- }
101
- }
102
- :
103
- function( editor )
104
- {
105
- try
106
- {
107
- if ( !editor.document.getBody().fire( 'beforepaste' )
108
- && !editor.document.$.execCommand( 'Paste', false, null ) )
109
- {
110
- throw 0;
111
- }
112
- }
113
- catch ( e )
114
- {
115
- setTimeout( function()
116
- {
117
- editor.fire( 'pasteDialog' );
118
- }, 0 );
119
- return false;
120
- }
121
- }
122
- };
123
-
124
- // Listens for some clipboard related keystrokes, so they get customized.
125
- var onKey = function( event )
126
- {
127
- if ( this.mode != 'wysiwyg' )
128
- return;
129
-
130
- switch ( event.data.keyCode )
131
- {
132
- // Paste
133
- case CKEDITOR.CTRL + 86 : // CTRL+V
134
- case CKEDITOR.SHIFT + 45 : // SHIFT+INS
135
-
136
- var body = this.document.getBody();
137
-
138
- // Simulate 'beforepaste' event for all none-IEs.
139
- if ( !CKEDITOR.env.ie && body.fire( 'beforepaste' ) )
140
- event.cancel();
141
- // Simulate 'paste' event for Opera/Firefox2.
142
- else if ( CKEDITOR.env.opera
143
- || CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 )
144
- body.fire( 'paste' );
145
- return;
146
-
147
- // Cut
148
- case CKEDITOR.CTRL + 88 : // CTRL+X
149
- case CKEDITOR.SHIFT + 46 : // SHIFT+DEL
150
-
151
- // Save Undo snapshot.
152
- var editor = this;
153
- this.fire( 'saveSnapshot' ); // Save before paste
154
- setTimeout( function()
155
- {
156
- editor.fire( 'saveSnapshot' ); // Save after paste
157
- }, 0 );
158
- }
159
- };
160
-
161
- function cancel( evt ) { evt.cancel(); }
162
-
163
- // Allow to peek clipboard content by redirecting the
164
- // pasting content into a temporary bin and grab the content of it.
165
- function getClipboardData( evt, mode, callback )
166
- {
167
- var doc = this.document;
168
-
169
- // Avoid recursions on 'paste' event or consequent paste too fast. (#5730)
170
- if ( doc.getById( 'cke_pastebin' ) )
171
- return;
172
-
173
- // If the browser supports it, get the data directly
174
- if ( mode == 'text' && evt.data && evt.data.$.clipboardData )
175
- {
176
- // evt.data.$.clipboardData.types contains all the flavours in Mac's Safari, but not on windows.
177
- var plain = evt.data.$.clipboardData.getData( 'text/plain' );
178
- if ( plain )
179
- {
180
- evt.data.preventDefault();
181
- callback( plain );
182
- return;
183
- }
184
- }
185
-
186
- var sel = this.getSelection(),
187
- range = new CKEDITOR.dom.range( doc );
188
-
189
- // Create container to paste into
190
- var pastebin = new CKEDITOR.dom.element( mode == 'text' ? 'textarea' : CKEDITOR.env.webkit ? 'body' : 'div', doc );
191
- pastebin.setAttribute( 'id', 'cke_pastebin' );
192
- // Safari requires a filler node inside the div to have the content pasted into it. (#4882)
193
- CKEDITOR.env.webkit && pastebin.append( doc.createText( '\xa0' ) );
194
- doc.getBody().append( pastebin );
195
-
196
- pastebin.setStyles(
197
- {
198
- position : 'absolute',
199
- // Position the bin exactly at the position of the selected element
200
- // to avoid any subsequent document scroll.
201
- top : sel.getStartElement().getDocumentPosition().y + 'px',
202
- width : '1px',
203
- height : '1px',
204
- overflow : 'hidden'
205
- });
206
-
207
- // It's definitely a better user experience if we make the paste-bin pretty unnoticed
208
- // by pulling it off the screen.
209
- pastebin.setStyle( this.config.contentsLangDirection == 'ltr' ? 'left' : 'right', '-1000px' );
210
-
211
- var bms = sel.createBookmarks();
212
-
213
- this.on( 'selectionChange', cancel, null, null, 0 );
214
-
215
- // Turn off design mode temporarily before give focus to the paste bin.
216
- if ( mode == 'text' )
217
- pastebin.$.focus();
218
- else
219
- {
220
- range.setStartAt( pastebin, CKEDITOR.POSITION_AFTER_START );
221
- range.setEndAt( pastebin, CKEDITOR.POSITION_BEFORE_END );
222
- range.select( true );
223
- }
224
-
225
- var editor = this;
226
- // Wait a while and grab the pasted contents
227
- window.setTimeout( function()
228
- {
229
- mode == 'text' && CKEDITOR.env.gecko && editor.focusGrabber.focus();
230
- pastebin.remove();
231
- editor.removeListener( 'selectionChange', cancel );
232
-
233
- // Grab the HTML contents.
234
- // We need to look for a apple style wrapper on webkit it also adds
235
- // a div wrapper if you copy/paste the body of the editor.
236
- // Remove hidden div and restore selection.
237
- var bogusSpan;
238
- pastebin = ( CKEDITOR.env.webkit
239
- && ( bogusSpan = pastebin.getFirst() )
240
- && ( bogusSpan.is && bogusSpan.hasClass( 'Apple-style-span' ) ) ?
241
- bogusSpan : pastebin );
242
-
243
- sel.selectBookmarks( bms );
244
- callback( pastebin[ 'get' + ( mode == 'text' ? 'Value' : 'Html' ) ]() );
245
- }, 0 );
246
- }
247
-
248
- // Cutting off control type element in IE standards breaks the selection entirely. (#4881)
249
- function fixCut( editor )
250
- {
251
- if ( !CKEDITOR.env.ie || CKEDITOR.env.quirks )
252
- return;
253
-
254
- var sel = editor.getSelection();
255
- var control;
256
- if( ( sel.getType() == CKEDITOR.SELECTION_ELEMENT ) && ( control = sel.getSelectedElement() ) )
257
- {
258
- var range = sel.getRanges()[ 0 ];
259
- var dummy = editor.document.createText( '' );
260
- dummy.insertBefore( control );
261
- range.setStartBefore( dummy );
262
- range.setEndAfter( control );
263
- sel.selectRanges( [ range ] );
264
-
265
- // Clear up the fix if the paste wasn't succeeded.
266
- setTimeout( function()
267
- {
268
- // Element still online?
269
- if ( control.getParent() )
270
- {
271
- dummy.remove();
272
- sel.selectElement( control );
273
- }
274
- }, 0 );
275
- }
276
- }
277
-
278
- var depressBeforeEvent;
279
- function stateFromNamedCommand( command, editor )
280
- {
281
- // IE Bug: queryCommandEnabled('paste') fires also 'beforepaste(copy/cut)',
282
- // guard to distinguish from the ordinary sources( either
283
- // keyboard paste or execCommand ) (#4874).
284
- CKEDITOR.env.ie && ( depressBeforeEvent = 1 );
285
-
286
- var retval = CKEDITOR.TRISTATE_OFF;
287
- try { retval = editor.document.$.queryCommandEnabled( command ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED; }catch( er ){}
288
-
289
- depressBeforeEvent = 0;
290
- return retval;
291
- }
292
-
293
- var inReadOnly;
294
- function setToolbarStates()
295
- {
296
- if ( this.mode != 'wysiwyg' )
297
- return;
298
-
299
- this.getCommand( 'cut' ).setState( inReadOnly ? CKEDITOR.TRISTATE_DISABLED : stateFromNamedCommand( 'Cut', this ) );
300
- this.getCommand( 'copy' ).setState( stateFromNamedCommand( 'Copy', this ) );
301
- var pasteState = inReadOnly ? CKEDITOR.TRISTATE_DISABLED :
302
- CKEDITOR.env.webkit ? CKEDITOR.TRISTATE_OFF : stateFromNamedCommand( 'Paste', this );
303
- this.fire( 'pasteState', pasteState );
304
- }
305
-
306
- // Register the plugin.
307
- CKEDITOR.plugins.add( 'clipboard',
308
- {
309
- requires : [ 'dialog', 'htmldataprocessor' ],
310
- init : function( editor )
311
- {
312
- // Inserts processed data into the editor at the end of the
313
- // events chain.
314
- editor.on( 'paste', function( evt )
315
- {
316
- var data = evt.data;
317
- if ( data[ 'html' ] )
318
- editor.insertHtml( data[ 'html' ] );
319
- else if ( data[ 'text' ] )
320
- editor.insertText( data[ 'text' ] );
321
-
322
- setTimeout( function () { editor.fire( 'afterPaste' ); }, 0 );
323
-
324
- }, null, null, 1000 );
325
-
326
- editor.on( 'pasteDialog', function( evt )
327
- {
328
- setTimeout( function()
329
- {
330
- // Open default paste dialog.
331
- editor.openDialog( 'paste' );
332
- }, 0 );
333
- });
334
-
335
- editor.on( 'pasteState', function( evt )
336
- {
337
- editor.getCommand( 'paste' ).setState( evt.data );
338
- });
339
-
340
- function addButtonCommand( buttonName, commandName, command, ctxMenuOrder )
341
- {
342
- var lang = editor.lang[ commandName ];
343
-
344
- editor.addCommand( commandName, command );
345
- editor.ui.addButton( buttonName,
346
- {
347
- label : lang,
348
- command : commandName
349
- });
350
-
351
- // If the "menu" plugin is loaded, register the menu item.
352
- if ( editor.addMenuItems )
353
- {
354
- editor.addMenuItem( commandName,
355
- {
356
- label : lang,
357
- command : commandName,
358
- group : 'clipboard',
359
- order : ctxMenuOrder
360
- });
361
- }
362
- }
363
-
364
- addButtonCommand( 'Cut', 'cut', new cutCopyCmd( 'cut' ), 1 );
365
- addButtonCommand( 'Copy', 'copy', new cutCopyCmd( 'copy' ), 4 );
366
- addButtonCommand( 'Paste', 'paste', pasteCmd, 8 );
367
-
368
- CKEDITOR.dialog.add( 'paste', CKEDITOR.getUrl( this.path + 'dialogs/paste.js' ) );
369
-
370
- editor.on( 'key', onKey, editor );
371
-
372
- // We'll be catching all pasted content in one line, regardless of whether the
373
- // it's introduced by a document command execution (e.g. toolbar buttons) or
374
- // user paste behaviors. (e.g. Ctrl-V)
375
- editor.on( 'contentDom', function()
376
- {
377
- var body = editor.document.getBody();
378
- body.on( CKEDITOR.env.webkit ? 'paste' : 'beforepaste', function( evt )
379
- {
380
- if ( depressBeforeEvent )
381
- return;
382
-
383
- // Fire 'beforePaste' event so clipboard flavor get customized
384
- // by other plugins.
385
- var eventData = { mode : 'html' };
386
- editor.fire( 'beforePaste', eventData );
387
-
388
- getClipboardData.call( editor, evt, eventData.mode, function ( data )
389
- {
390
- // The very last guard to make sure the
391
- // paste has successfully happened.
392
- if ( !( data = CKEDITOR.tools.trim( data.replace( /<span[^>]+data-cke-bookmark[^<]*?<\/span>/ig,'' ) ) ) )
393
- return;
394
-
395
- var dataTransfer = {};
396
- dataTransfer[ eventData.mode ] = data;
397
- editor.fire( 'paste', dataTransfer );
398
- } );
399
- });
400
-
401
- // Dismiss the (wrong) 'beforepaste' event fired on context menu open. (#7953)
402
- body.on( 'contextmenu', function()
403
- {
404
- depressBeforeEvent = 1;
405
- setTimeout( function() { depressBeforeEvent = 0; }, 10 );
406
- });
407
-
408
- body.on( 'beforecut', function() { !depressBeforeEvent && fixCut( editor ); } );
409
-
410
- body.on( 'mouseup', function(){ setTimeout( function(){ setToolbarStates.call( editor ); }, 0 ); }, editor );
411
- body.on( 'keyup', setToolbarStates, editor );
412
- });
413
-
414
- // For improved performance, we're checking the readOnly state on selectionChange instead of hooking a key event for that.
415
- editor.on( 'selectionChange', function( evt )
416
- {
417
- inReadOnly = evt.data.selection.getRanges()[ 0 ].checkReadOnly();
418
- setToolbarStates.call( editor );
419
- });
420
-
421
- // If the "contextmenu" plugin is loaded, register the listeners.
422
- if ( editor.contextMenu )
423
- {
424
- editor.contextMenu.addListener( function( element, selection )
425
- {
426
- var readOnly = selection.getRanges()[ 0 ].checkReadOnly();
427
- return {
428
- cut : !readOnly && stateFromNamedCommand( 'Cut', editor ),
429
- copy : stateFromNamedCommand( 'Copy', editor ),
430
- paste : !readOnly && ( CKEDITOR.env.webkit ? CKEDITOR.TRISTATE_OFF : stateFromNamedCommand( 'Paste', editor ) )
431
- };
432
- });
433
- }
434
- }
435
- });
436
- })();
437
-
438
- /**
439
- * Fired when a clipboard operation is about to be taken into the editor.
440
- * Listeners can manipulate the data to be pasted before having it effectively
441
- * inserted into the document.
442
- * @name CKEDITOR.editor#paste
443
- * @since 3.1
444
- * @event
445
- * @param {String} [data.html] The HTML data to be pasted. If not available, e.data.text will be defined.
446
- * @param {String} [data.text] The plain text data to be pasted, available when plain text operations are to used. If not available, e.data.html will be defined.
447
- */
448
-
449
- /**
450
- * Internal event to open the Paste dialog
451
- * @name CKEDITOR.editor#pasteDialog
452
- * @event
453
- */
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
+ /**
7
+ * @file Clipboard support
8
+ */
9
+
10
+ (function()
11
+ {
12
+ // Tries to execute any of the paste, cut or copy commands in IE. Returns a
13
+ // boolean indicating that the operation succeeded.
14
+ var execIECommand = function( editor, command )
15
+ {
16
+ var doc = editor.document,
17
+ body = doc.getBody();
18
+
19
+ var enabled = false;
20
+ var onExec = function()
21
+ {
22
+ enabled = true;
23
+ };
24
+
25
+ // The following seems to be the only reliable way to detect that
26
+ // clipboard commands are enabled in IE. It will fire the
27
+ // onpaste/oncut/oncopy events only if the security settings allowed
28
+ // the command to execute.
29
+ body.on( command, onExec );
30
+
31
+ // IE6/7: document.execCommand has problem to paste into positioned element.
32
+ ( CKEDITOR.env.version > 7 ? doc.$ : doc.$.selection.createRange() ) [ 'execCommand' ]( command );
33
+
34
+ body.removeListener( command, onExec );
35
+
36
+ return enabled;
37
+ };
38
+
39
+ // Attempts to execute the Cut and Copy operations.
40
+ var tryToCutCopy =
41
+ CKEDITOR.env.ie ?
42
+ function( editor, type )
43
+ {
44
+ return execIECommand( editor, type );
45
+ }
46
+ : // !IE.
47
+ function( editor, type )
48
+ {
49
+ try
50
+ {
51
+ // Other browsers throw an error if the command is disabled.
52
+ return editor.document.$.execCommand( type, false, null );
53
+ }
54
+ catch( e )
55
+ {
56
+ return false;
57
+ }
58
+ };
59
+
60
+ // A class that represents one of the cut or copy commands.
61
+ var cutCopyCmd = function( type )
62
+ {
63
+ this.type = type;
64
+ this.canUndo = this.type == 'cut'; // We can't undo copy to clipboard.
65
+ this.startDisabled = true;
66
+ };
67
+
68
+ cutCopyCmd.prototype =
69
+ {
70
+ exec : function( editor, data )
71
+ {
72
+ this.type == 'cut' && fixCut( editor );
73
+
74
+ var success = tryToCutCopy( editor, this.type );
75
+
76
+ if ( !success )
77
+ alert( editor.lang.clipboard[ this.type + 'Error' ] ); // Show cutError or copyError.
78
+
79
+ return success;
80
+ }
81
+ };
82
+
83
+ // Paste command.
84
+ var pasteCmd =
85
+ {
86
+ canUndo : false,
87
+
88
+ exec :
89
+ CKEDITOR.env.ie ?
90
+ function( editor )
91
+ {
92
+ // Prevent IE from pasting at the begining of the document.
93
+ editor.focus();
94
+
95
+ if ( !editor.document.getBody().fire( 'beforepaste' )
96
+ && !execIECommand( editor, 'paste' ) )
97
+ {
98
+ editor.fire( 'pasteDialog' );
99
+ return false;
100
+ }
101
+ }
102
+ :
103
+ function( editor )
104
+ {
105
+ try
106
+ {
107
+ if ( !editor.document.getBody().fire( 'beforepaste' )
108
+ && !editor.document.$.execCommand( 'Paste', false, null ) )
109
+ {
110
+ throw 0;
111
+ }
112
+ }
113
+ catch ( e )
114
+ {
115
+ setTimeout( function()
116
+ {
117
+ editor.fire( 'pasteDialog' );
118
+ }, 0 );
119
+ return false;
120
+ }
121
+ }
122
+ };
123
+
124
+ // Listens for some clipboard related keystrokes, so they get customized.
125
+ var onKey = function( event )
126
+ {
127
+ if ( this.mode != 'wysiwyg' )
128
+ return;
129
+
130
+ switch ( event.data.keyCode )
131
+ {
132
+ // Paste
133
+ case CKEDITOR.CTRL + 86 : // CTRL+V
134
+ case CKEDITOR.SHIFT + 45 : // SHIFT+INS
135
+
136
+ var body = this.document.getBody();
137
+
138
+ // Simulate 'paste' event for Opera/Firefox2.
139
+ if ( CKEDITOR.env.opera
140
+ || CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 )
141
+ body.fire( 'paste' );
142
+ return;
143
+
144
+ // Cut
145
+ case CKEDITOR.CTRL + 88 : // CTRL+X
146
+ case CKEDITOR.SHIFT + 46 : // SHIFT+DEL
147
+
148
+ // Save Undo snapshot.
149
+ var editor = this;
150
+ this.fire( 'saveSnapshot' ); // Save before paste
151
+ setTimeout( function()
152
+ {
153
+ editor.fire( 'saveSnapshot' ); // Save after paste
154
+ }, 0 );
155
+ }
156
+ };
157
+
158
+ function cancel( evt ) { evt.cancel(); }
159
+
160
+ // Allow to peek clipboard content by redirecting the
161
+ // pasting content into a temporary bin and grab the content of it.
162
+ function getClipboardData( evt, mode, callback )
163
+ {
164
+ var doc = this.document;
165
+
166
+ // Avoid recursions on 'paste' event or consequent paste too fast. (#5730)
167
+ if ( doc.getById( 'cke_pastebin' ) )
168
+ return;
169
+
170
+ // If the browser supports it, get the data directly
171
+ if ( mode == 'text' && evt.data && evt.data.$.clipboardData )
172
+ {
173
+ // evt.data.$.clipboardData.types contains all the flavours in Mac's Safari, but not on windows.
174
+ var plain = evt.data.$.clipboardData.getData( 'text/plain' );
175
+ if ( plain )
176
+ {
177
+ evt.data.preventDefault();
178
+ callback( plain );
179
+ return;
180
+ }
181
+ }
182
+
183
+ var sel = this.getSelection(),
184
+ range = new CKEDITOR.dom.range( doc );
185
+
186
+ // Create container to paste into
187
+ var pastebin = new CKEDITOR.dom.element( mode == 'text' ? 'textarea' : CKEDITOR.env.webkit ? 'body' : 'div', doc );
188
+ pastebin.setAttribute( 'id', 'cke_pastebin' );
189
+ // Safari requires a filler node inside the div to have the content pasted into it. (#4882)
190
+ CKEDITOR.env.webkit && pastebin.append( doc.createText( '\xa0' ) );
191
+ doc.getBody().append( pastebin );
192
+
193
+ pastebin.setStyles(
194
+ {
195
+ position : 'absolute',
196
+ // Position the bin exactly at the position of the selected element
197
+ // to avoid any subsequent document scroll.
198
+ top : sel.getStartElement().getDocumentPosition().y + 'px',
199
+ width : '1px',
200
+ height : '1px',
201
+ overflow : 'hidden'
202
+ });
203
+
204
+ // It's definitely a better user experience if we make the paste-bin pretty unnoticed
205
+ // by pulling it off the screen.
206
+ pastebin.setStyle( this.config.contentsLangDirection == 'ltr' ? 'left' : 'right', '-1000px' );
207
+
208
+ var bms = sel.createBookmarks();
209
+
210
+ this.on( 'selectionChange', cancel, null, null, 0 );
211
+
212
+ // Turn off design mode temporarily before give focus to the paste bin.
213
+ if ( mode == 'text' )
214
+ pastebin.$.focus();
215
+ else
216
+ {
217
+ range.setStartAt( pastebin, CKEDITOR.POSITION_AFTER_START );
218
+ range.setEndAt( pastebin, CKEDITOR.POSITION_BEFORE_END );
219
+ range.select( true );
220
+ }
221
+
222
+ var editor = this;
223
+ // Wait a while and grab the pasted contents
224
+ window.setTimeout( function()
225
+ {
226
+ // Restore properly the document focus. (#5684, #8849)
227
+ editor.document.getBody().focus();
228
+
229
+ editor.removeListener( 'selectionChange', cancel );
230
+
231
+ // Grab the HTML contents.
232
+ // We need to look for a apple style wrapper on webkit it also adds
233
+ // a div wrapper if you copy/paste the body of the editor.
234
+ // Remove hidden div and restore selection.
235
+ var bogusSpan;
236
+ pastebin = ( CKEDITOR.env.webkit
237
+ && ( bogusSpan = pastebin.getFirst() )
238
+ && ( bogusSpan.is && bogusSpan.hasClass( 'Apple-style-span' ) ) ?
239
+ bogusSpan : pastebin );
240
+
241
+ // IE7: selection must go before removing paste. (#8691)
242
+ sel.selectBookmarks( bms );
243
+ pastebin.remove();
244
+ callback( pastebin[ 'get' + ( mode == 'text' ? 'Value' : 'Html' ) ]() );
245
+ }, 0 );
246
+ }
247
+
248
+ // Cutting off control type element in IE standards breaks the selection entirely. (#4881)
249
+ function fixCut( editor )
250
+ {
251
+ if ( !CKEDITOR.env.ie || CKEDITOR.env.quirks )
252
+ return;
253
+
254
+ var sel = editor.getSelection();
255
+ var control;
256
+ if( ( sel.getType() == CKEDITOR.SELECTION_ELEMENT ) && ( control = sel.getSelectedElement() ) )
257
+ {
258
+ var range = sel.getRanges()[ 0 ];
259
+ var dummy = editor.document.createText( '' );
260
+ dummy.insertBefore( control );
261
+ range.setStartBefore( dummy );
262
+ range.setEndAfter( control );
263
+ sel.selectRanges( [ range ] );
264
+
265
+ // Clear up the fix if the paste wasn't succeeded.
266
+ setTimeout( function()
267
+ {
268
+ // Element still online?
269
+ if ( control.getParent() )
270
+ {
271
+ dummy.remove();
272
+ sel.selectElement( control );
273
+ }
274
+ }, 0 );
275
+ }
276
+ }
277
+
278
+ var depressBeforeEvent;
279
+ function stateFromNamedCommand( command, editor )
280
+ {
281
+ // IE Bug: queryCommandEnabled('paste') fires also 'beforepaste(copy/cut)',
282
+ // guard to distinguish from the ordinary sources( either
283
+ // keyboard paste or execCommand ) (#4874).
284
+ CKEDITOR.env.ie && ( depressBeforeEvent = 1 );
285
+
286
+ var retval = CKEDITOR.TRISTATE_OFF;
287
+ try { retval = editor.document.$.queryCommandEnabled( command ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED; }catch( er ){}
288
+
289
+ depressBeforeEvent = 0;
290
+ return retval;
291
+ }
292
+
293
+ var inReadOnly;
294
+ function setToolbarStates()
295
+ {
296
+ if ( this.mode != 'wysiwyg' )
297
+ return;
298
+
299
+ this.getCommand( 'cut' ).setState( inReadOnly ? CKEDITOR.TRISTATE_DISABLED : stateFromNamedCommand( 'Cut', this ) );
300
+ this.getCommand( 'copy' ).setState( stateFromNamedCommand( 'Copy', this ) );
301
+ var pasteState = inReadOnly ? CKEDITOR.TRISTATE_DISABLED :
302
+ CKEDITOR.env.webkit ? CKEDITOR.TRISTATE_OFF : stateFromNamedCommand( 'Paste', this );
303
+ this.fire( 'pasteState', pasteState );
304
+ }
305
+
306
+ // Register the plugin.
307
+ CKEDITOR.plugins.add( 'clipboard',
308
+ {
309
+ requires : [ 'dialog', 'htmldataprocessor' ],
310
+ init : function( editor )
311
+ {
312
+ // Inserts processed data into the editor at the end of the
313
+ // events chain.
314
+ editor.on( 'paste', function( evt )
315
+ {
316
+ var data = evt.data;
317
+ if ( data[ 'html' ] )
318
+ editor.insertHtml( data[ 'html' ] );
319
+ else if ( data[ 'text' ] )
320
+ editor.insertText( data[ 'text' ] );
321
+
322
+ setTimeout( function () { editor.fire( 'afterPaste' ); }, 0 );
323
+
324
+ }, null, null, 1000 );
325
+
326
+ editor.on( 'pasteDialog', function( evt )
327
+ {
328
+ setTimeout( function()
329
+ {
330
+ // Open default paste dialog.
331
+ editor.openDialog( 'paste' );
332
+ }, 0 );
333
+ });
334
+
335
+ editor.on( 'pasteState', function( evt )
336
+ {
337
+ editor.getCommand( 'paste' ).setState( evt.data );
338
+ });
339
+
340
+ function addButtonCommand( buttonName, commandName, command, ctxMenuOrder )
341
+ {
342
+ var lang = editor.lang[ commandName ];
343
+
344
+ editor.addCommand( commandName, command );
345
+ editor.ui.addButton( buttonName,
346
+ {
347
+ label : lang,
348
+ command : commandName
349
+ });
350
+
351
+ // If the "menu" plugin is loaded, register the menu item.
352
+ if ( editor.addMenuItems )
353
+ {
354
+ editor.addMenuItem( commandName,
355
+ {
356
+ label : lang,
357
+ command : commandName,
358
+ group : 'clipboard',
359
+ order : ctxMenuOrder
360
+ });
361
+ }
362
+ }
363
+
364
+ addButtonCommand( 'Cut', 'cut', new cutCopyCmd( 'cut' ), 1 );
365
+ addButtonCommand( 'Copy', 'copy', new cutCopyCmd( 'copy' ), 4 );
366
+ addButtonCommand( 'Paste', 'paste', pasteCmd, 8 );
367
+
368
+ CKEDITOR.dialog.add( 'paste', CKEDITOR.getUrl( this.path + 'dialogs/paste.js' ) );
369
+
370
+ editor.on( 'key', onKey, editor );
371
+
372
+ // We'll be catching all pasted content in one line, regardless of whether the
373
+ // it's introduced by a document command execution (e.g. toolbar buttons) or
374
+ // user paste behaviors. (e.g. Ctrl-V)
375
+ editor.on( 'contentDom', function()
376
+ {
377
+ var body = editor.document.getBody();
378
+
379
+ // Intercept the paste before it actually takes place.
380
+ body.on( !CKEDITOR.env.ie ? 'paste' : 'beforepaste', function( evt )
381
+ {
382
+ if ( depressBeforeEvent )
383
+ return;
384
+
385
+ // Dismiss the (wrong) 'beforepaste' event fired on toolbar menu open.
386
+ var domEvent = evt.data && evt.data.$;
387
+ if ( CKEDITOR.env.ie && domEvent && !domEvent.ctrlKey )
388
+ return;
389
+
390
+ // Fire 'beforePaste' event so clipboard flavor get customized
391
+ // by other plugins.
392
+ var eventData = { mode : 'html' };
393
+ editor.fire( 'beforePaste', eventData );
394
+
395
+ getClipboardData.call( editor, evt, eventData.mode, function ( data )
396
+ {
397
+ // The very last guard to make sure the
398
+ // paste has successfully happened.
399
+ if ( !( data = CKEDITOR.tools.trim( data.replace( /<span[^>]+data-cke-bookmark[^<]*?<\/span>/ig,'' ) ) ) )
400
+ return;
401
+
402
+ var dataTransfer = {};
403
+ dataTransfer[ eventData.mode ] = data;
404
+ editor.fire( 'paste', dataTransfer );
405
+ } );
406
+ });
407
+
408
+ if ( CKEDITOR.env.ie )
409
+ {
410
+ // Dismiss the (wrong) 'beforepaste' event fired on context menu open. (#7953)
411
+ body.on( 'contextmenu', function()
412
+ {
413
+ depressBeforeEvent = 1;
414
+ // Important: The following timeout will be called only after menu closed.
415
+ setTimeout( function() { depressBeforeEvent = 0; }, 0 );
416
+ } );
417
+
418
+ // Handle IE's late coming "paste" event when pasting from
419
+ // browser toolbar/context menu.
420
+ body.on( 'paste', function( evt )
421
+ {
422
+ if ( !editor.document.getById( 'cke_pastebin' ) )
423
+ {
424
+ // Prevent native paste.
425
+ evt.data.preventDefault();
426
+
427
+ depressBeforeEvent = 0;
428
+ // Resort to the paste command.
429
+ pasteCmd.exec( editor );
430
+ }
431
+ } );
432
+ }
433
+
434
+ body.on( 'beforecut', function() { !depressBeforeEvent && fixCut( editor ); } );
435
+
436
+ body.on( 'mouseup', function(){ setTimeout( function(){ setToolbarStates.call( editor ); }, 0 ); }, editor );
437
+ body.on( 'keyup', setToolbarStates, editor );
438
+ });
439
+
440
+ // For improved performance, we're checking the readOnly state on selectionChange instead of hooking a key event for that.
441
+ editor.on( 'selectionChange', function( evt )
442
+ {
443
+ inReadOnly = evt.data.selection.getRanges()[ 0 ].checkReadOnly();
444
+ setToolbarStates.call( editor );
445
+ });
446
+
447
+ // If the "contextmenu" plugin is loaded, register the listeners.
448
+ if ( editor.contextMenu )
449
+ {
450
+ editor.contextMenu.addListener( function( element, selection )
451
+ {
452
+ var readOnly = selection.getRanges()[ 0 ].checkReadOnly();
453
+ return {
454
+ cut : !readOnly && stateFromNamedCommand( 'Cut', editor ),
455
+ copy : stateFromNamedCommand( 'Copy', editor ),
456
+ paste : !readOnly && ( CKEDITOR.env.webkit ? CKEDITOR.TRISTATE_OFF : stateFromNamedCommand( 'Paste', editor ) )
457
+ };
458
+ });
459
+ }
460
+ }
461
+ });
462
+ })();
463
+
464
+ /**
465
+ * Fired when a clipboard operation is about to be taken into the editor.
466
+ * Listeners can manipulate the data to be pasted before having it effectively
467
+ * inserted into the document.
468
+ * @name CKEDITOR.editor#paste
469
+ * @since 3.1
470
+ * @event
471
+ * @param {String} [data.html] The HTML data to be pasted. If not available, e.data.text will be defined.
472
+ * @param {String} [data.text] The plain text data to be pasted, available when plain text operations are to used. If not available, e.data.html will be defined.
473
+ */
474
+
475
+ /**
476
+ * Internal event to open the Paste dialog
477
+ * @name CKEDITOR.editor#pasteDialog
478
+ * @event
479
+ */