esp-ckeditor 0.1.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 (340) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +32 -0
  3. data/Rakefile +28 -0
  4. data/app/assets/javascripts/esp-ckeditor/_source/core/_bootstrap.js +87 -0
  5. data/app/assets/javascripts/esp-ckeditor/_source/core/ckeditor.js +141 -0
  6. data/app/assets/javascripts/esp-ckeditor/_source/core/ckeditor_base.js +227 -0
  7. data/app/assets/javascripts/esp-ckeditor/_source/core/ckeditor_basic.js +238 -0
  8. data/app/assets/javascripts/esp-ckeditor/_source/core/command.js +209 -0
  9. data/app/assets/javascripts/esp-ckeditor/_source/core/commanddefinition.js +129 -0
  10. data/app/assets/javascripts/esp-ckeditor/_source/core/config.js +423 -0
  11. data/app/assets/javascripts/esp-ckeditor/_source/core/dataprocessor.js +65 -0
  12. data/app/assets/javascripts/esp-ckeditor/_source/core/dom/comment.js +32 -0
  13. data/app/assets/javascripts/esp-ckeditor/_source/core/dom/document.js +251 -0
  14. data/app/assets/javascripts/esp-ckeditor/_source/core/dom/documentfragment.js +49 -0
  15. data/app/assets/javascripts/esp-ckeditor/_source/core/dom/domobject.js +258 -0
  16. data/app/assets/javascripts/esp-ckeditor/_source/core/dom/element.js +1691 -0
  17. data/app/assets/javascripts/esp-ckeditor/_source/core/dom/elementpath.js +119 -0
  18. data/app/assets/javascripts/esp-ckeditor/_source/core/dom/event.js +145 -0
  19. data/app/assets/javascripts/esp-ckeditor/_source/core/dom/node.js +696 -0
  20. data/app/assets/javascripts/esp-ckeditor/_source/core/dom/nodelist.js +26 -0
  21. data/app/assets/javascripts/esp-ckeditor/_source/core/dom/range.js +2054 -0
  22. data/app/assets/javascripts/esp-ckeditor/_source/core/dom/rangelist.js +213 -0
  23. data/app/assets/javascripts/esp-ckeditor/_source/core/dom/text.js +128 -0
  24. data/app/assets/javascripts/esp-ckeditor/_source/core/dom/walker.js +462 -0
  25. data/app/assets/javascripts/esp-ckeditor/_source/core/dom/window.js +96 -0
  26. data/app/assets/javascripts/esp-ckeditor/_source/core/dom.js +20 -0
  27. data/app/assets/javascripts/esp-ckeditor/_source/core/dtd.js +266 -0
  28. data/app/assets/javascripts/esp-ckeditor/_source/core/editor.js +1060 -0
  29. data/app/assets/javascripts/esp-ckeditor/_source/core/editor_basic.js +186 -0
  30. data/app/assets/javascripts/esp-ckeditor/_source/core/env.js +305 -0
  31. data/app/assets/javascripts/esp-ckeditor/_source/core/event.js +342 -0
  32. data/app/assets/javascripts/esp-ckeditor/_source/core/eventInfo.js +120 -0
  33. data/app/assets/javascripts/esp-ckeditor/_source/core/focusmanager.js +152 -0
  34. data/app/assets/javascripts/esp-ckeditor/_source/core/htmlparser/basicwriter.js +145 -0
  35. data/app/assets/javascripts/esp-ckeditor/_source/core/htmlparser/cdata.js +43 -0
  36. data/app/assets/javascripts/esp-ckeditor/_source/core/htmlparser/comment.js +60 -0
  37. data/app/assets/javascripts/esp-ckeditor/_source/core/htmlparser/element.js +308 -0
  38. data/app/assets/javascripts/esp-ckeditor/_source/core/htmlparser/filter.js +288 -0
  39. data/app/assets/javascripts/esp-ckeditor/_source/core/htmlparser/fragment.js +518 -0
  40. data/app/assets/javascripts/esp-ckeditor/_source/core/htmlparser/text.js +53 -0
  41. data/app/assets/javascripts/esp-ckeditor/_source/core/htmlparser.js +224 -0
  42. data/app/assets/javascripts/esp-ckeditor/_source/core/lang.js +157 -0
  43. data/app/assets/javascripts/esp-ckeditor/_source/core/loader.js +240 -0
  44. data/app/assets/javascripts/esp-ckeditor/_source/core/plugindefinition.js +83 -0
  45. data/app/assets/javascripts/esp-ckeditor/_source/core/plugins.js +103 -0
  46. data/app/assets/javascripts/esp-ckeditor/_source/core/resourcemanager.js +238 -0
  47. data/app/assets/javascripts/esp-ckeditor/_source/core/scriptloader.js +180 -0
  48. data/app/assets/javascripts/esp-ckeditor/_source/core/skins.js +184 -0
  49. data/app/assets/javascripts/esp-ckeditor/_source/core/themes.js +19 -0
  50. data/app/assets/javascripts/esp-ckeditor/_source/core/tools.js +763 -0
  51. data/app/assets/javascripts/esp-ckeditor/_source/core/ui.js +128 -0
  52. data/app/assets/javascripts/esp-ckeditor/_source/lang/_languages.js +27 -0
  53. data/app/assets/javascripts/esp-ckeditor/_source/lang/en.js +815 -0
  54. data/app/assets/javascripts/esp-ckeditor/_source/lang/ru.js +815 -0
  55. data/app/assets/javascripts/esp-ckeditor/_source/plugins/a11yhelp/dialogs/a11yhelp.js +222 -0
  56. data/app/assets/javascripts/esp-ckeditor/_source/plugins/a11yhelp/lang/en.js +108 -0
  57. data/app/assets/javascripts/esp-ckeditor/_source/plugins/a11yhelp/lang/he.js +216 -0
  58. data/app/assets/javascripts/esp-ckeditor/_source/plugins/a11yhelp/plugin.js +47 -0
  59. data/app/assets/javascripts/esp-ckeditor/_source/plugins/basicstyles/plugin.js +129 -0
  60. data/app/assets/javascripts/esp-ckeditor/_source/plugins/button/plugin.js +290 -0
  61. data/app/assets/javascripts/esp-ckeditor/_source/plugins/clipboard/dialogs/paste.js +223 -0
  62. data/app/assets/javascripts/esp-ckeditor/_source/plugins/clipboard/plugin.js +453 -0
  63. data/app/assets/javascripts/esp-ckeditor/_source/plugins/contextmenu/plugin.js +179 -0
  64. data/app/assets/javascripts/esp-ckeditor/_source/plugins/dialog/dialogDefinition.js +1166 -0
  65. data/app/assets/javascripts/esp-ckeditor/_source/plugins/dialog/plugin.js +3308 -0
  66. data/app/assets/javascripts/esp-ckeditor/_source/plugins/dialogadvtab/plugin.js +208 -0
  67. data/app/assets/javascripts/esp-ckeditor/_source/plugins/dialogui/plugin.js +1541 -0
  68. data/app/assets/javascripts/esp-ckeditor/_source/plugins/domiterator/plugin.js +361 -0
  69. data/app/assets/javascripts/esp-ckeditor/_source/plugins/editingblock/plugin.js +278 -0
  70. data/app/assets/javascripts/esp-ckeditor/_source/plugins/elementspath/plugin.js +218 -0
  71. data/app/assets/javascripts/esp-ckeditor/_source/plugins/enterkey/plugin.js +433 -0
  72. data/app/assets/javascripts/esp-ckeditor/_source/plugins/entities/plugin.js +250 -0
  73. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_attachment/dialogs/esp_attachment.js +234 -0
  74. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_attachment/images/esp_attachment.png +0 -0
  75. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_attachment/lang/en.js +22 -0
  76. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_attachment/lang/ru.js +22 -0
  77. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_attachment/lang/uk.js +22 -0
  78. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_attachment/plugin.js +23 -0
  79. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_audio/dialogs/esp_audio.js +207 -0
  80. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_audio/images/esp_audio.png +0 -0
  81. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_audio/images/placeholder.png +0 -0
  82. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_audio/lang/en.js +18 -0
  83. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_audio/lang/ru.js +18 -0
  84. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_audio/lang/uk.js +18 -0
  85. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_audio/plugin.js +182 -0
  86. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_blockquote/dialogs/esp_blockquote.js +132 -0
  87. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_blockquote/plugin.js +235 -0
  88. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_image/dialogs/esp_image.js +1414 -0
  89. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_image/images/esp_image.png +0 -0
  90. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_image/lang/en.js +9 -0
  91. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_image/lang/ru.js +9 -0
  92. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_image/lang/uk.js +9 -0
  93. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_image/plugin.js +80 -0
  94. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_link/dialogs/esp_anchor.js +145 -0
  95. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_link/dialogs/esp_link.js +1396 -0
  96. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_link/images/anchor.png +0 -0
  97. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_link/images/esp_anchor.png +0 -0
  98. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_link/images/esp_link.png +0 -0
  99. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_link/images/esp_unlink.png +0 -0
  100. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_link/lang/en.js +8 -0
  101. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_link/lang/ru.js +8 -0
  102. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_link/lang/uk.js +8 -0
  103. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_link/plugin.js +379 -0
  104. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_showblocks/images/block_address.png +0 -0
  105. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_showblocks/images/block_blockquote.png +0 -0
  106. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_showblocks/images/block_div.png +0 -0
  107. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_showblocks/images/block_h1.png +0 -0
  108. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_showblocks/images/block_h2.png +0 -0
  109. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_showblocks/images/block_h3.png +0 -0
  110. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_showblocks/images/block_h4.png +0 -0
  111. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_showblocks/images/block_h5.png +0 -0
  112. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_showblocks/images/block_h6.png +0 -0
  113. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_showblocks/images/block_p.png +0 -0
  114. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_showblocks/images/block_pre.png +0 -0
  115. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_showblocks/images/esp_showblocks.png +0 -0
  116. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_showblocks/plugin.js +163 -0
  117. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_video/dialogs/esp_video.js +277 -0
  118. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_video/images/esp_video.png +0 -0
  119. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_video/images/placeholder.png +0 -0
  120. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_video/lang/en.js +19 -0
  121. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_video/lang/ru.js +19 -0
  122. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_video/lang/uk.js +19 -0
  123. data/app/assets/javascripts/esp-ckeditor/_source/plugins/esp_video/plugin.js +182 -0
  124. data/app/assets/javascripts/esp-ckeditor/_source/plugins/fakeobjects/plugin.js +175 -0
  125. data/app/assets/javascripts/esp-ckeditor/_source/plugins/filebrowser/plugin.js +534 -0
  126. data/app/assets/javascripts/esp-ckeditor/_source/plugins/find/dialogs/find.js +915 -0
  127. data/app/assets/javascripts/esp-ckeditor/_source/plugins/find/plugin.js +47 -0
  128. data/app/assets/javascripts/esp-ckeditor/_source/plugins/floatpanel/plugin.js +428 -0
  129. data/app/assets/javascripts/esp-ckeditor/_source/plugins/format/plugin.js +197 -0
  130. data/app/assets/javascripts/esp-ckeditor/_source/plugins/htmldataprocessor/plugin.js +596 -0
  131. data/app/assets/javascripts/esp-ckeditor/_source/plugins/htmlwriter/plugin.js +319 -0
  132. data/app/assets/javascripts/esp-ckeditor/_source/plugins/image/dialogs/image.js +1407 -0
  133. data/app/assets/javascripts/esp-ckeditor/_source/plugins/image/plugin.js +81 -0
  134. data/app/assets/javascripts/esp-ckeditor/_source/plugins/indent/plugin.js +461 -0
  135. data/app/assets/javascripts/esp-ckeditor/_source/plugins/justify/plugin.js +253 -0
  136. data/app/assets/javascripts/esp-ckeditor/_source/plugins/keystrokes/plugin.js +225 -0
  137. data/app/assets/javascripts/esp-ckeditor/_source/plugins/list/plugin.js +774 -0
  138. data/app/assets/javascripts/esp-ckeditor/_source/plugins/listblock/plugin.js +266 -0
  139. data/app/assets/javascripts/esp-ckeditor/_source/plugins/liststyle/dialogs/liststyle.js +225 -0
  140. data/app/assets/javascripts/esp-ckeditor/_source/plugins/liststyle/plugin.js +66 -0
  141. data/app/assets/javascripts/esp-ckeditor/_source/plugins/maximize/plugin.js +353 -0
  142. data/app/assets/javascripts/esp-ckeditor/_source/plugins/menu/plugin.js +541 -0
  143. data/app/assets/javascripts/esp-ckeditor/_source/plugins/panel/plugin.js +400 -0
  144. data/app/assets/javascripts/esp-ckeditor/_source/plugins/pastefromword/filter/default.js +1367 -0
  145. data/app/assets/javascripts/esp-ckeditor/_source/plugins/pastefromword/plugin.js +141 -0
  146. data/app/assets/javascripts/esp-ckeditor/_source/plugins/pastetext/dialogs/pastetext.js +67 -0
  147. data/app/assets/javascripts/esp-ckeditor/_source/plugins/pastetext/plugin.js +98 -0
  148. data/app/assets/javascripts/esp-ckeditor/_source/plugins/popup/plugin.js +64 -0
  149. data/app/assets/javascripts/esp-ckeditor/_source/plugins/removeformat/plugin.js +185 -0
  150. data/app/assets/javascripts/esp-ckeditor/_source/plugins/resize/plugin.js +168 -0
  151. data/app/assets/javascripts/esp-ckeditor/_source/plugins/richcombo/plugin.js +381 -0
  152. data/app/assets/javascripts/esp-ckeditor/_source/plugins/selection/plugin.js +1729 -0
  153. data/app/assets/javascripts/esp-ckeditor/_source/plugins/showborders/plugin.js +207 -0
  154. data/app/assets/javascripts/esp-ckeditor/_source/plugins/sourcearea/plugin.js +209 -0
  155. data/app/assets/javascripts/esp-ckeditor/_source/plugins/styles/plugin.js +1700 -0
  156. data/app/assets/javascripts/esp-ckeditor/_source/plugins/styles/styles/default.js +88 -0
  157. data/app/assets/javascripts/esp-ckeditor/_source/plugins/stylescombo/plugin.js +218 -0
  158. data/app/assets/javascripts/esp-ckeditor/_source/plugins/tab/plugin.js +367 -0
  159. data/app/assets/javascripts/esp-ckeditor/_source/plugins/table/dialogs/table.js +623 -0
  160. data/app/assets/javascripts/esp-ckeditor/_source/plugins/table/plugin.js +78 -0
  161. data/app/assets/javascripts/esp-ckeditor/_source/plugins/tabletools/dialogs/tableCell.js +525 -0
  162. data/app/assets/javascripts/esp-ckeditor/_source/plugins/tabletools/plugin.js +1194 -0
  163. data/app/assets/javascripts/esp-ckeditor/_source/plugins/toolbar/plugin.js +545 -0
  164. data/app/assets/javascripts/esp-ckeditor/_source/plugins/undo/plugin.js +578 -0
  165. data/app/assets/javascripts/esp-ckeditor/_source/plugins/wysiwygarea/plugin.js +1347 -0
  166. data/app/assets/javascripts/esp-ckeditor/_source/skins/kama/dialog.css +988 -0
  167. data/app/assets/javascripts/esp-ckeditor/_source/skins/kama/editor.css +25 -0
  168. data/app/assets/javascripts/esp-ckeditor/_source/skins/kama/elementspath.css +73 -0
  169. data/app/assets/javascripts/esp-ckeditor/_source/skins/kama/icons.css +367 -0
  170. data/app/assets/javascripts/esp-ckeditor/_source/skins/kama/icons.png +0 -0
  171. data/app/assets/javascripts/esp-ckeditor/_source/skins/kama/icons_rtl.png +0 -0
  172. data/app/assets/javascripts/esp-ckeditor/_source/skins/kama/images/dialog_sides.gif +0 -0
  173. data/app/assets/javascripts/esp-ckeditor/_source/skins/kama/images/dialog_sides.png +0 -0
  174. data/app/assets/javascripts/esp-ckeditor/_source/skins/kama/images/dialog_sides_rtl.png +0 -0
  175. data/app/assets/javascripts/esp-ckeditor/_source/skins/kama/images/mini.gif +0 -0
  176. data/app/assets/javascripts/esp-ckeditor/_source/skins/kama/images/noimage.png +0 -0
  177. data/app/assets/javascripts/esp-ckeditor/_source/skins/kama/images/sprites.png +0 -0
  178. data/app/assets/javascripts/esp-ckeditor/_source/skins/kama/images/sprites_ie6.png +0 -0
  179. data/app/assets/javascripts/esp-ckeditor/_source/skins/kama/images/toolbar_start.gif +0 -0
  180. data/app/assets/javascripts/esp-ckeditor/_source/skins/kama/mainui.css +209 -0
  181. data/app/assets/javascripts/esp-ckeditor/_source/skins/kama/menu.css +232 -0
  182. data/app/assets/javascripts/esp-ckeditor/_source/skins/kama/panel.css +227 -0
  183. data/app/assets/javascripts/esp-ckeditor/_source/skins/kama/presets.css +49 -0
  184. data/app/assets/javascripts/esp-ckeditor/_source/skins/kama/reset.css +85 -0
  185. data/app/assets/javascripts/esp-ckeditor/_source/skins/kama/richcombo.css +287 -0
  186. data/app/assets/javascripts/esp-ckeditor/_source/skins/kama/skin.js +236 -0
  187. data/app/assets/javascripts/esp-ckeditor/_source/skins/kama/templates.css +88 -0
  188. data/app/assets/javascripts/esp-ckeditor/_source/skins/kama/toolbar.css +412 -0
  189. data/app/assets/javascripts/esp-ckeditor/_source/themes/default/theme.js +407 -0
  190. data/app/assets/javascripts/esp-ckeditor/application.js +8 -0
  191. data/app/assets/javascripts/esp-ckeditor/ckeditor.js +137 -0
  192. data/app/assets/javascripts/esp-ckeditor/ckeditor.pack +194 -0
  193. data/app/assets/javascripts/esp-ckeditor/ckeditor_source.js +35 -0
  194. data/app/assets/javascripts/esp-ckeditor/ckpackager.jar +0 -0
  195. data/app/assets/javascripts/esp-ckeditor/ckpackager.txt +2 -0
  196. data/app/assets/javascripts/esp-ckeditor/config.js +147 -0
  197. data/app/assets/javascripts/esp-ckeditor/contents.css +38 -0
  198. data/app/assets/javascripts/esp-ckeditor/images/spacer.gif +0 -0
  199. data/app/assets/javascripts/esp-ckeditor/init_ckeditor.js +1 -0
  200. data/app/assets/javascripts/esp-ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +1 -0
  201. data/app/assets/javascripts/esp-ckeditor/plugins/a11yhelp/lang/en.js +1 -0
  202. data/app/assets/javascripts/esp-ckeditor/plugins/a11yhelp/lang/he.js +1 -0
  203. data/app/assets/javascripts/esp-ckeditor/plugins/a11yhelp/plugin.js +1 -0
  204. data/app/assets/javascripts/esp-ckeditor/plugins/basicstyles/plugin.js +1 -0
  205. data/app/assets/javascripts/esp-ckeditor/plugins/button/plugin.js +1 -0
  206. data/app/assets/javascripts/esp-ckeditor/plugins/clipboard/dialogs/paste.js +1 -0
  207. data/app/assets/javascripts/esp-ckeditor/plugins/clipboard/plugin.js +1 -0
  208. data/app/assets/javascripts/esp-ckeditor/plugins/contextmenu/plugin.js +1 -0
  209. data/app/assets/javascripts/esp-ckeditor/plugins/dialog/dialogDefinition.js +0 -0
  210. data/app/assets/javascripts/esp-ckeditor/plugins/dialog/plugin.js +1 -0
  211. data/app/assets/javascripts/esp-ckeditor/plugins/dialogadvtab/plugin.js +1 -0
  212. data/app/assets/javascripts/esp-ckeditor/plugins/dialogui/plugin.js +1 -0
  213. data/app/assets/javascripts/esp-ckeditor/plugins/domiterator/plugin.js +1 -0
  214. data/app/assets/javascripts/esp-ckeditor/plugins/editingblock/plugin.js +1 -0
  215. data/app/assets/javascripts/esp-ckeditor/plugins/elementspath/plugin.js +1 -0
  216. data/app/assets/javascripts/esp-ckeditor/plugins/enterkey/plugin.js +1 -0
  217. data/app/assets/javascripts/esp-ckeditor/plugins/entities/plugin.js +1 -0
  218. data/app/assets/javascripts/esp-ckeditor/plugins/esp_attachment/dialogs/esp_attachment.js +1 -0
  219. data/app/assets/javascripts/esp-ckeditor/plugins/esp_attachment/images/esp_attachment.png +0 -0
  220. data/app/assets/javascripts/esp-ckeditor/plugins/esp_attachment/lang/en.js +1 -0
  221. data/app/assets/javascripts/esp-ckeditor/plugins/esp_attachment/lang/ru.js +1 -0
  222. data/app/assets/javascripts/esp-ckeditor/plugins/esp_attachment/lang/uk.js +1 -0
  223. data/app/assets/javascripts/esp-ckeditor/plugins/esp_attachment/plugin.js +1 -0
  224. data/app/assets/javascripts/esp-ckeditor/plugins/esp_audio/dialogs/esp_audio.js +1 -0
  225. data/app/assets/javascripts/esp-ckeditor/plugins/esp_audio/images/esp_audio.png +0 -0
  226. data/app/assets/javascripts/esp-ckeditor/plugins/esp_audio/images/placeholder.png +0 -0
  227. data/app/assets/javascripts/esp-ckeditor/plugins/esp_audio/lang/en.js +1 -0
  228. data/app/assets/javascripts/esp-ckeditor/plugins/esp_audio/lang/ru.js +1 -0
  229. data/app/assets/javascripts/esp-ckeditor/plugins/esp_audio/lang/uk.js +1 -0
  230. data/app/assets/javascripts/esp-ckeditor/plugins/esp_audio/plugin.js +1 -0
  231. data/app/assets/javascripts/esp-ckeditor/plugins/esp_blockquote/dialogs/esp_blockquote.js +1 -0
  232. data/app/assets/javascripts/esp-ckeditor/plugins/esp_blockquote/plugin.js +1 -0
  233. data/app/assets/javascripts/esp-ckeditor/plugins/esp_image/dialogs/esp_image.js +1 -0
  234. data/app/assets/javascripts/esp-ckeditor/plugins/esp_image/images/esp_image.png +0 -0
  235. data/app/assets/javascripts/esp-ckeditor/plugins/esp_image/lang/en.js +1 -0
  236. data/app/assets/javascripts/esp-ckeditor/plugins/esp_image/lang/ru.js +1 -0
  237. data/app/assets/javascripts/esp-ckeditor/plugins/esp_image/lang/uk.js +1 -0
  238. data/app/assets/javascripts/esp-ckeditor/plugins/esp_image/plugin.js +1 -0
  239. data/app/assets/javascripts/esp-ckeditor/plugins/esp_link/dialogs/esp_anchor.js +1 -0
  240. data/app/assets/javascripts/esp-ckeditor/plugins/esp_link/dialogs/esp_link.js +1 -0
  241. data/app/assets/javascripts/esp-ckeditor/plugins/esp_link/images/anchor.png +0 -0
  242. data/app/assets/javascripts/esp-ckeditor/plugins/esp_link/images/esp_anchor.png +0 -0
  243. data/app/assets/javascripts/esp-ckeditor/plugins/esp_link/images/esp_link.png +0 -0
  244. data/app/assets/javascripts/esp-ckeditor/plugins/esp_link/images/esp_unlink.png +0 -0
  245. data/app/assets/javascripts/esp-ckeditor/plugins/esp_link/lang/en.js +1 -0
  246. data/app/assets/javascripts/esp-ckeditor/plugins/esp_link/lang/ru.js +1 -0
  247. data/app/assets/javascripts/esp-ckeditor/plugins/esp_link/lang/uk.js +1 -0
  248. data/app/assets/javascripts/esp-ckeditor/plugins/esp_link/plugin.js +1 -0
  249. data/app/assets/javascripts/esp-ckeditor/plugins/esp_showblocks/images/block_address.png +0 -0
  250. data/app/assets/javascripts/esp-ckeditor/plugins/esp_showblocks/images/block_blockquote.png +0 -0
  251. data/app/assets/javascripts/esp-ckeditor/plugins/esp_showblocks/images/block_div.png +0 -0
  252. data/app/assets/javascripts/esp-ckeditor/plugins/esp_showblocks/images/block_h1.png +0 -0
  253. data/app/assets/javascripts/esp-ckeditor/plugins/esp_showblocks/images/block_h2.png +0 -0
  254. data/app/assets/javascripts/esp-ckeditor/plugins/esp_showblocks/images/block_h3.png +0 -0
  255. data/app/assets/javascripts/esp-ckeditor/plugins/esp_showblocks/images/block_h4.png +0 -0
  256. data/app/assets/javascripts/esp-ckeditor/plugins/esp_showblocks/images/block_h5.png +0 -0
  257. data/app/assets/javascripts/esp-ckeditor/plugins/esp_showblocks/images/block_h6.png +0 -0
  258. data/app/assets/javascripts/esp-ckeditor/plugins/esp_showblocks/images/block_p.png +0 -0
  259. data/app/assets/javascripts/esp-ckeditor/plugins/esp_showblocks/images/block_pre.png +0 -0
  260. data/app/assets/javascripts/esp-ckeditor/plugins/esp_showblocks/images/esp_showblocks.png +0 -0
  261. data/app/assets/javascripts/esp-ckeditor/plugins/esp_showblocks/plugin.js +1 -0
  262. data/app/assets/javascripts/esp-ckeditor/plugins/esp_video/dialogs/esp_video.js +1 -0
  263. data/app/assets/javascripts/esp-ckeditor/plugins/esp_video/images/esp_video.png +0 -0
  264. data/app/assets/javascripts/esp-ckeditor/plugins/esp_video/images/placeholder.png +0 -0
  265. data/app/assets/javascripts/esp-ckeditor/plugins/esp_video/lang/en.js +1 -0
  266. data/app/assets/javascripts/esp-ckeditor/plugins/esp_video/lang/ru.js +1 -0
  267. data/app/assets/javascripts/esp-ckeditor/plugins/esp_video/lang/uk.js +1 -0
  268. data/app/assets/javascripts/esp-ckeditor/plugins/esp_video/plugin.js +1 -0
  269. data/app/assets/javascripts/esp-ckeditor/plugins/fakeobjects/plugin.js +1 -0
  270. data/app/assets/javascripts/esp-ckeditor/plugins/filebrowser/plugin.js +1 -0
  271. data/app/assets/javascripts/esp-ckeditor/plugins/find/dialogs/find.js +1 -0
  272. data/app/assets/javascripts/esp-ckeditor/plugins/find/plugin.js +1 -0
  273. data/app/assets/javascripts/esp-ckeditor/plugins/floatpanel/plugin.js +1 -0
  274. data/app/assets/javascripts/esp-ckeditor/plugins/format/plugin.js +1 -0
  275. data/app/assets/javascripts/esp-ckeditor/plugins/htmldataprocessor/plugin.js +1 -0
  276. data/app/assets/javascripts/esp-ckeditor/plugins/htmlwriter/plugin.js +1 -0
  277. data/app/assets/javascripts/esp-ckeditor/plugins/image/dialogs/image.js +1 -0
  278. data/app/assets/javascripts/esp-ckeditor/plugins/image/plugin.js +1 -0
  279. data/app/assets/javascripts/esp-ckeditor/plugins/indent/plugin.js +1 -0
  280. data/app/assets/javascripts/esp-ckeditor/plugins/justify/plugin.js +1 -0
  281. data/app/assets/javascripts/esp-ckeditor/plugins/keystrokes/plugin.js +1 -0
  282. data/app/assets/javascripts/esp-ckeditor/plugins/list/plugin.js +1 -0
  283. data/app/assets/javascripts/esp-ckeditor/plugins/listblock/plugin.js +1 -0
  284. data/app/assets/javascripts/esp-ckeditor/plugins/liststyle/dialogs/liststyle.js +1 -0
  285. data/app/assets/javascripts/esp-ckeditor/plugins/liststyle/plugin.js +1 -0
  286. data/app/assets/javascripts/esp-ckeditor/plugins/maximize/plugin.js +1 -0
  287. data/app/assets/javascripts/esp-ckeditor/plugins/menu/plugin.js +1 -0
  288. data/app/assets/javascripts/esp-ckeditor/plugins/panel/plugin.js +1 -0
  289. data/app/assets/javascripts/esp-ckeditor/plugins/pastefromword/filter/default.js +1 -0
  290. data/app/assets/javascripts/esp-ckeditor/plugins/pastefromword/plugin.js +1 -0
  291. data/app/assets/javascripts/esp-ckeditor/plugins/pastetext/dialogs/pastetext.js +1 -0
  292. data/app/assets/javascripts/esp-ckeditor/plugins/pastetext/plugin.js +1 -0
  293. data/app/assets/javascripts/esp-ckeditor/plugins/popup/plugin.js +1 -0
  294. data/app/assets/javascripts/esp-ckeditor/plugins/removeformat/plugin.js +1 -0
  295. data/app/assets/javascripts/esp-ckeditor/plugins/resize/plugin.js +1 -0
  296. data/app/assets/javascripts/esp-ckeditor/plugins/richcombo/plugin.js +1 -0
  297. data/app/assets/javascripts/esp-ckeditor/plugins/selection/plugin.js +1 -0
  298. data/app/assets/javascripts/esp-ckeditor/plugins/showborders/plugin.js +1 -0
  299. data/app/assets/javascripts/esp-ckeditor/plugins/sourcearea/plugin.js +1 -0
  300. data/app/assets/javascripts/esp-ckeditor/plugins/styles/plugin.js +1 -0
  301. data/app/assets/javascripts/esp-ckeditor/plugins/styles/styles/default.js +1 -0
  302. data/app/assets/javascripts/esp-ckeditor/plugins/stylescombo/plugin.js +1 -0
  303. data/app/assets/javascripts/esp-ckeditor/plugins/tab/plugin.js +1 -0
  304. data/app/assets/javascripts/esp-ckeditor/plugins/table/dialogs/table.js +1 -0
  305. data/app/assets/javascripts/esp-ckeditor/plugins/table/plugin.js +1 -0
  306. data/app/assets/javascripts/esp-ckeditor/plugins/tabletools/dialogs/tableCell.js +1 -0
  307. data/app/assets/javascripts/esp-ckeditor/plugins/tabletools/plugin.js +1 -0
  308. data/app/assets/javascripts/esp-ckeditor/plugins/toolbar/plugin.js +1 -0
  309. data/app/assets/javascripts/esp-ckeditor/plugins/undo/plugin.js +1 -0
  310. data/app/assets/javascripts/esp-ckeditor/plugins/wysiwygarea/plugin.js +1 -0
  311. data/app/assets/javascripts/esp-ckeditor/skins/kama/dialog.css +988 -0
  312. data/app/assets/javascripts/esp-ckeditor/skins/kama/editor.css +25 -0
  313. data/app/assets/javascripts/esp-ckeditor/skins/kama/elementspath.css +73 -0
  314. data/app/assets/javascripts/esp-ckeditor/skins/kama/icons.css +367 -0
  315. data/app/assets/javascripts/esp-ckeditor/skins/kama/icons.png +0 -0
  316. data/app/assets/javascripts/esp-ckeditor/skins/kama/icons_rtl.png +0 -0
  317. data/app/assets/javascripts/esp-ckeditor/skins/kama/images/dialog_sides.gif +0 -0
  318. data/app/assets/javascripts/esp-ckeditor/skins/kama/images/dialog_sides.png +0 -0
  319. data/app/assets/javascripts/esp-ckeditor/skins/kama/images/dialog_sides_rtl.png +0 -0
  320. data/app/assets/javascripts/esp-ckeditor/skins/kama/images/mini.gif +0 -0
  321. data/app/assets/javascripts/esp-ckeditor/skins/kama/images/noimage.png +0 -0
  322. data/app/assets/javascripts/esp-ckeditor/skins/kama/images/sprites.png +0 -0
  323. data/app/assets/javascripts/esp-ckeditor/skins/kama/images/sprites_ie6.png +0 -0
  324. data/app/assets/javascripts/esp-ckeditor/skins/kama/images/toolbar_start.gif +0 -0
  325. data/app/assets/javascripts/esp-ckeditor/skins/kama/mainui.css +209 -0
  326. data/app/assets/javascripts/esp-ckeditor/skins/kama/menu.css +232 -0
  327. data/app/assets/javascripts/esp-ckeditor/skins/kama/panel.css +227 -0
  328. data/app/assets/javascripts/esp-ckeditor/skins/kama/presets.css +49 -0
  329. data/app/assets/javascripts/esp-ckeditor/skins/kama/reset.css +85 -0
  330. data/app/assets/javascripts/esp-ckeditor/skins/kama/richcombo.css +287 -0
  331. data/app/assets/javascripts/esp-ckeditor/skins/kama/skin.js +236 -0
  332. data/app/assets/javascripts/esp-ckeditor/skins/kama/templates.css +88 -0
  333. data/app/assets/javascripts/esp-ckeditor/skins/kama/toolbar.css +412 -0
  334. data/app/inputs/ckeditor_input.rb +42 -0
  335. data/config/routes.rb +2 -0
  336. data/lib/esp-ckeditor/engine.rb +9 -0
  337. data/lib/esp-ckeditor/version.rb +3 -0
  338. data/lib/esp-ckeditor.rb +17 -0
  339. data/lib/tasks/esp-ckeditor_tasks.rake +4 -0
  340. metadata +434 -0
@@ -0,0 +1,32 @@
1
+ /*
2
+ Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ /**
7
+ * @fileOverview Defines the {@link CKEDITOR.dom.comment} class, which represents
8
+ * a DOM comment node.
9
+ */
10
+
11
+ CKEDITOR.dom.comment = CKEDITOR.tools.createClass(
12
+ {
13
+ base : CKEDITOR.dom.node,
14
+
15
+ $ : function( text, ownerDocument )
16
+ {
17
+ if ( typeof text == 'string' )
18
+ text = ( ownerDocument ? ownerDocument.$ : document ).createComment( text );
19
+
20
+ this.base( text );
21
+ },
22
+
23
+ proto :
24
+ {
25
+ type : CKEDITOR.NODE_COMMENT,
26
+
27
+ getOuterHtml : function()
28
+ {
29
+ return '<!--' + this.$.nodeValue + '-->';
30
+ }
31
+ }
32
+ });
@@ -0,0 +1,251 @@
1
+ /*
2
+ Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ /**
7
+ * @fileOverview Defines the {@link CKEDITOR.dom.document} class, which
8
+ * represents a DOM document.
9
+ */
10
+
11
+ /**
12
+ * Represents a DOM document.
13
+ * @constructor
14
+ * @augments CKEDITOR.dom.domObject
15
+ * @param {Object} domDocument A native DOM document.
16
+ * @example
17
+ * var document = new CKEDITOR.dom.document( document );
18
+ */
19
+ CKEDITOR.dom.document = function( domDocument )
20
+ {
21
+ CKEDITOR.dom.domObject.call( this, domDocument );
22
+ };
23
+
24
+ // PACKAGER_RENAME( CKEDITOR.dom.document )
25
+
26
+ CKEDITOR.dom.document.prototype = new CKEDITOR.dom.domObject();
27
+
28
+ CKEDITOR.tools.extend( CKEDITOR.dom.document.prototype,
29
+ /** @lends CKEDITOR.dom.document.prototype */
30
+ {
31
+ /**
32
+ * Appends a CSS file to the document.
33
+ * @param {String} cssFileUrl The CSS file URL.
34
+ * @example
35
+ * <b>CKEDITOR.document.appendStyleSheet( '/mystyles.css' )</b>;
36
+ */
37
+ appendStyleSheet : function( cssFileUrl )
38
+ {
39
+ if ( this.$.createStyleSheet )
40
+ this.$.createStyleSheet( cssFileUrl );
41
+ else
42
+ {
43
+ var link = new CKEDITOR.dom.element( 'link' );
44
+ link.setAttributes(
45
+ {
46
+ rel :'stylesheet',
47
+ type : 'text/css',
48
+ href : cssFileUrl
49
+ });
50
+
51
+ this.getHead().append( link );
52
+ }
53
+ },
54
+
55
+ appendStyleText : function( cssStyleText )
56
+ {
57
+ if ( this.$.createStyleSheet )
58
+ {
59
+ var styleSheet = this.$.createStyleSheet( "" );
60
+ styleSheet.cssText = cssStyleText ;
61
+ }
62
+ else
63
+ {
64
+ var style = new CKEDITOR.dom.element( 'style', this );
65
+ style.append( new CKEDITOR.dom.text( cssStyleText, this ) );
66
+ this.getHead().append( style );
67
+ }
68
+ },
69
+
70
+ createElement : function( name, attribsAndStyles )
71
+ {
72
+ var element = new CKEDITOR.dom.element( name, this );
73
+
74
+ if ( attribsAndStyles )
75
+ {
76
+ if ( attribsAndStyles.attributes )
77
+ element.setAttributes( attribsAndStyles.attributes );
78
+
79
+ if ( attribsAndStyles.styles )
80
+ element.setStyles( attribsAndStyles.styles );
81
+ }
82
+
83
+ return element;
84
+ },
85
+
86
+ createText : function( text )
87
+ {
88
+ return new CKEDITOR.dom.text( text, this );
89
+ },
90
+
91
+ focus : function()
92
+ {
93
+ this.getWindow().focus();
94
+ },
95
+
96
+ /**
97
+ * Gets and element based on its id.
98
+ * @param {String} elementId The element id.
99
+ * @returns {CKEDITOR.dom.element} The element instance, or null if not found.
100
+ * @example
101
+ * var element = <b>CKEDITOR.document.getById( 'myElement' )</b>;
102
+ * alert( element.getId() ); // "myElement"
103
+ */
104
+ getById : function( elementId )
105
+ {
106
+ var $ = this.$.getElementById( elementId );
107
+ return $ ? new CKEDITOR.dom.element( $ ) : null;
108
+ },
109
+
110
+ getByAddress : function( address, normalized )
111
+ {
112
+ var $ = this.$.documentElement;
113
+
114
+ for ( var i = 0 ; $ && i < address.length ; i++ )
115
+ {
116
+ var target = address[ i ];
117
+
118
+ if ( !normalized )
119
+ {
120
+ $ = $.childNodes[ target ];
121
+ continue;
122
+ }
123
+
124
+ var currentIndex = -1;
125
+
126
+ for (var j = 0 ; j < $.childNodes.length ; j++ )
127
+ {
128
+ var candidate = $.childNodes[ j ];
129
+
130
+ if ( normalized === true &&
131
+ candidate.nodeType == 3 &&
132
+ candidate.previousSibling &&
133
+ candidate.previousSibling.nodeType == 3 )
134
+ {
135
+ continue;
136
+ }
137
+
138
+ currentIndex++;
139
+
140
+ if ( currentIndex == target )
141
+ {
142
+ $ = candidate;
143
+ break;
144
+ }
145
+ }
146
+ }
147
+
148
+ return $ ? new CKEDITOR.dom.node( $ ) : null;
149
+ },
150
+
151
+ getElementsByTag : function( tagName, namespace )
152
+ {
153
+ if ( !( CKEDITOR.env.ie && ! ( document.documentMode > 8 ) ) && namespace )
154
+ tagName = namespace + ':' + tagName;
155
+ return new CKEDITOR.dom.nodeList( this.$.getElementsByTagName( tagName ) );
156
+ },
157
+
158
+ /**
159
+ * Gets the &lt;head&gt; element for this document.
160
+ * @returns {CKEDITOR.dom.element} The &lt;head&gt; element.
161
+ * @example
162
+ * var element = <b>CKEDITOR.document.getHead()</b>;
163
+ * alert( element.getName() ); // "head"
164
+ */
165
+ getHead : function()
166
+ {
167
+ var head = this.$.getElementsByTagName( 'head' )[0];
168
+ if ( !head )
169
+ head = this.getDocumentElement().append( new CKEDITOR.dom.element( 'head' ), true );
170
+ else
171
+ head = new CKEDITOR.dom.element( head );
172
+
173
+ return (
174
+ this.getHead = function()
175
+ {
176
+ return head;
177
+ })();
178
+ },
179
+
180
+ /**
181
+ * Gets the &lt;body&gt; element for this document.
182
+ * @returns {CKEDITOR.dom.element} The &lt;body&gt; element.
183
+ * @example
184
+ * var element = <b>CKEDITOR.document.getBody()</b>;
185
+ * alert( element.getName() ); // "body"
186
+ */
187
+ getBody : function()
188
+ {
189
+ var body = new CKEDITOR.dom.element( this.$.body );
190
+
191
+ return (
192
+ this.getBody = function()
193
+ {
194
+ return body;
195
+ })();
196
+ },
197
+
198
+ /**
199
+ * Gets the DOM document element for this document.
200
+ * @returns {CKEDITOR.dom.element} The DOM document element.
201
+ */
202
+ getDocumentElement : function()
203
+ {
204
+ var documentElement = new CKEDITOR.dom.element( this.$.documentElement );
205
+
206
+ return (
207
+ this.getDocumentElement = function()
208
+ {
209
+ return documentElement;
210
+ })();
211
+ },
212
+
213
+ /**
214
+ * Gets the window object that holds this document.
215
+ * @returns {CKEDITOR.dom.window} The window object.
216
+ */
217
+ getWindow : function()
218
+ {
219
+ var win = new CKEDITOR.dom.window( this.$.parentWindow || this.$.defaultView );
220
+
221
+ return (
222
+ this.getWindow = function()
223
+ {
224
+ return win;
225
+ })();
226
+ },
227
+
228
+ /**
229
+ * Defines the document contents through document.write. Note that the
230
+ * previous document contents will be lost (cleaned).
231
+ * @since 3.5
232
+ * @param {String} html The HTML defining the document contents.
233
+ * @example
234
+ * document.write(
235
+ * '&lt;html&gt;' +
236
+ * '&lt;head&gt;&lt;title&gt;Sample Doc&lt;/title&gt;&lt;/head&gt;' +
237
+ * '&lt;body&gt;Document contents created by code&lt;/body&gt;' +
238
+ * '&lt;/html&gt;' );
239
+ */
240
+ write : function( html )
241
+ {
242
+ // Don't leave any history log in IE. (#5657)
243
+ this.$.open( 'text/html', 'replace' );
244
+
245
+ // Support for custom document.domain in IE.
246
+ CKEDITOR.env.isCustomDomain() && ( this.$.domain = document.domain );
247
+
248
+ this.$.write( html );
249
+ this.$.close();
250
+ }
251
+ });
@@ -0,0 +1,49 @@
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
+ * @class DocumentFragment is a "lightweight" or "minimal" Document object. It is
8
+ * commonly used to extract a portion of a document's tree or to create a new
9
+ * fragment of a document. Various operations may take DocumentFragment objects
10
+ * as arguments and results in all the child nodes of the DocumentFragment being
11
+ * moved to the child list of this node.
12
+ * @param {Object} ownerDocument
13
+ */
14
+ CKEDITOR.dom.documentFragment = function( ownerDocument )
15
+ {
16
+ ownerDocument = ownerDocument || CKEDITOR.document;
17
+ this.$ = ownerDocument.$.createDocumentFragment();
18
+ };
19
+
20
+ CKEDITOR.tools.extend( CKEDITOR.dom.documentFragment.prototype,
21
+ CKEDITOR.dom.element.prototype,
22
+ {
23
+ type : CKEDITOR.NODE_DOCUMENT_FRAGMENT,
24
+ insertAfterNode : function( node )
25
+ {
26
+ node = node.$;
27
+ node.parentNode.insertBefore( this.$, node.nextSibling );
28
+ }
29
+ },
30
+ true,
31
+ {
32
+ 'append' : 1,
33
+ 'appendBogus' : 1,
34
+ 'getFirst' : 1,
35
+ 'getLast' : 1,
36
+ 'appendTo' : 1,
37
+ 'moveChildren' : 1,
38
+ 'insertBefore' : 1,
39
+ 'insertAfterNode' : 1,
40
+ 'replace' : 1,
41
+ 'trim' : 1,
42
+ 'type' : 1,
43
+ 'ltrim' : 1,
44
+ 'rtrim' : 1,
45
+ 'getDocument' : 1,
46
+ 'getChildCount' : 1,
47
+ 'getChild' : 1,
48
+ 'getChildren' : 1
49
+ } );
@@ -0,0 +1,258 @@
1
+ /*
2
+ Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ /**
7
+ * @fileOverview Defines the {@link CKEDITOR.editor} class, which is the base
8
+ * for other classes representing DOM objects.
9
+ */
10
+
11
+ /**
12
+ * Represents a DOM object. This class is not intended to be used directly. It
13
+ * serves as the base class for other classes representing specific DOM
14
+ * objects.
15
+ * @constructor
16
+ * @param {Object} nativeDomObject A native DOM object.
17
+ * @augments CKEDITOR.event
18
+ * @example
19
+ */
20
+ CKEDITOR.dom.domObject = function( nativeDomObject )
21
+ {
22
+ if ( nativeDomObject )
23
+ {
24
+ /**
25
+ * The native DOM object represented by this class instance.
26
+ * @type Object
27
+ * @example
28
+ * var element = new CKEDITOR.dom.element( 'span' );
29
+ * alert( element.$.nodeType ); // "1"
30
+ */
31
+ this.$ = nativeDomObject;
32
+ }
33
+ };
34
+
35
+ CKEDITOR.dom.domObject.prototype = (function()
36
+ {
37
+ // Do not define other local variables here. We want to keep the native
38
+ // listener closures as clean as possible.
39
+
40
+ var getNativeListener = function( domObject, eventName )
41
+ {
42
+ return function( domEvent )
43
+ {
44
+ // In FF, when reloading the page with the editor focused, it may
45
+ // throw an error because the CKEDITOR global is not anymore
46
+ // available. So, we check it here first. (#2923)
47
+ if ( typeof CKEDITOR != 'undefined' )
48
+ domObject.fire( eventName, new CKEDITOR.dom.event( domEvent ) );
49
+ };
50
+ };
51
+
52
+ return /** @lends CKEDITOR.dom.domObject.prototype */ {
53
+
54
+ getPrivate : function()
55
+ {
56
+ var priv;
57
+
58
+ // Get the main private function from the custom data. Create it if not
59
+ // defined.
60
+ if ( !( priv = this.getCustomData( '_' ) ) )
61
+ this.setCustomData( '_', ( priv = {} ) );
62
+
63
+ return priv;
64
+ },
65
+
66
+ /** @ignore */
67
+ on : function( eventName )
68
+ {
69
+ // We customize the "on" function here. The basic idea is that we'll have
70
+ // only one listener for a native event, which will then call all listeners
71
+ // set to the event.
72
+
73
+ // Get the listeners holder object.
74
+ var nativeListeners = this.getCustomData( '_cke_nativeListeners' );
75
+
76
+ if ( !nativeListeners )
77
+ {
78
+ nativeListeners = {};
79
+ this.setCustomData( '_cke_nativeListeners', nativeListeners );
80
+ }
81
+
82
+ // Check if we have a listener for that event.
83
+ if ( !nativeListeners[ eventName ] )
84
+ {
85
+ var listener = nativeListeners[ eventName ] = getNativeListener( this, eventName );
86
+
87
+ if ( this.$.attachEvent )
88
+ this.$.attachEvent( 'on' + eventName, listener );
89
+ else if ( this.$.addEventListener )
90
+ this.$.addEventListener( eventName, listener, !!CKEDITOR.event.useCapture );
91
+ }
92
+
93
+ // Call the original implementation.
94
+ return CKEDITOR.event.prototype.on.apply( this, arguments );
95
+ },
96
+
97
+ /** @ignore */
98
+ removeListener : function( eventName )
99
+ {
100
+ // Call the original implementation.
101
+ CKEDITOR.event.prototype.removeListener.apply( this, arguments );
102
+
103
+ // If we don't have listeners for this event, clean the DOM up.
104
+ if ( !this.hasListeners( eventName ) )
105
+ {
106
+ var nativeListeners = this.getCustomData( '_cke_nativeListeners' );
107
+ var listener = nativeListeners && nativeListeners[ eventName ];
108
+ if ( listener )
109
+ {
110
+ if ( this.$.detachEvent )
111
+ this.$.detachEvent( 'on' + eventName, listener );
112
+ else if ( this.$.removeEventListener )
113
+ this.$.removeEventListener( eventName, listener, false );
114
+
115
+ delete nativeListeners[ eventName ];
116
+ }
117
+ }
118
+ },
119
+
120
+ /**
121
+ * Removes any listener set on this object.
122
+ * To avoid memory leaks we must assure that there are no
123
+ * references left after the object is no longer needed.
124
+ */
125
+ removeAllListeners : function()
126
+ {
127
+ var nativeListeners = this.getCustomData( '_cke_nativeListeners' );
128
+ for ( var eventName in nativeListeners )
129
+ {
130
+ var listener = nativeListeners[ eventName ];
131
+ if ( this.$.detachEvent )
132
+ this.$.detachEvent( 'on' + eventName, listener );
133
+ else if ( this.$.removeEventListener )
134
+ this.$.removeEventListener( eventName, listener, false );
135
+
136
+ delete nativeListeners[ eventName ];
137
+ }
138
+ }
139
+ };
140
+ })();
141
+
142
+ (function( domObjectProto )
143
+ {
144
+ var customData = {};
145
+
146
+ CKEDITOR.on( 'reset', function()
147
+ {
148
+ customData = {};
149
+ });
150
+
151
+ /**
152
+ * Determines whether the specified object is equal to the current object.
153
+ * @name CKEDITOR.dom.domObject.prototype.equals
154
+ * @function
155
+ * @param {Object} object The object to compare with the current object.
156
+ * @returns {Boolean} "true" if the object is equal.
157
+ * @example
158
+ * var doc = new CKEDITOR.dom.document( document );
159
+ * alert( doc.equals( CKEDITOR.document ) ); // "true"
160
+ * alert( doc == CKEDITOR.document ); // "false"
161
+ */
162
+ domObjectProto.equals = function( object )
163
+ {
164
+ return ( object && object.$ === this.$ );
165
+ };
166
+
167
+ /**
168
+ * Sets a data slot value for this object. These values are shared by all
169
+ * instances pointing to that same DOM object.
170
+ * <strong>Note:</strong> The created data slot is only guarantied to be available on this unique dom node,
171
+ * thus any wish to continue access it from other element clones (either created by clone node or from innerHtml)
172
+ * will fail, for such usage, please use {@link CKEDITOR.dom.element::setAttribute} instead.
173
+ * @name CKEDITOR.dom.domObject.prototype.setCustomData
174
+ * @function
175
+ * @param {String} key A key used to identify the data slot.
176
+ * @param {Object} value The value to set to the data slot.
177
+ * @returns {CKEDITOR.dom.domObject} This DOM object instance.
178
+ * @see CKEDITOR.dom.domObject.prototype.getCustomData
179
+ * @example
180
+ * var element = new CKEDITOR.dom.element( 'span' );
181
+ * element.setCustomData( 'hasCustomData', true );
182
+ */
183
+ domObjectProto.setCustomData = function( key, value )
184
+ {
185
+ var expandoNumber = this.getUniqueId(),
186
+ dataSlot = customData[ expandoNumber ] || ( customData[ expandoNumber ] = {} );
187
+
188
+ dataSlot[ key ] = value;
189
+
190
+ return this;
191
+ };
192
+
193
+ /**
194
+ * Gets the value set to a data slot in this object.
195
+ * @name CKEDITOR.dom.domObject.prototype.getCustomData
196
+ * @function
197
+ * @param {String} key The key used to identify the data slot.
198
+ * @returns {Object} This value set to the data slot.
199
+ * @see CKEDITOR.dom.domObject.prototype.setCustomData
200
+ * @example
201
+ * var element = new CKEDITOR.dom.element( 'span' );
202
+ * alert( element.getCustomData( 'hasCustomData' ) ); // e.g. 'true'
203
+ */
204
+ domObjectProto.getCustomData = function( key )
205
+ {
206
+ var expandoNumber = this.$[ 'data-cke-expando' ],
207
+ dataSlot = expandoNumber && customData[ expandoNumber ];
208
+
209
+ return dataSlot && dataSlot[ key ];
210
+ };
211
+
212
+ /**
213
+ * @name CKEDITOR.dom.domObject.prototype.removeCustomData
214
+ */
215
+ domObjectProto.removeCustomData = function( key )
216
+ {
217
+ var expandoNumber = this.$[ 'data-cke-expando' ],
218
+ dataSlot = expandoNumber && customData[ expandoNumber ],
219
+ retval = dataSlot && dataSlot[ key ];
220
+
221
+ if ( typeof retval != 'undefined' )
222
+ delete dataSlot[ key ];
223
+
224
+ return retval || null;
225
+ };
226
+
227
+ /**
228
+ * Removes any data stored on this object.
229
+ * To avoid memory leaks we must assure that there are no
230
+ * references left after the object is no longer needed.
231
+ * @name CKEDITOR.dom.domObject.prototype.clearCustomData
232
+ * @function
233
+ */
234
+ domObjectProto.clearCustomData = function()
235
+ {
236
+ // Clear all event listeners
237
+ this.removeAllListeners();
238
+
239
+ var expandoNumber = this.$[ 'data-cke-expando' ];
240
+ expandoNumber && delete customData[ expandoNumber ];
241
+ };
242
+
243
+ /**
244
+ * Gets an ID that can be used to identiquely identify this DOM object in
245
+ * the running session.
246
+ * @name CKEDITOR.dom.domObject.prototype.getUniqueId
247
+ * @function
248
+ * @returns {Number} A unique ID.
249
+ */
250
+ domObjectProto.getUniqueId = function()
251
+ {
252
+ return this.$[ 'data-cke-expando' ] || ( this.$[ 'data-cke-expando' ] = CKEDITOR.tools.getNextNumber() );
253
+ };
254
+
255
+ // Implement CKEDITOR.event.
256
+ CKEDITOR.event.implementOn( domObjectProto );
257
+
258
+ })( CKEDITOR.dom.domObject.prototype );