radiant-ck_editor_filter-extension 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (531) hide show
  1. data/README.markdown +7 -1
  2. data/VERSION +1 -1
  3. data/ck_editor_filter_extension.rb +1 -1
  4. data/public/javascripts/extensions/ck_editor_filter/ckeditor/CHANGES.html +1130 -373
  5. data/public/javascripts/extensions/ck_editor_filter/ckeditor/INSTALL.html +2 -2
  6. data/public/javascripts/extensions/ck_editor_filter/ckeditor/LICENSE.html +2 -2
  7. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/adobeair/application.xml +32 -0
  8. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/adobeair/run.bat +9 -0
  9. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/adobeair/run.sh +8 -0
  10. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/adobeair/sample.html +45 -0
  11. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/ajax.html +23 -25
  12. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/api.html +64 -24
  13. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/api_dialog.html +36 -19
  14. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/api_dialog/my_dialog.js +1 -1
  15. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/asp/advanced.asp +105 -0
  16. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/asp/events.asp +136 -0
  17. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/asp/index.html +103 -0
  18. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/asp/replace.asp +72 -0
  19. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/asp/replaceall.asp +77 -0
  20. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/asp/sample_posteddata.asp +46 -0
  21. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/asp/standalone.asp +72 -0
  22. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/assets/_posteddata.php +59 -0
  23. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/assets/output_for_flash.fla +0 -0
  24. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/assets/output_for_flash.swf +0 -0
  25. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/assets/output_xhtml.css +204 -0
  26. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/assets/parsesample.css +70 -0
  27. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/assets/swfobject.js +18 -0
  28. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/autogrow.html +103 -0
  29. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/bbcode.html +136 -0
  30. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/devtools.html +94 -0
  31. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/divreplace.html +27 -10
  32. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/enterkey.html +39 -12
  33. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/fullpage.html +33 -13
  34. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/index.html +88 -25
  35. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/jqueryadapter.html +34 -8
  36. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/output_for_flash.html +275 -0
  37. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/output_html.html +285 -0
  38. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/output_xhtml.html +181 -0
  39. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/php/advanced.php +56 -29
  40. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/php/events.php +58 -35
  41. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/php/index.html +47 -0
  42. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/php/replace.php +48 -24
  43. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/php/replaceall.php +50 -30
  44. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/php/standalone.php +52 -33
  45. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/placeholder.html +81 -0
  46. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/readonly.html +91 -0
  47. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/replacebyclass.html +22 -7
  48. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/replacebycode.html +25 -8
  49. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/sample.css +85 -3
  50. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/sample.js +1 -1
  51. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/sample_posteddata.php +21 -59
  52. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/sharedspaces.html +32 -10
  53. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/skins.html +38 -11
  54. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/stylesheetparser.html +93 -0
  55. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/tableresize.html +115 -0
  56. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/ui_color.html +49 -7
  57. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_samples/ui_languages.html +53 -23
  58. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/adapters/jquery.js +17 -8
  59. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/_bootstrap.js +21 -18
  60. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/ckeditor.js +42 -4
  61. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/ckeditor_base.js +66 -29
  62. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/ckeditor_basic.js +12 -15
  63. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/command.js +138 -2
  64. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/commanddefinition.js +59 -16
  65. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/config.js +142 -18
  66. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/dataprocessor.js +6 -7
  67. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/dom.js +2 -3
  68. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/dom/comment.js +1 -1
  69. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/dom/document.js +29 -2
  70. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/dom/documentfragment.js +3 -3
  71. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/dom/domobject.js +59 -11
  72. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/dom/element.js +249 -27
  73. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/dom/elementpath.js +18 -3
  74. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/dom/event.js +1 -1
  75. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/dom/node.js +84 -56
  76. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/dom/nodelist.js +4 -1
  77. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/dom/range.js +345 -48
  78. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/dom/rangelist.js +213 -0
  79. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/dom/text.js +6 -1
  80. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/dom/walker.js +40 -29
  81. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/dom/window.js +1 -1
  82. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/dtd.js +15 -11
  83. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/editor.js +336 -15
  84. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/editor_basic.js +19 -12
  85. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/env.js +80 -17
  86. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/event.js +12 -6
  87. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/eventInfo.js +5 -5
  88. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/focusmanager.js +27 -12
  89. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/htmlparser.js +17 -5
  90. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/htmlparser/basicwriter.js +3 -3
  91. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/htmlparser/cdata.js +1 -1
  92. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/htmlparser/comment.js +1 -1
  93. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/htmlparser/element.js +14 -5
  94. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/htmlparser/filter.js +34 -8
  95. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/htmlparser/fragment.js +105 -108
  96. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/htmlparser/text.js +1 -1
  97. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/lang.js +12 -7
  98. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/loader.js +7 -9
  99. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/plugindefinition.js +18 -1
  100. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/plugins.js +21 -3
  101. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/resourcemanager.js +1 -1
  102. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/scriptloader.js +7 -25
  103. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/skins.js +5 -25
  104. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/themes.js +1 -1
  105. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/tools.js +61 -12
  106. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/ui.js +13 -1
  107. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/_languages.js +2 -1
  108. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/_translationstatus.txt +58 -57
  109. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/af.js +521 -410
  110. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/ar.js +160 -49
  111. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/bg.js +162 -51
  112. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/bn.js +162 -51
  113. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/bs.js +162 -51
  114. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/ca.js +260 -149
  115. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/cs.js +233 -122
  116. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/cy.js +159 -48
  117. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/da.js +162 -51
  118. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/de.js +217 -106
  119. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/el.js +162 -51
  120. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/en-au.js +166 -55
  121. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/en-ca.js +166 -55
  122. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/en-gb.js +277 -166
  123. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/en.js +166 -55
  124. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/eo.js +162 -51
  125. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/es.js +182 -71
  126. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/et.js +162 -51
  127. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/eu.js +162 -51
  128. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/fa.js +162 -51
  129. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/fi.js +178 -67
  130. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/fo.js +339 -228
  131. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/fr-ca.js +162 -51
  132. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/fr.js +261 -150
  133. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/gl.js +162 -51
  134. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/gu.js +162 -51
  135. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/he.js +179 -68
  136. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/hi.js +162 -51
  137. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/hr.js +162 -51
  138. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/hu.js +341 -230
  139. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/is.js +162 -51
  140. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/it.js +162 -51
  141. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/ja.js +195 -84
  142. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/ka.js +810 -0
  143. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/km.js +162 -51
  144. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/ko.js +162 -51
  145. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/lt.js +162 -51
  146. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/lv.js +162 -51
  147. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/mn.js +162 -51
  148. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/ms.js +162 -51
  149. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/nb.js +286 -175
  150. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/nl.js +178 -67
  151. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/no.js +286 -175
  152. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/pl.js +279 -168
  153. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/pt-br.js +318 -208
  154. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/pt.js +162 -51
  155. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/ro.js +162 -51
  156. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/ru.js +159 -48
  157. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/sk.js +192 -81
  158. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/sl.js +161 -50
  159. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/sr-latn.js +162 -51
  160. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/sr.js +162 -51
  161. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/sv.js +357 -247
  162. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/th.js +162 -51
  163. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/tr.js +345 -235
  164. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/uk.js +387 -276
  165. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/vi.js +336 -225
  166. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/zh-cn.js +271 -160
  167. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/lang/zh.js +162 -51
  168. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/a11yhelp/dialogs/a11yhelp.js +16 -5
  169. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/a11yhelp/lang/en.js +3 -3
  170. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/a11yhelp/lang/he.js +216 -0
  171. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/a11yhelp/plugin.js +4 -3
  172. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/about/dialogs/about.js +4 -1
  173. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/about/plugin.js +2 -1
  174. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/adobeair/plugin.js +228 -0
  175. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/ajax/plugin.js +152 -0
  176. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/autogrow/plugin.js +88 -0
  177. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/basicstyles/plugin.js +27 -19
  178. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/bbcode/plugin.js +924 -0
  179. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/bidi/plugin.js +331 -0
  180. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/blockquote/plugin.js +8 -4
  181. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/button/plugin.js +70 -55
  182. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/clipboard/dialogs/paste.js +115 -78
  183. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/clipboard/plugin.js +133 -69
  184. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/colorbutton/plugin.js +91 -23
  185. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/colordialog/dialogs/colordialog.js +192 -43
  186. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/colordialog/plugin.js +12 -10
  187. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/contextmenu/plugin.js +124 -221
  188. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/devtools/lang/en.js +16 -0
  189. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/devtools/plugin.js +173 -0
  190. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/dialog/dialogDefinition.js +840 -56
  191. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/dialog/plugin.js +652 -301
  192. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/dialogadvtab/plugin.js +205 -0
  193. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/dialogui/plugin.js +179 -50
  194. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/div/dialogs/div.js +40 -40
  195. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/div/plugin.js +4 -4
  196. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/docprops/dialogs/docprops.js +686 -0
  197. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/docprops/plugin.js +22 -0
  198. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/domiterator/plugin.js +59 -53
  199. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/editingblock/plugin.js +62 -17
  200. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/elementspath/plugin.js +137 -108
  201. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/enterkey/plugin.js +117 -47
  202. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/entities/plugin.js +95 -45
  203. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/fakeobjects/plugin.js +22 -16
  204. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/filebrowser/plugin.js +75 -30
  205. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/find/dialogs/find.js +111 -69
  206. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/find/plugin.js +2 -1
  207. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/flash/dialogs/flash.js +28 -20
  208. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/flash/plugin.js +14 -11
  209. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/floatpanel/plugin.js +50 -21
  210. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/font/plugin.js +3 -2
  211. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/format/plugin.js +17 -13
  212. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/forms/dialogs/button.js +38 -55
  213. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/forms/dialogs/checkbox.js +21 -11
  214. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/forms/dialogs/form.js +6 -6
  215. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/forms/dialogs/hiddenfield.js +26 -17
  216. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/forms/dialogs/radio.js +6 -6
  217. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/forms/dialogs/select.js +13 -7
  218. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/forms/dialogs/textarea.js +4 -4
  219. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/forms/dialogs/textfield.js +11 -5
  220. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/forms/images/hiddenfield.gif +0 -0
  221. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/forms/plugin.js +112 -41
  222. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/horizontalrule/plugin.js +1 -1
  223. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/htmldataprocessor/plugin.js +200 -63
  224. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/htmlwriter/plugin.js +26 -21
  225. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/iframe/dialogs/iframe.js +257 -0
  226. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/iframe/images/placeholder.png +0 -0
  227. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/iframe/plugin.js +106 -0
  228. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/iframedialog/plugin.js +59 -7
  229. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/image/dialogs/image.js +243 -218
  230. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/image/plugin.js +19 -2
  231. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/indent/plugin.js +335 -223
  232. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/justify/plugin.js +115 -30
  233. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/keystrokes/plugin.js +3 -7
  234. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/link/dialogs/anchor.js +85 -40
  235. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/link/dialogs/link.js +163 -184
  236. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/link/plugin.js +180 -32
  237. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/list/plugin.js +165 -81
  238. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/listblock/plugin.js +11 -6
  239. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/liststyle/dialogs/liststyle.js +204 -0
  240. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/liststyle/plugin.js +66 -0
  241. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/maximize/plugin.js +109 -40
  242. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/menu/plugin.js +166 -67
  243. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/menubutton/plugin.js +12 -7
  244. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/newpage/plugin.js +3 -3
  245. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/pagebreak/plugin.js +95 -29
  246. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/panel/plugin.js +43 -20
  247. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/panelbutton/plugin.js +10 -11
  248. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/pastefromword/filter/default.js +316 -119
  249. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/pastefromword/plugin.js +32 -11
  250. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/pastetext/dialogs/pastetext.js +19 -29
  251. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/pastetext/plugin.js +15 -79
  252. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/placeholder/dialogs/placeholder.js +71 -0
  253. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/placeholder/lang/en.js +16 -0
  254. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/placeholder/lang/he.js +16 -0
  255. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/placeholder/placeholder.gif +0 -0
  256. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/placeholder/plugin.js +171 -0
  257. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/popup/plugin.js +9 -7
  258. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/preview/plugin.js +3 -2
  259. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/print/plugin.js +2 -1
  260. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/removeformat/plugin.js +89 -36
  261. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/resize/plugin.js +71 -18
  262. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/richcombo/plugin.js +40 -29
  263. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/save/plugin.js +2 -1
  264. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/scayt/dialogs/options.js +114 -110
  265. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/scayt/plugin.js +531 -170
  266. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/selection/plugin.js +791 -331
  267. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/showblocks/images/block_address.png +0 -0
  268. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/showblocks/images/block_blockquote.png +0 -0
  269. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/showblocks/images/block_div.png +0 -0
  270. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/showblocks/images/block_h1.png +0 -0
  271. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/showblocks/images/block_h2.png +0 -0
  272. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/showblocks/images/block_h3.png +0 -0
  273. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/showblocks/images/block_h4.png +0 -0
  274. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/showblocks/images/block_h5.png +0 -0
  275. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/showblocks/images/block_h6.png +0 -0
  276. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/showblocks/images/block_p.png +0 -0
  277. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/showblocks/images/block_pre.png +0 -0
  278. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/showblocks/plugin.js +14 -8
  279. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/showborders/plugin.js +63 -26
  280. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/smiley/dialogs/smiley.js +31 -22
  281. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/smiley/plugin.js +15 -6
  282. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/sourcearea/plugin.js +18 -14
  283. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/specialchar/dialogs/specialchar.js +36 -59
  284. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/specialchar/lang/en.js +89 -0
  285. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/specialchar/plugin.js +45 -4
  286. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/styles/plugin.js +632 -212
  287. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/{stylescombo → styles}/styles/default.js +5 -2
  288. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/stylescombo/plugin.js +77 -140
  289. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/stylesheetparser/plugin.js +143 -0
  290. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/tab/plugin.js +109 -3
  291. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/table/dialogs/table.js +106 -23
  292. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/table/plugin.js +11 -3
  293. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/tableresize/plugin.js +450 -0
  294. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/tabletools/dialogs/tableCell.js +66 -64
  295. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/tabletools/plugin.js +348 -179
  296. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/templates/dialogs/templates.js +41 -36
  297. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/templates/plugin.js +3 -4
  298. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/templates/templates/default.js +2 -2
  299. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/toolbar/plugin.js +193 -122
  300. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/uicolor/dialogs/uicolor.js +6 -5
  301. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/uicolor/lang/en.js +1 -1
  302. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/uicolor/lang/he.js +15 -0
  303. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/uicolor/plugin.js +2 -2
  304. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/uicolor/yui/assets/yui.css +1 -1
  305. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/undo/plugin.js +73 -12
  306. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/wsc/dialogs/ciframe.html +1 -1
  307. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/wsc/dialogs/tmpFrameset.html +1 -1
  308. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/wsc/dialogs/wsc.css +1 -2
  309. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/wsc/dialogs/wsc.js +20 -4
  310. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/wsc/plugin.js +2 -2
  311. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/wysiwygarea/plugin.js +751 -251
  312. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/plugins/xml/plugin.js +170 -0
  313. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/kama/dialog.css +116 -18
  314. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/kama/editor.css +1 -1
  315. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/kama/elementspath.css +2 -1
  316. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/kama/icons.css +42 -2
  317. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/kama/icons.png +0 -0
  318. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/kama/icons_rtl.png +0 -0
  319. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/kama/mainui.css +25 -5
  320. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/kama/menu.css +36 -15
  321. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/kama/panel.css +18 -17
  322. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/kama/presets.css +1 -1
  323. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/kama/reset.css +7 -1
  324. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/kama/richcombo.css +27 -10
  325. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/kama/skin.js +4 -36
  326. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/kama/templates.css +16 -12
  327. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/kama/toolbar.css +69 -83
  328. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/office2003/dialog.css +111 -13
  329. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/office2003/editor.css +1 -1
  330. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/office2003/elementspath.css +2 -1
  331. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/office2003/icons.css +40 -1
  332. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/office2003/icons.png +0 -0
  333. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/office2003/icons_rtl.png +0 -0
  334. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/office2003/mainui.css +33 -7
  335. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/office2003/menu.css +37 -15
  336. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/office2003/panel.css +23 -22
  337. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/office2003/presets.css +1 -1
  338. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/office2003/reset.css +7 -1
  339. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/office2003/richcombo.css +40 -20
  340. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/office2003/skin.js +10 -17
  341. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/office2003/templates.css +16 -10
  342. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/office2003/toolbar.css +79 -32
  343. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/v2/dialog.css +112 -13
  344. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/v2/editor.css +1 -1
  345. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/v2/elementspath.css +2 -1
  346. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/v2/icons.css +40 -1
  347. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/v2/icons.png +0 -0
  348. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/v2/icons_rtl.png +0 -0
  349. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/v2/mainui.css +25 -5
  350. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/v2/menu.css +38 -16
  351. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/v2/panel.css +22 -21
  352. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/v2/presets.css +1 -1
  353. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/v2/reset.css +7 -1
  354. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/v2/richcombo.css +36 -23
  355. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/v2/skin.js +10 -17
  356. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/v2/templates.css +16 -10
  357. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/skins/v2/toolbar.css +67 -27
  358. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/themes/default/theme.js +106 -46
  359. data/public/javascripts/extensions/ck_editor_filter/ckeditor/adapters/jquery.js +2 -2
  360. data/public/javascripts/extensions/ck_editor_filter/ckeditor/ckeditor.asp +955 -0
  361. data/public/javascripts/extensions/ck_editor_filter/ckeditor/ckeditor.js +141 -117
  362. data/public/javascripts/extensions/ck_editor_filter/ckeditor/ckeditor.pack +13 -7
  363. data/public/javascripts/extensions/ck_editor_filter/ckeditor/ckeditor.php +1 -1
  364. data/public/javascripts/extensions/ck_editor_filter/ckeditor/ckeditor_basic.js +4 -4
  365. data/public/javascripts/extensions/ck_editor_filter/ckeditor/ckeditor_basic_source.js +2 -2
  366. data/public/javascripts/extensions/ck_editor_filter/ckeditor/ckeditor_php4.php +27 -54
  367. data/public/javascripts/extensions/ck_editor_filter/ckeditor/ckeditor_php5.php +26 -53
  368. data/public/javascripts/extensions/ck_editor_filter/ckeditor/ckeditor_source.js +2 -2
  369. data/public/javascripts/extensions/ck_editor_filter/ckeditor/config.js +1 -1
  370. data/public/javascripts/extensions/ck_editor_filter/ckeditor/contents.css +4 -16
  371. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/_languages.js +2 -2
  372. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/_translationstatus.txt +58 -57
  373. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/af.js +2 -2
  374. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/ar.js +2 -2
  375. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/bg.js +2 -2
  376. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/bn.js +2 -2
  377. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/bs.js +2 -2
  378. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/ca.js +2 -2
  379. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/cs.js +2 -2
  380. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/cy.js +2 -2
  381. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/da.js +2 -2
  382. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/de.js +2 -2
  383. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/el.js +2 -2
  384. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/en-au.js +2 -2
  385. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/en-ca.js +2 -2
  386. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/en-gb.js +2 -2
  387. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/en.js +2 -2
  388. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/eo.js +2 -2
  389. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/es.js +2 -2
  390. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/et.js +2 -2
  391. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/eu.js +2 -2
  392. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/fa.js +2 -2
  393. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/fi.js +2 -2
  394. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/fo.js +2 -2
  395. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/fr-ca.js +2 -2
  396. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/fr.js +2 -2
  397. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/gl.js +2 -2
  398. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/gu.js +2 -2
  399. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/he.js +2 -2
  400. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/hi.js +2 -2
  401. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/hr.js +2 -2
  402. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/hu.js +2 -2
  403. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/is.js +2 -2
  404. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/it.js +2 -2
  405. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/ja.js +2 -2
  406. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/ka.js +6 -0
  407. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/km.js +2 -2
  408. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/ko.js +2 -2
  409. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/lt.js +2 -2
  410. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/lv.js +2 -2
  411. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/mn.js +2 -2
  412. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/ms.js +2 -2
  413. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/nb.js +2 -2
  414. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/nl.js +2 -2
  415. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/no.js +2 -2
  416. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/pl.js +2 -2
  417. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/pt-br.js +2 -2
  418. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/pt.js +2 -2
  419. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/ro.js +2 -2
  420. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/ru.js +2 -2
  421. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/sk.js +2 -2
  422. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/sl.js +2 -2
  423. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/sr-latn.js +2 -2
  424. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/sr.js +2 -2
  425. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/sv.js +2 -2
  426. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/th.js +2 -2
  427. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/tr.js +2 -2
  428. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/uk.js +2 -2
  429. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/vi.js +2 -2
  430. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/zh-cn.js +2 -2
  431. data/public/javascripts/extensions/ck_editor_filter/ckeditor/lang/zh.js +2 -2
  432. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +2 -2
  433. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/a11yhelp/lang/en.js +2 -2
  434. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/a11yhelp/lang/he.js +6 -0
  435. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/about/dialogs/about.js +2 -2
  436. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/adobeair/plugin.js +6 -0
  437. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/ajax/plugin.js +6 -0
  438. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/autogrow/plugin.js +6 -0
  439. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/bbcode/plugin.js +9 -0
  440. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/clipboard/dialogs/paste.js +3 -3
  441. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/colordialog/dialogs/colordialog.js +3 -2
  442. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/devtools/lang/en.js +6 -0
  443. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/devtools/plugin.js +6 -0
  444. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/dialog/dialogDefinition.js +1 -1
  445. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/div/dialogs/div.js +3 -2
  446. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/docprops/dialogs/docprops.js +10 -0
  447. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/docprops/plugin.js +6 -0
  448. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/find/dialogs/find.js +5 -5
  449. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/flash/dialogs/flash.js +5 -5
  450. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/forms/dialogs/button.js +2 -2
  451. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/forms/dialogs/checkbox.js +2 -2
  452. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/forms/dialogs/form.js +2 -2
  453. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/forms/dialogs/hiddenfield.js +2 -2
  454. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/forms/dialogs/radio.js +2 -2
  455. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/forms/dialogs/select.js +4 -4
  456. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/forms/dialogs/textarea.js +2 -2
  457. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/forms/dialogs/textfield.js +2 -2
  458. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/forms/images/hiddenfield.gif +0 -0
  459. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/iframe/dialogs/iframe.js +7 -0
  460. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/iframe/images/placeholder.png +0 -0
  461. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/iframedialog/plugin.js +2 -2
  462. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/image/dialogs/image.js +9 -9
  463. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/link/dialogs/anchor.js +2 -2
  464. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/link/dialogs/link.js +7 -7
  465. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/liststyle/dialogs/liststyle.js +6 -0
  466. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/pastefromword/filter/default.js +7 -6
  467. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/pastetext/dialogs/pastetext.js +2 -2
  468. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/placeholder/dialogs/placeholder.js +6 -0
  469. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/placeholder/lang/en.js +6 -0
  470. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/placeholder/lang/he.js +6 -0
  471. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/placeholder/placeholder.gif +0 -0
  472. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/placeholder/plugin.js +6 -0
  473. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/radiantpreview/images/radiant-preview.png +0 -0
  474. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/scayt/dialogs/options.js +4 -4
  475. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/scayt/dialogs/toolbar.css +1 -1
  476. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/showblocks/images/block_address.png +0 -0
  477. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/showblocks/images/block_blockquote.png +0 -0
  478. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/showblocks/images/block_div.png +0 -0
  479. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/showblocks/images/block_h1.png +0 -0
  480. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/showblocks/images/block_h2.png +0 -0
  481. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/showblocks/images/block_h3.png +0 -0
  482. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/showblocks/images/block_h4.png +0 -0
  483. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/showblocks/images/block_h5.png +0 -0
  484. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/showblocks/images/block_h6.png +0 -0
  485. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/showblocks/images/block_p.png +0 -0
  486. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/showblocks/images/block_pre.png +0 -0
  487. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/smiley/dialogs/smiley.js +3 -3
  488. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/specialchar/dialogs/specialchar.js +3 -3
  489. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/specialchar/lang/en.js +6 -0
  490. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/{stylescombo → styles}/styles/default.js +2 -2
  491. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/stylesheetparser/plugin.js +6 -0
  492. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/table/dialogs/table.js +5 -5
  493. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/tableresize/plugin.js +7 -0
  494. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/tabletools/dialogs/tableCell.js +4 -4
  495. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/templates/dialogs/templates.js +3 -3
  496. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/templates/templates/default.js +2 -2
  497. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/uicolor/dialogs/uicolor.js +3 -3
  498. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/uicolor/lang/en.js +1 -1
  499. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/uicolor/lang/he.js +6 -0
  500. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/uicolor/plugin.js +2 -2
  501. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/uicolor/yui/assets/yui.css +2 -2
  502. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/uicolor/yui/yui.js +1 -1
  503. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/wsc/dialogs/ciframe.html +1 -1
  504. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +1 -1
  505. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/wsc/dialogs/wsc.css +2 -2
  506. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/wsc/dialogs/wsc.js +3 -3
  507. data/public/javascripts/extensions/ck_editor_filter/ckeditor/plugins/xml/plugin.js +6 -0
  508. data/public/javascripts/extensions/ck_editor_filter/ckeditor/skins/kama/dialog.css +5 -5
  509. data/public/javascripts/extensions/ck_editor_filter/ckeditor/skins/kama/editor.css +9 -8
  510. data/public/javascripts/extensions/ck_editor_filter/ckeditor/skins/kama/icons.png +0 -0
  511. data/public/javascripts/extensions/ck_editor_filter/ckeditor/skins/kama/icons_rtl.png +0 -0
  512. data/public/javascripts/extensions/ck_editor_filter/ckeditor/skins/kama/skin.js +3 -3
  513. data/public/javascripts/extensions/ck_editor_filter/ckeditor/skins/kama/templates.css +2 -2
  514. data/public/javascripts/extensions/ck_editor_filter/ckeditor/skins/office2003/dialog.css +5 -5
  515. data/public/javascripts/extensions/ck_editor_filter/ckeditor/skins/office2003/editor.css +10 -9
  516. data/public/javascripts/extensions/ck_editor_filter/ckeditor/skins/office2003/icons.png +0 -0
  517. data/public/javascripts/extensions/ck_editor_filter/ckeditor/skins/office2003/icons_rtl.png +0 -0
  518. data/public/javascripts/extensions/ck_editor_filter/ckeditor/skins/office2003/skin.js +2 -2
  519. data/public/javascripts/extensions/ck_editor_filter/ckeditor/skins/office2003/templates.css +2 -2
  520. data/public/javascripts/extensions/ck_editor_filter/ckeditor/skins/v2/dialog.css +5 -4
  521. data/public/javascripts/extensions/ck_editor_filter/ckeditor/skins/v2/editor.css +9 -8
  522. data/public/javascripts/extensions/ck_editor_filter/ckeditor/skins/v2/icons.png +0 -0
  523. data/public/javascripts/extensions/ck_editor_filter/ckeditor/skins/v2/icons_rtl.png +0 -0
  524. data/public/javascripts/extensions/ck_editor_filter/ckeditor/skins/v2/skin.js +2 -2
  525. data/public/javascripts/extensions/ck_editor_filter/ckeditor/skins/v2/templates.css +2 -2
  526. data/public/javascripts/extensions/ck_editor_filter/ckeditor/themes/default/theme.js +4 -4
  527. data/public/javascripts/extensions/ck_editor_filter/radiant.ckeditor.js +21 -12
  528. metadata +94 -9
  529. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/ajax.js +0 -143
  530. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/imagecacher.js +0 -58
  531. data/public/javascripts/extensions/ck_editor_filter/ckeditor/_source/core/xml.js +0 -165
@@ -1,6 +1,6 @@
1
1
  /*
2
- Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
2
+ Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
3
3
  For licensing, see LICENSE.html or http://ckeditor.com/license
4
4
  */
5
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(!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;};});})();
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"
95
+ timeStamp = "B49E5BQ"
96
+ mTimeStamp = "B49E5BQ"
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
+ %>