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,695 +1,691 @@
1
- /*
2
- Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
3
- For licensing, see LICENSE.html or http://ckeditor.com/license
4
- */
5
-
6
- /**
7
- * @fileOverview Defines the {@link CKEDITOR.dom.node} class which is the base
8
- * class for classes that represent DOM nodes.
9
- */
10
-
11
- /**
12
- * Base class for classes representing DOM nodes. This constructor may return
13
- * an instance of a class that inherits from this class, like
14
- * {@link CKEDITOR.dom.element} or {@link CKEDITOR.dom.text}.
15
- * @augments CKEDITOR.dom.domObject
16
- * @param {Object} domNode A native DOM node.
17
- * @constructor
18
- * @see CKEDITOR.dom.element
19
- * @see CKEDITOR.dom.text
20
- * @example
21
- */
22
- CKEDITOR.dom.node = function( domNode )
23
- {
24
- if ( domNode )
25
- {
26
- switch ( domNode.nodeType )
27
- {
28
- // Safari don't consider document as element node type. (#3389)
29
- case CKEDITOR.NODE_DOCUMENT :
30
- return new CKEDITOR.dom.document( domNode );
31
-
32
- case CKEDITOR.NODE_ELEMENT :
33
- return new CKEDITOR.dom.element( domNode );
34
-
35
- case CKEDITOR.NODE_TEXT :
36
- return new CKEDITOR.dom.text( domNode );
37
- }
38
-
39
- // Call the base constructor.
40
- CKEDITOR.dom.domObject.call( this, domNode );
41
- }
42
-
43
- return this;
44
- };
45
-
46
- CKEDITOR.dom.node.prototype = new CKEDITOR.dom.domObject();
47
-
48
- /**
49
- * Element node type.
50
- * @constant
51
- * @example
52
- */
53
- CKEDITOR.NODE_ELEMENT = 1;
54
-
55
- /**
56
- * Document node type.
57
- * @constant
58
- * @example
59
- */
60
- CKEDITOR.NODE_DOCUMENT = 9;
61
-
62
- /**
63
- * Text node type.
64
- * @constant
65
- * @example
66
- */
67
- CKEDITOR.NODE_TEXT = 3;
68
-
69
- /**
70
- * Comment node type.
71
- * @constant
72
- * @example
73
- */
74
- CKEDITOR.NODE_COMMENT = 8;
75
-
76
- CKEDITOR.NODE_DOCUMENT_FRAGMENT = 11;
77
-
78
- CKEDITOR.POSITION_IDENTICAL = 0;
79
- CKEDITOR.POSITION_DISCONNECTED = 1;
80
- CKEDITOR.POSITION_FOLLOWING = 2;
81
- CKEDITOR.POSITION_PRECEDING = 4;
82
- CKEDITOR.POSITION_IS_CONTAINED = 8;
83
- CKEDITOR.POSITION_CONTAINS = 16;
84
-
85
- CKEDITOR.tools.extend( CKEDITOR.dom.node.prototype,
86
- /** @lends CKEDITOR.dom.node.prototype */
87
- {
88
- /**
89
- * Makes this node a child of another element.
90
- * @param {CKEDITOR.dom.element} element The target element to which
91
- * this node will be appended.
92
- * @returns {CKEDITOR.dom.element} The target element.
93
- * @example
94
- * var p = new CKEDITOR.dom.element( 'p' );
95
- * var strong = new CKEDITOR.dom.element( 'strong' );
96
- * strong.appendTo( p );
97
- *
98
- * // result: "<p><strong></strong></p>"
99
- */
100
- appendTo : function( element, toStart )
101
- {
102
- element.append( this, toStart );
103
- return element;
104
- },
105
-
106
- clone : function( includeChildren, cloneId )
107
- {
108
- var $clone = this.$.cloneNode( includeChildren );
109
-
110
- var removeIds = function( node )
111
- {
112
- if ( node.nodeType != CKEDITOR.NODE_ELEMENT )
113
- return;
114
-
115
- if ( !cloneId )
116
- node.removeAttribute( 'id', false );
117
- node.removeAttribute( 'data-cke-expando', false );
118
-
119
- if ( includeChildren )
120
- {
121
- var childs = node.childNodes;
122
- for ( var i=0; i < childs.length; i++ )
123
- removeIds( childs[ i ] );
124
- }
125
- };
126
-
127
- // The "id" attribute should never be cloned to avoid duplication.
128
- removeIds( $clone );
129
-
130
- return new CKEDITOR.dom.node( $clone );
131
- },
132
-
133
- hasPrevious : function()
134
- {
135
- return !!this.$.previousSibling;
136
- },
137
-
138
- hasNext : function()
139
- {
140
- return !!this.$.nextSibling;
141
- },
142
-
143
- /**
144
- * Inserts this element after a node.
145
- * @param {CKEDITOR.dom.node} node The node that will precede this element.
146
- * @returns {CKEDITOR.dom.node} The node preceding this one after
147
- * insertion.
148
- * @example
149
- * var em = new CKEDITOR.dom.element( 'em' );
150
- * var strong = new CKEDITOR.dom.element( 'strong' );
151
- * strong.insertAfter( em );
152
- *
153
- * // result: "&lt;em&gt;&lt;/em&gt;&lt;strong&gt;&lt;/strong&gt;"
154
- */
155
- insertAfter : function( node )
156
- {
157
- node.$.parentNode.insertBefore( this.$, node.$.nextSibling );
158
- return node;
159
- },
160
-
161
- /**
162
- * Inserts this element before a node.
163
- * @param {CKEDITOR.dom.node} node The node that will succeed this element.
164
- * @returns {CKEDITOR.dom.node} The node being inserted.
165
- * @example
166
- * var em = new CKEDITOR.dom.element( 'em' );
167
- * var strong = new CKEDITOR.dom.element( 'strong' );
168
- * strong.insertBefore( em );
169
- *
170
- * // result: "&lt;strong&gt;&lt;/strong&gt;&lt;em&gt;&lt;/em&gt;"
171
- */
172
- insertBefore : function( node )
173
- {
174
- node.$.parentNode.insertBefore( this.$, node.$ );
175
- return node;
176
- },
177
-
178
- insertBeforeMe : function( node )
179
- {
180
- this.$.parentNode.insertBefore( node.$, this.$ );
181
- return node;
182
- },
183
-
184
- /**
185
- * Retrieves a uniquely identifiable tree address for this node.
186
- * The tree address returned is an array of integers, with each integer
187
- * indicating a child index of a DOM node, starting from
188
- * <code>document.documentElement</code>.
189
- *
190
- * For example, assuming <code>&lt;body&gt;</code> is the second child
191
- * of <code>&lt;html&gt;</code> (<code>&lt;head&gt;</code> being the first),
192
- * and we would like to address the third child under the
193
- * fourth child of <code>&lt;body&gt;</code>, the tree address returned would be:
194
- * [1, 3, 2]
195
- *
196
- * The tree address cannot be used for finding back the DOM tree node once
197
- * the DOM tree structure has been modified.
198
- */
199
- getAddress : function( normalized )
200
- {
201
- var address = [];
202
- var $documentElement = this.getDocument().$.documentElement;
203
- var node = this.$;
204
-
205
- while ( node && node != $documentElement )
206
- {
207
- var parentNode = node.parentNode;
208
-
209
- if ( parentNode )
210
- {
211
- // Get the node index. For performance, call getIndex
212
- // directly, instead of creating a new node object.
213
- address.unshift( this.getIndex.call( { $ : node }, normalized ) );
214
- }
215
-
216
- node = parentNode;
217
- }
218
-
219
- return address;
220
- },
221
-
222
- /**
223
- * Gets the document containing this element.
224
- * @returns {CKEDITOR.dom.document} The document.
225
- * @example
226
- * var element = CKEDITOR.document.getById( 'example' );
227
- * alert( <strong>element.getDocument().equals( CKEDITOR.document )</strong> ); // "true"
228
- */
229
- getDocument : function()
230
- {
231
- return new CKEDITOR.dom.document( this.$.ownerDocument || this.$.parentNode.ownerDocument );
232
- },
233
-
234
- getIndex : function( normalized )
235
- {
236
- // Attention: getAddress depends on this.$
237
-
238
- var current = this.$,
239
- index = 0;
240
-
241
- while ( ( current = current.previousSibling ) )
242
- {
243
- // When normalizing, do not count it if this is an
244
- // empty text node or if it's a text node following another one.
245
- if ( normalized && current.nodeType == 3 &&
246
- ( !current.nodeValue.length ||
247
- ( current.previousSibling && current.previousSibling.nodeType == 3 ) ) )
248
- {
249
- continue;
250
- }
251
-
252
- index++;
253
- }
254
-
255
- return index;
256
- },
257
-
258
- getNextSourceNode : function( startFromSibling, nodeType, guard )
259
- {
260
- // If "guard" is a node, transform it in a function.
261
- if ( guard && !guard.call )
262
- {
263
- var guardNode = guard;
264
- guard = function( node )
265
- {
266
- return !node.equals( guardNode );
267
- };
268
- }
269
-
270
- var node = ( !startFromSibling && this.getFirst && this.getFirst() ),
271
- parent;
272
-
273
- // Guarding when we're skipping the current element( no children or 'startFromSibling' ).
274
- // send the 'moving out' signal even we don't actually dive into.
275
- if ( !node )
276
- {
277
- if ( this.type == CKEDITOR.NODE_ELEMENT && guard && guard( this, true ) === false )
278
- return null;
279
- node = this.getNext();
280
- }
281
-
282
- while ( !node && ( parent = ( parent || this ).getParent() ) )
283
- {
284
- // The guard check sends the "true" paramenter to indicate that
285
- // we are moving "out" of the element.
286
- if ( guard && guard( parent, true ) === false )
287
- return null;
288
-
289
- node = parent.getNext();
290
- }
291
-
292
- if ( !node )
293
- return null;
294
-
295
- if ( guard && guard( node ) === false )
296
- return null;
297
-
298
- if ( nodeType && nodeType != node.type )
299
- return node.getNextSourceNode( false, nodeType, guard );
300
-
301
- return node;
302
- },
303
-
304
- getPreviousSourceNode : function( startFromSibling, nodeType, guard )
305
- {
306
- if ( guard && !guard.call )
307
- {
308
- var guardNode = guard;
309
- guard = function( node )
310
- {
311
- return !node.equals( guardNode );
312
- };
313
- }
314
-
315
- var node = ( !startFromSibling && this.getLast && this.getLast() ),
316
- parent;
317
-
318
- // Guarding when we're skipping the current element( no children or 'startFromSibling' ).
319
- // send the 'moving out' signal even we don't actually dive into.
320
- if ( !node )
321
- {
322
- if ( this.type == CKEDITOR.NODE_ELEMENT && guard && guard( this, true ) === false )
323
- return null;
324
- node = this.getPrevious();
325
- }
326
-
327
- while ( !node && ( parent = ( parent || this ).getParent() ) )
328
- {
329
- // The guard check sends the "true" paramenter to indicate that
330
- // we are moving "out" of the element.
331
- if ( guard && guard( parent, true ) === false )
332
- return null;
333
-
334
- node = parent.getPrevious();
335
- }
336
-
337
- if ( !node )
338
- return null;
339
-
340
- if ( guard && guard( node ) === false )
341
- return null;
342
-
343
- if ( nodeType && node.type != nodeType )
344
- return node.getPreviousSourceNode( false, nodeType, guard );
345
-
346
- return node;
347
- },
348
-
349
- getPrevious : function( evaluator )
350
- {
351
- var previous = this.$, retval;
352
- do
353
- {
354
- previous = previous.previousSibling;
355
- retval = previous && new CKEDITOR.dom.node( previous );
356
- }
357
- while ( retval && evaluator && !evaluator( retval ) )
358
- return retval;
359
- },
360
-
361
- /**
362
- * Gets the node that follows this element in its parent's child list.
363
- * @param {Function} evaluator Filtering the result node.
364
- * @returns {CKEDITOR.dom.node} The next node or null if not available.
365
- * @example
366
- * var element = CKEDITOR.dom.element.createFromHtml( '&lt;div&gt;&lt;b&gt;Example&lt;/b&gt; &lt;i&gt;next&lt;/i&gt;&lt;/div&gt;' );
367
- * var first = <strong>element.getFirst().getNext()</strong>;
368
- * alert( first.getName() ); // "i"
369
- */
370
- getNext : function( evaluator )
371
- {
372
- var next = this.$, retval;
373
- do
374
- {
375
- next = next.nextSibling;
376
- retval = next && new CKEDITOR.dom.node( next );
377
- }
378
- while ( retval && evaluator && !evaluator( retval ) )
379
- return retval;
380
- },
381
-
382
- /**
383
- * Gets the parent element for this node.
384
- * @returns {CKEDITOR.dom.element} The parent element.
385
- * @example
386
- * var node = editor.document.getBody().getFirst();
387
- * var parent = node.<strong>getParent()</strong>;
388
- * alert( node.getName() ); // "body"
389
- */
390
- getParent : function()
391
- {
392
- var parent = this.$.parentNode;
393
- return ( parent && parent.nodeType == 1 ) ? new CKEDITOR.dom.node( parent ) : null;
394
- },
395
-
396
- getParents : function( closerFirst )
397
- {
398
- var node = this;
399
- var parents = [];
400
-
401
- do
402
- {
403
- parents[ closerFirst ? 'push' : 'unshift' ]( node );
404
- }
405
- while ( ( node = node.getParent() ) )
406
-
407
- return parents;
408
- },
409
-
410
- getCommonAncestor : function( node )
411
- {
412
- if ( node.equals( this ) )
413
- return this;
414
-
415
- if ( node.contains && node.contains( this ) )
416
- return node;
417
-
418
- var start = this.contains ? this : this.getParent();
419
-
420
- do
421
- {
422
- if ( start.contains( node ) )
423
- return start;
424
- }
425
- while ( ( start = start.getParent() ) );
426
-
427
- return null;
428
- },
429
-
430
- getPosition : function( otherNode )
431
- {
432
- var $ = this.$;
433
- var $other = otherNode.$;
434
-
435
- if ( $.compareDocumentPosition )
436
- return $.compareDocumentPosition( $other );
437
-
438
- // IE and Safari have no support for compareDocumentPosition.
439
-
440
- if ( $ == $other )
441
- return CKEDITOR.POSITION_IDENTICAL;
442
-
443
- // Only element nodes support contains and sourceIndex.
444
- if ( this.type == CKEDITOR.NODE_ELEMENT && otherNode.type == CKEDITOR.NODE_ELEMENT )
445
- {
446
- if ( $.contains )
447
- {
448
- if ( $.contains( $other ) )
449
- return CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECEDING;
450
-
451
- if ( $other.contains( $ ) )
452
- return CKEDITOR.POSITION_IS_CONTAINED + CKEDITOR.POSITION_FOLLOWING;
453
- }
454
-
455
- if ( 'sourceIndex' in $ )
456
- {
457
- return ( $.sourceIndex < 0 || $other.sourceIndex < 0 ) ? CKEDITOR.POSITION_DISCONNECTED :
458
- ( $.sourceIndex < $other.sourceIndex ) ? CKEDITOR.POSITION_PRECEDING :
459
- CKEDITOR.POSITION_FOLLOWING;
460
- }
461
- }
462
-
463
- // For nodes that don't support compareDocumentPosition, contains
464
- // or sourceIndex, their "address" is compared.
465
-
466
- var addressOfThis = this.getAddress(),
467
- addressOfOther = otherNode.getAddress(),
468
- minLevel = Math.min( addressOfThis.length, addressOfOther.length );
469
-
470
- // Determinate preceed/follow relationship.
471
- for ( var i = 0 ; i <= minLevel - 1 ; i++ )
472
- {
473
- if ( addressOfThis[ i ] != addressOfOther[ i ] )
474
- {
475
- if ( i < minLevel )
476
- {
477
- return addressOfThis[ i ] < addressOfOther[ i ] ?
478
- CKEDITOR.POSITION_PRECEDING : CKEDITOR.POSITION_FOLLOWING;
479
- }
480
- break;
481
- }
482
- }
483
-
484
- // Determinate contains/contained relationship.
485
- return ( addressOfThis.length < addressOfOther.length ) ?
486
- CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECEDING :
487
- CKEDITOR.POSITION_IS_CONTAINED + CKEDITOR.POSITION_FOLLOWING;
488
- },
489
-
490
- /**
491
- * Gets the closest ancestor node of this node, specified by its name.
492
- * @param {String} reference The name of the ancestor node to search or
493
- * an object with the node names to search for.
494
- * @param {Boolean} [includeSelf] Whether to include the current
495
- * node in the search.
496
- * @returns {CKEDITOR.dom.node} The located ancestor node or null if not found.
497
- * @since 3.6.1
498
- * @example
499
- * // Suppose we have the following HTML structure:
500
- * // &lt;div id="outer"&gt;&lt;div id="inner"&gt;&lt;p&gt;&lt;b&gt;Some text&lt;/b&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
501
- * // If node == &lt;b&gt;
502
- * ascendant = node.getAscendant( 'div' ); // ascendant == &lt;div id="inner"&gt
503
- * ascendant = node.getAscendant( 'b' ); // ascendant == null
504
- * ascendant = node.getAscendant( 'b', true ); // ascendant == &lt;b&gt;
505
- * ascendant = node.getAscendant( { div: 1, p: 1} ); // Searches for the first 'div' or 'p': ascendant == &lt;div id="inner"&gt
506
- */
507
- getAscendant : function( reference, includeSelf )
508
- {
509
- var $ = this.$,
510
- name;
511
-
512
- if ( !includeSelf )
513
- $ = $.parentNode;
514
-
515
- while ( $ )
516
- {
517
- if ( $.nodeName && ( name = $.nodeName.toLowerCase(), ( typeof reference == 'string' ? name == reference : name in reference ) ) )
518
- return new CKEDITOR.dom.node( $ );
519
-
520
- $ = $.parentNode;
521
- }
522
- return null;
523
- },
524
-
525
- hasAscendant : function( name, includeSelf )
526
- {
527
- var $ = this.$;
528
-
529
- if ( !includeSelf )
530
- $ = $.parentNode;
531
-
532
- while ( $ )
533
- {
534
- if ( $.nodeName && $.nodeName.toLowerCase() == name )
535
- return true;
536
-
537
- $ = $.parentNode;
538
- }
539
- return false;
540
- },
541
-
542
- move : function( target, toStart )
543
- {
544
- target.append( this.remove(), toStart );
545
- },
546
-
547
- /**
548
- * Removes this node from the document DOM.
549
- * @param {Boolean} [preserveChildren] Indicates that the children
550
- * elements must remain in the document, removing only the outer
551
- * tags.
552
- * @example
553
- * var element = CKEDITOR.dom.element.getById( 'MyElement' );
554
- * <strong>element.remove()</strong>;
555
- */
556
- remove : function( preserveChildren )
557
- {
558
- var $ = this.$;
559
- var parent = $.parentNode;
560
-
561
- if ( parent )
562
- {
563
- if ( preserveChildren )
564
- {
565
- // Move all children before the node.
566
- for ( var child ; ( child = $.firstChild ) ; )
567
- {
568
- parent.insertBefore( $.removeChild( child ), $ );
569
- }
570
- }
571
-
572
- parent.removeChild( $ );
573
- }
574
-
575
- return this;
576
- },
577
-
578
- replace : function( nodeToReplace )
579
- {
580
- this.insertBefore( nodeToReplace );
581
- nodeToReplace.remove();
582
- },
583
-
584
- trim : function()
585
- {
586
- this.ltrim();
587
- this.rtrim();
588
- },
589
-
590
- ltrim : function()
591
- {
592
- var child;
593
- while ( this.getFirst && ( child = this.getFirst() ) )
594
- {
595
- if ( child.type == CKEDITOR.NODE_TEXT )
596
- {
597
- var trimmed = CKEDITOR.tools.ltrim( child.getText() ),
598
- originalLength = child.getLength();
599
-
600
- if ( !trimmed )
601
- {
602
- child.remove();
603
- continue;
604
- }
605
- else if ( trimmed.length < originalLength )
606
- {
607
- child.split( originalLength - trimmed.length );
608
-
609
- // IE BUG: child.remove() may raise JavaScript errors here. (#81)
610
- this.$.removeChild( this.$.firstChild );
611
- }
612
- }
613
- break;
614
- }
615
- },
616
-
617
- rtrim : function()
618
- {
619
- var child;
620
- while ( this.getLast && ( child = this.getLast() ) )
621
- {
622
- if ( child.type == CKEDITOR.NODE_TEXT )
623
- {
624
- var trimmed = CKEDITOR.tools.rtrim( child.getText() ),
625
- originalLength = child.getLength();
626
-
627
- if ( !trimmed )
628
- {
629
- child.remove();
630
- continue;
631
- }
632
- else if ( trimmed.length < originalLength )
633
- {
634
- child.split( trimmed.length );
635
-
636
- // IE BUG: child.getNext().remove() may raise JavaScript errors here.
637
- // (#81)
638
- this.$.lastChild.parentNode.removeChild( this.$.lastChild );
639
- }
640
- }
641
- break;
642
- }
643
-
644
- if ( !CKEDITOR.env.ie && !CKEDITOR.env.opera )
645
- {
646
- child = this.$.lastChild;
647
-
648
- if ( child && child.type == 1 && child.nodeName.toLowerCase() == 'br' )
649
- {
650
- // Use "eChildNode.parentNode" instead of "node" to avoid IE bug (#324).
651
- child.parentNode.removeChild( child ) ;
652
- }
653
- }
654
- },
655
-
656
- /**
657
- * Checks if this node is read-only (should not be changed). Additionally
658
- * it returns the element that defines the read-only state of this node
659
- * (if present). It may be the node itself or any of its parent
660
- * nodes.
661
- * @returns {CKEDITOR.dom.element|Boolean} An element containing
662
- * read-only attributes or "false" if none is found.
663
- * @since 3.5
664
- * @example
665
- * // For the following HTML:
666
- * // &lt;div contenteditable="false"&gt;Some &lt;b&gt;text&lt;/b&gt;&lt;/div&gt;
667
- *
668
- * // If "ele" is the above &lt;div&gt;
669
- * ele.isReadOnly(); // the &lt;div&gt; element
670
- *
671
- * // If "ele" is the above &lt;b&gt;
672
- * ele.isReadOnly(); // the &lt;div&gt; element
673
- */
674
- isReadOnly : function()
675
- {
676
- var current = this;
677
- while( current )
678
- {
679
- if ( current.type == CKEDITOR.NODE_ELEMENT )
680
- {
681
- if ( current.is( 'body' ) || !!current.data( 'cke-editable' ) )
682
- break;
683
-
684
- if ( current.getAttribute( 'contentEditable' ) == 'false' )
685
- return current;
686
- else if ( current.getAttribute( 'contentEditable' ) == 'true' )
687
- break;
688
- }
689
- current = current.getParent();
690
- }
691
-
692
- return false;
693
- }
694
- }
695
- );
1
+ /*
2
+ Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ /**
7
+ * @fileOverview Defines the {@link CKEDITOR.dom.node} class which is the base
8
+ * class for classes that represent DOM nodes.
9
+ */
10
+
11
+ /**
12
+ * Base class for classes representing DOM nodes. This constructor may return
13
+ * an instance of a class that inherits from this class, like
14
+ * {@link CKEDITOR.dom.element} or {@link CKEDITOR.dom.text}.
15
+ * @augments CKEDITOR.dom.domObject
16
+ * @param {Object} domNode A native DOM node.
17
+ * @constructor
18
+ * @see CKEDITOR.dom.element
19
+ * @see CKEDITOR.dom.text
20
+ * @example
21
+ */
22
+ CKEDITOR.dom.node = function( domNode )
23
+ {
24
+ if ( domNode )
25
+ {
26
+ var type = domNode.nodeType == CKEDITOR.NODE_DOCUMENT ? 'document'
27
+ : domNode.nodeType == CKEDITOR.NODE_ELEMENT ? 'element'
28
+ : domNode.nodeType == CKEDITOR.NODE_TEXT ? 'text'
29
+ : domNode.nodeType == CKEDITOR.NODE_COMMENT ? 'comment'
30
+ : 'domObject'; // Call the base constructor otherwise.
31
+
32
+ return new CKEDITOR.dom[ type ]( domNode );
33
+ }
34
+
35
+ return this;
36
+ };
37
+
38
+ CKEDITOR.dom.node.prototype = new CKEDITOR.dom.domObject();
39
+
40
+ /**
41
+ * Element node type.
42
+ * @constant
43
+ * @example
44
+ */
45
+ CKEDITOR.NODE_ELEMENT = 1;
46
+
47
+ /**
48
+ * Document node type.
49
+ * @constant
50
+ * @example
51
+ */
52
+ CKEDITOR.NODE_DOCUMENT = 9;
53
+
54
+ /**
55
+ * Text node type.
56
+ * @constant
57
+ * @example
58
+ */
59
+ CKEDITOR.NODE_TEXT = 3;
60
+
61
+ /**
62
+ * Comment node type.
63
+ * @constant
64
+ * @example
65
+ */
66
+ CKEDITOR.NODE_COMMENT = 8;
67
+
68
+ CKEDITOR.NODE_DOCUMENT_FRAGMENT = 11;
69
+
70
+ CKEDITOR.POSITION_IDENTICAL = 0;
71
+ CKEDITOR.POSITION_DISCONNECTED = 1;
72
+ CKEDITOR.POSITION_FOLLOWING = 2;
73
+ CKEDITOR.POSITION_PRECEDING = 4;
74
+ CKEDITOR.POSITION_IS_CONTAINED = 8;
75
+ CKEDITOR.POSITION_CONTAINS = 16;
76
+
77
+ CKEDITOR.tools.extend( CKEDITOR.dom.node.prototype,
78
+ /** @lends CKEDITOR.dom.node.prototype */
79
+ {
80
+ /**
81
+ * Makes this node a child of another element.
82
+ * @param {CKEDITOR.dom.element} element The target element to which
83
+ * this node will be appended.
84
+ * @returns {CKEDITOR.dom.element} The target element.
85
+ * @example
86
+ * var p = new CKEDITOR.dom.element( 'p' );
87
+ * var strong = new CKEDITOR.dom.element( 'strong' );
88
+ * strong.appendTo( p );
89
+ *
90
+ * // result: "&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;"
91
+ */
92
+ appendTo : function( element, toStart )
93
+ {
94
+ element.append( this, toStart );
95
+ return element;
96
+ },
97
+
98
+ clone : function( includeChildren, cloneId )
99
+ {
100
+ var $clone = this.$.cloneNode( includeChildren );
101
+
102
+ var removeIds = function( node )
103
+ {
104
+ if ( node.nodeType != CKEDITOR.NODE_ELEMENT )
105
+ return;
106
+
107
+ if ( !cloneId )
108
+ node.removeAttribute( 'id', false );
109
+ node.removeAttribute( 'data-cke-expando', false );
110
+
111
+ if ( includeChildren )
112
+ {
113
+ var childs = node.childNodes;
114
+ for ( var i=0; i < childs.length; i++ )
115
+ removeIds( childs[ i ] );
116
+ }
117
+ };
118
+
119
+ // The "id" attribute should never be cloned to avoid duplication.
120
+ removeIds( $clone );
121
+
122
+ return new CKEDITOR.dom.node( $clone );
123
+ },
124
+
125
+ hasPrevious : function()
126
+ {
127
+ return !!this.$.previousSibling;
128
+ },
129
+
130
+ hasNext : function()
131
+ {
132
+ return !!this.$.nextSibling;
133
+ },
134
+
135
+ /**
136
+ * Inserts this element after a node.
137
+ * @param {CKEDITOR.dom.node} node The node that will precede this element.
138
+ * @returns {CKEDITOR.dom.node} The node preceding this one after
139
+ * insertion.
140
+ * @example
141
+ * var em = new CKEDITOR.dom.element( 'em' );
142
+ * var strong = new CKEDITOR.dom.element( 'strong' );
143
+ * strong.insertAfter( em );
144
+ *
145
+ * // result: "&lt;em&gt;&lt;/em&gt;&lt;strong&gt;&lt;/strong&gt;"
146
+ */
147
+ insertAfter : function( node )
148
+ {
149
+ node.$.parentNode.insertBefore( this.$, node.$.nextSibling );
150
+ return node;
151
+ },
152
+
153
+ /**
154
+ * Inserts this element before a node.
155
+ * @param {CKEDITOR.dom.node} node The node that will succeed this element.
156
+ * @returns {CKEDITOR.dom.node} The node being inserted.
157
+ * @example
158
+ * var em = new CKEDITOR.dom.element( 'em' );
159
+ * var strong = new CKEDITOR.dom.element( 'strong' );
160
+ * strong.insertBefore( em );
161
+ *
162
+ * // result: "&lt;strong&gt;&lt;/strong&gt;&lt;em&gt;&lt;/em&gt;"
163
+ */
164
+ insertBefore : function( node )
165
+ {
166
+ node.$.parentNode.insertBefore( this.$, node.$ );
167
+ return node;
168
+ },
169
+
170
+ insertBeforeMe : function( node )
171
+ {
172
+ this.$.parentNode.insertBefore( node.$, this.$ );
173
+ return node;
174
+ },
175
+
176
+ /**
177
+ * Retrieves a uniquely identifiable tree address for this node.
178
+ * The tree address returned is an array of integers, with each integer
179
+ * indicating a child index of a DOM node, starting from
180
+ * <code>document.documentElement</code>.
181
+ *
182
+ * For example, assuming <code>&lt;body&gt;</code> is the second child
183
+ * of <code>&lt;html&gt;</code> (<code>&lt;head&gt;</code> being the first),
184
+ * and we would like to address the third child under the
185
+ * fourth child of <code>&lt;body&gt;</code>, the tree address returned would be:
186
+ * [1, 3, 2]
187
+ *
188
+ * The tree address cannot be used for finding back the DOM tree node once
189
+ * the DOM tree structure has been modified.
190
+ */
191
+ getAddress : function( normalized )
192
+ {
193
+ var address = [];
194
+ var $documentElement = this.getDocument().$.documentElement;
195
+ var node = this.$;
196
+
197
+ while ( node && node != $documentElement )
198
+ {
199
+ var parentNode = node.parentNode;
200
+
201
+ if ( parentNode )
202
+ {
203
+ // Get the node index. For performance, call getIndex
204
+ // directly, instead of creating a new node object.
205
+ address.unshift( this.getIndex.call( { $ : node }, normalized ) );
206
+ }
207
+
208
+ node = parentNode;
209
+ }
210
+
211
+ return address;
212
+ },
213
+
214
+ /**
215
+ * Gets the document containing this element.
216
+ * @returns {CKEDITOR.dom.document} The document.
217
+ * @example
218
+ * var element = CKEDITOR.document.getById( 'example' );
219
+ * alert( <strong>element.getDocument().equals( CKEDITOR.document )</strong> ); // "true"
220
+ */
221
+ getDocument : function()
222
+ {
223
+ return new CKEDITOR.dom.document( this.$.ownerDocument || this.$.parentNode.ownerDocument );
224
+ },
225
+
226
+ getIndex : function( normalized )
227
+ {
228
+ // Attention: getAddress depends on this.$
229
+
230
+ var current = this.$,
231
+ index = 0;
232
+
233
+ while ( ( current = current.previousSibling ) )
234
+ {
235
+ // When normalizing, do not count it if this is an
236
+ // empty text node or if it's a text node following another one.
237
+ if ( normalized && current.nodeType == 3 &&
238
+ ( !current.nodeValue.length ||
239
+ ( current.previousSibling && current.previousSibling.nodeType == 3 ) ) )
240
+ {
241
+ continue;
242
+ }
243
+
244
+ index++;
245
+ }
246
+
247
+ return index;
248
+ },
249
+
250
+ getNextSourceNode : function( startFromSibling, nodeType, guard )
251
+ {
252
+ // If "guard" is a node, transform it in a function.
253
+ if ( guard && !guard.call )
254
+ {
255
+ var guardNode = guard;
256
+ guard = function( node )
257
+ {
258
+ return !node.equals( guardNode );
259
+ };
260
+ }
261
+
262
+ var node = ( !startFromSibling && this.getFirst && this.getFirst() ),
263
+ parent;
264
+
265
+ // Guarding when we're skipping the current element( no children or 'startFromSibling' ).
266
+ // send the 'moving out' signal even we don't actually dive into.
267
+ if ( !node )
268
+ {
269
+ if ( this.type == CKEDITOR.NODE_ELEMENT && guard && guard( this, true ) === false )
270
+ return null;
271
+ node = this.getNext();
272
+ }
273
+
274
+ while ( !node && ( parent = ( parent || this ).getParent() ) )
275
+ {
276
+ // The guard check sends the "true" paramenter to indicate that
277
+ // we are moving "out" of the element.
278
+ if ( guard && guard( parent, true ) === false )
279
+ return null;
280
+
281
+ node = parent.getNext();
282
+ }
283
+
284
+ if ( !node )
285
+ return null;
286
+
287
+ if ( guard && guard( node ) === false )
288
+ return null;
289
+
290
+ if ( nodeType && nodeType != node.type )
291
+ return node.getNextSourceNode( false, nodeType, guard );
292
+
293
+ return node;
294
+ },
295
+
296
+ getPreviousSourceNode : function( startFromSibling, nodeType, guard )
297
+ {
298
+ if ( guard && !guard.call )
299
+ {
300
+ var guardNode = guard;
301
+ guard = function( node )
302
+ {
303
+ return !node.equals( guardNode );
304
+ };
305
+ }
306
+
307
+ var node = ( !startFromSibling && this.getLast && this.getLast() ),
308
+ parent;
309
+
310
+ // Guarding when we're skipping the current element( no children or 'startFromSibling' ).
311
+ // send the 'moving out' signal even we don't actually dive into.
312
+ if ( !node )
313
+ {
314
+ if ( this.type == CKEDITOR.NODE_ELEMENT && guard && guard( this, true ) === false )
315
+ return null;
316
+ node = this.getPrevious();
317
+ }
318
+
319
+ while ( !node && ( parent = ( parent || this ).getParent() ) )
320
+ {
321
+ // The guard check sends the "true" paramenter to indicate that
322
+ // we are moving "out" of the element.
323
+ if ( guard && guard( parent, true ) === false )
324
+ return null;
325
+
326
+ node = parent.getPrevious();
327
+ }
328
+
329
+ if ( !node )
330
+ return null;
331
+
332
+ if ( guard && guard( node ) === false )
333
+ return null;
334
+
335
+ if ( nodeType && node.type != nodeType )
336
+ return node.getPreviousSourceNode( false, nodeType, guard );
337
+
338
+ return node;
339
+ },
340
+
341
+ getPrevious : function( evaluator )
342
+ {
343
+ var previous = this.$, retval;
344
+ do
345
+ {
346
+ previous = previous.previousSibling;
347
+
348
+ // Avoid returning the doc type node.
349
+ // http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-412266927
350
+ retval = previous && previous.nodeType != 10 && new CKEDITOR.dom.node( previous );
351
+ }
352
+ while ( retval && evaluator && !evaluator( retval ) )
353
+ return retval;
354
+ },
355
+
356
+ /**
357
+ * Gets the node that follows this element in its parent's child list.
358
+ * @param {Function} evaluator Filtering the result node.
359
+ * @returns {CKEDITOR.dom.node} The next node or null if not available.
360
+ * @example
361
+ * var element = CKEDITOR.dom.element.createFromHtml( '&lt;div&gt;&lt;b&gt;Example&lt;/b&gt; &lt;i&gt;next&lt;/i&gt;&lt;/div&gt;' );
362
+ * var first = <strong>element.getFirst().getNext()</strong>;
363
+ * alert( first.getName() ); // "i"
364
+ */
365
+ getNext : function( evaluator )
366
+ {
367
+ var next = this.$, retval;
368
+ do
369
+ {
370
+ next = next.nextSibling;
371
+ retval = next && new CKEDITOR.dom.node( next );
372
+ }
373
+ while ( retval && evaluator && !evaluator( retval ) )
374
+ return retval;
375
+ },
376
+
377
+ /**
378
+ * Gets the parent element for this node.
379
+ * @returns {CKEDITOR.dom.element} The parent element.
380
+ * @example
381
+ * var node = editor.document.getBody().getFirst();
382
+ * var parent = node.<strong>getParent()</strong>;
383
+ * alert( node.getName() ); // "body"
384
+ */
385
+ getParent : function()
386
+ {
387
+ var parent = this.$.parentNode;
388
+ return ( parent && parent.nodeType == 1 ) ? new CKEDITOR.dom.node( parent ) : null;
389
+ },
390
+
391
+ getParents : function( closerFirst )
392
+ {
393
+ var node = this;
394
+ var parents = [];
395
+
396
+ do
397
+ {
398
+ parents[ closerFirst ? 'push' : 'unshift' ]( node );
399
+ }
400
+ while ( ( node = node.getParent() ) )
401
+
402
+ return parents;
403
+ },
404
+
405
+ getCommonAncestor : function( node )
406
+ {
407
+ if ( node.equals( this ) )
408
+ return this;
409
+
410
+ if ( node.contains && node.contains( this ) )
411
+ return node;
412
+
413
+ var start = this.contains ? this : this.getParent();
414
+
415
+ do
416
+ {
417
+ if ( start.contains( node ) )
418
+ return start;
419
+ }
420
+ while ( ( start = start.getParent() ) );
421
+
422
+ return null;
423
+ },
424
+
425
+ getPosition : function( otherNode )
426
+ {
427
+ var $ = this.$;
428
+ var $other = otherNode.$;
429
+
430
+ if ( $.compareDocumentPosition )
431
+ return $.compareDocumentPosition( $other );
432
+
433
+ // IE and Safari have no support for compareDocumentPosition.
434
+
435
+ if ( $ == $other )
436
+ return CKEDITOR.POSITION_IDENTICAL;
437
+
438
+ // Only element nodes support contains and sourceIndex.
439
+ if ( this.type == CKEDITOR.NODE_ELEMENT && otherNode.type == CKEDITOR.NODE_ELEMENT )
440
+ {
441
+ if ( $.contains )
442
+ {
443
+ if ( $.contains( $other ) )
444
+ return CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECEDING;
445
+
446
+ if ( $other.contains( $ ) )
447
+ return CKEDITOR.POSITION_IS_CONTAINED + CKEDITOR.POSITION_FOLLOWING;
448
+ }
449
+
450
+ if ( 'sourceIndex' in $ )
451
+ {
452
+ return ( $.sourceIndex < 0 || $other.sourceIndex < 0 ) ? CKEDITOR.POSITION_DISCONNECTED :
453
+ ( $.sourceIndex < $other.sourceIndex ) ? CKEDITOR.POSITION_PRECEDING :
454
+ CKEDITOR.POSITION_FOLLOWING;
455
+ }
456
+ }
457
+
458
+ // For nodes that don't support compareDocumentPosition, contains
459
+ // or sourceIndex, their "address" is compared.
460
+
461
+ var addressOfThis = this.getAddress(),
462
+ addressOfOther = otherNode.getAddress(),
463
+ minLevel = Math.min( addressOfThis.length, addressOfOther.length );
464
+
465
+ // Determinate preceed/follow relationship.
466
+ for ( var i = 0 ; i <= minLevel - 1 ; i++ )
467
+ {
468
+ if ( addressOfThis[ i ] != addressOfOther[ i ] )
469
+ {
470
+ if ( i < minLevel )
471
+ {
472
+ return addressOfThis[ i ] < addressOfOther[ i ] ?
473
+ CKEDITOR.POSITION_PRECEDING : CKEDITOR.POSITION_FOLLOWING;
474
+ }
475
+ break;
476
+ }
477
+ }
478
+
479
+ // Determinate contains/contained relationship.
480
+ return ( addressOfThis.length < addressOfOther.length ) ?
481
+ CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECEDING :
482
+ CKEDITOR.POSITION_IS_CONTAINED + CKEDITOR.POSITION_FOLLOWING;
483
+ },
484
+
485
+ /**
486
+ * Gets the closest ancestor node of this node, specified by its name.
487
+ * @param {String} reference The name of the ancestor node to search or
488
+ * an object with the node names to search for.
489
+ * @param {Boolean} [includeSelf] Whether to include the current
490
+ * node in the search.
491
+ * @returns {CKEDITOR.dom.node} The located ancestor node or null if not found.
492
+ * @since 3.6.1
493
+ * @example
494
+ * // Suppose we have the following HTML structure:
495
+ * // &lt;div id="outer"&gt;&lt;div id="inner"&gt;&lt;p&gt;&lt;b&gt;Some text&lt;/b&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
496
+ * // If node == &lt;b&gt;
497
+ * ascendant = node.getAscendant( 'div' ); // ascendant == &lt;div id="inner"&gt
498
+ * ascendant = node.getAscendant( 'b' ); // ascendant == null
499
+ * ascendant = node.getAscendant( 'b', true ); // ascendant == &lt;b&gt;
500
+ * ascendant = node.getAscendant( { div: 1, p: 1} ); // Searches for the first 'div' or 'p': ascendant == &lt;div id="inner"&gt
501
+ */
502
+ getAscendant : function( reference, includeSelf )
503
+ {
504
+ var $ = this.$,
505
+ name;
506
+
507
+ if ( !includeSelf )
508
+ $ = $.parentNode;
509
+
510
+ while ( $ )
511
+ {
512
+ if ( $.nodeName && ( name = $.nodeName.toLowerCase(), ( typeof reference == 'string' ? name == reference : name in reference ) ) )
513
+ return new CKEDITOR.dom.node( $ );
514
+
515
+ $ = $.parentNode;
516
+ }
517
+ return null;
518
+ },
519
+
520
+ hasAscendant : function( name, includeSelf )
521
+ {
522
+ var $ = this.$;
523
+
524
+ if ( !includeSelf )
525
+ $ = $.parentNode;
526
+
527
+ while ( $ )
528
+ {
529
+ if ( $.nodeName && $.nodeName.toLowerCase() == name )
530
+ return true;
531
+
532
+ $ = $.parentNode;
533
+ }
534
+ return false;
535
+ },
536
+
537
+ move : function( target, toStart )
538
+ {
539
+ target.append( this.remove(), toStart );
540
+ },
541
+
542
+ /**
543
+ * Removes this node from the document DOM.
544
+ * @param {Boolean} [preserveChildren] Indicates that the children
545
+ * elements must remain in the document, removing only the outer
546
+ * tags.
547
+ * @example
548
+ * var element = CKEDITOR.dom.element.getById( 'MyElement' );
549
+ * <strong>element.remove()</strong>;
550
+ */
551
+ remove : function( preserveChildren )
552
+ {
553
+ var $ = this.$;
554
+ var parent = $.parentNode;
555
+
556
+ if ( parent )
557
+ {
558
+ if ( preserveChildren )
559
+ {
560
+ // Move all children before the node.
561
+ for ( var child ; ( child = $.firstChild ) ; )
562
+ {
563
+ parent.insertBefore( $.removeChild( child ), $ );
564
+ }
565
+ }
566
+
567
+ parent.removeChild( $ );
568
+ }
569
+
570
+ return this;
571
+ },
572
+
573
+ replace : function( nodeToReplace )
574
+ {
575
+ this.insertBefore( nodeToReplace );
576
+ nodeToReplace.remove();
577
+ },
578
+
579
+ trim : function()
580
+ {
581
+ this.ltrim();
582
+ this.rtrim();
583
+ },
584
+
585
+ ltrim : function()
586
+ {
587
+ var child;
588
+ while ( this.getFirst && ( child = this.getFirst() ) )
589
+ {
590
+ if ( child.type == CKEDITOR.NODE_TEXT )
591
+ {
592
+ var trimmed = CKEDITOR.tools.ltrim( child.getText() ),
593
+ originalLength = child.getLength();
594
+
595
+ if ( !trimmed )
596
+ {
597
+ child.remove();
598
+ continue;
599
+ }
600
+ else if ( trimmed.length < originalLength )
601
+ {
602
+ child.split( originalLength - trimmed.length );
603
+
604
+ // IE BUG: child.remove() may raise JavaScript errors here. (#81)
605
+ this.$.removeChild( this.$.firstChild );
606
+ }
607
+ }
608
+ break;
609
+ }
610
+ },
611
+
612
+ rtrim : function()
613
+ {
614
+ var child;
615
+ while ( this.getLast && ( child = this.getLast() ) )
616
+ {
617
+ if ( child.type == CKEDITOR.NODE_TEXT )
618
+ {
619
+ var trimmed = CKEDITOR.tools.rtrim( child.getText() ),
620
+ originalLength = child.getLength();
621
+
622
+ if ( !trimmed )
623
+ {
624
+ child.remove();
625
+ continue;
626
+ }
627
+ else if ( trimmed.length < originalLength )
628
+ {
629
+ child.split( trimmed.length );
630
+
631
+ // IE BUG: child.getNext().remove() may raise JavaScript errors here.
632
+ // (#81)
633
+ this.$.lastChild.parentNode.removeChild( this.$.lastChild );
634
+ }
635
+ }
636
+ break;
637
+ }
638
+
639
+ if ( !CKEDITOR.env.ie && !CKEDITOR.env.opera )
640
+ {
641
+ child = this.$.lastChild;
642
+
643
+ if ( child && child.type == 1 && child.nodeName.toLowerCase() == 'br' )
644
+ {
645
+ // Use "eChildNode.parentNode" instead of "node" to avoid IE bug (#324).
646
+ child.parentNode.removeChild( child ) ;
647
+ }
648
+ }
649
+ },
650
+
651
+ /**
652
+ * Checks if this node is read-only (should not be changed).
653
+ * @returns {Boolean}
654
+ * @since 3.5
655
+ * @example
656
+ * // For the following HTML:
657
+ * // &lt;div contenteditable="false"&gt;Some &lt;b&gt;text&lt;/b&gt;&lt;/div&gt;
658
+ *
659
+ * // If "ele" is the above &lt;div&gt;
660
+ * ele.isReadOnly(); // true
661
+ */
662
+ isReadOnly : function()
663
+ {
664
+ var element = this;
665
+ if ( this.type != CKEDITOR.NODE_ELEMENT )
666
+ element = this.getParent();
667
+
668
+ if ( element && typeof element.$.isContentEditable != 'undefined' )
669
+ return ! ( element.$.isContentEditable || element.data( 'cke-editable' ) );
670
+ else
671
+ {
672
+ // Degrade for old browsers which don't support "isContentEditable", e.g. FF3
673
+ var current = element;
674
+ while( current )
675
+ {
676
+ if ( current.is( 'body' ) || !!current.data( 'cke-editable' ) )
677
+ break;
678
+
679
+ if ( current.getAttribute( 'contentEditable' ) == 'false' )
680
+ return true;
681
+ else if ( current.getAttribute( 'contentEditable' ) == 'true' )
682
+ break;
683
+
684
+ current = current.getParent();
685
+ }
686
+
687
+ return false;
688
+ }
689
+ }
690
+ }
691
+ );