ckeditor-rails 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,1059 +1,1059 @@
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
- * @fileOverview Defines the {@link CKEDITOR.editor} class, which represents an
8
- * editor instance.
9
- */
10
-
11
- (function()
12
- {
13
- // The counter for automatic instance names.
14
- var nameCounter = 0;
15
-
16
- var getNewName = function()
17
- {
18
- var name = 'editor' + ( ++nameCounter );
19
- return ( CKEDITOR.instances && CKEDITOR.instances[ name ] ) ? getNewName() : name;
20
- };
21
-
22
- // ##### START: Config Privates
23
-
24
- // These function loads custom configuration files and cache the
25
- // CKEDITOR.editorConfig functions defined on them, so there is no need to
26
- // download them more than once for several instances.
27
- var loadConfigLoaded = {};
28
- var loadConfig = function( editor )
29
- {
30
- var customConfig = editor.config.customConfig;
31
-
32
- // Check if there is a custom config to load.
33
- if ( !customConfig )
34
- return false;
35
-
36
- customConfig = CKEDITOR.getUrl( customConfig );
37
-
38
- var loadedConfig = loadConfigLoaded[ customConfig ] || ( loadConfigLoaded[ customConfig ] = {} );
39
-
40
- // If the custom config has already been downloaded, reuse it.
41
- if ( loadedConfig.fn )
42
- {
43
- // Call the cached CKEDITOR.editorConfig defined in the custom
44
- // config file for the editor instance depending on it.
45
- loadedConfig.fn.call( editor, editor.config );
46
-
47
- // If there is no other customConfig in the chain, fire the
48
- // "configLoaded" event.
49
- if ( CKEDITOR.getUrl( editor.config.customConfig ) == customConfig || !loadConfig( editor ) )
50
- editor.fireOnce( 'customConfigLoaded' );
51
- }
52
- else
53
- {
54
- // Load the custom configuration file.
55
- CKEDITOR.scriptLoader.load( customConfig, function()
56
- {
57
- // If the CKEDITOR.editorConfig function has been properly
58
- // defined in the custom configuration file, cache it.
59
- if ( CKEDITOR.editorConfig )
60
- loadedConfig.fn = CKEDITOR.editorConfig;
61
- else
62
- loadedConfig.fn = function(){};
63
-
64
- // Call the load config again. This time the custom
65
- // config is already cached and so it will get loaded.
66
- loadConfig( editor );
67
- });
68
- }
69
-
70
- return true;
71
- };
72
-
73
- var initConfig = function( editor, instanceConfig )
74
- {
75
- // Setup the lister for the "customConfigLoaded" event.
76
- editor.on( 'customConfigLoaded', function()
77
- {
78
- if ( instanceConfig )
79
- {
80
- // Register the events that may have been set at the instance
81
- // configuration object.
82
- if ( instanceConfig.on )
83
- {
84
- for ( var eventName in instanceConfig.on )
85
- {
86
- editor.on( eventName, instanceConfig.on[ eventName ] );
87
- }
88
- }
89
-
90
- // Overwrite the settings from the in-page config.
91
- CKEDITOR.tools.extend( editor.config, instanceConfig, true );
92
-
93
- delete editor.config.on;
94
- }
95
-
96
- onConfigLoaded( editor );
97
- });
98
-
99
- // The instance config may override the customConfig setting to avoid
100
- // loading the default ~/config.js file.
101
- if ( instanceConfig && instanceConfig.customConfig != undefined )
102
- editor.config.customConfig = instanceConfig.customConfig;
103
-
104
- // Load configs from the custom configuration files.
105
- if ( !loadConfig( editor ) )
106
- editor.fireOnce( 'customConfigLoaded' );
107
- };
108
-
109
- // ##### END: Config Privates
110
-
111
- var onConfigLoaded = function( editor )
112
- {
113
- // Set config related properties.
114
-
115
- var skin = editor.config.skin.split( ',' ),
116
- skinName = skin[ 0 ],
117
- skinPath = CKEDITOR.getUrl( skin[ 1 ] || (
118
- '_source/' + // @Packager.RemoveLine
119
- 'skins/' + skinName + '/' ) );
120
-
121
- /**
122
- * The name of the skin used by this editor instance. The skin name can
123
- * be set through the <code>{@link CKEDITOR.config.skin}</code> setting.
124
- * @name CKEDITOR.editor.prototype.skinName
125
- * @type String
126
- * @example
127
- * alert( editor.skinName ); // E.g. "kama"
128
- */
129
- editor.skinName = skinName;
130
-
131
- /**
132
- * The full URL of the skin directory.
133
- * @name CKEDITOR.editor.prototype.skinPath
134
- * @type String
135
- * @example
136
- * alert( editor.skinPath ); // E.g. "http://example.com/ckeditor/skins/kama/"
137
- */
138
- editor.skinPath = skinPath;
139
-
140
- /**
141
- * The CSS class name used for skin identification purposes.
142
- * @name CKEDITOR.editor.prototype.skinClass
143
- * @type String
144
- * @example
145
- * alert( editor.skinClass ); // E.g. "cke_skin_kama"
146
- */
147
- editor.skinClass = 'cke_skin_' + skinName;
148
-
149
- /**
150
- * The <a href="http://en.wikipedia.org/wiki/Tabbing_navigation">tabbing
151
- * navigation</a> order that has been calculated for this editor
152
- * instance. This can be set by the <code>{@link CKEDITOR.config.tabIndex}</code>
153
- * setting or taken from the <code>tabindex</code> attribute of the
154
- * <code>{@link #element}</code> associated with the editor.
155
- * @name CKEDITOR.editor.prototype.tabIndex
156
- * @type Number
157
- * @default 0 (zero)
158
- * @example
159
- * alert( editor.tabIndex ); // E.g. "0"
160
- */
161
- editor.tabIndex = editor.config.tabIndex || editor.element.getAttribute( 'tabindex' ) || 0;
162
-
163
- /**
164
- * Indicates the read-only state of this editor. This is a read-only property.
165
- * @name CKEDITOR.editor.prototype.readOnly
166
- * @type Boolean
167
- * @since 3.6
168
- * @see CKEDITOR.editor#setReadOnly
169
- */
170
- editor.readOnly = !!( editor.config.readOnly || editor.element.getAttribute( 'disabled' ) );
171
-
172
- // Fire the "configLoaded" event.
173
- editor.fireOnce( 'configLoaded' );
174
-
175
- // Load language file.
176
- loadSkin( editor );
177
- };
178
-
179
- var loadLang = function( editor )
180
- {
181
- CKEDITOR.lang.load( editor.config.language, editor.config.defaultLanguage, function( languageCode, lang )
182
- {
183
- /**
184
- * The code for the language resources that have been loaded
185
- * for the user interface elements of this editor instance.
186
- * @name CKEDITOR.editor.prototype.langCode
187
- * @type String
188
- * @example
189
- * alert( editor.langCode ); // E.g. "en"
190
- */
191
- editor.langCode = languageCode;
192
-
193
- /**
194
- * An object that contains all language strings used by the editor
195
- * interface.
196
- * @name CKEDITOR.editor.prototype.lang
197
- * @type CKEDITOR.lang
198
- * @example
199
- * alert( editor.lang.bold ); // E.g. "Negrito" (if the language is set to Portuguese)
200
- */
201
- // As we'll be adding plugin specific entries that could come
202
- // from different language code files, we need a copy of lang,
203
- // not a direct reference to it.
204
- editor.lang = CKEDITOR.tools.prototypedCopy( lang );
205
-
206
- // We're not able to support RTL in Firefox 2 at this time.
207
- if ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 && editor.lang.dir == 'rtl' )
208
- editor.lang.dir = 'ltr';
209
-
210
- editor.fire( 'langLoaded' );
211
-
212
- var config = editor.config;
213
- config.contentsLangDirection == 'ui' && ( config.contentsLangDirection = editor.lang.dir );
214
-
215
- loadPlugins( editor );
216
- });
217
- };
218
-
219
- var loadPlugins = function( editor )
220
- {
221
- var config = editor.config,
222
- plugins = config.plugins,
223
- extraPlugins = config.extraPlugins,
224
- removePlugins = config.removePlugins;
225
-
226
- if ( extraPlugins )
227
- {
228
- // Remove them first to avoid duplications.
229
- var removeRegex = new RegExp( '(?:^|,)(?:' + extraPlugins.replace( /\s*,\s*/g, '|' ) + ')(?=,|$)' , 'g' );
230
- plugins = plugins.replace( removeRegex, '' );
231
-
232
- plugins += ',' + extraPlugins;
233
- }
234
-
235
- if ( removePlugins )
236
- {
237
- removeRegex = new RegExp( '(?:^|,)(?:' + removePlugins.replace( /\s*,\s*/g, '|' ) + ')(?=,|$)' , 'g' );
238
- plugins = plugins.replace( removeRegex, '' );
239
- }
240
-
241
- // Load the Adobe AIR plugin conditionally.
242
- CKEDITOR.env.air && ( plugins += ',adobeair' );
243
-
244
- // Load all plugins defined in the "plugins" setting.
245
- CKEDITOR.plugins.load( plugins.split( ',' ), function( plugins )
246
- {
247
- // The list of plugins.
248
- var pluginsArray = [];
249
-
250
- // The language code to get loaded for each plugin. Null
251
- // entries will be appended for plugins with no language files.
252
- var languageCodes = [];
253
-
254
- // The list of URLs to language files.
255
- var languageFiles = [];
256
-
257
- /**
258
- * An object that contains references to all plugins used by this
259
- * editor instance.
260
- * @name CKEDITOR.editor.prototype.plugins
261
- * @type Object
262
- * @example
263
- * alert( editor.plugins.dialog.path ); // E.g. "http://example.com/ckeditor/plugins/dialog/"
264
- */
265
- editor.plugins = plugins;
266
-
267
- // Loop through all plugins, to build the list of language
268
- // files to get loaded.
269
- for ( var pluginName in plugins )
270
- {
271
- var plugin = plugins[ pluginName ],
272
- pluginLangs = plugin.lang,
273
- pluginPath = CKEDITOR.plugins.getPath( pluginName ),
274
- lang = null;
275
-
276
- // Set the plugin path in the plugin.
277
- plugin.path = pluginPath;
278
-
279
- // If the plugin has "lang".
280
- if ( pluginLangs )
281
- {
282
- // Resolve the plugin language. If the current language
283
- // is not available, get the first one (default one).
284
- lang = ( CKEDITOR.tools.indexOf( pluginLangs, editor.langCode ) >= 0 ? editor.langCode : pluginLangs[ 0 ] );
285
-
286
- if ( !plugin.langEntries || !plugin.langEntries[ lang ] )
287
- {
288
- // Put the language file URL into the list of files to
289
- // get downloaded.
290
- languageFiles.push( CKEDITOR.getUrl( pluginPath + 'lang/' + lang + '.js' ) );
291
- }
292
- else
293
- {
294
- CKEDITOR.tools.extend( editor.lang, plugin.langEntries[ lang ] );
295
- lang = null;
296
- }
297
- }
298
-
299
- // Save the language code, so we know later which
300
- // language has been resolved to this plugin.
301
- languageCodes.push( lang );
302
-
303
- pluginsArray.push( plugin );
304
- }
305
-
306
- // Load all plugin specific language files in a row.
307
- CKEDITOR.scriptLoader.load( languageFiles, function()
308
- {
309
- // Initialize all plugins that have the "beforeInit" and "init" methods defined.
310
- var methods = [ 'beforeInit', 'init', 'afterInit' ];
311
- for ( var m = 0 ; m < methods.length ; m++ )
312
- {
313
- for ( var i = 0 ; i < pluginsArray.length ; i++ )
314
- {
315
- var plugin = pluginsArray[ i ];
316
-
317
- // Uses the first loop to update the language entries also.
318
- if ( m === 0 && languageCodes[ i ] && plugin.lang )
319
- CKEDITOR.tools.extend( editor.lang, plugin.langEntries[ languageCodes[ i ] ] );
320
-
321
- // Call the plugin method (beforeInit and init).
322
- if ( plugin[ methods[ m ] ] )
323
- plugin[ methods[ m ] ]( editor );
324
- }
325
- }
326
-
327
- // Load the editor skin.
328
- editor.fire( 'pluginsLoaded' );
329
- loadTheme( editor );
330
- });
331
- });
332
- };
333
-
334
- var loadSkin = function( editor )
335
- {
336
- CKEDITOR.skins.load( editor, 'editor', function()
337
- {
338
- loadLang( editor );
339
- });
340
- };
341
-
342
- var loadTheme = function( editor )
343
- {
344
- var theme = editor.config.theme;
345
- CKEDITOR.themes.load( theme, function()
346
- {
347
- /**
348
- * The theme used by this editor instance.
349
- * @name CKEDITOR.editor.prototype.theme
350
- * @type CKEDITOR.theme
351
- * @example
352
- * alert( editor.theme ); // E.g. "http://example.com/ckeditor/themes/default/"
353
- */
354
- var editorTheme = editor.theme = CKEDITOR.themes.get( theme );
355
- editorTheme.path = CKEDITOR.themes.getPath( theme );
356
- editorTheme.build( editor );
357
-
358
- if ( editor.config.autoUpdateElement )
359
- attachToForm( editor );
360
- });
361
- };
362
-
363
- var attachToForm = function( editor )
364
- {
365
- var element = editor.element;
366
-
367
- // If are replacing a textarea, we must
368
- if ( editor.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE && element.is( 'textarea' ) )
369
- {
370
- var form = element.$.form && new CKEDITOR.dom.element( element.$.form );
371
- if ( form )
372
- {
373
- function onSubmit()
374
- {
375
- editor.updateElement();
376
- }
377
- form.on( 'submit',onSubmit );
378
-
379
- // Setup the submit function because it doesn't fire the
380
- // "submit" event.
381
- if ( !form.$.submit.nodeName && !form.$.submit.length )
382
- {
383
- form.$.submit = CKEDITOR.tools.override( form.$.submit, function( originalSubmit )
384
- {
385
- return function()
386
- {
387
- editor.updateElement();
388
-
389
- // For IE, the DOM submit function is not a
390
- // function, so we need thid check.
391
- if ( originalSubmit.apply )
392
- originalSubmit.apply( this, arguments );
393
- else
394
- originalSubmit();
395
- };
396
- });
397
- }
398
-
399
- // Remove 'submit' events registered on form element before destroying.(#3988)
400
- editor.on( 'destroy', function()
401
- {
402
- form.removeListener( 'submit', onSubmit );
403
- } );
404
- }
405
- }
406
- };
407
-
408
- function updateCommands()
409
- {
410
- var command,
411
- commands = this._.commands,
412
- mode = this.mode;
413
-
414
- if ( !mode )
415
- return;
416
-
417
- for ( var name in commands )
418
- {
419
- command = commands[ name ];
420
- command[ command.startDisabled ? 'disable' :
421
- this.readOnly && !command.readOnly ? 'disable' : command.modes[ mode ] ? 'enable' : 'disable' ]();
422
- }
423
- }
424
-
425
- /**
426
- * Initializes the editor instance. This function is called by the editor
427
- * contructor (<code>editor_basic.js</code>).
428
- * @private
429
- */
430
- CKEDITOR.editor.prototype._init = function()
431
- {
432
- // Get the properties that have been saved in the editor_base
433
- // implementation.
434
- var element = CKEDITOR.dom.element.get( this._.element ),
435
- instanceConfig = this._.instanceConfig;
436
- delete this._.element;
437
- delete this._.instanceConfig;
438
-
439
- this._.commands = {};
440
- this._.styles = [];
441
-
442
- /**
443
- * The DOM element that was replaced by this editor instance. This
444
- * element stores the editor data on load and post.
445
- * @name CKEDITOR.editor.prototype.element
446
- * @type CKEDITOR.dom.element
447
- * @example
448
- * var editor = CKEDITOR.instances.editor1;
449
- * alert( <strong>editor.element</strong>.getName() ); // E.g. "textarea"
450
- */
451
- this.element = element;
452
-
453
- /**
454
- * The editor instance name. It may be the replaced element ID, name, or
455
- * a default name using the progressive counter (<code>editor1</code>,
456
- * <code>editor2</code>, ...).
457
- * @name CKEDITOR.editor.prototype.name
458
- * @type String
459
- * @example
460
- * var editor = CKEDITOR.instances.editor1;
461
- * alert( <strong>editor.name</strong> ); // "editor1"
462
- */
463
- this.name = ( element && ( this.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE )
464
- && ( element.getId() || element.getNameAtt() ) )
465
- || getNewName();
466
-
467
- if ( this.name in CKEDITOR.instances )
468
- throw '[CKEDITOR.editor] The instance "' + this.name + '" already exists.';
469
-
470
- /**
471
- * A unique random string assigned to each editor instance on the page.
472
- * @name CKEDITOR.editor.prototype.id
473
- * @type String
474
- */
475
- this.id = CKEDITOR.tools.getNextId();
476
-
477
- /**
478
- * The configurations for this editor instance. It inherits all
479
- * settings defined in <code>(@link CKEDITOR.config}</code>, combined with settings
480
- * loaded from custom configuration files and those defined inline in
481
- * the page when creating the editor.
482
- * @name CKEDITOR.editor.prototype.config
483
- * @type Object
484
- * @example
485
- * var editor = CKEDITOR.instances.editor1;
486
- * alert( <strong>editor.config.theme</strong> ); // E.g. "default"
487
- */
488
- this.config = CKEDITOR.tools.prototypedCopy( CKEDITOR.config );
489
-
490
- /**
491
- * The namespace containing UI features related to this editor instance.
492
- * @name CKEDITOR.editor.prototype.ui
493
- * @type CKEDITOR.ui
494
- * @example
495
- */
496
- this.ui = new CKEDITOR.ui( this );
497
-
498
- /**
499
- * Controls the focus state of this editor instance. This property
500
- * is rarely used for normal API operations. It is mainly
501
- * intended for developers adding UI elements to the editor interface.
502
- * @name CKEDITOR.editor.prototype.focusManager
503
- * @type CKEDITOR.focusManager
504
- * @example
505
- */
506
- this.focusManager = new CKEDITOR.focusManager( this );
507
-
508
- CKEDITOR.fire( 'instanceCreated', null, this );
509
-
510
- this.on( 'mode', updateCommands, null, null, 1 );
511
- this.on( 'readOnly', updateCommands, null, null, 1 );
512
-
513
- initConfig( this, instanceConfig );
514
- };
515
- })();
516
-
517
- CKEDITOR.tools.extend( CKEDITOR.editor.prototype,
518
- /** @lends CKEDITOR.editor.prototype */
519
- {
520
- /**
521
- * Adds a command definition to the editor instance. Commands added with
522
- * this function can be executed later with the <code>{@link #execCommand}</code> method.
523
- * @param {String} commandName The indentifier name of the command.
524
- * @param {CKEDITOR.commandDefinition} commandDefinition The command definition.
525
- * @example
526
- * editorInstance.addCommand( 'sample',
527
- * {
528
- * exec : function( editor )
529
- * {
530
- * alert( 'Executing a command for the editor name "' + editor.name + '"!' );
531
- * }
532
- * });
533
- */
534
- addCommand : function( commandName, commandDefinition )
535
- {
536
- return this._.commands[ commandName ] = new CKEDITOR.command( this, commandDefinition );
537
- },
538
-
539
- /**
540
- * Adds a piece of CSS code to the editor which will be applied to the WYSIWYG editing document.
541
- * This CSS would not be added to the output, and is there mainly for editor-specific editing requirements.
542
- * Note: This function should be called before the editor is loaded to take effect.
543
- * @param css {String} CSS text.
544
- * @example
545
- * editorInstance.addCss( 'body { background-color: grey; }' );
546
- */
547
- addCss : function( css )
548
- {
549
- this._.styles.push( css );
550
- },
551
-
552
- /**
553
- * Destroys the editor instance, releasing all resources used by it.
554
- * If the editor replaced an element, the element will be recovered.
555
- * @param {Boolean} [noUpdate] If the instance is replacing a DOM
556
- * element, this parameter indicates whether or not to update the
557
- * element with the instance contents.
558
- * @example
559
- * alert( CKEDITOR.instances.editor1 ); // E.g "object"
560
- * <strong>CKEDITOR.instances.editor1.destroy()</strong>;
561
- * alert( CKEDITOR.instances.editor1 ); // "undefined"
562
- */
563
- destroy : function( noUpdate )
564
- {
565
- if ( !noUpdate )
566
- this.updateElement();
567
-
568
- this.fire( 'destroy' );
569
- this.theme && this.theme.destroy( this );
570
-
571
- CKEDITOR.remove( this );
572
- CKEDITOR.fire( 'instanceDestroyed', null, this );
573
- },
574
-
575
- /**
576
- * Executes a command associated with the editor.
577
- * @param {String} commandName The indentifier name of the command.
578
- * @param {Object} [data] Data to be passed to the command.
579
- * @returns {Boolean} <code>true</code> if the command was executed
580
- * successfully, otherwise <code>false</code>.
581
- * @see CKEDITOR.editor.addCommand
582
- * @example
583
- * editorInstance.execCommand( 'bold' );
584
- */
585
- execCommand : function( commandName, data )
586
- {
587
- var command = this.getCommand( commandName );
588
-
589
- var eventData =
590
- {
591
- name: commandName,
592
- commandData: data,
593
- command: command
594
- };
595
-
596
- if ( command && command.state != CKEDITOR.TRISTATE_DISABLED )
597
- {
598
- if ( this.fire( 'beforeCommandExec', eventData ) !== true )
599
- {
600
- eventData.returnValue = command.exec( eventData.commandData );
601
-
602
- // Fire the 'afterCommandExec' immediately if command is synchronous.
603
- if ( !command.async && this.fire( 'afterCommandExec', eventData ) !== true )
604
- return eventData.returnValue;
605
- }
606
- }
607
-
608
- // throw 'Unknown command name "' + commandName + '"';
609
- return false;
610
- },
611
-
612
- /**
613
- * Gets one of the registered commands. Note that after registering a
614
- * command definition with <code>{@link #addCommand}</code>, it is
615
- * transformed internally into an instance of
616
- * <code>{@link CKEDITOR.command}</code>, which will then be returned
617
- * by this function.
618
- * @param {String} commandName The name of the command to be returned.
619
- * This is the same name that is used to register the command with
620
- * <code>addCommand</code>.
621
- * @returns {CKEDITOR.command} The command object identified by the
622
- * provided name.
623
- */
624
- getCommand : function( commandName )
625
- {
626
- return this._.commands[ commandName ];
627
- },
628
-
629
- /**
630
- * Gets the editor data. The data will be in raw format. It is the same
631
- * data that is posted by the editor.
632
- * @type String
633
- * @returns (String) The editor data.
634
- * @example
635
- * if ( CKEDITOR.instances.editor1.<strong>getData()</strong> == '' )
636
- * alert( 'There is no data available' );
637
- */
638
- getData : function()
639
- {
640
- this.fire( 'beforeGetData' );
641
-
642
- var eventData = this._.data;
643
-
644
- if ( typeof eventData != 'string' )
645
- {
646
- var element = this.element;
647
- if ( element && this.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE )
648
- eventData = element.is( 'textarea' ) ? element.getValue() : element.getHtml();
649
- else
650
- eventData = '';
651
- }
652
-
653
- eventData = { dataValue : eventData };
654
-
655
- // Fire "getData" so data manipulation may happen.
656
- this.fire( 'getData', eventData );
657
-
658
- return eventData.dataValue;
659
- },
660
-
661
- /**
662
- * Gets the "raw data" currently available in the editor. This is a
663
- * fast method which returns the data as is, without processing, so it is
664
- * not recommended to use it on resulting pages. Instead it can be used
665
- * combined with the <code>{@link #loadSnapshot}</code> method in order
666
- * to be able to automatically save the editor data from time to time
667
- * while the user is using the editor, to avoid data loss, without risking
668
- * performance issues.
669
- * @see CKEDITOR.editor.getData
670
- * @example
671
- * alert( editor.getSnapshot() );
672
- */
673
- getSnapshot : function()
674
- {
675
- var data = this.fire( 'getSnapshot' );
676
-
677
- if ( typeof data != 'string' )
678
- {
679
- var element = this.element;
680
- if ( element && this.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE )
681
- data = element.is( 'textarea' ) ? element.getValue() : element.getHtml();
682
- }
683
-
684
- return data;
685
- },
686
-
687
- /**
688
- * Loads "raw data" into the editor. The data is loaded with processing
689
- * straight to the editing area. It should not be used as a way to load
690
- * any kind of data, but instead in combination with
691
- * <code>{@link #getSnapshot}</code> produced data.
692
- * @see CKEDITOR.editor.setData
693
- * @example
694
- * var data = editor.getSnapshot();
695
- * editor.<strong>loadSnapshot( data )</strong>;
696
- */
697
- loadSnapshot : function( snapshot )
698
- {
699
- this.fire( 'loadSnapshot', snapshot );
700
- },
701
-
702
- /**
703
- * Sets the editor data. The data must be provided in the raw format (HTML).<br />
704
- * <br />
705
- * Note that this method is asynchronous. The <code>callback</code> parameter must
706
- * be used if interaction with the editor is needed after setting the data.
707
- * @param {String} data HTML code to replace the curent content in the
708
- * editor.
709
- * @param {Function} callback Function to be called after the <code>setData</code>
710
- * is completed.
711
- *@param {Boolean} internal Whether to suppress any event firing when copying data
712
- * internally inside the editor.
713
- * @example
714
- * CKEDITOR.instances.editor1.<strong>setData</strong>( '&lt;p&gt;This is the editor data.&lt;/p&gt;' );
715
- * @example
716
- * CKEDITOR.instances.editor1.<strong>setData</strong>( '&lt;p&gt;Some other editor data.&lt;/p&gt;', function()
717
- * {
718
- * this.checkDirty(); // true
719
- * });
720
- */
721
- setData : function( data , callback, internal )
722
- {
723
- if( callback )
724
- {
725
- this.on( 'dataReady', function( evt )
726
- {
727
- evt.removeListener();
728
- callback.call( evt.editor );
729
- } );
730
- }
731
-
732
- // Fire "setData" so data manipulation may happen.
733
- var eventData = { dataValue : data };
734
- !internal && this.fire( 'setData', eventData );
735
-
736
- this._.data = eventData.dataValue;
737
-
738
- !internal && this.fire( 'afterSetData', eventData );
739
- },
740
-
741
- /**
742
- * Puts or restores the editor into read-only state. When in read-only,
743
- * the user is not able to change the editor contents, but can still use
744
- * some editor features. This function sets the <code>{@link CKEDITOR.config.readOnly}</code>
745
- * property of the editor, firing the <code>{@link CKEDITOR.editor#readOnly}</code> event.<br><br>
746
- * <strong>Note:</strong> the current editing area will be reloaded.
747
- * @param {Boolean} [isReadOnly] Indicates that the editor must go
748
- * read-only (<code>true</code>, default) or be restored and made editable
749
- * (<code>false</code>).
750
- * @since 3.6
751
- */
752
- setReadOnly : function( isReadOnly )
753
- {
754
- isReadOnly = ( isReadOnly == undefined ) || isReadOnly;
755
-
756
- if ( this.readOnly != isReadOnly )
757
- {
758
- this.readOnly = isReadOnly;
759
-
760
- // Fire the readOnly event so the editor features can update
761
- // their state accordingly.
762
- this.fire( 'readOnly' );
763
- }
764
- },
765
-
766
- /**
767
- * Inserts HTML code into the currently selected position in the editor in WYSIWYG mode.
768
- * @param {String} data HTML code to be inserted into the editor.
769
- * @example
770
- * CKEDITOR.instances.editor1.<strong>insertHtml( '&lt;p&gt;This is a new paragraph.&lt;/p&gt;' )</strong>;
771
- */
772
- insertHtml : function( data )
773
- {
774
- this.fire( 'insertHtml', data );
775
- },
776
-
777
- /**
778
- * Insert text content into the currently selected position in the
779
- * editor in WYSIWYG mode. The styles of the selected element will be applied to the inserted text.
780
- * Spaces around the text will be leaving untouched.
781
- * <strong>Note:</strong> two subsequent line-breaks will introduce one paragraph. This depends on <code>{@link CKEDITOR.config.enterMode}</code>;
782
- * A single line-break will be instead translated into one &lt;br /&gt;.
783
- * @since 3.5
784
- * @param {String} text Text to be inserted into the editor.
785
- * @example
786
- * CKEDITOR.instances.editor1.<strong>insertText( ' line1 \n\n line2' )</strong>;
787
- */
788
- insertText : function( text )
789
- {
790
- this.fire( 'insertText', text );
791
- },
792
-
793
- /**
794
- * Inserts an element into the currently selected position in the
795
- * editor in WYSIWYG mode.
796
- * @param {CKEDITOR.dom.element} element The element to be inserted
797
- * into the editor.
798
- * @example
799
- * var element = CKEDITOR.dom.element.createFromHtml( '&lt;img src="hello.png" border="0" title="Hello" /&gt;' );
800
- * CKEDITOR.instances.editor1.<strong>insertElement( element )</strong>;
801
- */
802
- insertElement : function( element )
803
- {
804
- this.fire( 'insertElement', element );
805
- },
806
-
807
- /**
808
- * Checks whether the current editor contents contain changes when
809
- * compared to the contents loaded into the editor at startup, or to
810
- * the contents available in the editor when <code>{@link #resetDirty}</code>
811
- * was called.
812
- * @returns {Boolean} "true" is the contents contain changes.
813
- * @example
814
- * function beforeUnload( e )
815
- * {
816
- * if ( CKEDITOR.instances.editor1.<strong>checkDirty()</strong> )
817
- * return e.returnValue = "You will lose the changes made in the editor.";
818
- * }
819
- *
820
- * if ( window.addEventListener )
821
- * window.addEventListener( 'beforeunload', beforeUnload, false );
822
- * else
823
- * window.attachEvent( 'onbeforeunload', beforeUnload );
824
- */
825
- checkDirty : function()
826
- {
827
- return ( this.mayBeDirty && this._.previousValue !== this.getSnapshot() );
828
- },
829
-
830
- /**
831
- * Resets the "dirty state" of the editor so subsequent calls to
832
- * <code>{@link #checkDirty}</code> will return <code>false</code> if the user will not
833
- * have made further changes to the contents.
834
- * @example
835
- * alert( editor.checkDirty() ); // E.g. "true"
836
- * editor.<strong>resetDirty()</strong>;
837
- * alert( editor.checkDirty() ); // "false"
838
- */
839
- resetDirty : function()
840
- {
841
- if ( this.mayBeDirty )
842
- this._.previousValue = this.getSnapshot();
843
- },
844
-
845
- /**
846
- * Updates the <code>&lt;textarea&gt;</code> element that was replaced by the editor with
847
- * the current data available in the editor.
848
- * @see CKEDITOR.editor.element
849
- * @example
850
- * CKEDITOR.instances.editor1.updateElement();
851
- * alert( document.getElementById( 'editor1' ).value ); // The current editor data.
852
- */
853
- updateElement : function()
854
- {
855
- var element = this.element;
856
- if ( element && this.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE )
857
- {
858
- var data = this.getData();
859
-
860
- if ( this.config.htmlEncodeOutput )
861
- data = CKEDITOR.tools.htmlEncode( data );
862
-
863
- if ( element.is( 'textarea' ) )
864
- element.setValue( data );
865
- else
866
- element.setHtml( data );
867
- }
868
- }
869
- });
870
-
871
- CKEDITOR.on( 'loaded', function()
872
- {
873
- // Run the full initialization for pending editors.
874
- var pending = CKEDITOR.editor._pending;
875
- if ( pending )
876
- {
877
- delete CKEDITOR.editor._pending;
878
-
879
- for ( var i = 0 ; i < pending.length ; i++ )
880
- pending[ i ]._init();
881
- }
882
- });
883
-
884
- /**
885
- * Whether to escape HTML when the editor updates the original input element.
886
- * @name CKEDITOR.config.htmlEncodeOutput
887
- * @since 3.1
888
- * @type Boolean
889
- * @default false
890
- * @example
891
- * config.htmlEncodeOutput = true;
892
- */
893
-
894
- /**
895
- * If <code>true</code>, makes the editor start in read-only state. Otherwise, it will check
896
- * if the linked <code>&lt;textarea&gt;</code> element has the <code>disabled</code> attribute.
897
- * @name CKEDITOR.config.readOnly
898
- * @see CKEDITOR.editor#setReadOnly
899
- * @type Boolean
900
- * @default false
901
- * @since 3.6
902
- * @example
903
- * config.readOnly = true;
904
- */
905
-
906
- /**
907
- * Fired when a CKEDITOR instance is created, but still before initializing it.
908
- * To interact with a fully initialized instance, use the
909
- * <code>{@link CKEDITOR#instanceReady}</code> event instead.
910
- * @name CKEDITOR#instanceCreated
911
- * @event
912
- * @param {CKEDITOR.editor} editor The editor instance that has been created.
913
- */
914
-
915
- /**
916
- * Fired when a CKEDITOR instance is destroyed.
917
- * @name CKEDITOR#instanceDestroyed
918
- * @event
919
- * @param {CKEDITOR.editor} editor The editor instance that has been destroyed.
920
- */
921
-
922
- /**
923
- * Fired when the language is loaded into the editor instance.
924
- * @name CKEDITOR.editor#langLoaded
925
- * @event
926
- * @since 3.6.1
927
- * @param {CKEDITOR.editor} editor This editor instance.
928
- */
929
-
930
- /**
931
- * Fired when all plugins are loaded and initialized into the editor instance.
932
- * @name CKEDITOR.editor#pluginsLoaded
933
- * @event
934
- * @param {CKEDITOR.editor} editor This editor instance.
935
- */
936
-
937
- /**
938
- * Fired before the command execution when <code>{@link #execCommand}</code> is called.
939
- * @name CKEDITOR.editor#beforeCommandExec
940
- * @event
941
- * @param {CKEDITOR.editor} editor This editor instance.
942
- * @param {String} data.name The command name.
943
- * @param {Object} data.commandData The data to be sent to the command. This
944
- * can be manipulated by the event listener.
945
- * @param {CKEDITOR.command} data.command The command itself.
946
- */
947
-
948
- /**
949
- * Fired after the command execution when <code>{@link #execCommand}</code> is called.
950
- * @name CKEDITOR.editor#afterCommandExec
951
- * @event
952
- * @param {CKEDITOR.editor} editor This editor instance.
953
- * @param {String} data.name The command name.
954
- * @param {Object} data.commandData The data sent to the command.
955
- * @param {CKEDITOR.command} data.command The command itself.
956
- * @param {Object} data.returnValue The value returned by the command execution.
957
- */
958
-
959
- /**
960
- * Fired when the custom configuration file is loaded, before the final
961
- * configurations initialization.<br />
962
- * <br />
963
- * Custom configuration files can be loaded thorugh the
964
- * <code>{@link CKEDITOR.config.customConfig}</code> setting. Several files can be loaded
965
- * by changing this setting.
966
- * @name CKEDITOR.editor#customConfigLoaded
967
- * @event
968
- * @param {CKEDITOR.editor} editor This editor instance.
969
- */
970
-
971
- /**
972
- * Fired once the editor configuration is ready (loaded and processed).
973
- * @name CKEDITOR.editor#configLoaded
974
- * @event
975
- * @param {CKEDITOR.editor} editor This editor instance.
976
- */
977
-
978
- /**
979
- * Fired when this editor instance is destroyed. The editor at this
980
- * point is not usable and this event should be used to perform the clean-up
981
- * in any plugin.
982
- * @name CKEDITOR.editor#destroy
983
- * @event
984
- */
985
-
986
- /**
987
- * Internal event to get the current data.
988
- * @name CKEDITOR.editor#beforeGetData
989
- * @event
990
- */
991
-
992
- /**
993
- * Internal event to perform the <code>#getSnapshot</code> call.
994
- * @name CKEDITOR.editor#getSnapshot
995
- * @event
996
- */
997
-
998
- /**
999
- * Internal event to perform the <code>#loadSnapshot</code> call.
1000
- * @name CKEDITOR.editor#loadSnapshot
1001
- * @event
1002
- */
1003
-
1004
- /**
1005
- * Event fired before the <code>#getData</code> call returns allowing additional manipulation.
1006
- * @name CKEDITOR.editor#getData
1007
- * @event
1008
- * @param {CKEDITOR.editor} editor This editor instance.
1009
- * @param {String} data.dataValue The data that will be returned.
1010
- */
1011
-
1012
- /**
1013
- * Event fired before the <code>#setData</code> call is executed allowing additional manipulation.
1014
- * @name CKEDITOR.editor#setData
1015
- * @event
1016
- * @param {CKEDITOR.editor} editor This editor instance.
1017
- * @param {String} data.dataValue The data that will be used.
1018
- */
1019
-
1020
- /**
1021
- * Event fired at the end of the <code>#setData</code> call execution. Usually it is better to use the
1022
- * <code>{@link CKEDITOR.editor.prototype.dataReady}</code> event.
1023
- * @name CKEDITOR.editor#afterSetData
1024
- * @event
1025
- * @param {CKEDITOR.editor} editor This editor instance.
1026
- * @param {String} data.dataValue The data that has been set.
1027
- */
1028
-
1029
- /**
1030
- * Internal event to perform the <code>#insertHtml</code> call
1031
- * @name CKEDITOR.editor#insertHtml
1032
- * @event
1033
- * @param {CKEDITOR.editor} editor This editor instance.
1034
- * @param {String} data The HTML to insert.
1035
- */
1036
-
1037
- /**
1038
- * Internal event to perform the <code>#insertText</code> call
1039
- * @name CKEDITOR.editor#insertText
1040
- * @event
1041
- * @param {CKEDITOR.editor} editor This editor instance.
1042
- * @param {String} text The text to insert.
1043
- */
1044
-
1045
- /**
1046
- * Internal event to perform the <code>#insertElement</code> call
1047
- * @name CKEDITOR.editor#insertElement
1048
- * @event
1049
- * @param {CKEDITOR.editor} editor This editor instance.
1050
- * @param {Object} element The element to insert.
1051
- */
1052
-
1053
- /**
1054
- * Event fired after the <code>{@link CKEDITOR.editor#readOnly}</code> property changes.
1055
- * @name CKEDITOR.editor#readOnly
1056
- * @event
1057
- * @since 3.6
1058
- * @param {CKEDITOR.editor} editor This editor instance.
1059
- */
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
+ * @fileOverview Defines the {@link CKEDITOR.editor} class, which represents an
8
+ * editor instance.
9
+ */
10
+
11
+ (function()
12
+ {
13
+ // The counter for automatic instance names.
14
+ var nameCounter = 0;
15
+
16
+ var getNewName = function()
17
+ {
18
+ var name = 'editor' + ( ++nameCounter );
19
+ return ( CKEDITOR.instances && CKEDITOR.instances[ name ] ) ? getNewName() : name;
20
+ };
21
+
22
+ // ##### START: Config Privates
23
+
24
+ // These function loads custom configuration files and cache the
25
+ // CKEDITOR.editorConfig functions defined on them, so there is no need to
26
+ // download them more than once for several instances.
27
+ var loadConfigLoaded = {};
28
+ var loadConfig = function( editor )
29
+ {
30
+ var customConfig = editor.config.customConfig;
31
+
32
+ // Check if there is a custom config to load.
33
+ if ( !customConfig )
34
+ return false;
35
+
36
+ customConfig = CKEDITOR.getUrl( customConfig );
37
+
38
+ var loadedConfig = loadConfigLoaded[ customConfig ] || ( loadConfigLoaded[ customConfig ] = {} );
39
+
40
+ // If the custom config has already been downloaded, reuse it.
41
+ if ( loadedConfig.fn )
42
+ {
43
+ // Call the cached CKEDITOR.editorConfig defined in the custom
44
+ // config file for the editor instance depending on it.
45
+ loadedConfig.fn.call( editor, editor.config );
46
+
47
+ // If there is no other customConfig in the chain, fire the
48
+ // "configLoaded" event.
49
+ if ( CKEDITOR.getUrl( editor.config.customConfig ) == customConfig || !loadConfig( editor ) )
50
+ editor.fireOnce( 'customConfigLoaded' );
51
+ }
52
+ else
53
+ {
54
+ // Load the custom configuration file.
55
+ CKEDITOR.scriptLoader.load( customConfig, function()
56
+ {
57
+ // If the CKEDITOR.editorConfig function has been properly
58
+ // defined in the custom configuration file, cache it.
59
+ if ( CKEDITOR.editorConfig )
60
+ loadedConfig.fn = CKEDITOR.editorConfig;
61
+ else
62
+ loadedConfig.fn = function(){};
63
+
64
+ // Call the load config again. This time the custom
65
+ // config is already cached and so it will get loaded.
66
+ loadConfig( editor );
67
+ });
68
+ }
69
+
70
+ return true;
71
+ };
72
+
73
+ var initConfig = function( editor, instanceConfig )
74
+ {
75
+ // Setup the lister for the "customConfigLoaded" event.
76
+ editor.on( 'customConfigLoaded', function()
77
+ {
78
+ if ( instanceConfig )
79
+ {
80
+ // Register the events that may have been set at the instance
81
+ // configuration object.
82
+ if ( instanceConfig.on )
83
+ {
84
+ for ( var eventName in instanceConfig.on )
85
+ {
86
+ editor.on( eventName, instanceConfig.on[ eventName ] );
87
+ }
88
+ }
89
+
90
+ // Overwrite the settings from the in-page config.
91
+ CKEDITOR.tools.extend( editor.config, instanceConfig, true );
92
+
93
+ delete editor.config.on;
94
+ }
95
+
96
+ onConfigLoaded( editor );
97
+ });
98
+
99
+ // The instance config may override the customConfig setting to avoid
100
+ // loading the default ~/config.js file.
101
+ if ( instanceConfig && instanceConfig.customConfig != undefined )
102
+ editor.config.customConfig = instanceConfig.customConfig;
103
+
104
+ // Load configs from the custom configuration files.
105
+ if ( !loadConfig( editor ) )
106
+ editor.fireOnce( 'customConfigLoaded' );
107
+ };
108
+
109
+ // ##### END: Config Privates
110
+
111
+ var onConfigLoaded = function( editor )
112
+ {
113
+ // Set config related properties.
114
+
115
+ var skin = editor.config.skin.split( ',' ),
116
+ skinName = skin[ 0 ],
117
+ skinPath = CKEDITOR.getUrl( skin[ 1 ] || (
118
+ '_source/' + // @Packager.RemoveLine
119
+ 'skins/' + skinName + '/' ) );
120
+
121
+ /**
122
+ * The name of the skin used by this editor instance. The skin name can
123
+ * be set through the <code>{@link CKEDITOR.config.skin}</code> setting.
124
+ * @name CKEDITOR.editor.prototype.skinName
125
+ * @type String
126
+ * @example
127
+ * alert( editor.skinName ); // E.g. "kama"
128
+ */
129
+ editor.skinName = skinName;
130
+
131
+ /**
132
+ * The full URL of the skin directory.
133
+ * @name CKEDITOR.editor.prototype.skinPath
134
+ * @type String
135
+ * @example
136
+ * alert( editor.skinPath ); // E.g. "http://example.com/ckeditor/skins/kama/"
137
+ */
138
+ editor.skinPath = skinPath;
139
+
140
+ /**
141
+ * The CSS class name used for skin identification purposes.
142
+ * @name CKEDITOR.editor.prototype.skinClass
143
+ * @type String
144
+ * @example
145
+ * alert( editor.skinClass ); // E.g. "cke_skin_kama"
146
+ */
147
+ editor.skinClass = 'cke_skin_' + skinName;
148
+
149
+ /**
150
+ * The <a href="http://en.wikipedia.org/wiki/Tabbing_navigation">tabbing
151
+ * navigation</a> order that has been calculated for this editor
152
+ * instance. This can be set by the <code>{@link CKEDITOR.config.tabIndex}</code>
153
+ * setting or taken from the <code>tabindex</code> attribute of the
154
+ * <code>{@link #element}</code> associated with the editor.
155
+ * @name CKEDITOR.editor.prototype.tabIndex
156
+ * @type Number
157
+ * @default 0 (zero)
158
+ * @example
159
+ * alert( editor.tabIndex ); // E.g. "0"
160
+ */
161
+ editor.tabIndex = editor.config.tabIndex || editor.element.getAttribute( 'tabindex' ) || 0;
162
+
163
+ /**
164
+ * Indicates the read-only state of this editor. This is a read-only property.
165
+ * @name CKEDITOR.editor.prototype.readOnly
166
+ * @type Boolean
167
+ * @since 3.6
168
+ * @see CKEDITOR.editor#setReadOnly
169
+ */
170
+ editor.readOnly = !!( editor.config.readOnly || editor.element.getAttribute( 'disabled' ) );
171
+
172
+ // Fire the "configLoaded" event.
173
+ editor.fireOnce( 'configLoaded' );
174
+
175
+ // Load language file.
176
+ loadSkin( editor );
177
+ };
178
+
179
+ var loadLang = function( editor )
180
+ {
181
+ CKEDITOR.lang.load( editor.config.language, editor.config.defaultLanguage, function( languageCode, lang )
182
+ {
183
+ /**
184
+ * The code for the language resources that have been loaded
185
+ * for the user interface elements of this editor instance.
186
+ * @name CKEDITOR.editor.prototype.langCode
187
+ * @type String
188
+ * @example
189
+ * alert( editor.langCode ); // E.g. "en"
190
+ */
191
+ editor.langCode = languageCode;
192
+
193
+ /**
194
+ * An object that contains all language strings used by the editor
195
+ * interface.
196
+ * @name CKEDITOR.editor.prototype.lang
197
+ * @type CKEDITOR.lang
198
+ * @example
199
+ * alert( editor.lang.bold ); // E.g. "Negrito" (if the language is set to Portuguese)
200
+ */
201
+ // As we'll be adding plugin specific entries that could come
202
+ // from different language code files, we need a copy of lang,
203
+ // not a direct reference to it.
204
+ editor.lang = CKEDITOR.tools.prototypedCopy( lang );
205
+
206
+ // We're not able to support RTL in Firefox 2 at this time.
207
+ if ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 && editor.lang.dir == 'rtl' )
208
+ editor.lang.dir = 'ltr';
209
+
210
+ editor.fire( 'langLoaded' );
211
+
212
+ var config = editor.config;
213
+ config.contentsLangDirection == 'ui' && ( config.contentsLangDirection = editor.lang.dir );
214
+
215
+ loadPlugins( editor );
216
+ });
217
+ };
218
+
219
+ var loadPlugins = function( editor )
220
+ {
221
+ var config = editor.config,
222
+ plugins = config.plugins,
223
+ extraPlugins = config.extraPlugins,
224
+ removePlugins = config.removePlugins;
225
+
226
+ if ( extraPlugins )
227
+ {
228
+ // Remove them first to avoid duplications.
229
+ var removeRegex = new RegExp( '(?:^|,)(?:' + extraPlugins.replace( /\s*,\s*/g, '|' ) + ')(?=,|$)' , 'g' );
230
+ plugins = plugins.replace( removeRegex, '' );
231
+
232
+ plugins += ',' + extraPlugins;
233
+ }
234
+
235
+ if ( removePlugins )
236
+ {
237
+ removeRegex = new RegExp( '(?:^|,)(?:' + removePlugins.replace( /\s*,\s*/g, '|' ) + ')(?=,|$)' , 'g' );
238
+ plugins = plugins.replace( removeRegex, '' );
239
+ }
240
+
241
+ // Load the Adobe AIR plugin conditionally.
242
+ CKEDITOR.env.air && ( plugins += ',adobeair' );
243
+
244
+ // Load all plugins defined in the "plugins" setting.
245
+ CKEDITOR.plugins.load( plugins.split( ',' ), function( plugins )
246
+ {
247
+ // The list of plugins.
248
+ var pluginsArray = [];
249
+
250
+ // The language code to get loaded for each plugin. Null
251
+ // entries will be appended for plugins with no language files.
252
+ var languageCodes = [];
253
+
254
+ // The list of URLs to language files.
255
+ var languageFiles = [];
256
+
257
+ /**
258
+ * An object that contains references to all plugins used by this
259
+ * editor instance.
260
+ * @name CKEDITOR.editor.prototype.plugins
261
+ * @type Object
262
+ * @example
263
+ * alert( editor.plugins.dialog.path ); // E.g. "http://example.com/ckeditor/plugins/dialog/"
264
+ */
265
+ editor.plugins = plugins;
266
+
267
+ // Loop through all plugins, to build the list of language
268
+ // files to get loaded.
269
+ for ( var pluginName in plugins )
270
+ {
271
+ var plugin = plugins[ pluginName ],
272
+ pluginLangs = plugin.lang,
273
+ pluginPath = CKEDITOR.plugins.getPath( pluginName ),
274
+ lang = null;
275
+
276
+ // Set the plugin path in the plugin.
277
+ plugin.path = pluginPath;
278
+
279
+ // If the plugin has "lang".
280
+ if ( pluginLangs )
281
+ {
282
+ // Resolve the plugin language. If the current language
283
+ // is not available, get the first one (default one).
284
+ lang = ( CKEDITOR.tools.indexOf( pluginLangs, editor.langCode ) >= 0 ? editor.langCode : pluginLangs[ 0 ] );
285
+
286
+ if ( !plugin.langEntries || !plugin.langEntries[ lang ] )
287
+ {
288
+ // Put the language file URL into the list of files to
289
+ // get downloaded.
290
+ languageFiles.push( CKEDITOR.getUrl( pluginPath + 'lang/' + lang + '.js' ) );
291
+ }
292
+ else
293
+ {
294
+ CKEDITOR.tools.extend( editor.lang, plugin.langEntries[ lang ] );
295
+ lang = null;
296
+ }
297
+ }
298
+
299
+ // Save the language code, so we know later which
300
+ // language has been resolved to this plugin.
301
+ languageCodes.push( lang );
302
+
303
+ pluginsArray.push( plugin );
304
+ }
305
+
306
+ // Load all plugin specific language files in a row.
307
+ CKEDITOR.scriptLoader.load( languageFiles, function()
308
+ {
309
+ // Initialize all plugins that have the "beforeInit" and "init" methods defined.
310
+ var methods = [ 'beforeInit', 'init', 'afterInit' ];
311
+ for ( var m = 0 ; m < methods.length ; m++ )
312
+ {
313
+ for ( var i = 0 ; i < pluginsArray.length ; i++ )
314
+ {
315
+ var plugin = pluginsArray[ i ];
316
+
317
+ // Uses the first loop to update the language entries also.
318
+ if ( m === 0 && languageCodes[ i ] && plugin.lang )
319
+ CKEDITOR.tools.extend( editor.lang, plugin.langEntries[ languageCodes[ i ] ] );
320
+
321
+ // Call the plugin method (beforeInit and init).
322
+ if ( plugin[ methods[ m ] ] )
323
+ plugin[ methods[ m ] ]( editor );
324
+ }
325
+ }
326
+
327
+ // Load the editor skin.
328
+ editor.fire( 'pluginsLoaded' );
329
+ loadTheme( editor );
330
+ });
331
+ });
332
+ };
333
+
334
+ var loadSkin = function( editor )
335
+ {
336
+ CKEDITOR.skins.load( editor, 'editor', function()
337
+ {
338
+ loadLang( editor );
339
+ });
340
+ };
341
+
342
+ var loadTheme = function( editor )
343
+ {
344
+ var theme = editor.config.theme;
345
+ CKEDITOR.themes.load( theme, function()
346
+ {
347
+ /**
348
+ * The theme used by this editor instance.
349
+ * @name CKEDITOR.editor.prototype.theme
350
+ * @type CKEDITOR.theme
351
+ * @example
352
+ * alert( editor.theme ); // E.g. "http://example.com/ckeditor/themes/default/"
353
+ */
354
+ var editorTheme = editor.theme = CKEDITOR.themes.get( theme );
355
+ editorTheme.path = CKEDITOR.themes.getPath( theme );
356
+ editorTheme.build( editor );
357
+
358
+ if ( editor.config.autoUpdateElement )
359
+ attachToForm( editor );
360
+ });
361
+ };
362
+
363
+ var attachToForm = function( editor )
364
+ {
365
+ var element = editor.element;
366
+
367
+ // If are replacing a textarea, we must
368
+ if ( editor.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE && element.is( 'textarea' ) )
369
+ {
370
+ var form = element.$.form && new CKEDITOR.dom.element( element.$.form );
371
+ if ( form )
372
+ {
373
+ function onSubmit()
374
+ {
375
+ editor.updateElement();
376
+ }
377
+ form.on( 'submit',onSubmit );
378
+
379
+ // Setup the submit function because it doesn't fire the
380
+ // "submit" event.
381
+ if ( !form.$.submit.nodeName && !form.$.submit.length )
382
+ {
383
+ form.$.submit = CKEDITOR.tools.override( form.$.submit, function( originalSubmit )
384
+ {
385
+ return function()
386
+ {
387
+ editor.updateElement();
388
+
389
+ // For IE, the DOM submit function is not a
390
+ // function, so we need thid check.
391
+ if ( originalSubmit.apply )
392
+ originalSubmit.apply( this, arguments );
393
+ else
394
+ originalSubmit();
395
+ };
396
+ });
397
+ }
398
+
399
+ // Remove 'submit' events registered on form element before destroying.(#3988)
400
+ editor.on( 'destroy', function()
401
+ {
402
+ form.removeListener( 'submit', onSubmit );
403
+ } );
404
+ }
405
+ }
406
+ };
407
+
408
+ function updateCommands()
409
+ {
410
+ var command,
411
+ commands = this._.commands,
412
+ mode = this.mode;
413
+
414
+ if ( !mode )
415
+ return;
416
+
417
+ for ( var name in commands )
418
+ {
419
+ command = commands[ name ];
420
+ command[ command.startDisabled ? 'disable' :
421
+ this.readOnly && !command.readOnly ? 'disable' : command.modes[ mode ] ? 'enable' : 'disable' ]();
422
+ }
423
+ }
424
+
425
+ /**
426
+ * Initializes the editor instance. This function is called by the editor
427
+ * contructor (<code>editor_basic.js</code>).
428
+ * @private
429
+ */
430
+ CKEDITOR.editor.prototype._init = function()
431
+ {
432
+ // Get the properties that have been saved in the editor_base
433
+ // implementation.
434
+ var element = CKEDITOR.dom.element.get( this._.element ),
435
+ instanceConfig = this._.instanceConfig;
436
+ delete this._.element;
437
+ delete this._.instanceConfig;
438
+
439
+ this._.commands = {};
440
+ this._.styles = [];
441
+
442
+ /**
443
+ * The DOM element that was replaced by this editor instance. This
444
+ * element stores the editor data on load and post.
445
+ * @name CKEDITOR.editor.prototype.element
446
+ * @type CKEDITOR.dom.element
447
+ * @example
448
+ * var editor = CKEDITOR.instances.editor1;
449
+ * alert( <strong>editor.element</strong>.getName() ); // E.g. "textarea"
450
+ */
451
+ this.element = element;
452
+
453
+ /**
454
+ * The editor instance name. It may be the replaced element ID, name, or
455
+ * a default name using the progressive counter (<code>editor1</code>,
456
+ * <code>editor2</code>, ...).
457
+ * @name CKEDITOR.editor.prototype.name
458
+ * @type String
459
+ * @example
460
+ * var editor = CKEDITOR.instances.editor1;
461
+ * alert( <strong>editor.name</strong> ); // "editor1"
462
+ */
463
+ this.name = ( element && ( this.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE )
464
+ && ( element.getId() || element.getNameAtt() ) )
465
+ || getNewName();
466
+
467
+ if ( this.name in CKEDITOR.instances )
468
+ throw '[CKEDITOR.editor] The instance "' + this.name + '" already exists.';
469
+
470
+ /**
471
+ * A unique random string assigned to each editor instance on the page.
472
+ * @name CKEDITOR.editor.prototype.id
473
+ * @type String
474
+ */
475
+ this.id = CKEDITOR.tools.getNextId();
476
+
477
+ /**
478
+ * The configurations for this editor instance. It inherits all
479
+ * settings defined in <code>(@link CKEDITOR.config}</code>, combined with settings
480
+ * loaded from custom configuration files and those defined inline in
481
+ * the page when creating the editor.
482
+ * @name CKEDITOR.editor.prototype.config
483
+ * @type Object
484
+ * @example
485
+ * var editor = CKEDITOR.instances.editor1;
486
+ * alert( <strong>editor.config.theme</strong> ); // E.g. "default"
487
+ */
488
+ this.config = CKEDITOR.tools.prototypedCopy( CKEDITOR.config );
489
+
490
+ /**
491
+ * The namespace containing UI features related to this editor instance.
492
+ * @name CKEDITOR.editor.prototype.ui
493
+ * @type CKEDITOR.ui
494
+ * @example
495
+ */
496
+ this.ui = new CKEDITOR.ui( this );
497
+
498
+ /**
499
+ * Controls the focus state of this editor instance. This property
500
+ * is rarely used for normal API operations. It is mainly
501
+ * intended for developers adding UI elements to the editor interface.
502
+ * @name CKEDITOR.editor.prototype.focusManager
503
+ * @type CKEDITOR.focusManager
504
+ * @example
505
+ */
506
+ this.focusManager = new CKEDITOR.focusManager( this );
507
+
508
+ CKEDITOR.fire( 'instanceCreated', null, this );
509
+
510
+ this.on( 'mode', updateCommands, null, null, 1 );
511
+ this.on( 'readOnly', updateCommands, null, null, 1 );
512
+
513
+ initConfig( this, instanceConfig );
514
+ };
515
+ })();
516
+
517
+ CKEDITOR.tools.extend( CKEDITOR.editor.prototype,
518
+ /** @lends CKEDITOR.editor.prototype */
519
+ {
520
+ /**
521
+ * Adds a command definition to the editor instance. Commands added with
522
+ * this function can be executed later with the <code>{@link #execCommand}</code> method.
523
+ * @param {String} commandName The indentifier name of the command.
524
+ * @param {CKEDITOR.commandDefinition} commandDefinition The command definition.
525
+ * @example
526
+ * editorInstance.addCommand( 'sample',
527
+ * {
528
+ * exec : function( editor )
529
+ * {
530
+ * alert( 'Executing a command for the editor name "' + editor.name + '"!' );
531
+ * }
532
+ * });
533
+ */
534
+ addCommand : function( commandName, commandDefinition )
535
+ {
536
+ return this._.commands[ commandName ] = new CKEDITOR.command( this, commandDefinition );
537
+ },
538
+
539
+ /**
540
+ * Adds a piece of CSS code to the editor which will be applied to the WYSIWYG editing document.
541
+ * This CSS would not be added to the output, and is there mainly for editor-specific editing requirements.
542
+ * Note: This function should be called before the editor is loaded to take effect.
543
+ * @param css {String} CSS text.
544
+ * @example
545
+ * editorInstance.addCss( 'body { background-color: grey; }' );
546
+ */
547
+ addCss : function( css )
548
+ {
549
+ this._.styles.push( css );
550
+ },
551
+
552
+ /**
553
+ * Destroys the editor instance, releasing all resources used by it.
554
+ * If the editor replaced an element, the element will be recovered.
555
+ * @param {Boolean} [noUpdate] If the instance is replacing a DOM
556
+ * element, this parameter indicates whether or not to update the
557
+ * element with the instance contents.
558
+ * @example
559
+ * alert( CKEDITOR.instances.editor1 ); // E.g "object"
560
+ * <strong>CKEDITOR.instances.editor1.destroy()</strong>;
561
+ * alert( CKEDITOR.instances.editor1 ); // "undefined"
562
+ */
563
+ destroy : function( noUpdate )
564
+ {
565
+ if ( !noUpdate )
566
+ this.updateElement();
567
+
568
+ this.fire( 'destroy' );
569
+ this.theme && this.theme.destroy( this );
570
+
571
+ CKEDITOR.remove( this );
572
+ CKEDITOR.fire( 'instanceDestroyed', null, this );
573
+ },
574
+
575
+ /**
576
+ * Executes a command associated with the editor.
577
+ * @param {String} commandName The indentifier name of the command.
578
+ * @param {Object} [data] Data to be passed to the command.
579
+ * @returns {Boolean} <code>true</code> if the command was executed
580
+ * successfully, otherwise <code>false</code>.
581
+ * @see CKEDITOR.editor.addCommand
582
+ * @example
583
+ * editorInstance.execCommand( 'bold' );
584
+ */
585
+ execCommand : function( commandName, data )
586
+ {
587
+ var command = this.getCommand( commandName );
588
+
589
+ var eventData =
590
+ {
591
+ name: commandName,
592
+ commandData: data,
593
+ command: command
594
+ };
595
+
596
+ if ( command && command.state != CKEDITOR.TRISTATE_DISABLED )
597
+ {
598
+ if ( this.fire( 'beforeCommandExec', eventData ) !== true )
599
+ {
600
+ eventData.returnValue = command.exec( eventData.commandData );
601
+
602
+ // Fire the 'afterCommandExec' immediately if command is synchronous.
603
+ if ( !command.async && this.fire( 'afterCommandExec', eventData ) !== true )
604
+ return eventData.returnValue;
605
+ }
606
+ }
607
+
608
+ // throw 'Unknown command name "' + commandName + '"';
609
+ return false;
610
+ },
611
+
612
+ /**
613
+ * Gets one of the registered commands. Note that after registering a
614
+ * command definition with <code>{@link #addCommand}</code>, it is
615
+ * transformed internally into an instance of
616
+ * <code>{@link CKEDITOR.command}</code>, which will then be returned
617
+ * by this function.
618
+ * @param {String} commandName The name of the command to be returned.
619
+ * This is the same name that is used to register the command with
620
+ * <code>addCommand</code>.
621
+ * @returns {CKEDITOR.command} The command object identified by the
622
+ * provided name.
623
+ */
624
+ getCommand : function( commandName )
625
+ {
626
+ return this._.commands[ commandName ];
627
+ },
628
+
629
+ /**
630
+ * Gets the editor data. The data will be in raw format. It is the same
631
+ * data that is posted by the editor.
632
+ * @type String
633
+ * @returns (String) The editor data.
634
+ * @example
635
+ * if ( CKEDITOR.instances.editor1.<strong>getData()</strong> == '' )
636
+ * alert( 'There is no data available' );
637
+ */
638
+ getData : function()
639
+ {
640
+ this.fire( 'beforeGetData' );
641
+
642
+ var eventData = this._.data;
643
+
644
+ if ( typeof eventData != 'string' )
645
+ {
646
+ var element = this.element;
647
+ if ( element && this.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE )
648
+ eventData = element.is( 'textarea' ) ? element.getValue() : element.getHtml();
649
+ else
650
+ eventData = '';
651
+ }
652
+
653
+ eventData = { dataValue : eventData };
654
+
655
+ // Fire "getData" so data manipulation may happen.
656
+ this.fire( 'getData', eventData );
657
+
658
+ return eventData.dataValue;
659
+ },
660
+
661
+ /**
662
+ * Gets the "raw data" currently available in the editor. This is a
663
+ * fast method which returns the data as is, without processing, so it is
664
+ * not recommended to use it on resulting pages. Instead it can be used
665
+ * combined with the <code>{@link #loadSnapshot}</code> method in order
666
+ * to be able to automatically save the editor data from time to time
667
+ * while the user is using the editor, to avoid data loss, without risking
668
+ * performance issues.
669
+ * @see CKEDITOR.editor.getData
670
+ * @example
671
+ * alert( editor.getSnapshot() );
672
+ */
673
+ getSnapshot : function()
674
+ {
675
+ var data = this.fire( 'getSnapshot' );
676
+
677
+ if ( typeof data != 'string' )
678
+ {
679
+ var element = this.element;
680
+ if ( element && this.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE )
681
+ data = element.is( 'textarea' ) ? element.getValue() : element.getHtml();
682
+ }
683
+
684
+ return data;
685
+ },
686
+
687
+ /**
688
+ * Loads "raw data" into the editor. The data is loaded with processing
689
+ * straight to the editing area. It should not be used as a way to load
690
+ * any kind of data, but instead in combination with
691
+ * <code>{@link #getSnapshot}</code> produced data.
692
+ * @see CKEDITOR.editor.setData
693
+ * @example
694
+ * var data = editor.getSnapshot();
695
+ * editor.<strong>loadSnapshot( data )</strong>;
696
+ */
697
+ loadSnapshot : function( snapshot )
698
+ {
699
+ this.fire( 'loadSnapshot', snapshot );
700
+ },
701
+
702
+ /**
703
+ * Sets the editor data. The data must be provided in the raw format (HTML).<br />
704
+ * <br />
705
+ * Note that this method is asynchronous. The <code>callback</code> parameter must
706
+ * be used if interaction with the editor is needed after setting the data.
707
+ * @param {String} data HTML code to replace the curent content in the
708
+ * editor.
709
+ * @param {Function} callback Function to be called after the <code>setData</code>
710
+ * is completed.
711
+ *@param {Boolean} internal Whether to suppress any event firing when copying data
712
+ * internally inside the editor.
713
+ * @example
714
+ * CKEDITOR.instances.editor1.<strong>setData</strong>( '&lt;p&gt;This is the editor data.&lt;/p&gt;' );
715
+ * @example
716
+ * CKEDITOR.instances.editor1.<strong>setData</strong>( '&lt;p&gt;Some other editor data.&lt;/p&gt;', function()
717
+ * {
718
+ * this.checkDirty(); // true
719
+ * });
720
+ */
721
+ setData : function( data , callback, internal )
722
+ {
723
+ if( callback )
724
+ {
725
+ this.on( 'dataReady', function( evt )
726
+ {
727
+ evt.removeListener();
728
+ callback.call( evt.editor );
729
+ } );
730
+ }
731
+
732
+ // Fire "setData" so data manipulation may happen.
733
+ var eventData = { dataValue : data };
734
+ !internal && this.fire( 'setData', eventData );
735
+
736
+ this._.data = eventData.dataValue;
737
+
738
+ !internal && this.fire( 'afterSetData', eventData );
739
+ },
740
+
741
+ /**
742
+ * Puts or restores the editor into read-only state. When in read-only,
743
+ * the user is not able to change the editor contents, but can still use
744
+ * some editor features. This function sets the <code>{@link CKEDITOR.config.readOnly}</code>
745
+ * property of the editor, firing the <code>{@link CKEDITOR.editor#readOnly}</code> event.<br><br>
746
+ * <strong>Note:</strong> the current editing area will be reloaded.
747
+ * @param {Boolean} [isReadOnly] Indicates that the editor must go
748
+ * read-only (<code>true</code>, default) or be restored and made editable
749
+ * (<code>false</code>).
750
+ * @since 3.6
751
+ */
752
+ setReadOnly : function( isReadOnly )
753
+ {
754
+ isReadOnly = ( isReadOnly == undefined ) || isReadOnly;
755
+
756
+ if ( this.readOnly != isReadOnly )
757
+ {
758
+ this.readOnly = isReadOnly;
759
+
760
+ // Fire the readOnly event so the editor features can update
761
+ // their state accordingly.
762
+ this.fire( 'readOnly' );
763
+ }
764
+ },
765
+
766
+ /**
767
+ * Inserts HTML code into the currently selected position in the editor in WYSIWYG mode.
768
+ * @param {String} data HTML code to be inserted into the editor.
769
+ * @example
770
+ * CKEDITOR.instances.editor1.<strong>insertHtml( '&lt;p&gt;This is a new paragraph.&lt;/p&gt;' )</strong>;
771
+ */
772
+ insertHtml : function( data )
773
+ {
774
+ this.fire( 'insertHtml', data );
775
+ },
776
+
777
+ /**
778
+ * Insert text content into the currently selected position in the
779
+ * editor in WYSIWYG mode. The styles of the selected element will be applied to the inserted text.
780
+ * Spaces around the text will be leaving untouched.
781
+ * <strong>Note:</strong> two subsequent line-breaks will introduce one paragraph. This depends on <code>{@link CKEDITOR.config.enterMode}</code>;
782
+ * A single line-break will be instead translated into one &lt;br /&gt;.
783
+ * @since 3.5
784
+ * @param {String} text Text to be inserted into the editor.
785
+ * @example
786
+ * CKEDITOR.instances.editor1.<strong>insertText( ' line1 \n\n line2' )</strong>;
787
+ */
788
+ insertText : function( text )
789
+ {
790
+ this.fire( 'insertText', text );
791
+ },
792
+
793
+ /**
794
+ * Inserts an element into the currently selected position in the
795
+ * editor in WYSIWYG mode.
796
+ * @param {CKEDITOR.dom.element} element The element to be inserted
797
+ * into the editor.
798
+ * @example
799
+ * var element = CKEDITOR.dom.element.createFromHtml( '&lt;img src="hello.png" border="0" title="Hello" /&gt;' );
800
+ * CKEDITOR.instances.editor1.<strong>insertElement( element )</strong>;
801
+ */
802
+ insertElement : function( element )
803
+ {
804
+ this.fire( 'insertElement', element );
805
+ },
806
+
807
+ /**
808
+ * Checks whether the current editor contents contain changes when
809
+ * compared to the contents loaded into the editor at startup, or to
810
+ * the contents available in the editor when <code>{@link #resetDirty}</code>
811
+ * was called.
812
+ * @returns {Boolean} "true" is the contents contain changes.
813
+ * @example
814
+ * function beforeUnload( e )
815
+ * {
816
+ * if ( CKEDITOR.instances.editor1.<strong>checkDirty()</strong> )
817
+ * return e.returnValue = "You will lose the changes made in the editor.";
818
+ * }
819
+ *
820
+ * if ( window.addEventListener )
821
+ * window.addEventListener( 'beforeunload', beforeUnload, false );
822
+ * else
823
+ * window.attachEvent( 'onbeforeunload', beforeUnload );
824
+ */
825
+ checkDirty : function()
826
+ {
827
+ return ( this.mayBeDirty && this._.previousValue !== this.getSnapshot() );
828
+ },
829
+
830
+ /**
831
+ * Resets the "dirty state" of the editor so subsequent calls to
832
+ * <code>{@link #checkDirty}</code> will return <code>false</code> if the user will not
833
+ * have made further changes to the contents.
834
+ * @example
835
+ * alert( editor.checkDirty() ); // E.g. "true"
836
+ * editor.<strong>resetDirty()</strong>;
837
+ * alert( editor.checkDirty() ); // "false"
838
+ */
839
+ resetDirty : function()
840
+ {
841
+ if ( this.mayBeDirty )
842
+ this._.previousValue = this.getSnapshot();
843
+ },
844
+
845
+ /**
846
+ * Updates the <code>&lt;textarea&gt;</code> element that was replaced by the editor with
847
+ * the current data available in the editor.
848
+ * @see CKEDITOR.editor.element
849
+ * @example
850
+ * CKEDITOR.instances.editor1.updateElement();
851
+ * alert( document.getElementById( 'editor1' ).value ); // The current editor data.
852
+ */
853
+ updateElement : function()
854
+ {
855
+ var element = this.element;
856
+ if ( element && this.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE )
857
+ {
858
+ var data = this.getData();
859
+
860
+ if ( this.config.htmlEncodeOutput )
861
+ data = CKEDITOR.tools.htmlEncode( data );
862
+
863
+ if ( element.is( 'textarea' ) )
864
+ element.setValue( data );
865
+ else
866
+ element.setHtml( data );
867
+ }
868
+ }
869
+ });
870
+
871
+ CKEDITOR.on( 'loaded', function()
872
+ {
873
+ // Run the full initialization for pending editors.
874
+ var pending = CKEDITOR.editor._pending;
875
+ if ( pending )
876
+ {
877
+ delete CKEDITOR.editor._pending;
878
+
879
+ for ( var i = 0 ; i < pending.length ; i++ )
880
+ pending[ i ]._init();
881
+ }
882
+ });
883
+
884
+ /**
885
+ * Whether to escape HTML when the editor updates the original input element.
886
+ * @name CKEDITOR.config.htmlEncodeOutput
887
+ * @since 3.1
888
+ * @type Boolean
889
+ * @default false
890
+ * @example
891
+ * config.htmlEncodeOutput = true;
892
+ */
893
+
894
+ /**
895
+ * If <code>true</code>, makes the editor start in read-only state. Otherwise, it will check
896
+ * if the linked <code>&lt;textarea&gt;</code> element has the <code>disabled</code> attribute.
897
+ * @name CKEDITOR.config.readOnly
898
+ * @see CKEDITOR.editor#setReadOnly
899
+ * @type Boolean
900
+ * @default false
901
+ * @since 3.6
902
+ * @example
903
+ * config.readOnly = true;
904
+ */
905
+
906
+ /**
907
+ * Fired when a CKEDITOR instance is created, but still before initializing it.
908
+ * To interact with a fully initialized instance, use the
909
+ * <code>{@link CKEDITOR#instanceReady}</code> event instead.
910
+ * @name CKEDITOR#instanceCreated
911
+ * @event
912
+ * @param {CKEDITOR.editor} editor The editor instance that has been created.
913
+ */
914
+
915
+ /**
916
+ * Fired when a CKEDITOR instance is destroyed.
917
+ * @name CKEDITOR#instanceDestroyed
918
+ * @event
919
+ * @param {CKEDITOR.editor} editor The editor instance that has been destroyed.
920
+ */
921
+
922
+ /**
923
+ * Fired when the language is loaded into the editor instance.
924
+ * @name CKEDITOR.editor#langLoaded
925
+ * @event
926
+ * @since 3.6.1
927
+ * @param {CKEDITOR.editor} editor This editor instance.
928
+ */
929
+
930
+ /**
931
+ * Fired when all plugins are loaded and initialized into the editor instance.
932
+ * @name CKEDITOR.editor#pluginsLoaded
933
+ * @event
934
+ * @param {CKEDITOR.editor} editor This editor instance.
935
+ */
936
+
937
+ /**
938
+ * Fired before the command execution when <code>{@link #execCommand}</code> is called.
939
+ * @name CKEDITOR.editor#beforeCommandExec
940
+ * @event
941
+ * @param {CKEDITOR.editor} editor This editor instance.
942
+ * @param {String} data.name The command name.
943
+ * @param {Object} data.commandData The data to be sent to the command. This
944
+ * can be manipulated by the event listener.
945
+ * @param {CKEDITOR.command} data.command The command itself.
946
+ */
947
+
948
+ /**
949
+ * Fired after the command execution when <code>{@link #execCommand}</code> is called.
950
+ * @name CKEDITOR.editor#afterCommandExec
951
+ * @event
952
+ * @param {CKEDITOR.editor} editor This editor instance.
953
+ * @param {String} data.name The command name.
954
+ * @param {Object} data.commandData The data sent to the command.
955
+ * @param {CKEDITOR.command} data.command The command itself.
956
+ * @param {Object} data.returnValue The value returned by the command execution.
957
+ */
958
+
959
+ /**
960
+ * Fired when the custom configuration file is loaded, before the final
961
+ * configurations initialization.<br />
962
+ * <br />
963
+ * Custom configuration files can be loaded thorugh the
964
+ * <code>{@link CKEDITOR.config.customConfig}</code> setting. Several files can be loaded
965
+ * by changing this setting.
966
+ * @name CKEDITOR.editor#customConfigLoaded
967
+ * @event
968
+ * @param {CKEDITOR.editor} editor This editor instance.
969
+ */
970
+
971
+ /**
972
+ * Fired once the editor configuration is ready (loaded and processed).
973
+ * @name CKEDITOR.editor#configLoaded
974
+ * @event
975
+ * @param {CKEDITOR.editor} editor This editor instance.
976
+ */
977
+
978
+ /**
979
+ * Fired when this editor instance is destroyed. The editor at this
980
+ * point is not usable and this event should be used to perform the clean-up
981
+ * in any plugin.
982
+ * @name CKEDITOR.editor#destroy
983
+ * @event
984
+ */
985
+
986
+ /**
987
+ * Internal event to get the current data.
988
+ * @name CKEDITOR.editor#beforeGetData
989
+ * @event
990
+ */
991
+
992
+ /**
993
+ * Internal event to perform the <code>#getSnapshot</code> call.
994
+ * @name CKEDITOR.editor#getSnapshot
995
+ * @event
996
+ */
997
+
998
+ /**
999
+ * Internal event to perform the <code>#loadSnapshot</code> call.
1000
+ * @name CKEDITOR.editor#loadSnapshot
1001
+ * @event
1002
+ */
1003
+
1004
+ /**
1005
+ * Event fired before the <code>#getData</code> call returns allowing additional manipulation.
1006
+ * @name CKEDITOR.editor#getData
1007
+ * @event
1008
+ * @param {CKEDITOR.editor} editor This editor instance.
1009
+ * @param {String} data.dataValue The data that will be returned.
1010
+ */
1011
+
1012
+ /**
1013
+ * Event fired before the <code>#setData</code> call is executed allowing additional manipulation.
1014
+ * @name CKEDITOR.editor#setData
1015
+ * @event
1016
+ * @param {CKEDITOR.editor} editor This editor instance.
1017
+ * @param {String} data.dataValue The data that will be used.
1018
+ */
1019
+
1020
+ /**
1021
+ * Event fired at the end of the <code>#setData</code> call execution. Usually it is better to use the
1022
+ * <code>{@link CKEDITOR.editor.prototype.dataReady}</code> event.
1023
+ * @name CKEDITOR.editor#afterSetData
1024
+ * @event
1025
+ * @param {CKEDITOR.editor} editor This editor instance.
1026
+ * @param {String} data.dataValue The data that has been set.
1027
+ */
1028
+
1029
+ /**
1030
+ * Internal event to perform the <code>#insertHtml</code> call
1031
+ * @name CKEDITOR.editor#insertHtml
1032
+ * @event
1033
+ * @param {CKEDITOR.editor} editor This editor instance.
1034
+ * @param {String} data The HTML to insert.
1035
+ */
1036
+
1037
+ /**
1038
+ * Internal event to perform the <code>#insertText</code> call
1039
+ * @name CKEDITOR.editor#insertText
1040
+ * @event
1041
+ * @param {CKEDITOR.editor} editor This editor instance.
1042
+ * @param {String} text The text to insert.
1043
+ */
1044
+
1045
+ /**
1046
+ * Internal event to perform the <code>#insertElement</code> call
1047
+ * @name CKEDITOR.editor#insertElement
1048
+ * @event
1049
+ * @param {CKEDITOR.editor} editor This editor instance.
1050
+ * @param {Object} element The element to insert.
1051
+ */
1052
+
1053
+ /**
1054
+ * Event fired after the <code>{@link CKEDITOR.editor#readOnly}</code> property changes.
1055
+ * @name CKEDITOR.editor#readOnly
1056
+ * @event
1057
+ * @since 3.6
1058
+ * @param {CKEDITOR.editor} editor This editor instance.
1059
+ */