ckeditor-rails 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (347) hide show
  1. data/README.md +10 -4
  2. data/ckeditor-rails.gemspec +1 -1
  3. data/lib/ckeditor-rails/version.rb +1 -1
  4. data/vendor/assets/ckeditor/ckeditor/INSTALL.html +92 -92
  5. data/vendor/assets/ckeditor/ckeditor/_samples/adobeair/application.xml +32 -32
  6. data/vendor/assets/ckeditor/ckeditor/_samples/adobeair/run.bat +9 -9
  7. data/vendor/assets/ckeditor/ckeditor/_samples/adobeair/sample.html +45 -45
  8. data/vendor/assets/ckeditor/ckeditor/_samples/ajax.html +98 -98
  9. data/vendor/assets/ckeditor/ckeditor/_samples/api.html +192 -192
  10. data/vendor/assets/ckeditor/ckeditor/_samples/api_dialog.html +198 -198
  11. data/vendor/assets/ckeditor/ckeditor/_samples/api_dialog/my_dialog.js +28 -28
  12. data/vendor/assets/ckeditor/ckeditor/_samples/asp/advanced.asp +105 -105
  13. data/vendor/assets/ckeditor/ckeditor/_samples/asp/events.asp +136 -136
  14. data/vendor/assets/ckeditor/ckeditor/_samples/asp/index.html +103 -103
  15. data/vendor/assets/ckeditor/ckeditor/_samples/asp/replace.asp +72 -72
  16. data/vendor/assets/ckeditor/ckeditor/_samples/asp/replaceall.asp +77 -77
  17. data/vendor/assets/ckeditor/ckeditor/_samples/asp/sample_posteddata.asp +46 -46
  18. data/vendor/assets/ckeditor/ckeditor/_samples/asp/standalone.asp +72 -72
  19. data/vendor/assets/ckeditor/ckeditor/_samples/assets/_posteddata.php +59 -59
  20. data/vendor/assets/ckeditor/ckeditor/_samples/assets/output_xhtml.css +204 -204
  21. data/vendor/assets/ckeditor/ckeditor/_samples/assets/parsesample.css +70 -70
  22. data/vendor/assets/ckeditor/ckeditor/_samples/assets/swfobject.js +18 -18
  23. data/vendor/assets/ckeditor/ckeditor/_samples/autogrow.html +107 -107
  24. data/vendor/assets/ckeditor/ckeditor/_samples/bbcode.html +125 -125
  25. data/vendor/assets/ckeditor/ckeditor/_samples/devtools.html +94 -94
  26. data/vendor/assets/ckeditor/ckeditor/_samples/divreplace.html +154 -154
  27. data/vendor/assets/ckeditor/ckeditor/_samples/enterkey.html +115 -115
  28. data/vendor/assets/ckeditor/ckeditor/_samples/fullpage.html +82 -82
  29. data/vendor/assets/ckeditor/ckeditor/_samples/index.html +116 -116
  30. data/vendor/assets/ckeditor/ckeditor/_samples/jqueryadapter.html +99 -99
  31. data/vendor/assets/ckeditor/ckeditor/_samples/output_for_flash.html +275 -275
  32. data/vendor/assets/ckeditor/ckeditor/_samples/output_html.html +285 -285
  33. data/vendor/assets/ckeditor/ckeditor/_samples/output_xhtml.html +177 -177
  34. data/vendor/assets/ckeditor/ckeditor/_samples/php/advanced.php +120 -120
  35. data/vendor/assets/ckeditor/ckeditor/_samples/php/events.php +153 -153
  36. data/vendor/assets/ckeditor/ckeditor/_samples/php/index.html +47 -47
  37. data/vendor/assets/ckeditor/ckeditor/_samples/php/replace.php +87 -87
  38. data/vendor/assets/ckeditor/ckeditor/_samples/php/replaceall.php +88 -88
  39. data/vendor/assets/ckeditor/ckeditor/_samples/php/standalone.php +83 -83
  40. data/vendor/assets/ckeditor/ckeditor/_samples/placeholder.html +81 -81
  41. data/vendor/assets/ckeditor/ckeditor/_samples/readonly.html +91 -91
  42. data/vendor/assets/ckeditor/ckeditor/_samples/replacebyclass.html +64 -64
  43. data/vendor/assets/ckeditor/ckeditor/_samples/replacebycode.html +97 -97
  44. data/vendor/assets/ckeditor/ckeditor/_samples/sample.css +163 -163
  45. data/vendor/assets/ckeditor/ckeditor/_samples/sample.js +65 -65
  46. data/vendor/assets/ckeditor/ckeditor/_samples/sample_posteddata.php +21 -21
  47. data/vendor/assets/ckeditor/ckeditor/_samples/sharedspaces.html +153 -153
  48. data/vendor/assets/ckeditor/ckeditor/_samples/skins.html +110 -110
  49. data/vendor/assets/ckeditor/ckeditor/_samples/stylesheetparser.html +93 -93
  50. data/vendor/assets/ckeditor/ckeditor/_samples/tableresize.html +115 -115
  51. data/vendor/assets/ckeditor/ckeditor/_samples/ui_color.html +129 -129
  52. data/vendor/assets/ckeditor/ckeditor/_samples/ui_languages.html +134 -134
  53. data/vendor/assets/ckeditor/ckeditor/_source/adapters/jquery.js +306 -306
  54. data/vendor/assets/ckeditor/ckeditor/_source/core/_bootstrap.js +87 -87
  55. data/vendor/assets/ckeditor/ckeditor/_source/core/ckeditor.js +141 -141
  56. data/vendor/assets/ckeditor/ckeditor/_source/core/ckeditor_base.js +227 -227
  57. data/vendor/assets/ckeditor/ckeditor/_source/core/ckeditor_basic.js +238 -238
  58. data/vendor/assets/ckeditor/ckeditor/_source/core/command.js +209 -209
  59. data/vendor/assets/ckeditor/ckeditor/_source/core/commanddefinition.js +129 -129
  60. data/vendor/assets/ckeditor/ckeditor/_source/core/config.js +431 -431
  61. data/vendor/assets/ckeditor/ckeditor/_source/core/dataprocessor.js +65 -65
  62. data/vendor/assets/ckeditor/ckeditor/_source/core/dom.js +20 -20
  63. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/comment.js +32 -32
  64. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/document.js +251 -251
  65. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/documentfragment.js +49 -49
  66. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/domobject.js +258 -258
  67. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/element.js +1681 -1681
  68. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/elementpath.js +119 -119
  69. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/event.js +145 -145
  70. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/node.js +695 -695
  71. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/nodelist.js +26 -26
  72. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/range.js +2032 -2032
  73. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/rangelist.js +213 -213
  74. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/text.js +128 -128
  75. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/walker.js +462 -462
  76. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/window.js +96 -96
  77. data/vendor/assets/ckeditor/ckeditor/_source/core/dtd.js +266 -266
  78. data/vendor/assets/ckeditor/ckeditor/_source/core/editor.js +1059 -1059
  79. data/vendor/assets/ckeditor/ckeditor/_source/core/editor_basic.js +186 -186
  80. data/vendor/assets/ckeditor/ckeditor/_source/core/env.js +291 -291
  81. data/vendor/assets/ckeditor/ckeditor/_source/core/event.js +342 -342
  82. data/vendor/assets/ckeditor/ckeditor/_source/core/eventInfo.js +120 -120
  83. data/vendor/assets/ckeditor/ckeditor/_source/core/focusmanager.js +152 -152
  84. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser.js +224 -224
  85. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/basicwriter.js +145 -145
  86. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/cdata.js +43 -43
  87. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/comment.js +60 -60
  88. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/element.js +308 -308
  89. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/filter.js +288 -288
  90. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/fragment.js +497 -497
  91. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/text.js +55 -55
  92. data/vendor/assets/ckeditor/ckeditor/_source/core/lang.js +157 -157
  93. data/vendor/assets/ckeditor/ckeditor/_source/core/loader.js +240 -240
  94. data/vendor/assets/ckeditor/ckeditor/_source/core/plugindefinition.js +83 -83
  95. data/vendor/assets/ckeditor/ckeditor/_source/core/plugins.js +103 -103
  96. data/vendor/assets/ckeditor/ckeditor/_source/core/resourcemanager.js +238 -238
  97. data/vendor/assets/ckeditor/ckeditor/_source/core/scriptloader.js +180 -180
  98. data/vendor/assets/ckeditor/ckeditor/_source/core/skins.js +184 -184
  99. data/vendor/assets/ckeditor/ckeditor/_source/core/themes.js +19 -19
  100. data/vendor/assets/ckeditor/ckeditor/_source/core/tools.js +763 -763
  101. data/vendor/assets/ckeditor/ckeditor/_source/core/ui.js +128 -128
  102. data/vendor/assets/ckeditor/ckeditor/_source/lang/_languages.js +84 -84
  103. data/vendor/assets/ckeditor/ckeditor/_source/lang/_translationstatus.txt +61 -61
  104. data/vendor/assets/ckeditor/ckeditor/_source/lang/af.js +812 -812
  105. data/vendor/assets/ckeditor/ckeditor/_source/lang/ar.js +812 -812
  106. data/vendor/assets/ckeditor/ckeditor/_source/lang/bg.js +812 -812
  107. data/vendor/assets/ckeditor/ckeditor/_source/lang/bn.js +812 -812
  108. data/vendor/assets/ckeditor/ckeditor/_source/lang/bs.js +812 -812
  109. data/vendor/assets/ckeditor/ckeditor/_source/lang/ca.js +812 -812
  110. data/vendor/assets/ckeditor/ckeditor/_source/lang/cs.js +812 -812
  111. data/vendor/assets/ckeditor/ckeditor/_source/lang/cy.js +812 -812
  112. data/vendor/assets/ckeditor/ckeditor/_source/lang/da.js +812 -812
  113. data/vendor/assets/ckeditor/ckeditor/_source/lang/de.js +812 -812
  114. data/vendor/assets/ckeditor/ckeditor/_source/lang/el.js +812 -812
  115. data/vendor/assets/ckeditor/ckeditor/_source/lang/en-au.js +812 -812
  116. data/vendor/assets/ckeditor/ckeditor/_source/lang/en-ca.js +812 -812
  117. data/vendor/assets/ckeditor/ckeditor/_source/lang/en-gb.js +812 -812
  118. data/vendor/assets/ckeditor/ckeditor/_source/lang/en.js +812 -812
  119. data/vendor/assets/ckeditor/ckeditor/_source/lang/eo.js +812 -812
  120. data/vendor/assets/ckeditor/ckeditor/_source/lang/es.js +812 -812
  121. data/vendor/assets/ckeditor/ckeditor/_source/lang/et.js +812 -812
  122. data/vendor/assets/ckeditor/ckeditor/_source/lang/eu.js +812 -812
  123. data/vendor/assets/ckeditor/ckeditor/_source/lang/fa.js +812 -812
  124. data/vendor/assets/ckeditor/ckeditor/_source/lang/fi.js +812 -812
  125. data/vendor/assets/ckeditor/ckeditor/_source/lang/fo.js +812 -812
  126. data/vendor/assets/ckeditor/ckeditor/_source/lang/fr-ca.js +812 -812
  127. data/vendor/assets/ckeditor/ckeditor/_source/lang/fr.js +812 -812
  128. data/vendor/assets/ckeditor/ckeditor/_source/lang/gl.js +812 -812
  129. data/vendor/assets/ckeditor/ckeditor/_source/lang/gu.js +812 -812
  130. data/vendor/assets/ckeditor/ckeditor/_source/lang/he.js +812 -812
  131. data/vendor/assets/ckeditor/ckeditor/_source/lang/hi.js +812 -812
  132. data/vendor/assets/ckeditor/ckeditor/_source/lang/hr.js +812 -812
  133. data/vendor/assets/ckeditor/ckeditor/_source/lang/hu.js +812 -812
  134. data/vendor/assets/ckeditor/ckeditor/_source/lang/is.js +812 -812
  135. data/vendor/assets/ckeditor/ckeditor/_source/lang/it.js +812 -812
  136. data/vendor/assets/ckeditor/ckeditor/_source/lang/ja.js +812 -812
  137. data/vendor/assets/ckeditor/ckeditor/_source/lang/ka.js +812 -812
  138. data/vendor/assets/ckeditor/ckeditor/_source/lang/km.js +812 -812
  139. data/vendor/assets/ckeditor/ckeditor/_source/lang/ko.js +812 -812
  140. data/vendor/assets/ckeditor/ckeditor/_source/lang/lt.js +812 -812
  141. data/vendor/assets/ckeditor/ckeditor/_source/lang/lv.js +812 -812
  142. data/vendor/assets/ckeditor/ckeditor/_source/lang/mn.js +812 -812
  143. data/vendor/assets/ckeditor/ckeditor/_source/lang/ms.js +812 -812
  144. data/vendor/assets/ckeditor/ckeditor/_source/lang/nb.js +812 -812
  145. data/vendor/assets/ckeditor/ckeditor/_source/lang/nl.js +812 -812
  146. data/vendor/assets/ckeditor/ckeditor/_source/lang/no.js +812 -812
  147. data/vendor/assets/ckeditor/ckeditor/_source/lang/pl.js +812 -812
  148. data/vendor/assets/ckeditor/ckeditor/_source/lang/pt-br.js +811 -811
  149. data/vendor/assets/ckeditor/ckeditor/_source/lang/pt.js +812 -812
  150. data/vendor/assets/ckeditor/ckeditor/_source/lang/ro.js +812 -812
  151. data/vendor/assets/ckeditor/ckeditor/_source/lang/ru.js +812 -812
  152. data/vendor/assets/ckeditor/ckeditor/_source/lang/sk.js +812 -812
  153. data/vendor/assets/ckeditor/ckeditor/_source/lang/sl.js +812 -812
  154. data/vendor/assets/ckeditor/ckeditor/_source/lang/sr-latn.js +812 -812
  155. data/vendor/assets/ckeditor/ckeditor/_source/lang/sr.js +812 -812
  156. data/vendor/assets/ckeditor/ckeditor/_source/lang/sv.js +811 -811
  157. data/vendor/assets/ckeditor/ckeditor/_source/lang/th.js +812 -812
  158. data/vendor/assets/ckeditor/ckeditor/_source/lang/tr.js +811 -811
  159. data/vendor/assets/ckeditor/ckeditor/_source/lang/uk.js +812 -812
  160. data/vendor/assets/ckeditor/ckeditor/_source/lang/vi.js +812 -812
  161. data/vendor/assets/ckeditor/ckeditor/_source/lang/zh-cn.js +812 -812
  162. data/vendor/assets/ckeditor/ckeditor/_source/lang/zh.js +812 -812
  163. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/a11yhelp.js +222 -222
  164. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/en.js +108 -108
  165. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/he.js +216 -216
  166. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/plugin.js +47 -47
  167. data/vendor/assets/ckeditor/ckeditor/_source/plugins/about/dialogs/about.js +76 -76
  168. data/vendor/assets/ckeditor/ckeditor/_source/plugins/about/plugin.js +24 -24
  169. data/vendor/assets/ckeditor/ckeditor/_source/plugins/adobeair/plugin.js +228 -228
  170. data/vendor/assets/ckeditor/ckeditor/_source/plugins/ajax/plugin.js +152 -152
  171. data/vendor/assets/ckeditor/ckeditor/_source/plugins/autogrow/plugin.js +88 -88
  172. data/vendor/assets/ckeditor/ckeditor/_source/plugins/basicstyles/plugin.js +101 -101
  173. data/vendor/assets/ckeditor/ckeditor/_source/plugins/bbcode/plugin.js +931 -931
  174. data/vendor/assets/ckeditor/ckeditor/_source/plugins/bidi/plugin.js +334 -334
  175. data/vendor/assets/ckeditor/ckeditor/_source/plugins/blockquote/plugin.js +305 -305
  176. data/vendor/assets/ckeditor/ckeditor/_source/plugins/button/plugin.js +290 -290
  177. data/vendor/assets/ckeditor/ckeditor/_source/plugins/clipboard/dialogs/paste.js +223 -223
  178. data/vendor/assets/ckeditor/ckeditor/_source/plugins/clipboard/plugin.js +453 -453
  179. data/vendor/assets/ckeditor/ckeditor/_source/plugins/colorbutton/plugin.js +294 -294
  180. data/vendor/assets/ckeditor/ckeditor/_source/plugins/colordialog/dialogs/colordialog.js +340 -340
  181. data/vendor/assets/ckeditor/ckeditor/_source/plugins/colordialog/plugin.js +15 -15
  182. data/vendor/assets/ckeditor/ckeditor/_source/plugins/contextmenu/plugin.js +177 -177
  183. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/en.js +16 -16
  184. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/plugin.js +173 -173
  185. data/vendor/assets/ckeditor/ckeditor/_source/plugins/dialog/dialogDefinition.js +1166 -1166
  186. data/vendor/assets/ckeditor/ckeditor/_source/plugins/dialog/plugin.js +3289 -3289
  187. data/vendor/assets/ckeditor/ckeditor/_source/plugins/dialogadvtab/plugin.js +207 -207
  188. data/vendor/assets/ckeditor/ckeditor/_source/plugins/dialogui/plugin.js +1541 -1541
  189. data/vendor/assets/ckeditor/ckeditor/_source/plugins/div/dialogs/div.js +535 -535
  190. data/vendor/assets/ckeditor/ckeditor/_source/plugins/div/plugin.js +121 -121
  191. data/vendor/assets/ckeditor/ckeditor/_source/plugins/docprops/dialogs/docprops.js +686 -686
  192. data/vendor/assets/ckeditor/ckeditor/_source/plugins/docprops/plugin.js +22 -22
  193. data/vendor/assets/ckeditor/ckeditor/_source/plugins/domiterator/plugin.js +361 -361
  194. data/vendor/assets/ckeditor/ckeditor/_source/plugins/editingblock/plugin.js +275 -275
  195. data/vendor/assets/ckeditor/ckeditor/_source/plugins/elementspath/plugin.js +218 -218
  196. data/vendor/assets/ckeditor/ckeditor/_source/plugins/enterkey/plugin.js +413 -413
  197. data/vendor/assets/ckeditor/ckeditor/_source/plugins/entities/plugin.js +250 -250
  198. data/vendor/assets/ckeditor/ckeditor/_source/plugins/fakeobjects/plugin.js +175 -175
  199. data/vendor/assets/ckeditor/ckeditor/_source/plugins/filebrowser/plugin.js +524 -524
  200. data/vendor/assets/ckeditor/ckeditor/_source/plugins/find/dialogs/find.js +903 -903
  201. data/vendor/assets/ckeditor/ckeditor/_source/plugins/find/plugin.js +47 -47
  202. data/vendor/assets/ckeditor/ckeditor/_source/plugins/flash/dialogs/flash.js +673 -673
  203. data/vendor/assets/ckeditor/ckeditor/_source/plugins/flash/plugin.js +154 -154
  204. data/vendor/assets/ckeditor/ckeditor/_source/plugins/floatpanel/plugin.js +428 -428
  205. data/vendor/assets/ckeditor/ckeditor/_source/plugins/font/plugin.js +234 -234
  206. data/vendor/assets/ckeditor/ckeditor/_source/plugins/format/plugin.js +197 -197
  207. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/button.js +118 -118
  208. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/checkbox.js +153 -153
  209. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/form.js +177 -177
  210. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/hiddenfield.js +100 -100
  211. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/radio.js +135 -135
  212. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/select.js +558 -558
  213. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/textarea.js +114 -114
  214. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/textfield.js +199 -199
  215. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/plugin.js +288 -288
  216. data/vendor/assets/ckeditor/ckeditor/_source/plugins/horizontalrule/plugin.js +48 -48
  217. data/vendor/assets/ckeditor/ckeditor/_source/plugins/htmldataprocessor/plugin.js +595 -595
  218. data/vendor/assets/ckeditor/ckeditor/_source/plugins/htmlwriter/plugin.js +319 -319
  219. data/vendor/assets/ckeditor/ckeditor/_source/plugins/iframe/dialogs/iframe.js +229 -229
  220. data/vendor/assets/ckeditor/ckeditor/_source/plugins/iframe/plugin.js +87 -87
  221. data/vendor/assets/ckeditor/ckeditor/_source/plugins/iframedialog/plugin.js +188 -188
  222. data/vendor/assets/ckeditor/ckeditor/_source/plugins/image/dialogs/image.js +1406 -1406
  223. data/vendor/assets/ckeditor/ckeditor/_source/plugins/image/plugin.js +81 -81
  224. data/vendor/assets/ckeditor/ckeditor/_source/plugins/indent/plugin.js +461 -461
  225. data/vendor/assets/ckeditor/ckeditor/_source/plugins/justify/plugin.js +253 -253
  226. data/vendor/assets/ckeditor/ckeditor/_source/plugins/keystrokes/plugin.js +225 -225
  227. data/vendor/assets/ckeditor/ckeditor/_source/plugins/link/dialogs/anchor.js +144 -144
  228. data/vendor/assets/ckeditor/ckeditor/_source/plugins/link/dialogs/link.js +1424 -1424
  229. data/vendor/assets/ckeditor/ckeditor/_source/plugins/link/plugin.js +374 -374
  230. data/vendor/assets/ckeditor/ckeditor/_source/plugins/list/plugin.js +734 -734
  231. data/vendor/assets/ckeditor/ckeditor/_source/plugins/listblock/plugin.js +268 -268
  232. data/vendor/assets/ckeditor/ckeditor/_source/plugins/liststyle/dialogs/liststyle.js +225 -225
  233. data/vendor/assets/ckeditor/ckeditor/_source/plugins/liststyle/plugin.js +66 -66
  234. data/vendor/assets/ckeditor/ckeditor/_source/plugins/maximize/plugin.js +352 -352
  235. data/vendor/assets/ckeditor/ckeditor/_source/plugins/menu/plugin.js +541 -541
  236. data/vendor/assets/ckeditor/ckeditor/_source/plugins/menubutton/plugin.js +98 -98
  237. data/vendor/assets/ckeditor/ckeditor/_source/plugins/newpage/plugin.js +54 -54
  238. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pagebreak/plugin.js +164 -164
  239. data/vendor/assets/ckeditor/ckeditor/_source/plugins/panel/plugin.js +403 -403
  240. data/vendor/assets/ckeditor/ckeditor/_source/plugins/panelbutton/plugin.js +144 -144
  241. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pastefromword/filter/default.js +1367 -1367
  242. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pastefromword/plugin.js +141 -141
  243. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pastetext/dialogs/pastetext.js +67 -67
  244. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pastetext/plugin.js +98 -98
  245. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/dialogs/placeholder.js +71 -71
  246. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/en.js +16 -16
  247. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/he.js +16 -16
  248. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/plugin.js +171 -171
  249. data/vendor/assets/ckeditor/ckeditor/_source/plugins/popup/plugin.js +64 -64
  250. data/vendor/assets/ckeditor/ckeditor/_source/plugins/preview/plugin.js +109 -109
  251. data/vendor/assets/ckeditor/ckeditor/_source/plugins/print/plugin.js +42 -42
  252. data/vendor/assets/ckeditor/ckeditor/_source/plugins/removeformat/plugin.js +185 -185
  253. data/vendor/assets/ckeditor/ckeditor/_source/plugins/resize/plugin.js +168 -168
  254. data/vendor/assets/ckeditor/ckeditor/_source/plugins/richcombo/plugin.js +381 -381
  255. data/vendor/assets/ckeditor/ckeditor/_source/plugins/save/plugin.js +56 -56
  256. data/vendor/assets/ckeditor/ckeditor/_source/plugins/scayt/dialogs/options.js +537 -537
  257. data/vendor/assets/ckeditor/ckeditor/_source/plugins/scayt/dialogs/toolbar.css +71 -71
  258. data/vendor/assets/ckeditor/ckeditor/_source/plugins/scayt/plugin.js +964 -964
  259. data/vendor/assets/ckeditor/ckeditor/_source/plugins/selection/plugin.js +1601 -1601
  260. data/vendor/assets/ckeditor/ckeditor/_source/plugins/showblocks/plugin.js +160 -160
  261. data/vendor/assets/ckeditor/ckeditor/_source/plugins/showborders/plugin.js +207 -207
  262. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/dialogs/smiley.js +224 -224
  263. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/plugin.js +94 -94
  264. data/vendor/assets/ckeditor/ckeditor/_source/plugins/sourcearea/plugin.js +209 -209
  265. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/specialchar.js +350 -350
  266. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/en.js +89 -89
  267. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/plugin.js +70 -70
  268. data/vendor/assets/ckeditor/ckeditor/_source/plugins/styles/plugin.js +1696 -1696
  269. data/vendor/assets/ckeditor/ckeditor/_source/plugins/styles/styles/default.js +88 -88
  270. data/vendor/assets/ckeditor/ckeditor/_source/plugins/stylescombo/plugin.js +218 -218
  271. data/vendor/assets/ckeditor/ckeditor/_source/plugins/stylesheetparser/plugin.js +148 -148
  272. data/vendor/assets/ckeditor/ckeditor/_source/plugins/tab/plugin.js +367 -367
  273. data/vendor/assets/ckeditor/ckeditor/_source/plugins/table/dialogs/table.js +602 -602
  274. data/vendor/assets/ckeditor/ckeditor/_source/plugins/table/plugin.js +78 -78
  275. data/vendor/assets/ckeditor/ckeditor/_source/plugins/tableresize/plugin.js +443 -443
  276. data/vendor/assets/ckeditor/ckeditor/_source/plugins/tabletools/dialogs/tableCell.js +525 -525
  277. data/vendor/assets/ckeditor/ckeditor/_source/plugins/tabletools/plugin.js +1194 -1194
  278. data/vendor/assets/ckeditor/ckeditor/_source/plugins/templates/dialogs/templates.js +234 -234
  279. data/vendor/assets/ckeditor/ckeditor/_source/plugins/templates/plugin.js +99 -99
  280. data/vendor/assets/ckeditor/ckeditor/_source/plugins/templates/templates/default.js +94 -94
  281. data/vendor/assets/ckeditor/ckeditor/_source/plugins/toolbar/plugin.js +545 -545
  282. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/dialogs/uicolor.js +205 -205
  283. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/en.js +15 -15
  284. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/he.js +15 -15
  285. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/plugin.js +37 -37
  286. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/yui/assets/yui.css +15 -15
  287. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/yui/yui.js +71 -71
  288. data/vendor/assets/ckeditor/ckeditor/_source/plugins/undo/plugin.js +580 -580
  289. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/dialogs/ciframe.html +49 -49
  290. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/dialogs/tmpFrameset.html +52 -52
  291. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/dialogs/wsc.css +82 -82
  292. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/dialogs/wsc.js +192 -192
  293. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/plugin.js +33 -33
  294. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wysiwygarea/plugin.js +1351 -1351
  295. data/vendor/assets/ckeditor/ckeditor/_source/plugins/xml/plugin.js +170 -170
  296. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/dialog.css +943 -943
  297. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/editor.css +25 -25
  298. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/elementspath.css +73 -73
  299. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/icons.css +366 -366
  300. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/mainui.css +203 -203
  301. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/menu.css +232 -232
  302. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/panel.css +217 -217
  303. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/presets.css +49 -49
  304. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/reset.css +84 -84
  305. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/richcombo.css +287 -287
  306. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/skin.js +236 -236
  307. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/templates.css +88 -88
  308. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/toolbar.css +407 -407
  309. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/dialog.css +844 -844
  310. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/editor.css +25 -25
  311. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/elementspath.css +74 -74
  312. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/icons.css +363 -363
  313. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/mainui.css +153 -153
  314. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/menu.css +229 -229
  315. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/panel.css +212 -212
  316. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/presets.css +49 -49
  317. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/reset.css +84 -84
  318. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/richcombo.css +309 -309
  319. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/skin.js +74 -74
  320. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/templates.css +87 -87
  321. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/toolbar.css +522 -522
  322. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/dialog.css +861 -861
  323. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/editor.css +25 -25
  324. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/elementspath.css +74 -74
  325. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/icons.css +363 -363
  326. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/mainui.css +162 -162
  327. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/menu.css +232 -232
  328. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/panel.css +212 -212
  329. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/presets.css +50 -50
  330. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/reset.css +84 -84
  331. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/richcombo.css +302 -302
  332. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/skin.js +70 -70
  333. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/templates.css +87 -87
  334. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/toolbar.css +465 -465
  335. data/vendor/assets/ckeditor/ckeditor/_source/themes/default/theme.js +395 -395
  336. data/vendor/assets/ckeditor/ckeditor/adapters/jquery.js +6 -6
  337. data/vendor/assets/ckeditor/ckeditor/ckeditor.asp +955 -955
  338. data/vendor/assets/ckeditor/ckeditor/ckeditor.pack +211 -211
  339. data/vendor/assets/ckeditor/ckeditor/ckeditor.php +29 -29
  340. data/vendor/assets/ckeditor/ckeditor/ckeditor_basic.js +8 -8
  341. data/vendor/assets/ckeditor/ckeditor/ckeditor_basic_source.js +20 -20
  342. data/vendor/assets/ckeditor/ckeditor/ckeditor_php4.php +566 -566
  343. data/vendor/assets/ckeditor/ckeditor/ckeditor_php5.php +556 -556
  344. data/vendor/assets/ckeditor/ckeditor/config.js +11 -11
  345. data/vendor/assets/ckeditor/ckeditor/contents.css +25 -25
  346. data/vendor/assets/ckeditor/ckeditor/themes/default/theme.js +8 -8
  347. metadata +7 -9
@@ -1,342 +1,342 @@
1
- /*
2
- Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
3
- For licensing, see LICENSE.html or http://ckeditor.com/license
4
- */
5
-
6
- /**
7
- * @fileOverview Defines the {@link CKEDITOR.event} class, which serves as the
8
- * base for classes and objects that require event handling features.
9
- */
10
-
11
- if ( !CKEDITOR.event )
12
- {
13
- /**
14
- * Creates an event class instance. This constructor is rearely used, being
15
- * the {@link #.implementOn} function used in class prototypes directly
16
- * instead.
17
- * @class This is a base class for classes and objects that require event
18
- * handling features.<br />
19
- * <br />
20
- * Do not confuse this class with {@link CKEDITOR.dom.event} which is
21
- * instead used for DOM events. The CKEDITOR.event class implements the
22
- * internal event system used by the CKEditor to fire API related events.
23
- * @example
24
- */
25
- CKEDITOR.event = function()
26
- {};
27
-
28
- /**
29
- * Implements the {@link CKEDITOR.event} features in an object.
30
- * @param {Object} targetObject The object into which implement the features.
31
- * @example
32
- * var myObject = { message : 'Example' };
33
- * <b>CKEDITOR.event.implementOn( myObject }</b>;
34
- * myObject.on( 'testEvent', function()
35
- * {
36
- * alert( this.message ); // "Example"
37
- * });
38
- * myObject.fire( 'testEvent' );
39
- */
40
- CKEDITOR.event.implementOn = function( targetObject )
41
- {
42
- var eventProto = CKEDITOR.event.prototype;
43
-
44
- for ( var prop in eventProto )
45
- {
46
- if ( targetObject[ prop ] == undefined )
47
- targetObject[ prop ] = eventProto[ prop ];
48
- }
49
- };
50
-
51
- CKEDITOR.event.prototype = (function()
52
- {
53
- // Returns the private events object for a given object.
54
- var getPrivate = function( obj )
55
- {
56
- var _ = ( obj.getPrivate && obj.getPrivate() ) || obj._ || ( obj._ = {} );
57
- return _.events || ( _.events = {} );
58
- };
59
-
60
- var eventEntry = function( eventName )
61
- {
62
- this.name = eventName;
63
- this.listeners = [];
64
- };
65
-
66
- eventEntry.prototype =
67
- {
68
- // Get the listener index for a specified function.
69
- // Returns -1 if not found.
70
- getListenerIndex : function( listenerFunction )
71
- {
72
- for ( var i = 0, listeners = this.listeners ; i < listeners.length ; i++ )
73
- {
74
- if ( listeners[i].fn == listenerFunction )
75
- return i;
76
- }
77
- return -1;
78
- }
79
- };
80
-
81
- return /** @lends CKEDITOR.event.prototype */ {
82
- /**
83
- * Registers a listener to a specific event in the current object.
84
- * @param {String} eventName The event name to which listen.
85
- * @param {Function} listenerFunction The function listening to the
86
- * event. A single {@link CKEDITOR.eventInfo} object instanced
87
- * is passed to this function containing all the event data.
88
- * @param {Object} [scopeObj] The object used to scope the listener
89
- * call (the this object. If omitted, the current object is used.
90
- * @param {Object} [listenerData] Data to be sent as the
91
- * {@link CKEDITOR.eventInfo#listenerData} when calling the
92
- * listener.
93
- * @param {Number} [priority] The listener priority. Lower priority
94
- * listeners are called first. Listeners with the same priority
95
- * value are called in registration order. Defaults to 10.
96
- * @example
97
- * someObject.on( 'someEvent', function()
98
- * {
99
- * alert( this == someObject ); // "true"
100
- * });
101
- * @example
102
- * someObject.on( 'someEvent', function()
103
- * {
104
- * alert( this == anotherObject ); // "true"
105
- * }
106
- * , anotherObject );
107
- * @example
108
- * someObject.on( 'someEvent', function( event )
109
- * {
110
- * alert( event.listenerData ); // "Example"
111
- * }
112
- * , null, 'Example' );
113
- * @example
114
- * someObject.on( 'someEvent', function() { ... } ); // 2nd called
115
- * someObject.on( 'someEvent', function() { ... }, null, null, 100 ); // 3rd called
116
- * someObject.on( 'someEvent', function() { ... }, null, null, 1 ); // 1st called
117
- */
118
- on : function( eventName, listenerFunction, scopeObj, listenerData, priority )
119
- {
120
- // Get the event entry (create it if needed).
121
- var events = getPrivate( this ),
122
- event = events[ eventName ] || ( events[ eventName ] = new eventEntry( eventName ) );
123
-
124
- if ( event.getListenerIndex( listenerFunction ) < 0 )
125
- {
126
- // Get the listeners.
127
- var listeners = event.listeners;
128
-
129
- // Fill the scope.
130
- if ( !scopeObj )
131
- scopeObj = this;
132
-
133
- // Default the priority, if needed.
134
- if ( isNaN( priority ) )
135
- priority = 10;
136
-
137
- var me = this;
138
-
139
- // Create the function to be fired for this listener.
140
- var listenerFirer = function( editor, publisherData, stopFn, cancelFn )
141
- {
142
- var ev =
143
- {
144
- name : eventName,
145
- sender : this,
146
- editor : editor,
147
- data : publisherData,
148
- listenerData : listenerData,
149
- stop : stopFn,
150
- cancel : cancelFn,
151
- removeListener : function()
152
- {
153
- me.removeListener( eventName, listenerFunction );
154
- }
155
- };
156
-
157
- listenerFunction.call( scopeObj, ev );
158
-
159
- return ev.data;
160
- };
161
- listenerFirer.fn = listenerFunction;
162
- listenerFirer.priority = priority;
163
-
164
- // Search for the right position for this new listener, based on its
165
- // priority.
166
- for ( var i = listeners.length - 1 ; i >= 0 ; i-- )
167
- {
168
- // Find the item which should be before the new one.
169
- if ( listeners[ i ].priority <= priority )
170
- {
171
- // Insert the listener in the array.
172
- listeners.splice( i + 1, 0, listenerFirer );
173
- return;
174
- }
175
- }
176
-
177
- // If no position has been found (or zero length), put it in
178
- // the front of list.
179
- listeners.unshift( listenerFirer );
180
- }
181
- },
182
-
183
- /**
184
- * Fires an specific event in the object. All registered listeners are
185
- * called at this point.
186
- * @function
187
- * @param {String} eventName The event name to fire.
188
- * @param {Object} [data] Data to be sent as the
189
- * {@link CKEDITOR.eventInfo#data} when calling the
190
- * listeners.
191
- * @param {CKEDITOR.editor} [editor] The editor instance to send as the
192
- * {@link CKEDITOR.eventInfo#editor} when calling the
193
- * listener.
194
- * @returns {Boolean|Object} A booloan indicating that the event is to be
195
- * canceled, or data returned by one of the listeners.
196
- * @example
197
- * someObject.on( 'someEvent', function() { ... } );
198
- * someObject.on( 'someEvent', function() { ... } );
199
- * <b>someObject.fire( 'someEvent' )</b>; // both listeners are called
200
- * @example
201
- * someObject.on( 'someEvent', function( event )
202
- * {
203
- * alert( event.data ); // "Example"
204
- * });
205
- * <b>someObject.fire( 'someEvent', 'Example' )</b>;
206
- */
207
- fire : (function()
208
- {
209
- // Create the function that marks the event as stopped.
210
- var stopped = false;
211
- var stopEvent = function()
212
- {
213
- stopped = true;
214
- };
215
-
216
- // Create the function that marks the event as canceled.
217
- var canceled = false;
218
- var cancelEvent = function()
219
- {
220
- canceled = true;
221
- };
222
-
223
- return function( eventName, data, editor )
224
- {
225
- // Get the event entry.
226
- var event = getPrivate( this )[ eventName ];
227
-
228
- // Save the previous stopped and cancelled states. We may
229
- // be nesting fire() calls.
230
- var previousStopped = stopped,
231
- previousCancelled = canceled;
232
-
233
- // Reset the stopped and canceled flags.
234
- stopped = canceled = false;
235
-
236
- if ( event )
237
- {
238
- var listeners = event.listeners;
239
-
240
- if ( listeners.length )
241
- {
242
- // As some listeners may remove themselves from the
243
- // event, the original array length is dinamic. So,
244
- // let's make a copy of all listeners, so we are
245
- // sure we'll call all of them.
246
- listeners = listeners.slice( 0 );
247
-
248
- // Loop through all listeners.
249
- for ( var i = 0 ; i < listeners.length ; i++ )
250
- {
251
- // Call the listener, passing the event data.
252
- var retData = listeners[i].call( this, editor, data, stopEvent, cancelEvent );
253
-
254
- if ( typeof retData != 'undefined' )
255
- data = retData;
256
-
257
- // No further calls is stopped or canceled.
258
- if ( stopped || canceled )
259
- break;
260
- }
261
- }
262
- }
263
-
264
- var ret = canceled || ( typeof data == 'undefined' ? false : data );
265
-
266
- // Restore the previous stopped and canceled states.
267
- stopped = previousStopped;
268
- canceled = previousCancelled;
269
-
270
- return ret;
271
- };
272
- })(),
273
-
274
- /**
275
- * Fires an specific event in the object, releasing all listeners
276
- * registered to that event. The same listeners are not called again on
277
- * successive calls of it or of {@link #fire}.
278
- * @param {String} eventName The event name to fire.
279
- * @param {Object} [data] Data to be sent as the
280
- * {@link CKEDITOR.eventInfo#data} when calling the
281
- * listeners.
282
- * @param {CKEDITOR.editor} [editor] The editor instance to send as the
283
- * {@link CKEDITOR.eventInfo#editor} when calling the
284
- * listener.
285
- * @returns {Boolean|Object} A booloan indicating that the event is to be
286
- * canceled, or data returned by one of the listeners.
287
- * @example
288
- * someObject.on( 'someEvent', function() { ... } );
289
- * someObject.fire( 'someEvent' ); // above listener called
290
- * <b>someObject.fireOnce( 'someEvent' )</b>; // above listener called
291
- * someObject.fire( 'someEvent' ); // no listeners called
292
- */
293
- fireOnce : function( eventName, data, editor )
294
- {
295
- var ret = this.fire( eventName, data, editor );
296
- delete getPrivate( this )[ eventName ];
297
- return ret;
298
- },
299
-
300
- /**
301
- * Unregisters a listener function from being called at the specified
302
- * event. No errors are thrown if the listener has not been
303
- * registered previously.
304
- * @param {String} eventName The event name.
305
- * @param {Function} listenerFunction The listener function to unregister.
306
- * @example
307
- * var myListener = function() { ... };
308
- * someObject.on( 'someEvent', myListener );
309
- * someObject.fire( 'someEvent' ); // myListener called
310
- * <b>someObject.removeListener( 'someEvent', myListener )</b>;
311
- * someObject.fire( 'someEvent' ); // myListener not called
312
- */
313
- removeListener : function( eventName, listenerFunction )
314
- {
315
- // Get the event entry.
316
- var event = getPrivate( this )[ eventName ];
317
-
318
- if ( event )
319
- {
320
- var index = event.getListenerIndex( listenerFunction );
321
- if ( index >= 0 )
322
- event.listeners.splice( index, 1 );
323
- }
324
- },
325
-
326
- /**
327
- * Checks if there is any listener registered to a given event.
328
- * @param {String} eventName The event name.
329
- * @example
330
- * var myListener = function() { ... };
331
- * someObject.on( 'someEvent', myListener );
332
- * alert( someObject.<b>hasListeners( 'someEvent' )</b> ); // "true"
333
- * alert( someObject.<b>hasListeners( 'noEvent' )</b> ); // "false"
334
- */
335
- hasListeners : function( eventName )
336
- {
337
- var event = getPrivate( this )[ eventName ];
338
- return ( event && event.listeners.length > 0 ) ;
339
- }
340
- };
341
- })();
342
- }
1
+ /*
2
+ Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ /**
7
+ * @fileOverview Defines the {@link CKEDITOR.event} class, which serves as the
8
+ * base for classes and objects that require event handling features.
9
+ */
10
+
11
+ if ( !CKEDITOR.event )
12
+ {
13
+ /**
14
+ * Creates an event class instance. This constructor is rearely used, being
15
+ * the {@link #.implementOn} function used in class prototypes directly
16
+ * instead.
17
+ * @class This is a base class for classes and objects that require event
18
+ * handling features.<br />
19
+ * <br />
20
+ * Do not confuse this class with {@link CKEDITOR.dom.event} which is
21
+ * instead used for DOM events. The CKEDITOR.event class implements the
22
+ * internal event system used by the CKEditor to fire API related events.
23
+ * @example
24
+ */
25
+ CKEDITOR.event = function()
26
+ {};
27
+
28
+ /**
29
+ * Implements the {@link CKEDITOR.event} features in an object.
30
+ * @param {Object} targetObject The object into which implement the features.
31
+ * @example
32
+ * var myObject = { message : 'Example' };
33
+ * <b>CKEDITOR.event.implementOn( myObject }</b>;
34
+ * myObject.on( 'testEvent', function()
35
+ * {
36
+ * alert( this.message ); // "Example"
37
+ * });
38
+ * myObject.fire( 'testEvent' );
39
+ */
40
+ CKEDITOR.event.implementOn = function( targetObject )
41
+ {
42
+ var eventProto = CKEDITOR.event.prototype;
43
+
44
+ for ( var prop in eventProto )
45
+ {
46
+ if ( targetObject[ prop ] == undefined )
47
+ targetObject[ prop ] = eventProto[ prop ];
48
+ }
49
+ };
50
+
51
+ CKEDITOR.event.prototype = (function()
52
+ {
53
+ // Returns the private events object for a given object.
54
+ var getPrivate = function( obj )
55
+ {
56
+ var _ = ( obj.getPrivate && obj.getPrivate() ) || obj._ || ( obj._ = {} );
57
+ return _.events || ( _.events = {} );
58
+ };
59
+
60
+ var eventEntry = function( eventName )
61
+ {
62
+ this.name = eventName;
63
+ this.listeners = [];
64
+ };
65
+
66
+ eventEntry.prototype =
67
+ {
68
+ // Get the listener index for a specified function.
69
+ // Returns -1 if not found.
70
+ getListenerIndex : function( listenerFunction )
71
+ {
72
+ for ( var i = 0, listeners = this.listeners ; i < listeners.length ; i++ )
73
+ {
74
+ if ( listeners[i].fn == listenerFunction )
75
+ return i;
76
+ }
77
+ return -1;
78
+ }
79
+ };
80
+
81
+ return /** @lends CKEDITOR.event.prototype */ {
82
+ /**
83
+ * Registers a listener to a specific event in the current object.
84
+ * @param {String} eventName The event name to which listen.
85
+ * @param {Function} listenerFunction The function listening to the
86
+ * event. A single {@link CKEDITOR.eventInfo} object instanced
87
+ * is passed to this function containing all the event data.
88
+ * @param {Object} [scopeObj] The object used to scope the listener
89
+ * call (the this object. If omitted, the current object is used.
90
+ * @param {Object} [listenerData] Data to be sent as the
91
+ * {@link CKEDITOR.eventInfo#listenerData} when calling the
92
+ * listener.
93
+ * @param {Number} [priority] The listener priority. Lower priority
94
+ * listeners are called first. Listeners with the same priority
95
+ * value are called in registration order. Defaults to 10.
96
+ * @example
97
+ * someObject.on( 'someEvent', function()
98
+ * {
99
+ * alert( this == someObject ); // "true"
100
+ * });
101
+ * @example
102
+ * someObject.on( 'someEvent', function()
103
+ * {
104
+ * alert( this == anotherObject ); // "true"
105
+ * }
106
+ * , anotherObject );
107
+ * @example
108
+ * someObject.on( 'someEvent', function( event )
109
+ * {
110
+ * alert( event.listenerData ); // "Example"
111
+ * }
112
+ * , null, 'Example' );
113
+ * @example
114
+ * someObject.on( 'someEvent', function() { ... } ); // 2nd called
115
+ * someObject.on( 'someEvent', function() { ... }, null, null, 100 ); // 3rd called
116
+ * someObject.on( 'someEvent', function() { ... }, null, null, 1 ); // 1st called
117
+ */
118
+ on : function( eventName, listenerFunction, scopeObj, listenerData, priority )
119
+ {
120
+ // Get the event entry (create it if needed).
121
+ var events = getPrivate( this ),
122
+ event = events[ eventName ] || ( events[ eventName ] = new eventEntry( eventName ) );
123
+
124
+ if ( event.getListenerIndex( listenerFunction ) < 0 )
125
+ {
126
+ // Get the listeners.
127
+ var listeners = event.listeners;
128
+
129
+ // Fill the scope.
130
+ if ( !scopeObj )
131
+ scopeObj = this;
132
+
133
+ // Default the priority, if needed.
134
+ if ( isNaN( priority ) )
135
+ priority = 10;
136
+
137
+ var me = this;
138
+
139
+ // Create the function to be fired for this listener.
140
+ var listenerFirer = function( editor, publisherData, stopFn, cancelFn )
141
+ {
142
+ var ev =
143
+ {
144
+ name : eventName,
145
+ sender : this,
146
+ editor : editor,
147
+ data : publisherData,
148
+ listenerData : listenerData,
149
+ stop : stopFn,
150
+ cancel : cancelFn,
151
+ removeListener : function()
152
+ {
153
+ me.removeListener( eventName, listenerFunction );
154
+ }
155
+ };
156
+
157
+ listenerFunction.call( scopeObj, ev );
158
+
159
+ return ev.data;
160
+ };
161
+ listenerFirer.fn = listenerFunction;
162
+ listenerFirer.priority = priority;
163
+
164
+ // Search for the right position for this new listener, based on its
165
+ // priority.
166
+ for ( var i = listeners.length - 1 ; i >= 0 ; i-- )
167
+ {
168
+ // Find the item which should be before the new one.
169
+ if ( listeners[ i ].priority <= priority )
170
+ {
171
+ // Insert the listener in the array.
172
+ listeners.splice( i + 1, 0, listenerFirer );
173
+ return;
174
+ }
175
+ }
176
+
177
+ // If no position has been found (or zero length), put it in
178
+ // the front of list.
179
+ listeners.unshift( listenerFirer );
180
+ }
181
+ },
182
+
183
+ /**
184
+ * Fires an specific event in the object. All registered listeners are
185
+ * called at this point.
186
+ * @function
187
+ * @param {String} eventName The event name to fire.
188
+ * @param {Object} [data] Data to be sent as the
189
+ * {@link CKEDITOR.eventInfo#data} when calling the
190
+ * listeners.
191
+ * @param {CKEDITOR.editor} [editor] The editor instance to send as the
192
+ * {@link CKEDITOR.eventInfo#editor} when calling the
193
+ * listener.
194
+ * @returns {Boolean|Object} A booloan indicating that the event is to be
195
+ * canceled, or data returned by one of the listeners.
196
+ * @example
197
+ * someObject.on( 'someEvent', function() { ... } );
198
+ * someObject.on( 'someEvent', function() { ... } );
199
+ * <b>someObject.fire( 'someEvent' )</b>; // both listeners are called
200
+ * @example
201
+ * someObject.on( 'someEvent', function( event )
202
+ * {
203
+ * alert( event.data ); // "Example"
204
+ * });
205
+ * <b>someObject.fire( 'someEvent', 'Example' )</b>;
206
+ */
207
+ fire : (function()
208
+ {
209
+ // Create the function that marks the event as stopped.
210
+ var stopped = false;
211
+ var stopEvent = function()
212
+ {
213
+ stopped = true;
214
+ };
215
+
216
+ // Create the function that marks the event as canceled.
217
+ var canceled = false;
218
+ var cancelEvent = function()
219
+ {
220
+ canceled = true;
221
+ };
222
+
223
+ return function( eventName, data, editor )
224
+ {
225
+ // Get the event entry.
226
+ var event = getPrivate( this )[ eventName ];
227
+
228
+ // Save the previous stopped and cancelled states. We may
229
+ // be nesting fire() calls.
230
+ var previousStopped = stopped,
231
+ previousCancelled = canceled;
232
+
233
+ // Reset the stopped and canceled flags.
234
+ stopped = canceled = false;
235
+
236
+ if ( event )
237
+ {
238
+ var listeners = event.listeners;
239
+
240
+ if ( listeners.length )
241
+ {
242
+ // As some listeners may remove themselves from the
243
+ // event, the original array length is dinamic. So,
244
+ // let's make a copy of all listeners, so we are
245
+ // sure we'll call all of them.
246
+ listeners = listeners.slice( 0 );
247
+
248
+ // Loop through all listeners.
249
+ for ( var i = 0 ; i < listeners.length ; i++ )
250
+ {
251
+ // Call the listener, passing the event data.
252
+ var retData = listeners[i].call( this, editor, data, stopEvent, cancelEvent );
253
+
254
+ if ( typeof retData != 'undefined' )
255
+ data = retData;
256
+
257
+ // No further calls is stopped or canceled.
258
+ if ( stopped || canceled )
259
+ break;
260
+ }
261
+ }
262
+ }
263
+
264
+ var ret = canceled || ( typeof data == 'undefined' ? false : data );
265
+
266
+ // Restore the previous stopped and canceled states.
267
+ stopped = previousStopped;
268
+ canceled = previousCancelled;
269
+
270
+ return ret;
271
+ };
272
+ })(),
273
+
274
+ /**
275
+ * Fires an specific event in the object, releasing all listeners
276
+ * registered to that event. The same listeners are not called again on
277
+ * successive calls of it or of {@link #fire}.
278
+ * @param {String} eventName The event name to fire.
279
+ * @param {Object} [data] Data to be sent as the
280
+ * {@link CKEDITOR.eventInfo#data} when calling the
281
+ * listeners.
282
+ * @param {CKEDITOR.editor} [editor] The editor instance to send as the
283
+ * {@link CKEDITOR.eventInfo#editor} when calling the
284
+ * listener.
285
+ * @returns {Boolean|Object} A booloan indicating that the event is to be
286
+ * canceled, or data returned by one of the listeners.
287
+ * @example
288
+ * someObject.on( 'someEvent', function() { ... } );
289
+ * someObject.fire( 'someEvent' ); // above listener called
290
+ * <b>someObject.fireOnce( 'someEvent' )</b>; // above listener called
291
+ * someObject.fire( 'someEvent' ); // no listeners called
292
+ */
293
+ fireOnce : function( eventName, data, editor )
294
+ {
295
+ var ret = this.fire( eventName, data, editor );
296
+ delete getPrivate( this )[ eventName ];
297
+ return ret;
298
+ },
299
+
300
+ /**
301
+ * Unregisters a listener function from being called at the specified
302
+ * event. No errors are thrown if the listener has not been
303
+ * registered previously.
304
+ * @param {String} eventName The event name.
305
+ * @param {Function} listenerFunction The listener function to unregister.
306
+ * @example
307
+ * var myListener = function() { ... };
308
+ * someObject.on( 'someEvent', myListener );
309
+ * someObject.fire( 'someEvent' ); // myListener called
310
+ * <b>someObject.removeListener( 'someEvent', myListener )</b>;
311
+ * someObject.fire( 'someEvent' ); // myListener not called
312
+ */
313
+ removeListener : function( eventName, listenerFunction )
314
+ {
315
+ // Get the event entry.
316
+ var event = getPrivate( this )[ eventName ];
317
+
318
+ if ( event )
319
+ {
320
+ var index = event.getListenerIndex( listenerFunction );
321
+ if ( index >= 0 )
322
+ event.listeners.splice( index, 1 );
323
+ }
324
+ },
325
+
326
+ /**
327
+ * Checks if there is any listener registered to a given event.
328
+ * @param {String} eventName The event name.
329
+ * @example
330
+ * var myListener = function() { ... };
331
+ * someObject.on( 'someEvent', myListener );
332
+ * alert( someObject.<b>hasListeners( 'someEvent' )</b> ); // "true"
333
+ * alert( someObject.<b>hasListeners( 'noEvent' )</b> ); // "false"
334
+ */
335
+ hasListeners : function( eventName )
336
+ {
337
+ var event = getPrivate( this )[ eventName ];
338
+ return ( event && event.listeners.length > 0 ) ;
339
+ }
340
+ };
341
+ })();
342
+ }