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,71 +1,71 @@
1
- a
2
- {
3
- text-decoration:none;
4
- padding: 2px 4px 4px 6px;
5
- display : block;
6
- border-width: 1px;
7
- border-style: solid;
8
- margin : 0px;
9
- }
10
-
11
- a.cke_scayt_toogle:hover,
12
- a.cke_scayt_toogle:focus,
13
- a.cke_scayt_toogle:active
14
- {
15
- border-color: #316ac5;
16
- background-color: #dff1ff;
17
- color : #000;
18
- cursor: pointer;
19
- margin : 0px;
20
- }
21
- a.cke_scayt_toogle {
22
- color : #316ac5;
23
- border-color: #fff;
24
- }
25
- .scayt_enabled a.cke_scayt_item {
26
- color : #316ac5;
27
- border-color: #fff;
28
- margin : 0px;
29
- }
30
- .scayt_disabled a.cke_scayt_item {
31
- color : gray;
32
- border-color : #fff;
33
- }
34
- .scayt_enabled a.cke_scayt_item:hover,
35
- .scayt_enabled a.cke_scayt_item:focus,
36
- .scayt_enabled a.cke_scayt_item:active
37
- {
38
- border-color: #316ac5;
39
- background-color: #dff1ff;
40
- color : #000;
41
- cursor: pointer;
42
- }
43
- .scayt_disabled a.cke_scayt_item:hover,
44
- .scayt_disabled a.cke_scayt_item:focus,
45
- .scayt_disabled a.cke_scayt_item:active
46
- {
47
- border-color: gray;
48
- background-color: #dff1ff;
49
- color : gray;
50
- cursor: no-drop;
51
- }
52
- .cke_scayt_set_on, .cke_scayt_set_off
53
- {
54
- display: none;
55
- }
56
- .scayt_enabled .cke_scayt_set_on
57
- {
58
- display: none;
59
- }
60
- .scayt_disabled .cke_scayt_set_on
61
- {
62
- display: inline;
63
- }
64
- .scayt_disabled .cke_scayt_set_off
65
- {
66
- display: none;
67
- }
68
- .scayt_enabled .cke_scayt_set_off
69
- {
70
- display: inline;
71
- }
1
+ a
2
+ {
3
+ text-decoration:none;
4
+ padding: 2px 4px 4px 6px;
5
+ display : block;
6
+ border-width: 1px;
7
+ border-style: solid;
8
+ margin : 0px;
9
+ }
10
+
11
+ a.cke_scayt_toogle:hover,
12
+ a.cke_scayt_toogle:focus,
13
+ a.cke_scayt_toogle:active
14
+ {
15
+ border-color: #316ac5;
16
+ background-color: #dff1ff;
17
+ color : #000;
18
+ cursor: pointer;
19
+ margin : 0px;
20
+ }
21
+ a.cke_scayt_toogle {
22
+ color : #316ac5;
23
+ border-color: #fff;
24
+ }
25
+ .scayt_enabled a.cke_scayt_item {
26
+ color : #316ac5;
27
+ border-color: #fff;
28
+ margin : 0px;
29
+ }
30
+ .scayt_disabled a.cke_scayt_item {
31
+ color : gray;
32
+ border-color : #fff;
33
+ }
34
+ .scayt_enabled a.cke_scayt_item:hover,
35
+ .scayt_enabled a.cke_scayt_item:focus,
36
+ .scayt_enabled a.cke_scayt_item:active
37
+ {
38
+ border-color: #316ac5;
39
+ background-color: #dff1ff;
40
+ color : #000;
41
+ cursor: pointer;
42
+ }
43
+ .scayt_disabled a.cke_scayt_item:hover,
44
+ .scayt_disabled a.cke_scayt_item:focus,
45
+ .scayt_disabled a.cke_scayt_item:active
46
+ {
47
+ border-color: gray;
48
+ background-color: #dff1ff;
49
+ color : gray;
50
+ cursor: no-drop;
51
+ }
52
+ .cke_scayt_set_on, .cke_scayt_set_off
53
+ {
54
+ display: none;
55
+ }
56
+ .scayt_enabled .cke_scayt_set_on
57
+ {
58
+ display: none;
59
+ }
60
+ .scayt_disabled .cke_scayt_set_on
61
+ {
62
+ display: inline;
63
+ }
64
+ .scayt_disabled .cke_scayt_set_off
65
+ {
66
+ display: none;
67
+ }
68
+ .scayt_enabled .cke_scayt_set_off
69
+ {
70
+ display: inline;
71
+ }
@@ -1,964 +1,973 @@
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 Spell Check As You Type (SCAYT).
8
- * Button name : Scayt.
9
- */
10
-
11
- (function()
12
- {
13
- var commandName = 'scaytcheck',
14
- openPage = '';
15
-
16
- // Checks if a value exists in an array
17
- function in_array( needle, haystack )
18
- {
19
- var found = 0,
20
- key;
21
- for ( key in haystack )
22
- {
23
- if ( haystack[ key ] == needle )
24
- {
25
- found = 1;
26
- break;
27
- }
28
- }
29
- return found;
30
- }
31
-
32
- var onEngineLoad = function()
33
- {
34
- var editor = this;
35
-
36
- var createInstance = function() // Create new instance every time Document is created.
37
- {
38
- var config = editor.config;
39
- // Initialise Scayt instance.
40
- var oParams = {};
41
- // Get the iframe.
42
- oParams.srcNodeRef = editor.document.getWindow().$.frameElement;
43
- // syntax : AppName.AppVersion@AppRevision
44
- oParams.assocApp = 'CKEDITOR.' + CKEDITOR.version + '@' + CKEDITOR.revision;
45
- oParams.customerid = config.scayt_customerid || '1:WvF0D4-UtPqN1-43nkD4-NKvUm2-daQqk3-LmNiI-z7Ysb4-mwry24-T8YrS3-Q2tpq2';
46
- oParams.customDictionaryIds = config.scayt_customDictionaryIds || '';
47
- oParams.userDictionaryName = config.scayt_userDictionaryName || '';
48
- oParams.sLang = config.scayt_sLang || 'en_US';
49
-
50
- // Introduce SCAYT onLoad callback. (#5632)
51
- oParams.onLoad = function()
52
- {
53
- // Draw down word marker to avoid being covered by background-color style.(#5466)
54
- if ( !( CKEDITOR.env.ie && CKEDITOR.env.version < 8 ) )
55
- this.addStyle( this.selectorCss(), 'padding-bottom: 2px !important;' );
56
-
57
- // Call scayt_control.focus when SCAYT loaded
58
- // and only if editor has focus and scayt control creates at first time (#5720)
59
- if ( editor.focusManager.hasFocus && !plugin.isControlRestored( editor ) )
60
- this.focus();
61
-
62
- };
63
-
64
- oParams.onBeforeChange = function()
65
- {
66
- if ( plugin.getScayt( editor ) && !editor.checkDirty() )
67
- setTimeout( function(){ editor.resetDirty(); }, 0 );
68
- };
69
-
70
- var scayt_custom_params = window.scayt_custom_params;
71
- if ( typeof scayt_custom_params == 'object' )
72
- {
73
- for ( var k in scayt_custom_params )
74
- oParams[ k ] = scayt_custom_params[ k ];
75
- }
76
- // needs for restoring a specific scayt control settings
77
- if ( plugin.getControlId( editor ) )
78
- oParams.id = plugin.getControlId( editor );
79
-
80
- var scayt_control = new window.scayt( oParams );
81
-
82
- scayt_control.afterMarkupRemove.push( function( node )
83
- {
84
- ( new CKEDITOR.dom.element( node, scayt_control.document ) ).mergeSiblings();
85
- } );
86
-
87
- // Copy config.
88
- var lastInstance = plugin.instances[ editor.name ];
89
- if ( lastInstance )
90
- {
91
- scayt_control.sLang = lastInstance.sLang;
92
- scayt_control.option( lastInstance.option() );
93
- scayt_control.paused = lastInstance.paused;
94
- }
95
-
96
- plugin.instances[ editor.name ] = scayt_control;
97
-
98
- try {
99
- scayt_control.setDisabled( plugin.isPaused( editor ) === false );
100
- } catch (e) {}
101
-
102
- editor.fire( 'showScaytState' );
103
- };
104
-
105
- editor.on( 'contentDom', createInstance );
106
- editor.on( 'contentDomUnload', function()
107
- {
108
- // Remove scripts.
109
- var scripts = CKEDITOR.document.getElementsByTag( 'script' ),
110
- scaytIdRegex = /^dojoIoScript(\d+)$/i,
111
- scaytSrcRegex = /^https?:\/\/svc\.spellchecker\.net\/spellcheck\/script\/ssrv\.cgi/i;
112
-
113
- for ( var i=0; i < scripts.count(); i++ )
114
- {
115
- var script = scripts.getItem( i ),
116
- id = script.getId(),
117
- src = script.getAttribute( 'src' );
118
-
119
- if ( id && src && id.match( scaytIdRegex ) && src.match( scaytSrcRegex ))
120
- script.remove();
121
- }
122
- });
123
-
124
- editor.on( 'beforeCommandExec', function( ev ) // Disable SCAYT before Source command execution.
125
- {
126
- if ( ( ev.data.name == 'source' || ev.data.name == 'newpage' ) && editor.mode == 'wysiwyg' )
127
- {
128
- var scayt_instance = plugin.getScayt( editor );
129
- if ( scayt_instance )
130
- {
131
- plugin.setPaused( editor, !scayt_instance.disabled );
132
- // store a control id for restore a specific scayt control settings
133
- plugin.setControlId( editor, scayt_instance.id );
134
- scayt_instance.destroy( true );
135
- delete plugin.instances[ editor.name ];
136
- }
137
- }
138
- // Catch on source mode switch off (#5720)
139
- else if ( ev.data.name == 'source' && editor.mode == 'source' )
140
- plugin.markControlRestore( editor );
141
- });
142
-
143
- editor.on( 'afterCommandExec', function( ev )
144
- {
145
- if ( !plugin.isScaytEnabled( editor ) )
146
- return;
147
-
148
- if ( editor.mode == 'wysiwyg' && ( ev.data.name == 'undo' || ev.data.name == 'redo' ) )
149
- window.setTimeout( function() { plugin.getScayt( editor ).refresh(); }, 10 );
150
- });
151
-
152
- editor.on( 'destroy', function( ev )
153
- {
154
- var editor = ev.editor,
155
- scayt_instance = plugin.getScayt( editor );
156
-
157
- // SCAYT instance might already get destroyed by mode switch (#5744).
158
- if ( !scayt_instance )
159
- return;
160
-
161
- delete plugin.instances[ editor.name ];
162
- // store a control id for restore a specific scayt control settings
163
- plugin.setControlId( editor, scayt_instance.id );
164
- scayt_instance.destroy( true );
165
- });
166
-
167
- // Listen to data manipulation to reflect scayt markup.
168
- editor.on( 'afterSetData', function()
169
- {
170
- if ( plugin.isScaytEnabled( editor ) ) {
171
- window.setTimeout( function()
172
- {
173
- var instance = plugin.getScayt( editor );
174
- instance && instance.refresh();
175
- }, 10 );
176
- }
177
- });
178
-
179
- // Reload spell-checking for current word after insertion completed.
180
- editor.on( 'insertElement', function()
181
- {
182
- var scayt_instance = plugin.getScayt( editor );
183
- if ( plugin.isScaytEnabled( editor ) )
184
- {
185
- // Unlock the selection before reload, SCAYT will take
186
- // care selection update.
187
- if ( CKEDITOR.env.ie )
188
- editor.getSelection().unlock( true );
189
-
190
- // Return focus to the editor and refresh SCAYT markup (#5573).
191
- window.setTimeout( function()
192
- {
193
- scayt_instance.focus();
194
- scayt_instance.refresh();
195
- }, 10 );
196
- }
197
- }, this, null, 50 );
198
-
199
- editor.on( 'insertHtml', function()
200
- {
201
- var scayt_instance = plugin.getScayt( editor );
202
- if ( plugin.isScaytEnabled( editor ) )
203
- {
204
- // Unlock the selection before reload, SCAYT will take
205
- // care selection update.
206
- if ( CKEDITOR.env.ie )
207
- editor.getSelection().unlock( true );
208
-
209
- // Return focus to the editor (#5573)
210
- // Refresh SCAYT markup
211
- window.setTimeout( function()
212
- {
213
- scayt_instance.focus();
214
- scayt_instance.refresh();
215
- }, 10 );
216
- }
217
- }, this, null, 50 );
218
-
219
- editor.on( 'scaytDialog', function( ev ) // Communication with dialog.
220
- {
221
- ev.data.djConfig = window.djConfig;
222
- ev.data.scayt_control = plugin.getScayt( editor );
223
- ev.data.tab = openPage;
224
- ev.data.scayt = window.scayt;
225
- });
226
-
227
- var dataProcessor = editor.dataProcessor,
228
- htmlFilter = dataProcessor && dataProcessor.htmlFilter;
229
-
230
- if ( htmlFilter )
231
- {
232
- htmlFilter.addRules(
233
- {
234
- elements :
235
- {
236
- span : function( element )
237
- {
238
- if ( element.attributes[ 'data-scayt_word' ]
239
- && element.attributes[ 'data-scaytid' ] )
240
- {
241
- delete element.name; // Write children, but don't write this node.
242
- return element;
243
- }
244
- }
245
- }
246
- }
247
- );
248
- }
249
-
250
- // Override Image.equals method avoid CK snapshot module to add SCAYT markup to snapshots. (#5546)
251
- var undoImagePrototype = CKEDITOR.plugins.undo.Image.prototype;
252
- undoImagePrototype.equals = CKEDITOR.tools.override( undoImagePrototype.equals, function( org )
253
- {
254
- return function( otherImage )
255
- {
256
- var thisContents = this.contents,
257
- otherContents = otherImage.contents;
258
- var scayt_instance = plugin.getScayt( this.editor );
259
- // Making the comparison based on content without SCAYT word markers.
260
- if ( scayt_instance && plugin.isScaytReady( this.editor ) )
261
- {
262
- // scayt::reset might return value undefined. (#5742)
263
- this.contents = scayt_instance.reset( thisContents ) || '';
264
- otherImage.contents = scayt_instance.reset( otherContents ) || '';
265
- }
266
-
267
- var retval = org.apply( this, arguments );
268
-
269
- this.contents = thisContents;
270
- otherImage.contents = otherContents;
271
- return retval;
272
- };
273
- });
274
-
275
- if ( editor.document )
276
- createInstance();
277
- };
278
-
279
- CKEDITOR.plugins.scayt =
280
- {
281
- engineLoaded : false,
282
- instances : {},
283
- // Data storage for SCAYT control, based on editor instances
284
- controlInfo : {},
285
- setControlInfo : function( editor, o )
286
- {
287
- if ( editor && editor.name && typeof ( this.controlInfo[ editor.name ] ) != 'object' )
288
- this.controlInfo[ editor.name ] = {};
289
-
290
- for ( var infoOpt in o )
291
- this.controlInfo[ editor.name ][ infoOpt ] = o[ infoOpt ];
292
- },
293
- isControlRestored : function( editor )
294
- {
295
- if ( editor &&
296
- editor.name &&
297
- this.controlInfo[ editor.name ] )
298
- {
299
- return this.controlInfo[ editor.name ].restored ;
300
- }
301
- return false;
302
- },
303
- markControlRestore : function( editor )
304
- {
305
- this.setControlInfo( editor, { restored:true } );
306
- },
307
- setControlId: function( editor, id )
308
- {
309
- this.setControlInfo( editor, { id:id } );
310
- },
311
- getControlId: function( editor )
312
- {
313
- if ( editor &&
314
- editor.name &&
315
- this.controlInfo[ editor.name ] &&
316
- this.controlInfo[ editor.name ].id )
317
- {
318
- return this.controlInfo[ editor.name ].id;
319
- }
320
- return null;
321
- },
322
- setPaused: function( editor , bool )
323
- {
324
- this.setControlInfo( editor, { paused:bool } );
325
- },
326
- isPaused: function( editor )
327
- {
328
- if ( editor &&
329
- editor.name &&
330
- this.controlInfo[editor.name] )
331
- {
332
- return this.controlInfo[editor.name].paused;
333
- }
334
- return undefined;
335
- },
336
- getScayt : function( editor )
337
- {
338
- return this.instances[ editor.name ];
339
- },
340
- isScaytReady : function( editor )
341
- {
342
- return this.engineLoaded === true &&
343
- 'undefined' !== typeof window.scayt && this.getScayt( editor );
344
- },
345
- isScaytEnabled : function( editor )
346
- {
347
- var scayt_instance = this.getScayt( editor );
348
- return ( scayt_instance ) ? scayt_instance.disabled === false : false;
349
- },
350
- getUiTabs : function( editor )
351
- {
352
- var uiTabs = [];
353
-
354
- // read UI tabs value from config
355
- var configUiTabs = editor.config.scayt_uiTabs || "1,1,1";
356
-
357
- // convert string to array
358
- configUiTabs = configUiTabs.split( ',' );
359
-
360
- // "About us" should be always shown for standard config
361
- configUiTabs[3] = "1";
362
-
363
- for ( var i = 0; i < 4; i++ ) {
364
- uiTabs[i] = (typeof window.scayt != "undefined" && typeof window.scayt.uiTags != "undefined")
365
- ? (parseInt(configUiTabs[i],10) && window.scayt.uiTags[i])
366
- : parseInt(configUiTabs[i],10);
367
- }
368
- return uiTabs;
369
- },
370
- loadEngine : function( editor )
371
- {
372
- // SCAYT doesn't work with Firefox2, Opera and AIR.
373
- if ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 || CKEDITOR.env.opera || CKEDITOR.env.air )
374
- return editor.fire( 'showScaytState' );
375
-
376
- if ( this.engineLoaded === true )
377
- return onEngineLoad.apply( editor ); // Add new instance.
378
- else if ( this.engineLoaded == -1 ) // We are waiting.
379
- return CKEDITOR.on( 'scaytReady', function(){ onEngineLoad.apply( editor ); } ); // Use function(){} to avoid rejection as duplicate.
380
-
381
- CKEDITOR.on( 'scaytReady', onEngineLoad, editor );
382
- CKEDITOR.on( 'scaytReady', function()
383
- {
384
- this.engineLoaded = true;
385
- },
386
- this,
387
- null,
388
- 0
389
- ); // First to run.
390
-
391
- this.engineLoaded = -1; // Loading in progress.
392
-
393
- // compose scayt url
394
- var protocol = document.location.protocol;
395
- // Default to 'http' for unknown.
396
- protocol = protocol.search( /https?:/) != -1? protocol : 'http:';
397
- var baseUrl = 'svc.spellchecker.net/scayt26/loader__base.js';
398
-
399
- var scaytUrl = editor.config.scayt_srcUrl || ( protocol + '//' + baseUrl );
400
- var scaytConfigBaseUrl = plugin.parseUrl( scaytUrl ).path + '/';
401
-
402
- if( window.scayt == undefined )
403
- {
404
- CKEDITOR._djScaytConfig =
405
- {
406
- baseUrl: scaytConfigBaseUrl,
407
- addOnLoad:
408
- [
409
- function()
410
- {
411
- CKEDITOR.fireOnce( 'scaytReady' );
412
- }
413
- ],
414
- isDebug: false
415
- };
416
- // Append javascript code.
417
- CKEDITOR.document.getHead().append(
418
- CKEDITOR.document.createElement( 'script',
419
- {
420
- attributes :
421
- {
422
- type : 'text/javascript',
423
- async : 'true',
424
- src : scaytUrl
425
- }
426
- })
427
- );
428
- }
429
- else
430
- CKEDITOR.fireOnce( 'scaytReady' );
431
-
432
- return null;
433
- },
434
- parseUrl : function ( data )
435
- {
436
- var match;
437
- if ( data.match && ( match = data.match(/(.*)[\/\\](.*?\.\w+)$/) ) )
438
- return { path: match[1], file: match[2] };
439
- else
440
- return data;
441
- }
442
- };
443
-
444
- var plugin = CKEDITOR.plugins.scayt;
445
-
446
- // Context menu constructing.
447
- var addButtonCommand = function( editor, buttonName, buttonLabel, commandName, command, menugroup, menuOrder )
448
- {
449
- editor.addCommand( commandName, command );
450
-
451
- // If the "menu" plugin is loaded, register the menu item.
452
- editor.addMenuItem( commandName,
453
- {
454
- label : buttonLabel,
455
- command : commandName,
456
- group : menugroup,
457
- order : menuOrder
458
- });
459
- };
460
-
461
- var commandDefinition =
462
- {
463
- preserveState : true,
464
- editorFocus : false,
465
- canUndo : false,
466
-
467
- exec: function( editor )
468
- {
469
- if ( plugin.isScaytReady( editor ) )
470
- {
471
- var isEnabled = plugin.isScaytEnabled( editor );
472
-
473
- this.setState( isEnabled ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_ON );
474
-
475
- var scayt_control = plugin.getScayt( editor );
476
- // the place where the status of editor focus should be restored
477
- // after there will be ability to store its state before SCAYT button click
478
- // if (storedFocusState is focused )
479
- // scayt_control.focus();
480
- //
481
- // now focus is set certainly
482
- scayt_control.focus();
483
- scayt_control.setDisabled( isEnabled );
484
- }
485
- else if ( !editor.config.scayt_autoStartup && plugin.engineLoaded >= 0 ) // Load first time
486
- {
487
- this.setState( CKEDITOR.TRISTATE_DISABLED );
488
- plugin.loadEngine( editor );
489
- }
490
- }
491
- };
492
-
493
- // Add scayt plugin.
494
- CKEDITOR.plugins.add( 'scayt',
495
- {
496
- requires : [ 'menubutton' ],
497
-
498
- beforeInit : function( editor )
499
- {
500
- var items_order = editor.config.scayt_contextMenuItemsOrder
501
- || 'suggest|moresuggest|control',
502
- items_order_str = "";
503
-
504
- items_order = items_order.split( '|' );
505
-
506
- if ( items_order && items_order.length )
507
- {
508
- for ( var pos = 0 ; pos < items_order.length ; pos++ )
509
- items_order_str += 'scayt_' + items_order[ pos ] + ( items_order.length != parseInt( pos, 10 ) + 1 ? ',' : '' );
510
- }
511
-
512
- // Put it on top of all context menu items (#5717)
513
- editor.config.menu_groups = items_order_str + ',' + editor.config.menu_groups;
514
- },
515
-
516
- init : function( editor )
517
- {
518
- // Delete span[data-scaytid] when text pasting in editor (#6921)
519
- var dataFilter = editor.dataProcessor && editor.dataProcessor.dataFilter;
520
- var dataFilterRules =
521
- {
522
- elements :
523
- {
524
- span : function( element )
525
- {
526
- var attrs = element.attributes;
527
- if ( attrs && attrs[ 'data-scaytid' ] )
528
- delete element.name;
529
- }
530
- }
531
- };
532
- dataFilter && dataFilter.addRules( dataFilterRules );
533
-
534
- var moreSuggestions = {},
535
- mainSuggestions = {};
536
-
537
- // Scayt command.
538
- var command = editor.addCommand( commandName, commandDefinition );
539
-
540
- // Add Options dialog.
541
- CKEDITOR.dialog.add( commandName, CKEDITOR.getUrl( this.path + 'dialogs/options.js' ) );
542
-
543
- var uiTabs = plugin.getUiTabs( editor );
544
-
545
- var menuGroup = 'scaytButton';
546
- editor.addMenuGroup( menuGroup );
547
- // combine menu items to render
548
- var uiMenuItems = {};
549
-
550
- var lang = editor.lang.scayt;
551
-
552
- // always added
553
- uiMenuItems.scaytToggle =
554
- {
555
- label : lang.enable,
556
- command : commandName,
557
- group : menuGroup
558
- };
559
-
560
- if ( uiTabs[0] == 1 )
561
- uiMenuItems.scaytOptions =
562
- {
563
- label : lang.options,
564
- group : menuGroup,
565
- onClick : function()
566
- {
567
- openPage = 'options';
568
- editor.openDialog( commandName );
569
- }
570
- };
571
-
572
- if ( uiTabs[1] == 1 )
573
- uiMenuItems.scaytLangs =
574
- {
575
- label : lang.langs,
576
- group : menuGroup,
577
- onClick : function()
578
- {
579
- openPage = 'langs';
580
- editor.openDialog( commandName );
581
- }
582
- };
583
- if ( uiTabs[2] == 1 )
584
- uiMenuItems.scaytDict =
585
- {
586
- label : lang.dictionariesTab,
587
- group : menuGroup,
588
- onClick : function()
589
- {
590
- openPage = 'dictionaries';
591
- editor.openDialog( commandName );
592
- }
593
- };
594
- // always added
595
- uiMenuItems.scaytAbout =
596
- {
597
- label : editor.lang.scayt.about,
598
- group : menuGroup,
599
- onClick : function()
600
- {
601
- openPage = 'about';
602
- editor.openDialog( commandName );
603
- }
604
- };
605
-
606
- editor.addMenuItems( uiMenuItems );
607
-
608
- editor.ui.add( 'Scayt', CKEDITOR.UI_MENUBUTTON,
609
- {
610
- label : lang.title,
611
- title : CKEDITOR.env.opera ? lang.opera_title : lang.title,
612
- className : 'cke_button_scayt',
613
- modes : { wysiwyg : 1 },
614
- onRender: function()
615
- {
616
- command.on( 'state', function()
617
- {
618
- this.setState( command.state );
619
- },
620
- this);
621
- },
622
- onMenu : function()
623
- {
624
- var isEnabled = plugin.isScaytEnabled( editor );
625
-
626
- editor.getMenuItem( 'scaytToggle' ).label = lang[ isEnabled ? 'disable' : 'enable' ];
627
-
628
- var uiTabs = plugin.getUiTabs( editor );
629
-
630
- return {
631
- scaytToggle : CKEDITOR.TRISTATE_OFF,
632
- scaytOptions : isEnabled && uiTabs[0] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
633
- scaytLangs : isEnabled && uiTabs[1] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
634
- scaytDict : isEnabled && uiTabs[2] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
635
- scaytAbout : isEnabled && uiTabs[3] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED
636
- };
637
- }
638
- });
639
-
640
- // If the "contextmenu" plugin is loaded, register the listeners.
641
- if ( editor.contextMenu && editor.addMenuItems )
642
- {
643
- editor.contextMenu.addListener( function( element, selection )
644
- {
645
- if ( !plugin.isScaytEnabled( editor )
646
- || selection.getRanges()[ 0 ].checkReadOnly() )
647
- return null;
648
-
649
- var scayt_control = plugin.getScayt( editor ),
650
- node = scayt_control.getScaytNode();
651
-
652
- if ( !node )
653
- return null;
654
-
655
- var word = scayt_control.getWord( node );
656
-
657
- if ( !word )
658
- return null;
659
-
660
- var sLang = scayt_control.getLang(),
661
- _r = {},
662
- items_suggestion = window.scayt.getSuggestion( word, sLang );
663
- if ( !items_suggestion || !items_suggestion.length )
664
- return null;
665
- // Remove unused commands and menuitems
666
- for ( var m in moreSuggestions )
667
- {
668
- delete editor._.menuItems[ m ];
669
- delete editor._.commands[ m ];
670
- }
671
- for ( m in mainSuggestions )
672
- {
673
- delete editor._.menuItems[ m ];
674
- delete editor._.commands[ m ];
675
- }
676
- moreSuggestions = {}; // Reset items.
677
- mainSuggestions = {};
678
-
679
- var moreSuggestionsUnable = editor.config.scayt_moreSuggestions || 'on';
680
- var moreSuggestionsUnableAdded = false;
681
-
682
- var maxSuggestions = editor.config.scayt_maxSuggestions;
683
- ( typeof maxSuggestions != 'number' ) && ( maxSuggestions = 5 );
684
- !maxSuggestions && ( maxSuggestions = items_suggestion.length );
685
-
686
- var contextCommands = editor.config.scayt_contextCommands || 'all';
687
- contextCommands = contextCommands.split( '|' );
688
-
689
- for ( var i = 0, l = items_suggestion.length; i < l; i += 1 )
690
- {
691
- var commandName = 'scayt_suggestion_' + items_suggestion[i].replace( ' ', '_' );
692
- var exec = ( function( el, s )
693
- {
694
- return {
695
- exec: function()
696
- {
697
- scayt_control.replace( el, s );
698
- }
699
- };
700
- })( node, items_suggestion[i] );
701
-
702
- if ( i < maxSuggestions )
703
- {
704
- addButtonCommand( editor, 'button_' + commandName, items_suggestion[i],
705
- commandName, exec, 'scayt_suggest', i + 1 );
706
- _r[ commandName ] = CKEDITOR.TRISTATE_OFF;
707
- mainSuggestions[ commandName ] = CKEDITOR.TRISTATE_OFF;
708
- }
709
- else if ( moreSuggestionsUnable == 'on' )
710
- {
711
- addButtonCommand( editor, 'button_' + commandName, items_suggestion[i],
712
- commandName, exec, 'scayt_moresuggest', i + 1 );
713
- moreSuggestions[ commandName ] = CKEDITOR.TRISTATE_OFF;
714
- moreSuggestionsUnableAdded = true;
715
- }
716
- }
717
-
718
- if ( moreSuggestionsUnableAdded )
719
- {
720
- // Register the More suggestions group;
721
- editor.addMenuItem( 'scayt_moresuggest',
722
- {
723
- label : lang.moreSuggestions,
724
- group : 'scayt_moresuggest',
725
- order : 10,
726
- getItems : function()
727
- {
728
- return moreSuggestions;
729
- }
730
- });
731
- mainSuggestions[ 'scayt_moresuggest' ] = CKEDITOR.TRISTATE_OFF;
732
- }
733
-
734
- if ( in_array( 'all', contextCommands ) || in_array( 'ignore', contextCommands) )
735
- {
736
- var ignore_command = {
737
- exec: function(){
738
- scayt_control.ignore( node );
739
- }
740
- };
741
- addButtonCommand( editor, 'ignore', lang.ignore, 'scayt_ignore', ignore_command, 'scayt_control', 1 );
742
- mainSuggestions[ 'scayt_ignore' ] = CKEDITOR.TRISTATE_OFF;
743
- }
744
-
745
- if ( in_array( 'all', contextCommands ) || in_array( 'ignoreall', contextCommands ) )
746
- {
747
- var ignore_all_command = {
748
- exec: function(){
749
- scayt_control.ignoreAll( node );
750
- }
751
- };
752
- addButtonCommand(editor, 'ignore_all', lang.ignoreAll, 'scayt_ignore_all', ignore_all_command, 'scayt_control', 2);
753
- mainSuggestions['scayt_ignore_all'] = CKEDITOR.TRISTATE_OFF;
754
- }
755
-
756
- if ( in_array( 'all', contextCommands ) || in_array( 'add', contextCommands ) )
757
- {
758
- var addword_command = {
759
- exec: function(){
760
- window.scayt.addWordToUserDictionary( node );
761
- }
762
- };
763
- addButtonCommand(editor, 'add_word', lang.addWord, 'scayt_add_word', addword_command, 'scayt_control', 3);
764
- mainSuggestions['scayt_add_word'] = CKEDITOR.TRISTATE_OFF;
765
- }
766
-
767
- if ( scayt_control.fireOnContextMenu )
768
- scayt_control.fireOnContextMenu( editor );
769
-
770
- return mainSuggestions;
771
- });
772
- }
773
-
774
- var showInitialState = function()
775
- {
776
- editor.removeListener( 'showScaytState', showInitialState );
777
-
778
- if ( !CKEDITOR.env.opera && !CKEDITOR.env.air )
779
- command.setState( plugin.isScaytEnabled( editor ) ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF );
780
- else
781
- command.setState( CKEDITOR.TRISTATE_DISABLED );
782
- };
783
-
784
- editor.on( 'showScaytState', showInitialState );
785
-
786
- if ( CKEDITOR.env.opera || CKEDITOR.env.air )
787
- {
788
- editor.on( 'instanceReady', function()
789
- {
790
- showInitialState();
791
- });
792
- }
793
-
794
- // Start plugin
795
- if ( editor.config.scayt_autoStartup )
796
- {
797
- editor.on( 'instanceReady', function()
798
- {
799
- plugin.loadEngine( editor );
800
- });
801
- }
802
- },
803
-
804
- afterInit : function( editor )
805
- {
806
- // Prevent word marker line from displaying in elements path and been removed when cleaning format. (#3570) (#4125)
807
- var elementsPathFilters,
808
- scaytFilter = function( element )
809
- {
810
- if ( element.hasAttribute( 'data-scaytid' ) )
811
- return false;
812
- };
813
-
814
- if ( editor._.elementsPath && ( elementsPathFilters = editor._.elementsPath.filters ) )
815
- elementsPathFilters.push( scaytFilter );
816
-
817
- editor.addRemoveFormatFilter && editor.addRemoveFormatFilter( scaytFilter );
818
-
819
- }
820
- });
821
- })();
822
-
823
- /**
824
- * If enabled (true), turns on SCAYT automatically after loading the editor.
825
- * @name CKEDITOR.config.scayt_autoStartup
826
- * @type Boolean
827
- * @default false
828
- * @example
829
- * config.scayt_autoStartup = true;
830
- */
831
-
832
- /**
833
- * Defines the number of SCAYT suggestions to show in the main context menu.
834
- * The possible values are:
835
- * <ul>
836
- * <li>0 (zero): All suggestions are displayed in the main context menu.</li>
837
- * <li>Positive number: The maximum number of suggestions to shown in context
838
- * menu. Other entries will be shown in "More Suggestions" sub-menu.</li>
839
- * <li>Negative number: No suggestions are shown in the main context menu. All
840
- * entries will be listed in the "Suggestions" sub-menu.</li>
841
- * </ul>
842
- * @name CKEDITOR.config.scayt_maxSuggestions
843
- * @type Number
844
- * @default 5
845
- * @example
846
- * // Display only three suggestions in the main context menu.
847
- * config.scayt_maxSuggestions = 3;
848
- * @example
849
- * // Do not show the suggestions directly.
850
- * config.scayt_maxSuggestions = -1;
851
- */
852
-
853
- /**
854
- * Sets the customer ID for SCAYT. Required for migration from free version
855
- * with banner to paid version.
856
- * @name CKEDITOR.config.scayt_customerid
857
- * @type String
858
- * @default ''
859
- * @example
860
- * // Load SCAYT using my customer ID.
861
- * config.scayt_customerid = 'your-encrypted-customer-id';
862
- */
863
-
864
- /**
865
- * Enables/disables the "More Suggestions" sub-menu in the context menu.
866
- * The possible values are "on" or "off".
867
- * @name CKEDITOR.config.scayt_moreSuggestions
868
- * @type String
869
- * @default 'on'
870
- * @example
871
- * // Disables the "More Suggestions" sub-menu.
872
- * config.scayt_moreSuggestions = 'off';
873
- */
874
-
875
- /**
876
- * Customizes the display of SCAYT context menu commands ("Add Word", "Ignore"
877
- * and "Ignore All"). It must be a string with one or more of the following
878
- * words separated by a pipe ("|"):
879
- * <ul>
880
- * <li>"off": disables all options.</li>
881
- * <li>"all": enables all options.</li>
882
- * <li>"ignore": enables the "Ignore" option.</li>
883
- * <li>"ignoreall": enables the "Ignore All" option.</li>
884
- * <li>"add": enables the "Add Word" option.</li>
885
- * </ul>
886
- * @name CKEDITOR.config.scayt_contextCommands
887
- * @type String
888
- * @default 'all'
889
- * @example
890
- * // Show only "Add Word" and "Ignore All" in the context menu.
891
- * config.scayt_contextCommands = 'add|ignoreall';
892
- */
893
-
894
- /**
895
- * Sets the default spellchecking language for SCAYT.
896
- * @name CKEDITOR.config.scayt_sLang
897
- * @type String
898
- * @default 'en_US'
899
- * @example
900
- * // Sets SCAYT to German.
901
- * config.scayt_sLang = 'de_DE';
902
- */
903
-
904
- /**
905
- * Sets the visibility of the SCAYT tabs in the settings dialog and toolbar
906
- * button. The value must contain a "1" (enabled) or "0" (disabled) number for
907
- * each of the following entries, in this precise order, separated by a
908
- * comma (","): "Options", "Languages" and "Dictionary".
909
- * @name CKEDITOR.config.scayt_uiTabs
910
- * @type String
911
- * @default '1,1,1'
912
- * @example
913
- * // Hide the "Languages" tab.
914
- * config.scayt_uiTabs = '1,0,1';
915
- */
916
-
917
-
918
- /**
919
- * Set the URL to SCAYT core. Required to switch to licensed version of SCAYT application.
920
- * Further details at http://wiki.spellchecker.net/doku.php?id=3rd:wysiwyg:fckeditor:wscckf3l .
921
- * @name CKEDITOR.config.scayt_srcUrl
922
- * @type String
923
- * @default ''
924
- * @example
925
- * config.scayt_srcUrl = "http://my-host/spellcheck/lf/scayt/scayt.js";
926
- */
927
-
928
- /**
929
- * Links SCAYT to custom dictionaries. It's a string containing dictionary ids
930
- * separared by commas (","). Available only for licensed version.
931
- * Further details at http://wiki.spellchecker.net/doku.php?id=custom_dictionary_support .
932
- * @name CKEDITOR.config.scayt_customDictionaryIds
933
- * @type String
934
- * @default ''
935
- * @example
936
- * config.scayt_customDictionaryIds = '3021,3456,3478"';
937
- */
938
-
939
- /**
940
- * Makes it possible to activate a custom dictionary on SCAYT. The user
941
- * dictionary name must be used. Available only for licensed version.
942
- * @name CKEDITOR.config.scayt_userDictionaryName
943
- * @type String
944
- * @default ''
945
- * @example
946
- * config.scayt_userDictionaryName = 'MyDictionary';
947
- */
948
-
949
- /**
950
- * Define order of placing of SCAYT context menu items by groups.
951
- * It must be a string with one or more of the following
952
- * words separated by a pipe ("|"):
953
- * <ul>
954
- * <li>'suggest' - main suggestion word list,</li>
955
- * <li>'moresuggest' - more suggestions word list,</li>
956
- * <li>'control' - SCAYT commands, such as 'Ignore' and 'Add Word'</li>
957
- * </ul>
958
- *
959
- * @name CKEDITOR.config.scayt_contextMenuItemsOrder
960
- * @type String
961
- * @default 'suggest|moresuggest|control'
962
- * @example
963
- * config.scayt_contextMenuItemsOrder = 'moresuggest|control|suggest';
964
- */
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 Spell Check As You Type (SCAYT).
8
+ * Button name : Scayt.
9
+ */
10
+
11
+ (function()
12
+ {
13
+ var commandName = 'scaytcheck',
14
+ openPage = '';
15
+
16
+ // Checks if a value exists in an array
17
+ function in_array( needle, haystack )
18
+ {
19
+ var found = 0,
20
+ key;
21
+ for ( key in haystack )
22
+ {
23
+ if ( haystack[ key ] == needle )
24
+ {
25
+ found = 1;
26
+ break;
27
+ }
28
+ }
29
+ return found;
30
+ }
31
+
32
+ var onEngineLoad = function()
33
+ {
34
+ var editor = this;
35
+
36
+ var createInstance = function() // Create new instance every time Document is created.
37
+ {
38
+ var config = editor.config;
39
+ // Initialise Scayt instance.
40
+ var oParams = {};
41
+ // Get the iframe.
42
+ oParams.srcNodeRef = editor.document.getWindow().$.frameElement;
43
+ // syntax : AppName.AppVersion@AppRevision
44
+ oParams.assocApp = 'CKEDITOR.' + CKEDITOR.version + '@' + CKEDITOR.revision;
45
+ oParams.customerid = config.scayt_customerid || '1:WvF0D4-UtPqN1-43nkD4-NKvUm2-daQqk3-LmNiI-z7Ysb4-mwry24-T8YrS3-Q2tpq2';
46
+ oParams.customDictionaryIds = config.scayt_customDictionaryIds || '';
47
+ oParams.userDictionaryName = config.scayt_userDictionaryName || '';
48
+ oParams.sLang = config.scayt_sLang || 'en_US';
49
+
50
+ // Introduce SCAYT onLoad callback. (#5632)
51
+ oParams.onLoad = function()
52
+ {
53
+ // Draw down word marker to avoid being covered by background-color style.(#5466)
54
+ if ( !( CKEDITOR.env.ie && CKEDITOR.env.version < 8 ) )
55
+ this.addStyle( this.selectorCss(), 'padding-bottom: 2px !important;' );
56
+
57
+ // Call scayt_control.focus when SCAYT loaded
58
+ // and only if editor has focus and scayt control creates at first time (#5720)
59
+ if ( editor.focusManager.hasFocus && !plugin.isControlRestored( editor ) )
60
+ this.focus();
61
+
62
+ };
63
+
64
+ oParams.onBeforeChange = function()
65
+ {
66
+ if ( plugin.getScayt( editor ) && !editor.checkDirty() )
67
+ setTimeout( function(){ editor.resetDirty(); }, 0 );
68
+ };
69
+
70
+ var scayt_custom_params = window.scayt_custom_params;
71
+ if ( typeof scayt_custom_params == 'object' )
72
+ {
73
+ for ( var k in scayt_custom_params )
74
+ oParams[ k ] = scayt_custom_params[ k ];
75
+ }
76
+ // needs for restoring a specific scayt control settings
77
+ if ( plugin.getControlId( editor ) )
78
+ oParams.id = plugin.getControlId( editor );
79
+
80
+ var scayt_control = new window.scayt( oParams );
81
+
82
+ scayt_control.afterMarkupRemove.push( function( node )
83
+ {
84
+ ( new CKEDITOR.dom.element( node, scayt_control.document ) ).mergeSiblings();
85
+ } );
86
+
87
+ // Copy config.
88
+ var lastInstance = plugin.instances[ editor.name ];
89
+ if ( lastInstance )
90
+ {
91
+ scayt_control.sLang = lastInstance.sLang;
92
+ scayt_control.option( lastInstance.option() );
93
+ scayt_control.paused = lastInstance.paused;
94
+ }
95
+
96
+ plugin.instances[ editor.name ] = scayt_control;
97
+
98
+ try {
99
+ scayt_control.setDisabled( plugin.isPaused( editor ) === false );
100
+ } catch (e) {}
101
+
102
+ editor.fire( 'showScaytState' );
103
+ };
104
+
105
+ editor.on( 'contentDom', createInstance );
106
+ editor.on( 'contentDomUnload', function()
107
+ {
108
+ // Remove scripts.
109
+ var scripts = CKEDITOR.document.getElementsByTag( 'script' ),
110
+ scaytIdRegex = /^dojoIoScript(\d+)$/i,
111
+ scaytSrcRegex = /^https?:\/\/svc\.webspellchecker\.net\/spellcheck\/script\/ssrv\.cgi/i;
112
+
113
+ for ( var i=0; i < scripts.count(); i++ )
114
+ {
115
+ var script = scripts.getItem( i ),
116
+ id = script.getId(),
117
+ src = script.getAttribute( 'src' );
118
+
119
+ if ( id && src && id.match( scaytIdRegex ) && src.match( scaytSrcRegex ))
120
+ script.remove();
121
+ }
122
+ });
123
+
124
+ editor.on( 'beforeCommandExec', function( ev ) // Disable SCAYT before Source command execution.
125
+ {
126
+ if ( ( ev.data.name == 'source' || ev.data.name == 'newpage' ) && editor.mode == 'wysiwyg' )
127
+ {
128
+ var scayt_instance = plugin.getScayt( editor );
129
+ if ( scayt_instance )
130
+ {
131
+ plugin.setPaused( editor, !scayt_instance.disabled );
132
+ // store a control id for restore a specific scayt control settings
133
+ plugin.setControlId( editor, scayt_instance.id );
134
+ scayt_instance.destroy( true );
135
+ delete plugin.instances[ editor.name ];
136
+ }
137
+ }
138
+ // Catch on source mode switch off (#5720)
139
+ else if ( ev.data.name == 'source' && editor.mode == 'source' )
140
+ plugin.markControlRestore( editor );
141
+ });
142
+
143
+ editor.on( 'afterCommandExec', function( ev )
144
+ {
145
+ if ( !plugin.isScaytEnabled( editor ) )
146
+ return;
147
+
148
+ if ( editor.mode == 'wysiwyg' && ( ev.data.name == 'undo' || ev.data.name == 'redo' ) )
149
+ window.setTimeout( function() { plugin.getScayt( editor ).refresh(); }, 10 );
150
+ });
151
+
152
+ editor.on( 'destroy', function( ev )
153
+ {
154
+ var editor = ev.editor,
155
+ scayt_instance = plugin.getScayt( editor );
156
+
157
+ // SCAYT instance might already get destroyed by mode switch (#5744).
158
+ if ( !scayt_instance )
159
+ return;
160
+
161
+ delete plugin.instances[ editor.name ];
162
+ // store a control id for restore a specific scayt control settings
163
+ plugin.setControlId( editor, scayt_instance.id );
164
+ scayt_instance.destroy( true );
165
+ });
166
+
167
+ // Listen to data manipulation to reflect scayt markup.
168
+ editor.on( 'afterSetData', function()
169
+ {
170
+ if ( plugin.isScaytEnabled( editor ) ) {
171
+ window.setTimeout( function()
172
+ {
173
+ var instance = plugin.getScayt( editor );
174
+ instance && instance.refresh();
175
+ }, 10 );
176
+ }
177
+ });
178
+
179
+ // Reload spell-checking for current word after insertion completed.
180
+ editor.on( 'insertElement', function()
181
+ {
182
+ var scayt_instance = plugin.getScayt( editor );
183
+ if ( plugin.isScaytEnabled( editor ) )
184
+ {
185
+ // Unlock the selection before reload, SCAYT will take
186
+ // care selection update.
187
+ if ( CKEDITOR.env.ie )
188
+ editor.getSelection().unlock( true );
189
+
190
+ // Return focus to the editor and refresh SCAYT markup (#5573).
191
+ window.setTimeout( function()
192
+ {
193
+ scayt_instance.focus();
194
+ scayt_instance.refresh();
195
+ }, 10 );
196
+ }
197
+ }, this, null, 50 );
198
+
199
+ editor.on( 'insertHtml', function()
200
+ {
201
+ var scayt_instance = plugin.getScayt( editor );
202
+ if ( plugin.isScaytEnabled( editor ) )
203
+ {
204
+ // Unlock the selection before reload, SCAYT will take
205
+ // care selection update.
206
+ if ( CKEDITOR.env.ie )
207
+ editor.getSelection().unlock( true );
208
+
209
+ // Return focus to the editor (#5573)
210
+ // Refresh SCAYT markup
211
+ window.setTimeout( function()
212
+ {
213
+ scayt_instance.focus();
214
+ scayt_instance.refresh();
215
+ }, 10 );
216
+ }
217
+ }, this, null, 50 );
218
+
219
+ editor.on( 'scaytDialog', function( ev ) // Communication with dialog.
220
+ {
221
+ ev.data.djConfig = window.djConfig;
222
+ ev.data.scayt_control = plugin.getScayt( editor );
223
+ ev.data.tab = openPage;
224
+ ev.data.scayt = window.scayt;
225
+ });
226
+
227
+ var dataProcessor = editor.dataProcessor,
228
+ htmlFilter = dataProcessor && dataProcessor.htmlFilter;
229
+
230
+ if ( htmlFilter )
231
+ {
232
+ htmlFilter.addRules(
233
+ {
234
+ elements :
235
+ {
236
+ span : function( element )
237
+ {
238
+ if ( element.attributes[ 'data-scayt_word' ]
239
+ && element.attributes[ 'data-scaytid' ] )
240
+ {
241
+ delete element.name; // Write children, but don't write this node.
242
+ return element;
243
+ }
244
+ }
245
+ }
246
+ }
247
+ );
248
+ }
249
+
250
+ // Override Image.equals method avoid CK snapshot module to add SCAYT markup to snapshots. (#5546)
251
+ var undoImagePrototype = CKEDITOR.plugins.undo.Image.prototype;
252
+ undoImagePrototype.equals = CKEDITOR.tools.override( undoImagePrototype.equals, function( org )
253
+ {
254
+ return function( otherImage )
255
+ {
256
+ var thisContents = this.contents,
257
+ otherContents = otherImage.contents;
258
+ var scayt_instance = plugin.getScayt( this.editor );
259
+ // Making the comparison based on content without SCAYT word markers.
260
+ if ( scayt_instance && plugin.isScaytReady( this.editor ) )
261
+ {
262
+ // scayt::reset might return value undefined. (#5742)
263
+ this.contents = scayt_instance.reset( thisContents ) || '';
264
+ otherImage.contents = scayt_instance.reset( otherContents ) || '';
265
+ }
266
+
267
+ var retval = org.apply( this, arguments );
268
+
269
+ this.contents = thisContents;
270
+ otherImage.contents = otherContents;
271
+ return retval;
272
+ };
273
+ });
274
+
275
+ if ( editor.document )
276
+ createInstance();
277
+ };
278
+
279
+ CKEDITOR.plugins.scayt =
280
+ {
281
+ engineLoaded : false,
282
+ instances : {},
283
+ // Data storage for SCAYT control, based on editor instances
284
+ controlInfo : {},
285
+ setControlInfo : function( editor, o )
286
+ {
287
+ if ( editor && editor.name && typeof ( this.controlInfo[ editor.name ] ) != 'object' )
288
+ this.controlInfo[ editor.name ] = {};
289
+
290
+ for ( var infoOpt in o )
291
+ this.controlInfo[ editor.name ][ infoOpt ] = o[ infoOpt ];
292
+ },
293
+ isControlRestored : function( editor )
294
+ {
295
+ if ( editor &&
296
+ editor.name &&
297
+ this.controlInfo[ editor.name ] )
298
+ {
299
+ return this.controlInfo[ editor.name ].restored ;
300
+ }
301
+ return false;
302
+ },
303
+ markControlRestore : function( editor )
304
+ {
305
+ this.setControlInfo( editor, { restored:true } );
306
+ },
307
+ setControlId: function( editor, id )
308
+ {
309
+ this.setControlInfo( editor, { id:id } );
310
+ },
311
+ getControlId: function( editor )
312
+ {
313
+ if ( editor &&
314
+ editor.name &&
315
+ this.controlInfo[ editor.name ] &&
316
+ this.controlInfo[ editor.name ].id )
317
+ {
318
+ return this.controlInfo[ editor.name ].id;
319
+ }
320
+ return null;
321
+ },
322
+ setPaused: function( editor , bool )
323
+ {
324
+ this.setControlInfo( editor, { paused:bool } );
325
+ },
326
+ isPaused: function( editor )
327
+ {
328
+ if ( editor &&
329
+ editor.name &&
330
+ this.controlInfo[editor.name] )
331
+ {
332
+ return this.controlInfo[editor.name].paused;
333
+ }
334
+ return undefined;
335
+ },
336
+ getScayt : function( editor )
337
+ {
338
+ return this.instances[ editor.name ];
339
+ },
340
+ isScaytReady : function( editor )
341
+ {
342
+ return this.engineLoaded === true &&
343
+ 'undefined' !== typeof window.scayt && this.getScayt( editor );
344
+ },
345
+ isScaytEnabled : function( editor )
346
+ {
347
+ var scayt_instance = this.getScayt( editor );
348
+ return ( scayt_instance ) ? scayt_instance.disabled === false : false;
349
+ },
350
+ getUiTabs : function( editor )
351
+ {
352
+ var uiTabs = [];
353
+
354
+ // read UI tabs value from config
355
+ var configUiTabs = editor.config.scayt_uiTabs || "1,1,1";
356
+
357
+ // convert string to array
358
+ configUiTabs = configUiTabs.split( ',' );
359
+
360
+ // "About us" should be always shown for standard config
361
+ configUiTabs[3] = "1";
362
+
363
+ for ( var i = 0; i < 4; i++ ) {
364
+ uiTabs[i] = (typeof window.scayt != "undefined" && typeof window.scayt.uiTags != "undefined")
365
+ ? (parseInt(configUiTabs[i],10) && window.scayt.uiTags[i])
366
+ : parseInt(configUiTabs[i],10);
367
+ }
368
+ return uiTabs;
369
+ },
370
+ loadEngine : function( editor )
371
+ {
372
+ // SCAYT doesn't work with Firefox2, Opera and AIR.
373
+ if ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 || CKEDITOR.env.opera || CKEDITOR.env.air )
374
+ return editor.fire( 'showScaytState' );
375
+
376
+ if ( this.engineLoaded === true )
377
+ return onEngineLoad.apply( editor ); // Add new instance.
378
+ else if ( this.engineLoaded == -1 ) // We are waiting.
379
+ return CKEDITOR.on( 'scaytReady', function(){ onEngineLoad.apply( editor ); } ); // Use function(){} to avoid rejection as duplicate.
380
+
381
+ CKEDITOR.on( 'scaytReady', onEngineLoad, editor );
382
+ CKEDITOR.on( 'scaytReady', function()
383
+ {
384
+ this.engineLoaded = true;
385
+ },
386
+ this,
387
+ null,
388
+ 0
389
+ ); // First to run.
390
+
391
+ this.engineLoaded = -1; // Loading in progress.
392
+
393
+ // compose scayt url
394
+ var protocol = document.location.protocol;
395
+ // Default to 'http' for unknown.
396
+ protocol = protocol.search( /https?:/) != -1? protocol : 'http:';
397
+ var baseUrl = 'svc.webspellchecker.net/scayt26/loader__base.js';
398
+
399
+ var scaytUrl = editor.config.scayt_srcUrl || ( protocol + '//' + baseUrl );
400
+ var scaytConfigBaseUrl = plugin.parseUrl( scaytUrl ).path + '/';
401
+
402
+ if( window.scayt == undefined )
403
+ {
404
+ CKEDITOR._djScaytConfig =
405
+ {
406
+ baseUrl: scaytConfigBaseUrl,
407
+ addOnLoad:
408
+ [
409
+ function()
410
+ {
411
+ CKEDITOR.fireOnce( 'scaytReady' );
412
+ }
413
+ ],
414
+ isDebug: false
415
+ };
416
+ // Append javascript code.
417
+ CKEDITOR.document.getHead().append(
418
+ CKEDITOR.document.createElement( 'script',
419
+ {
420
+ attributes :
421
+ {
422
+ type : 'text/javascript',
423
+ async : 'true',
424
+ src : scaytUrl
425
+ }
426
+ })
427
+ );
428
+ }
429
+ else
430
+ CKEDITOR.fireOnce( 'scaytReady' );
431
+
432
+ return null;
433
+ },
434
+ parseUrl : function ( data )
435
+ {
436
+ var match;
437
+ if ( data.match && ( match = data.match(/(.*)[\/\\](.*?\.\w+)$/) ) )
438
+ return { path: match[1], file: match[2] };
439
+ else
440
+ return data;
441
+ }
442
+ };
443
+
444
+ var plugin = CKEDITOR.plugins.scayt;
445
+
446
+ // Context menu constructing.
447
+ var addButtonCommand = function( editor, buttonName, buttonLabel, commandName, command, menugroup, menuOrder )
448
+ {
449
+ editor.addCommand( commandName, command );
450
+
451
+ // If the "menu" plugin is loaded, register the menu item.
452
+ editor.addMenuItem( commandName,
453
+ {
454
+ label : buttonLabel,
455
+ command : commandName,
456
+ group : menugroup,
457
+ order : menuOrder
458
+ });
459
+ };
460
+
461
+ var commandDefinition =
462
+ {
463
+ preserveState : true,
464
+ editorFocus : false,
465
+ canUndo : false,
466
+
467
+ exec: function( editor )
468
+ {
469
+ if ( plugin.isScaytReady( editor ) )
470
+ {
471
+ var isEnabled = plugin.isScaytEnabled( editor );
472
+
473
+ this.setState( isEnabled ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_ON );
474
+
475
+ var scayt_control = plugin.getScayt( editor );
476
+ // the place where the status of editor focus should be restored
477
+ // after there will be ability to store its state before SCAYT button click
478
+ // if (storedFocusState is focused )
479
+ // scayt_control.focus();
480
+ //
481
+ // now focus is set certainly
482
+ scayt_control.focus();
483
+ scayt_control.setDisabled( isEnabled );
484
+ }
485
+ else if ( !editor.config.scayt_autoStartup && plugin.engineLoaded >= 0 ) // Load first time
486
+ {
487
+ this.setState( CKEDITOR.TRISTATE_DISABLED );
488
+ plugin.loadEngine( editor );
489
+ }
490
+ }
491
+ };
492
+
493
+ // Add scayt plugin.
494
+ CKEDITOR.plugins.add( 'scayt',
495
+ {
496
+ requires : [ 'menubutton' ],
497
+
498
+ beforeInit : function( editor )
499
+ {
500
+ var items_order = editor.config.scayt_contextMenuItemsOrder
501
+ || 'suggest|moresuggest|control',
502
+ items_order_str = "";
503
+
504
+ items_order = items_order.split( '|' );
505
+
506
+ if ( items_order && items_order.length )
507
+ {
508
+ for ( var pos = 0 ; pos < items_order.length ; pos++ )
509
+ items_order_str += 'scayt_' + items_order[ pos ] + ( items_order.length != parseInt( pos, 10 ) + 1 ? ',' : '' );
510
+ }
511
+
512
+ // Put it on top of all context menu items (#5717)
513
+ editor.config.menu_groups = items_order_str + ',' + editor.config.menu_groups;
514
+ },
515
+
516
+ init : function( editor )
517
+ {
518
+ // Delete span[data-scaytid] when text pasting in editor (#6921)
519
+ var dataFilter = editor.dataProcessor && editor.dataProcessor.dataFilter;
520
+ var dataFilterRules =
521
+ {
522
+ elements :
523
+ {
524
+ span : function( element )
525
+ {
526
+ var attrs = element.attributes;
527
+ if ( attrs && attrs[ 'data-scaytid' ] )
528
+ delete element.name;
529
+ }
530
+ }
531
+ };
532
+ dataFilter && dataFilter.addRules( dataFilterRules );
533
+
534
+ var moreSuggestions = {},
535
+ mainSuggestions = {};
536
+
537
+ // Scayt command.
538
+ var command = editor.addCommand( commandName, commandDefinition );
539
+
540
+ // Add Options dialog.
541
+ CKEDITOR.dialog.add( commandName, CKEDITOR.getUrl( this.path + 'dialogs/options.js' ) );
542
+
543
+ var uiTabs = plugin.getUiTabs( editor );
544
+
545
+ var menuGroup = 'scaytButton';
546
+ editor.addMenuGroup( menuGroup );
547
+ // combine menu items to render
548
+ var uiMenuItems = {};
549
+
550
+ var lang = editor.lang.scayt;
551
+
552
+ // always added
553
+ uiMenuItems.scaytToggle =
554
+ {
555
+ label : lang.enable,
556
+ command : commandName,
557
+ group : menuGroup
558
+ };
559
+
560
+ if ( uiTabs[0] == 1 )
561
+ uiMenuItems.scaytOptions =
562
+ {
563
+ label : lang.options,
564
+ group : menuGroup,
565
+ onClick : function()
566
+ {
567
+ openPage = 'options';
568
+ editor.openDialog( commandName );
569
+ }
570
+ };
571
+
572
+ if ( uiTabs[1] == 1 )
573
+ uiMenuItems.scaytLangs =
574
+ {
575
+ label : lang.langs,
576
+ group : menuGroup,
577
+ onClick : function()
578
+ {
579
+ openPage = 'langs';
580
+ editor.openDialog( commandName );
581
+ }
582
+ };
583
+ if ( uiTabs[2] == 1 )
584
+ uiMenuItems.scaytDict =
585
+ {
586
+ label : lang.dictionariesTab,
587
+ group : menuGroup,
588
+ onClick : function()
589
+ {
590
+ openPage = 'dictionaries';
591
+ editor.openDialog( commandName );
592
+ }
593
+ };
594
+ // always added
595
+ uiMenuItems.scaytAbout =
596
+ {
597
+ label : editor.lang.scayt.about,
598
+ group : menuGroup,
599
+ onClick : function()
600
+ {
601
+ openPage = 'about';
602
+ editor.openDialog( commandName );
603
+ }
604
+ };
605
+
606
+ editor.addMenuItems( uiMenuItems );
607
+
608
+ editor.ui.add( 'Scayt', CKEDITOR.UI_MENUBUTTON,
609
+ {
610
+ label : lang.title,
611
+ title : CKEDITOR.env.opera ? lang.opera_title : lang.title,
612
+ className : 'cke_button_scayt',
613
+ modes : { wysiwyg : 1 },
614
+ onRender: function()
615
+ {
616
+ command.on( 'state', function()
617
+ {
618
+ this.setState( command.state );
619
+ },
620
+ this);
621
+ },
622
+ onMenu : function()
623
+ {
624
+ var isEnabled = plugin.isScaytEnabled( editor );
625
+
626
+ editor.getMenuItem( 'scaytToggle' ).label = lang[ isEnabled ? 'disable' : 'enable' ];
627
+
628
+ var uiTabs = plugin.getUiTabs( editor );
629
+
630
+ return {
631
+ scaytToggle : CKEDITOR.TRISTATE_OFF,
632
+ scaytOptions : isEnabled && uiTabs[0] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
633
+ scaytLangs : isEnabled && uiTabs[1] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
634
+ scaytDict : isEnabled && uiTabs[2] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
635
+ scaytAbout : isEnabled && uiTabs[3] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED
636
+ };
637
+ }
638
+ });
639
+
640
+ // If the "contextmenu" plugin is loaded, register the listeners.
641
+ if ( editor.contextMenu && editor.addMenuItems )
642
+ {
643
+ editor.contextMenu.addListener( function( element, selection )
644
+ {
645
+ if ( !plugin.isScaytEnabled( editor )
646
+ || selection.getRanges()[ 0 ].checkReadOnly() )
647
+ return null;
648
+
649
+ var scayt_control = plugin.getScayt( editor ),
650
+ node = scayt_control.getScaytNode();
651
+
652
+ if ( !node )
653
+ return null;
654
+
655
+ var word = scayt_control.getWord( node );
656
+
657
+ if ( !word )
658
+ return null;
659
+
660
+ var sLang = scayt_control.getLang(),
661
+ _r = {},
662
+ items_suggestion = window.scayt.getSuggestion( word, sLang );
663
+ if ( !items_suggestion || !items_suggestion.length )
664
+ return null;
665
+ // Remove unused commands and menuitems
666
+ for ( var m in moreSuggestions )
667
+ {
668
+ delete editor._.menuItems[ m ];
669
+ delete editor._.commands[ m ];
670
+ }
671
+ for ( m in mainSuggestions )
672
+ {
673
+ delete editor._.menuItems[ m ];
674
+ delete editor._.commands[ m ];
675
+ }
676
+ moreSuggestions = {}; // Reset items.
677
+ mainSuggestions = {};
678
+
679
+ var moreSuggestionsUnable = editor.config.scayt_moreSuggestions || 'on';
680
+ var moreSuggestionsUnableAdded = false;
681
+
682
+ var maxSuggestions = editor.config.scayt_maxSuggestions;
683
+ ( typeof maxSuggestions != 'number' ) && ( maxSuggestions = 5 );
684
+ !maxSuggestions && ( maxSuggestions = items_suggestion.length );
685
+
686
+ var contextCommands = editor.config.scayt_contextCommands || 'all';
687
+ contextCommands = contextCommands.split( '|' );
688
+
689
+ for ( var i = 0, l = items_suggestion.length; i < l; i += 1 )
690
+ {
691
+ var commandName = 'scayt_suggestion_' + items_suggestion[i].replace( ' ', '_' );
692
+ var exec = ( function( el, s )
693
+ {
694
+ return {
695
+ exec: function()
696
+ {
697
+ scayt_control.replace( el, s );
698
+ }
699
+ };
700
+ })( node, items_suggestion[i] );
701
+
702
+ if ( i < maxSuggestions )
703
+ {
704
+ addButtonCommand( editor, 'button_' + commandName, items_suggestion[i],
705
+ commandName, exec, 'scayt_suggest', i + 1 );
706
+ _r[ commandName ] = CKEDITOR.TRISTATE_OFF;
707
+ mainSuggestions[ commandName ] = CKEDITOR.TRISTATE_OFF;
708
+ }
709
+ else if ( moreSuggestionsUnable == 'on' )
710
+ {
711
+ addButtonCommand( editor, 'button_' + commandName, items_suggestion[i],
712
+ commandName, exec, 'scayt_moresuggest', i + 1 );
713
+ moreSuggestions[ commandName ] = CKEDITOR.TRISTATE_OFF;
714
+ moreSuggestionsUnableAdded = true;
715
+ }
716
+ }
717
+
718
+ if ( moreSuggestionsUnableAdded )
719
+ {
720
+ // Register the More suggestions group;
721
+ editor.addMenuItem( 'scayt_moresuggest',
722
+ {
723
+ label : lang.moreSuggestions,
724
+ group : 'scayt_moresuggest',
725
+ order : 10,
726
+ getItems : function()
727
+ {
728
+ return moreSuggestions;
729
+ }
730
+ });
731
+ mainSuggestions[ 'scayt_moresuggest' ] = CKEDITOR.TRISTATE_OFF;
732
+ }
733
+
734
+ if ( in_array( 'all', contextCommands ) || in_array( 'ignore', contextCommands) )
735
+ {
736
+ var ignore_command = {
737
+ exec: function(){
738
+ scayt_control.ignore( node );
739
+ }
740
+ };
741
+ addButtonCommand( editor, 'ignore', lang.ignore, 'scayt_ignore', ignore_command, 'scayt_control', 1 );
742
+ mainSuggestions[ 'scayt_ignore' ] = CKEDITOR.TRISTATE_OFF;
743
+ }
744
+
745
+ if ( in_array( 'all', contextCommands ) || in_array( 'ignoreall', contextCommands ) )
746
+ {
747
+ var ignore_all_command = {
748
+ exec: function(){
749
+ scayt_control.ignoreAll( node );
750
+ }
751
+ };
752
+ addButtonCommand(editor, 'ignore_all', lang.ignoreAll, 'scayt_ignore_all', ignore_all_command, 'scayt_control', 2);
753
+ mainSuggestions['scayt_ignore_all'] = CKEDITOR.TRISTATE_OFF;
754
+ }
755
+
756
+ if ( in_array( 'all', contextCommands ) || in_array( 'add', contextCommands ) )
757
+ {
758
+ var addword_command = {
759
+ exec: function(){
760
+ window.scayt.addWordToUserDictionary( node );
761
+ }
762
+ };
763
+ addButtonCommand(editor, 'add_word', lang.addWord, 'scayt_add_word', addword_command, 'scayt_control', 3);
764
+ mainSuggestions['scayt_add_word'] = CKEDITOR.TRISTATE_OFF;
765
+ }
766
+
767
+ if ( scayt_control.fireOnContextMenu )
768
+ scayt_control.fireOnContextMenu( editor );
769
+
770
+ return mainSuggestions;
771
+ });
772
+ }
773
+
774
+ var showInitialState = function()
775
+ {
776
+ editor.removeListener( 'showScaytState', showInitialState );
777
+
778
+ if ( !CKEDITOR.env.opera && !CKEDITOR.env.air )
779
+ command.setState( plugin.isScaytEnabled( editor ) ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF );
780
+ else
781
+ command.setState( CKEDITOR.TRISTATE_DISABLED );
782
+ };
783
+
784
+ editor.on( 'showScaytState', showInitialState );
785
+
786
+ if ( CKEDITOR.env.opera || CKEDITOR.env.air )
787
+ {
788
+ editor.on( 'instanceReady', function()
789
+ {
790
+ showInitialState();
791
+ });
792
+ }
793
+
794
+ // Start plugin
795
+ if ( editor.config.scayt_autoStartup )
796
+ {
797
+ editor.on( 'instanceReady', function()
798
+ {
799
+ plugin.loadEngine( editor );
800
+ });
801
+ }
802
+ },
803
+
804
+ afterInit : function( editor )
805
+ {
806
+ // Prevent word marker line from displaying in elements path and been removed when cleaning format. (#3570) (#4125)
807
+ var elementsPathFilters,
808
+ scaytFilter = function( element )
809
+ {
810
+ if ( element.hasAttribute( 'data-scaytid' ) )
811
+ return false;
812
+ };
813
+
814
+ if ( editor._.elementsPath && ( elementsPathFilters = editor._.elementsPath.filters ) )
815
+ elementsPathFilters.push( scaytFilter );
816
+
817
+ editor.addRemoveFormatFilter && editor.addRemoveFormatFilter( scaytFilter );
818
+
819
+ }
820
+ });
821
+ })();
822
+
823
+ /**
824
+ * If enabled (set to <code>true</code>), turns on SCAYT automatically
825
+ * after loading the editor.
826
+ * @name CKEDITOR.config.scayt_autoStartup
827
+ * @type Boolean
828
+ * @default <code>false</code>
829
+ * @example
830
+ * config.scayt_autoStartup = true;
831
+ */
832
+
833
+ /**
834
+ * Defines the number of SCAYT suggestions to show in the main context menu.
835
+ * Possible values are:
836
+ * <ul>
837
+ * <li><code>0</code> (zero) &ndash; All suggestions are displayed in the main context menu.</li>
838
+ * <li>Positive number &ndash; The maximum number of suggestions to show in the context
839
+ * menu. Other entries will be shown in the "More Suggestions" sub-menu.</li>
840
+ * <li>Negative number &ndash; No suggestions are shown in the main context menu. All
841
+ * entries will be listed in the the "Suggestions" sub-menu.</li>
842
+ * </ul>
843
+ * @name CKEDITOR.config.scayt_maxSuggestions
844
+ * @type Number
845
+ * @default <code>5</code>
846
+ * @example
847
+ * // Display only three suggestions in the main context menu.
848
+ * config.scayt_maxSuggestions = 3;
849
+ * @example
850
+ * // Do not show the suggestions directly.
851
+ * config.scayt_maxSuggestions = -1;
852
+ */
853
+
854
+ /**
855
+ * Sets the customer ID for SCAYT. Required for migration from free,
856
+ * ad-supported version to paid, ad-free version.
857
+ * @name CKEDITOR.config.scayt_customerid
858
+ * @type String
859
+ * @default <code>''</code>
860
+ * @example
861
+ * // Load SCAYT using my customer ID.
862
+ * config.scayt_customerid = 'your-encrypted-customer-id';
863
+ */
864
+
865
+ /**
866
+ * Enables/disables the "More Suggestions" sub-menu in the context menu.
867
+ * Possible values are <code>on</code> and <code>off</code>.
868
+ * @name CKEDITOR.config.scayt_moreSuggestions
869
+ * @type String
870
+ * @default <code>'on'</code>
871
+ * @example
872
+ * // Disables the "More Suggestions" sub-menu.
873
+ * config.scayt_moreSuggestions = 'off';
874
+ */
875
+
876
+ /**
877
+ * Customizes the display of SCAYT context menu commands ("Add Word", "Ignore"
878
+ * and "Ignore All"). This must be a string with one or more of the following
879
+ * words separated by a pipe character ("|"):
880
+ * <ul>
881
+ * <li><code>off</code> &ndash; disables all options.</li>
882
+ * <li><code>all</code> &ndash; enables all options.</li>
883
+ * <li><code>ignore</code> &ndash; enables the "Ignore" option.</li>
884
+ * <li><code>ignoreall</code> &ndash; enables the "Ignore All" option.</li>
885
+ * <li><code>add</code> &ndash; enables the "Add Word" option.</li>
886
+ * </ul>
887
+ * @name CKEDITOR.config.scayt_contextCommands
888
+ * @type String
889
+ * @default <code>'all'</code>
890
+ * @example
891
+ * // Show only "Add Word" and "Ignore All" in the context menu.
892
+ * config.scayt_contextCommands = 'add|ignoreall';
893
+ */
894
+
895
+ /**
896
+ * Sets the default spell checking language for SCAYT. Possible values are:
897
+ * <code>en_US</code>, <code>en_GB</code>, <code>pt_BR</code>, <code>da_DK</code>,
898
+ * <code>nl_NL</code>, <code>en_CA</code>, <code>fi_FI</code>, <code>fr_FR</code>,
899
+ * <code>fr_CA</code>, <code>de_DE</code>, <code>el_GR</code>, <code>it_IT</code>,
900
+ * <code>nb_NO</code>, <code>pt_PT</code>, <code>es_ES</code>, <code>sv_SE</code>.
901
+ * @name CKEDITOR.config.scayt_sLang
902
+ * @type String
903
+ * @default <code>'en_US'</code>
904
+ * @example
905
+ * // Sets SCAYT to German.
906
+ * config.scayt_sLang = 'de_DE';
907
+ */
908
+
909
+ /**
910
+ * Sets the visibility of particular tabs in the SCAYT dialog window and toolbar
911
+ * button. This setting must contain a <code>1</code> (enabled) or <code>0</code>
912
+ * (disabled) value for each of the following entries, in this precise order,
913
+ * separated by a comma (","): "Options", "Languages", and "Dictionary".
914
+ * @name CKEDITOR.config.scayt_uiTabs
915
+ * @type String
916
+ * @default <code>'1,1,1'</code>
917
+ * @example
918
+ * // Hides the "Languages" tab.
919
+ * config.scayt_uiTabs = '1,0,1';
920
+ */
921
+
922
+
923
+ /**
924
+ * Sets the URL to SCAYT core. Required to switch to the licensed version of SCAYT application.
925
+ * Further details available at
926
+ * <a href="http://wiki.webspellchecker.net/doku.php?id=migration:hosredfreetolicensedck">
927
+ * http://wiki.webspellchecker.net/doku.php?id=migration:hosredfreetolicensedck</a>.
928
+ * @name CKEDITOR.config.scayt_srcUrl
929
+ * @type String
930
+ * @default <code>''</code>
931
+ * @example
932
+ * config.scayt_srcUrl = "http://my-host/spellcheck/lf/scayt/scayt.js";
933
+ */
934
+
935
+ /**
936
+ * Links SCAYT to custom dictionaries. This is a string containing dictionary IDs
937
+ * separared by commas (","). Available only for the licensed version.
938
+ * Further details at
939
+ * <a href="http://wiki.webspellchecker.net/doku.php?id=installationandconfiguration:customdictionaries:licensed">
940
+ * http://wiki.webspellchecker.net/doku.php?id=installationandconfiguration:customdictionaries:licensed</a>.
941
+ * @name CKEDITOR.config.scayt_customDictionaryIds
942
+ * @type String
943
+ * @default <code>''</code>
944
+ * @example
945
+ * config.scayt_customDictionaryIds = '3021,3456,3478"';
946
+ */
947
+
948
+ /**
949
+ * Makes it possible to activate a custom dictionary in SCAYT. The user
950
+ * dictionary name must be used. Available only for the licensed version.
951
+ * @name CKEDITOR.config.scayt_userDictionaryName
952
+ * @type String
953
+ * @default <code>''</code>
954
+ * @example
955
+ * config.scayt_userDictionaryName = 'MyDictionary';
956
+ */
957
+
958
+ /**
959
+ * Defines the order SCAYT context menu items by groups.
960
+ * This must be a string with one or more of the following
961
+ * words separated by a pipe character ("|"):
962
+ * <ul>
963
+ * <li><code>suggest</code> &ndash; main suggestion word list,</li>
964
+ * <li><code>moresuggest</code> &ndash; more suggestions word list,</li>
965
+ * <li><code>control</code> &ndash; SCAYT commands, such as "Ignore" and "Add Word".</li>
966
+ * </ul>
967
+ *
968
+ * @name CKEDITOR.config.scayt_contextMenuItemsOrder
969
+ * @type String
970
+ * @default <code>'suggest|moresuggest|control'</code>
971
+ * @example
972
+ * config.scayt_contextMenuItemsOrder = 'moresuggest|control|suggest';
973
+ */