refinerycms-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 (657) hide show
  1. data/.gitignore +17 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE +22 -0
  4. data/README.md +25 -0
  5. data/Rakefile +2 -0
  6. data/app/assets/images/refinery/ckeditor/pdf.png +0 -0
  7. data/app/assets/javascripts/ckeditor.js +25 -0
  8. data/app/assets/javascripts/ckeditor/.htaccess +24 -0
  9. data/app/assets/javascripts/ckeditor/CHANGES.html +1433 -0
  10. data/app/assets/javascripts/ckeditor/INSTALL.html +92 -0
  11. data/app/assets/javascripts/ckeditor/LICENSE.html +1327 -0
  12. data/app/assets/javascripts/ckeditor/_samples/adobeair/application.xml +32 -0
  13. data/app/assets/javascripts/ckeditor/_samples/adobeair/run.bat +9 -0
  14. data/app/assets/javascripts/ckeditor/_samples/adobeair/run.sh +8 -0
  15. data/app/assets/javascripts/ckeditor/_samples/adobeair/sample.html +45 -0
  16. data/app/assets/javascripts/ckeditor/_samples/ajax.html +98 -0
  17. data/app/assets/javascripts/ckeditor/_samples/api.html +192 -0
  18. data/app/assets/javascripts/ckeditor/_samples/api_dialog.html +198 -0
  19. data/app/assets/javascripts/ckeditor/_samples/api_dialog/my_dialog.js +28 -0
  20. data/app/assets/javascripts/ckeditor/_samples/asp/advanced.asp +105 -0
  21. data/app/assets/javascripts/ckeditor/_samples/asp/events.asp +136 -0
  22. data/app/assets/javascripts/ckeditor/_samples/asp/index.html +103 -0
  23. data/app/assets/javascripts/ckeditor/_samples/asp/replace.asp +72 -0
  24. data/app/assets/javascripts/ckeditor/_samples/asp/replaceall.asp +77 -0
  25. data/app/assets/javascripts/ckeditor/_samples/asp/sample_posteddata.asp +46 -0
  26. data/app/assets/javascripts/ckeditor/_samples/asp/standalone.asp +72 -0
  27. data/app/assets/javascripts/ckeditor/_samples/assets/_posteddata.php +59 -0
  28. data/app/assets/javascripts/ckeditor/_samples/assets/output_for_flash.fla +0 -0
  29. data/app/assets/javascripts/ckeditor/_samples/assets/output_for_flash.swf +0 -0
  30. data/app/assets/javascripts/ckeditor/_samples/assets/output_xhtml.css +204 -0
  31. data/app/assets/javascripts/ckeditor/_samples/assets/parsesample.css +70 -0
  32. data/app/assets/javascripts/ckeditor/_samples/assets/swfobject.js +18 -0
  33. data/app/assets/javascripts/ckeditor/_samples/autogrow.html +108 -0
  34. data/app/assets/javascripts/ckeditor/_samples/bbcode.html +125 -0
  35. data/app/assets/javascripts/ckeditor/_samples/devtools.html +94 -0
  36. data/app/assets/javascripts/ckeditor/_samples/divreplace.html +154 -0
  37. data/app/assets/javascripts/ckeditor/_samples/enterkey.html +115 -0
  38. data/app/assets/javascripts/ckeditor/_samples/fullpage.html +82 -0
  39. data/app/assets/javascripts/ckeditor/_samples/index.html +116 -0
  40. data/app/assets/javascripts/ckeditor/_samples/jqueryadapter.html +99 -0
  41. data/app/assets/javascripts/ckeditor/_samples/output_for_flash.html +275 -0
  42. data/app/assets/javascripts/ckeditor/_samples/output_html.html +285 -0
  43. data/app/assets/javascripts/ckeditor/_samples/output_xhtml.html +177 -0
  44. data/app/assets/javascripts/ckeditor/_samples/php/advanced.php +120 -0
  45. data/app/assets/javascripts/ckeditor/_samples/php/events.php +153 -0
  46. data/app/assets/javascripts/ckeditor/_samples/php/index.html +47 -0
  47. data/app/assets/javascripts/ckeditor/_samples/php/replace.php +87 -0
  48. data/app/assets/javascripts/ckeditor/_samples/php/replaceall.php +88 -0
  49. data/app/assets/javascripts/ckeditor/_samples/php/standalone.php +83 -0
  50. data/app/assets/javascripts/ckeditor/_samples/placeholder.html +81 -0
  51. data/app/assets/javascripts/ckeditor/_samples/readonly.html +91 -0
  52. data/app/assets/javascripts/ckeditor/_samples/replacebyclass.html +64 -0
  53. data/app/assets/javascripts/ckeditor/_samples/replacebycode.html +97 -0
  54. data/app/assets/javascripts/ckeditor/_samples/sample.css +163 -0
  55. data/app/assets/javascripts/ckeditor/_samples/sample.js +65 -0
  56. data/app/assets/javascripts/ckeditor/_samples/sample_posteddata.php +21 -0
  57. data/app/assets/javascripts/ckeditor/_samples/sharedspaces.html +153 -0
  58. data/app/assets/javascripts/ckeditor/_samples/skins.html +110 -0
  59. data/app/assets/javascripts/ckeditor/_samples/stylesheetparser.html +93 -0
  60. data/app/assets/javascripts/ckeditor/_samples/tableresize.html +115 -0
  61. data/app/assets/javascripts/ckeditor/_samples/ui_color.html +129 -0
  62. data/app/assets/javascripts/ckeditor/_samples/ui_languages.html +134 -0
  63. data/app/assets/javascripts/ckeditor/_source/adapters/jquery.js +306 -0
  64. data/app/assets/javascripts/ckeditor/_source/core/_bootstrap.js +87 -0
  65. data/app/assets/javascripts/ckeditor/_source/core/ckeditor.js +141 -0
  66. data/app/assets/javascripts/ckeditor/_source/core/ckeditor_base.js +227 -0
  67. data/app/assets/javascripts/ckeditor/_source/core/ckeditor_basic.js +238 -0
  68. data/app/assets/javascripts/ckeditor/_source/core/command.js +209 -0
  69. data/app/assets/javascripts/ckeditor/_source/core/commanddefinition.js +129 -0
  70. data/app/assets/javascripts/ckeditor/_source/core/config.js +439 -0
  71. data/app/assets/javascripts/ckeditor/_source/core/dataprocessor.js +65 -0
  72. data/app/assets/javascripts/ckeditor/_source/core/dom.js +20 -0
  73. data/app/assets/javascripts/ckeditor/_source/core/dom/comment.js +32 -0
  74. data/app/assets/javascripts/ckeditor/_source/core/dom/document.js +251 -0
  75. data/app/assets/javascripts/ckeditor/_source/core/dom/documentfragment.js +49 -0
  76. data/app/assets/javascripts/ckeditor/_source/core/dom/domobject.js +258 -0
  77. data/app/assets/javascripts/ckeditor/_source/core/dom/element.js +1691 -0
  78. data/app/assets/javascripts/ckeditor/_source/core/dom/elementpath.js +119 -0
  79. data/app/assets/javascripts/ckeditor/_source/core/dom/event.js +145 -0
  80. data/app/assets/javascripts/ckeditor/_source/core/dom/node.js +696 -0
  81. data/app/assets/javascripts/ckeditor/_source/core/dom/nodelist.js +26 -0
  82. data/app/assets/javascripts/ckeditor/_source/core/dom/range.js +2054 -0
  83. data/app/assets/javascripts/ckeditor/_source/core/dom/rangelist.js +213 -0
  84. data/app/assets/javascripts/ckeditor/_source/core/dom/text.js +128 -0
  85. data/app/assets/javascripts/ckeditor/_source/core/dom/walker.js +462 -0
  86. data/app/assets/javascripts/ckeditor/_source/core/dom/window.js +96 -0
  87. data/app/assets/javascripts/ckeditor/_source/core/dtd.js +266 -0
  88. data/app/assets/javascripts/ckeditor/_source/core/editor.js +1059 -0
  89. data/app/assets/javascripts/ckeditor/_source/core/editor_basic.js +186 -0
  90. data/app/assets/javascripts/ckeditor/_source/core/env.js +305 -0
  91. data/app/assets/javascripts/ckeditor/_source/core/event.js +342 -0
  92. data/app/assets/javascripts/ckeditor/_source/core/eventInfo.js +120 -0
  93. data/app/assets/javascripts/ckeditor/_source/core/focusmanager.js +152 -0
  94. data/app/assets/javascripts/ckeditor/_source/core/htmlparser.js +224 -0
  95. data/app/assets/javascripts/ckeditor/_source/core/htmlparser/basicwriter.js +145 -0
  96. data/app/assets/javascripts/ckeditor/_source/core/htmlparser/cdata.js +43 -0
  97. data/app/assets/javascripts/ckeditor/_source/core/htmlparser/comment.js +60 -0
  98. data/app/assets/javascripts/ckeditor/_source/core/htmlparser/element.js +308 -0
  99. data/app/assets/javascripts/ckeditor/_source/core/htmlparser/filter.js +288 -0
  100. data/app/assets/javascripts/ckeditor/_source/core/htmlparser/fragment.js +518 -0
  101. data/app/assets/javascripts/ckeditor/_source/core/htmlparser/text.js +53 -0
  102. data/app/assets/javascripts/ckeditor/_source/core/lang.js +157 -0
  103. data/app/assets/javascripts/ckeditor/_source/core/loader.js +240 -0
  104. data/app/assets/javascripts/ckeditor/_source/core/plugindefinition.js +83 -0
  105. data/app/assets/javascripts/ckeditor/_source/core/plugins.js +103 -0
  106. data/app/assets/javascripts/ckeditor/_source/core/resourcemanager.js +238 -0
  107. data/app/assets/javascripts/ckeditor/_source/core/scriptloader.js +180 -0
  108. data/app/assets/javascripts/ckeditor/_source/core/skins.js +184 -0
  109. data/app/assets/javascripts/ckeditor/_source/core/themes.js +19 -0
  110. data/app/assets/javascripts/ckeditor/_source/core/tools.js +763 -0
  111. data/app/assets/javascripts/ckeditor/_source/core/ui.js +128 -0
  112. data/app/assets/javascripts/ckeditor/_source/lang/_languages.js +84 -0
  113. data/app/assets/javascripts/ckeditor/_source/lang/_translationstatus.txt +61 -0
  114. data/app/assets/javascripts/ckeditor/_source/lang/af.js +815 -0
  115. data/app/assets/javascripts/ckeditor/_source/lang/ar.js +815 -0
  116. data/app/assets/javascripts/ckeditor/_source/lang/bg.js +815 -0
  117. data/app/assets/javascripts/ckeditor/_source/lang/bn.js +815 -0
  118. data/app/assets/javascripts/ckeditor/_source/lang/bs.js +815 -0
  119. data/app/assets/javascripts/ckeditor/_source/lang/ca.js +815 -0
  120. data/app/assets/javascripts/ckeditor/_source/lang/cs.js +815 -0
  121. data/app/assets/javascripts/ckeditor/_source/lang/cy.js +815 -0
  122. data/app/assets/javascripts/ckeditor/_source/lang/da.js +815 -0
  123. data/app/assets/javascripts/ckeditor/_source/lang/de.js +815 -0
  124. data/app/assets/javascripts/ckeditor/_source/lang/el.js +815 -0
  125. data/app/assets/javascripts/ckeditor/_source/lang/en-au.js +815 -0
  126. data/app/assets/javascripts/ckeditor/_source/lang/en-ca.js +815 -0
  127. data/app/assets/javascripts/ckeditor/_source/lang/en-gb.js +815 -0
  128. data/app/assets/javascripts/ckeditor/_source/lang/en.js +815 -0
  129. data/app/assets/javascripts/ckeditor/_source/lang/eo.js +815 -0
  130. data/app/assets/javascripts/ckeditor/_source/lang/es.js +815 -0
  131. data/app/assets/javascripts/ckeditor/_source/lang/et.js +815 -0
  132. data/app/assets/javascripts/ckeditor/_source/lang/eu.js +815 -0
  133. data/app/assets/javascripts/ckeditor/_source/lang/fa.js +815 -0
  134. data/app/assets/javascripts/ckeditor/_source/lang/fi.js +815 -0
  135. data/app/assets/javascripts/ckeditor/_source/lang/fo.js +815 -0
  136. data/app/assets/javascripts/ckeditor/_source/lang/fr-ca.js +815 -0
  137. data/app/assets/javascripts/ckeditor/_source/lang/fr.js +815 -0
  138. data/app/assets/javascripts/ckeditor/_source/lang/gl.js +815 -0
  139. data/app/assets/javascripts/ckeditor/_source/lang/gu.js +815 -0
  140. data/app/assets/javascripts/ckeditor/_source/lang/he.js +815 -0
  141. data/app/assets/javascripts/ckeditor/_source/lang/hi.js +815 -0
  142. data/app/assets/javascripts/ckeditor/_source/lang/hr.js +815 -0
  143. data/app/assets/javascripts/ckeditor/_source/lang/hu.js +815 -0
  144. data/app/assets/javascripts/ckeditor/_source/lang/is.js +815 -0
  145. data/app/assets/javascripts/ckeditor/_source/lang/it.js +815 -0
  146. data/app/assets/javascripts/ckeditor/_source/lang/ja.js +815 -0
  147. data/app/assets/javascripts/ckeditor/_source/lang/ka.js +815 -0
  148. data/app/assets/javascripts/ckeditor/_source/lang/km.js +815 -0
  149. data/app/assets/javascripts/ckeditor/_source/lang/ko.js +815 -0
  150. data/app/assets/javascripts/ckeditor/_source/lang/lt.js +815 -0
  151. data/app/assets/javascripts/ckeditor/_source/lang/lv.js +815 -0
  152. data/app/assets/javascripts/ckeditor/_source/lang/mn.js +815 -0
  153. data/app/assets/javascripts/ckeditor/_source/lang/ms.js +815 -0
  154. data/app/assets/javascripts/ckeditor/_source/lang/nb.js +815 -0
  155. data/app/assets/javascripts/ckeditor/_source/lang/nl.js +815 -0
  156. data/app/assets/javascripts/ckeditor/_source/lang/no.js +815 -0
  157. data/app/assets/javascripts/ckeditor/_source/lang/pl.js +815 -0
  158. data/app/assets/javascripts/ckeditor/_source/lang/pt-br.js +814 -0
  159. data/app/assets/javascripts/ckeditor/_source/lang/pt.js +815 -0
  160. data/app/assets/javascripts/ckeditor/_source/lang/ro.js +815 -0
  161. data/app/assets/javascripts/ckeditor/_source/lang/ru.js +815 -0
  162. data/app/assets/javascripts/ckeditor/_source/lang/sk.js +815 -0
  163. data/app/assets/javascripts/ckeditor/_source/lang/sl.js +815 -0
  164. data/app/assets/javascripts/ckeditor/_source/lang/sr-latn.js +815 -0
  165. data/app/assets/javascripts/ckeditor/_source/lang/sr.js +815 -0
  166. data/app/assets/javascripts/ckeditor/_source/lang/sv.js +814 -0
  167. data/app/assets/javascripts/ckeditor/_source/lang/th.js +815 -0
  168. data/app/assets/javascripts/ckeditor/_source/lang/tr.js +814 -0
  169. data/app/assets/javascripts/ckeditor/_source/lang/uk.js +815 -0
  170. data/app/assets/javascripts/ckeditor/_source/lang/vi.js +815 -0
  171. data/app/assets/javascripts/ckeditor/_source/lang/zh-cn.js +815 -0
  172. data/app/assets/javascripts/ckeditor/_source/lang/zh.js +815 -0
  173. data/app/assets/javascripts/ckeditor/_source/plugins/a11yhelp/dialogs/a11yhelp.js +222 -0
  174. data/app/assets/javascripts/ckeditor/_source/plugins/a11yhelp/lang/en.js +108 -0
  175. data/app/assets/javascripts/ckeditor/_source/plugins/a11yhelp/lang/he.js +216 -0
  176. data/app/assets/javascripts/ckeditor/_source/plugins/a11yhelp/plugin.js +47 -0
  177. data/app/assets/javascripts/ckeditor/_source/plugins/about/dialogs/about.js +76 -0
  178. data/app/assets/javascripts/ckeditor/_source/plugins/about/dialogs/logo_ckeditor.png +0 -0
  179. data/app/assets/javascripts/ckeditor/_source/plugins/about/plugin.js +24 -0
  180. data/app/assets/javascripts/ckeditor/_source/plugins/adobeair/plugin.js +228 -0
  181. data/app/assets/javascripts/ckeditor/_source/plugins/ajax/plugin.js +152 -0
  182. data/app/assets/javascripts/ckeditor/_source/plugins/autogrow/plugin.js +141 -0
  183. data/app/assets/javascripts/ckeditor/_source/plugins/basicstyles/plugin.js +129 -0
  184. data/app/assets/javascripts/ckeditor/_source/plugins/bbcode/plugin.js +931 -0
  185. data/app/assets/javascripts/ckeditor/_source/plugins/bidi/plugin.js +334 -0
  186. data/app/assets/javascripts/ckeditor/_source/plugins/blockquote/plugin.js +305 -0
  187. data/app/assets/javascripts/ckeditor/_source/plugins/button/plugin.js +290 -0
  188. data/app/assets/javascripts/ckeditor/_source/plugins/clipboard/dialogs/paste.js +223 -0
  189. data/app/assets/javascripts/ckeditor/_source/plugins/clipboard/plugin.js +453 -0
  190. data/app/assets/javascripts/ckeditor/_source/plugins/colorbutton/plugin.js +301 -0
  191. data/app/assets/javascripts/ckeditor/_source/plugins/colordialog/dialogs/colordialog.js +340 -0
  192. data/app/assets/javascripts/ckeditor/_source/plugins/colordialog/plugin.js +15 -0
  193. data/app/assets/javascripts/ckeditor/_source/plugins/contextmenu/plugin.js +179 -0
  194. data/app/assets/javascripts/ckeditor/_source/plugins/devtools/lang/en.js +16 -0
  195. data/app/assets/javascripts/ckeditor/_source/plugins/devtools/plugin.js +173 -0
  196. data/app/assets/javascripts/ckeditor/_source/plugins/dialog/dialogDefinition.js +1166 -0
  197. data/app/assets/javascripts/ckeditor/_source/plugins/dialog/plugin.js +3308 -0
  198. data/app/assets/javascripts/ckeditor/_source/plugins/dialogadvtab/plugin.js +208 -0
  199. data/app/assets/javascripts/ckeditor/_source/plugins/dialogui/plugin.js +1541 -0
  200. data/app/assets/javascripts/ckeditor/_source/plugins/div/dialogs/div.js +535 -0
  201. data/app/assets/javascripts/ckeditor/_source/plugins/div/plugin.js +121 -0
  202. data/app/assets/javascripts/ckeditor/_source/plugins/docprops/dialogs/docprops.js +674 -0
  203. data/app/assets/javascripts/ckeditor/_source/plugins/docprops/plugin.js +22 -0
  204. data/app/assets/javascripts/ckeditor/_source/plugins/domiterator/plugin.js +361 -0
  205. data/app/assets/javascripts/ckeditor/_source/plugins/editingblock/plugin.js +278 -0
  206. data/app/assets/javascripts/ckeditor/_source/plugins/elementspath/plugin.js +218 -0
  207. data/app/assets/javascripts/ckeditor/_source/plugins/enterkey/plugin.js +433 -0
  208. data/app/assets/javascripts/ckeditor/_source/plugins/entities/plugin.js +250 -0
  209. data/app/assets/javascripts/ckeditor/_source/plugins/fakeobjects/plugin.js +175 -0
  210. data/app/assets/javascripts/ckeditor/_source/plugins/filebrowser/plugin.js +534 -0
  211. data/app/assets/javascripts/ckeditor/_source/plugins/find/dialogs/find.js +915 -0
  212. data/app/assets/javascripts/ckeditor/_source/plugins/find/plugin.js +47 -0
  213. data/app/assets/javascripts/ckeditor/_source/plugins/flash/dialogs/flash.js +674 -0
  214. data/app/assets/javascripts/ckeditor/_source/plugins/flash/images/placeholder.png +0 -0
  215. data/app/assets/javascripts/ckeditor/_source/plugins/flash/plugin.js +154 -0
  216. data/app/assets/javascripts/ckeditor/_source/plugins/floatpanel/plugin.js +428 -0
  217. data/app/assets/javascripts/ckeditor/_source/plugins/font/plugin.js +234 -0
  218. data/app/assets/javascripts/ckeditor/_source/plugins/format/plugin.js +197 -0
  219. data/app/assets/javascripts/ckeditor/_source/plugins/forms/dialogs/button.js +118 -0
  220. data/app/assets/javascripts/ckeditor/_source/plugins/forms/dialogs/checkbox.js +153 -0
  221. data/app/assets/javascripts/ckeditor/_source/plugins/forms/dialogs/form.js +177 -0
  222. data/app/assets/javascripts/ckeditor/_source/plugins/forms/dialogs/hiddenfield.js +100 -0
  223. data/app/assets/javascripts/ckeditor/_source/plugins/forms/dialogs/radio.js +135 -0
  224. data/app/assets/javascripts/ckeditor/_source/plugins/forms/dialogs/select.js +558 -0
  225. data/app/assets/javascripts/ckeditor/_source/plugins/forms/dialogs/textarea.js +135 -0
  226. data/app/assets/javascripts/ckeditor/_source/plugins/forms/dialogs/textfield.js +199 -0
  227. data/app/assets/javascripts/ckeditor/_source/plugins/forms/images/hiddenfield.gif +0 -0
  228. data/app/assets/javascripts/ckeditor/_source/plugins/forms/plugin.js +288 -0
  229. data/app/assets/javascripts/ckeditor/_source/plugins/horizontalrule/plugin.js +48 -0
  230. data/app/assets/javascripts/ckeditor/_source/plugins/htmldataprocessor/plugin.js +596 -0
  231. data/app/assets/javascripts/ckeditor/_source/plugins/htmlwriter/plugin.js +319 -0
  232. data/app/assets/javascripts/ckeditor/_source/plugins/iframe/dialogs/iframe.js +229 -0
  233. data/app/assets/javascripts/ckeditor/_source/plugins/iframe/images/placeholder.png +0 -0
  234. data/app/assets/javascripts/ckeditor/_source/plugins/iframe/plugin.js +87 -0
  235. data/app/assets/javascripts/ckeditor/_source/plugins/iframedialog/plugin.js +188 -0
  236. data/app/assets/javascripts/ckeditor/_source/plugins/image/dialogs/image.js +1407 -0
  237. data/app/assets/javascripts/ckeditor/_source/plugins/image/plugin.js +81 -0
  238. data/app/assets/javascripts/ckeditor/_source/plugins/indent/plugin.js +461 -0
  239. data/app/assets/javascripts/ckeditor/_source/plugins/justify/plugin.js +253 -0
  240. data/app/assets/javascripts/ckeditor/_source/plugins/keystrokes/plugin.js +225 -0
  241. data/app/assets/javascripts/ckeditor/_source/plugins/link/dialogs/anchor.js +144 -0
  242. data/app/assets/javascripts/ckeditor/_source/plugins/link/dialogs/link.js +1425 -0
  243. data/app/assets/javascripts/ckeditor/_source/plugins/link/images/anchor.gif +0 -0
  244. data/app/assets/javascripts/ckeditor/_source/plugins/link/plugin.js +374 -0
  245. data/app/assets/javascripts/ckeditor/_source/plugins/list/plugin.js +774 -0
  246. data/app/assets/javascripts/ckeditor/_source/plugins/listblock/plugin.js +266 -0
  247. data/app/assets/javascripts/ckeditor/_source/plugins/liststyle/dialogs/liststyle.js +225 -0
  248. data/app/assets/javascripts/ckeditor/_source/plugins/liststyle/plugin.js +66 -0
  249. data/app/assets/javascripts/ckeditor/_source/plugins/maximize/plugin.js +353 -0
  250. data/app/assets/javascripts/ckeditor/_source/plugins/menu/plugin.js +541 -0
  251. data/app/assets/javascripts/ckeditor/_source/plugins/menubutton/plugin.js +98 -0
  252. data/app/assets/javascripts/ckeditor/_source/plugins/newpage/plugin.js +55 -0
  253. data/app/assets/javascripts/ckeditor/_source/plugins/pagebreak/images/pagebreak.gif +0 -0
  254. data/app/assets/javascripts/ckeditor/_source/plugins/pagebreak/plugin.js +164 -0
  255. data/app/assets/javascripts/ckeditor/_source/plugins/panel/plugin.js +400 -0
  256. data/app/assets/javascripts/ckeditor/_source/plugins/panelbutton/plugin.js +144 -0
  257. data/app/assets/javascripts/ckeditor/_source/plugins/pastefromword/filter/default.js +1367 -0
  258. data/app/assets/javascripts/ckeditor/_source/plugins/pastefromword/plugin.js +141 -0
  259. data/app/assets/javascripts/ckeditor/_source/plugins/pastetext/dialogs/pastetext.js +67 -0
  260. data/app/assets/javascripts/ckeditor/_source/plugins/pastetext/plugin.js +98 -0
  261. data/app/assets/javascripts/ckeditor/_source/plugins/placeholder/dialogs/placeholder.js +71 -0
  262. data/app/assets/javascripts/ckeditor/_source/plugins/placeholder/lang/en.js +16 -0
  263. data/app/assets/javascripts/ckeditor/_source/plugins/placeholder/lang/he.js +16 -0
  264. data/app/assets/javascripts/ckeditor/_source/plugins/placeholder/placeholder.gif +0 -0
  265. data/app/assets/javascripts/ckeditor/_source/plugins/placeholder/plugin.js +171 -0
  266. data/app/assets/javascripts/ckeditor/_source/plugins/popup/plugin.js +64 -0
  267. data/app/assets/javascripts/ckeditor/_source/plugins/preview/plugin.js +113 -0
  268. data/app/assets/javascripts/ckeditor/_source/plugins/print/plugin.js +42 -0
  269. data/app/assets/javascripts/ckeditor/_source/plugins/removeformat/plugin.js +185 -0
  270. data/app/assets/javascripts/ckeditor/_source/plugins/resize/plugin.js +168 -0
  271. data/app/assets/javascripts/ckeditor/_source/plugins/richcombo/plugin.js +381 -0
  272. data/app/assets/javascripts/ckeditor/_source/plugins/save/plugin.js +56 -0
  273. data/app/assets/javascripts/ckeditor/_source/plugins/scayt/dialogs/options.js +537 -0
  274. data/app/assets/javascripts/ckeditor/_source/plugins/scayt/dialogs/toolbar.css +71 -0
  275. data/app/assets/javascripts/ckeditor/_source/plugins/scayt/plugin.js +973 -0
  276. data/app/assets/javascripts/ckeditor/_source/plugins/selection/plugin.js +1729 -0
  277. data/app/assets/javascripts/ckeditor/_source/plugins/showblocks/images/block_address.png +0 -0
  278. data/app/assets/javascripts/ckeditor/_source/plugins/showblocks/images/block_blockquote.png +0 -0
  279. data/app/assets/javascripts/ckeditor/_source/plugins/showblocks/images/block_div.png +0 -0
  280. data/app/assets/javascripts/ckeditor/_source/plugins/showblocks/images/block_h1.png +0 -0
  281. data/app/assets/javascripts/ckeditor/_source/plugins/showblocks/images/block_h2.png +0 -0
  282. data/app/assets/javascripts/ckeditor/_source/plugins/showblocks/images/block_h3.png +0 -0
  283. data/app/assets/javascripts/ckeditor/_source/plugins/showblocks/images/block_h4.png +0 -0
  284. data/app/assets/javascripts/ckeditor/_source/plugins/showblocks/images/block_h5.png +0 -0
  285. data/app/assets/javascripts/ckeditor/_source/plugins/showblocks/images/block_h6.png +0 -0
  286. data/app/assets/javascripts/ckeditor/_source/plugins/showblocks/images/block_p.png +0 -0
  287. data/app/assets/javascripts/ckeditor/_source/plugins/showblocks/images/block_pre.png +0 -0
  288. data/app/assets/javascripts/ckeditor/_source/plugins/showblocks/plugin.js +160 -0
  289. data/app/assets/javascripts/ckeditor/_source/plugins/showborders/plugin.js +207 -0
  290. data/app/assets/javascripts/ckeditor/_source/plugins/smiley/dialogs/smiley.js +224 -0
  291. data/app/assets/javascripts/ckeditor/_source/plugins/smiley/images/angel_smile.gif +0 -0
  292. data/app/assets/javascripts/ckeditor/_source/plugins/smiley/images/angry_smile.gif +0 -0
  293. data/app/assets/javascripts/ckeditor/_source/plugins/smiley/images/broken_heart.gif +0 -0
  294. data/app/assets/javascripts/ckeditor/_source/plugins/smiley/images/confused_smile.gif +0 -0
  295. data/app/assets/javascripts/ckeditor/_source/plugins/smiley/images/cry_smile.gif +0 -0
  296. data/app/assets/javascripts/ckeditor/_source/plugins/smiley/images/devil_smile.gif +0 -0
  297. data/app/assets/javascripts/ckeditor/_source/plugins/smiley/images/embaressed_smile.gif +0 -0
  298. data/app/assets/javascripts/ckeditor/_source/plugins/smiley/images/envelope.gif +0 -0
  299. data/app/assets/javascripts/ckeditor/_source/plugins/smiley/images/heart.gif +0 -0
  300. data/app/assets/javascripts/ckeditor/_source/plugins/smiley/images/kiss.gif +0 -0
  301. data/app/assets/javascripts/ckeditor/_source/plugins/smiley/images/lightbulb.gif +0 -0
  302. data/app/assets/javascripts/ckeditor/_source/plugins/smiley/images/omg_smile.gif +0 -0
  303. data/app/assets/javascripts/ckeditor/_source/plugins/smiley/images/regular_smile.gif +0 -0
  304. data/app/assets/javascripts/ckeditor/_source/plugins/smiley/images/sad_smile.gif +0 -0
  305. data/app/assets/javascripts/ckeditor/_source/plugins/smiley/images/shades_smile.gif +0 -0
  306. data/app/assets/javascripts/ckeditor/_source/plugins/smiley/images/teeth_smile.gif +0 -0
  307. data/app/assets/javascripts/ckeditor/_source/plugins/smiley/images/thumbs_down.gif +0 -0
  308. data/app/assets/javascripts/ckeditor/_source/plugins/smiley/images/thumbs_up.gif +0 -0
  309. data/app/assets/javascripts/ckeditor/_source/plugins/smiley/images/tounge_smile.gif +0 -0
  310. data/app/assets/javascripts/ckeditor/_source/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  311. data/app/assets/javascripts/ckeditor/_source/plugins/smiley/images/wink_smile.gif +0 -0
  312. data/app/assets/javascripts/ckeditor/_source/plugins/smiley/plugin.js +94 -0
  313. data/app/assets/javascripts/ckeditor/_source/plugins/sourcearea/plugin.js +209 -0
  314. data/app/assets/javascripts/ckeditor/_source/plugins/specialchar/dialogs/specialchar.js +350 -0
  315. data/app/assets/javascripts/ckeditor/_source/plugins/specialchar/lang/en.js +122 -0
  316. data/app/assets/javascripts/ckeditor/_source/plugins/specialchar/plugin.js +70 -0
  317. data/app/assets/javascripts/ckeditor/_source/plugins/styles/plugin.js +1700 -0
  318. data/app/assets/javascripts/ckeditor/_source/plugins/styles/styles/default.js +88 -0
  319. data/app/assets/javascripts/ckeditor/_source/plugins/stylescombo/plugin.js +218 -0
  320. data/app/assets/javascripts/ckeditor/_source/plugins/stylesheetparser/plugin.js +148 -0
  321. data/app/assets/javascripts/ckeditor/_source/plugins/tab/plugin.js +367 -0
  322. data/app/assets/javascripts/ckeditor/_source/plugins/table/dialogs/table.js +623 -0
  323. data/app/assets/javascripts/ckeditor/_source/plugins/table/plugin.js +78 -0
  324. data/app/assets/javascripts/ckeditor/_source/plugins/tableresize/plugin.js +443 -0
  325. data/app/assets/javascripts/ckeditor/_source/plugins/tabletools/dialogs/tableCell.js +525 -0
  326. data/app/assets/javascripts/ckeditor/_source/plugins/tabletools/plugin.js +1194 -0
  327. data/app/assets/javascripts/ckeditor/_source/plugins/templates/dialogs/templates.js +234 -0
  328. data/app/assets/javascripts/ckeditor/_source/plugins/templates/plugin.js +99 -0
  329. data/app/assets/javascripts/ckeditor/_source/plugins/templates/templates/default.js +94 -0
  330. data/app/assets/javascripts/ckeditor/_source/plugins/templates/templates/images/template1.gif +0 -0
  331. data/app/assets/javascripts/ckeditor/_source/plugins/templates/templates/images/template2.gif +0 -0
  332. data/app/assets/javascripts/ckeditor/_source/plugins/templates/templates/images/template3.gif +0 -0
  333. data/app/assets/javascripts/ckeditor/_source/plugins/toolbar/plugin.js +545 -0
  334. data/app/assets/javascripts/ckeditor/_source/plugins/uicolor/dialogs/uicolor.js +205 -0
  335. data/app/assets/javascripts/ckeditor/_source/plugins/uicolor/lang/en.js +15 -0
  336. data/app/assets/javascripts/ckeditor/_source/plugins/uicolor/lang/he.js +15 -0
  337. data/app/assets/javascripts/ckeditor/_source/plugins/uicolor/plugin.js +37 -0
  338. data/app/assets/javascripts/ckeditor/_source/plugins/uicolor/uicolor.gif +0 -0
  339. data/app/assets/javascripts/ckeditor/_source/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  340. data/app/assets/javascripts/ckeditor/_source/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  341. data/app/assets/javascripts/ckeditor/_source/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  342. data/app/assets/javascripts/ckeditor/_source/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  343. data/app/assets/javascripts/ckeditor/_source/plugins/uicolor/yui/assets/yui.css +15 -0
  344. data/app/assets/javascripts/ckeditor/_source/plugins/uicolor/yui/yui.js +71 -0
  345. data/app/assets/javascripts/ckeditor/_source/plugins/undo/plugin.js +578 -0
  346. data/app/assets/javascripts/ckeditor/_source/plugins/wsc/dialogs/ciframe.html +49 -0
  347. data/app/assets/javascripts/ckeditor/_source/plugins/wsc/dialogs/tmpFrameset.html +52 -0
  348. data/app/assets/javascripts/ckeditor/_source/plugins/wsc/dialogs/wsc.css +82 -0
  349. data/app/assets/javascripts/ckeditor/_source/plugins/wsc/dialogs/wsc.js +192 -0
  350. data/app/assets/javascripts/ckeditor/_source/plugins/wsc/plugin.js +33 -0
  351. data/app/assets/javascripts/ckeditor/_source/plugins/wysiwygarea/plugin.js +1347 -0
  352. data/app/assets/javascripts/ckeditor/_source/plugins/xml/plugin.js +170 -0
  353. data/app/assets/javascripts/ckeditor/_source/skins/kama/dialog.css +989 -0
  354. data/app/assets/javascripts/ckeditor/_source/skins/kama/editor.css +25 -0
  355. data/app/assets/javascripts/ckeditor/_source/skins/kama/elementspath.css +73 -0
  356. data/app/assets/javascripts/ckeditor/_source/skins/kama/icons.css +366 -0
  357. data/app/assets/javascripts/ckeditor/_source/skins/kama/icons.png +0 -0
  358. data/app/assets/javascripts/ckeditor/_source/skins/kama/icons_rtl.png +0 -0
  359. data/app/assets/javascripts/ckeditor/_source/skins/kama/images/dialog_sides.gif +0 -0
  360. data/app/assets/javascripts/ckeditor/_source/skins/kama/images/dialog_sides.png +0 -0
  361. data/app/assets/javascripts/ckeditor/_source/skins/kama/images/dialog_sides_rtl.png +0 -0
  362. data/app/assets/javascripts/ckeditor/_source/skins/kama/images/mini.gif +0 -0
  363. data/app/assets/javascripts/ckeditor/_source/skins/kama/images/noimage.png +0 -0
  364. data/app/assets/javascripts/ckeditor/_source/skins/kama/images/sprites.png +0 -0
  365. data/app/assets/javascripts/ckeditor/_source/skins/kama/images/sprites_ie6.png +0 -0
  366. data/app/assets/javascripts/ckeditor/_source/skins/kama/images/toolbar_start.gif +0 -0
  367. data/app/assets/javascripts/ckeditor/_source/skins/kama/mainui.css +206 -0
  368. data/app/assets/javascripts/ckeditor/_source/skins/kama/menu.css +232 -0
  369. data/app/assets/javascripts/ckeditor/_source/skins/kama/panel.css +217 -0
  370. data/app/assets/javascripts/ckeditor/_source/skins/kama/presets.css +49 -0
  371. data/app/assets/javascripts/ckeditor/_source/skins/kama/reset.css +85 -0
  372. data/app/assets/javascripts/ckeditor/_source/skins/kama/richcombo.css +287 -0
  373. data/app/assets/javascripts/ckeditor/_source/skins/kama/skin.js +236 -0
  374. data/app/assets/javascripts/ckeditor/_source/skins/kama/templates.css +88 -0
  375. data/app/assets/javascripts/ckeditor/_source/skins/kama/toolbar.css +408 -0
  376. data/app/assets/javascripts/ckeditor/_source/skins/office2003/dialog.css +891 -0
  377. data/app/assets/javascripts/ckeditor/_source/skins/office2003/editor.css +25 -0
  378. data/app/assets/javascripts/ckeditor/_source/skins/office2003/elementspath.css +74 -0
  379. data/app/assets/javascripts/ckeditor/_source/skins/office2003/icons.css +363 -0
  380. data/app/assets/javascripts/ckeditor/_source/skins/office2003/icons.png +0 -0
  381. data/app/assets/javascripts/ckeditor/_source/skins/office2003/icons_rtl.png +0 -0
  382. data/app/assets/javascripts/ckeditor/_source/skins/office2003/images/dialog_sides.gif +0 -0
  383. data/app/assets/javascripts/ckeditor/_source/skins/office2003/images/dialog_sides.png +0 -0
  384. data/app/assets/javascripts/ckeditor/_source/skins/office2003/images/dialog_sides_rtl.png +0 -0
  385. data/app/assets/javascripts/ckeditor/_source/skins/office2003/images/mini.gif +0 -0
  386. data/app/assets/javascripts/ckeditor/_source/skins/office2003/images/noimage.png +0 -0
  387. data/app/assets/javascripts/ckeditor/_source/skins/office2003/images/sprites.png +0 -0
  388. data/app/assets/javascripts/ckeditor/_source/skins/office2003/images/sprites_ie6.png +0 -0
  389. data/app/assets/javascripts/ckeditor/_source/skins/office2003/mainui.css +153 -0
  390. data/app/assets/javascripts/ckeditor/_source/skins/office2003/menu.css +229 -0
  391. data/app/assets/javascripts/ckeditor/_source/skins/office2003/panel.css +212 -0
  392. data/app/assets/javascripts/ckeditor/_source/skins/office2003/presets.css +49 -0
  393. data/app/assets/javascripts/ckeditor/_source/skins/office2003/reset.css +85 -0
  394. data/app/assets/javascripts/ckeditor/_source/skins/office2003/richcombo.css +309 -0
  395. data/app/assets/javascripts/ckeditor/_source/skins/office2003/skin.js +74 -0
  396. data/app/assets/javascripts/ckeditor/_source/skins/office2003/templates.css +87 -0
  397. data/app/assets/javascripts/ckeditor/_source/skins/office2003/toolbar.css +522 -0
  398. data/app/assets/javascripts/ckeditor/_source/skins/v2/dialog.css +907 -0
  399. data/app/assets/javascripts/ckeditor/_source/skins/v2/editor.css +25 -0
  400. data/app/assets/javascripts/ckeditor/_source/skins/v2/elementspath.css +74 -0
  401. data/app/assets/javascripts/ckeditor/_source/skins/v2/icons.css +363 -0
  402. data/app/assets/javascripts/ckeditor/_source/skins/v2/icons.png +0 -0
  403. data/app/assets/javascripts/ckeditor/_source/skins/v2/icons_rtl.png +0 -0
  404. data/app/assets/javascripts/ckeditor/_source/skins/v2/images/dialog_sides.gif +0 -0
  405. data/app/assets/javascripts/ckeditor/_source/skins/v2/images/dialog_sides.png +0 -0
  406. data/app/assets/javascripts/ckeditor/_source/skins/v2/images/dialog_sides_rtl.png +0 -0
  407. data/app/assets/javascripts/ckeditor/_source/skins/v2/images/mini.gif +0 -0
  408. data/app/assets/javascripts/ckeditor/_source/skins/v2/images/noimage.png +0 -0
  409. data/app/assets/javascripts/ckeditor/_source/skins/v2/images/sprites.png +0 -0
  410. data/app/assets/javascripts/ckeditor/_source/skins/v2/images/sprites_ie6.png +0 -0
  411. data/app/assets/javascripts/ckeditor/_source/skins/v2/images/toolbar_start.gif +0 -0
  412. data/app/assets/javascripts/ckeditor/_source/skins/v2/mainui.css +162 -0
  413. data/app/assets/javascripts/ckeditor/_source/skins/v2/menu.css +232 -0
  414. data/app/assets/javascripts/ckeditor/_source/skins/v2/panel.css +212 -0
  415. data/app/assets/javascripts/ckeditor/_source/skins/v2/presets.css +50 -0
  416. data/app/assets/javascripts/ckeditor/_source/skins/v2/reset.css +85 -0
  417. data/app/assets/javascripts/ckeditor/_source/skins/v2/richcombo.css +302 -0
  418. data/app/assets/javascripts/ckeditor/_source/skins/v2/skin.js +70 -0
  419. data/app/assets/javascripts/ckeditor/_source/skins/v2/templates.css +87 -0
  420. data/app/assets/javascripts/ckeditor/_source/skins/v2/toolbar.css +465 -0
  421. data/app/assets/javascripts/ckeditor/_source/themes/default/theme.js +407 -0
  422. data/app/assets/javascripts/ckeditor/adapters/jquery.js +6 -0
  423. data/app/assets/javascripts/ckeditor/ckeditor.asp +955 -0
  424. data/app/assets/javascripts/ckeditor/ckeditor.js +149 -0
  425. data/app/assets/javascripts/ckeditor/ckeditor.pack +211 -0
  426. data/app/assets/javascripts/ckeditor/ckeditor.php +29 -0
  427. data/app/assets/javascripts/ckeditor/ckeditor_basic.js +8 -0
  428. data/app/assets/javascripts/ckeditor/ckeditor_basic_source.js +20 -0
  429. data/app/assets/javascripts/ckeditor/ckeditor_php4.php +566 -0
  430. data/app/assets/javascripts/ckeditor/ckeditor_php5.php +556 -0
  431. data/app/assets/javascripts/ckeditor/ckeditor_source.js +35 -0
  432. data/app/assets/javascripts/ckeditor/config.js +11 -0
  433. data/app/assets/javascripts/ckeditor/contents.css +25 -0
  434. data/app/assets/javascripts/ckeditor/images/spacer.gif +0 -0
  435. data/app/assets/javascripts/ckeditor/lang/_languages.js +6 -0
  436. data/app/assets/javascripts/ckeditor/lang/_translationstatus.txt +61 -0
  437. data/app/assets/javascripts/ckeditor/lang/af.js +6 -0
  438. data/app/assets/javascripts/ckeditor/lang/ar.js +6 -0
  439. data/app/assets/javascripts/ckeditor/lang/bg.js +6 -0
  440. data/app/assets/javascripts/ckeditor/lang/bn.js +6 -0
  441. data/app/assets/javascripts/ckeditor/lang/bs.js +6 -0
  442. data/app/assets/javascripts/ckeditor/lang/ca.js +6 -0
  443. data/app/assets/javascripts/ckeditor/lang/cs.js +6 -0
  444. data/app/assets/javascripts/ckeditor/lang/cy.js +6 -0
  445. data/app/assets/javascripts/ckeditor/lang/da.js +6 -0
  446. data/app/assets/javascripts/ckeditor/lang/de.js +6 -0
  447. data/app/assets/javascripts/ckeditor/lang/el.js +6 -0
  448. data/app/assets/javascripts/ckeditor/lang/en-au.js +6 -0
  449. data/app/assets/javascripts/ckeditor/lang/en-ca.js +6 -0
  450. data/app/assets/javascripts/ckeditor/lang/en-gb.js +6 -0
  451. data/app/assets/javascripts/ckeditor/lang/en.js +6 -0
  452. data/app/assets/javascripts/ckeditor/lang/eo.js +6 -0
  453. data/app/assets/javascripts/ckeditor/lang/es.js +6 -0
  454. data/app/assets/javascripts/ckeditor/lang/et.js +6 -0
  455. data/app/assets/javascripts/ckeditor/lang/eu.js +6 -0
  456. data/app/assets/javascripts/ckeditor/lang/fa.js +6 -0
  457. data/app/assets/javascripts/ckeditor/lang/fi.js +6 -0
  458. data/app/assets/javascripts/ckeditor/lang/fo.js +6 -0
  459. data/app/assets/javascripts/ckeditor/lang/fr-ca.js +6 -0
  460. data/app/assets/javascripts/ckeditor/lang/fr.js +6 -0
  461. data/app/assets/javascripts/ckeditor/lang/gl.js +6 -0
  462. data/app/assets/javascripts/ckeditor/lang/gu.js +6 -0
  463. data/app/assets/javascripts/ckeditor/lang/he.js +6 -0
  464. data/app/assets/javascripts/ckeditor/lang/hi.js +6 -0
  465. data/app/assets/javascripts/ckeditor/lang/hr.js +6 -0
  466. data/app/assets/javascripts/ckeditor/lang/hu.js +6 -0
  467. data/app/assets/javascripts/ckeditor/lang/is.js +6 -0
  468. data/app/assets/javascripts/ckeditor/lang/it.js +6 -0
  469. data/app/assets/javascripts/ckeditor/lang/ja.js +6 -0
  470. data/app/assets/javascripts/ckeditor/lang/ka.js +6 -0
  471. data/app/assets/javascripts/ckeditor/lang/km.js +6 -0
  472. data/app/assets/javascripts/ckeditor/lang/ko.js +6 -0
  473. data/app/assets/javascripts/ckeditor/lang/lt.js +6 -0
  474. data/app/assets/javascripts/ckeditor/lang/lv.js +6 -0
  475. data/app/assets/javascripts/ckeditor/lang/mn.js +6 -0
  476. data/app/assets/javascripts/ckeditor/lang/ms.js +6 -0
  477. data/app/assets/javascripts/ckeditor/lang/nb.js +6 -0
  478. data/app/assets/javascripts/ckeditor/lang/nl.js +6 -0
  479. data/app/assets/javascripts/ckeditor/lang/no.js +6 -0
  480. data/app/assets/javascripts/ckeditor/lang/pl.js +6 -0
  481. data/app/assets/javascripts/ckeditor/lang/pt-br.js +6 -0
  482. data/app/assets/javascripts/ckeditor/lang/pt.js +6 -0
  483. data/app/assets/javascripts/ckeditor/lang/ro.js +6 -0
  484. data/app/assets/javascripts/ckeditor/lang/ru.js +6 -0
  485. data/app/assets/javascripts/ckeditor/lang/sk.js +6 -0
  486. data/app/assets/javascripts/ckeditor/lang/sl.js +6 -0
  487. data/app/assets/javascripts/ckeditor/lang/sr-latn.js +6 -0
  488. data/app/assets/javascripts/ckeditor/lang/sr.js +6 -0
  489. data/app/assets/javascripts/ckeditor/lang/sv.js +6 -0
  490. data/app/assets/javascripts/ckeditor/lang/th.js +6 -0
  491. data/app/assets/javascripts/ckeditor/lang/tr.js +6 -0
  492. data/app/assets/javascripts/ckeditor/lang/uk.js +6 -0
  493. data/app/assets/javascripts/ckeditor/lang/vi.js +6 -0
  494. data/app/assets/javascripts/ckeditor/lang/zh-cn.js +6 -0
  495. data/app/assets/javascripts/ckeditor/lang/zh.js +6 -0
  496. data/app/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +7 -0
  497. data/app/assets/javascripts/ckeditor/plugins/a11yhelp/lang/en.js +6 -0
  498. data/app/assets/javascripts/ckeditor/plugins/a11yhelp/lang/he.js +6 -0
  499. data/app/assets/javascripts/ckeditor/plugins/about/dialogs/about.js +6 -0
  500. data/app/assets/javascripts/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  501. data/app/assets/javascripts/ckeditor/plugins/adobeair/plugin.js +6 -0
  502. data/app/assets/javascripts/ckeditor/plugins/ajax/plugin.js +6 -0
  503. data/app/assets/javascripts/ckeditor/plugins/autogrow/plugin.js +6 -0
  504. data/app/assets/javascripts/ckeditor/plugins/bbcode/plugin.js +9 -0
  505. data/app/assets/javascripts/ckeditor/plugins/clipboard/dialogs/paste.js +7 -0
  506. data/app/assets/javascripts/ckeditor/plugins/colordialog/dialogs/colordialog.js +7 -0
  507. data/app/assets/javascripts/ckeditor/plugins/devtools/lang/en.js +6 -0
  508. data/app/assets/javascripts/ckeditor/plugins/devtools/plugin.js +6 -0
  509. data/app/assets/javascripts/ckeditor/plugins/dialog/dialogDefinition.js +4 -0
  510. data/app/assets/javascripts/ckeditor/plugins/div/dialogs/div.js +8 -0
  511. data/app/assets/javascripts/ckeditor/plugins/docprops/dialogs/docprops.js +10 -0
  512. data/app/assets/javascripts/ckeditor/plugins/docprops/plugin.js +6 -0
  513. data/app/assets/javascripts/ckeditor/plugins/find/dialogs/find.js +10 -0
  514. data/app/assets/javascripts/ckeditor/plugins/flash/dialogs/flash.js +9 -0
  515. data/app/assets/javascripts/ckeditor/plugins/flash/images/placeholder.png +0 -0
  516. data/app/assets/javascripts/ckeditor/plugins/forms/dialogs/button.js +6 -0
  517. data/app/assets/javascripts/ckeditor/plugins/forms/dialogs/checkbox.js +6 -0
  518. data/app/assets/javascripts/ckeditor/plugins/forms/dialogs/form.js +6 -0
  519. data/app/assets/javascripts/ckeditor/plugins/forms/dialogs/hiddenfield.js +6 -0
  520. data/app/assets/javascripts/ckeditor/plugins/forms/dialogs/radio.js +6 -0
  521. data/app/assets/javascripts/ckeditor/plugins/forms/dialogs/select.js +9 -0
  522. data/app/assets/javascripts/ckeditor/plugins/forms/dialogs/textarea.js +6 -0
  523. data/app/assets/javascripts/ckeditor/plugins/forms/dialogs/textfield.js +6 -0
  524. data/app/assets/javascripts/ckeditor/plugins/forms/images/hiddenfield.gif +0 -0
  525. data/app/assets/javascripts/ckeditor/plugins/iframe/dialogs/iframe.js +7 -0
  526. data/app/assets/javascripts/ckeditor/plugins/iframe/images/placeholder.png +0 -0
  527. data/app/assets/javascripts/ckeditor/plugins/iframedialog/plugin.js +6 -0
  528. data/app/assets/javascripts/ckeditor/plugins/image/dialogs/image.js +13 -0
  529. data/app/assets/javascripts/ckeditor/plugins/link/dialogs/anchor.js +6 -0
  530. data/app/assets/javascripts/ckeditor/plugins/link/dialogs/link.js +12 -0
  531. data/app/assets/javascripts/ckeditor/plugins/link/images/anchor.gif +0 -0
  532. data/app/assets/javascripts/ckeditor/plugins/liststyle/dialogs/liststyle.js +7 -0
  533. data/app/assets/javascripts/ckeditor/plugins/pagebreak/images/pagebreak.gif +0 -0
  534. data/app/assets/javascripts/ckeditor/plugins/pastefromword/filter/default.js +11 -0
  535. data/app/assets/javascripts/ckeditor/plugins/pastetext/dialogs/pastetext.js +6 -0
  536. data/app/assets/javascripts/ckeditor/plugins/placeholder/dialogs/placeholder.js +6 -0
  537. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/en.js +6 -0
  538. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/he.js +6 -0
  539. data/app/assets/javascripts/ckeditor/plugins/placeholder/placeholder.gif +0 -0
  540. data/app/assets/javascripts/ckeditor/plugins/placeholder/plugin.js +6 -0
  541. data/app/assets/javascripts/ckeditor/plugins/scayt/dialogs/options.js +8 -0
  542. data/app/assets/javascripts/ckeditor/plugins/scayt/dialogs/toolbar.css +6 -0
  543. data/app/assets/javascripts/ckeditor/plugins/showblocks/images/block_address.png +0 -0
  544. data/app/assets/javascripts/ckeditor/plugins/showblocks/images/block_blockquote.png +0 -0
  545. data/app/assets/javascripts/ckeditor/plugins/showblocks/images/block_div.png +0 -0
  546. data/app/assets/javascripts/ckeditor/plugins/showblocks/images/block_h1.png +0 -0
  547. data/app/assets/javascripts/ckeditor/plugins/showblocks/images/block_h2.png +0 -0
  548. data/app/assets/javascripts/ckeditor/plugins/showblocks/images/block_h3.png +0 -0
  549. data/app/assets/javascripts/ckeditor/plugins/showblocks/images/block_h4.png +0 -0
  550. data/app/assets/javascripts/ckeditor/plugins/showblocks/images/block_h5.png +0 -0
  551. data/app/assets/javascripts/ckeditor/plugins/showblocks/images/block_h6.png +0 -0
  552. data/app/assets/javascripts/ckeditor/plugins/showblocks/images/block_p.png +0 -0
  553. data/app/assets/javascripts/ckeditor/plugins/showblocks/images/block_pre.png +0 -0
  554. data/app/assets/javascripts/ckeditor/plugins/smiley/dialogs/smiley.js +7 -0
  555. data/app/assets/javascripts/ckeditor/plugins/smiley/images/angel_smile.gif +0 -0
  556. data/app/assets/javascripts/ckeditor/plugins/smiley/images/angry_smile.gif +0 -0
  557. data/app/assets/javascripts/ckeditor/plugins/smiley/images/broken_heart.gif +0 -0
  558. data/app/assets/javascripts/ckeditor/plugins/smiley/images/confused_smile.gif +0 -0
  559. data/app/assets/javascripts/ckeditor/plugins/smiley/images/cry_smile.gif +0 -0
  560. data/app/assets/javascripts/ckeditor/plugins/smiley/images/devil_smile.gif +0 -0
  561. data/app/assets/javascripts/ckeditor/plugins/smiley/images/embaressed_smile.gif +0 -0
  562. data/app/assets/javascripts/ckeditor/plugins/smiley/images/envelope.gif +0 -0
  563. data/app/assets/javascripts/ckeditor/plugins/smiley/images/heart.gif +0 -0
  564. data/app/assets/javascripts/ckeditor/plugins/smiley/images/kiss.gif +0 -0
  565. data/app/assets/javascripts/ckeditor/plugins/smiley/images/lightbulb.gif +0 -0
  566. data/app/assets/javascripts/ckeditor/plugins/smiley/images/omg_smile.gif +0 -0
  567. data/app/assets/javascripts/ckeditor/plugins/smiley/images/regular_smile.gif +0 -0
  568. data/app/assets/javascripts/ckeditor/plugins/smiley/images/sad_smile.gif +0 -0
  569. data/app/assets/javascripts/ckeditor/plugins/smiley/images/shades_smile.gif +0 -0
  570. data/app/assets/javascripts/ckeditor/plugins/smiley/images/teeth_smile.gif +0 -0
  571. data/app/assets/javascripts/ckeditor/plugins/smiley/images/thumbs_down.gif +0 -0
  572. data/app/assets/javascripts/ckeditor/plugins/smiley/images/thumbs_up.gif +0 -0
  573. data/app/assets/javascripts/ckeditor/plugins/smiley/images/tounge_smile.gif +0 -0
  574. data/app/assets/javascripts/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  575. data/app/assets/javascripts/ckeditor/plugins/smiley/images/wink_smile.gif +0 -0
  576. data/app/assets/javascripts/ckeditor/plugins/specialchar/dialogs/specialchar.js +7 -0
  577. data/app/assets/javascripts/ckeditor/plugins/specialchar/lang/en.js +6 -0
  578. data/app/assets/javascripts/ckeditor/plugins/styles/styles/default.js +6 -0
  579. data/app/assets/javascripts/ckeditor/plugins/stylesheetparser/plugin.js +6 -0
  580. data/app/assets/javascripts/ckeditor/plugins/table/dialogs/table.js +9 -0
  581. data/app/assets/javascripts/ckeditor/plugins/tableresize/plugin.js +7 -0
  582. data/app/assets/javascripts/ckeditor/plugins/tabletools/dialogs/tableCell.js +8 -0
  583. data/app/assets/javascripts/ckeditor/plugins/templates/dialogs/templates.js +7 -0
  584. data/app/assets/javascripts/ckeditor/plugins/templates/templates/default.js +6 -0
  585. data/app/assets/javascripts/ckeditor/plugins/templates/templates/images/template1.gif +0 -0
  586. data/app/assets/javascripts/ckeditor/plugins/templates/templates/images/template2.gif +0 -0
  587. data/app/assets/javascripts/ckeditor/plugins/templates/templates/images/template3.gif +0 -0
  588. data/app/assets/javascripts/ckeditor/plugins/uicolor/dialogs/uicolor.js +7 -0
  589. data/app/assets/javascripts/ckeditor/plugins/uicolor/lang/en.js +6 -0
  590. data/app/assets/javascripts/ckeditor/plugins/uicolor/lang/he.js +6 -0
  591. data/app/assets/javascripts/ckeditor/plugins/uicolor/plugin.js +6 -0
  592. data/app/assets/javascripts/ckeditor/plugins/uicolor/uicolor.gif +0 -0
  593. data/app/assets/javascripts/ckeditor/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  594. data/app/assets/javascripts/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  595. data/app/assets/javascripts/ckeditor/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  596. data/app/assets/javascripts/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  597. data/app/assets/javascripts/ckeditor/plugins/uicolor/yui/assets/yui.css +6 -0
  598. data/app/assets/javascripts/ckeditor/plugins/uicolor/yui/yui.js +76 -0
  599. data/app/assets/javascripts/ckeditor/plugins/wsc/dialogs/ciframe.html +49 -0
  600. data/app/assets/javascripts/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +52 -0
  601. data/app/assets/javascripts/ckeditor/plugins/wsc/dialogs/wsc.css +6 -0
  602. data/app/assets/javascripts/ckeditor/plugins/wsc/dialogs/wsc.js +7 -0
  603. data/app/assets/javascripts/ckeditor/plugins/xml/plugin.js +6 -0
  604. data/app/assets/javascripts/ckeditor/skins/kama/dialog.css +10 -0
  605. data/app/assets/javascripts/ckeditor/skins/kama/editor.css +13 -0
  606. data/app/assets/javascripts/ckeditor/skins/kama/icons.png +0 -0
  607. data/app/assets/javascripts/ckeditor/skins/kama/icons_rtl.png +0 -0
  608. data/app/assets/javascripts/ckeditor/skins/kama/images/dialog_sides.gif +0 -0
  609. data/app/assets/javascripts/ckeditor/skins/kama/images/dialog_sides.png +0 -0
  610. data/app/assets/javascripts/ckeditor/skins/kama/images/dialog_sides_rtl.png +0 -0
  611. data/app/assets/javascripts/ckeditor/skins/kama/images/mini.gif +0 -0
  612. data/app/assets/javascripts/ckeditor/skins/kama/images/noimage.png +0 -0
  613. data/app/assets/javascripts/ckeditor/skins/kama/images/sprites.png +0 -0
  614. data/app/assets/javascripts/ckeditor/skins/kama/images/sprites_ie6.png +0 -0
  615. data/app/assets/javascripts/ckeditor/skins/kama/images/toolbar_start.gif +0 -0
  616. data/app/assets/javascripts/ckeditor/skins/kama/skin.js +7 -0
  617. data/app/assets/javascripts/ckeditor/skins/kama/templates.css +6 -0
  618. data/app/assets/javascripts/ckeditor/skins/office2003/dialog.css +9 -0
  619. data/app/assets/javascripts/ckeditor/skins/office2003/editor.css +14 -0
  620. data/app/assets/javascripts/ckeditor/skins/office2003/icons.png +0 -0
  621. data/app/assets/javascripts/ckeditor/skins/office2003/icons_rtl.png +0 -0
  622. data/app/assets/javascripts/ckeditor/skins/office2003/images/dialog_sides.gif +0 -0
  623. data/app/assets/javascripts/ckeditor/skins/office2003/images/dialog_sides.png +0 -0
  624. data/app/assets/javascripts/ckeditor/skins/office2003/images/dialog_sides_rtl.png +0 -0
  625. data/app/assets/javascripts/ckeditor/skins/office2003/images/mini.gif +0 -0
  626. data/app/assets/javascripts/ckeditor/skins/office2003/images/noimage.png +0 -0
  627. data/app/assets/javascripts/ckeditor/skins/office2003/images/sprites.png +0 -0
  628. data/app/assets/javascripts/ckeditor/skins/office2003/images/sprites_ie6.png +0 -0
  629. data/app/assets/javascripts/ckeditor/skins/office2003/skin.js +6 -0
  630. data/app/assets/javascripts/ckeditor/skins/office2003/templates.css +6 -0
  631. data/app/assets/javascripts/ckeditor/skins/v2/dialog.css +9 -0
  632. data/app/assets/javascripts/ckeditor/skins/v2/editor.css +13 -0
  633. data/app/assets/javascripts/ckeditor/skins/v2/icons.png +0 -0
  634. data/app/assets/javascripts/ckeditor/skins/v2/icons_rtl.png +0 -0
  635. data/app/assets/javascripts/ckeditor/skins/v2/images/dialog_sides.gif +0 -0
  636. data/app/assets/javascripts/ckeditor/skins/v2/images/dialog_sides.png +0 -0
  637. data/app/assets/javascripts/ckeditor/skins/v2/images/dialog_sides_rtl.png +0 -0
  638. data/app/assets/javascripts/ckeditor/skins/v2/images/mini.gif +0 -0
  639. data/app/assets/javascripts/ckeditor/skins/v2/images/noimage.png +0 -0
  640. data/app/assets/javascripts/ckeditor/skins/v2/images/sprites.png +0 -0
  641. data/app/assets/javascripts/ckeditor/skins/v2/images/sprites_ie6.png +0 -0
  642. data/app/assets/javascripts/ckeditor/skins/v2/images/toolbar_start.gif +0 -0
  643. data/app/assets/javascripts/ckeditor/skins/v2/skin.js +6 -0
  644. data/app/assets/javascripts/ckeditor/skins/v2/templates.css +6 -0
  645. data/app/assets/javascripts/ckeditor/themes/default/theme.js +8 -0
  646. data/app/assets/javascripts/refinery/ckeditor.js.coffee +61 -0
  647. data/app/assets/javascripts/refinery/wymeditor.js.coffee +3 -0
  648. data/app/assets/javascripts/wymeditor/lang/en.js +0 -0
  649. data/app/assets/javascripts/wymeditor/skins/refinery/skin.js +0 -0
  650. data/app/assets/stylesheets/ckeditor.css.sass +14 -0
  651. data/app/assets/stylesheets/refinery/ckeditor.css.sass +73 -0
  652. data/app/views/refinery/admin/pages/_page_part_field.html.haml +25 -0
  653. data/config/initializers/refinery/ckeditor.rb +6 -0
  654. data/lib/refinery/ckeditor/version.rb +5 -0
  655. data/lib/refinerycms-ckeditor.rb +7 -0
  656. data/refinerycms-ckeditor.gemspec +17 -0
  657. metadata +721 -0
@@ -0,0 +1,407 @@
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
+ * @name CKEDITOR.theme
8
+ * @class
9
+ */
10
+
11
+ CKEDITOR.themes.add( 'default', (function()
12
+ {
13
+ var hiddenSkins = {};
14
+
15
+ function checkSharedSpace( editor, spaceName )
16
+ {
17
+ var container,
18
+ element;
19
+
20
+ // Try to retrieve the target element from the sharedSpaces settings.
21
+ element = editor.config.sharedSpaces;
22
+ element = element && element[ spaceName ];
23
+ element = element && CKEDITOR.document.getById( element );
24
+
25
+ // If the element is available, we'll then create the container for
26
+ // the space.
27
+ if ( element )
28
+ {
29
+ // Creates an HTML structure that reproduces the editor class hierarchy.
30
+ var html =
31
+ '<span class="cke_shared "' +
32
+ ' dir="'+ editor.lang.dir + '"' +
33
+ '>' +
34
+ '<span class="' + editor.skinClass + ' ' + editor.id + ' cke_editor_' + editor.name + '">' +
35
+ '<span class="' + CKEDITOR.env.cssClass + '">' +
36
+ '<span class="cke_wrapper cke_' + editor.lang.dir + '">' +
37
+ '<span class="cke_editor">' +
38
+ '<div class="cke_' + spaceName + '">' +
39
+ '</div></span></span></span></span></span>';
40
+
41
+ var mainContainer = element.append( CKEDITOR.dom.element.createFromHtml( html, element.getDocument() ) );
42
+
43
+ // Only the first container starts visible. Others get hidden.
44
+ if ( element.getCustomData( 'cke_hasshared' ) )
45
+ mainContainer.hide();
46
+ else
47
+ element.setCustomData( 'cke_hasshared', 1 );
48
+
49
+ // Get the deeper inner <div>.
50
+ container = mainContainer.getChild( [0,0,0,0] );
51
+
52
+ // Save a reference to the shared space container.
53
+ !editor.sharedSpaces && ( editor.sharedSpaces = {} );
54
+ editor.sharedSpaces[ spaceName ] = container;
55
+
56
+ // When the editor gets focus, we show the space container, hiding others.
57
+ editor.on( 'focus', function()
58
+ {
59
+ for ( var i = 0, sibling, children = element.getChildren() ; ( sibling = children.getItem( i ) ) ; i++ )
60
+ {
61
+ if ( sibling.type == CKEDITOR.NODE_ELEMENT
62
+ && !sibling.equals( mainContainer )
63
+ && sibling.hasClass( 'cke_shared' ) )
64
+ {
65
+ sibling.hide();
66
+ }
67
+ }
68
+
69
+ mainContainer.show();
70
+ });
71
+
72
+ editor.on( 'destroy', function()
73
+ {
74
+ mainContainer.remove();
75
+ });
76
+ }
77
+
78
+ return container;
79
+ }
80
+
81
+ return /** @lends CKEDITOR.theme */ {
82
+ build : function( editor, themePath )
83
+ {
84
+ var name = editor.name,
85
+ element = editor.element,
86
+ elementMode = editor.elementMode;
87
+
88
+ if ( !element || elementMode == CKEDITOR.ELEMENT_MODE_NONE )
89
+ return;
90
+
91
+ if ( elementMode == CKEDITOR.ELEMENT_MODE_REPLACE )
92
+ element.hide();
93
+
94
+ // Get the HTML for the predefined spaces.
95
+ var topHtml = editor.fire( 'themeSpace', { space : 'top', html : '' } ).html;
96
+ var contentsHtml = editor.fire( 'themeSpace', { space : 'contents', html : '' } ).html;
97
+ var bottomHtml = editor.fireOnce( 'themeSpace', { space : 'bottom', html : '' } ).html;
98
+
99
+ var height = contentsHtml && editor.config.height;
100
+
101
+ var tabIndex = editor.config.tabIndex || editor.element.getAttribute( 'tabindex' ) || 0;
102
+
103
+ // The editor height is considered only if the contents space got filled.
104
+ if ( !contentsHtml )
105
+ height = 'auto';
106
+ else if ( !isNaN( height ) )
107
+ height += 'px';
108
+
109
+ var style = '';
110
+ var width = editor.config.width;
111
+
112
+ if ( width )
113
+ {
114
+ if ( !isNaN( width ) )
115
+ width += 'px';
116
+
117
+ style += "width: " + width + ";";
118
+ }
119
+
120
+ var sharedTop = topHtml && checkSharedSpace( editor, 'top' ),
121
+ sharedBottoms = checkSharedSpace( editor, 'bottom' );
122
+
123
+ sharedTop && ( sharedTop.setHtml( topHtml ) , topHtml = '' );
124
+ sharedBottoms && ( sharedBottoms.setHtml( bottomHtml ), bottomHtml = '' );
125
+
126
+ var hideSkin = '<style>.' + editor.skinClass + '{visibility:hidden;}</style>';
127
+ if ( hiddenSkins[ editor.skinClass ] )
128
+ hideSkin = '';
129
+ else
130
+ hiddenSkins[ editor.skinClass ] = 1;
131
+
132
+ var container = CKEDITOR.dom.element.createFromHtml( [
133
+ '<span' +
134
+ ' id="cke_', name, '"' +
135
+ ' class="', editor.skinClass, ' ', editor.id, ' cke_editor_', name, '"' +
136
+ ' dir="', editor.lang.dir, '"' +
137
+ ' title="', ( CKEDITOR.env.gecko ? ' ' : '' ), '"' +
138
+ ' lang="', editor.langCode, '"' +
139
+ ( CKEDITOR.env.webkit? ' tabindex="' + tabIndex + '"' : '' ) +
140
+ ' role="application"' +
141
+ ' aria-labelledby="cke_', name, '_arialbl"' +
142
+ ( style ? ' style="' + style + '"' : '' ) +
143
+ '>' +
144
+ '<span id="cke_', name, '_arialbl" class="cke_voice_label">' + editor.lang.editor + '</span>' +
145
+ '<span class="' , CKEDITOR.env.cssClass, '" role="presentation">' +
146
+ '<span class="cke_wrapper cke_', editor.lang.dir, '" role="presentation">' +
147
+ '<table class="cke_editor" border="0" cellspacing="0" cellpadding="0" role="presentation"><tbody>' +
148
+ '<tr', topHtml ? '' : ' style="display:none"', ' role="presentation"><td id="cke_top_' , name, '" class="cke_top" role="presentation">' , topHtml , '</td></tr>' +
149
+ '<tr', contentsHtml ? '' : ' style="display:none"', ' role="presentation"><td id="cke_contents_', name, '" class="cke_contents" style="height:', height, '" role="presentation">', contentsHtml, '</td></tr>' +
150
+ '<tr', bottomHtml ? '' : ' style="display:none"', ' role="presentation"><td id="cke_bottom_' , name, '" class="cke_bottom" role="presentation">' , bottomHtml , '</td></tr>' +
151
+ '</tbody></table>' +
152
+ //Hide the container when loading skins, later restored by skin css.
153
+ hideSkin +
154
+ '</span>' +
155
+ '</span>' +
156
+ '</span>' ].join( '' ) );
157
+
158
+ container.getChild( [1, 0, 0, 0, 0] ).unselectable();
159
+ container.getChild( [1, 0, 0, 0, 2] ).unselectable();
160
+
161
+ if ( elementMode == CKEDITOR.ELEMENT_MODE_REPLACE )
162
+ container.insertAfter( element );
163
+ else
164
+ element.append( container );
165
+
166
+ /**
167
+ * The DOM element that holds the main editor interface.
168
+ * @name CKEDITOR.editor.prototype.container
169
+ * @type CKEDITOR.dom.element
170
+ * @example
171
+ * var editor = CKEDITOR.instances.editor1;
172
+ * alert( <b>editor.container</b>.getName() ); "span"
173
+ */
174
+ editor.container = container;
175
+
176
+ // Disable browser context menu for editor's chrome.
177
+ container.disableContextMenu();
178
+
179
+ // Use a class to indicate that the current selection is in different direction than the UI.
180
+ editor.on( 'contentDirChanged', function( evt )
181
+ {
182
+ var func = ( editor.lang.dir != evt.data ? 'add' : 'remove' ) + 'Class';
183
+
184
+ container.getChild( 1 )[ func ]( 'cke_mixed_dir_content' );
185
+
186
+ // Put the mixed direction class on the respective element also for shared spaces.
187
+ var toolbarSpace = this.sharedSpaces && this.sharedSpaces[ this.config.toolbarLocation ];
188
+ toolbarSpace && toolbarSpace.getParent().getParent()[ func ]( 'cke_mixed_dir_content' );
189
+ });
190
+
191
+ editor.fireOnce( 'themeLoaded' );
192
+ editor.fireOnce( 'uiReady' );
193
+ },
194
+
195
+ buildDialog : function( editor )
196
+ {
197
+ var baseIdNumber = CKEDITOR.tools.getNextNumber();
198
+
199
+ var element = CKEDITOR.dom.element.createFromHtml( [
200
+ '<div class="', editor.id, '_dialog cke_editor_', editor.name.replace('.', '\\.'), '_dialog cke_skin_', editor.skinName,
201
+ '" dir="', editor.lang.dir, '"' +
202
+ ' lang="', editor.langCode, '"' +
203
+ ' role="dialog"' +
204
+ ' aria-labelledby="%title#"' +
205
+ '>' +
206
+ '<table class="cke_dialog', ' ' + CKEDITOR.env.cssClass,
207
+ ' cke_', editor.lang.dir, '" style="position:absolute" role="presentation">' +
208
+ '<tr><td role="presentation">' +
209
+ '<div class="%body" role="presentation">' +
210
+ '<div id="%title#" class="%title" role="presentation"></div>' +
211
+ '<a id="%close_button#" class="%close_button" href="javascript:void(0)" title="' + editor.lang.common.close+'" role="button"><span class="cke_label">X</span></a>' +
212
+ '<div id="%tabs#" class="%tabs" role="tablist"></div>' +
213
+ '<table class="%contents" role="presentation">' +
214
+ '<tr>' +
215
+ '<td id="%contents#" class="%contents" role="presentation"></td>' +
216
+ '</tr>' +
217
+ '<tr>' +
218
+ '<td id="%footer#" class="%footer" role="presentation"></td>' +
219
+ '</tr>' +
220
+ '</table>' +
221
+ '</div>' +
222
+ '<div id="%tl#" class="%tl"></div>' +
223
+ '<div id="%tc#" class="%tc"></div>' +
224
+ '<div id="%tr#" class="%tr"></div>' +
225
+ '<div id="%ml#" class="%ml"></div>' +
226
+ '<div id="%mr#" class="%mr"></div>' +
227
+ '<div id="%bl#" class="%bl"></div>' +
228
+ '<div id="%bc#" class="%bc"></div>' +
229
+ '<div id="%br#" class="%br"></div>' +
230
+ '</td></tr>' +
231
+ '</table>',
232
+
233
+ //Hide the container when loading skins, later restored by skin css.
234
+ ( CKEDITOR.env.ie ? '' : '<style>.cke_dialog{visibility:hidden;}</style>' ),
235
+
236
+ '</div>'
237
+ ].join( '' )
238
+ .replace( /#/g, '_' + baseIdNumber )
239
+ .replace( /%/g, 'cke_dialog_' ) );
240
+
241
+ var body = element.getChild( [ 0, 0, 0, 0, 0 ] ),
242
+ title = body.getChild( 0 ),
243
+ close = body.getChild( 1 );
244
+
245
+ // IFrame shim for dialog that masks activeX in IE. (#7619)
246
+ if ( CKEDITOR.env.ie && !CKEDITOR.env.ie6Compat )
247
+ {
248
+ var isCustomDomain = CKEDITOR.env.isCustomDomain(),
249
+ src = 'javascript:void(function(){' + encodeURIComponent( 'document.open();' + ( isCustomDomain ? ( 'document.domain="' + document.domain + '";' ) : '' ) + 'document.close();' ) + '}())',
250
+ iframe = CKEDITOR.dom.element.createFromHtml( '<iframe' +
251
+ ' frameBorder="0"' +
252
+ ' class="cke_iframe_shim"' +
253
+ ' src="' + src + '"' +
254
+ ' tabIndex="-1"' +
255
+ '></iframe>' );
256
+ iframe.appendTo( body.getParent() );
257
+ }
258
+
259
+ // Make the Title and Close Button unselectable.
260
+ title.unselectable();
261
+ close.unselectable();
262
+
263
+
264
+ return {
265
+ element : element,
266
+ parts :
267
+ {
268
+ dialog : element.getChild( 0 ),
269
+ title : title,
270
+ close : close,
271
+ tabs : body.getChild( 2 ),
272
+ contents : body.getChild( [ 3, 0, 0, 0 ] ),
273
+ footer : body.getChild( [ 3, 0, 1, 0 ] )
274
+ }
275
+ };
276
+ },
277
+
278
+ destroy : function( editor )
279
+ {
280
+ var container = editor.container,
281
+ element = editor.element;
282
+
283
+ if ( container )
284
+ {
285
+ container.clearCustomData();
286
+ container.remove();
287
+ }
288
+
289
+ if ( element )
290
+ {
291
+ element.clearCustomData();
292
+ editor.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE && element.show();
293
+ delete editor.element;
294
+ }
295
+ }
296
+ };
297
+ })() );
298
+
299
+ /**
300
+ * Returns the DOM element that represents a theme space. The default theme defines
301
+ * three spaces, namely "top", "contents" and "bottom", representing the main
302
+ * blocks that compose the editor interface.
303
+ * @param {String} spaceName The space name.
304
+ * @returns {CKEDITOR.dom.element} The element that represents the space.
305
+ * @example
306
+ * // Hide the bottom space in the UI.
307
+ * var bottom = editor.getThemeSpace( 'bottom' );
308
+ * bottom.setStyle( 'display', 'none' );
309
+ */
310
+ CKEDITOR.editor.prototype.getThemeSpace = function( spaceName )
311
+ {
312
+ var spacePrefix = 'cke_' + spaceName;
313
+ var space = this._[ spacePrefix ] ||
314
+ ( this._[ spacePrefix ] = CKEDITOR.document.getById( spacePrefix + '_' + this.name ) );
315
+ return space;
316
+ };
317
+
318
+ /**
319
+ * Resizes the editor interface.
320
+ * @param {Number|String} width The new width. It can be an pixels integer or a
321
+ * CSS size value.
322
+ * @param {Number|String} height The new height. It can be an pixels integer or
323
+ * a CSS size value.
324
+ * @param {Boolean} [isContentHeight] Indicates that the provided height is to
325
+ * be applied to the editor contents space, not to the entire editor
326
+ * interface. Defaults to false.
327
+ * @param {Boolean} [resizeInner] Indicates that the first inner interface
328
+ * element must receive the size, not the outer element. The default theme
329
+ * defines the interface inside a pair of span elements
330
+ * (&lt;span&gt;&lt;span&gt;...&lt;/span&gt;&lt;/span&gt;). By default the
331
+ * first span element receives the sizes. If this parameter is set to
332
+ * true, the second span is sized instead.
333
+ * @example
334
+ * editor.resize( 900, 300 );
335
+ * @example
336
+ * editor.resize( '100%', 450, true );
337
+ */
338
+ CKEDITOR.editor.prototype.resize = function( width, height, isContentHeight, resizeInner )
339
+ {
340
+ var container = this.container,
341
+ contents = CKEDITOR.document.getById( 'cke_contents_' + this.name ),
342
+ contentsFrame = CKEDITOR.env.webkit && this.document && this.document.getWindow().$.frameElement,
343
+ outer = resizeInner ? container.getChild( 1 ) : container;
344
+
345
+ // Set as border box width. (#5353)
346
+ outer.setSize( 'width', width, true );
347
+
348
+ // WebKit needs to refresh the iframe size to avoid rendering issues. (1/2) (#8348)
349
+ contentsFrame && ( contentsFrame.style.width = '1%' );
350
+
351
+ // Get the height delta between the outer table and the content area.
352
+ // If we're setting the content area's height, then we don't need the delta.
353
+ var delta = isContentHeight ? 0 : ( outer.$.offsetHeight || 0 ) - ( contents.$.clientHeight || 0 );
354
+ contents.setStyle( 'height', Math.max( height - delta, 0 ) + 'px' );
355
+
356
+ // WebKit needs to refresh the iframe size to avoid rendering issues. (2/2) (#8348)
357
+ contentsFrame && ( contentsFrame.style.width = '100%' );
358
+
359
+ // Emit a resize event.
360
+ this.fire( 'resize' );
361
+ };
362
+
363
+ /**
364
+ * Gets the element that can be freely used to check the editor size. This method
365
+ * is mainly used by the resize plugin, which adds a UI handle that can be used
366
+ * to resize the editor.
367
+ * @param {Boolean} forContents Whether to return the "contents" part of the theme instead of the container.
368
+ * @returns {CKEDITOR.dom.element} The resizable element.
369
+ * @example
370
+ */
371
+ CKEDITOR.editor.prototype.getResizable = function( forContents )
372
+ {
373
+ return forContents ? CKEDITOR.document.getById( 'cke_contents_' + this.name ) : this.container;
374
+ };
375
+
376
+ /**
377
+ * Makes it possible to place some of the editor UI blocks, like the toolbar
378
+ * and the elements path, into any element in the page.
379
+ * The elements used to hold the UI blocks can be shared among several editor
380
+ * instances. In that case, only the blocks of the active editor instance will
381
+ * display.
382
+ * @name CKEDITOR.config.sharedSpaces
383
+ * @type Object
384
+ * @default undefined
385
+ * @example
386
+ * // Place the toolbar inside the element with ID "someElementId" and the
387
+ * // elements path into the element with ID "anotherId".
388
+ * config.sharedSpaces =
389
+ * {
390
+ * top : 'someElementId',
391
+ * bottom : 'anotherId'
392
+ * };
393
+ * @example
394
+ * // Place the toolbar inside the element with ID "someElementId". The
395
+ * // elements path will remain attached to the editor UI.
396
+ * config.sharedSpaces =
397
+ * {
398
+ * top : 'someElementId'
399
+ * };
400
+ */
401
+
402
+ /**
403
+ * Fired after the editor instance is resized through
404
+ * the {@link CKEDITOR.editor.prototype.resize} method.
405
+ * @name CKEDITOR.editor#resize
406
+ * @event
407
+ */
@@ -0,0 +1,6 @@
1
+ /*
2
+ Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ (function(){CKEDITOR.config.jqueryOverrideVal=typeof CKEDITOR.config.jqueryOverrideVal=='undefined'?true:CKEDITOR.config.jqueryOverrideVal;var a=window.jQuery;if(typeof a=='undefined')return;a.extend(a.fn,{ckeditorGet:function(){var b=this.eq(0).data('ckeditorInstance');if(!b)throw 'CKEditor not yet initialized, use ckeditor() with callback.';return b;},ckeditor:function(b,c){if(!CKEDITOR.env.isCompatible)return this;if(!a.isFunction(b)){var d=c;c=b;b=d;}c=c||{};this.filter('textarea, div, p').each(function(){var e=a(this),f=e.data('ckeditorInstance'),g=e.data('_ckeditorInstanceLock'),h=this;if(f&&!g){if(b)b.apply(f,[this]);}else if(!g){if(c.autoUpdateElement||typeof c.autoUpdateElement=='undefined'&&CKEDITOR.config.autoUpdateElement)c.autoUpdateElementJquery=true;c.autoUpdateElement=false;e.data('_ckeditorInstanceLock',true);f=CKEDITOR.replace(h,c);e.data('ckeditorInstance',f);f.on('instanceReady',function(i){var j=i.editor;setTimeout(function(){if(!j.element){setTimeout(arguments.callee,100);return;}i.removeListener('instanceReady',this.callee);j.on('dataReady',function(){e.trigger('setData.ckeditor',[j]);});j.on('getData',function(l){e.trigger('getData.ckeditor',[j,l.data]);},999);j.on('destroy',function(){e.trigger('destroy.ckeditor',[j]);});if(j.config.autoUpdateElementJquery&&e.is('textarea')&&e.parents('form').length){var k=function(){e.ckeditor(function(){j.updateElement();});};e.parents('form').submit(k);e.parents('form').bind('form-pre-serialize',k);e.bind('destroy.ckeditor',function(){e.parents('form').unbind('submit',k);e.parents('form').unbind('form-pre-serialize',k);});}j.on('destroy',function(){e.data('ckeditorInstance',null);});e.data('_ckeditorInstanceLock',null);e.trigger('instanceReady.ckeditor',[j]);if(b)b.apply(j,[h]);},0);},null,null,9999);}else CKEDITOR.on('instanceReady',function(i){var j=i.editor;setTimeout(function(){if(!j.element){setTimeout(arguments.callee,100);return;}if(j.element.$==h)if(b)b.apply(j,[h]);},0);},null,null,9999);});return this;}});if(CKEDITOR.config.jqueryOverrideVal)a.fn.val=CKEDITOR.tools.override(a.fn.val,function(b){return function(c,d){var e=typeof c!='undefined',f;this.each(function(){var g=a(this),h=g.data('ckeditorInstance');if(!d&&g.is('textarea')&&h){if(e)h.setData(c);else{f=h.getData();return null;}}else if(e)b.call(g,c);else{f=b.call(g);return null;}return true;});return e?this:f;};});})();
@@ -0,0 +1,955 @@
1
+ <%
2
+ '
3
+ ' Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
4
+ ' For licensing, see LICENSE.html or http://ckeditor.com/license
5
+
6
+ ' Shared variable for all instances ("static")
7
+ dim CKEDITOR_initComplete
8
+ dim CKEDITOR_returnedEvents
9
+
10
+ ''
11
+ ' \brief CKEditor class that can be used to create editor
12
+ ' instances in ASP pages on server side.
13
+ ' @see http://ckeditor.com
14
+ '
15
+ ' Sample usage:
16
+ ' @code
17
+ ' editor = new CKEditor
18
+ ' editor.editor "editor1", "<p>Initial value.</p>", empty, empty
19
+ ' @endcode
20
+
21
+ Class CKEditor
22
+
23
+ ''
24
+ ' The version of %CKEditor.
25
+ private version
26
+
27
+ ''
28
+ ' A constant string unique for each release of %CKEditor.
29
+ private mTimeStamp
30
+
31
+ ''
32
+ ' URL to the %CKEditor installation directory (absolute or relative to document root).
33
+ ' If not set, CKEditor will try to guess it's path.
34
+ '
35
+ ' Example usage:
36
+ ' @code
37
+ ' editor.basePath = "/ckeditor/"
38
+ ' @endcode
39
+ Public basePath
40
+
41
+ ''
42
+ ' A boolean variable indicating whether CKEditor has been initialized.
43
+ ' Set it to true only if you have already included
44
+ ' &lt;script&gt; tag loading ckeditor.js in your website.
45
+ Public initialized
46
+
47
+ ''
48
+ ' Boolean variable indicating whether created code should be printed out or returned by a function.
49
+ '
50
+ ' Example 1: get the code creating %CKEditor instance and print it on a page with the "echo" function.
51
+ ' @code
52
+ ' editor = new CKEditor
53
+ ' editor.returnOutput = true
54
+ ' code = editor.editor("editor1", "<p>Initial value.</p>", empty, empty)
55
+ ' response.write "<p>Editor 1:</p>"
56
+ ' response.write code
57
+ ' @endcode
58
+ Public returnOutput
59
+
60
+ ''
61
+ ' A Dictionary with textarea attributes.
62
+ '
63
+ ' When %CKEditor is created with the editor() method, a HTML &lt;textarea&gt; element is created,
64
+ ' it will be displayed to anyone with JavaScript disabled or with incompatible browser.
65
+ public textareaAttributes
66
+
67
+ ''
68
+ ' A string indicating the creation date of %CKEditor.
69
+ ' Do not change it unless you want to force browsers to not use previously cached version of %CKEditor.
70
+ public timestamp
71
+
72
+ ''
73
+ ' A dictionary that holds the instance configuration.
74
+ private oInstanceConfig
75
+
76
+ ''
77
+ ' A dictionary that holds the configuration for all the instances.
78
+ private oAllInstancesConfig
79
+
80
+ ''
81
+ ' A dictionary that holds event listeners for the instance.
82
+ private oInstanceEvents
83
+
84
+ ''
85
+ ' A dictionary that holds event listeners for all the instances.
86
+ private oAllInstancesEvents
87
+
88
+ ''
89
+ ' A Dictionary that holds global event listeners (CKEDITOR object)
90
+ private oGlobalEvents
91
+
92
+
93
+ Private Sub Class_Initialize()
94
+ version = "3.6.2"
95
+ timeStamp = "B8DJ5M3"
96
+ mTimeStamp = "B8DJ5M3"
97
+
98
+ Set oInstanceConfig = CreateObject("Scripting.Dictionary")
99
+ Set oAllInstancesConfig = CreateObject("Scripting.Dictionary")
100
+
101
+ Set oInstanceEvents = CreateObject("Scripting.Dictionary")
102
+ Set oAllInstancesEvents = CreateObject("Scripting.Dictionary")
103
+ Set oGlobalEvents = CreateObject("Scripting.Dictionary")
104
+
105
+ Set textareaAttributes = CreateObject("Scripting.Dictionary")
106
+ textareaAttributes.Add "rows", 8
107
+ textareaAttributes.Add "cols", 60
108
+ End Sub
109
+
110
+ ''
111
+ ' Creates a %CKEditor instance.
112
+ ' In incompatible browsers %CKEditor will downgrade to plain HTML &lt;textarea&gt; element.
113
+ '
114
+ ' @param name (string) Name of the %CKEditor instance (this will be also the "name" attribute of textarea element).
115
+ ' @param value (string) Initial value.
116
+ '
117
+ ' Example usage:
118
+ ' @code
119
+ ' set editor = New CKEditor
120
+ ' editor.editor "field1", "<p>Initial value.</p>"
121
+ ' @endcode
122
+ '
123
+ ' Advanced example:
124
+ ' @code
125
+ ' set editor = new CKEditor
126
+ ' set config = CreateObject("Scripting.Dictionary")
127
+ ' config.Add "toolbar", Array( _
128
+ ' Array( "Source", "-", "Bold", "Italic", "Underline", "Strike" ), _
129
+ ' Array( "Image", "Link", "Unlink", "Anchor" ) _
130
+ ' )
131
+ ' set events = CreateObject("Scripting.Dictionary")
132
+ ' events.Add "instanceReady", "function (evt) { alert('Loaded second editor: ' + evt.editor.name );}"
133
+
134
+ ' editor.editor "field1", "<p>Initial value.</p>", config, events
135
+ ' @endcode
136
+ '
137
+ public function editor(name, value)
138
+ dim attr, out, js, customConfig, extraConfig
139
+ dim attribute
140
+
141
+ attr = ""
142
+
143
+ for each attribute in textareaAttributes
144
+ attr = attr & " " & attribute & "=""" & replace( textareaAttributes( attribute ), """", "&quot" ) & """"
145
+ next
146
+
147
+ out = "<textarea name=""" & name & """" & attr & ">" & Server.HtmlEncode(value) & "</textarea>" & vbcrlf
148
+
149
+ if not(initialized) then
150
+ out = out & init()
151
+ end if
152
+
153
+ set customConfig = configSettings()
154
+ js = returnGlobalEvents()
155
+
156
+ extraConfig = (new JSON)( empty, customConfig, false )
157
+ if extraConfig<>"" then extraConfig = ", " & extraConfig
158
+ js = js & "CKEDITOR.replace('" & name & "'" & extraConfig & ");"
159
+
160
+ out = out & script(js)
161
+
162
+ if not(returnOutput) then
163
+ response.write out
164
+ out = ""
165
+ end if
166
+
167
+ editor = out
168
+
169
+ oInstanceConfig.RemoveAll
170
+ oInstanceEvents.RemoveAll
171
+ end function
172
+
173
+ ''
174
+ ' Replaces a &lt;textarea&gt; with a %CKEditor instance.
175
+ '
176
+ ' @param id (string) The id or name of textarea element.
177
+ '
178
+ ' Example 1: adding %CKEditor to &lt;textarea name="article"&gt;&lt;/textarea&gt; element:
179
+ ' @code
180
+ ' set editor = New CKEditor
181
+ ' editor.replace "article"
182
+ ' @endcode
183
+ '
184
+ public function replaceInstance(id)
185
+ dim out, js, customConfig, extraConfig
186
+
187
+ out = ""
188
+ if not(initialized) then
189
+ out = out & init()
190
+ end if
191
+
192
+ set customConfig = configSettings()
193
+ js = returnGlobalEvents()
194
+
195
+ extraConfig = (new JSON)( empty, customConfig, false )
196
+ if extraConfig<>"" then extraConfig = ", " & extraConfig
197
+ js = js & "CKEDITOR.replace('" & id & "'" & extraConfig & ");"
198
+
199
+ out = out & script(js)
200
+
201
+ if not(returnOutput) then
202
+ response.write out
203
+ out = ""
204
+ end if
205
+
206
+ replaceInstance = out
207
+
208
+ oInstanceConfig.RemoveAll
209
+ oInstanceEvents.RemoveAll
210
+ end function
211
+
212
+ ''
213
+ ' Replace all &lt;textarea&gt; elements available in the document with editor instances.
214
+ '
215
+ ' @param className (string) If set, replace all textareas with class className in the page.
216
+ '
217
+ ' Example 1: replace all &lt;textarea&gt; elements in the page.
218
+ ' @code
219
+ ' editor = new CKEditor
220
+ ' editor.replaceAll empty
221
+ ' @endcode
222
+ '
223
+ ' Example 2: replace all &lt;textarea class="myClassName"&gt; elements in the page.
224
+ ' @code
225
+ ' editor = new CKEditor
226
+ ' editor.replaceAll 'myClassName'
227
+ ' @endcode
228
+ '
229
+ function replaceAll(className)
230
+ dim out, js, customConfig
231
+
232
+ out = ""
233
+ if not(initialized) then
234
+ out = out & init()
235
+ end if
236
+
237
+ set customConfig = configSettings()
238
+ js = returnGlobalEvents()
239
+
240
+ if (customConfig.Count=0) then
241
+ if (isEmpty(className)) then
242
+ js = js & "CKEDITOR.replaceAll();"
243
+ else
244
+ js = js & "CKEDITOR.replaceAll('" & className & "');"
245
+ end if
246
+ else
247
+ js = js & "CKEDITOR.replaceAll( function(textarea, config) {\n"
248
+ if not(isEmpty(className)) then
249
+ js = js & " var classRegex = new RegExp('(?:^| )' + '" & className & "' + '(?:$| )');\n"
250
+ js = js & " if (!classRegex.test(textarea.className))\n"
251
+ js = js & " return false;\n"
252
+ end if
253
+ js = js & " CKEDITOR.tools.extend(config, " & (new JSON)( empty, customConfig, false ) & ", true);"
254
+ js = js & "} );"
255
+ end if
256
+
257
+ out = out & script(js)
258
+
259
+ if not(returnOutput) then
260
+ response.write out
261
+ out = ""
262
+ end if
263
+
264
+ replaceAll = out
265
+
266
+ oInstanceConfig.RemoveAll
267
+ oInstanceEvents.RemoveAll
268
+ end function
269
+
270
+
271
+ ''
272
+ ' A Dictionary that holds the %CKEditor configuration for all instances
273
+ ' For the list of available options, see http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html
274
+ '
275
+ ' Example usage:
276
+ ' @code
277
+ ' editor.config("height") = 400
278
+ ' // Use @@ at the beggining of a string to ouput it without surrounding quotes.
279
+ ' editor.config("width") = "@@screen.width * 0.8"
280
+ ' @endcode
281
+ Public Property Let Config( configKey, configValue )
282
+ oAllInstancesConfig.Add configKey, configValue
283
+ End Property
284
+
285
+ ''
286
+ ' Configuration options for the next instance
287
+ '
288
+ Public Property Let instanceConfig( configKey, configValue )
289
+ oInstanceConfig.Add configKey, configValue
290
+ End Property
291
+
292
+ ''
293
+ ' Adds event listener.
294
+ ' Events are fired by %CKEditor in various situations.
295
+ '
296
+ ' @param eventName (string) Event name.
297
+ ' @param javascriptCode (string) Javascript anonymous function or function name.
298
+ '
299
+ ' Example usage:
300
+ ' @code
301
+ ' editor.addEventHandler "instanceReady", "function (ev) { " & _
302
+ ' " alert('Loaded: ' + ev.editor.name); " & _
303
+ ' "}"
304
+ ' @endcode
305
+ '
306
+ public sub addEventHandler(eventName, javascriptCode)
307
+ if not(oAllInstancesEvents.Exists( eventName ) ) then
308
+ oAllInstancesEvents.Add eventName, Array()
309
+ end if
310
+
311
+ dim listeners, size
312
+ listeners = oAllInstancesEvents( eventName )
313
+ size = ubound(listeners) + 1
314
+ redim preserve listeners(size)
315
+ listeners(size) = javascriptCode
316
+
317
+ oAllInstancesEvents( eventName ) = listeners
318
+ ' '' Avoid duplicates. fixme...
319
+ ' if (!in_array($javascriptCode, $this->_events[$event])) {
320
+ ' $this->_events[$event][] = $javascriptCode;
321
+ ' }
322
+ end sub
323
+
324
+ ''
325
+ ' Clear registered event handlers.
326
+ ' Note: this function will have no effect on already created editor instances.
327
+ '
328
+ ' @param eventName (string) Event name, if set to 'empty' all event handlers will be removed.
329
+ '
330
+ public sub clearEventHandlers( eventName )
331
+ if not(isEmpty( eventName )) then
332
+ oAllInstancesEvents.Remove eventName
333
+ else
334
+ oAllInstancesEvents.RemoveAll
335
+ end if
336
+ end sub
337
+
338
+
339
+ ''
340
+ ' Adds event listener only for the next instance.
341
+ ' Events are fired by %CKEditor in various situations.
342
+ '
343
+ ' @param eventName (string) Event name.
344
+ ' @param javascriptCode (string) Javascript anonymous function or function name.
345
+ '
346
+ ' Example usage:
347
+ ' @code
348
+ ' editor.addInstanceEventHandler "instanceReady", "function (ev) { " & _
349
+ ' " alert('Loaded: ' + ev.editor.name); " & _
350
+ ' "}"
351
+ ' @endcode
352
+ '
353
+ public sub addInstanceEventHandler(eventName, javascriptCode)
354
+ if not(oInstanceEvents.Exists( eventName ) ) then
355
+ oInstanceEvents.Add eventName, Array()
356
+ end if
357
+
358
+ dim listeners, size
359
+ listeners = oInstanceEvents( eventName )
360
+ size = ubound(listeners) + 1
361
+ redim preserve listeners(size)
362
+ listeners(size) = javascriptCode
363
+
364
+ oInstanceEvents( eventName ) = listeners
365
+ ' '' Avoid duplicates. fixme...
366
+ ' if (!in_array($javascriptCode, $this->_events[$event])) {
367
+ ' $this->_events[$event][] = $javascriptCode;
368
+ ' }
369
+ end sub
370
+
371
+ ''
372
+ ' Clear registered event handlers.
373
+ ' Note: this function will have no effect on already created editor instances.
374
+ '
375
+ ' @param eventName (string) Event name, if set to 'empty' all event handlers will be removed.
376
+ '
377
+ public sub clearInstanceEventHandlers( eventName )
378
+ if not(isEmpty( eventName )) then
379
+ oInstanceEvents.Remove eventName
380
+ else
381
+ oInstanceEvents.RemoveAll
382
+ end if
383
+ end sub
384
+
385
+ ''
386
+ ' Adds global event listener.
387
+ '
388
+ ' @param event (string) Event name.
389
+ ' @param javascriptCode (string) Javascript anonymous function or function name.
390
+ '
391
+ ' Example usage:
392
+ ' @code
393
+ ' editor.addGlobalEventHandler "dialogDefinition", "function (ev) { " & _
394
+ ' " alert('Loading dialog: ' + ev.data.name); " & _
395
+ ' "}"
396
+ ' @endcode
397
+ '
398
+ public sub addGlobalEventHandler( eventName, javascriptCode)
399
+ if not(oGlobalEvents.Exists( eventName ) ) then
400
+ oGlobalEvents.Add eventName, Array()
401
+ end if
402
+
403
+ dim listeners, size
404
+ listeners = oGlobalEvents( eventName )
405
+ size = ubound(listeners) + 1
406
+ redim preserve listeners(size)
407
+ listeners(size) = javascriptCode
408
+
409
+ oGlobalEvents( eventName ) = listeners
410
+
411
+ ' // Avoid duplicates.
412
+ ' if (!in_array($javascriptCode, $this->_globalEvents[$event])) {
413
+ ' $this->_globalEvents[$event][] = $javascriptCode;
414
+ ' }
415
+ end sub
416
+
417
+ ''
418
+ ' Clear registered global event handlers.
419
+ ' Note: this function will have no effect if the event handler has been already printed/returned.
420
+ '
421
+ ' @param eventName (string) Event name, if set to 'empty' all event handlers will be removed .
422
+ '
423
+ public sub clearGlobalEventHandlers( eventName )
424
+ if not(isEmpty( eventName )) then
425
+ oGlobalEvents.Remove eventName
426
+ else
427
+ oGlobalEvents.RemoveAll
428
+ end if
429
+ end sub
430
+
431
+ ''
432
+ ' Prints javascript code.
433
+ '
434
+ ' @param string js
435
+ '
436
+ private function script(js)
437
+ script = "<script type=""text/javascript"">" & _
438
+ "//<![CDATA[" & vbcrlf & _
439
+ js & vbcrlf & _
440
+ "//]]>" & _
441
+ "</script>" & vbcrlf
442
+ end function
443
+
444
+ ''
445
+ ' Returns the configuration array (global and instance specific settings are merged into one array).
446
+ '
447
+ ' @param instanceConfig (Dictionary) The specific configurations to apply to editor instance.
448
+ ' @param instanceEvents (Dictionary) Event listeners for editor instance.
449
+ '
450
+ private function configSettings()
451
+ dim mergedConfig, mergedEvents
452
+ set mergedConfig = cloneDictionary(oAllInstancesConfig)
453
+ set mergedEvents = cloneDictionary(oAllInstancesEvents)
454
+
455
+ if not(isEmpty(oInstanceConfig)) then
456
+ set mergedConfig = mergeDictionary(mergedConfig, oInstanceConfig)
457
+ end if
458
+
459
+ if not(isEmpty(oInstanceEvents)) then
460
+ for each eventName in oInstanceEvents
461
+ code = oInstanceEvents( eventName )
462
+
463
+ if not(mergedEvents.Exists( eventName)) then
464
+ mergedEvents.Add eventName, code
465
+ else
466
+
467
+ dim listeners, size
468
+ listeners = mergedEvents( eventName )
469
+ size = ubound(listeners)
470
+ if isArray( code ) then
471
+ addedCount = ubound(code)
472
+ redim preserve listeners( size + addedCount + 1 )
473
+ for i = 0 to addedCount
474
+ listeners(size + i + 1) = code (i)
475
+ next
476
+ else
477
+ size = size + 1
478
+ redim preserve listeners(size)
479
+ listeners(size) = code
480
+ end if
481
+
482
+ mergedEvents( eventName ) = listeners
483
+ end if
484
+ next
485
+
486
+ end if
487
+
488
+ dim i, eventName, handlers, configON, ub, code
489
+
490
+ if mergedEvents.Count>0 then
491
+ if mergedConfig.Exists( "on" ) then
492
+ set configON = mergedConfig.items( "on" )
493
+ else
494
+ set configON = CreateObject("Scripting.Dictionary")
495
+ mergedConfig.Add "on", configOn
496
+ end if
497
+
498
+ for each eventName in mergedEvents
499
+ handlers = mergedEvents( eventName )
500
+ code = ""
501
+
502
+ if isArray(handlers) then
503
+ uB = ubound(handlers)
504
+ if (uB = 0) then
505
+ code = handlers(0)
506
+ else
507
+ code = "function (ev) {"
508
+ for i=0 to uB
509
+ code = code & "(" & handlers(i) & ")(ev);"
510
+ next
511
+ code = code & "}"
512
+ end if
513
+ else
514
+ code = handlers
515
+ end if
516
+ ' Using @@ at the beggining to signal JSON that we don't want this quoted.
517
+ configON.Add eventName, "@@" & code
518
+ next
519
+
520
+ ' set mergedConfig.Item("on") = configOn
521
+ end if
522
+
523
+ set configSettings = mergedConfig
524
+ end function
525
+
526
+ ''
527
+ ' Returns a copy of a scripting.dictionary object
528
+ '
529
+ private function cloneDictionary( base )
530
+ dim newOne, tmpKey
531
+
532
+ Set newOne = CreateObject("Scripting.Dictionary")
533
+ for each tmpKey in base
534
+ newOne.Add tmpKey , base( tmpKey )
535
+ next
536
+
537
+ set cloneDictionary = newOne
538
+ end function
539
+
540
+ ''
541
+ ' Combines two scripting.dictionary objects
542
+ ' The base object isn't modified, and extra gets all the properties in base
543
+ '
544
+ private function mergeDictionary(base, extra)
545
+ dim newOne, tmpKey
546
+
547
+ for each tmpKey in base
548
+ if not(extra.Exists( tmpKey )) then
549
+ extra.Add tmpKey, base( tmpKey )
550
+ end if
551
+ next
552
+
553
+ set mergeDictionary = extra
554
+ end function
555
+
556
+ ''
557
+ ' Return global event handlers.
558
+ '
559
+ private function returnGlobalEvents()
560
+ dim out, eventName, handlers
561
+ dim handlersForEvent, handler, code, i
562
+ out = ""
563
+
564
+ if (isempty(CKEDITOR_returnedEvents)) then
565
+ set CKEDITOR_returnedEvents = CreateObject("Scripting.Dictionary")
566
+ end if
567
+
568
+ for each eventName in oGlobalEvents
569
+ handlers = oGlobalEvents( eventName )
570
+
571
+ if not(CKEDITOR_returnedEvents.Exists(eventName)) then
572
+ CKEDITOR_returnedEvents.Add eventName, CreateObject("Scripting.Dictionary")
573
+ end if
574
+
575
+ set handlersForEvent = CKEDITOR_returnedEvents.Item( eventName )
576
+
577
+ ' handlersForEvent is another dictionary
578
+ ' and handlers is an array
579
+
580
+ for i = 0 to ubound(handlers)
581
+ code = handlers( i )
582
+
583
+ ' Return only new events
584
+ if not(handlersForEvent.Exists( code )) then
585
+ if (out <> "") then out = out & vbcrlf
586
+ out = out & "CKEDITOR.on('" & eventName & "', " & code & ");"
587
+ handlersForEvent.Add code, code
588
+ end if
589
+ next
590
+ next
591
+
592
+ returnGlobalEvents = out
593
+ end function
594
+
595
+ ''
596
+ ' Initializes CKEditor (executed only once).
597
+ '
598
+ private function init()
599
+ dim out, args, path, extraCode, file
600
+ out = ""
601
+
602
+ if (CKEDITOR_initComplete) then
603
+ init = ""
604
+ exit function
605
+ end if
606
+
607
+ if (initialized) then
608
+ CKEDITOR_initComplete = true
609
+ init = ""
610
+ exit function
611
+ end if
612
+
613
+ args = ""
614
+ path = ckeditorPath()
615
+
616
+ if (timestamp <> "") and (timestamp <> "%" & "TIMESTAMP%") then
617
+ args = "?t=" & timestamp
618
+ end if
619
+
620
+ ' Skip relative paths...
621
+ if (instr(path, "..") <> 0) then
622
+ out = out & script("window.CKEDITOR_BASEPATH='" & path & "';")
623
+ end if
624
+
625
+ out = out & "<scr" & "ipt type=""text/javascript"" src=""" & path & ckeditorFileName() & args & """></scr" & "ipt>" & vbcrlf
626
+
627
+ extraCode = ""
628
+ if (timestamp <> mTimeStamp) then
629
+ extraCode = extraCode & "CKEDITOR.timestamp = '" & timestamp & "';"
630
+ end if
631
+ if (extraCode <> "") then
632
+ out = out & script(extraCode)
633
+ end if
634
+
635
+ CKEDITOR_initComplete = true
636
+ initialized = true
637
+
638
+ init = out
639
+ end function
640
+
641
+ private function ckeditorFileName()
642
+ ckeditorFileName = "ckeditor.js"
643
+ end function
644
+
645
+ ''
646
+ ' Return path to ckeditor.js.
647
+ '
648
+ private function ckeditorPath()
649
+ if (basePath <> "") then
650
+ ckeditorPath = basePath
651
+ else
652
+ ' In classic ASP we can't get the location of this included script
653
+ ckeditorPath = "/ckeditor/"
654
+ end if
655
+
656
+ ' Try to check if that folder contains the CKEditor files:
657
+ ' If it's a full URL avoid checking it as it might point to an external server.
658
+ if (instr(ckeditorPath, "://") <> 0) then exit function
659
+
660
+ dim filename, oFSO, exists
661
+ filename = server.mapPath(basePath & ckeditorFileName())
662
+ set oFSO = Server.CreateObject("Scripting.FileSystemObject")
663
+ exists = oFSO.FileExists(filename)
664
+ set oFSO = nothing
665
+
666
+ if not(exists) then
667
+ response.clear
668
+ response.write "<h1>CKEditor path validation failed</h1>"
669
+ response.write "<p>The path &quot;" & ckeditorPath & "&quot; doesn't include the CKEditor main file (" & ckeditorFileName() & ")</p>"
670
+ response.write "<p>Please, verify that you have set it correctly and/or adjust the 'basePath' property</p>"
671
+ response.write "<p>Checked for physical file: &quot;" & filename & "&quot;</p>"
672
+ response.end
673
+ end if
674
+ end function
675
+
676
+ End Class
677
+
678
+
679
+
680
+ ' URL: http://www.webdevbros.net/2007/04/26/generate-json-from-asp-datatypes/
681
+ '**************************************************************************************************************
682
+ '' @CLASSTITLE: JSON
683
+ '' @CREATOR: Michal Gabrukiewicz (gabru at grafix.at), Michael Rebec
684
+ '' @CONTRIBUTORS: - Cliff Pruitt (opensource at crayoncowboy.com)
685
+ '' - Sylvain Lafontaine
686
+ '' - Jef Housein
687
+ '' - Jeremy Brown
688
+ '' @CREATEDON: 2007-04-26 12:46
689
+ '' @CDESCRIPTION: Comes up with functionality for JSON (http://json.org) to use within ASP.
690
+ '' Correct escaping of characters, generating JSON Grammer out of ASP datatypes and structures
691
+ '' Some examples (all use the <em>toJSON()</em> method but as it is the class' default method it can be left out):
692
+ '' <code>
693
+ '' <%
694
+ '' 'simple number
695
+ '' output = (new JSON)("myNum", 2, false)
696
+ '' 'generates {"myNum": 2}
697
+ ''
698
+ '' 'array with different datatypes
699
+ '' output = (new JSON)("anArray", array(2, "x", null), true)
700
+ '' 'generates "anArray": [2, "x", null]
701
+ '' '(note: the last parameter was true, thus no surrounding brackets in the result)
702
+ '' % >
703
+ '' </code>
704
+ '' @REQUIRES: -
705
+ '' @OPTIONEXPLICIT: yes
706
+ '' @VERSION: 1.5.1
707
+
708
+ '**************************************************************************************************************
709
+ class JSON
710
+
711
+ 'private members
712
+ private output, innerCall
713
+
714
+ '**********************************************************************************************************
715
+ '* constructor
716
+ '**********************************************************************************************************
717
+ public sub class_initialize()
718
+ newGeneration()
719
+ end sub
720
+
721
+ '******************************************************************************************
722
+ '' @SDESCRIPTION: STATIC! takes a given string and makes it JSON valid
723
+ '' @DESCRIPTION: all characters which needs to be escaped are beeing replaced by their
724
+ '' unicode representation according to the
725
+ '' RFC4627#2.5 - http://www.ietf.org/rfc/rfc4627.txt?number=4627
726
+ '' @PARAM: val [string]: value which should be escaped
727
+ '' @RETURN: [string] JSON valid string
728
+ '******************************************************************************************
729
+ public function escape(val)
730
+ dim cDoubleQuote, cRevSolidus, cSolidus
731
+ cDoubleQuote = &h22
732
+ cRevSolidus = &h5C
733
+ cSolidus = &h2F
734
+ dim i, currentDigit
735
+ for i = 1 to (len(val))
736
+ currentDigit = mid(val, i, 1)
737
+ if ascw(currentDigit) > &h00 and ascw(currentDigit) < &h1F then
738
+ currentDigit = escapequence(currentDigit)
739
+ elseif ascw(currentDigit) >= &hC280 and ascw(currentDigit) <= &hC2BF then
740
+ currentDigit = "\u00" + right(padLeft(hex(ascw(currentDigit) - &hC200), 2, 0), 2)
741
+ elseif ascw(currentDigit) >= &hC380 and ascw(currentDigit) <= &hC3BF then
742
+ currentDigit = "\u00" + right(padLeft(hex(ascw(currentDigit) - &hC2C0), 2, 0), 2)
743
+ else
744
+ select case ascw(currentDigit)
745
+ case cDoubleQuote: currentDigit = escapequence(currentDigit)
746
+ case cRevSolidus: currentDigit = escapequence(currentDigit)
747
+ case cSolidus: currentDigit = escapequence(currentDigit)
748
+ end select
749
+ end if
750
+ escape = escape & currentDigit
751
+ next
752
+ end function
753
+
754
+ '******************************************************************************************************************
755
+ '' @SDESCRIPTION: generates a representation of a name value pair in JSON grammer
756
+ '' @DESCRIPTION: It generates a name value pair which is represented as <em>{"name": value}</em> in JSON.
757
+ '' the generation is fully recursive. Thus the value can also be a complex datatype (array in dictionary, etc.) e.g.
758
+ '' <code>
759
+ '' <%
760
+ '' set j = new JSON
761
+ '' j.toJSON "n", array(RS, dict, false), false
762
+ '' j.toJSON "n", array(array(), 2, true), false
763
+ '' % >
764
+ '' </code>
765
+ '' @PARAM: name [string]: name of the value (accessible with javascript afterwards). leave empty to get just the value
766
+ '' @PARAM: val [variant], [int], [float], [array], [object], [dictionary]: value which needs
767
+ '' to be generated. Conversation of the data types is as follows:<br>
768
+ '' - <strong>ASP datatype -> JavaScript datatype</strong>
769
+ '' - NOTHING, NULL -> null
770
+ '' - INT, DOUBLE -> number
771
+ '' - STRING -> string
772
+ '' - BOOLEAN -> bool
773
+ '' - ARRAY -> array
774
+ '' - DICTIONARY -> Represents it as name value pairs. Each key is accessible as property afterwards. json will look like <code>"name": {"key1": "some value", "key2": "other value"}</code>
775
+ '' - <em>multidimensional array</em> -> Generates a 1-dimensional array (flat) with all values of the multidimensional array
776
+ '' - <em>request</em> object -> every property and collection (cookies, form, querystring, etc) of the asp request object is exposed as an item of a dictionary. Property names are <strong>lowercase</strong>. e.g. <em>servervariables</em>.
777
+ '' - OBJECT -> name of the type (if unknown type) or all its properties (if class implements <em>reflect()</em> method)
778
+ '' Implement a <strong>reflect()</strong> function if you want your custom classes to be recognized. The function must return
779
+ '' a dictionary where the key holds the property name and the value its value. Example of a reflect function within a User class which has firstname and lastname properties
780
+ '' <code>
781
+ '' <%
782
+ '' function reflect()
783
+ '' . set reflect = server.createObject("scripting.dictionary")
784
+ '' . reflect.add "firstname", firstname
785
+ '' . reflect.add "lastname", lastname
786
+ '' end function
787
+ '' % >
788
+ '' </code>
789
+ '' Example of how to generate a JSON representation of the asp request object and access the <em>HTTP_HOST</em> server variable in JavaScript:
790
+ '' <code>
791
+ '' <script>alert(<%= (new JSON)(empty, request, false) % >.servervariables.HTTP_HOST);</script>
792
+ '' </code>
793
+ '' @PARAM: nested [bool]: indicates if the name value pair is already nested within another? if yes then the <em>{}</em> are left out.
794
+ '' @RETURN: [string] returns a JSON representation of the given name value pair
795
+ '******************************************************************************************************************
796
+ public default function toJSON(name, val, nested)
797
+ if not nested and not isEmpty(name) then write("{")
798
+ if not isEmpty(name) then write("""" & escape(name) & """: ")
799
+ generateValue(val)
800
+ if not nested and not isEmpty(name) then write("}")
801
+ toJSON = output
802
+
803
+ if innerCall = 0 then newGeneration()
804
+ end function
805
+
806
+ '******************************************************************************************************************
807
+ '* generate
808
+ '******************************************************************************************************************
809
+ private function generateValue(val)
810
+ if isNull(val) then
811
+ write("null")
812
+ elseif isArray(val) then
813
+ generateArray(val)
814
+ elseif isObject(val) then
815
+ dim tName : tName = typename(val)
816
+ if val is nothing then
817
+ write("null")
818
+ elseif tName = "Dictionary" or tName = "IRequestDictionary" then
819
+ generateDictionary(val)
820
+ elseif tName = "IRequest" then
821
+ set req = server.createObject("scripting.dictionary")
822
+ req.add "clientcertificate", val.ClientCertificate
823
+ req.add "cookies", val.cookies
824
+ req.add "form", val.form
825
+ req.add "querystring", val.queryString
826
+ req.add "servervariables", val.serverVariables
827
+ req.add "totalbytes", val.totalBytes
828
+ generateDictionary(req)
829
+ elseif tName = "IStringList" then
830
+ if val.count = 1 then
831
+ toJSON empty, val(1), true
832
+ else
833
+ generateArray(val)
834
+ end if
835
+ else
836
+ generateObject(val)
837
+ end if
838
+ else
839
+ 'bool
840
+ dim varTyp
841
+ varTyp = varType(val)
842
+ if varTyp = 11 then
843
+ if val then write("true") else write("false")
844
+ 'int, long, byte
845
+ elseif varTyp = 2 or varTyp = 3 or varTyp = 17 or varTyp = 19 then
846
+ write(cLng(val))
847
+ 'single, double, currency
848
+ elseif varTyp = 4 or varTyp = 5 or varTyp = 6 or varTyp = 14 then
849
+ write(replace(cDbl(val), ",", "."))
850
+ else
851
+ ' Using @@ at the beggining to signal JSON that we don't want this quoted.
852
+ if left(val, 2) = "@@" then
853
+ write( mid( val, 3 ) )
854
+ else
855
+ write("""" & escape(val & "") & """")
856
+ end if
857
+ end if
858
+ end if
859
+ generateValue = output
860
+ end function
861
+
862
+ '******************************************************************************************************************
863
+ '* generateArray
864
+ '******************************************************************************************************************
865
+ private sub generateArray(val)
866
+ dim item, i
867
+ write("[")
868
+ i = 0
869
+ 'the for each allows us to support also multi dimensional arrays
870
+ for each item in val
871
+ if i > 0 then write(",")
872
+ generateValue(item)
873
+ i = i + 1
874
+ next
875
+ write("]")
876
+ end sub
877
+
878
+ '******************************************************************************************************************
879
+ '* generateDictionary
880
+ '******************************************************************************************************************
881
+ private sub generateDictionary(val)
882
+ innerCall = innerCall + 1
883
+ if val.count = 0 then
884
+ toJSON empty, null, true
885
+ exit sub
886
+ end if
887
+ dim key, i
888
+ write("{")
889
+ i = 0
890
+ for each key in val
891
+ if i > 0 then write(",")
892
+ toJSON key, val(key), true
893
+ i = i + 1
894
+ next
895
+ write("}")
896
+ innerCall = innerCall - 1
897
+ end sub
898
+
899
+ '******************************************************************************************************************
900
+ '* generateObject
901
+ '******************************************************************************************************************
902
+ private sub generateObject(val)
903
+ dim props
904
+ on error resume next
905
+ set props = val.reflect()
906
+ if err = 0 then
907
+ on error goto 0
908
+ innerCall = innerCall + 1
909
+ toJSON empty, props, true
910
+ innerCall = innerCall - 1
911
+ else
912
+ on error goto 0
913
+ write("""" & escape(typename(val)) & """")
914
+ end if
915
+ end sub
916
+
917
+ '******************************************************************************************************************
918
+ '* newGeneration
919
+ '******************************************************************************************************************
920
+ private sub newGeneration()
921
+ output = empty
922
+ innerCall = 0
923
+ end sub
924
+
925
+ '******************************************************************************************
926
+ '* JsonEscapeSquence
927
+ '******************************************************************************************
928
+ private function escapequence(digit)
929
+ escapequence = "\u00" + right(padLeft(hex(ascw(digit)), 2, 0), 2)
930
+ end function
931
+
932
+ '******************************************************************************************
933
+ '* padLeft
934
+ '******************************************************************************************
935
+ private function padLeft(value, totalLength, paddingChar)
936
+ padLeft = right(clone(paddingChar, totalLength) & value, totalLength)
937
+ end function
938
+
939
+ '******************************************************************************************
940
+ '* clone
941
+ '******************************************************************************************
942
+ private function clone(byVal str, n)
943
+ dim i
944
+ for i = 1 to n : clone = clone & str : next
945
+ end function
946
+
947
+ '******************************************************************************************
948
+ '* write
949
+ '******************************************************************************************
950
+ private sub write(val)
951
+ output = output & val
952
+ end sub
953
+
954
+ end class
955
+ %>