inline_forms 0.9.25 → 1.0.0

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 (704) hide show
  1. data/VERSION +1 -1
  2. data/{public/images/css → app/assets/images}/close.png +0 -0
  3. data/{public → app/assets}/images/glass_plate.gif +0 -0
  4. data/{public → app/assets}/images/ui-bg_diagonals-medium_20_d34d17_40x40.png +0 -0
  5. data/{public → app/assets}/images/ui-bg_flat_30_cccccc_40x100.png +0 -0
  6. data/{public → app/assets}/images/ui-bg_flat_50_5c5c5c_40x100.png +0 -0
  7. data/{public → app/assets}/images/ui-bg_gloss-wave_45_817865_500x100.png +0 -0
  8. data/{public → app/assets}/images/ui-bg_gloss-wave_60_fece2f_500x100.png +0 -0
  9. data/{public → app/assets}/images/ui-bg_gloss-wave_70_ffdd57_500x100.png +0 -0
  10. data/{public → app/assets}/images/ui-bg_gloss-wave_90_fff9e5_500x100.png +0 -0
  11. data/{public → app/assets}/images/ui-bg_highlight-soft_100_feeebd_1x100.png +0 -0
  12. data/{public → app/assets}/images/ui-bg_inset-soft_30_ffffff_1x100.png +0 -0
  13. data/{public → app/assets}/images/ui-icons_3d3d3d_256x240.png +0 -0
  14. data/{public → app/assets}/images/ui-icons_bd7b00_256x240.png +0 -0
  15. data/{public → app/assets}/images/ui-icons_d19405_256x240.png +0 -0
  16. data/{public → app/assets}/images/ui-icons_eb990f_256x240.png +0 -0
  17. data/{public → app/assets}/images/ui-icons_ed9f26_256x240.png +0 -0
  18. data/{public → app/assets}/images/ui-icons_fadc7a_256x240.png +0 -0
  19. data/{public → app/assets}/images/ui-icons_ffe180_256x240.png +0 -0
  20. data/{public/javascripts → app/assets/javascripts/old}/jquery-ui.js +0 -0
  21. data/{public/javascripts → app/assets/javascripts/old}/jquery-ui.min.js +0 -0
  22. data/{public/javascripts → app/assets/javascripts/old}/jquery.form.js +0 -0
  23. data/{public/javascripts → app/assets/javascripts/old}/jquery.js +0 -0
  24. data/{public/javascripts → app/assets/javascripts/old}/jquery.min.js +0 -0
  25. data/{public/javascripts → app/assets/javascripts/old}/jquery.remotipart.js +0 -0
  26. data/{public/javascripts → app/assets/javascripts/old}/jquery_ujs.js +0 -0
  27. data/{public/javascripts → app/assets/javascripts/old}/rails.js +0 -0
  28. data/{public/javascripts → app/assets/javascripts/old}/slider.js +0 -0
  29. data/{public → app/assets}/stylesheets/devise.css +0 -0
  30. data/{public → app/assets}/stylesheets/inline_forms.css +0 -0
  31. data/{public → app/assets}/stylesheets/jquery-ui-sunny.css +0 -0
  32. data/inline_forms.gemspec +31 -702
  33. metadata +34 -705
  34. data/public/javascripts/application.js +0 -2
  35. data/public/javascripts/ckeditor/.htaccess +0 -24
  36. data/public/javascripts/ckeditor/CHANGES.html +0 -1295
  37. data/public/javascripts/ckeditor/INSTALL.html +0 -92
  38. data/public/javascripts/ckeditor/LICENSE.html +0 -1334
  39. data/public/javascripts/ckeditor/_samples/adobeair/application.xml +0 -32
  40. data/public/javascripts/ckeditor/_samples/adobeair/run.bat +0 -9
  41. data/public/javascripts/ckeditor/_samples/adobeair/run.sh +0 -8
  42. data/public/javascripts/ckeditor/_samples/adobeair/sample.html +0 -45
  43. data/public/javascripts/ckeditor/_samples/ajax.html +0 -98
  44. data/public/javascripts/ckeditor/_samples/api.html +0 -192
  45. data/public/javascripts/ckeditor/_samples/api_dialog.html +0 -198
  46. data/public/javascripts/ckeditor/_samples/api_dialog/my_dialog.js +0 -28
  47. data/public/javascripts/ckeditor/_samples/asp/index.html +0 -103
  48. data/public/javascripts/ckeditor/_samples/assets/output_for_flash.fla +0 -0
  49. data/public/javascripts/ckeditor/_samples/assets/output_for_flash.swf +0 -0
  50. data/public/javascripts/ckeditor/_samples/assets/output_xhtml.css +0 -204
  51. data/public/javascripts/ckeditor/_samples/assets/parsesample.css +0 -70
  52. data/public/javascripts/ckeditor/_samples/assets/swfobject.js +0 -18
  53. data/public/javascripts/ckeditor/_samples/autogrow.html +0 -103
  54. data/public/javascripts/ckeditor/_samples/bbcode.html +0 -136
  55. data/public/javascripts/ckeditor/_samples/devtools.html +0 -94
  56. data/public/javascripts/ckeditor/_samples/divreplace.html +0 -154
  57. data/public/javascripts/ckeditor/_samples/enterkey.html +0 -115
  58. data/public/javascripts/ckeditor/_samples/fullpage.html +0 -82
  59. data/public/javascripts/ckeditor/_samples/index.html +0 -116
  60. data/public/javascripts/ckeditor/_samples/jqueryadapter.html +0 -99
  61. data/public/javascripts/ckeditor/_samples/output_for_flash.html +0 -275
  62. data/public/javascripts/ckeditor/_samples/output_html.html +0 -285
  63. data/public/javascripts/ckeditor/_samples/output_xhtml.html +0 -181
  64. data/public/javascripts/ckeditor/_samples/php/index.html +0 -47
  65. data/public/javascripts/ckeditor/_samples/placeholder.html +0 -81
  66. data/public/javascripts/ckeditor/_samples/readonly.html +0 -91
  67. data/public/javascripts/ckeditor/_samples/replacebyclass.html +0 -64
  68. data/public/javascripts/ckeditor/_samples/replacebycode.html +0 -97
  69. data/public/javascripts/ckeditor/_samples/sample.css +0 -163
  70. data/public/javascripts/ckeditor/_samples/sample.js +0 -65
  71. data/public/javascripts/ckeditor/_samples/sharedspaces.html +0 -153
  72. data/public/javascripts/ckeditor/_samples/skins.html +0 -110
  73. data/public/javascripts/ckeditor/_samples/stylesheetparser.html +0 -93
  74. data/public/javascripts/ckeditor/_samples/tableresize.html +0 -115
  75. data/public/javascripts/ckeditor/_samples/ui_color.html +0 -129
  76. data/public/javascripts/ckeditor/_samples/ui_languages.html +0 -134
  77. data/public/javascripts/ckeditor/_source/adapters/jquery.js +0 -306
  78. data/public/javascripts/ckeditor/_source/core/_bootstrap.js +0 -87
  79. data/public/javascripts/ckeditor/_source/core/ckeditor.js +0 -141
  80. data/public/javascripts/ckeditor/_source/core/ckeditor_base.js +0 -227
  81. data/public/javascripts/ckeditor/_source/core/ckeditor_basic.js +0 -238
  82. data/public/javascripts/ckeditor/_source/core/command.js +0 -209
  83. data/public/javascripts/ckeditor/_source/core/commanddefinition.js +0 -129
  84. data/public/javascripts/ckeditor/_source/core/config.js +0 -431
  85. data/public/javascripts/ckeditor/_source/core/dataprocessor.js +0 -65
  86. data/public/javascripts/ckeditor/_source/core/dom.js +0 -20
  87. data/public/javascripts/ckeditor/_source/core/dom/comment.js +0 -32
  88. data/public/javascripts/ckeditor/_source/core/dom/document.js +0 -251
  89. data/public/javascripts/ckeditor/_source/core/dom/documentfragment.js +0 -49
  90. data/public/javascripts/ckeditor/_source/core/dom/domobject.js +0 -258
  91. data/public/javascripts/ckeditor/_source/core/dom/element.js +0 -1663
  92. data/public/javascripts/ckeditor/_source/core/dom/elementpath.js +0 -119
  93. data/public/javascripts/ckeditor/_source/core/dom/event.js +0 -142
  94. data/public/javascripts/ckeditor/_source/core/dom/node.js +0 -690
  95. data/public/javascripts/ckeditor/_source/core/dom/nodelist.js +0 -26
  96. data/public/javascripts/ckeditor/_source/core/dom/range.js +0 -2032
  97. data/public/javascripts/ckeditor/_source/core/dom/rangelist.js +0 -213
  98. data/public/javascripts/ckeditor/_source/core/dom/text.js +0 -128
  99. data/public/javascripts/ckeditor/_source/core/dom/walker.js +0 -462
  100. data/public/javascripts/ckeditor/_source/core/dom/window.js +0 -96
  101. data/public/javascripts/ckeditor/_source/core/dtd.js +0 -237
  102. data/public/javascripts/ckeditor/_source/core/editor.js +0 -1041
  103. data/public/javascripts/ckeditor/_source/core/editor_basic.js +0 -186
  104. data/public/javascripts/ckeditor/_source/core/env.js +0 -282
  105. data/public/javascripts/ckeditor/_source/core/event.js +0 -342
  106. data/public/javascripts/ckeditor/_source/core/eventInfo.js +0 -120
  107. data/public/javascripts/ckeditor/_source/core/focusmanager.js +0 -152
  108. data/public/javascripts/ckeditor/_source/core/htmlparser.js +0 -224
  109. data/public/javascripts/ckeditor/_source/core/htmlparser/basicwriter.js +0 -145
  110. data/public/javascripts/ckeditor/_source/core/htmlparser/cdata.js +0 -43
  111. data/public/javascripts/ckeditor/_source/core/htmlparser/comment.js +0 -60
  112. data/public/javascripts/ckeditor/_source/core/htmlparser/element.js +0 -249
  113. data/public/javascripts/ckeditor/_source/core/htmlparser/filter.js +0 -288
  114. data/public/javascripts/ckeditor/_source/core/htmlparser/fragment.js +0 -492
  115. data/public/javascripts/ckeditor/_source/core/htmlparser/text.js +0 -55
  116. data/public/javascripts/ckeditor/_source/core/lang.js +0 -157
  117. data/public/javascripts/ckeditor/_source/core/loader.js +0 -240
  118. data/public/javascripts/ckeditor/_source/core/plugindefinition.js +0 -83
  119. data/public/javascripts/ckeditor/_source/core/plugins.js +0 -103
  120. data/public/javascripts/ckeditor/_source/core/resourcemanager.js +0 -238
  121. data/public/javascripts/ckeditor/_source/core/scriptloader.js +0 -180
  122. data/public/javascripts/ckeditor/_source/core/skins.js +0 -184
  123. data/public/javascripts/ckeditor/_source/core/themes.js +0 -19
  124. data/public/javascripts/ckeditor/_source/core/tools.js +0 -734
  125. data/public/javascripts/ckeditor/_source/core/ui.js +0 -128
  126. data/public/javascripts/ckeditor/_source/lang/_languages.js +0 -84
  127. data/public/javascripts/ckeditor/_source/lang/_translationstatus.txt +0 -61
  128. data/public/javascripts/ckeditor/_source/lang/af.js +0 -810
  129. data/public/javascripts/ckeditor/_source/lang/ar.js +0 -810
  130. data/public/javascripts/ckeditor/_source/lang/bg.js +0 -810
  131. data/public/javascripts/ckeditor/_source/lang/bn.js +0 -810
  132. data/public/javascripts/ckeditor/_source/lang/bs.js +0 -810
  133. data/public/javascripts/ckeditor/_source/lang/ca.js +0 -810
  134. data/public/javascripts/ckeditor/_source/lang/cs.js +0 -810
  135. data/public/javascripts/ckeditor/_source/lang/cy.js +0 -810
  136. data/public/javascripts/ckeditor/_source/lang/da.js +0 -810
  137. data/public/javascripts/ckeditor/_source/lang/de.js +0 -810
  138. data/public/javascripts/ckeditor/_source/lang/el.js +0 -810
  139. data/public/javascripts/ckeditor/_source/lang/en-au.js +0 -810
  140. data/public/javascripts/ckeditor/_source/lang/en-ca.js +0 -810
  141. data/public/javascripts/ckeditor/_source/lang/en-gb.js +0 -810
  142. data/public/javascripts/ckeditor/_source/lang/en.js +0 -810
  143. data/public/javascripts/ckeditor/_source/lang/eo.js +0 -810
  144. data/public/javascripts/ckeditor/_source/lang/es.js +0 -810
  145. data/public/javascripts/ckeditor/_source/lang/et.js +0 -810
  146. data/public/javascripts/ckeditor/_source/lang/eu.js +0 -810
  147. data/public/javascripts/ckeditor/_source/lang/fa.js +0 -810
  148. data/public/javascripts/ckeditor/_source/lang/fi.js +0 -810
  149. data/public/javascripts/ckeditor/_source/lang/fo.js +0 -810
  150. data/public/javascripts/ckeditor/_source/lang/fr-ca.js +0 -810
  151. data/public/javascripts/ckeditor/_source/lang/fr.js +0 -810
  152. data/public/javascripts/ckeditor/_source/lang/gl.js +0 -810
  153. data/public/javascripts/ckeditor/_source/lang/gu.js +0 -810
  154. data/public/javascripts/ckeditor/_source/lang/he.js +0 -810
  155. data/public/javascripts/ckeditor/_source/lang/hi.js +0 -810
  156. data/public/javascripts/ckeditor/_source/lang/hr.js +0 -810
  157. data/public/javascripts/ckeditor/_source/lang/hu.js +0 -810
  158. data/public/javascripts/ckeditor/_source/lang/is.js +0 -810
  159. data/public/javascripts/ckeditor/_source/lang/it.js +0 -810
  160. data/public/javascripts/ckeditor/_source/lang/ja.js +0 -810
  161. data/public/javascripts/ckeditor/_source/lang/ka.js +0 -810
  162. data/public/javascripts/ckeditor/_source/lang/km.js +0 -810
  163. data/public/javascripts/ckeditor/_source/lang/ko.js +0 -810
  164. data/public/javascripts/ckeditor/_source/lang/lt.js +0 -810
  165. data/public/javascripts/ckeditor/_source/lang/lv.js +0 -810
  166. data/public/javascripts/ckeditor/_source/lang/mn.js +0 -810
  167. data/public/javascripts/ckeditor/_source/lang/ms.js +0 -810
  168. data/public/javascripts/ckeditor/_source/lang/nb.js +0 -810
  169. data/public/javascripts/ckeditor/_source/lang/nl.js +0 -810
  170. data/public/javascripts/ckeditor/_source/lang/no.js +0 -810
  171. data/public/javascripts/ckeditor/_source/lang/pl.js +0 -810
  172. data/public/javascripts/ckeditor/_source/lang/pt-br.js +0 -809
  173. data/public/javascripts/ckeditor/_source/lang/pt.js +0 -810
  174. data/public/javascripts/ckeditor/_source/lang/ro.js +0 -810
  175. data/public/javascripts/ckeditor/_source/lang/ru.js +0 -810
  176. data/public/javascripts/ckeditor/_source/lang/sk.js +0 -810
  177. data/public/javascripts/ckeditor/_source/lang/sl.js +0 -810
  178. data/public/javascripts/ckeditor/_source/lang/sr-latn.js +0 -810
  179. data/public/javascripts/ckeditor/_source/lang/sr.js +0 -810
  180. data/public/javascripts/ckeditor/_source/lang/sv.js +0 -809
  181. data/public/javascripts/ckeditor/_source/lang/th.js +0 -810
  182. data/public/javascripts/ckeditor/_source/lang/tr.js +0 -809
  183. data/public/javascripts/ckeditor/_source/lang/uk.js +0 -810
  184. data/public/javascripts/ckeditor/_source/lang/vi.js +0 -810
  185. data/public/javascripts/ckeditor/_source/lang/zh-cn.js +0 -810
  186. data/public/javascripts/ckeditor/_source/lang/zh.js +0 -810
  187. data/public/javascripts/ckeditor/_source/plugins/a11yhelp/dialogs/a11yhelp.js +0 -222
  188. data/public/javascripts/ckeditor/_source/plugins/a11yhelp/lang/en.js +0 -108
  189. data/public/javascripts/ckeditor/_source/plugins/a11yhelp/lang/he.js +0 -216
  190. data/public/javascripts/ckeditor/_source/plugins/a11yhelp/plugin.js +0 -47
  191. data/public/javascripts/ckeditor/_source/plugins/about/dialogs/about.js +0 -76
  192. data/public/javascripts/ckeditor/_source/plugins/about/dialogs/logo_ckeditor.png +0 -0
  193. data/public/javascripts/ckeditor/_source/plugins/about/plugin.js +0 -24
  194. data/public/javascripts/ckeditor/_source/plugins/adobeair/plugin.js +0 -228
  195. data/public/javascripts/ckeditor/_source/plugins/ajax/plugin.js +0 -152
  196. data/public/javascripts/ckeditor/_source/plugins/attachment/dialogs/attachment.js +0 -384
  197. data/public/javascripts/ckeditor/_source/plugins/attachment/images/attachment.png +0 -0
  198. data/public/javascripts/ckeditor/_source/plugins/attachment/lang/en.js +0 -10
  199. data/public/javascripts/ckeditor/_source/plugins/attachment/lang/ru.js +0 -10
  200. data/public/javascripts/ckeditor/_source/plugins/attachment/lang/uk.js +0 -10
  201. data/public/javascripts/ckeditor/_source/plugins/attachment/plugin.js +0 -44
  202. data/public/javascripts/ckeditor/_source/plugins/autogrow/plugin.js +0 -88
  203. data/public/javascripts/ckeditor/_source/plugins/basicstyles/plugin.js +0 -101
  204. data/public/javascripts/ckeditor/_source/plugins/bbcode/plugin.js +0 -924
  205. data/public/javascripts/ckeditor/_source/plugins/bidi/plugin.js +0 -331
  206. data/public/javascripts/ckeditor/_source/plugins/blockquote/plugin.js +0 -305
  207. data/public/javascripts/ckeditor/_source/plugins/button/plugin.js +0 -285
  208. data/public/javascripts/ckeditor/_source/plugins/clipboard/dialogs/paste.js +0 -223
  209. data/public/javascripts/ckeditor/_source/plugins/clipboard/plugin.js +0 -446
  210. data/public/javascripts/ckeditor/_source/plugins/colorbutton/plugin.js +0 -295
  211. data/public/javascripts/ckeditor/_source/plugins/colordialog/dialogs/colordialog.js +0 -340
  212. data/public/javascripts/ckeditor/_source/plugins/colordialog/plugin.js +0 -15
  213. data/public/javascripts/ckeditor/_source/plugins/contextmenu/plugin.js +0 -177
  214. data/public/javascripts/ckeditor/_source/plugins/devtools/lang/en.js +0 -16
  215. data/public/javascripts/ckeditor/_source/plugins/devtools/plugin.js +0 -173
  216. data/public/javascripts/ckeditor/_source/plugins/dialog/dialogDefinition.js +0 -1099
  217. data/public/javascripts/ckeditor/_source/plugins/dialog/plugin.js +0 -3235
  218. data/public/javascripts/ckeditor/_source/plugins/dialogadvtab/plugin.js +0 -205
  219. data/public/javascripts/ckeditor/_source/plugins/dialogui/plugin.js +0 -1537
  220. data/public/javascripts/ckeditor/_source/plugins/div/dialogs/div.js +0 -535
  221. data/public/javascripts/ckeditor/_source/plugins/div/plugin.js +0 -121
  222. data/public/javascripts/ckeditor/_source/plugins/docprops/dialogs/docprops.js +0 -686
  223. data/public/javascripts/ckeditor/_source/plugins/docprops/plugin.js +0 -22
  224. data/public/javascripts/ckeditor/_source/plugins/domiterator/plugin.js +0 -361
  225. data/public/javascripts/ckeditor/_source/plugins/editingblock/plugin.js +0 -269
  226. data/public/javascripts/ckeditor/_source/plugins/elementspath/plugin.js +0 -218
  227. data/public/javascripts/ckeditor/_source/plugins/embed/dialogs/embed.js +0 -65
  228. data/public/javascripts/ckeditor/_source/plugins/embed/images/embed.png +0 -0
  229. data/public/javascripts/ckeditor/_source/plugins/embed/lang/en.js +0 -9
  230. data/public/javascripts/ckeditor/_source/plugins/embed/lang/ru.js +0 -9
  231. data/public/javascripts/ckeditor/_source/plugins/embed/lang/uk.js +0 -9
  232. data/public/javascripts/ckeditor/_source/plugins/embed/plugin.js +0 -43
  233. data/public/javascripts/ckeditor/_source/plugins/enterkey/plugin.js +0 -399
  234. data/public/javascripts/ckeditor/_source/plugins/entities/plugin.js +0 -250
  235. data/public/javascripts/ckeditor/_source/plugins/fakeobjects/plugin.js +0 -126
  236. data/public/javascripts/ckeditor/_source/plugins/filebrowser/plugin.js +0 -524
  237. data/public/javascripts/ckeditor/_source/plugins/find/dialogs/find.js +0 -895
  238. data/public/javascripts/ckeditor/_source/plugins/find/plugin.js +0 -47
  239. data/public/javascripts/ckeditor/_source/plugins/flash/dialogs/flash.js +0 -698
  240. data/public/javascripts/ckeditor/_source/plugins/flash/images/placeholder.png +0 -0
  241. data/public/javascripts/ckeditor/_source/plugins/flash/plugin.js +0 -168
  242. data/public/javascripts/ckeditor/_source/plugins/floatpanel/plugin.js +0 -405
  243. data/public/javascripts/ckeditor/_source/plugins/font/plugin.js +0 -234
  244. data/public/javascripts/ckeditor/_source/plugins/format/plugin.js +0 -197
  245. data/public/javascripts/ckeditor/_source/plugins/forms/dialogs/button.js +0 -118
  246. data/public/javascripts/ckeditor/_source/plugins/forms/dialogs/checkbox.js +0 -153
  247. data/public/javascripts/ckeditor/_source/plugins/forms/dialogs/form.js +0 -177
  248. data/public/javascripts/ckeditor/_source/plugins/forms/dialogs/hiddenfield.js +0 -100
  249. data/public/javascripts/ckeditor/_source/plugins/forms/dialogs/radio.js +0 -135
  250. data/public/javascripts/ckeditor/_source/plugins/forms/dialogs/select.js +0 -562
  251. data/public/javascripts/ckeditor/_source/plugins/forms/dialogs/textarea.js +0 -114
  252. data/public/javascripts/ckeditor/_source/plugins/forms/dialogs/textfield.js +0 -199
  253. data/public/javascripts/ckeditor/_source/plugins/forms/images/hiddenfield.gif +0 -0
  254. data/public/javascripts/ckeditor/_source/plugins/forms/plugin.js +0 -288
  255. data/public/javascripts/ckeditor/_source/plugins/horizontalrule/plugin.js +0 -36
  256. data/public/javascripts/ckeditor/_source/plugins/htmldataprocessor/plugin.js +0 -595
  257. data/public/javascripts/ckeditor/_source/plugins/htmlwriter/plugin.js +0 -319
  258. data/public/javascripts/ckeditor/_source/plugins/iframe/dialogs/iframe.js +0 -257
  259. data/public/javascripts/ckeditor/_source/plugins/iframe/images/placeholder.png +0 -0
  260. data/public/javascripts/ckeditor/_source/plugins/iframe/plugin.js +0 -106
  261. data/public/javascripts/ckeditor/_source/plugins/iframedialog/plugin.js +0 -188
  262. data/public/javascripts/ckeditor/_source/plugins/image/dialogs/image.js +0 -1403
  263. data/public/javascripts/ckeditor/_source/plugins/image/plugin.js +0 -81
  264. data/public/javascripts/ckeditor/_source/plugins/indent/plugin.js +0 -461
  265. data/public/javascripts/ckeditor/_source/plugins/justify/plugin.js +0 -253
  266. data/public/javascripts/ckeditor/_source/plugins/keystrokes/plugin.js +0 -225
  267. data/public/javascripts/ckeditor/_source/plugins/link/dialogs/anchor.js +0 -144
  268. data/public/javascripts/ckeditor/_source/plugins/link/dialogs/link.js +0 -1400
  269. data/public/javascripts/ckeditor/_source/plugins/link/images/anchor.gif +0 -0
  270. data/public/javascripts/ckeditor/_source/plugins/link/plugin.js +0 -336
  271. data/public/javascripts/ckeditor/_source/plugins/list/plugin.js +0 -727
  272. data/public/javascripts/ckeditor/_source/plugins/listblock/plugin.js +0 -257
  273. data/public/javascripts/ckeditor/_source/plugins/liststyle/dialogs/liststyle.js +0 -204
  274. data/public/javascripts/ckeditor/_source/plugins/liststyle/plugin.js +0 -66
  275. data/public/javascripts/ckeditor/_source/plugins/maximize/plugin.js +0 -352
  276. data/public/javascripts/ckeditor/_source/plugins/menu/plugin.js +0 -505
  277. data/public/javascripts/ckeditor/_source/plugins/menubutton/plugin.js +0 -98
  278. data/public/javascripts/ckeditor/_source/plugins/newpage/plugin.js +0 -54
  279. data/public/javascripts/ckeditor/_source/plugins/pagebreak/images/pagebreak.gif +0 -0
  280. data/public/javascripts/ckeditor/_source/plugins/pagebreak/plugin.js +0 -164
  281. data/public/javascripts/ckeditor/_source/plugins/panel/plugin.js +0 -402
  282. data/public/javascripts/ckeditor/_source/plugins/panelbutton/plugin.js +0 -146
  283. data/public/javascripts/ckeditor/_source/plugins/pastefromword/filter/default.js +0 -1376
  284. data/public/javascripts/ckeditor/_source/plugins/pastefromword/plugin.js +0 -141
  285. data/public/javascripts/ckeditor/_source/plugins/pastetext/dialogs/pastetext.js +0 -67
  286. data/public/javascripts/ckeditor/_source/plugins/pastetext/plugin.js +0 -98
  287. data/public/javascripts/ckeditor/_source/plugins/placeholder/dialogs/placeholder.js +0 -71
  288. data/public/javascripts/ckeditor/_source/plugins/placeholder/lang/en.js +0 -16
  289. data/public/javascripts/ckeditor/_source/plugins/placeholder/lang/he.js +0 -16
  290. data/public/javascripts/ckeditor/_source/plugins/placeholder/placeholder.gif +0 -0
  291. data/public/javascripts/ckeditor/_source/plugins/placeholder/plugin.js +0 -171
  292. data/public/javascripts/ckeditor/_source/plugins/popup/plugin.js +0 -64
  293. data/public/javascripts/ckeditor/_source/plugins/preview/plugin.js +0 -109
  294. data/public/javascripts/ckeditor/_source/plugins/print/plugin.js +0 -42
  295. data/public/javascripts/ckeditor/_source/plugins/removeformat/plugin.js +0 -185
  296. data/public/javascripts/ckeditor/_source/plugins/resize/plugin.js +0 -168
  297. data/public/javascripts/ckeditor/_source/plugins/richcombo/plugin.js +0 -378
  298. data/public/javascripts/ckeditor/_source/plugins/save/plugin.js +0 -56
  299. data/public/javascripts/ckeditor/_source/plugins/scayt/dialogs/options.js +0 -537
  300. data/public/javascripts/ckeditor/_source/plugins/scayt/dialogs/toolbar.css +0 -71
  301. data/public/javascripts/ckeditor/_source/plugins/scayt/plugin.js +0 -964
  302. data/public/javascripts/ckeditor/_source/plugins/selection/plugin.js +0 -1563
  303. data/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_address.png +0 -0
  304. data/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_blockquote.png +0 -0
  305. data/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_div.png +0 -0
  306. data/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_h1.png +0 -0
  307. data/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_h2.png +0 -0
  308. data/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_h3.png +0 -0
  309. data/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_h4.png +0 -0
  310. data/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_h5.png +0 -0
  311. data/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_h6.png +0 -0
  312. data/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_p.png +0 -0
  313. data/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_pre.png +0 -0
  314. data/public/javascripts/ckeditor/_source/plugins/showblocks/plugin.js +0 -160
  315. data/public/javascripts/ckeditor/_source/plugins/showborders/plugin.js +0 -207
  316. data/public/javascripts/ckeditor/_source/plugins/smiley/dialogs/smiley.js +0 -224
  317. data/public/javascripts/ckeditor/_source/plugins/smiley/images/angel_smile.gif +0 -0
  318. data/public/javascripts/ckeditor/_source/plugins/smiley/images/angry_smile.gif +0 -0
  319. data/public/javascripts/ckeditor/_source/plugins/smiley/images/broken_heart.gif +0 -0
  320. data/public/javascripts/ckeditor/_source/plugins/smiley/images/confused_smile.gif +0 -0
  321. data/public/javascripts/ckeditor/_source/plugins/smiley/images/cry_smile.gif +0 -0
  322. data/public/javascripts/ckeditor/_source/plugins/smiley/images/devil_smile.gif +0 -0
  323. data/public/javascripts/ckeditor/_source/plugins/smiley/images/embaressed_smile.gif +0 -0
  324. data/public/javascripts/ckeditor/_source/plugins/smiley/images/envelope.gif +0 -0
  325. data/public/javascripts/ckeditor/_source/plugins/smiley/images/heart.gif +0 -0
  326. data/public/javascripts/ckeditor/_source/plugins/smiley/images/kiss.gif +0 -0
  327. data/public/javascripts/ckeditor/_source/plugins/smiley/images/lightbulb.gif +0 -0
  328. data/public/javascripts/ckeditor/_source/plugins/smiley/images/omg_smile.gif +0 -0
  329. data/public/javascripts/ckeditor/_source/plugins/smiley/images/regular_smile.gif +0 -0
  330. data/public/javascripts/ckeditor/_source/plugins/smiley/images/sad_smile.gif +0 -0
  331. data/public/javascripts/ckeditor/_source/plugins/smiley/images/shades_smile.gif +0 -0
  332. data/public/javascripts/ckeditor/_source/plugins/smiley/images/teeth_smile.gif +0 -0
  333. data/public/javascripts/ckeditor/_source/plugins/smiley/images/thumbs_down.gif +0 -0
  334. data/public/javascripts/ckeditor/_source/plugins/smiley/images/thumbs_up.gif +0 -0
  335. data/public/javascripts/ckeditor/_source/plugins/smiley/images/tounge_smile.gif +0 -0
  336. data/public/javascripts/ckeditor/_source/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  337. data/public/javascripts/ckeditor/_source/plugins/smiley/images/wink_smile.gif +0 -0
  338. data/public/javascripts/ckeditor/_source/plugins/smiley/plugin.js +0 -94
  339. data/public/javascripts/ckeditor/_source/plugins/sourcearea/plugin.js +0 -209
  340. data/public/javascripts/ckeditor/_source/plugins/specialchar/dialogs/specialchar.js +0 -350
  341. data/public/javascripts/ckeditor/_source/plugins/specialchar/lang/en.js +0 -89
  342. data/public/javascripts/ckeditor/_source/plugins/specialchar/plugin.js +0 -70
  343. data/public/javascripts/ckeditor/_source/plugins/styles/plugin.js +0 -1678
  344. data/public/javascripts/ckeditor/_source/plugins/styles/styles/default.js +0 -88
  345. data/public/javascripts/ckeditor/_source/plugins/stylescombo/plugin.js +0 -219
  346. data/public/javascripts/ckeditor/_source/plugins/stylesheetparser/plugin.js +0 -143
  347. data/public/javascripts/ckeditor/_source/plugins/tab/plugin.js +0 -367
  348. data/public/javascripts/ckeditor/_source/plugins/table/dialogs/table.js +0 -672
  349. data/public/javascripts/ckeditor/_source/plugins/table/plugin.js +0 -78
  350. data/public/javascripts/ckeditor/_source/plugins/tableresize/plugin.js +0 -450
  351. data/public/javascripts/ckeditor/_source/plugins/tabletools/dialogs/tableCell.js +0 -525
  352. data/public/javascripts/ckeditor/_source/plugins/tabletools/plugin.js +0 -1191
  353. data/public/javascripts/ckeditor/_source/plugins/templates/dialogs/templates.js +0 -234
  354. data/public/javascripts/ckeditor/_source/plugins/templates/plugin.js +0 -99
  355. data/public/javascripts/ckeditor/_source/plugins/templates/templates/default.js +0 -94
  356. data/public/javascripts/ckeditor/_source/plugins/templates/templates/images/template1.gif +0 -0
  357. data/public/javascripts/ckeditor/_source/plugins/templates/templates/images/template2.gif +0 -0
  358. data/public/javascripts/ckeditor/_source/plugins/templates/templates/images/template3.gif +0 -0
  359. data/public/javascripts/ckeditor/_source/plugins/toolbar/plugin.js +0 -545
  360. data/public/javascripts/ckeditor/_source/plugins/uicolor/dialogs/uicolor.js +0 -205
  361. data/public/javascripts/ckeditor/_source/plugins/uicolor/lang/en.js +0 -15
  362. data/public/javascripts/ckeditor/_source/plugins/uicolor/lang/he.js +0 -15
  363. data/public/javascripts/ckeditor/_source/plugins/uicolor/plugin.js +0 -37
  364. data/public/javascripts/ckeditor/_source/plugins/uicolor/uicolor.gif +0 -0
  365. data/public/javascripts/ckeditor/_source/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  366. data/public/javascripts/ckeditor/_source/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  367. data/public/javascripts/ckeditor/_source/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  368. data/public/javascripts/ckeditor/_source/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  369. data/public/javascripts/ckeditor/_source/plugins/uicolor/yui/assets/yui.css +0 -15
  370. data/public/javascripts/ckeditor/_source/plugins/uicolor/yui/yui.js +0 -71
  371. data/public/javascripts/ckeditor/_source/plugins/undo/plugin.js +0 -580
  372. data/public/javascripts/ckeditor/_source/plugins/wsc/dialogs/ciframe.html +0 -49
  373. data/public/javascripts/ckeditor/_source/plugins/wsc/dialogs/tmpFrameset.html +0 -52
  374. data/public/javascripts/ckeditor/_source/plugins/wsc/dialogs/wsc.css +0 -82
  375. data/public/javascripts/ckeditor/_source/plugins/wsc/dialogs/wsc.js +0 -192
  376. data/public/javascripts/ckeditor/_source/plugins/wsc/plugin.js +0 -33
  377. data/public/javascripts/ckeditor/_source/plugins/wysiwygarea/plugin.js +0 -1351
  378. data/public/javascripts/ckeditor/_source/plugins/xml/plugin.js +0 -170
  379. data/public/javascripts/ckeditor/_source/skins/kama/dialog.css +0 -920
  380. data/public/javascripts/ckeditor/_source/skins/kama/editor.css +0 -25
  381. data/public/javascripts/ckeditor/_source/skins/kama/elementspath.css +0 -73
  382. data/public/javascripts/ckeditor/_source/skins/kama/icons.css +0 -366
  383. data/public/javascripts/ckeditor/_source/skins/kama/icons.png +0 -0
  384. data/public/javascripts/ckeditor/_source/skins/kama/icons_rtl.png +0 -0
  385. data/public/javascripts/ckeditor/_source/skins/kama/images/dialog_sides.gif +0 -0
  386. data/public/javascripts/ckeditor/_source/skins/kama/images/dialog_sides.png +0 -0
  387. data/public/javascripts/ckeditor/_source/skins/kama/images/dialog_sides_rtl.png +0 -0
  388. data/public/javascripts/ckeditor/_source/skins/kama/images/mini.gif +0 -0
  389. data/public/javascripts/ckeditor/_source/skins/kama/images/noimage.png +0 -0
  390. data/public/javascripts/ckeditor/_source/skins/kama/images/sprites.png +0 -0
  391. data/public/javascripts/ckeditor/_source/skins/kama/images/sprites_ie6.png +0 -0
  392. data/public/javascripts/ckeditor/_source/skins/kama/images/toolbar_start.gif +0 -0
  393. data/public/javascripts/ckeditor/_source/skins/kama/mainui.css +0 -203
  394. data/public/javascripts/ckeditor/_source/skins/kama/menu.css +0 -232
  395. data/public/javascripts/ckeditor/_source/skins/kama/panel.css +0 -217
  396. data/public/javascripts/ckeditor/_source/skins/kama/presets.css +0 -49
  397. data/public/javascripts/ckeditor/_source/skins/kama/reset.css +0 -84
  398. data/public/javascripts/ckeditor/_source/skins/kama/richcombo.css +0 -287
  399. data/public/javascripts/ckeditor/_source/skins/kama/skin.js +0 -236
  400. data/public/javascripts/ckeditor/_source/skins/kama/templates.css +0 -88
  401. data/public/javascripts/ckeditor/_source/skins/kama/toolbar.css +0 -407
  402. data/public/javascripts/ckeditor/_source/skins/office2003/dialog.css +0 -826
  403. data/public/javascripts/ckeditor/_source/skins/office2003/editor.css +0 -25
  404. data/public/javascripts/ckeditor/_source/skins/office2003/elementspath.css +0 -74
  405. data/public/javascripts/ckeditor/_source/skins/office2003/icons.css +0 -363
  406. data/public/javascripts/ckeditor/_source/skins/office2003/icons.png +0 -0
  407. data/public/javascripts/ckeditor/_source/skins/office2003/icons_rtl.png +0 -0
  408. data/public/javascripts/ckeditor/_source/skins/office2003/images/dialog_sides.gif +0 -0
  409. data/public/javascripts/ckeditor/_source/skins/office2003/images/dialog_sides.png +0 -0
  410. data/public/javascripts/ckeditor/_source/skins/office2003/images/dialog_sides_rtl.png +0 -0
  411. data/public/javascripts/ckeditor/_source/skins/office2003/images/mini.gif +0 -0
  412. data/public/javascripts/ckeditor/_source/skins/office2003/images/noimage.png +0 -0
  413. data/public/javascripts/ckeditor/_source/skins/office2003/images/sprites.png +0 -0
  414. data/public/javascripts/ckeditor/_source/skins/office2003/images/sprites_ie6.png +0 -0
  415. data/public/javascripts/ckeditor/_source/skins/office2003/mainui.css +0 -153
  416. data/public/javascripts/ckeditor/_source/skins/office2003/menu.css +0 -229
  417. data/public/javascripts/ckeditor/_source/skins/office2003/panel.css +0 -212
  418. data/public/javascripts/ckeditor/_source/skins/office2003/presets.css +0 -49
  419. data/public/javascripts/ckeditor/_source/skins/office2003/reset.css +0 -84
  420. data/public/javascripts/ckeditor/_source/skins/office2003/richcombo.css +0 -309
  421. data/public/javascripts/ckeditor/_source/skins/office2003/skin.js +0 -74
  422. data/public/javascripts/ckeditor/_source/skins/office2003/templates.css +0 -87
  423. data/public/javascripts/ckeditor/_source/skins/office2003/toolbar.css +0 -522
  424. data/public/javascripts/ckeditor/_source/skins/v2/dialog.css +0 -842
  425. data/public/javascripts/ckeditor/_source/skins/v2/editor.css +0 -25
  426. data/public/javascripts/ckeditor/_source/skins/v2/elementspath.css +0 -74
  427. data/public/javascripts/ckeditor/_source/skins/v2/icons.css +0 -363
  428. data/public/javascripts/ckeditor/_source/skins/v2/icons.png +0 -0
  429. data/public/javascripts/ckeditor/_source/skins/v2/icons_rtl.png +0 -0
  430. data/public/javascripts/ckeditor/_source/skins/v2/images/dialog_sides.gif +0 -0
  431. data/public/javascripts/ckeditor/_source/skins/v2/images/dialog_sides.png +0 -0
  432. data/public/javascripts/ckeditor/_source/skins/v2/images/dialog_sides_rtl.png +0 -0
  433. data/public/javascripts/ckeditor/_source/skins/v2/images/mini.gif +0 -0
  434. data/public/javascripts/ckeditor/_source/skins/v2/images/noimage.png +0 -0
  435. data/public/javascripts/ckeditor/_source/skins/v2/images/sprites.png +0 -0
  436. data/public/javascripts/ckeditor/_source/skins/v2/images/sprites_ie6.png +0 -0
  437. data/public/javascripts/ckeditor/_source/skins/v2/images/toolbar_start.gif +0 -0
  438. data/public/javascripts/ckeditor/_source/skins/v2/mainui.css +0 -162
  439. data/public/javascripts/ckeditor/_source/skins/v2/menu.css +0 -232
  440. data/public/javascripts/ckeditor/_source/skins/v2/panel.css +0 -212
  441. data/public/javascripts/ckeditor/_source/skins/v2/presets.css +0 -50
  442. data/public/javascripts/ckeditor/_source/skins/v2/reset.css +0 -84
  443. data/public/javascripts/ckeditor/_source/skins/v2/richcombo.css +0 -302
  444. data/public/javascripts/ckeditor/_source/skins/v2/skin.js +0 -70
  445. data/public/javascripts/ckeditor/_source/skins/v2/templates.css +0 -87
  446. data/public/javascripts/ckeditor/_source/skins/v2/toolbar.css +0 -465
  447. data/public/javascripts/ckeditor/_source/themes/default/theme.js +0 -394
  448. data/public/javascripts/ckeditor/adapters/jquery.js +0 -6
  449. data/public/javascripts/ckeditor/ckeditor.js +0 -145
  450. data/public/javascripts/ckeditor/ckeditor.pack +0 -211
  451. data/public/javascripts/ckeditor/ckeditor_basic.js +0 -8
  452. data/public/javascripts/ckeditor/ckeditor_basic_source.js +0 -20
  453. data/public/javascripts/ckeditor/ckeditor_source.js +0 -25
  454. data/public/javascripts/ckeditor/config.js +0 -28
  455. data/public/javascripts/ckeditor/contents.css +0 -23
  456. data/public/javascripts/ckeditor/css/ckfinder.css +0 -316
  457. data/public/javascripts/ckeditor/css/fck_dialog.css +0 -119
  458. data/public/javascripts/ckeditor/css/fck_editor.css +0 -448
  459. data/public/javascripts/ckeditor/css/swfupload.css +0 -94
  460. data/public/javascripts/ckeditor/images/add.gif +0 -0
  461. data/public/javascripts/ckeditor/images/cancelbutton.gif +0 -0
  462. data/public/javascripts/ckeditor/images/ckfnothumb.gif +0 -0
  463. data/public/javascripts/ckeditor/images/doc.gif +0 -0
  464. data/public/javascripts/ckeditor/images/mp3.gif +0 -0
  465. data/public/javascripts/ckeditor/images/pdf.gif +0 -0
  466. data/public/javascripts/ckeditor/images/rar.gif +0 -0
  467. data/public/javascripts/ckeditor/images/refresh.gif +0 -0
  468. data/public/javascripts/ckeditor/images/select_files.png +0 -0
  469. data/public/javascripts/ckeditor/images/spacer.gif +0 -0
  470. data/public/javascripts/ckeditor/images/swf.gif +0 -0
  471. data/public/javascripts/ckeditor/images/toolbar.start.gif +0 -0
  472. data/public/javascripts/ckeditor/images/xls.gif +0 -0
  473. data/public/javascripts/ckeditor/lang/_languages.js +0 -6
  474. data/public/javascripts/ckeditor/lang/_translationstatus.txt +0 -61
  475. data/public/javascripts/ckeditor/lang/af.js +0 -6
  476. data/public/javascripts/ckeditor/lang/ar.js +0 -6
  477. data/public/javascripts/ckeditor/lang/bg.js +0 -6
  478. data/public/javascripts/ckeditor/lang/bn.js +0 -6
  479. data/public/javascripts/ckeditor/lang/bs.js +0 -6
  480. data/public/javascripts/ckeditor/lang/ca.js +0 -6
  481. data/public/javascripts/ckeditor/lang/cs.js +0 -6
  482. data/public/javascripts/ckeditor/lang/cy.js +0 -6
  483. data/public/javascripts/ckeditor/lang/da.js +0 -6
  484. data/public/javascripts/ckeditor/lang/de.js +0 -6
  485. data/public/javascripts/ckeditor/lang/el.js +0 -6
  486. data/public/javascripts/ckeditor/lang/en-au.js +0 -6
  487. data/public/javascripts/ckeditor/lang/en-ca.js +0 -6
  488. data/public/javascripts/ckeditor/lang/en-gb.js +0 -6
  489. data/public/javascripts/ckeditor/lang/en.js +0 -6
  490. data/public/javascripts/ckeditor/lang/eo.js +0 -6
  491. data/public/javascripts/ckeditor/lang/es.js +0 -6
  492. data/public/javascripts/ckeditor/lang/et.js +0 -6
  493. data/public/javascripts/ckeditor/lang/eu.js +0 -6
  494. data/public/javascripts/ckeditor/lang/fa.js +0 -6
  495. data/public/javascripts/ckeditor/lang/fi.js +0 -6
  496. data/public/javascripts/ckeditor/lang/fo.js +0 -6
  497. data/public/javascripts/ckeditor/lang/fr-ca.js +0 -6
  498. data/public/javascripts/ckeditor/lang/fr.js +0 -6
  499. data/public/javascripts/ckeditor/lang/gl.js +0 -6
  500. data/public/javascripts/ckeditor/lang/gu.js +0 -6
  501. data/public/javascripts/ckeditor/lang/he.js +0 -6
  502. data/public/javascripts/ckeditor/lang/hi.js +0 -6
  503. data/public/javascripts/ckeditor/lang/hr.js +0 -6
  504. data/public/javascripts/ckeditor/lang/hu.js +0 -6
  505. data/public/javascripts/ckeditor/lang/is.js +0 -6
  506. data/public/javascripts/ckeditor/lang/it.js +0 -6
  507. data/public/javascripts/ckeditor/lang/ja.js +0 -6
  508. data/public/javascripts/ckeditor/lang/ka.js +0 -6
  509. data/public/javascripts/ckeditor/lang/km.js +0 -6
  510. data/public/javascripts/ckeditor/lang/ko.js +0 -6
  511. data/public/javascripts/ckeditor/lang/lt.js +0 -6
  512. data/public/javascripts/ckeditor/lang/lv.js +0 -6
  513. data/public/javascripts/ckeditor/lang/mn.js +0 -6
  514. data/public/javascripts/ckeditor/lang/ms.js +0 -6
  515. data/public/javascripts/ckeditor/lang/nb.js +0 -6
  516. data/public/javascripts/ckeditor/lang/nl.js +0 -6
  517. data/public/javascripts/ckeditor/lang/no.js +0 -6
  518. data/public/javascripts/ckeditor/lang/pl.js +0 -6
  519. data/public/javascripts/ckeditor/lang/pt-br.js +0 -6
  520. data/public/javascripts/ckeditor/lang/pt.js +0 -6
  521. data/public/javascripts/ckeditor/lang/ro.js +0 -6
  522. data/public/javascripts/ckeditor/lang/ru.js +0 -6
  523. data/public/javascripts/ckeditor/lang/sk.js +0 -6
  524. data/public/javascripts/ckeditor/lang/sl.js +0 -6
  525. data/public/javascripts/ckeditor/lang/sr-latn.js +0 -6
  526. data/public/javascripts/ckeditor/lang/sr.js +0 -6
  527. data/public/javascripts/ckeditor/lang/sv.js +0 -6
  528. data/public/javascripts/ckeditor/lang/th.js +0 -6
  529. data/public/javascripts/ckeditor/lang/tr.js +0 -6
  530. data/public/javascripts/ckeditor/lang/uk.js +0 -6
  531. data/public/javascripts/ckeditor/lang/vi.js +0 -6
  532. data/public/javascripts/ckeditor/lang/zh-cn.js +0 -6
  533. data/public/javascripts/ckeditor/lang/zh.js +0 -6
  534. data/public/javascripts/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +0 -7
  535. data/public/javascripts/ckeditor/plugins/a11yhelp/lang/en.js +0 -6
  536. data/public/javascripts/ckeditor/plugins/a11yhelp/lang/he.js +0 -6
  537. data/public/javascripts/ckeditor/plugins/about/dialogs/about.js +0 -6
  538. data/public/javascripts/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  539. data/public/javascripts/ckeditor/plugins/adobeair/plugin.js +0 -6
  540. data/public/javascripts/ckeditor/plugins/ajax/plugin.js +0 -6
  541. data/public/javascripts/ckeditor/plugins/attachment/dialogs/attachment.js +0 -1
  542. data/public/javascripts/ckeditor/plugins/attachment/images/attachment.png +0 -0
  543. data/public/javascripts/ckeditor/plugins/attachment/lang/en.js +0 -10
  544. data/public/javascripts/ckeditor/plugins/attachment/lang/ru.js +0 -10
  545. data/public/javascripts/ckeditor/plugins/attachment/lang/uk.js +0 -10
  546. data/public/javascripts/ckeditor/plugins/attachment/plugin.js +0 -1
  547. data/public/javascripts/ckeditor/plugins/autogrow/plugin.js +0 -6
  548. data/public/javascripts/ckeditor/plugins/bbcode/plugin.js +0 -9
  549. data/public/javascripts/ckeditor/plugins/clipboard/dialogs/paste.js +0 -7
  550. data/public/javascripts/ckeditor/plugins/colordialog/dialogs/colordialog.js +0 -7
  551. data/public/javascripts/ckeditor/plugins/devtools/lang/en.js +0 -6
  552. data/public/javascripts/ckeditor/plugins/devtools/plugin.js +0 -6
  553. data/public/javascripts/ckeditor/plugins/dialog/dialogDefinition.js +0 -4
  554. data/public/javascripts/ckeditor/plugins/div/dialogs/div.js +0 -8
  555. data/public/javascripts/ckeditor/plugins/docprops/dialogs/docprops.js +0 -10
  556. data/public/javascripts/ckeditor/plugins/docprops/plugin.js +0 -6
  557. data/public/javascripts/ckeditor/plugins/embed/dialogs/embed.js +0 -1
  558. data/public/javascripts/ckeditor/plugins/embed/images/embed.png +0 -0
  559. data/public/javascripts/ckeditor/plugins/embed/lang/en.js +0 -9
  560. data/public/javascripts/ckeditor/plugins/embed/lang/ru.js +0 -9
  561. data/public/javascripts/ckeditor/plugins/embed/lang/uk.js +0 -9
  562. data/public/javascripts/ckeditor/plugins/embed/plugin.js +0 -1
  563. data/public/javascripts/ckeditor/plugins/find/dialogs/find.js +0 -9
  564. data/public/javascripts/ckeditor/plugins/flash/dialogs/flash.js +0 -9
  565. data/public/javascripts/ckeditor/plugins/flash/images/placeholder.png +0 -0
  566. data/public/javascripts/ckeditor/plugins/forms/dialogs/button.js +0 -6
  567. data/public/javascripts/ckeditor/plugins/forms/dialogs/checkbox.js +0 -6
  568. data/public/javascripts/ckeditor/plugins/forms/dialogs/form.js +0 -6
  569. data/public/javascripts/ckeditor/plugins/forms/dialogs/hiddenfield.js +0 -6
  570. data/public/javascripts/ckeditor/plugins/forms/dialogs/radio.js +0 -6
  571. data/public/javascripts/ckeditor/plugins/forms/dialogs/select.js +0 -9
  572. data/public/javascripts/ckeditor/plugins/forms/dialogs/textarea.js +0 -6
  573. data/public/javascripts/ckeditor/plugins/forms/dialogs/textfield.js +0 -6
  574. data/public/javascripts/ckeditor/plugins/forms/images/hiddenfield.gif +0 -0
  575. data/public/javascripts/ckeditor/plugins/iframe/dialogs/iframe.js +0 -7
  576. data/public/javascripts/ckeditor/plugins/iframe/images/placeholder.png +0 -0
  577. data/public/javascripts/ckeditor/plugins/iframedialog/plugin.js +0 -6
  578. data/public/javascripts/ckeditor/plugins/image/dialogs/image.js +0 -13
  579. data/public/javascripts/ckeditor/plugins/link/dialogs/anchor.js +0 -6
  580. data/public/javascripts/ckeditor/plugins/link/dialogs/link.js +0 -11
  581. data/public/javascripts/ckeditor/plugins/link/images/anchor.gif +0 -0
  582. data/public/javascripts/ckeditor/plugins/liststyle/dialogs/liststyle.js +0 -6
  583. data/public/javascripts/ckeditor/plugins/pagebreak/images/pagebreak.gif +0 -0
  584. data/public/javascripts/ckeditor/plugins/pastefromword/filter/default.js +0 -11
  585. data/public/javascripts/ckeditor/plugins/pastetext/dialogs/pastetext.js +0 -6
  586. data/public/javascripts/ckeditor/plugins/placeholder/dialogs/placeholder.js +0 -6
  587. data/public/javascripts/ckeditor/plugins/placeholder/lang/en.js +0 -6
  588. data/public/javascripts/ckeditor/plugins/placeholder/lang/he.js +0 -6
  589. data/public/javascripts/ckeditor/plugins/placeholder/placeholder.gif +0 -0
  590. data/public/javascripts/ckeditor/plugins/placeholder/plugin.js +0 -6
  591. data/public/javascripts/ckeditor/plugins/scayt/dialogs/options.js +0 -8
  592. data/public/javascripts/ckeditor/plugins/scayt/dialogs/toolbar.css +0 -6
  593. data/public/javascripts/ckeditor/plugins/showblocks/images/block_address.png +0 -0
  594. data/public/javascripts/ckeditor/plugins/showblocks/images/block_blockquote.png +0 -0
  595. data/public/javascripts/ckeditor/plugins/showblocks/images/block_div.png +0 -0
  596. data/public/javascripts/ckeditor/plugins/showblocks/images/block_h1.png +0 -0
  597. data/public/javascripts/ckeditor/plugins/showblocks/images/block_h2.png +0 -0
  598. data/public/javascripts/ckeditor/plugins/showblocks/images/block_h3.png +0 -0
  599. data/public/javascripts/ckeditor/plugins/showblocks/images/block_h4.png +0 -0
  600. data/public/javascripts/ckeditor/plugins/showblocks/images/block_h5.png +0 -0
  601. data/public/javascripts/ckeditor/plugins/showblocks/images/block_h6.png +0 -0
  602. data/public/javascripts/ckeditor/plugins/showblocks/images/block_p.png +0 -0
  603. data/public/javascripts/ckeditor/plugins/showblocks/images/block_pre.png +0 -0
  604. data/public/javascripts/ckeditor/plugins/smiley/dialogs/smiley.js +0 -7
  605. data/public/javascripts/ckeditor/plugins/smiley/images/angel_smile.gif +0 -0
  606. data/public/javascripts/ckeditor/plugins/smiley/images/angry_smile.gif +0 -0
  607. data/public/javascripts/ckeditor/plugins/smiley/images/broken_heart.gif +0 -0
  608. data/public/javascripts/ckeditor/plugins/smiley/images/confused_smile.gif +0 -0
  609. data/public/javascripts/ckeditor/plugins/smiley/images/cry_smile.gif +0 -0
  610. data/public/javascripts/ckeditor/plugins/smiley/images/devil_smile.gif +0 -0
  611. data/public/javascripts/ckeditor/plugins/smiley/images/embaressed_smile.gif +0 -0
  612. data/public/javascripts/ckeditor/plugins/smiley/images/envelope.gif +0 -0
  613. data/public/javascripts/ckeditor/plugins/smiley/images/heart.gif +0 -0
  614. data/public/javascripts/ckeditor/plugins/smiley/images/kiss.gif +0 -0
  615. data/public/javascripts/ckeditor/plugins/smiley/images/lightbulb.gif +0 -0
  616. data/public/javascripts/ckeditor/plugins/smiley/images/omg_smile.gif +0 -0
  617. data/public/javascripts/ckeditor/plugins/smiley/images/regular_smile.gif +0 -0
  618. data/public/javascripts/ckeditor/plugins/smiley/images/sad_smile.gif +0 -0
  619. data/public/javascripts/ckeditor/plugins/smiley/images/shades_smile.gif +0 -0
  620. data/public/javascripts/ckeditor/plugins/smiley/images/teeth_smile.gif +0 -0
  621. data/public/javascripts/ckeditor/plugins/smiley/images/thumbs_down.gif +0 -0
  622. data/public/javascripts/ckeditor/plugins/smiley/images/thumbs_up.gif +0 -0
  623. data/public/javascripts/ckeditor/plugins/smiley/images/tounge_smile.gif +0 -0
  624. data/public/javascripts/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  625. data/public/javascripts/ckeditor/plugins/smiley/images/wink_smile.gif +0 -0
  626. data/public/javascripts/ckeditor/plugins/specialchar/dialogs/specialchar.js +0 -7
  627. data/public/javascripts/ckeditor/plugins/specialchar/lang/en.js +0 -6
  628. data/public/javascripts/ckeditor/plugins/styles/styles/default.js +0 -6
  629. data/public/javascripts/ckeditor/plugins/stylesheetparser/plugin.js +0 -6
  630. data/public/javascripts/ckeditor/plugins/table/dialogs/table.js +0 -9
  631. data/public/javascripts/ckeditor/plugins/tableresize/plugin.js +0 -7
  632. data/public/javascripts/ckeditor/plugins/tabletools/dialogs/tableCell.js +0 -8
  633. data/public/javascripts/ckeditor/plugins/templates/dialogs/templates.js +0 -7
  634. data/public/javascripts/ckeditor/plugins/templates/templates/default.js +0 -6
  635. data/public/javascripts/ckeditor/plugins/templates/templates/images/template1.gif +0 -0
  636. data/public/javascripts/ckeditor/plugins/templates/templates/images/template2.gif +0 -0
  637. data/public/javascripts/ckeditor/plugins/templates/templates/images/template3.gif +0 -0
  638. data/public/javascripts/ckeditor/plugins/uicolor/dialogs/uicolor.js +0 -7
  639. data/public/javascripts/ckeditor/plugins/uicolor/lang/en.js +0 -6
  640. data/public/javascripts/ckeditor/plugins/uicolor/lang/he.js +0 -6
  641. data/public/javascripts/ckeditor/plugins/uicolor/plugin.js +0 -6
  642. data/public/javascripts/ckeditor/plugins/uicolor/uicolor.gif +0 -0
  643. data/public/javascripts/ckeditor/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  644. data/public/javascripts/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  645. data/public/javascripts/ckeditor/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  646. data/public/javascripts/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  647. data/public/javascripts/ckeditor/plugins/uicolor/yui/assets/yui.css +0 -6
  648. data/public/javascripts/ckeditor/plugins/uicolor/yui/yui.js +0 -76
  649. data/public/javascripts/ckeditor/plugins/wsc/dialogs/ciframe.html +0 -49
  650. data/public/javascripts/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +0 -52
  651. data/public/javascripts/ckeditor/plugins/wsc/dialogs/wsc.css +0 -6
  652. data/public/javascripts/ckeditor/plugins/wsc/dialogs/wsc.js +0 -7
  653. data/public/javascripts/ckeditor/plugins/xml/plugin.js +0 -6
  654. data/public/javascripts/ckeditor/skins/kama/dialog.css +0 -9
  655. data/public/javascripts/ckeditor/skins/kama/editor.css +0 -13
  656. data/public/javascripts/ckeditor/skins/kama/icons.png +0 -0
  657. data/public/javascripts/ckeditor/skins/kama/icons_rtl.png +0 -0
  658. data/public/javascripts/ckeditor/skins/kama/images/dialog_sides.gif +0 -0
  659. data/public/javascripts/ckeditor/skins/kama/images/dialog_sides.png +0 -0
  660. data/public/javascripts/ckeditor/skins/kama/images/dialog_sides_rtl.png +0 -0
  661. data/public/javascripts/ckeditor/skins/kama/images/mini.gif +0 -0
  662. data/public/javascripts/ckeditor/skins/kama/images/noimage.png +0 -0
  663. data/public/javascripts/ckeditor/skins/kama/images/sprites.png +0 -0
  664. data/public/javascripts/ckeditor/skins/kama/images/sprites_ie6.png +0 -0
  665. data/public/javascripts/ckeditor/skins/kama/images/toolbar_start.gif +0 -0
  666. data/public/javascripts/ckeditor/skins/kama/skin.js +0 -7
  667. data/public/javascripts/ckeditor/skins/kama/templates.css +0 -6
  668. data/public/javascripts/ckeditor/skins/office2003/dialog.css +0 -9
  669. data/public/javascripts/ckeditor/skins/office2003/editor.css +0 -14
  670. data/public/javascripts/ckeditor/skins/office2003/icons.png +0 -0
  671. data/public/javascripts/ckeditor/skins/office2003/icons_rtl.png +0 -0
  672. data/public/javascripts/ckeditor/skins/office2003/images/dialog_sides.gif +0 -0
  673. data/public/javascripts/ckeditor/skins/office2003/images/dialog_sides.png +0 -0
  674. data/public/javascripts/ckeditor/skins/office2003/images/dialog_sides_rtl.png +0 -0
  675. data/public/javascripts/ckeditor/skins/office2003/images/mini.gif +0 -0
  676. data/public/javascripts/ckeditor/skins/office2003/images/noimage.png +0 -0
  677. data/public/javascripts/ckeditor/skins/office2003/images/sprites.png +0 -0
  678. data/public/javascripts/ckeditor/skins/office2003/images/sprites_ie6.png +0 -0
  679. data/public/javascripts/ckeditor/skins/office2003/skin.js +0 -6
  680. data/public/javascripts/ckeditor/skins/office2003/templates.css +0 -6
  681. data/public/javascripts/ckeditor/skins/v2/dialog.css +0 -9
  682. data/public/javascripts/ckeditor/skins/v2/editor.css +0 -13
  683. data/public/javascripts/ckeditor/skins/v2/icons.png +0 -0
  684. data/public/javascripts/ckeditor/skins/v2/icons_rtl.png +0 -0
  685. data/public/javascripts/ckeditor/skins/v2/images/dialog_sides.gif +0 -0
  686. data/public/javascripts/ckeditor/skins/v2/images/dialog_sides.png +0 -0
  687. data/public/javascripts/ckeditor/skins/v2/images/dialog_sides_rtl.png +0 -0
  688. data/public/javascripts/ckeditor/skins/v2/images/mini.gif +0 -0
  689. data/public/javascripts/ckeditor/skins/v2/images/noimage.png +0 -0
  690. data/public/javascripts/ckeditor/skins/v2/images/sprites.png +0 -0
  691. data/public/javascripts/ckeditor/skins/v2/images/sprites_ie6.png +0 -0
  692. data/public/javascripts/ckeditor/skins/v2/images/toolbar_start.gif +0 -0
  693. data/public/javascripts/ckeditor/skins/v2/skin.js +0 -6
  694. data/public/javascripts/ckeditor/skins/v2/templates.css +0 -6
  695. data/public/javascripts/ckeditor/swfupload/fileprogress.js +0 -266
  696. data/public/javascripts/ckeditor/swfupload/handlers.js +0 -181
  697. data/public/javascripts/ckeditor/swfupload/jquery-1.5.1.min.js +0 -16
  698. data/public/javascripts/ckeditor/swfupload/querystring.js +0 -40
  699. data/public/javascripts/ckeditor/swfupload/rails.js +0 -158
  700. data/public/javascripts/ckeditor/swfupload/swfupload.js +0 -1
  701. data/public/javascripts/ckeditor/swfupload/swfupload.queue.js +0 -1
  702. data/public/javascripts/ckeditor/swfupload/swfupload.swf +0 -0
  703. data/public/javascripts/ckeditor/swfupload/swfupload.swfobject.js +0 -111
  704. data/public/javascripts/ckeditor/themes/default/theme.js +0 -8
@@ -1,1563 +0,0 @@
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
- (function()
7
- {
8
- // #### checkSelectionChange : START
9
-
10
- // The selection change check basically saves the element parent tree of
11
- // the current node and check it on successive requests. If there is any
12
- // change on the tree, then the selectionChange event gets fired.
13
- function checkSelectionChange()
14
- {
15
- try
16
- {
17
- // In IE, the "selectionchange" event may still get thrown when
18
- // releasing the WYSIWYG mode, so we need to check it first.
19
- var sel = this.getSelection();
20
- if ( !sel || !sel.document.getWindow().$ )
21
- return;
22
-
23
- var firstElement = sel.getStartElement();
24
- var currentPath = new CKEDITOR.dom.elementPath( firstElement );
25
-
26
- if ( !currentPath.compare( this._.selectionPreviousPath ) )
27
- {
28
- this._.selectionPreviousPath = currentPath;
29
- this.fire( 'selectionChange', { selection : sel, path : currentPath, element : firstElement } );
30
- }
31
- }
32
- catch (e)
33
- {}
34
- }
35
-
36
- var checkSelectionChangeTimer,
37
- checkSelectionChangeTimeoutPending;
38
-
39
- function checkSelectionChangeTimeout()
40
- {
41
- // Firing the "OnSelectionChange" event on every key press started to
42
- // be too slow. This function guarantees that there will be at least
43
- // 200ms delay between selection checks.
44
-
45
- checkSelectionChangeTimeoutPending = true;
46
-
47
- if ( checkSelectionChangeTimer )
48
- return;
49
-
50
- checkSelectionChangeTimeoutExec.call( this );
51
-
52
- checkSelectionChangeTimer = CKEDITOR.tools.setTimeout( checkSelectionChangeTimeoutExec, 200, this );
53
- }
54
-
55
- function checkSelectionChangeTimeoutExec()
56
- {
57
- checkSelectionChangeTimer = null;
58
-
59
- if ( checkSelectionChangeTimeoutPending )
60
- {
61
- // Call this with a timeout so the browser properly moves the
62
- // selection after the mouseup. It happened that the selection was
63
- // being moved after the mouseup when clicking inside selected text
64
- // with Firefox.
65
- CKEDITOR.tools.setTimeout( checkSelectionChange, 0, this );
66
-
67
- checkSelectionChangeTimeoutPending = false;
68
- }
69
- }
70
-
71
- // #### checkSelectionChange : END
72
-
73
- function rangeRequiresFix( range )
74
- {
75
- function isInlineCt( node )
76
- {
77
- return node && node.type == CKEDITOR.NODE_ELEMENT
78
- && node.getName() in CKEDITOR.dtd.$removeEmpty;
79
- }
80
-
81
- var start = range.startContainer,
82
- offset = range.startOffset;
83
-
84
- if ( start.type == CKEDITOR.NODE_TEXT )
85
- return false;
86
-
87
- // 1. Empty inline element. <span>^</span>
88
- // 2. Adjoin to inline element. <p><strong>text</strong>^</p>
89
- return !CKEDITOR.tools.trim( start.getHtml() ) ? isInlineCt( start ) : isInlineCt( start.getChild( offset - 1 ) ) || isInlineCt( start.getChild( offset ) );
90
- }
91
-
92
- var selectAllCmd =
93
- {
94
- modes : { wysiwyg : 1, source : 1 },
95
- readOnly : CKEDITOR.env.ie || CKEDITOR.env.webkit,
96
- exec : function( editor )
97
- {
98
- switch ( editor.mode )
99
- {
100
- case 'wysiwyg' :
101
- editor.document.$.execCommand( 'SelectAll', false, null );
102
- // Force triggering selectionChange (#7008)
103
- editor.forceNextSelectionCheck();
104
- editor.selectionChange();
105
- break;
106
- case 'source' :
107
- // Select the contents of the textarea
108
- var textarea = editor.textarea.$;
109
- if ( CKEDITOR.env.ie )
110
- textarea.createTextRange().execCommand( 'SelectAll' );
111
- else
112
- {
113
- textarea.selectionStart = 0;
114
- textarea.selectionEnd = textarea.value.length;
115
- }
116
- textarea.focus();
117
- }
118
- },
119
- canUndo : false
120
- };
121
-
122
- function createFillingChar( doc )
123
- {
124
- removeFillingChar( doc );
125
-
126
- var fillingChar = doc.createText( '\u200B' );
127
- doc.setCustomData( 'cke-fillingChar', fillingChar );
128
-
129
- return fillingChar;
130
- }
131
-
132
- function getFillingChar( doc )
133
- {
134
- return doc && doc.getCustomData( 'cke-fillingChar' );
135
- }
136
-
137
- // Checks if a filling char has been used, eventualy removing it (#1272).
138
- function checkFillingChar( doc )
139
- {
140
- var fillingChar = doc && getFillingChar( doc );
141
- if ( fillingChar )
142
- {
143
- // Use this flag to avoid removing the filling char right after
144
- // creating it.
145
- if ( fillingChar.getCustomData( 'ready' ) )
146
- removeFillingChar( doc );
147
- else
148
- fillingChar.setCustomData( 'ready', 1 );
149
- }
150
- }
151
-
152
- function removeFillingChar( doc )
153
- {
154
- var fillingChar = doc && doc.removeCustomData( 'cke-fillingChar' );
155
- if ( fillingChar )
156
- {
157
- // We can't simply remove the filling node because the user
158
- // will actually enlarge it when typing, so we just remove the
159
- // invisible char from it.
160
- fillingChar.setText( fillingChar.getText().replace( /\u200B/g, '' ) );
161
- fillingChar = 0;
162
- }
163
- }
164
-
165
- CKEDITOR.plugins.add( 'selection',
166
- {
167
- init : function( editor )
168
- {
169
- // On WebKit only, we need a special "filling" char on some situations
170
- // (#1272). Here we set the events that should invalidate that char.
171
- if ( CKEDITOR.env.webkit )
172
- {
173
- editor.on( 'selectionChange', function() { checkFillingChar( editor.document ); } );
174
- editor.on( 'beforeSetMode', function() { removeFillingChar( editor.document ); } );
175
- editor.on( 'key', function( e )
176
- {
177
- // Remove the filling char before some keys get
178
- // executed, so they'll not get blocked by it.
179
- switch ( e.data.keyCode )
180
- {
181
- case 13 : // ENTER
182
- case CKEDITOR.SHIFT + 13 : // SHIFT-ENTER
183
- case 37 : // LEFT-ARROW
184
- case 39 : // RIGHT-ARROW
185
- case 8 : // BACKSPACE
186
- removeFillingChar( editor.document );
187
- }
188
- }, null, null, 10 );
189
-
190
- var fillingCharBefore,
191
- resetSelection;
192
-
193
- function beforeData()
194
- {
195
- var doc = editor.document,
196
- fillingChar = getFillingChar( doc );
197
-
198
- if ( fillingChar )
199
- {
200
- // If cursor is right blinking by side of the filler node, save it for restoring,
201
- // as the following text substitution will blind it. (#7437)
202
- var sel = doc.$.defaultView.getSelection();
203
- if ( sel.type == 'Caret' && sel.anchorNode == fillingChar.$ )
204
- resetSelection = 1;
205
-
206
- fillingCharBefore = fillingChar.getText();
207
- fillingChar.setText( fillingCharBefore.replace( /\u200B/g, '' ) );
208
- }
209
- }
210
- function afterData()
211
- {
212
- var doc = editor.document,
213
- fillingChar = getFillingChar( doc );
214
-
215
- if ( fillingChar )
216
- {
217
- fillingChar.setText( fillingCharBefore );
218
-
219
- if ( resetSelection )
220
- {
221
- doc.$.defaultView.getSelection().setPosition( fillingChar.$,fillingChar.getLength() );
222
- resetSelection = 0;
223
- }
224
- }
225
- }
226
- editor.on( 'beforeUndoImage', beforeData );
227
- editor.on( 'afterUndoImage', afterData );
228
- editor.on( 'beforeGetData', beforeData, null, null, 0 );
229
- editor.on( 'getData', afterData );
230
- }
231
-
232
- editor.on( 'contentDom', function()
233
- {
234
- var doc = editor.document,
235
- body = doc.getBody(),
236
- html = doc.getDocumentElement();
237
-
238
- if ( CKEDITOR.env.ie )
239
- {
240
- // Other browsers don't loose the selection if the
241
- // editor document loose the focus. In IE, we don't
242
- // have support for it, so we reproduce it here, other
243
- // than firing the selection change event.
244
-
245
- var savedRange,
246
- saveEnabled,
247
- restoreEnabled = 1;
248
-
249
- // "onfocusin" is fired before "onfocus". It makes it
250
- // possible to restore the selection before click
251
- // events get executed.
252
- body.on( 'focusin', function( evt )
253
- {
254
- // If there are elements with layout they fire this event but
255
- // it must be ignored to allow edit its contents #4682
256
- if ( evt.data.$.srcElement.nodeName != 'BODY' )
257
- return;
258
-
259
- // If we have saved a range, restore it at this
260
- // point.
261
- if ( savedRange )
262
- {
263
- if ( restoreEnabled )
264
- {
265
- // Well not break because of this.
266
- try
267
- {
268
- savedRange.select();
269
- }
270
- catch (e)
271
- {}
272
-
273
- // Update locked selection because of the normalized text nodes. (#6083, #6987)
274
- var lockedSelection = doc.getCustomData( 'cke_locked_selection' );
275
- if ( lockedSelection )
276
- {
277
- lockedSelection.unlock();
278
- lockedSelection.lock();
279
- }
280
- }
281
-
282
- savedRange = null;
283
- }
284
- });
285
-
286
- body.on( 'focus', function()
287
- {
288
- // Enable selections to be saved.
289
- saveEnabled = 1;
290
-
291
- saveSelection();
292
- });
293
-
294
- body.on( 'beforedeactivate', function( evt )
295
- {
296
- // Ignore this event if it's caused by focus switch between
297
- // internal editable control type elements, e.g. layouted paragraph. (#4682)
298
- if ( evt.data.$.toElement )
299
- return;
300
-
301
- // Disable selections from being saved.
302
- saveEnabled = 0;
303
- restoreEnabled = 1;
304
- });
305
-
306
- // IE before version 8 will leave cursor blinking inside the document after
307
- // editor blurred unless we clean up the selection. (#4716)
308
- if ( CKEDITOR.env.ie && CKEDITOR.env.version < 8 )
309
- {
310
- editor.on( 'blur', function( evt )
311
- {
312
- // Try/Catch to avoid errors if the editor is hidden. (#6375)
313
- try
314
- {
315
- editor.document && editor.document.$.selection.empty();
316
- }
317
- catch (e) {}
318
- });
319
- }
320
-
321
- // Listening on document element ensures that
322
- // scrollbar is included. (#5280)
323
- html.on( 'mousedown', function()
324
- {
325
- // Lock restore selection now, as we have
326
- // a followed 'click' event which introduce
327
- // new selection. (#5735)
328
- restoreEnabled = 0;
329
- });
330
-
331
- html.on( 'mouseup', function()
332
- {
333
- restoreEnabled = 1;
334
- });
335
-
336
- // In IE6/7 the blinking cursor appears, but contents are
337
- // not editable. (#5634)
338
- if ( CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.version < 8 || CKEDITOR.env.quirks ) )
339
- {
340
- // The 'click' event is not fired when clicking the
341
- // scrollbars, so we can use it to check whether
342
- // the empty space following <body> has been clicked.
343
- html.on( 'click', function( evt )
344
- {
345
- if ( evt.data.getTarget().getName() == 'html' )
346
- editor.getSelection().getRanges()[ 0 ].select();
347
- });
348
- }
349
-
350
- var scroll;
351
- // IE fires the "selectionchange" event when clicking
352
- // inside a selection. We don't want to capture that.
353
- body.on( 'mousedown', function( evt )
354
- {
355
- // IE scrolls document to top on right mousedown
356
- // when editor has no focus, remember this scroll
357
- // position and revert it before context menu opens. (#5778)
358
- if ( evt.data.$.button == 2 )
359
- {
360
- var sel = editor.document.$.selection;
361
- if ( sel.type == 'None' )
362
- scroll = editor.window.getScrollPosition();
363
- }
364
- disableSave();
365
- });
366
-
367
- body.on( 'mouseup',
368
- function( evt )
369
- {
370
- // Restore recorded scroll position when needed on right mouseup.
371
- if ( evt.data.$.button == 2 && scroll )
372
- {
373
- editor.document.$.documentElement.scrollLeft = scroll.x;
374
- editor.document.$.documentElement.scrollTop = scroll.y;
375
- }
376
- scroll = null;
377
-
378
- saveEnabled = 1;
379
- setTimeout( function()
380
- {
381
- saveSelection( true );
382
- },
383
- 0 );
384
- });
385
-
386
- body.on( 'keydown', disableSave );
387
- body.on( 'keyup',
388
- function()
389
- {
390
- saveEnabled = 1;
391
- saveSelection();
392
- });
393
-
394
-
395
- // IE is the only to provide the "selectionchange"
396
- // event.
397
- doc.on( 'selectionchange', saveSelection );
398
-
399
- function disableSave()
400
- {
401
- saveEnabled = 0;
402
- }
403
-
404
- function saveSelection( testIt )
405
- {
406
- if ( saveEnabled )
407
- {
408
- var doc = editor.document,
409
- sel = editor.getSelection(),
410
- nativeSel = sel && sel.getNative();
411
-
412
- // There is a very specific case, when clicking
413
- // inside a text selection. In that case, the
414
- // selection collapses at the clicking point,
415
- // but the selection object remains in an
416
- // unknown state, making createRange return a
417
- // range at the very start of the document. In
418
- // such situation we have to test the range, to
419
- // be sure it's valid.
420
- if ( testIt && nativeSel && nativeSel.type == 'None' )
421
- {
422
- // The "InsertImage" command can be used to
423
- // test whether the selection is good or not.
424
- // If not, it's enough to give some time to
425
- // IE to put things in order for us.
426
- if ( !doc.$.queryCommandEnabled( 'InsertImage' ) )
427
- {
428
- CKEDITOR.tools.setTimeout( saveSelection, 50, this, true );
429
- return;
430
- }
431
- }
432
-
433
- // Avoid saving selection from within text input. (#5747)
434
- var parentTag;
435
- if ( nativeSel && nativeSel.type && nativeSel.type != 'Control'
436
- && ( parentTag = nativeSel.createRange() )
437
- && ( parentTag = parentTag.parentElement() )
438
- && ( parentTag = parentTag.nodeName )
439
- && parentTag.toLowerCase() in { input: 1, textarea : 1 } )
440
- {
441
- return;
442
- }
443
-
444
- savedRange = nativeSel && sel.getRanges()[ 0 ];
445
-
446
- checkSelectionChangeTimeout.call( editor );
447
- }
448
- }
449
- }
450
- else
451
- {
452
- // In other browsers, we make the selection change
453
- // check based on other events, like clicks or keys
454
- // press.
455
-
456
- doc.on( 'mouseup', checkSelectionChangeTimeout, editor );
457
- doc.on( 'keyup', checkSelectionChangeTimeout, editor );
458
- }
459
- });
460
-
461
- // Clear the cached range path before unload. (#7174)
462
- editor.on( 'contentDomUnload', editor.forceNextSelectionCheck, editor );
463
-
464
- editor.addCommand( 'selectAll', selectAllCmd );
465
- editor.ui.addButton( 'SelectAll',
466
- {
467
- label : editor.lang.selectAll,
468
- command : 'selectAll'
469
- });
470
-
471
- editor.selectionChange = checkSelectionChangeTimeout;
472
- }
473
- });
474
-
475
- /**
476
- * Gets the current selection from the editing area when in WYSIWYG mode.
477
- * @returns {CKEDITOR.dom.selection} A selection object or null if not on
478
- * WYSIWYG mode or no selection is available.
479
- * @example
480
- * var selection = CKEDITOR.instances.editor1.<b>getSelection()</b>;
481
- * alert( selection.getType() );
482
- */
483
- CKEDITOR.editor.prototype.getSelection = function()
484
- {
485
- return this.document && this.document.getSelection();
486
- };
487
-
488
- CKEDITOR.editor.prototype.forceNextSelectionCheck = function()
489
- {
490
- delete this._.selectionPreviousPath;
491
- };
492
-
493
- /**
494
- * Gets the current selection from the document.
495
- * @returns {CKEDITOR.dom.selection} A selection object.
496
- * @example
497
- * var selection = CKEDITOR.instances.editor1.document.<b>getSelection()</b>;
498
- * alert( selection.getType() );
499
- */
500
- CKEDITOR.dom.document.prototype.getSelection = function()
501
- {
502
- var sel = new CKEDITOR.dom.selection( this );
503
- return ( !sel || sel.isInvalid ) ? null : sel;
504
- };
505
-
506
- /**
507
- * No selection.
508
- * @constant
509
- * @example
510
- * if ( editor.getSelection().getType() == CKEDITOR.SELECTION_NONE )
511
- * alert( 'Nothing is selected' );
512
- */
513
- CKEDITOR.SELECTION_NONE = 1;
514
-
515
- /**
516
- * Text or collapsed selection.
517
- * @constant
518
- * @example
519
- * if ( editor.getSelection().getType() == CKEDITOR.SELECTION_TEXT )
520
- * alert( 'Text is selected' );
521
- */
522
- CKEDITOR.SELECTION_TEXT = 2;
523
-
524
- /**
525
- * Element selection.
526
- * @constant
527
- * @example
528
- * if ( editor.getSelection().getType() == CKEDITOR.SELECTION_ELEMENT )
529
- * alert( 'An element is selected' );
530
- */
531
- CKEDITOR.SELECTION_ELEMENT = 3;
532
-
533
- /**
534
- * Manipulates the selection in a DOM document.
535
- * @constructor
536
- * @example
537
- */
538
- CKEDITOR.dom.selection = function( document )
539
- {
540
- var lockedSelection = document.getCustomData( 'cke_locked_selection' );
541
-
542
- if ( lockedSelection )
543
- return lockedSelection;
544
-
545
- this.document = document;
546
- this.isLocked = 0;
547
- this._ =
548
- {
549
- cache : {}
550
- };
551
-
552
- /**
553
- * IE BUG: The selection's document may be a different document than the
554
- * editor document. Return null if that's the case.
555
- */
556
- if ( CKEDITOR.env.ie )
557
- {
558
- var range = this.getNative().createRange();
559
- if ( !range
560
- || ( range.item && range.item(0).ownerDocument != this.document.$ )
561
- || ( range.parentElement && range.parentElement().ownerDocument != this.document.$ ) )
562
- {
563
- this.isInvalid = true;
564
- }
565
- }
566
-
567
- return this;
568
- };
569
-
570
- var styleObjectElements =
571
- {
572
- img:1,hr:1,li:1,table:1,tr:1,td:1,th:1,embed:1,object:1,ol:1,ul:1,
573
- a:1,input:1,form:1,select:1,textarea:1,button:1,fieldset:1,thead:1,tfoot:1
574
- };
575
-
576
- CKEDITOR.dom.selection.prototype =
577
- {
578
- /**
579
- * Gets the native selection object from the browser.
580
- * @function
581
- * @returns {Object} The native selection object.
582
- * @example
583
- * var selection = editor.getSelection().<b>getNative()</b>;
584
- */
585
- getNative :
586
- CKEDITOR.env.ie ?
587
- function()
588
- {
589
- return this._.cache.nativeSel || ( this._.cache.nativeSel = this.document.$.selection );
590
- }
591
- :
592
- function()
593
- {
594
- return this._.cache.nativeSel || ( this._.cache.nativeSel = this.document.getWindow().$.getSelection() );
595
- },
596
-
597
- /**
598
- * Gets the type of the current selection. The following values are
599
- * available:
600
- * <ul>
601
- * <li>{@link CKEDITOR.SELECTION_NONE} (1): No selection.</li>
602
- * <li>{@link CKEDITOR.SELECTION_TEXT} (2): Text is selected or
603
- * collapsed selection.</li>
604
- * <li>{@link CKEDITOR.SELECTION_ELEMENT} (3): A element
605
- * selection.</li>
606
- * </ul>
607
- * @function
608
- * @returns {Number} One of the following constant values:
609
- * {@link CKEDITOR.SELECTION_NONE}, {@link CKEDITOR.SELECTION_TEXT} or
610
- * {@link CKEDITOR.SELECTION_ELEMENT}.
611
- * @example
612
- * if ( editor.getSelection().<b>getType()</b> == CKEDITOR.SELECTION_TEXT )
613
- * alert( 'Text is selected' );
614
- */
615
- getType :
616
- CKEDITOR.env.ie ?
617
- function()
618
- {
619
- var cache = this._.cache;
620
- if ( cache.type )
621
- return cache.type;
622
-
623
- var type = CKEDITOR.SELECTION_NONE;
624
-
625
- try
626
- {
627
- var sel = this.getNative(),
628
- ieType = sel.type;
629
-
630
- if ( ieType == 'Text' )
631
- type = CKEDITOR.SELECTION_TEXT;
632
-
633
- if ( ieType == 'Control' )
634
- type = CKEDITOR.SELECTION_ELEMENT;
635
-
636
- // It is possible that we can still get a text range
637
- // object even when type == 'None' is returned by IE.
638
- // So we'd better check the object returned by
639
- // createRange() rather than by looking at the type.
640
- if ( sel.createRange().parentElement )
641
- type = CKEDITOR.SELECTION_TEXT;
642
- }
643
- catch(e) {}
644
-
645
- return ( cache.type = type );
646
- }
647
- :
648
- function()
649
- {
650
- var cache = this._.cache;
651
- if ( cache.type )
652
- return cache.type;
653
-
654
- var type = CKEDITOR.SELECTION_TEXT;
655
-
656
- var sel = this.getNative();
657
-
658
- if ( !sel )
659
- type = CKEDITOR.SELECTION_NONE;
660
- else if ( sel.rangeCount == 1 )
661
- {
662
- // Check if the actual selection is a control (IMG,
663
- // TABLE, HR, etc...).
664
-
665
- var range = sel.getRangeAt(0),
666
- startContainer = range.startContainer;
667
-
668
- if ( startContainer == range.endContainer
669
- && startContainer.nodeType == 1
670
- && ( range.endOffset - range.startOffset ) == 1
671
- && styleObjectElements[ startContainer.childNodes[ range.startOffset ].nodeName.toLowerCase() ] )
672
- {
673
- type = CKEDITOR.SELECTION_ELEMENT;
674
- }
675
- }
676
-
677
- return ( cache.type = type );
678
- },
679
-
680
- /**
681
- * Retrieve the {@link CKEDITOR.dom.range} instances that represent the current selection.
682
- * Note: Some browsers returns multiple ranges even on a sequent selection, e.g. Firefox returns
683
- * one range for each table cell when one or more table row is selected.
684
- * @return {Array}
685
- * @example
686
- * var ranges = selection.getRanges();
687
- * alert(ranges.length);
688
- */
689
- getRanges : (function()
690
- {
691
- var func = CKEDITOR.env.ie ?
692
- ( function()
693
- {
694
- function getNodeIndex( node ) { return new CKEDITOR.dom.node( node ).getIndex(); }
695
-
696
- // Finds the container and offset for a specific boundary
697
- // of an IE range.
698
- var getBoundaryInformation = function( range, start )
699
- {
700
- // Creates a collapsed range at the requested boundary.
701
- range = range.duplicate();
702
- range.collapse( start );
703
-
704
- // Gets the element that encloses the range entirely.
705
- var parent = range.parentElement(),
706
- doc = parent.ownerDocument;
707
-
708
- // Empty parent element, e.g. <i>^</i>
709
- if ( !parent.hasChildNodes() )
710
- return { container : parent, offset : 0 };
711
-
712
- var siblings = parent.children,
713
- child,
714
- sibling,
715
- testRange = range.duplicate(),
716
- startIndex = 0,
717
- endIndex = siblings.length - 1,
718
- index = -1,
719
- position,
720
- distance;
721
-
722
- // Binary search over all element childs to test the range to see whether
723
- // range is right on the boundary of one element.
724
- while ( startIndex <= endIndex )
725
- {
726
- index = Math.floor( ( startIndex + endIndex ) / 2 );
727
- child = siblings[ index ];
728
- testRange.moveToElementText( child );
729
- position = testRange.compareEndPoints( 'StartToStart', range );
730
-
731
- if ( position > 0 )
732
- endIndex = index - 1;
733
- else if ( position < 0 )
734
- startIndex = index + 1;
735
- else
736
- {
737
- // IE9 report wrong measurement with compareEndPoints when range anchors between two BRs.
738
- // e.g. <p>text<br />^<br /></p> (#7433)
739
- if ( CKEDITOR.env.ie9Compat && child.tagName == 'BR' )
740
- {
741
- var bmId = 'cke_range_marker';
742
- range.execCommand( 'CreateBookmark', false, bmId );
743
- child = doc.getElementsByName( bmId )[ 0 ];
744
- var offset = getNodeIndex( child );
745
- parent.removeChild( child );
746
- return { container : parent, offset : offset };
747
- }
748
- else
749
- return { container : parent, offset : getNodeIndex( child ) };
750
- }
751
- }
752
-
753
- // All childs are text nodes,
754
- // or to the right hand of test range are all text nodes. (#6992)
755
- if ( index == -1 || index == siblings.length - 1 && position < 0 )
756
- {
757
- // Adapt test range to embrace the entire parent contents.
758
- testRange.moveToElementText( parent );
759
- testRange.setEndPoint( 'StartToStart', range );
760
-
761
- // IE report line break as CRLF with range.text but
762
- // only LF with textnode.nodeValue, normalize them to avoid
763
- // breaking character counting logic below. (#3949)
764
- distance = testRange.text.replace( /(\r\n|\r)/g, '\n' ).length;
765
-
766
- siblings = parent.childNodes;
767
-
768
- // Actual range anchor right beside test range at the boundary of text node.
769
- if ( !distance )
770
- {
771
- child = siblings[ siblings.length - 1 ];
772
-
773
- if ( child.nodeType == CKEDITOR.NODE_ELEMENT )
774
- return { container : parent, offset : siblings.length };
775
- else
776
- return { container : child, offset : child.nodeValue.length };
777
- }
778
-
779
- // Start the measuring until distance overflows, meanwhile count the text nodes.
780
- var i = siblings.length;
781
- while ( distance > 0 )
782
- distance -= siblings[ --i ].nodeValue.length;
783
-
784
- return { container : siblings[ i ], offset : -distance };
785
- }
786
- // Test range was one offset beyond OR behind the anchored text node.
787
- else
788
- {
789
- // Adapt one side of test range to the actual range
790
- // for measuring the offset between them.
791
- testRange.collapse( position > 0 ? true : false );
792
- testRange.setEndPoint( position > 0 ? 'StartToStart' : 'EndToStart', range );
793
-
794
- // IE report line break as CRLF with range.text but
795
- // only LF with textnode.nodeValue, normalize them to avoid
796
- // breaking character counting logic below. (#3949)
797
- distance = testRange.text.replace( /(\r\n|\r)/g, '\n' ).length;
798
-
799
- // Actual range anchor right beside test range at the inner boundary of text node.
800
- if ( !distance )
801
- return { container : parent, offset : getNodeIndex( child ) + ( position > 0 ? 0 : 1 ) };
802
-
803
- // Start the measuring until distance overflows, meanwhile count the text nodes.
804
- while ( distance > 0 )
805
- {
806
- try
807
- {
808
- sibling = child[ position > 0 ? 'previousSibling' : 'nextSibling' ];
809
- distance -= sibling.nodeValue.length;
810
- child = sibling;
811
- }
812
- // Measurement in IE could be somtimes wrong because of <select> element. (#4611)
813
- catch( e )
814
- {
815
- return { container : parent, offset : getNodeIndex( child ) };
816
- }
817
- }
818
-
819
- return { container : child, offset : position > 0 ? -distance : child.nodeValue.length + distance };
820
- }
821
- };
822
-
823
- return function()
824
- {
825
- // IE doesn't have range support (in the W3C way), so we
826
- // need to do some magic to transform selections into
827
- // CKEDITOR.dom.range instances.
828
-
829
- var sel = this.getNative(),
830
- nativeRange = sel && sel.createRange(),
831
- type = this.getType(),
832
- range;
833
-
834
- if ( !sel )
835
- return [];
836
-
837
- if ( type == CKEDITOR.SELECTION_TEXT )
838
- {
839
- range = new CKEDITOR.dom.range( this.document );
840
-
841
- var boundaryInfo = getBoundaryInformation( nativeRange, true );
842
- range.setStart( new CKEDITOR.dom.node( boundaryInfo.container ), boundaryInfo.offset );
843
-
844
- boundaryInfo = getBoundaryInformation( nativeRange );
845
- range.setEnd( new CKEDITOR.dom.node( boundaryInfo.container ), boundaryInfo.offset );
846
-
847
- // Correct an invalid IE range case on empty list item. (#5850)
848
- if ( range.endContainer.getPosition( range.startContainer ) & CKEDITOR.POSITION_PRECEDING
849
- && range.endOffset <= range.startContainer.getIndex() )
850
- {
851
- range.collapse();
852
- }
853
-
854
- return [ range ];
855
- }
856
- else if ( type == CKEDITOR.SELECTION_ELEMENT )
857
- {
858
- var retval = [];
859
-
860
- for ( var i = 0 ; i < nativeRange.length ; i++ )
861
- {
862
- var element = nativeRange.item( i ),
863
- parentElement = element.parentNode,
864
- j = 0;
865
-
866
- range = new CKEDITOR.dom.range( this.document );
867
-
868
- for (; j < parentElement.childNodes.length && parentElement.childNodes[j] != element ; j++ )
869
- { /*jsl:pass*/ }
870
-
871
- range.setStart( new CKEDITOR.dom.node( parentElement ), j );
872
- range.setEnd( new CKEDITOR.dom.node( parentElement ), j + 1 );
873
- retval.push( range );
874
- }
875
-
876
- return retval;
877
- }
878
-
879
- return [];
880
- };
881
- })()
882
- :
883
- function()
884
- {
885
-
886
- // On browsers implementing the W3C range, we simply
887
- // tranform the native ranges in CKEDITOR.dom.range
888
- // instances.
889
-
890
- var ranges = [],
891
- range,
892
- doc = this.document,
893
- sel = this.getNative();
894
-
895
- if ( !sel )
896
- return ranges;
897
-
898
- // On WebKit, it may happen that we'll have no selection
899
- // available. We normalize it here by replicating the
900
- // behavior of other browsers.
901
- if ( !sel.rangeCount )
902
- {
903
- range = new CKEDITOR.dom.range( doc );
904
- range.moveToElementEditStart( doc.getBody() );
905
- ranges.push( range );
906
- }
907
-
908
- for ( var i = 0 ; i < sel.rangeCount ; i++ )
909
- {
910
- var nativeRange = sel.getRangeAt( i );
911
-
912
- range = new CKEDITOR.dom.range( doc );
913
-
914
- range.setStart( new CKEDITOR.dom.node( nativeRange.startContainer ), nativeRange.startOffset );
915
- range.setEnd( new CKEDITOR.dom.node( nativeRange.endContainer ), nativeRange.endOffset );
916
- ranges.push( range );
917
- }
918
- return ranges;
919
- };
920
-
921
- return function( onlyEditables )
922
- {
923
- var cache = this._.cache;
924
- if ( cache.ranges && !onlyEditables )
925
- return cache.ranges;
926
- else if ( !cache.ranges )
927
- cache.ranges = new CKEDITOR.dom.rangeList( func.call( this ) );
928
-
929
- // Split range into multiple by read-only nodes.
930
- if ( onlyEditables )
931
- {
932
- var ranges = cache.ranges;
933
- for ( var i = 0; i < ranges.length; i++ )
934
- {
935
- var range = ranges[ i ];
936
-
937
- // Drop range spans inside one ready-only node.
938
- var parent = range.getCommonAncestor();
939
- if ( parent.isReadOnly() )
940
- ranges.splice( i, 1 );
941
-
942
- if ( range.collapsed )
943
- continue;
944
-
945
- var startContainer = range.startContainer,
946
- endContainer = range.endContainer,
947
- startOffset = range.startOffset,
948
- endOffset = range.endOffset,
949
- walkerRange = range.clone();
950
-
951
- // Range may start inside a non-editable element, restart range
952
- // by the end of it.
953
- var readOnly;
954
- if ( ( readOnly = startContainer.isReadOnly() ) )
955
- range.setStartAfter( readOnly );
956
-
957
- // Enlarge range start/end with text node to avoid walker
958
- // being DOM destructive, it doesn't interfere our checking
959
- // of elements below as well.
960
- if ( startContainer && startContainer.type == CKEDITOR.NODE_TEXT )
961
- {
962
- if ( startOffset >= startContainer.getLength() )
963
- walkerRange.setStartAfter( startContainer );
964
- else
965
- walkerRange.setStartBefore( startContainer );
966
- }
967
-
968
- if ( endContainer && endContainer.type == CKEDITOR.NODE_TEXT )
969
- {
970
- if ( !endOffset )
971
- walkerRange.setEndBefore( endContainer );
972
- else
973
- walkerRange.setEndAfter( endContainer );
974
- }
975
-
976
- // Looking for non-editable element inside the range.
977
- var walker = new CKEDITOR.dom.walker( walkerRange );
978
- walker.evaluator = function( node )
979
- {
980
- if ( node.type == CKEDITOR.NODE_ELEMENT
981
- && node.isReadOnly() )
982
- {
983
- var newRange = range.clone();
984
- range.setEndBefore( node );
985
-
986
- // Drop collapsed range around read-only elements,
987
- // it make sure the range list empty when selecting
988
- // only non-editable elements.
989
- if ( range.collapsed )
990
- ranges.splice( i--, 1 );
991
-
992
- // Avoid creating invalid range.
993
- if ( !( node.getPosition( walkerRange.endContainer ) & CKEDITOR.POSITION_CONTAINS ) )
994
- {
995
- newRange.setStartAfter( node );
996
- if ( !newRange.collapsed )
997
- ranges.splice( i + 1, 0, newRange );
998
- }
999
-
1000
- return true;
1001
- }
1002
-
1003
- return false;
1004
- };
1005
-
1006
- walker.next();
1007
- }
1008
- }
1009
-
1010
- return cache.ranges;
1011
- };
1012
- })(),
1013
-
1014
- /**
1015
- * Gets the DOM element in which the selection starts.
1016
- * @returns {CKEDITOR.dom.element} The element at the beginning of the
1017
- * selection.
1018
- * @example
1019
- * var element = editor.getSelection().<b>getStartElement()</b>;
1020
- * alert( element.getName() );
1021
- */
1022
- getStartElement : function()
1023
- {
1024
- var cache = this._.cache;
1025
- if ( cache.startElement !== undefined )
1026
- return cache.startElement;
1027
-
1028
- var node,
1029
- sel = this.getNative();
1030
-
1031
- switch ( this.getType() )
1032
- {
1033
- case CKEDITOR.SELECTION_ELEMENT :
1034
- return this.getSelectedElement();
1035
-
1036
- case CKEDITOR.SELECTION_TEXT :
1037
-
1038
- var range = this.getRanges()[0];
1039
-
1040
- if ( range )
1041
- {
1042
- if ( !range.collapsed )
1043
- {
1044
- range.optimize();
1045
-
1046
- // Decrease the range content to exclude particial
1047
- // selected node on the start which doesn't have
1048
- // visual impact. ( #3231 )
1049
- while ( 1 )
1050
- {
1051
- var startContainer = range.startContainer,
1052
- startOffset = range.startOffset;
1053
- // Limit the fix only to non-block elements.(#3950)
1054
- if ( startOffset == ( startContainer.getChildCount ?
1055
- startContainer.getChildCount() : startContainer.getLength() )
1056
- && !startContainer.isBlockBoundary() )
1057
- range.setStartAfter( startContainer );
1058
- else break;
1059
- }
1060
-
1061
- node = range.startContainer;
1062
-
1063
- if ( node.type != CKEDITOR.NODE_ELEMENT )
1064
- return node.getParent();
1065
-
1066
- node = node.getChild( range.startOffset );
1067
-
1068
- if ( !node || node.type != CKEDITOR.NODE_ELEMENT )
1069
- node = range.startContainer;
1070
- else
1071
- {
1072
- var child = node.getFirst();
1073
- while ( child && child.type == CKEDITOR.NODE_ELEMENT )
1074
- {
1075
- node = child;
1076
- child = child.getFirst();
1077
- }
1078
- }
1079
- }
1080
- else
1081
- {
1082
- node = range.startContainer;
1083
- if ( node.type != CKEDITOR.NODE_ELEMENT )
1084
- node = node.getParent();
1085
- }
1086
-
1087
- node = node.$;
1088
- }
1089
- }
1090
-
1091
- return cache.startElement = ( node ? new CKEDITOR.dom.element( node ) : null );
1092
- },
1093
-
1094
- /**
1095
- * Gets the current selected element.
1096
- * @returns {CKEDITOR.dom.element} The selected element. Null if no
1097
- * selection is available or the selection type is not
1098
- * {@link CKEDITOR.SELECTION_ELEMENT}.
1099
- * @example
1100
- * var element = editor.getSelection().<b>getSelectedElement()</b>;
1101
- * alert( element.getName() );
1102
- */
1103
- getSelectedElement : function()
1104
- {
1105
- var cache = this._.cache;
1106
- if ( cache.selectedElement !== undefined )
1107
- return cache.selectedElement;
1108
-
1109
- var self = this;
1110
-
1111
- var node = CKEDITOR.tools.tryThese(
1112
- // Is it native IE control type selection?
1113
- function()
1114
- {
1115
- return self.getNative().createRange().item( 0 );
1116
- },
1117
- // Figure it out by checking if there's a single enclosed
1118
- // node of the range.
1119
- function()
1120
- {
1121
- var range = self.getRanges()[ 0 ],
1122
- enclosed,
1123
- selected;
1124
-
1125
- // Check first any enclosed element, e.g. <ul>[<li><a href="#">item</a></li>]</ul>
1126
- for ( var i = 2; i && !( ( enclosed = range.getEnclosedNode() )
1127
- && ( enclosed.type == CKEDITOR.NODE_ELEMENT )
1128
- && styleObjectElements[ enclosed.getName() ]
1129
- && ( selected = enclosed ) ); i-- )
1130
- {
1131
- // Then check any deep wrapped element, e.g. [<b><i><img /></i></b>]
1132
- range.shrink( CKEDITOR.SHRINK_ELEMENT );
1133
- }
1134
-
1135
- return selected.$;
1136
- });
1137
-
1138
- return cache.selectedElement = ( node ? new CKEDITOR.dom.element( node ) : null );
1139
- },
1140
-
1141
- lock : function()
1142
- {
1143
- // Call all cacheable function.
1144
- this.getRanges();
1145
- this.getStartElement();
1146
- this.getSelectedElement();
1147
-
1148
- // The native selection is not available when locked.
1149
- this._.cache.nativeSel = {};
1150
-
1151
- this.isLocked = 1;
1152
-
1153
- // Save this selection inside the DOM document.
1154
- this.document.setCustomData( 'cke_locked_selection', this );
1155
- },
1156
-
1157
- unlock : function( restore )
1158
- {
1159
- var doc = this.document,
1160
- lockedSelection = doc.getCustomData( 'cke_locked_selection' );
1161
-
1162
- if ( lockedSelection )
1163
- {
1164
- doc.setCustomData( 'cke_locked_selection', null );
1165
-
1166
- if ( restore )
1167
- {
1168
- var selectedElement = lockedSelection.getSelectedElement(),
1169
- ranges = !selectedElement && lockedSelection.getRanges();
1170
-
1171
- this.isLocked = 0;
1172
- this.reset();
1173
-
1174
- doc.getBody().focus();
1175
-
1176
- if ( selectedElement )
1177
- this.selectElement( selectedElement );
1178
- else
1179
- this.selectRanges( ranges );
1180
- }
1181
- }
1182
-
1183
- if ( !lockedSelection || !restore )
1184
- {
1185
- this.isLocked = 0;
1186
- this.reset();
1187
- }
1188
- },
1189
-
1190
- reset : function()
1191
- {
1192
- this._.cache = {};
1193
- },
1194
-
1195
- /**
1196
- * Make the current selection of type {@link CKEDITOR.SELECTION_ELEMENT} by enclosing the specified element.
1197
- * @param element
1198
- */
1199
- selectElement : function( element )
1200
- {
1201
- if ( this.isLocked )
1202
- {
1203
- var range = new CKEDITOR.dom.range( this.document );
1204
- range.setStartBefore( element );
1205
- range.setEndAfter( element );
1206
-
1207
- this._.cache.selectedElement = element;
1208
- this._.cache.startElement = element;
1209
- this._.cache.ranges = new CKEDITOR.dom.rangeList( range );
1210
- this._.cache.type = CKEDITOR.SELECTION_ELEMENT;
1211
-
1212
- return;
1213
- }
1214
-
1215
- range = new CKEDITOR.dom.range( element.getDocument() );
1216
- range.setStartBefore( element );
1217
- range.setEndAfter( element );
1218
- range.select();
1219
-
1220
- this.document.fire( 'selectionchange' );
1221
- this.reset();
1222
-
1223
- },
1224
-
1225
- /**
1226
- * Adding the specified ranges to document selection preceding
1227
- * by clearing up the original selection.
1228
- * @param {CKEDITOR.dom.range} ranges
1229
- */
1230
- selectRanges : function( ranges )
1231
- {
1232
- if ( this.isLocked )
1233
- {
1234
- this._.cache.selectedElement = null;
1235
- this._.cache.startElement = ranges[ 0 ] && ranges[ 0 ].getTouchedStartNode();
1236
- this._.cache.ranges = new CKEDITOR.dom.rangeList( ranges );
1237
- this._.cache.type = CKEDITOR.SELECTION_TEXT;
1238
-
1239
- return;
1240
- }
1241
-
1242
- if ( CKEDITOR.env.ie )
1243
- {
1244
- if ( ranges.length > 1 )
1245
- {
1246
- // IE doesn't accept multiple ranges selection, so we join all into one.
1247
- var last = ranges[ ranges.length -1 ] ;
1248
- ranges[ 0 ].setEnd( last.endContainer, last.endOffset );
1249
- ranges.length = 1;
1250
- }
1251
-
1252
- if ( ranges[ 0 ] )
1253
- ranges[ 0 ].select();
1254
-
1255
- this.reset();
1256
- }
1257
- else
1258
- {
1259
- var sel = this.getNative();
1260
-
1261
- // getNative() returns null if iframe is "display:none" in FF. (#6577)
1262
- if ( !sel )
1263
- return;
1264
-
1265
- if ( ranges.length )
1266
- {
1267
- sel.removeAllRanges();
1268
- // Remove any existing filling char first.
1269
- CKEDITOR.env.webkit && removeFillingChar( this.document );
1270
- }
1271
-
1272
- for ( var i = 0 ; i < ranges.length ; i++ )
1273
- {
1274
- // Joining sequential ranges introduced by
1275
- // readonly elements protection.
1276
- if ( i < ranges.length -1 )
1277
- {
1278
- var left = ranges[ i ], right = ranges[ i +1 ],
1279
- between = left.clone();
1280
- between.setStart( left.endContainer, left.endOffset );
1281
- between.setEnd( right.startContainer, right.startOffset );
1282
-
1283
- // Don't confused by Firefox adjancent multi-ranges
1284
- // introduced by table cells selection.
1285
- if ( !between.collapsed )
1286
- {
1287
- between.shrink( CKEDITOR.NODE_ELEMENT, true );
1288
- var ancestor = between.getCommonAncestor(),
1289
- enclosed = between.getEnclosedNode();
1290
-
1291
- // The following cases has to be considered:
1292
- // 1. <span contenteditable="false">[placeholder]</span>
1293
- // 2. <input contenteditable="false" type="radio"/> (#6621)
1294
- if ( ancestor.isReadOnly() || enclosed && enclosed.isReadOnly() )
1295
- {
1296
- right.setStart( left.startContainer, left.startOffset );
1297
- ranges.splice( i--, 1 );
1298
- continue;
1299
- }
1300
- }
1301
- }
1302
-
1303
- var range = ranges[ i ];
1304
- var nativeRange = this.document.$.createRange();
1305
- var startContainer = range.startContainer;
1306
-
1307
- // In FF2, if we have a collapsed range, inside an empty
1308
- // element, we must add something to it otherwise the caret
1309
- // will not be visible.
1310
- // In Opera instead, the selection will be moved out of the
1311
- // element. (#4657)
1312
- if ( range.collapsed &&
1313
- ( CKEDITOR.env.opera || ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 ) ) &&
1314
- startContainer.type == CKEDITOR.NODE_ELEMENT &&
1315
- !startContainer.getChildCount() )
1316
- {
1317
- startContainer.appendText( '' );
1318
- }
1319
-
1320
- if ( range.collapsed
1321
- && CKEDITOR.env.webkit
1322
- && rangeRequiresFix( range ) )
1323
- {
1324
- // Append a zero-width space so WebKit will not try to
1325
- // move the selection by itself (#1272).
1326
- var fillingChar = createFillingChar( this.document );
1327
- range.insertNode( fillingChar ) ;
1328
-
1329
- var next = fillingChar.getNext();
1330
-
1331
- // If the filling char is followed by a <br>, whithout
1332
- // having something before it, it'll not blink.
1333
- // Let's remove it in this case.
1334
- if ( next && !fillingChar.getPrevious() && next.type == CKEDITOR.NODE_ELEMENT && next.getName() == 'br' )
1335
- {
1336
- removeFillingChar( this.document );
1337
- range.moveToPosition( next, CKEDITOR.POSITION_BEFORE_START );
1338
- }
1339
- else
1340
- range.moveToPosition( fillingChar, CKEDITOR.POSITION_AFTER_END );
1341
- }
1342
-
1343
- nativeRange.setStart( range.startContainer.$, range.startOffset );
1344
-
1345
- try
1346
- {
1347
- nativeRange.setEnd( range.endContainer.$, range.endOffset );
1348
- }
1349
- catch ( e )
1350
- {
1351
- // There is a bug in Firefox implementation (it would be too easy
1352
- // otherwise). The new start can't be after the end (W3C says it can).
1353
- // So, let's create a new range and collapse it to the desired point.
1354
- if ( e.toString().indexOf( 'NS_ERROR_ILLEGAL_VALUE' ) >= 0 )
1355
- {
1356
- range.collapse( 1 );
1357
- nativeRange.setEnd( range.endContainer.$, range.endOffset );
1358
- }
1359
- else
1360
- throw e;
1361
- }
1362
-
1363
- // Select the range.
1364
- sel.addRange( nativeRange );
1365
- }
1366
-
1367
- this.reset();
1368
- }
1369
- },
1370
-
1371
- /**
1372
- * Create bookmark for every single of this selection range (from #getRanges)
1373
- * by calling the {@link CKEDITOR.dom.range.prototype.createBookmark} method,
1374
- * with extra cares to avoid interferon among those ranges. Same arguments are
1375
- * received as with the underlay range method.
1376
- */
1377
- createBookmarks : function( serializable )
1378
- {
1379
- return this.getRanges().createBookmarks( serializable );
1380
- },
1381
-
1382
- /**
1383
- * Create bookmark for every single of this selection range (from #getRanges)
1384
- * by calling the {@link CKEDITOR.dom.range.prototype.createBookmark2} method,
1385
- * with extra cares to avoid interferon among those ranges. Same arguments are
1386
- * received as with the underlay range method.
1387
- */
1388
- createBookmarks2 : function( normalized )
1389
- {
1390
- return this.getRanges().createBookmarks2( normalized );
1391
- },
1392
-
1393
- /**
1394
- * Select the virtual ranges denote by the bookmarks by calling #selectRanges.
1395
- * @param bookmarks
1396
- */
1397
- selectBookmarks : function( bookmarks )
1398
- {
1399
- var ranges = [];
1400
- for ( var i = 0 ; i < bookmarks.length ; i++ )
1401
- {
1402
- var range = new CKEDITOR.dom.range( this.document );
1403
- range.moveToBookmark( bookmarks[i] );
1404
- ranges.push( range );
1405
- }
1406
- this.selectRanges( ranges );
1407
- return this;
1408
- },
1409
-
1410
- /**
1411
- * Retrieve the common ancestor node of the first range and the last range.
1412
- */
1413
- getCommonAncestor : function()
1414
- {
1415
- var ranges = this.getRanges(),
1416
- startNode = ranges[ 0 ].startContainer,
1417
- endNode = ranges[ ranges.length - 1 ].endContainer;
1418
- return startNode.getCommonAncestor( endNode );
1419
- },
1420
-
1421
- /**
1422
- * Moving scroll bar to the current selection's start position.
1423
- */
1424
- scrollIntoView : function()
1425
- {
1426
- // If we have split the block, adds a temporary span at the
1427
- // range position and scroll relatively to it.
1428
- var start = this.getStartElement();
1429
- start.scrollIntoView();
1430
- }
1431
- };
1432
- })();
1433
-
1434
- ( function()
1435
- {
1436
- var notWhitespaces = CKEDITOR.dom.walker.whitespaces( true ),
1437
- fillerTextRegex = /\ufeff|\u00a0/,
1438
- nonCells = { table:1,tbody:1,tr:1 };
1439
-
1440
- CKEDITOR.dom.range.prototype.select =
1441
- CKEDITOR.env.ie ?
1442
- // V2
1443
- function( forceExpand )
1444
- {
1445
- var collapsed = this.collapsed,
1446
- isStartMarkerAlone, dummySpan, ieRange;
1447
-
1448
- // Try to make a object selection.
1449
- var selected = this.getEnclosedNode();
1450
- if ( selected )
1451
- {
1452
- try
1453
- {
1454
- ieRange = this.document.$.body.createControlRange();
1455
- ieRange.addElement( selected.$ );
1456
- ieRange.select();
1457
- return;
1458
- }
1459
- catch( er ) {}
1460
- }
1461
-
1462
- // IE doesn't support selecting the entire table row/cell, move the selection into cells, e.g.
1463
- // <table><tbody><tr>[<td>cell</b></td>... => <table><tbody><tr><td>[cell</td>...
1464
- if ( this.startContainer.type == CKEDITOR.NODE_ELEMENT && this.startContainer.getName() in nonCells
1465
- || this.endContainer.type == CKEDITOR.NODE_ELEMENT && this.endContainer.getName() in nonCells )
1466
- {
1467
- this.shrink( CKEDITOR.NODE_ELEMENT, true );
1468
- }
1469
-
1470
- var bookmark = this.createBookmark();
1471
-
1472
- // Create marker tags for the start and end boundaries.
1473
- var startNode = bookmark.startNode;
1474
-
1475
- var endNode;
1476
- if ( !collapsed )
1477
- endNode = bookmark.endNode;
1478
-
1479
- // Create the main range which will be used for the selection.
1480
- ieRange = this.document.$.body.createTextRange();
1481
-
1482
- // Position the range at the start boundary.
1483
- ieRange.moveToElementText( startNode.$ );
1484
- ieRange.moveStart( 'character', 1 );
1485
-
1486
- if ( endNode )
1487
- {
1488
- // Create a tool range for the end.
1489
- var ieRangeEnd = this.document.$.body.createTextRange();
1490
-
1491
- // Position the tool range at the end.
1492
- ieRangeEnd.moveToElementText( endNode.$ );
1493
-
1494
- // Move the end boundary of the main range to match the tool range.
1495
- ieRange.setEndPoint( 'EndToEnd', ieRangeEnd );
1496
- ieRange.moveEnd( 'character', -1 );
1497
- }
1498
- else
1499
- {
1500
- // The isStartMarkerAlone logic comes from V2. It guarantees that the lines
1501
- // will expand and that the cursor will be blinking on the right place.
1502
- // Actually, we are using this flag just to avoid using this hack in all
1503
- // situations, but just on those needed.
1504
- var next = startNode.getNext( notWhitespaces );
1505
- isStartMarkerAlone = ( !( next && next.getText && next.getText().match( fillerTextRegex ) ) // already a filler there?
1506
- && ( forceExpand || !startNode.hasPrevious() || ( startNode.getPrevious().is && startNode.getPrevious().is( 'br' ) ) ) );
1507
-
1508
- // Append a temporary <span>&#65279;</span> before the selection.
1509
- // This is needed to avoid IE destroying selections inside empty
1510
- // inline elements, like <b></b> (#253).
1511
- // It is also needed when placing the selection right after an inline
1512
- // element to avoid the selection moving inside of it.
1513
- dummySpan = this.document.createElement( 'span' );
1514
- dummySpan.setHtml( '&#65279;' ); // Zero Width No-Break Space (U+FEFF). See #1359.
1515
- dummySpan.insertBefore( startNode );
1516
-
1517
- if ( isStartMarkerAlone )
1518
- {
1519
- // To expand empty blocks or line spaces after <br>, we need
1520
- // instead to have any char, which will be later deleted using the
1521
- // selection.
1522
- // \ufeff = Zero Width No-Break Space (U+FEFF). (#1359)
1523
- this.document.createText( '\ufeff' ).insertBefore( startNode );
1524
- }
1525
- }
1526
-
1527
- // Remove the markers (reset the position, because of the changes in the DOM tree).
1528
- this.setStartBefore( startNode );
1529
- startNode.remove();
1530
-
1531
- if ( collapsed )
1532
- {
1533
- if ( isStartMarkerAlone )
1534
- {
1535
- // Move the selection start to include the temporary \ufeff.
1536
- ieRange.moveStart( 'character', -1 );
1537
-
1538
- ieRange.select();
1539
-
1540
- // Remove our temporary stuff.
1541
- this.document.$.selection.clear();
1542
- }
1543
- else
1544
- ieRange.select();
1545
-
1546
- this.moveToPosition( dummySpan, CKEDITOR.POSITION_BEFORE_START );
1547
- dummySpan.remove();
1548
- }
1549
- else
1550
- {
1551
- this.setEndBefore( endNode );
1552
- endNode.remove();
1553
- ieRange.select();
1554
- }
1555
-
1556
- this.document.fire( 'selectionchange' );
1557
- }
1558
- :
1559
- function()
1560
- {
1561
- this.document.getSelection().selectRanges( [ this ] );
1562
- };
1563
- } )();