ckeditor 3.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (634) hide show
  1. data/CHANGELOG +15 -0
  2. data/README.textile +225 -0
  3. data/Rakefile +44 -0
  4. data/TODO +3 -0
  5. data/app/controllers/ckeditor_controller.rb +87 -0
  6. data/app/helpers/ckeditor_helper.rb +37 -0
  7. data/app/views/ckeditor/_file.html.erb +15 -0
  8. data/app/views/ckeditor/_image.html.erb +15 -0
  9. data/app/views/ckeditor/_swfupload.html.erb +51 -0
  10. data/app/views/ckeditor/files.html.erb +91 -0
  11. data/app/views/ckeditor/images.html.erb +91 -0
  12. data/app/views/layouts/ckeditor.html.erb +30 -0
  13. data/config/routes.rb +5 -0
  14. data/examples/migrations/attachment_fu/create_assets.rb +30 -0
  15. data/examples/migrations/paperclip/create_assets.rb +25 -0
  16. data/examples/models/attachment_fu/asset.rb +45 -0
  17. data/examples/models/attachment_fu/attachment_file.rb +46 -0
  18. data/examples/models/attachment_fu/picture.rb +46 -0
  19. data/examples/models/paperclip/asset.rb +65 -0
  20. data/examples/models/paperclip/attachment_file.rb +22 -0
  21. data/examples/models/paperclip/picture.rb +39 -0
  22. data/examples/s3/attachment_file.rb +23 -0
  23. data/examples/s3/picture.rb +41 -0
  24. data/lib/ckeditor.rb +57 -0
  25. data/lib/ckeditor/engine.rb +10 -0
  26. data/lib/ckeditor/file_storage.rb +178 -0
  27. data/lib/ckeditor/form_builder.rb +22 -0
  28. data/lib/ckeditor/utils.rb +15 -0
  29. data/lib/ckeditor/version.rb +11 -0
  30. data/lib/ckeditor/view_helper.rb +119 -0
  31. data/lib/generators/ckeditor_generator.rb +23 -0
  32. data/lib/generators/templates/ckeditor.rb +51 -0
  33. data/lib/generators/templates/ckeditor.yml +28 -0
  34. data/lib/generators/templates/ckeditor/CHANGES.html +642 -0
  35. data/lib/generators/templates/ckeditor/INSTALL.html +92 -0
  36. data/lib/generators/templates/ckeditor/LICENSE.html +1334 -0
  37. data/lib/generators/templates/ckeditor/_samples/ajax.html +87 -0
  38. data/lib/generators/templates/ckeditor/_samples/api.html +152 -0
  39. data/lib/generators/templates/ckeditor/_samples/api_dialog.html +181 -0
  40. data/lib/generators/templates/ckeditor/_samples/api_dialog/my_dialog.js +28 -0
  41. data/lib/generators/templates/ckeditor/_samples/assets/output_xhtml.css +204 -0
  42. data/lib/generators/templates/ckeditor/_samples/divreplace.html +137 -0
  43. data/lib/generators/templates/ckeditor/_samples/enterkey.html +88 -0
  44. data/lib/generators/templates/ckeditor/_samples/fullpage.html +62 -0
  45. data/lib/generators/templates/ckeditor/_samples/index.html +54 -0
  46. data/lib/generators/templates/ckeditor/_samples/jqueryadapter.html +73 -0
  47. data/lib/generators/templates/ckeditor/_samples/output_xhtml.html +159 -0
  48. data/lib/generators/templates/ckeditor/_samples/php/advanced.php +93 -0
  49. data/lib/generators/templates/ckeditor/_samples/php/events.php +130 -0
  50. data/lib/generators/templates/ckeditor/_samples/php/replace.php +63 -0
  51. data/lib/generators/templates/ckeditor/_samples/php/replaceall.php +68 -0
  52. data/lib/generators/templates/ckeditor/_samples/php/standalone.php +64 -0
  53. data/lib/generators/templates/ckeditor/_samples/replacebyclass.html +49 -0
  54. data/lib/generators/templates/ckeditor/_samples/replacebycode.html +80 -0
  55. data/lib/generators/templates/ckeditor/_samples/sample.css +81 -0
  56. data/lib/generators/templates/ckeditor/_samples/sample.js +65 -0
  57. data/lib/generators/templates/ckeditor/_samples/sample_posteddata.php +59 -0
  58. data/lib/generators/templates/ckeditor/_samples/sharedspaces.html +131 -0
  59. data/lib/generators/templates/ckeditor/_samples/skins.html +83 -0
  60. data/lib/generators/templates/ckeditor/_samples/ui_color.html +87 -0
  61. data/lib/generators/templates/ckeditor/_samples/ui_languages.html +103 -0
  62. data/lib/generators/templates/ckeditor/_source/adapters/jquery.js +297 -0
  63. data/lib/generators/templates/ckeditor/_source/core/_bootstrap.js +91 -0
  64. data/lib/generators/templates/ckeditor/_source/core/ajax.js +143 -0
  65. data/lib/generators/templates/ckeditor/_source/core/ckeditor.js +103 -0
  66. data/lib/generators/templates/ckeditor/_source/core/ckeditor_base.js +193 -0
  67. data/lib/generators/templates/ckeditor/_source/core/ckeditor_basic.js +242 -0
  68. data/lib/generators/templates/ckeditor/_source/core/command.js +73 -0
  69. data/lib/generators/templates/ckeditor/_source/core/commanddefinition.js +102 -0
  70. data/lib/generators/templates/ckeditor/_source/core/config.js +319 -0
  71. data/lib/generators/templates/ckeditor/_source/core/dataprocessor.js +66 -0
  72. data/lib/generators/templates/ckeditor/_source/core/dom.js +21 -0
  73. data/lib/generators/templates/ckeditor/_source/core/dom/comment.js +32 -0
  74. data/lib/generators/templates/ckeditor/_source/core/dom/document.js +224 -0
  75. data/lib/generators/templates/ckeditor/_source/core/dom/documentfragment.js +49 -0
  76. data/lib/generators/templates/ckeditor/_source/core/dom/domobject.js +246 -0
  77. data/lib/generators/templates/ckeditor/_source/core/dom/element.js +1441 -0
  78. data/lib/generators/templates/ckeditor/_source/core/dom/elementpath.js +104 -0
  79. data/lib/generators/templates/ckeditor/_source/core/dom/event.js +142 -0
  80. data/lib/generators/templates/ckeditor/_source/core/dom/node.js +662 -0
  81. data/lib/generators/templates/ckeditor/_source/core/dom/nodelist.js +23 -0
  82. data/lib/generators/templates/ckeditor/_source/core/dom/range.js +1836 -0
  83. data/lib/generators/templates/ckeditor/_source/core/dom/text.js +123 -0
  84. data/lib/generators/templates/ckeditor/_source/core/dom/walker.js +451 -0
  85. data/lib/generators/templates/ckeditor/_source/core/dom/window.js +96 -0
  86. data/lib/generators/templates/ckeditor/_source/core/dtd.js +233 -0
  87. data/lib/generators/templates/ckeditor/_source/core/editor.js +756 -0
  88. data/lib/generators/templates/ckeditor/_source/core/editor_basic.js +182 -0
  89. data/lib/generators/templates/ckeditor/_source/core/env.js +222 -0
  90. data/lib/generators/templates/ckeditor/_source/core/event.js +336 -0
  91. data/lib/generators/templates/ckeditor/_source/core/eventInfo.js +120 -0
  92. data/lib/generators/templates/ckeditor/_source/core/focusmanager.js +137 -0
  93. data/lib/generators/templates/ckeditor/_source/core/htmlparser.js +212 -0
  94. data/lib/generators/templates/ckeditor/_source/core/htmlparser/basicwriter.js +145 -0
  95. data/lib/generators/templates/ckeditor/_source/core/htmlparser/cdata.js +43 -0
  96. data/lib/generators/templates/ckeditor/_source/core/htmlparser/comment.js +60 -0
  97. data/lib/generators/templates/ckeditor/_source/core/htmlparser/element.js +240 -0
  98. data/lib/generators/templates/ckeditor/_source/core/htmlparser/filter.js +262 -0
  99. data/lib/generators/templates/ckeditor/_source/core/htmlparser/fragment.js +496 -0
  100. data/lib/generators/templates/ckeditor/_source/core/htmlparser/text.js +55 -0
  101. data/lib/generators/templates/ckeditor/_source/core/imagecacher.js +59 -0
  102. data/lib/generators/templates/ckeditor/_source/core/lang.js +152 -0
  103. data/lib/generators/templates/ckeditor/_source/core/loader.js +242 -0
  104. data/lib/generators/templates/ckeditor/_source/core/plugindefinition.js +66 -0
  105. data/lib/generators/templates/ckeditor/_source/core/plugins.js +85 -0
  106. data/lib/generators/templates/ckeditor/_source/core/resourcemanager.js +238 -0
  107. data/lib/generators/templates/ckeditor/_source/core/scriptloader.js +198 -0
  108. data/lib/generators/templates/ckeditor/_source/core/skins.js +204 -0
  109. data/lib/generators/templates/ckeditor/_source/core/themes.js +19 -0
  110. data/lib/generators/templates/ckeditor/_source/core/tools.js +698 -0
  111. data/lib/generators/templates/ckeditor/_source/core/ui.js +116 -0
  112. data/lib/generators/templates/ckeditor/_source/core/xml.js +165 -0
  113. data/lib/generators/templates/ckeditor/_source/lang/_languages.js +83 -0
  114. data/lib/generators/templates/ckeditor/_source/lang/_translationstatus.txt +60 -0
  115. data/lib/generators/templates/ckeditor/_source/lang/af.js +708 -0
  116. data/lib/generators/templates/ckeditor/_source/lang/ar.js +708 -0
  117. data/lib/generators/templates/ckeditor/_source/lang/bg.js +708 -0
  118. data/lib/generators/templates/ckeditor/_source/lang/bn.js +708 -0
  119. data/lib/generators/templates/ckeditor/_source/lang/bs.js +708 -0
  120. data/lib/generators/templates/ckeditor/_source/lang/ca.js +708 -0
  121. data/lib/generators/templates/ckeditor/_source/lang/cs.js +708 -0
  122. data/lib/generators/templates/ckeditor/_source/lang/cy.js +708 -0
  123. data/lib/generators/templates/ckeditor/_source/lang/da.js +708 -0
  124. data/lib/generators/templates/ckeditor/_source/lang/de.js +708 -0
  125. data/lib/generators/templates/ckeditor/_source/lang/el.js +708 -0
  126. data/lib/generators/templates/ckeditor/_source/lang/en-au.js +708 -0
  127. data/lib/generators/templates/ckeditor/_source/lang/en-ca.js +708 -0
  128. data/lib/generators/templates/ckeditor/_source/lang/en-gb.js +708 -0
  129. data/lib/generators/templates/ckeditor/_source/lang/en.js +708 -0
  130. data/lib/generators/templates/ckeditor/_source/lang/eo.js +708 -0
  131. data/lib/generators/templates/ckeditor/_source/lang/es.js +708 -0
  132. data/lib/generators/templates/ckeditor/_source/lang/et.js +708 -0
  133. data/lib/generators/templates/ckeditor/_source/lang/eu.js +708 -0
  134. data/lib/generators/templates/ckeditor/_source/lang/fa.js +708 -0
  135. data/lib/generators/templates/ckeditor/_source/lang/fi.js +708 -0
  136. data/lib/generators/templates/ckeditor/_source/lang/fo.js +708 -0
  137. data/lib/generators/templates/ckeditor/_source/lang/fr-ca.js +708 -0
  138. data/lib/generators/templates/ckeditor/_source/lang/fr.js +708 -0
  139. data/lib/generators/templates/ckeditor/_source/lang/gl.js +708 -0
  140. data/lib/generators/templates/ckeditor/_source/lang/gu.js +708 -0
  141. data/lib/generators/templates/ckeditor/_source/lang/he.js +708 -0
  142. data/lib/generators/templates/ckeditor/_source/lang/hi.js +708 -0
  143. data/lib/generators/templates/ckeditor/_source/lang/hr.js +708 -0
  144. data/lib/generators/templates/ckeditor/_source/lang/hu.js +708 -0
  145. data/lib/generators/templates/ckeditor/_source/lang/is.js +708 -0
  146. data/lib/generators/templates/ckeditor/_source/lang/it.js +708 -0
  147. data/lib/generators/templates/ckeditor/_source/lang/ja.js +708 -0
  148. data/lib/generators/templates/ckeditor/_source/lang/km.js +708 -0
  149. data/lib/generators/templates/ckeditor/_source/lang/ko.js +708 -0
  150. data/lib/generators/templates/ckeditor/_source/lang/lt.js +708 -0
  151. data/lib/generators/templates/ckeditor/_source/lang/lv.js +708 -0
  152. data/lib/generators/templates/ckeditor/_source/lang/mn.js +708 -0
  153. data/lib/generators/templates/ckeditor/_source/lang/ms.js +708 -0
  154. data/lib/generators/templates/ckeditor/_source/lang/nb.js +708 -0
  155. data/lib/generators/templates/ckeditor/_source/lang/nl.js +708 -0
  156. data/lib/generators/templates/ckeditor/_source/lang/no.js +708 -0
  157. data/lib/generators/templates/ckeditor/_source/lang/pl.js +708 -0
  158. data/lib/generators/templates/ckeditor/_source/lang/pt-br.js +708 -0
  159. data/lib/generators/templates/ckeditor/_source/lang/pt.js +708 -0
  160. data/lib/generators/templates/ckeditor/_source/lang/ro.js +708 -0
  161. data/lib/generators/templates/ckeditor/_source/lang/ru.js +708 -0
  162. data/lib/generators/templates/ckeditor/_source/lang/sk.js +708 -0
  163. data/lib/generators/templates/ckeditor/_source/lang/sl.js +708 -0
  164. data/lib/generators/templates/ckeditor/_source/lang/sr-latn.js +708 -0
  165. data/lib/generators/templates/ckeditor/_source/lang/sr.js +708 -0
  166. data/lib/generators/templates/ckeditor/_source/lang/sv.js +708 -0
  167. data/lib/generators/templates/ckeditor/_source/lang/th.js +708 -0
  168. data/lib/generators/templates/ckeditor/_source/lang/tr.js +708 -0
  169. data/lib/generators/templates/ckeditor/_source/lang/uk.js +708 -0
  170. data/lib/generators/templates/ckeditor/_source/lang/vi.js +708 -0
  171. data/lib/generators/templates/ckeditor/_source/lang/zh-cn.js +708 -0
  172. data/lib/generators/templates/ckeditor/_source/lang/zh.js +708 -0
  173. data/lib/generators/templates/ckeditor/_source/plugins/a11yhelp/dialogs/a11yhelp.js +211 -0
  174. data/lib/generators/templates/ckeditor/_source/plugins/a11yhelp/lang/en.js +108 -0
  175. data/lib/generators/templates/ckeditor/_source/plugins/a11yhelp/plugin.js +46 -0
  176. data/lib/generators/templates/ckeditor/_source/plugins/about/dialogs/about.js +73 -0
  177. data/lib/generators/templates/ckeditor/_source/plugins/about/dialogs/logo_ckeditor.png +0 -0
  178. data/lib/generators/templates/ckeditor/_source/plugins/about/plugin.js +23 -0
  179. data/lib/generators/templates/ckeditor/_source/plugins/attachment/dialogs/attachment.js +384 -0
  180. data/lib/generators/templates/ckeditor/_source/plugins/attachment/images/attachment.png +0 -0
  181. data/lib/generators/templates/ckeditor/_source/plugins/attachment/lang/en.js +10 -0
  182. data/lib/generators/templates/ckeditor/_source/plugins/attachment/lang/ru.js +10 -0
  183. data/lib/generators/templates/ckeditor/_source/plugins/attachment/lang/uk.js +10 -0
  184. data/lib/generators/templates/ckeditor/_source/plugins/attachment/plugin.js +44 -0
  185. data/lib/generators/templates/ckeditor/_source/plugins/basicstyles/plugin.js +101 -0
  186. data/lib/generators/templates/ckeditor/_source/plugins/blockquote/plugin.js +301 -0
  187. data/lib/generators/templates/ckeditor/_source/plugins/button/plugin.js +272 -0
  188. data/lib/generators/templates/ckeditor/_source/plugins/clipboard/dialogs/paste.js +186 -0
  189. data/lib/generators/templates/ckeditor/_source/plugins/clipboard/plugin.js +379 -0
  190. data/lib/generators/templates/ckeditor/_source/plugins/colorbutton/plugin.js +247 -0
  191. data/lib/generators/templates/ckeditor/_source/plugins/colordialog/dialogs/colordialog.js +191 -0
  192. data/lib/generators/templates/ckeditor/_source/plugins/colordialog/plugin.js +13 -0
  193. data/lib/generators/templates/ckeditor/_source/plugins/contextmenu/plugin.js +274 -0
  194. data/lib/generators/templates/ckeditor/_source/plugins/dialog/dialogDefinition.js +315 -0
  195. data/lib/generators/templates/ckeditor/_source/plugins/dialog/plugin.js +2913 -0
  196. data/lib/generators/templates/ckeditor/_source/plugins/dialogui/plugin.js +1408 -0
  197. data/lib/generators/templates/ckeditor/_source/plugins/div/dialogs/div.js +529 -0
  198. data/lib/generators/templates/ckeditor/_source/plugins/div/plugin.js +121 -0
  199. data/lib/generators/templates/ckeditor/_source/plugins/domiterator/plugin.js +355 -0
  200. data/lib/generators/templates/ckeditor/_source/plugins/editingblock/plugin.js +224 -0
  201. data/lib/generators/templates/ckeditor/_source/plugins/elementspath/plugin.js +203 -0
  202. data/lib/generators/templates/ckeditor/_source/plugins/embed/dialogs/embed.js +65 -0
  203. data/lib/generators/templates/ckeditor/_source/plugins/embed/images/embed.png +0 -0
  204. data/lib/generators/templates/ckeditor/_source/plugins/embed/lang/en.js +9 -0
  205. data/lib/generators/templates/ckeditor/_source/plugins/embed/lang/ru.js +9 -0
  206. data/lib/generators/templates/ckeditor/_source/plugins/embed/lang/uk.js +9 -0
  207. data/lib/generators/templates/ckeditor/_source/plugins/embed/plugin.js +43 -0
  208. data/lib/generators/templates/ckeditor/_source/plugins/enterkey/plugin.js +339 -0
  209. data/lib/generators/templates/ckeditor/_source/plugins/entities/plugin.js +200 -0
  210. data/lib/generators/templates/ckeditor/_source/plugins/fakeobjects/plugin.js +120 -0
  211. data/lib/generators/templates/ckeditor/_source/plugins/filebrowser/plugin.js +479 -0
  212. data/lib/generators/templates/ckeditor/_source/plugins/find/dialogs/find.js +867 -0
  213. data/lib/generators/templates/ckeditor/_source/plugins/find/plugin.js +46 -0
  214. data/lib/generators/templates/ckeditor/_source/plugins/flash/dialogs/flash.js +698 -0
  215. data/lib/generators/templates/ckeditor/_source/plugins/flash/images/placeholder.png +0 -0
  216. data/lib/generators/templates/ckeditor/_source/plugins/flash/plugin.js +165 -0
  217. data/lib/generators/templates/ckeditor/_source/plugins/floatpanel/plugin.js +376 -0
  218. data/lib/generators/templates/ckeditor/_source/plugins/font/plugin.js +234 -0
  219. data/lib/generators/templates/ckeditor/_source/plugins/format/plugin.js +193 -0
  220. data/lib/generators/templates/ckeditor/_source/plugins/forms/dialogs/button.js +135 -0
  221. data/lib/generators/templates/ckeditor/_source/plugins/forms/dialogs/checkbox.js +155 -0
  222. data/lib/generators/templates/ckeditor/_source/plugins/forms/dialogs/form.js +177 -0
  223. data/lib/generators/templates/ckeditor/_source/plugins/forms/dialogs/hiddenfield.js +91 -0
  224. data/lib/generators/templates/ckeditor/_source/plugins/forms/dialogs/radio.js +135 -0
  225. data/lib/generators/templates/ckeditor/_source/plugins/forms/dialogs/select.js +556 -0
  226. data/lib/generators/templates/ckeditor/_source/plugins/forms/dialogs/textarea.js +114 -0
  227. data/lib/generators/templates/ckeditor/_source/plugins/forms/dialogs/textfield.js +193 -0
  228. data/lib/generators/templates/ckeditor/_source/plugins/forms/plugin.js +217 -0
  229. data/lib/generators/templates/ckeditor/_source/plugins/horizontalrule/plugin.js +36 -0
  230. data/lib/generators/templates/ckeditor/_source/plugins/htmldataprocessor/plugin.js +463 -0
  231. data/lib/generators/templates/ckeditor/_source/plugins/htmlwriter/plugin.js +314 -0
  232. data/lib/generators/templates/ckeditor/_source/plugins/iframedialog/plugin.js +136 -0
  233. data/lib/generators/templates/ckeditor/_source/plugins/image/dialogs/image.js +1380 -0
  234. data/lib/generators/templates/ckeditor/_source/plugins/image/plugin.js +73 -0
  235. data/lib/generators/templates/ckeditor/_source/plugins/indent/plugin.js +381 -0
  236. data/lib/generators/templates/ckeditor/_source/plugins/justify/plugin.js +168 -0
  237. data/lib/generators/templates/ckeditor/_source/plugins/keystrokes/plugin.js +229 -0
  238. data/lib/generators/templates/ckeditor/_source/plugins/link/dialogs/anchor.js +99 -0
  239. data/lib/generators/templates/ckeditor/_source/plugins/link/dialogs/link.js +1413 -0
  240. data/lib/generators/templates/ckeditor/_source/plugins/link/images/anchor.gif +0 -0
  241. data/lib/generators/templates/ckeditor/_source/plugins/link/plugin.js +219 -0
  242. data/lib/generators/templates/ckeditor/_source/plugins/list/plugin.js +645 -0
  243. data/lib/generators/templates/ckeditor/_source/plugins/listblock/plugin.js +257 -0
  244. data/lib/generators/templates/ckeditor/_source/plugins/maximize/plugin.js +305 -0
  245. data/lib/generators/templates/ckeditor/_source/plugins/menu/plugin.js +406 -0
  246. data/lib/generators/templates/ckeditor/_source/plugins/menubutton/plugin.js +94 -0
  247. data/lib/generators/templates/ckeditor/_source/plugins/newpage/plugin.js +54 -0
  248. data/lib/generators/templates/ckeditor/_source/plugins/pagebreak/images/pagebreak.gif +0 -0
  249. data/lib/generators/templates/ckeditor/_source/plugins/pagebreak/plugin.js +103 -0
  250. data/lib/generators/templates/ckeditor/_source/plugins/panel/plugin.js +397 -0
  251. data/lib/generators/templates/ckeditor/_source/plugins/panelbutton/plugin.js +147 -0
  252. data/lib/generators/templates/ckeditor/_source/plugins/pastefromword/filter/default.js +1179 -0
  253. data/lib/generators/templates/ckeditor/_source/plugins/pastefromword/plugin.js +120 -0
  254. data/lib/generators/templates/ckeditor/_source/plugins/pastetext/dialogs/pastetext.js +77 -0
  255. data/lib/generators/templates/ckeditor/_source/plugins/pastetext/plugin.js +162 -0
  256. data/lib/generators/templates/ckeditor/_source/plugins/popup/plugin.js +62 -0
  257. data/lib/generators/templates/ckeditor/_source/plugins/preview/plugin.js +108 -0
  258. data/lib/generators/templates/ckeditor/_source/plugins/print/plugin.js +41 -0
  259. data/lib/generators/templates/ckeditor/_source/plugins/removeformat/plugin.js +132 -0
  260. data/lib/generators/templates/ckeditor/_source/plugins/resize/plugin.js +117 -0
  261. data/lib/generators/templates/ckeditor/_source/plugins/richcombo/plugin.js +370 -0
  262. data/lib/generators/templates/ckeditor/_source/plugins/save/plugin.js +55 -0
  263. data/lib/generators/templates/ckeditor/_source/plugins/scayt/dialogs/options.js +533 -0
  264. data/lib/generators/templates/ckeditor/_source/plugins/scayt/dialogs/toolbar.css +71 -0
  265. data/lib/generators/templates/ckeditor/_source/plugins/scayt/plugin.js +767 -0
  266. data/lib/generators/templates/ckeditor/_source/plugins/selection/plugin.js +1145 -0
  267. data/lib/generators/templates/ckeditor/_source/plugins/showblocks/images/block_address.png +0 -0
  268. data/lib/generators/templates/ckeditor/_source/plugins/showblocks/images/block_blockquote.png +0 -0
  269. data/lib/generators/templates/ckeditor/_source/plugins/showblocks/images/block_div.png +0 -0
  270. data/lib/generators/templates/ckeditor/_source/plugins/showblocks/images/block_h1.png +0 -0
  271. data/lib/generators/templates/ckeditor/_source/plugins/showblocks/images/block_h2.png +0 -0
  272. data/lib/generators/templates/ckeditor/_source/plugins/showblocks/images/block_h3.png +0 -0
  273. data/lib/generators/templates/ckeditor/_source/plugins/showblocks/images/block_h4.png +0 -0
  274. data/lib/generators/templates/ckeditor/_source/plugins/showblocks/images/block_h5.png +0 -0
  275. data/lib/generators/templates/ckeditor/_source/plugins/showblocks/images/block_h6.png +0 -0
  276. data/lib/generators/templates/ckeditor/_source/plugins/showblocks/images/block_p.png +0 -0
  277. data/lib/generators/templates/ckeditor/_source/plugins/showblocks/images/block_pre.png +0 -0
  278. data/lib/generators/templates/ckeditor/_source/plugins/showblocks/plugin.js +154 -0
  279. data/lib/generators/templates/ckeditor/_source/plugins/showborders/plugin.js +167 -0
  280. data/lib/generators/templates/ckeditor/_source/plugins/smiley/dialogs/smiley.js +216 -0
  281. data/lib/generators/templates/ckeditor/_source/plugins/smiley/images/angel_smile.gif +0 -0
  282. data/lib/generators/templates/ckeditor/_source/plugins/smiley/images/angry_smile.gif +0 -0
  283. data/lib/generators/templates/ckeditor/_source/plugins/smiley/images/broken_heart.gif +0 -0
  284. data/lib/generators/templates/ckeditor/_source/plugins/smiley/images/confused_smile.gif +0 -0
  285. data/lib/generators/templates/ckeditor/_source/plugins/smiley/images/cry_smile.gif +0 -0
  286. data/lib/generators/templates/ckeditor/_source/plugins/smiley/images/devil_smile.gif +0 -0
  287. data/lib/generators/templates/ckeditor/_source/plugins/smiley/images/embaressed_smile.gif +0 -0
  288. data/lib/generators/templates/ckeditor/_source/plugins/smiley/images/envelope.gif +0 -0
  289. data/lib/generators/templates/ckeditor/_source/plugins/smiley/images/heart.gif +0 -0
  290. data/lib/generators/templates/ckeditor/_source/plugins/smiley/images/kiss.gif +0 -0
  291. data/lib/generators/templates/ckeditor/_source/plugins/smiley/images/lightbulb.gif +0 -0
  292. data/lib/generators/templates/ckeditor/_source/plugins/smiley/images/omg_smile.gif +0 -0
  293. data/lib/generators/templates/ckeditor/_source/plugins/smiley/images/regular_smile.gif +0 -0
  294. data/lib/generators/templates/ckeditor/_source/plugins/smiley/images/sad_smile.gif +0 -0
  295. data/lib/generators/templates/ckeditor/_source/plugins/smiley/images/shades_smile.gif +0 -0
  296. data/lib/generators/templates/ckeditor/_source/plugins/smiley/images/teeth_smile.gif +0 -0
  297. data/lib/generators/templates/ckeditor/_source/plugins/smiley/images/thumbs_down.gif +0 -0
  298. data/lib/generators/templates/ckeditor/_source/plugins/smiley/images/thumbs_up.gif +0 -0
  299. data/lib/generators/templates/ckeditor/_source/plugins/smiley/images/tounge_smile.gif +0 -0
  300. data/lib/generators/templates/ckeditor/_source/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  301. data/lib/generators/templates/ckeditor/_source/plugins/smiley/images/wink_smile.gif +0 -0
  302. data/lib/generators/templates/ckeditor/_source/plugins/smiley/plugin.js +84 -0
  303. data/lib/generators/templates/ckeditor/_source/plugins/sourcearea/plugin.js +206 -0
  304. data/lib/generators/templates/ckeditor/_source/plugins/specialchar/dialogs/specialchar.js +403 -0
  305. data/lib/generators/templates/ckeditor/_source/plugins/specialchar/plugin.js +29 -0
  306. data/lib/generators/templates/ckeditor/_source/plugins/styles/plugin.js +1442 -0
  307. data/lib/generators/templates/ckeditor/_source/plugins/styles/styles/default.js +88 -0
  308. data/lib/generators/templates/ckeditor/_source/plugins/stylescombo/plugin.js +204 -0
  309. data/lib/generators/templates/ckeditor/_source/plugins/tab/plugin.js +261 -0
  310. data/lib/generators/templates/ckeditor/_source/plugins/table/dialogs/table.js +591 -0
  311. data/lib/generators/templates/ckeditor/_source/plugins/table/plugin.js +70 -0
  312. data/lib/generators/templates/ckeditor/_source/plugins/tabletools/dialogs/tableCell.js +528 -0
  313. data/lib/generators/templates/ckeditor/_source/plugins/tabletools/plugin.js +1068 -0
  314. data/lib/generators/templates/ckeditor/_source/plugins/templates/dialogs/templates.js +230 -0
  315. data/lib/generators/templates/ckeditor/_source/plugins/templates/plugin.js +100 -0
  316. data/lib/generators/templates/ckeditor/_source/plugins/templates/templates/default.js +94 -0
  317. data/lib/generators/templates/ckeditor/_source/plugins/templates/templates/images/template1.gif +0 -0
  318. data/lib/generators/templates/ckeditor/_source/plugins/templates/templates/images/template2.gif +0 -0
  319. data/lib/generators/templates/ckeditor/_source/plugins/templates/templates/images/template3.gif +0 -0
  320. data/lib/generators/templates/ckeditor/_source/plugins/toolbar/plugin.js +479 -0
  321. data/lib/generators/templates/ckeditor/_source/plugins/uicolor/dialogs/uicolor.js +204 -0
  322. data/lib/generators/templates/ckeditor/_source/plugins/uicolor/lang/en.js +15 -0
  323. data/lib/generators/templates/ckeditor/_source/plugins/uicolor/plugin.js +37 -0
  324. data/lib/generators/templates/ckeditor/_source/plugins/uicolor/uicolor.gif +0 -0
  325. data/lib/generators/templates/ckeditor/_source/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  326. data/lib/generators/templates/ckeditor/_source/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  327. data/lib/generators/templates/ckeditor/_source/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  328. data/lib/generators/templates/ckeditor/_source/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  329. data/lib/generators/templates/ckeditor/_source/plugins/uicolor/yui/assets/yui.css +15 -0
  330. data/lib/generators/templates/ckeditor/_source/plugins/uicolor/yui/yui.js +71 -0
  331. data/lib/generators/templates/ckeditor/_source/plugins/undo/plugin.js +519 -0
  332. data/lib/generators/templates/ckeditor/_source/plugins/wsc/dialogs/ciframe.html +49 -0
  333. data/lib/generators/templates/ckeditor/_source/plugins/wsc/dialogs/tmpFrameset.html +52 -0
  334. data/lib/generators/templates/ckeditor/_source/plugins/wsc/dialogs/wsc.css +83 -0
  335. data/lib/generators/templates/ckeditor/_source/plugins/wsc/dialogs/wsc.js +176 -0
  336. data/lib/generators/templates/ckeditor/_source/plugins/wsc/plugin.js +33 -0
  337. data/lib/generators/templates/ckeditor/_source/plugins/wysiwygarea/plugin.js +882 -0
  338. data/lib/generators/templates/ckeditor/_source/skins/kama/dialog.css +835 -0
  339. data/lib/generators/templates/ckeditor/_source/skins/kama/editor.css +25 -0
  340. data/lib/generators/templates/ckeditor/_source/skins/kama/elementspath.css +72 -0
  341. data/lib/generators/templates/ckeditor/_source/skins/kama/icons.css +326 -0
  342. data/lib/generators/templates/ckeditor/_source/skins/kama/icons.png +0 -0
  343. data/lib/generators/templates/ckeditor/_source/skins/kama/images/dialog_sides.gif +0 -0
  344. data/lib/generators/templates/ckeditor/_source/skins/kama/images/dialog_sides.png +0 -0
  345. data/lib/generators/templates/ckeditor/_source/skins/kama/images/dialog_sides_rtl.png +0 -0
  346. data/lib/generators/templates/ckeditor/_source/skins/kama/images/mini.gif +0 -0
  347. data/lib/generators/templates/ckeditor/_source/skins/kama/images/noimage.png +0 -0
  348. data/lib/generators/templates/ckeditor/_source/skins/kama/images/sprites.png +0 -0
  349. data/lib/generators/templates/ckeditor/_source/skins/kama/images/sprites_ie6.png +0 -0
  350. data/lib/generators/templates/ckeditor/_source/skins/kama/images/toolbar_start.gif +0 -0
  351. data/lib/generators/templates/ckeditor/_source/skins/kama/mainui.css +183 -0
  352. data/lib/generators/templates/ckeditor/_source/skins/kama/menu.css +197 -0
  353. data/lib/generators/templates/ckeditor/_source/skins/kama/panel.css +216 -0
  354. data/lib/generators/templates/ckeditor/_source/skins/kama/presets.css +49 -0
  355. data/lib/generators/templates/ckeditor/_source/skins/kama/reset.css +78 -0
  356. data/lib/generators/templates/ckeditor/_source/skins/kama/richcombo.css +270 -0
  357. data/lib/generators/templates/ckeditor/_source/skins/kama/skin.js +268 -0
  358. data/lib/generators/templates/ckeditor/_source/skins/kama/templates.css +84 -0
  359. data/lib/generators/templates/ckeditor/_source/skins/kama/toolbar.css +409 -0
  360. data/lib/generators/templates/ckeditor/_source/skins/office2003/dialog.css +738 -0
  361. data/lib/generators/templates/ckeditor/_source/skins/office2003/editor.css +25 -0
  362. data/lib/generators/templates/ckeditor/_source/skins/office2003/elementspath.css +73 -0
  363. data/lib/generators/templates/ckeditor/_source/skins/office2003/icons.css +324 -0
  364. data/lib/generators/templates/ckeditor/_source/skins/office2003/icons.png +0 -0
  365. data/lib/generators/templates/ckeditor/_source/skins/office2003/images/dialog_sides.gif +0 -0
  366. data/lib/generators/templates/ckeditor/_source/skins/office2003/images/dialog_sides.png +0 -0
  367. data/lib/generators/templates/ckeditor/_source/skins/office2003/images/dialog_sides_rtl.png +0 -0
  368. data/lib/generators/templates/ckeditor/_source/skins/office2003/images/mini.gif +0 -0
  369. data/lib/generators/templates/ckeditor/_source/skins/office2003/images/noimage.png +0 -0
  370. data/lib/generators/templates/ckeditor/_source/skins/office2003/images/sprites.png +0 -0
  371. data/lib/generators/templates/ckeditor/_source/skins/office2003/images/sprites_ie6.png +0 -0
  372. data/lib/generators/templates/ckeditor/_source/skins/office2003/mainui.css +133 -0
  373. data/lib/generators/templates/ckeditor/_source/skins/office2003/menu.css +194 -0
  374. data/lib/generators/templates/ckeditor/_source/skins/office2003/panel.css +211 -0
  375. data/lib/generators/templates/ckeditor/_source/skins/office2003/presets.css +49 -0
  376. data/lib/generators/templates/ckeditor/_source/skins/office2003/reset.css +78 -0
  377. data/lib/generators/templates/ckeditor/_source/skins/office2003/richcombo.css +289 -0
  378. data/lib/generators/templates/ckeditor/_source/skins/office2003/skin.js +81 -0
  379. data/lib/generators/templates/ckeditor/_source/skins/office2003/templates.css +81 -0
  380. data/lib/generators/templates/ckeditor/_source/skins/office2003/toolbar.css +463 -0
  381. data/lib/generators/templates/ckeditor/_source/skins/v2/dialog.css +753 -0
  382. data/lib/generators/templates/ckeditor/_source/skins/v2/editor.css +25 -0
  383. data/lib/generators/templates/ckeditor/_source/skins/v2/elementspath.css +73 -0
  384. data/lib/generators/templates/ckeditor/_source/skins/v2/icons.css +324 -0
  385. data/lib/generators/templates/ckeditor/_source/skins/v2/icons.png +0 -0
  386. data/lib/generators/templates/ckeditor/_source/skins/v2/images/dialog_sides.gif +0 -0
  387. data/lib/generators/templates/ckeditor/_source/skins/v2/images/dialog_sides.png +0 -0
  388. data/lib/generators/templates/ckeditor/_source/skins/v2/images/dialog_sides_rtl.png +0 -0
  389. data/lib/generators/templates/ckeditor/_source/skins/v2/images/mini.gif +0 -0
  390. data/lib/generators/templates/ckeditor/_source/skins/v2/images/noimage.png +0 -0
  391. data/lib/generators/templates/ckeditor/_source/skins/v2/images/sprites.png +0 -0
  392. data/lib/generators/templates/ckeditor/_source/skins/v2/images/sprites_ie6.png +0 -0
  393. data/lib/generators/templates/ckeditor/_source/skins/v2/images/toolbar_start.gif +0 -0
  394. data/lib/generators/templates/ckeditor/_source/skins/v2/mainui.css +142 -0
  395. data/lib/generators/templates/ckeditor/_source/skins/v2/menu.css +196 -0
  396. data/lib/generators/templates/ckeditor/_source/skins/v2/panel.css +211 -0
  397. data/lib/generators/templates/ckeditor/_source/skins/v2/presets.css +50 -0
  398. data/lib/generators/templates/ckeditor/_source/skins/v2/reset.css +78 -0
  399. data/lib/generators/templates/ckeditor/_source/skins/v2/richcombo.css +289 -0
  400. data/lib/generators/templates/ckeditor/_source/skins/v2/skin.js +77 -0
  401. data/lib/generators/templates/ckeditor/_source/skins/v2/templates.css +81 -0
  402. data/lib/generators/templates/ckeditor/_source/skins/v2/toolbar.css +415 -0
  403. data/lib/generators/templates/ckeditor/_source/themes/default/theme.js +335 -0
  404. data/lib/generators/templates/ckeditor/adapters/jquery.js +6 -0
  405. data/lib/generators/templates/ckeditor/ckeditor.js +124 -0
  406. data/lib/generators/templates/ckeditor/ckeditor.pack +205 -0
  407. data/lib/generators/templates/ckeditor/ckeditor_basic.js +8 -0
  408. data/lib/generators/templates/ckeditor/ckeditor_basic_source.js +20 -0
  409. data/lib/generators/templates/ckeditor/ckeditor_source.js +25 -0
  410. data/lib/generators/templates/ckeditor/config.js +42 -0
  411. data/lib/generators/templates/ckeditor/contents.css +35 -0
  412. data/lib/generators/templates/ckeditor/css/ckfinder.css +299 -0
  413. data/lib/generators/templates/ckeditor/css/fck_dialog.css +119 -0
  414. data/lib/generators/templates/ckeditor/css/fck_editor.css +448 -0
  415. data/lib/generators/templates/ckeditor/css/swfupload.css +94 -0
  416. data/lib/generators/templates/ckeditor/images/add.gif +0 -0
  417. data/lib/generators/templates/ckeditor/images/cancelbutton.gif +0 -0
  418. data/lib/generators/templates/ckeditor/images/ckfnothumb.gif +0 -0
  419. data/lib/generators/templates/ckeditor/images/doc.gif +0 -0
  420. data/lib/generators/templates/ckeditor/images/mp3.gif +0 -0
  421. data/lib/generators/templates/ckeditor/images/pdf.gif +0 -0
  422. data/lib/generators/templates/ckeditor/images/rar.gif +0 -0
  423. data/lib/generators/templates/ckeditor/images/refresh.gif +0 -0
  424. data/lib/generators/templates/ckeditor/images/select_files.png +0 -0
  425. data/lib/generators/templates/ckeditor/images/spacer.gif +0 -0
  426. data/lib/generators/templates/ckeditor/images/swf.gif +0 -0
  427. data/lib/generators/templates/ckeditor/images/toolbar.start.gif +0 -0
  428. data/lib/generators/templates/ckeditor/images/xls.gif +0 -0
  429. data/lib/generators/templates/ckeditor/lang/_languages.js +6 -0
  430. data/lib/generators/templates/ckeditor/lang/_translationstatus.txt +60 -0
  431. data/lib/generators/templates/ckeditor/lang/af.js +6 -0
  432. data/lib/generators/templates/ckeditor/lang/ar.js +6 -0
  433. data/lib/generators/templates/ckeditor/lang/bg.js +6 -0
  434. data/lib/generators/templates/ckeditor/lang/bn.js +6 -0
  435. data/lib/generators/templates/ckeditor/lang/bs.js +6 -0
  436. data/lib/generators/templates/ckeditor/lang/ca.js +6 -0
  437. data/lib/generators/templates/ckeditor/lang/cs.js +6 -0
  438. data/lib/generators/templates/ckeditor/lang/cy.js +6 -0
  439. data/lib/generators/templates/ckeditor/lang/da.js +6 -0
  440. data/lib/generators/templates/ckeditor/lang/de.js +6 -0
  441. data/lib/generators/templates/ckeditor/lang/el.js +6 -0
  442. data/lib/generators/templates/ckeditor/lang/en-au.js +6 -0
  443. data/lib/generators/templates/ckeditor/lang/en-ca.js +6 -0
  444. data/lib/generators/templates/ckeditor/lang/en-gb.js +6 -0
  445. data/lib/generators/templates/ckeditor/lang/en.js +6 -0
  446. data/lib/generators/templates/ckeditor/lang/eo.js +6 -0
  447. data/lib/generators/templates/ckeditor/lang/es.js +6 -0
  448. data/lib/generators/templates/ckeditor/lang/et.js +6 -0
  449. data/lib/generators/templates/ckeditor/lang/eu.js +6 -0
  450. data/lib/generators/templates/ckeditor/lang/fa.js +6 -0
  451. data/lib/generators/templates/ckeditor/lang/fi.js +6 -0
  452. data/lib/generators/templates/ckeditor/lang/fo.js +6 -0
  453. data/lib/generators/templates/ckeditor/lang/fr-ca.js +6 -0
  454. data/lib/generators/templates/ckeditor/lang/fr.js +6 -0
  455. data/lib/generators/templates/ckeditor/lang/gl.js +6 -0
  456. data/lib/generators/templates/ckeditor/lang/gu.js +6 -0
  457. data/lib/generators/templates/ckeditor/lang/he.js +6 -0
  458. data/lib/generators/templates/ckeditor/lang/hi.js +6 -0
  459. data/lib/generators/templates/ckeditor/lang/hr.js +6 -0
  460. data/lib/generators/templates/ckeditor/lang/hu.js +6 -0
  461. data/lib/generators/templates/ckeditor/lang/is.js +6 -0
  462. data/lib/generators/templates/ckeditor/lang/it.js +6 -0
  463. data/lib/generators/templates/ckeditor/lang/ja.js +6 -0
  464. data/lib/generators/templates/ckeditor/lang/km.js +6 -0
  465. data/lib/generators/templates/ckeditor/lang/ko.js +6 -0
  466. data/lib/generators/templates/ckeditor/lang/lt.js +6 -0
  467. data/lib/generators/templates/ckeditor/lang/lv.js +6 -0
  468. data/lib/generators/templates/ckeditor/lang/mn.js +6 -0
  469. data/lib/generators/templates/ckeditor/lang/ms.js +6 -0
  470. data/lib/generators/templates/ckeditor/lang/nb.js +6 -0
  471. data/lib/generators/templates/ckeditor/lang/nl.js +6 -0
  472. data/lib/generators/templates/ckeditor/lang/no.js +6 -0
  473. data/lib/generators/templates/ckeditor/lang/pl.js +6 -0
  474. data/lib/generators/templates/ckeditor/lang/pt-br.js +6 -0
  475. data/lib/generators/templates/ckeditor/lang/pt.js +6 -0
  476. data/lib/generators/templates/ckeditor/lang/ro.js +6 -0
  477. data/lib/generators/templates/ckeditor/lang/ru.js +6 -0
  478. data/lib/generators/templates/ckeditor/lang/sk.js +6 -0
  479. data/lib/generators/templates/ckeditor/lang/sl.js +6 -0
  480. data/lib/generators/templates/ckeditor/lang/sr-latn.js +6 -0
  481. data/lib/generators/templates/ckeditor/lang/sr.js +6 -0
  482. data/lib/generators/templates/ckeditor/lang/sv.js +6 -0
  483. data/lib/generators/templates/ckeditor/lang/th.js +6 -0
  484. data/lib/generators/templates/ckeditor/lang/tr.js +6 -0
  485. data/lib/generators/templates/ckeditor/lang/uk.js +6 -0
  486. data/lib/generators/templates/ckeditor/lang/vi.js +6 -0
  487. data/lib/generators/templates/ckeditor/lang/zh-cn.js +6 -0
  488. data/lib/generators/templates/ckeditor/lang/zh.js +6 -0
  489. data/lib/generators/templates/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +7 -0
  490. data/lib/generators/templates/ckeditor/plugins/a11yhelp/lang/en.js +6 -0
  491. data/lib/generators/templates/ckeditor/plugins/about/dialogs/about.js +6 -0
  492. data/lib/generators/templates/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  493. data/lib/generators/templates/ckeditor/plugins/attachment/dialogs/attachment.js +1 -0
  494. data/lib/generators/templates/ckeditor/plugins/attachment/images/attachment.png +0 -0
  495. data/lib/generators/templates/ckeditor/plugins/attachment/lang/en.js +1 -0
  496. data/lib/generators/templates/ckeditor/plugins/attachment/lang/ru.js +1 -0
  497. data/lib/generators/templates/ckeditor/plugins/attachment/lang/uk.js +1 -0
  498. data/lib/generators/templates/ckeditor/plugins/attachment/plugin.js +1 -0
  499. data/lib/generators/templates/ckeditor/plugins/clipboard/dialogs/paste.js +7 -0
  500. data/lib/generators/templates/ckeditor/plugins/colordialog/dialogs/colordialog.js +6 -0
  501. data/lib/generators/templates/ckeditor/plugins/dialog/dialogDefinition.js +4 -0
  502. data/lib/generators/templates/ckeditor/plugins/div/dialogs/div.js +7 -0
  503. data/lib/generators/templates/ckeditor/plugins/embed/dialogs/embed.js +1 -0
  504. data/lib/generators/templates/ckeditor/plugins/embed/images/embed.png +0 -0
  505. data/lib/generators/templates/ckeditor/plugins/embed/lang/en.js +1 -0
  506. data/lib/generators/templates/ckeditor/plugins/embed/lang/ru.js +1 -0
  507. data/lib/generators/templates/ckeditor/plugins/embed/lang/uk.js +1 -0
  508. data/lib/generators/templates/ckeditor/plugins/embed/plugin.js +1 -0
  509. data/lib/generators/templates/ckeditor/plugins/find/dialogs/find.js +9 -0
  510. data/lib/generators/templates/ckeditor/plugins/flash/dialogs/flash.js +9 -0
  511. data/lib/generators/templates/ckeditor/plugins/flash/images/placeholder.png +0 -0
  512. data/lib/generators/templates/ckeditor/plugins/forms/dialogs/button.js +6 -0
  513. data/lib/generators/templates/ckeditor/plugins/forms/dialogs/checkbox.js +6 -0
  514. data/lib/generators/templates/ckeditor/plugins/forms/dialogs/form.js +6 -0
  515. data/lib/generators/templates/ckeditor/plugins/forms/dialogs/hiddenfield.js +6 -0
  516. data/lib/generators/templates/ckeditor/plugins/forms/dialogs/radio.js +6 -0
  517. data/lib/generators/templates/ckeditor/plugins/forms/dialogs/select.js +9 -0
  518. data/lib/generators/templates/ckeditor/plugins/forms/dialogs/textarea.js +6 -0
  519. data/lib/generators/templates/ckeditor/plugins/forms/dialogs/textfield.js +6 -0
  520. data/lib/generators/templates/ckeditor/plugins/iframedialog/plugin.js +6 -0
  521. data/lib/generators/templates/ckeditor/plugins/image/dialogs/image.js +13 -0
  522. data/lib/generators/templates/ckeditor/plugins/link/dialogs/anchor.js +6 -0
  523. data/lib/generators/templates/ckeditor/plugins/link/dialogs/link.js +11 -0
  524. data/lib/generators/templates/ckeditor/plugins/link/images/anchor.gif +0 -0
  525. data/lib/generators/templates/ckeditor/plugins/pagebreak/images/pagebreak.gif +0 -0
  526. data/lib/generators/templates/ckeditor/plugins/pastefromword/filter/default.js +10 -0
  527. data/lib/generators/templates/ckeditor/plugins/pastetext/dialogs/pastetext.js +6 -0
  528. data/lib/generators/templates/ckeditor/plugins/scayt/dialogs/options.js +8 -0
  529. data/lib/generators/templates/ckeditor/plugins/scayt/dialogs/toolbar.css +6 -0
  530. data/lib/generators/templates/ckeditor/plugins/showblocks/images/block_address.png +0 -0
  531. data/lib/generators/templates/ckeditor/plugins/showblocks/images/block_blockquote.png +0 -0
  532. data/lib/generators/templates/ckeditor/plugins/showblocks/images/block_div.png +0 -0
  533. data/lib/generators/templates/ckeditor/plugins/showblocks/images/block_h1.png +0 -0
  534. data/lib/generators/templates/ckeditor/plugins/showblocks/images/block_h2.png +0 -0
  535. data/lib/generators/templates/ckeditor/plugins/showblocks/images/block_h3.png +0 -0
  536. data/lib/generators/templates/ckeditor/plugins/showblocks/images/block_h4.png +0 -0
  537. data/lib/generators/templates/ckeditor/plugins/showblocks/images/block_h5.png +0 -0
  538. data/lib/generators/templates/ckeditor/plugins/showblocks/images/block_h6.png +0 -0
  539. data/lib/generators/templates/ckeditor/plugins/showblocks/images/block_p.png +0 -0
  540. data/lib/generators/templates/ckeditor/plugins/showblocks/images/block_pre.png +0 -0
  541. data/lib/generators/templates/ckeditor/plugins/smiley/dialogs/smiley.js +7 -0
  542. data/lib/generators/templates/ckeditor/plugins/smiley/images/angel_smile.gif +0 -0
  543. data/lib/generators/templates/ckeditor/plugins/smiley/images/angry_smile.gif +0 -0
  544. data/lib/generators/templates/ckeditor/plugins/smiley/images/broken_heart.gif +0 -0
  545. data/lib/generators/templates/ckeditor/plugins/smiley/images/confused_smile.gif +0 -0
  546. data/lib/generators/templates/ckeditor/plugins/smiley/images/cry_smile.gif +0 -0
  547. data/lib/generators/templates/ckeditor/plugins/smiley/images/devil_smile.gif +0 -0
  548. data/lib/generators/templates/ckeditor/plugins/smiley/images/embaressed_smile.gif +0 -0
  549. data/lib/generators/templates/ckeditor/plugins/smiley/images/envelope.gif +0 -0
  550. data/lib/generators/templates/ckeditor/plugins/smiley/images/heart.gif +0 -0
  551. data/lib/generators/templates/ckeditor/plugins/smiley/images/kiss.gif +0 -0
  552. data/lib/generators/templates/ckeditor/plugins/smiley/images/lightbulb.gif +0 -0
  553. data/lib/generators/templates/ckeditor/plugins/smiley/images/omg_smile.gif +0 -0
  554. data/lib/generators/templates/ckeditor/plugins/smiley/images/regular_smile.gif +0 -0
  555. data/lib/generators/templates/ckeditor/plugins/smiley/images/sad_smile.gif +0 -0
  556. data/lib/generators/templates/ckeditor/plugins/smiley/images/shades_smile.gif +0 -0
  557. data/lib/generators/templates/ckeditor/plugins/smiley/images/teeth_smile.gif +0 -0
  558. data/lib/generators/templates/ckeditor/plugins/smiley/images/thumbs_down.gif +0 -0
  559. data/lib/generators/templates/ckeditor/plugins/smiley/images/thumbs_up.gif +0 -0
  560. data/lib/generators/templates/ckeditor/plugins/smiley/images/tounge_smile.gif +0 -0
  561. data/lib/generators/templates/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  562. data/lib/generators/templates/ckeditor/plugins/smiley/images/wink_smile.gif +0 -0
  563. data/lib/generators/templates/ckeditor/plugins/specialchar/dialogs/specialchar.js +7 -0
  564. data/lib/generators/templates/ckeditor/plugins/styles/styles/default.js +6 -0
  565. data/lib/generators/templates/ckeditor/plugins/table/dialogs/table.js +9 -0
  566. data/lib/generators/templates/ckeditor/plugins/tabletools/dialogs/tableCell.js +8 -0
  567. data/lib/generators/templates/ckeditor/plugins/templates/dialogs/templates.js +7 -0
  568. data/lib/generators/templates/ckeditor/plugins/templates/templates/default.js +6 -0
  569. data/lib/generators/templates/ckeditor/plugins/templates/templates/images/template1.gif +0 -0
  570. data/lib/generators/templates/ckeditor/plugins/templates/templates/images/template2.gif +0 -0
  571. data/lib/generators/templates/ckeditor/plugins/templates/templates/images/template3.gif +0 -0
  572. data/lib/generators/templates/ckeditor/plugins/uicolor/dialogs/uicolor.js +7 -0
  573. data/lib/generators/templates/ckeditor/plugins/uicolor/lang/en.js +6 -0
  574. data/lib/generators/templates/ckeditor/plugins/uicolor/plugin.js +6 -0
  575. data/lib/generators/templates/ckeditor/plugins/uicolor/uicolor.gif +0 -0
  576. data/lib/generators/templates/ckeditor/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  577. data/lib/generators/templates/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  578. data/lib/generators/templates/ckeditor/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  579. data/lib/generators/templates/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  580. data/lib/generators/templates/ckeditor/plugins/uicolor/yui/assets/yui.css +6 -0
  581. data/lib/generators/templates/ckeditor/plugins/uicolor/yui/yui.js +76 -0
  582. data/lib/generators/templates/ckeditor/plugins/wsc/dialogs/ciframe.html +49 -0
  583. data/lib/generators/templates/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +52 -0
  584. data/lib/generators/templates/ckeditor/plugins/wsc/dialogs/wsc.css +6 -0
  585. data/lib/generators/templates/ckeditor/plugins/wsc/dialogs/wsc.js +7 -0
  586. data/lib/generators/templates/ckeditor/skins/kama/dialog.css +9 -0
  587. data/lib/generators/templates/ckeditor/skins/kama/editor.css +12 -0
  588. data/lib/generators/templates/ckeditor/skins/kama/icons.png +0 -0
  589. data/lib/generators/templates/ckeditor/skins/kama/images/dialog_sides.gif +0 -0
  590. data/lib/generators/templates/ckeditor/skins/kama/images/dialog_sides.png +0 -0
  591. data/lib/generators/templates/ckeditor/skins/kama/images/dialog_sides_rtl.png +0 -0
  592. data/lib/generators/templates/ckeditor/skins/kama/images/mini.gif +0 -0
  593. data/lib/generators/templates/ckeditor/skins/kama/images/noimage.png +0 -0
  594. data/lib/generators/templates/ckeditor/skins/kama/images/sprites.png +0 -0
  595. data/lib/generators/templates/ckeditor/skins/kama/images/sprites_ie6.png +0 -0
  596. data/lib/generators/templates/ckeditor/skins/kama/images/toolbar_start.gif +0 -0
  597. data/lib/generators/templates/ckeditor/skins/kama/skin.js +7 -0
  598. data/lib/generators/templates/ckeditor/skins/kama/templates.css +6 -0
  599. data/lib/generators/templates/ckeditor/skins/office2003/dialog.css +9 -0
  600. data/lib/generators/templates/ckeditor/skins/office2003/editor.css +13 -0
  601. data/lib/generators/templates/ckeditor/skins/office2003/icons.png +0 -0
  602. data/lib/generators/templates/ckeditor/skins/office2003/images/dialog_sides.gif +0 -0
  603. data/lib/generators/templates/ckeditor/skins/office2003/images/dialog_sides.png +0 -0
  604. data/lib/generators/templates/ckeditor/skins/office2003/images/dialog_sides_rtl.png +0 -0
  605. data/lib/generators/templates/ckeditor/skins/office2003/images/mini.gif +0 -0
  606. data/lib/generators/templates/ckeditor/skins/office2003/images/noimage.png +0 -0
  607. data/lib/generators/templates/ckeditor/skins/office2003/images/sprites.png +0 -0
  608. data/lib/generators/templates/ckeditor/skins/office2003/images/sprites_ie6.png +0 -0
  609. data/lib/generators/templates/ckeditor/skins/office2003/skin.js +6 -0
  610. data/lib/generators/templates/ckeditor/skins/office2003/templates.css +6 -0
  611. data/lib/generators/templates/ckeditor/skins/v2/dialog.css +8 -0
  612. data/lib/generators/templates/ckeditor/skins/v2/editor.css +12 -0
  613. data/lib/generators/templates/ckeditor/skins/v2/icons.png +0 -0
  614. data/lib/generators/templates/ckeditor/skins/v2/images/dialog_sides.gif +0 -0
  615. data/lib/generators/templates/ckeditor/skins/v2/images/dialog_sides.png +0 -0
  616. data/lib/generators/templates/ckeditor/skins/v2/images/dialog_sides_rtl.png +0 -0
  617. data/lib/generators/templates/ckeditor/skins/v2/images/mini.gif +0 -0
  618. data/lib/generators/templates/ckeditor/skins/v2/images/noimage.png +0 -0
  619. data/lib/generators/templates/ckeditor/skins/v2/images/sprites.png +0 -0
  620. data/lib/generators/templates/ckeditor/skins/v2/images/sprites_ie6.png +0 -0
  621. data/lib/generators/templates/ckeditor/skins/v2/images/toolbar_start.gif +0 -0
  622. data/lib/generators/templates/ckeditor/skins/v2/skin.js +6 -0
  623. data/lib/generators/templates/ckeditor/skins/v2/templates.css +6 -0
  624. data/lib/generators/templates/ckeditor/swfupload/fileprogress.js +290 -0
  625. data/lib/generators/templates/ckeditor/swfupload/handlers.js +170 -0
  626. data/lib/generators/templates/ckeditor/swfupload/mootools-1.2.3-core-yc.js +356 -0
  627. data/lib/generators/templates/ckeditor/swfupload/querystring.js +40 -0
  628. data/lib/generators/templates/ckeditor/swfupload/swfupload.js +980 -0
  629. data/lib/generators/templates/ckeditor/swfupload/swfupload.queue.js +98 -0
  630. data/lib/generators/templates/ckeditor/swfupload/swfupload.swf +0 -0
  631. data/lib/generators/templates/ckeditor/swfupload/swfupload.swfobject.js +111 -0
  632. data/lib/generators/templates/ckeditor/themes/default/theme.js +8 -0
  633. data/lib/tasks/ckeditor_tasks.rake +3 -0
  634. metadata +694 -0
@@ -0,0 +1,49 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
+ <!--
3
+ Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
4
+ For licensing, see LICENSE.html or http://ckeditor.com/license
5
+ -->
6
+ <html>
7
+ <head>
8
+ <title></title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
10
+ <script type="text/javascript">
11
+
12
+ function gup( name )
13
+ {
14
+ name = name.replace( /[\[]/, '\\\[' ).replace( /[\]]/, '\\\]' ) ;
15
+ var regexS = '[\\?&]' + name + '=([^&#]*)' ;
16
+ var regex = new RegExp( regexS ) ;
17
+ var results = regex.exec( window.location.href ) ;
18
+
19
+ if ( results )
20
+ return results[ 1 ] ;
21
+ else
22
+ return '' ;
23
+ }
24
+
25
+ var interval;
26
+
27
+ function sendData2Master()
28
+ {
29
+ var destination = window.parent.parent ;
30
+ try
31
+ {
32
+ if ( destination.XDTMaster )
33
+ {
34
+ var t = destination.XDTMaster.read( [ gup( 'cmd' ), gup( 'data' ) ] ) ;
35
+ window.clearInterval( interval ) ;
36
+ }
37
+ }
38
+ catch (e) {}
39
+ }
40
+
41
+ function onLoad()
42
+ {
43
+ interval = window.setInterval( sendData2Master, 100 );
44
+ }
45
+
46
+ </script>
47
+ </head>
48
+ <body onload="onLoad()"><p></p></body>
49
+ </html>
@@ -0,0 +1,52 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
2
+ <!--
3
+ Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
4
+ For licensing, see LICENSE.html or http://ckeditor.com/license
5
+ -->
6
+ <html>
7
+ <head>
8
+ <title></title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
10
+ <script type="text/javascript">
11
+
12
+ function doLoadScript( url )
13
+ {
14
+ if ( !url )
15
+ return false ;
16
+
17
+ var s = document.createElement( "script" ) ;
18
+ s.type = "text/javascript" ;
19
+ s.src = url ;
20
+ document.getElementsByTagName( "head" )[ 0 ].appendChild( s ) ;
21
+
22
+ return true ;
23
+ }
24
+
25
+ var opener;
26
+ function tryLoad()
27
+ {
28
+ opener = window.parent;
29
+
30
+ // get access to global parameters
31
+ var oParams = window.opener.oldFramesetPageParams;
32
+
33
+ // make frameset rows string prepare
34
+ var sFramesetRows = ( parseInt( oParams.firstframeh, 10 ) || '30') + ",*," + ( parseInt( oParams.thirdframeh, 10 ) || '150' ) + ',0' ;
35
+ document.getElementById( 'itFrameset' ).rows = sFramesetRows ;
36
+
37
+ // dynamic including init frames and crossdomain transport code
38
+ // from config sproxy_js_frameset url
39
+ var addScriptUrl = oParams.sproxy_js_frameset ;
40
+ doLoadScript( addScriptUrl ) ;
41
+ }
42
+
43
+ </script>
44
+ </head>
45
+
46
+ <frameset id="itFrameset" onload="tryLoad();" border="0" rows="30,*,*,0">
47
+ <frame scrolling="no" framespacing="0" frameborder="0" noresize="noresize" marginheight="0" marginwidth="2" src="" name="navbar"></frame>
48
+ <frame scrolling="auto" framespacing="0" frameborder="0" noresize="noresize" marginheight="0" marginwidth="0" src="" name="mid"></frame>
49
+ <frame scrolling="no" framespacing="0" frameborder="0" noresize="noresize" marginheight="1" marginwidth="1" src="" name="bot"></frame>
50
+ <frame scrolling="no" framespacing="0" frameborder="0" noresize="noresize" marginheight="1" marginwidth="1" src="" name="spellsuggestall"></frame>
51
+ </frameset>
52
+ </html>
@@ -0,0 +1,83 @@
1
+ /*
2
+ Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ html, body
7
+ {
8
+ background-color: transparent;
9
+ margin: 0px;
10
+ padding: 0px;
11
+ }
12
+
13
+ body
14
+ {
15
+ padding: 10px;
16
+ }
17
+
18
+ body, td, input, select, textarea
19
+ {
20
+ font-size: 11px;
21
+ font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana;
22
+ }
23
+
24
+ .midtext
25
+ {
26
+ padding:0px;
27
+ margin:10px;
28
+ }
29
+
30
+ .midtext p
31
+ {
32
+ padding:0px;
33
+ margin:10px;
34
+ }
35
+
36
+ .Button
37
+ {
38
+ border: #737357 1px solid;
39
+ color: #3b3b1f;
40
+ background-color: #c7c78f;
41
+ }
42
+
43
+ .PopupTabArea
44
+ {
45
+ color: #737357;
46
+ background-color: #e3e3c7;
47
+ }
48
+
49
+ .PopupTitleBorder
50
+ {
51
+ border-bottom: #d5d59d 1px solid;
52
+ }
53
+ .PopupTabEmptyArea
54
+ {
55
+ padding-left: 10px;
56
+ border-bottom: #d5d59d 1px solid;
57
+ }
58
+
59
+ .PopupTab, .PopupTabSelected
60
+ {
61
+ border-right: #d5d59d 1px solid;
62
+ border-top: #d5d59d 1px solid;
63
+ border-left: #d5d59d 1px solid;
64
+ padding: 3px 5px 3px 5px;
65
+ color: #737357;
66
+ }
67
+
68
+ .PopupTab
69
+ {
70
+ margin-top: 1px;
71
+ border-bottom: #d5d59d 1px solid;
72
+ cursor: pointer;
73
+ cursor: hand;
74
+ }
75
+
76
+ .PopupTabSelected
77
+ {
78
+ font-weight: bold;
79
+ cursor: default;
80
+ padding-top: 4px;
81
+ border-bottom: #f1f1e3 1px solid;
82
+ background-color: #f1f1e3;
83
+ }
@@ -0,0 +1,176 @@
1
+ /*
2
+ Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ CKEDITOR.dialog.add( 'checkspell', function( editor )
7
+ {
8
+ var number = CKEDITOR.tools.getNextNumber(),
9
+ iframeId = 'cke_frame_' + number,
10
+ textareaId = 'cke_data_' + number,
11
+ errorBoxId = 'cke_error_' + number,
12
+ interval,
13
+ protocol = document.location.protocol || 'http:',
14
+ errorMsg = editor.lang.spellCheck.notAvailable;
15
+
16
+ var pasteArea = '<textarea'+
17
+ ' style="display: none"' +
18
+ ' id="' + textareaId + '"' +
19
+ ' rows="10"' +
20
+ ' cols="40">' +
21
+ ' </textarea><div' +
22
+ ' id="' + errorBoxId + '"' +
23
+ ' style="display:none;color:red;font-size:16px;font-weight:bold;padding-top:160px;text-align:center;z-index:11;">' +
24
+ '</div><iframe' +
25
+ ' src=""' +
26
+ ' style="width:485px;background-color:#f1f1e3;height:380px"' +
27
+ ' frameborder="0"' +
28
+ ' name="' + iframeId + '"' +
29
+ ' id="' + iframeId + '"' +
30
+ ' allowtransparency="1">' +
31
+ '</iframe>';
32
+
33
+ var wscCoreUrl = editor.config.wsc_customLoaderScript || ( protocol +
34
+ '//loader.spellchecker.net/sproxy_fck/sproxy.php'
35
+ + '?plugin=fck2'
36
+ + '&customerid=' + editor.config.wsc_customerId
37
+ + '&cmd=script&doc=wsc&schema=22'
38
+ );
39
+
40
+ if ( editor.config.wsc_customLoaderScript )
41
+ errorMsg += '<p style="color:#000;font-size:11px;font-weight: normal;text-align:center;padding-top:10px">' +
42
+ editor.lang.spellCheck.errorLoading.replace( /%s/g, editor.config.wsc_customLoaderScript ) + '</p>';
43
+
44
+ function burnSpelling( dialog, errorMsg )
45
+ {
46
+ var i = 0;
47
+ return function ()
48
+ {
49
+ if ( typeof( window.doSpell ) == 'function' )
50
+ {
51
+ //Call from window.setInteval expected at once.
52
+ if ( typeof( interval ) != 'undefined' )
53
+ window.clearInterval( interval );
54
+
55
+ initAndSpell( dialog );
56
+ }
57
+ else if ( i++ == 180 ) // Timeout: 180 * 250ms = 45s.
58
+ window._cancelOnError( errorMsg );
59
+ };
60
+ }
61
+
62
+ window._cancelOnError = function( m )
63
+ {
64
+ if ( typeof( window.WSC_Error ) == 'undefined' )
65
+ {
66
+ CKEDITOR.document.getById( iframeId ).setStyle( 'display', 'none' );
67
+ var errorBox = CKEDITOR.document.getById( errorBoxId );
68
+ errorBox.setStyle( 'display', 'block' );
69
+ errorBox.setHtml( m || editor.lang.spellCheck.notAvailable );
70
+ }
71
+ };
72
+
73
+ function initAndSpell( dialog )
74
+ {
75
+ var LangComparer = new window._SP_FCK_LangCompare(), // Language abbr standarts comparer.
76
+ pluginPath = CKEDITOR.getUrl( editor.plugins.wsc.path + 'dialogs/' ), // Service paths corecting/preparing.
77
+ framesetPath = pluginPath + 'tmpFrameset.html';
78
+
79
+ // global var is used in FCK specific core
80
+ // change on equal var used in fckplugin.js
81
+ window.gFCKPluginName = 'wsc';
82
+
83
+ LangComparer.setDefaulLangCode( editor.config.defaultLanguage );
84
+
85
+ window.doSpell({
86
+ ctrl : textareaId,
87
+
88
+ lang : editor.config.wsc_lang || LangComparer.getSPLangCode(editor.langCode ),
89
+ intLang: editor.config.wsc_uiLang || LangComparer.getSPLangCode(editor.langCode ),
90
+ winType : iframeId, // If not defined app will run on winpopup.
91
+
92
+ // Callback binding section.
93
+ onCancel : function()
94
+ {
95
+ dialog.hide();
96
+ },
97
+ onFinish : function( dT )
98
+ {
99
+ editor.focus();
100
+ dialog.getParentEditor().setData( dT.value );
101
+ dialog.hide();
102
+ },
103
+
104
+ // Some manipulations with client static pages.
105
+ staticFrame : framesetPath,
106
+ framesetPath : framesetPath,
107
+ iframePath : pluginPath + 'ciframe.html',
108
+
109
+ // Styles defining.
110
+ schemaURI : pluginPath + 'wsc.css',
111
+
112
+ userDictionaryName: editor.config.wsc_userDictionaryName,
113
+ customDictionaryName: editor.config.wsc_customDictionaryIds && editor.config.wsc_customDictionaryIds.split(","),
114
+ domainName: editor.config.wsc_domainName
115
+
116
+ });
117
+
118
+ // Hide user message console (if application was loaded more then after timeout).
119
+ CKEDITOR.document.getById( errorBoxId ).setStyle( 'display', 'none' );
120
+ CKEDITOR.document.getById( iframeId ).setStyle( 'display', 'block' );
121
+ }
122
+
123
+ return {
124
+ title : editor.config.wsc_dialogTitle || editor.lang.spellCheck.title,
125
+ minWidth : 485,
126
+ minHeight : 380,
127
+ buttons : [ CKEDITOR.dialog.cancelButton ],
128
+ onShow : function()
129
+ {
130
+ var contentArea = this.getContentElement( 'general', 'content' ).getElement();
131
+ contentArea.setHtml( pasteArea );
132
+
133
+ if ( typeof( window.doSpell ) != 'function' )
134
+ {
135
+ // Load script.
136
+ CKEDITOR.document.getHead().append(
137
+ CKEDITOR.document.createElement( 'script',
138
+ {
139
+ attributes :
140
+ {
141
+ type : 'text/javascript',
142
+ src : wscCoreUrl
143
+ }
144
+ })
145
+ );
146
+ }
147
+
148
+ var sData = editor.getData(); // Get the data to be checked.
149
+ CKEDITOR.document.getById( textareaId ).setValue( sData );
150
+
151
+ interval = window.setInterval( burnSpelling( this, errorMsg ), 250 );
152
+ },
153
+ onHide : function()
154
+ {
155
+ window.ooo = undefined;
156
+ window.int_framsetLoaded = undefined;
157
+ window.framesetLoaded = undefined;
158
+ window.is_window_opened = false;
159
+ },
160
+ contents : [
161
+ {
162
+ id : 'general',
163
+ label : editor.config.wsc_dialogTitle || editor.lang.spellCheck.title,
164
+ padding : 0,
165
+ elements : [
166
+ {
167
+ type : 'html',
168
+ id : 'content',
169
+ style : 'width:485;height:380px',
170
+ html : '<div></div>'
171
+ }
172
+ ]
173
+ }
174
+ ]
175
+ };
176
+ });
@@ -0,0 +1,33 @@
1
+ /*
2
+ Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ /**
7
+ * @file Spell checker
8
+ */
9
+
10
+ // Register a plugin named "wsc".
11
+ CKEDITOR.plugins.add( 'wsc',
12
+ {
13
+ requires : [ 'dialog' ],
14
+ init : function( editor )
15
+ {
16
+ var commandName = 'checkspell';
17
+
18
+ var command = editor.addCommand( commandName, new CKEDITOR.dialogCommand( commandName ) );
19
+
20
+ // SpellChecker doesn't work in Opera and with custom domain
21
+ command.modes = { wysiwyg : ( !CKEDITOR.env.opera && document.domain == window.location.hostname ) };
22
+
23
+ editor.ui.addButton( 'SpellChecker',
24
+ {
25
+ label : editor.lang.spellCheck.toolbar,
26
+ command : commandName
27
+ });
28
+ CKEDITOR.dialog.add( commandName, this.path + 'dialogs/wsc.js' );
29
+ }
30
+ });
31
+
32
+ CKEDITOR.config.wsc_customerId = CKEDITOR.config.wsc_customerId || '1:ua3xw1-2XyGJ3-GWruD3-6OFNT1-oXcuB1-nR6Bp4-hgQHc-EcYng3-sdRXG3-NOfFk' ;
33
+ CKEDITOR.config.wsc_customLoaderScript = CKEDITOR.config.wsc_customLoaderScript || null;
@@ -0,0 +1,882 @@
1
+ /*
2
+ Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ /**
7
+ * @fileOverview The "wysiwygarea" plugin. It registers the "wysiwyg" editing
8
+ * mode, which handles the main editing area space.
9
+ */
10
+
11
+ (function()
12
+ {
13
+ // List of elements in which has no way to move editing focus outside.
14
+ var nonExitableElementNames = { table:1,pre:1 };
15
+
16
+ // Matching an empty paragraph at the end of document.
17
+ var emptyParagraphRegexp = /\s*<(p|div|address|h\d|center)[^>]*>\s*(?:<br[^>]*>|&nbsp;|\u00A0|&#160;)?\s*(:?<\/\1>)?\s*(?=$|<\/body>)/gi;
18
+
19
+ function onInsertHtml( evt )
20
+ {
21
+ if ( this.mode == 'wysiwyg' )
22
+ {
23
+ this.focus();
24
+ this.fire( 'saveSnapshot' );
25
+
26
+ var selection = this.getSelection(),
27
+ data = evt.data;
28
+
29
+ if ( this.dataProcessor )
30
+ data = this.dataProcessor.toHtml( data );
31
+
32
+ if ( CKEDITOR.env.ie )
33
+ {
34
+ var selIsLocked = selection.isLocked;
35
+
36
+ if ( selIsLocked )
37
+ selection.unlock();
38
+
39
+ var $sel = selection.getNative();
40
+ if ( $sel.type == 'Control' )
41
+ $sel.clear();
42
+ $sel.createRange().pasteHTML( data );
43
+
44
+ if ( selIsLocked )
45
+ this.getSelection().lock();
46
+ }
47
+ else
48
+ this.document.$.execCommand( 'inserthtml', false, data );
49
+
50
+ CKEDITOR.tools.setTimeout( function()
51
+ {
52
+ this.fire( 'saveSnapshot' );
53
+ }, 0, this );
54
+ }
55
+ }
56
+
57
+ function onInsertElement( evt )
58
+ {
59
+ if ( this.mode == 'wysiwyg' )
60
+ {
61
+ this.focus();
62
+ this.fire( 'saveSnapshot' );
63
+
64
+ var element = evt.data,
65
+ elementName = element.getName(),
66
+ isBlock = CKEDITOR.dtd.$block[ elementName ];
67
+
68
+ var selection = this.getSelection(),
69
+ ranges = selection.getRanges();
70
+
71
+ var selIsLocked = selection.isLocked;
72
+
73
+ if ( selIsLocked )
74
+ selection.unlock();
75
+
76
+ var range, clone, lastElement, bookmark;
77
+
78
+ for ( var i = ranges.length - 1 ; i >= 0 ; i-- )
79
+ {
80
+ range = ranges[ i ];
81
+
82
+ // Remove the original contents.
83
+ range.deleteContents();
84
+
85
+ clone = !i && element || element.clone( true );
86
+
87
+ // If we're inserting a block at dtd-violated position, split
88
+ // the parent blocks until we reach blockLimit.
89
+ var current, dtd;
90
+ if ( isBlock )
91
+ {
92
+ while ( ( current = range.getCommonAncestor( false, true ) )
93
+ && ( dtd = CKEDITOR.dtd[ current.getName() ] )
94
+ && !( dtd && dtd [ elementName ] ) )
95
+ {
96
+ // Split up inline elements.
97
+ if ( current.getName() in CKEDITOR.dtd.span )
98
+ range.splitElement( current );
99
+ // If we're in an empty block which indicate a new paragraph,
100
+ // simply replace it with the inserting block.(#3664)
101
+ else if ( range.checkStartOfBlock()
102
+ && range.checkEndOfBlock() )
103
+ {
104
+ range.setStartBefore( current );
105
+ range.collapse( true );
106
+ current.remove();
107
+ }
108
+ else
109
+ range.splitBlock();
110
+ }
111
+ }
112
+
113
+ // Insert the new node.
114
+ range.insertNode( clone );
115
+
116
+ // Save the last element reference so we can make the
117
+ // selection later.
118
+ if ( !lastElement )
119
+ lastElement = clone;
120
+ }
121
+
122
+ range.moveToPosition( lastElement, CKEDITOR.POSITION_AFTER_END );
123
+
124
+ var next = lastElement.getNextSourceNode( true );
125
+ if ( next && next.type == CKEDITOR.NODE_ELEMENT )
126
+ range.moveToElementEditStart( next );
127
+
128
+ selection.selectRanges( [ range ] );
129
+
130
+ if ( selIsLocked )
131
+ this.getSelection().lock();
132
+
133
+ // Save snaps after the whole execution completed.
134
+ // This's a workaround for make DOM modification's happened after
135
+ // 'insertElement' to be included either, e.g. Form-based dialogs' 'commitContents'
136
+ // call.
137
+ CKEDITOR.tools.setTimeout( function(){
138
+ this.fire( 'saveSnapshot' );
139
+ }, 0, this );
140
+ }
141
+ }
142
+
143
+ // DOM modification here should not bother dirty flag.(#4385)
144
+ function restoreDirty( editor )
145
+ {
146
+ if ( !editor.checkDirty() )
147
+ setTimeout( function(){ editor.resetDirty(); } );
148
+ }
149
+
150
+ var isNotWhitespace = CKEDITOR.dom.walker.whitespaces( true ),
151
+ isNotBookmark = CKEDITOR.dom.walker.bookmark( false, true );
152
+
153
+ function isNotEmpty( node )
154
+ {
155
+ return isNotWhitespace( node ) && isNotBookmark( node );
156
+ }
157
+
158
+ function isNbsp( node )
159
+ {
160
+ return node.type == CKEDITOR.NODE_TEXT
161
+ && CKEDITOR.tools.trim( node.getText() ).match( /^(?:&nbsp;|\xa0)$/ );
162
+ }
163
+
164
+ function restoreSelection( selection )
165
+ {
166
+ if ( selection.isLocked )
167
+ {
168
+ selection.unlock();
169
+ setTimeout( function() { selection.lock(); }, 0 );
170
+ }
171
+ }
172
+
173
+ /**
174
+ * Auto-fixing block-less content by wrapping paragraph (#3190), prevent
175
+ * non-exitable-block by padding extra br.(#3189)
176
+ */
177
+ function onSelectionChangeFixBody( evt )
178
+ {
179
+ var editor = evt.editor,
180
+ path = evt.data.path,
181
+ blockLimit = path.blockLimit,
182
+ selection = evt.data.selection,
183
+ range = selection.getRanges()[0],
184
+ body = editor.document.getBody(),
185
+ enterMode = editor.config.enterMode;
186
+
187
+ // When enterMode set to block, we'll establing new paragraph only if we're
188
+ // selecting inline contents right under body. (#3657)
189
+ if ( enterMode != CKEDITOR.ENTER_BR
190
+ && range.collapsed
191
+ && blockLimit.getName() == 'body'
192
+ && !path.block )
193
+ {
194
+ restoreDirty( editor );
195
+ CKEDITOR.env.ie && restoreSelection( selection );
196
+
197
+ var fixedBlock = range.fixBlock( true,
198
+ editor.config.enterMode == CKEDITOR.ENTER_DIV ? 'div' : 'p' );
199
+
200
+ // For IE, we should remove any filler node which was introduced before.
201
+ if ( CKEDITOR.env.ie )
202
+ {
203
+ var first = fixedBlock.getFirst( isNotEmpty );
204
+ first && isNbsp( first ) && first.remove();
205
+ }
206
+
207
+ // If the fixed block is blank and already followed by a exitable
208
+ // block, we should revert the fix. (#3684)
209
+ if ( fixedBlock.getOuterHtml().match( emptyParagraphRegexp ) )
210
+ {
211
+ var previousElement = fixedBlock.getPrevious( isNotWhitespace ),
212
+ nextElement = fixedBlock.getNext( isNotWhitespace );
213
+
214
+ if ( previousElement && previousElement.getName
215
+ && !( previousElement.getName() in nonExitableElementNames )
216
+ && range.moveToElementEditStart( previousElement )
217
+ || nextElement && nextElement.getName
218
+ && !( nextElement.getName() in nonExitableElementNames )
219
+ && range.moveToElementEditStart( nextElement ) )
220
+ {
221
+ fixedBlock.remove();
222
+ }
223
+ }
224
+
225
+ range.select();
226
+ // Notify non-IE that selection has changed.
227
+ if ( !CKEDITOR.env.ie )
228
+ editor.selectionChange();
229
+ }
230
+
231
+ // All browsers are incapable to moving cursor out of certain non-exitable
232
+ // blocks (e.g. table, list, pre) at the end of document, make this happen by
233
+ // place a bogus node there, which would be later removed by dataprocessor.
234
+ var walkerRange = new CKEDITOR.dom.range( editor.document ),
235
+ walker = new CKEDITOR.dom.walker( walkerRange );
236
+ walkerRange.selectNodeContents( body );
237
+ walker.evaluator = function( node )
238
+ {
239
+ return node.type == CKEDITOR.NODE_ELEMENT && ( node.getName() in nonExitableElementNames );
240
+ };
241
+ walker.guard = function( node, isMoveout )
242
+ {
243
+ return !( ( node.type == CKEDITOR.NODE_TEXT && isNotWhitespace( node ) ) || isMoveout );
244
+ };
245
+
246
+ if ( walker.previous() )
247
+ {
248
+ restoreDirty( editor );
249
+ CKEDITOR.env.ie && restoreSelection( selection );
250
+
251
+ var paddingBlock;
252
+ if ( enterMode != CKEDITOR.ENTER_BR )
253
+ paddingBlock = body.append( new CKEDITOR.dom.element( enterMode == CKEDITOR.ENTER_P ? 'p' : 'div' ) );
254
+ else
255
+ paddingBlock = body;
256
+
257
+ if ( !CKEDITOR.env.ie )
258
+ paddingBlock.appendBogus();
259
+ }
260
+ }
261
+
262
+ CKEDITOR.plugins.add( 'wysiwygarea',
263
+ {
264
+ requires : [ 'editingblock' ],
265
+
266
+ init : function( editor )
267
+ {
268
+ var fixForBody = ( editor.config.enterMode != CKEDITOR.ENTER_BR )
269
+ ? editor.config.enterMode == CKEDITOR.ENTER_DIV ? 'div' : 'p' : false;
270
+
271
+ var frameLabel = editor.lang.editorTitle.replace( '%1', editor.name );
272
+
273
+ editor.on( 'editingBlockReady', function()
274
+ {
275
+ var mainElement,
276
+ iframe,
277
+ isLoadingData,
278
+ isPendingFocus,
279
+ frameLoaded,
280
+ fireMode;
281
+
282
+
283
+ // Support for custom document.domain in IE.
284
+ var isCustomDomain = CKEDITOR.env.isCustomDomain();
285
+
286
+ // Creates the iframe that holds the editable document.
287
+ var createIFrame = function( data )
288
+ {
289
+ if ( iframe )
290
+ iframe.remove();
291
+
292
+ frameLoaded = 0;
293
+
294
+ var setDataFn = !CKEDITOR.env.gecko && CKEDITOR.tools.addFunction( function( doc )
295
+ {
296
+ CKEDITOR.tools.removeFunction( setDataFn );
297
+ doc.write( data );
298
+ });
299
+
300
+ var srcScript =
301
+ 'document.open();' +
302
+
303
+ // The document domain must be set any time we
304
+ // call document.open().
305
+ ( isCustomDomain ? ( 'document.domain="' + document.domain + '";' ) : '' ) +
306
+
307
+ ( ( 'parent.CKEDITOR.tools.callFunction(' + setDataFn + ',document);' ) ) +
308
+
309
+ 'document.close();';
310
+
311
+ iframe = CKEDITOR.dom.element.createFromHtml( '<iframe' +
312
+ ' style="width:100%;height:100%"' +
313
+ ' frameBorder="0"' +
314
+ ' title="' + frameLabel + '"' +
315
+ // With FF, the 'src' attribute should be left empty to
316
+ // trigger iframe's 'load' event.
317
+ ' src="' + ( CKEDITOR.env.gecko ? '' : 'javascript:void(function(){' + encodeURIComponent( srcScript ) + '}())' ) + '"' +
318
+ ' tabIndex="' + editor.tabIndex + '"' +
319
+ ' allowTransparency="true"' +
320
+ '></iframe>' );
321
+
322
+ // With FF, it's better to load the data on iframe.load. (#3894,#4058)
323
+ CKEDITOR.env.gecko && iframe.on( 'load', function( ev )
324
+ {
325
+ ev.removeListener();
326
+
327
+ var doc = iframe.getFrameDocument().$;
328
+
329
+ doc.open();
330
+ doc.write( data );
331
+ doc.close();
332
+ });
333
+
334
+ mainElement.append( iframe );
335
+ };
336
+
337
+ // The script that launches the bootstrap logic on 'domReady', so the document
338
+ // is fully editable even before the editing iframe is fully loaded (#4455).
339
+ var activationScript =
340
+ '<script id="cke_actscrpt" type="text/javascript" cke_temp="1">' +
341
+ ( isCustomDomain ? ( 'document.domain="' + document.domain + '";' ) : '' ) +
342
+ 'parent.CKEDITOR._["contentDomReady' + editor.name + '"]( window );' +
343
+ '</script>';
344
+
345
+ // Editing area bootstrap code.
346
+ var contentDomReady = function( domWindow )
347
+ {
348
+ if ( frameLoaded )
349
+ return;
350
+ frameLoaded = 1;
351
+
352
+ editor.fire( 'ariaWidget', iframe );
353
+
354
+ var domDocument = domWindow.document,
355
+ body = domDocument.body;
356
+
357
+ // Remove this script from the DOM.
358
+ var script = domDocument.getElementById( "cke_actscrpt" );
359
+ script.parentNode.removeChild( script );
360
+
361
+ delete CKEDITOR._[ 'contentDomReady' + editor.name ];
362
+
363
+ body.spellcheck = !editor.config.disableNativeSpellChecker;
364
+
365
+ if ( CKEDITOR.env.ie )
366
+ {
367
+ // Don't display the focus border.
368
+ body.hideFocus = true;
369
+
370
+ // Disable and re-enable the body to avoid IE from
371
+ // taking the editing focus at startup. (#141 / #523)
372
+ body.disabled = true;
373
+ body.contentEditable = true;
374
+ body.removeAttribute( 'disabled' );
375
+ }
376
+ else
377
+ domDocument.designMode = 'on';
378
+
379
+ // IE, Opera and Safari may not support it and throw
380
+ // errors.
381
+ try { domDocument.execCommand( 'enableObjectResizing', false, !editor.config.disableObjectResizing ) ; } catch(e) {}
382
+ try { domDocument.execCommand( 'enableInlineTableEditing', false, !editor.config.disableNativeTableHandles ) ; } catch(e) {}
383
+
384
+ domWindow = editor.window = new CKEDITOR.dom.window( domWindow );
385
+ domDocument = editor.document = new CKEDITOR.dom.document( domDocument );
386
+
387
+ // Gecko/Webkit need some help when selecting control type elements. (#3448)
388
+ if ( !( CKEDITOR.env.ie || CKEDITOR.env.opera) )
389
+ {
390
+ domDocument.on( 'mousedown', function( ev )
391
+ {
392
+ var control = ev.data.getTarget();
393
+ if ( control.is( 'img', 'hr', 'input', 'textarea', 'select' ) )
394
+ editor.getSelection().selectElement( control );
395
+ } );
396
+ }
397
+
398
+ // Webkit: avoid from editing form control elements content.
399
+ if ( CKEDITOR.env.webkit )
400
+ {
401
+ // Prevent from tick checkbox/radiobox/select
402
+ domDocument.on( 'click', function( ev )
403
+ {
404
+ if ( ev.data.getTarget().is( 'input', 'select' ) )
405
+ ev.data.preventDefault();
406
+ } );
407
+
408
+ // Prevent from editig textfield/textarea value.
409
+ domDocument.on( 'mouseup', function( ev )
410
+ {
411
+ if ( ev.data.getTarget().is( 'input', 'textarea' ) )
412
+ ev.data.preventDefault();
413
+ } );
414
+ }
415
+
416
+ // IE standard compliant in editing frame doesn't focus the editor when
417
+ // clicking outside actual content, manually apply the focus. (#1659)
418
+ if ( CKEDITOR.env.ie
419
+ && domDocument.$.compatMode == 'CSS1Compat' )
420
+ {
421
+ var htmlElement = domDocument.getDocumentElement();
422
+ htmlElement.on( 'mousedown', function( evt )
423
+ {
424
+ // Setting focus directly on editor doesn't work, we
425
+ // have to use here a temporary element to 'redirect'
426
+ // the focus.
427
+ if ( evt.data.getTarget().equals( htmlElement ) )
428
+ ieFocusGrabber.focus();
429
+ } );
430
+ }
431
+
432
+ var focusTarget = ( CKEDITOR.env.ie || CKEDITOR.env.webkit ) ?
433
+ domWindow : domDocument;
434
+
435
+ focusTarget.on( 'blur', function()
436
+ {
437
+ editor.focusManager.blur();
438
+ });
439
+
440
+ focusTarget.on( 'focus', function()
441
+ {
442
+ // Gecko need a key event to 'wake up' the editing
443
+ // ability when document is empty.(#3864)
444
+ if ( CKEDITOR.env.gecko )
445
+ {
446
+ var first = body;
447
+ while ( first.firstChild )
448
+ first = first.firstChild;
449
+
450
+ if ( !first.nextSibling
451
+ && ( 'BR' == first.tagName )
452
+ && first.hasAttribute( '_moz_editor_bogus_node' ) )
453
+ {
454
+ restoreDirty( editor );
455
+ var keyEventSimulate = domDocument.$.createEvent( "KeyEvents" );
456
+ keyEventSimulate.initKeyEvent( 'keypress', true, true, domWindow.$, false,
457
+ false, false, false, 0, 32 );
458
+ domDocument.$.dispatchEvent( keyEventSimulate );
459
+ var bogusText = domDocument.getBody().getFirst() ;
460
+ // Compensate the line maintaining <br> if enterMode is not block.
461
+ if ( editor.config.enterMode == CKEDITOR.ENTER_BR )
462
+ domDocument.createElement( 'br', { attributes: { '_moz_dirty' : "" } } )
463
+ .replace( bogusText );
464
+ else
465
+ bogusText.remove();
466
+ }
467
+ }
468
+
469
+ editor.focusManager.focus();
470
+ });
471
+
472
+ var keystrokeHandler = editor.keystrokeHandler;
473
+ if ( keystrokeHandler )
474
+ keystrokeHandler.attach( domDocument );
475
+
476
+ if ( CKEDITOR.env.ie )
477
+ {
478
+ // Override keystrokes which should have deletion behavior
479
+ // on control types in IE . (#4047)
480
+ domDocument.on( 'keydown', function( evt )
481
+ {
482
+ var keyCode = evt.data.getKeystroke();
483
+
484
+ // Backspace OR Delete.
485
+ if ( keyCode in { 8 : 1, 46 : 1 } )
486
+ {
487
+ var sel = editor.getSelection(),
488
+ control = sel.getSelectedElement();
489
+
490
+ if ( control )
491
+ {
492
+ // Make undo snapshot.
493
+ editor.fire( 'saveSnapshot' );
494
+
495
+ // Delete any element that 'hasLayout' (e.g. hr,table) in IE8 will
496
+ // break up the selection, safely manage it here. (#4795)
497
+ var bookmark = sel.getRanges()[ 0 ].createBookmark();
498
+ // Remove the control manually.
499
+ control.remove();
500
+ sel.selectBookmarks( [ bookmark ] );
501
+
502
+ editor.fire( 'saveSnapshot' );
503
+
504
+ evt.data.preventDefault();
505
+ }
506
+ }
507
+ } );
508
+
509
+ // PageUp/PageDown scrolling is broken in document
510
+ // with standard doctype, manually fix it. (#4736)
511
+ if ( domDocument.$.compatMode == 'CSS1Compat' )
512
+ {
513
+ var pageUpDownKeys = { 33 : 1, 34 : 1 };
514
+ domDocument.on( 'keydown', function( evt )
515
+ {
516
+ if ( evt.data.getKeystroke() in pageUpDownKeys )
517
+ {
518
+ setTimeout( function ()
519
+ {
520
+ editor.getSelection().scrollIntoView();
521
+ }, 0 );
522
+ }
523
+ } );
524
+ }
525
+ }
526
+
527
+ // Adds the document body as a context menu target.
528
+ if ( editor.contextMenu )
529
+ editor.contextMenu.addTarget( domDocument, editor.config.browserContextMenuOnCtrl !== false );
530
+
531
+ setTimeout( function()
532
+ {
533
+ editor.fire( 'contentDom' );
534
+
535
+ if ( fireMode )
536
+ {
537
+ editor.mode = 'wysiwyg';
538
+ editor.fire( 'mode' );
539
+ fireMode = false;
540
+ }
541
+
542
+ isLoadingData = false;
543
+
544
+ if ( isPendingFocus )
545
+ {
546
+ editor.focus();
547
+ isPendingFocus = false;
548
+ }
549
+ setTimeout( function()
550
+ {
551
+ editor.fire( 'dataReady' );
552
+ }, 0 );
553
+
554
+ /*
555
+ * IE BUG: IE might have rendered the iframe with invisible contents.
556
+ * (#3623). Push some inconsequential CSS style changes to force IE to
557
+ * refresh it.
558
+ *
559
+ * Also, for some unknown reasons, short timeouts (e.g. 100ms) do not
560
+ * fix the problem. :(
561
+ */
562
+ if ( CKEDITOR.env.ie )
563
+ {
564
+ setTimeout( function()
565
+ {
566
+ if ( editor.document )
567
+ {
568
+ var $body = editor.document.$.body;
569
+ $body.runtimeStyle.marginBottom = '0px';
570
+ $body.runtimeStyle.marginBottom = '';
571
+ }
572
+ }, 1000 );
573
+ }
574
+ },
575
+ 0 );
576
+ };
577
+
578
+ editor.addMode( 'wysiwyg',
579
+ {
580
+ load : function( holderElement, data, isSnapshot )
581
+ {
582
+ mainElement = holderElement;
583
+
584
+ if ( CKEDITOR.env.ie && CKEDITOR.env.quirks )
585
+ holderElement.setStyle( 'position', 'relative' );
586
+
587
+ // The editor data "may be dirty" after this
588
+ // point.
589
+ editor.mayBeDirty = true;
590
+
591
+ fireMode = true;
592
+
593
+ if ( isSnapshot )
594
+ this.loadSnapshotData( data );
595
+ else
596
+ this.loadData( data );
597
+ },
598
+
599
+ loadData : function( data )
600
+ {
601
+ isLoadingData = true;
602
+
603
+ var config = editor.config,
604
+ fullPage = config.fullPage,
605
+ docType = config.docType;
606
+
607
+ // Build the additional stuff to be included into <head>.
608
+ var headExtra =
609
+ '<style type="text/css" cke_temp="1">' +
610
+ editor._.styles.join( '\n' ) +
611
+ '</style>';
612
+
613
+ !fullPage && ( headExtra =
614
+ CKEDITOR.tools.buildStyleHtml( editor.config.contentsCss ) +
615
+ headExtra );
616
+
617
+ var baseTag = config.baseHref ? '<base href="' + config.baseHref + '" cke_temp="1" />' : '';
618
+
619
+ if ( fullPage )
620
+ {
621
+ // Search and sweep out the doctype declaration.
622
+ data = data.replace( /<!DOCTYPE[^>]*>/i, function( match )
623
+ {
624
+ editor.docType = docType = match;
625
+ return '';
626
+ });
627
+ }
628
+
629
+ // Get the HTML version of the data.
630
+ if ( editor.dataProcessor )
631
+ data = editor.dataProcessor.toHtml( data, fixForBody );
632
+
633
+ if ( fullPage )
634
+ {
635
+ // Check if the <body> tag is available.
636
+ if ( !(/<body[\s|>]/).test( data ) )
637
+ data = '<body>' + data;
638
+
639
+ // Check if the <html> tag is available.
640
+ if ( !(/<html[\s|>]/).test( data ) )
641
+ data = '<html>' + data + '</html>';
642
+
643
+ // Check if the <head> tag is available.
644
+ if ( !(/<head[\s|>]/).test( data ) )
645
+ data = data.replace( /<html[^>]*>/, '$&<head><title></title></head>' ) ;
646
+
647
+ // The base must be the first tag in the HEAD, e.g. to get relative
648
+ // links on styles.
649
+ baseTag && ( data = data.replace( /<head>/, '$&' + baseTag ) );
650
+
651
+ // Inject the extra stuff into <head>.
652
+ // Attention: do not change it before testing it well. (V2)
653
+ // This is tricky... if the head ends with <meta ... content type>,
654
+ // Firefox will break. But, it works if we place our extra stuff as
655
+ // the last elements in the HEAD.
656
+ data = data.replace( /<\/head\s*>/, headExtra + '$&' );
657
+
658
+ // Add the DOCTYPE back to it.
659
+ data = docType + data;
660
+ }
661
+ else
662
+ {
663
+ data =
664
+ config.docType +
665
+ '<html dir="' + config.contentsLangDirection + '">' +
666
+ '<title>' + frameLabel + '</title>' +
667
+ '<head>' +
668
+ baseTag +
669
+ headExtra +
670
+ '</head>' +
671
+ '<body' + ( config.bodyId ? ' id="' + config.bodyId + '"' : '' ) +
672
+ ( config.bodyClass ? ' class="' + config.bodyClass + '"' : '' ) +
673
+ '>' +
674
+ data +
675
+ '</html>';
676
+ }
677
+
678
+ data += activationScript;
679
+
680
+ CKEDITOR._[ 'contentDomReady' + editor.name ] = contentDomReady;
681
+
682
+ // The iframe is recreated on each call of setData, so we need to clear DOM objects
683
+ this.onDispose();
684
+ createIFrame( data );
685
+ },
686
+
687
+ getData : function()
688
+ {
689
+ var config = editor.config,
690
+ fullPage = config.fullPage,
691
+ docType = fullPage && editor.docType,
692
+ doc = iframe.getFrameDocument();
693
+
694
+ var data = fullPage
695
+ ? doc.getDocumentElement().getOuterHtml()
696
+ : doc.getBody().getHtml();
697
+
698
+ if ( editor.dataProcessor )
699
+ data = editor.dataProcessor.toDataFormat( data, fixForBody );
700
+
701
+ // Strip the last blank paragraph within document.
702
+ if ( config.ignoreEmptyParagraph )
703
+ data = data.replace( emptyParagraphRegexp, '' );
704
+
705
+ if ( docType )
706
+ data = docType + '\n' + data;
707
+
708
+ return data;
709
+ },
710
+
711
+ getSnapshotData : function()
712
+ {
713
+ return iframe.getFrameDocument().getBody().getHtml();
714
+ },
715
+
716
+ loadSnapshotData : function( data )
717
+ {
718
+ iframe.getFrameDocument().getBody().setHtml( data );
719
+ },
720
+
721
+ onDispose : function()
722
+ {
723
+ if ( !editor.document )
724
+ return;
725
+
726
+ editor.document.getDocumentElement().clearCustomData();
727
+ editor.document.getBody().clearCustomData();
728
+
729
+ editor.window.clearCustomData();
730
+ editor.document.clearCustomData();
731
+
732
+ iframe.clearCustomData();
733
+ },
734
+
735
+ unload : function( holderElement )
736
+ {
737
+ this.onDispose();
738
+
739
+ editor.window = editor.document = iframe = mainElement = isPendingFocus = null;
740
+
741
+ editor.fire( 'contentDomUnload' );
742
+ },
743
+
744
+ focus : function()
745
+ {
746
+ if ( isLoadingData )
747
+ isPendingFocus = true;
748
+ else if ( editor.window )
749
+ {
750
+ editor.window.focus();
751
+ editor.selectionChange();
752
+ }
753
+ }
754
+ });
755
+
756
+ editor.on( 'insertHtml', onInsertHtml, null, null, 20 );
757
+ editor.on( 'insertElement', onInsertElement, null, null, 20 );
758
+ // Auto fixing on some document structure weakness to enhance usabilities. (#3190 and #3189)
759
+ editor.on( 'selectionChange', onSelectionChangeFixBody, null, null, 1 );
760
+ });
761
+
762
+ var titleBackup;
763
+ // Setting voice label as window title, backup the original one
764
+ // and restore it before running into use.
765
+ editor.on( 'contentDom', function ()
766
+ {
767
+ var title = editor.document.getElementsByTag( 'title' ).getItem( 0 );
768
+ title.setAttribute( '_cke_title', editor.document.$.title );
769
+ editor.document.$.title = frameLabel;
770
+ });
771
+
772
+
773
+ // Create an invisible element to grab focus.
774
+ if ( CKEDITOR.env.ie )
775
+ {
776
+ var ieFocusGrabber;
777
+ editor.on( 'uiReady', function()
778
+ {
779
+ ieFocusGrabber = editor.container.append( CKEDITOR.dom.element.createFromHtml(
780
+ // Use 'span' instead of anything else to fly under the screen-reader radar. (#5049)
781
+ '<span tabindex="-1" style="position:absolute; left:-10000" role="presentation"></span>' ) );
782
+
783
+ ieFocusGrabber.on( 'focus', function()
784
+ {
785
+ editor.focus();
786
+ } );
787
+ } );
788
+ editor.on( 'destroy', function()
789
+ {
790
+ ieFocusGrabber.clearCustomData();
791
+ } );
792
+ }
793
+ }
794
+ });
795
+
796
+ // Fixing Firefox 'Back-Forward Cache' break design mode. (#4514)
797
+ if ( CKEDITOR.env.gecko )
798
+ {
799
+ ( function ()
800
+ {
801
+ var body = document.body;
802
+
803
+ if ( !body )
804
+ window.addEventListener( 'load', arguments.callee, false );
805
+ else
806
+ {
807
+ body.setAttribute( 'onpageshow', body.getAttribute( 'onpageshow' )
808
+ + ';event.persisted && CKEDITOR.tools.callFunction(' +
809
+ CKEDITOR.tools.addFunction( function()
810
+ {
811
+ var allInstances = CKEDITOR.instances,
812
+ editor,
813
+ doc;
814
+ for ( var i in allInstances )
815
+ {
816
+ editor = allInstances[ i ];
817
+ doc = editor.document;
818
+ if ( doc )
819
+ {
820
+ doc.$.designMode = 'off';
821
+ doc.$.designMode = 'on';
822
+ }
823
+ }
824
+ } ) + ')' );
825
+ }
826
+ } )();
827
+
828
+ }
829
+ })();
830
+
831
+ /**
832
+ * Disables the ability of resize objects (image and tables) in the editing
833
+ * area.
834
+ * @type Boolean
835
+ * @default false
836
+ * @example
837
+ * config.disableObjectResizing = true;
838
+ */
839
+ CKEDITOR.config.disableObjectResizing = false;
840
+
841
+ /**
842
+ * Disables the "table tools" offered natively by the browser (currently
843
+ * Firefox only) to make quick table editing operations, like adding or
844
+ * deleting rows and columns.
845
+ * @type Boolean
846
+ * @default true
847
+ * @example
848
+ * config.disableNativeTableHandles = false;
849
+ */
850
+ CKEDITOR.config.disableNativeTableHandles = true;
851
+
852
+ /**
853
+ * Disables the built-in spell checker while typing natively available in the
854
+ * browser (currently Firefox and Safari only).<br /><br />
855
+ *
856
+ * Even if word suggestions will not appear in the CKEditor context menu, this
857
+ * feature is useful to help quickly identifying misspelled words.<br /><br />
858
+ *
859
+ * This setting is currently compatible with Firefox only due to limitations in
860
+ * other browsers.
861
+ * @type Boolean
862
+ * @default true
863
+ * @example
864
+ * config.disableNativeSpellChecker = false;
865
+ */
866
+ CKEDITOR.config.disableNativeSpellChecker = true;
867
+
868
+ /**
869
+ * Whether the editor must output an empty value ("") if it's contents is made
870
+ * by an empty paragraph only.
871
+ * @type Boolean
872
+ * @default true
873
+ * @example
874
+ * config.ignoreEmptyParagraph = false;
875
+ */
876
+ CKEDITOR.config.ignoreEmptyParagraph = true;
877
+
878
+ /**
879
+ * Fired when data is loaded and ready for retrieval in an editor instance.
880
+ * @name CKEDITOR.editor#dataReady
881
+ * @event
882
+ */