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,867 @@
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
+ (function()
7
+ {
8
+ function nonEmptyText( node )
9
+ {
10
+ return ( node.type == CKEDITOR.NODE_TEXT && node.getLength() > 0 );
11
+ }
12
+
13
+ /**
14
+ * Elements which break characters been considered as sequence.
15
+ */
16
+ function nonCharactersBoundary ( node )
17
+ {
18
+ return !( node.type == CKEDITOR.NODE_ELEMENT && node.isBlockBoundary(
19
+ CKEDITOR.tools.extend( {}, CKEDITOR.dtd.$empty, CKEDITOR.dtd.$nonEditable ) ) );
20
+ }
21
+
22
+ /**
23
+ * Get the cursor object which represent both current character and it's dom
24
+ * position thing.
25
+ */
26
+ var cursorStep = function()
27
+ {
28
+ return {
29
+ textNode : this.textNode,
30
+ offset : this.offset,
31
+ character : this.textNode ?
32
+ this.textNode.getText().charAt( this.offset ) : null,
33
+ hitMatchBoundary : this._.matchBoundary
34
+ };
35
+ };
36
+
37
+ var pages = [ 'find', 'replace' ],
38
+ fieldsMapping = [
39
+ [ 'txtFindFind', 'txtFindReplace' ],
40
+ [ 'txtFindCaseChk', 'txtReplaceCaseChk' ],
41
+ [ 'txtFindWordChk', 'txtReplaceWordChk' ],
42
+ [ 'txtFindCyclic', 'txtReplaceCyclic' ] ];
43
+
44
+ /**
45
+ * Synchronize corresponding filed values between 'replace' and 'find' pages.
46
+ * @param {String} currentPageId The page id which receive values.
47
+ */
48
+ function syncFieldsBetweenTabs( currentPageId )
49
+ {
50
+ var sourceIndex, targetIndex,
51
+ sourceField, targetField;
52
+
53
+ sourceIndex = currentPageId === 'find' ? 1 : 0;
54
+ targetIndex = 1 - sourceIndex;
55
+ var i, l = fieldsMapping.length;
56
+ for ( i = 0 ; i < l ; i++ )
57
+ {
58
+ sourceField = this.getContentElement( pages[ sourceIndex ],
59
+ fieldsMapping[ i ][ sourceIndex ] );
60
+ targetField = this.getContentElement( pages[ targetIndex ],
61
+ fieldsMapping[ i ][ targetIndex ] );
62
+
63
+ targetField.setValue( sourceField.getValue() );
64
+ }
65
+ }
66
+
67
+ var findDialog = function( editor, startupPage )
68
+ {
69
+ // Style object for highlights: (#5018)
70
+ // 1. Defined as full match style to avoid compromising ordinary text color styles.
71
+ // 2. Must be apply onto inner-most text to avoid conflicting with ordinary text color styles visually.
72
+ var highlightStyle = new CKEDITOR.style( CKEDITOR.tools.extend( { fullMatch : true, childRule : function(){ return false; } },
73
+ editor.config.find_highlight ) );
74
+
75
+ /**
76
+ * Iterator which walk through the specified range char by char. By
77
+ * default the walking will not stop at the character boundaries, until
78
+ * the end of the range is encountered.
79
+ * @param { CKEDITOR.dom.range } range
80
+ * @param {Boolean} matchWord Whether the walking will stop at character boundary.
81
+ */
82
+ var characterWalker = function( range , matchWord )
83
+ {
84
+ var walker =
85
+ new CKEDITOR.dom.walker( range );
86
+ walker.guard = matchWord ? nonCharactersBoundary : null;
87
+ walker[ 'evaluator' ] = nonEmptyText;
88
+ walker.breakOnFalse = true;
89
+
90
+ this._ = {
91
+ matchWord : matchWord,
92
+ walker : walker,
93
+ matchBoundary : false
94
+ };
95
+ };
96
+
97
+ characterWalker.prototype = {
98
+ next : function()
99
+ {
100
+ return this.move();
101
+ },
102
+
103
+ back : function()
104
+ {
105
+ return this.move( true );
106
+ },
107
+
108
+ move : function( rtl )
109
+ {
110
+ var currentTextNode = this.textNode;
111
+ // Already at the end of document, no more character available.
112
+ if ( currentTextNode === null )
113
+ return cursorStep.call( this );
114
+
115
+ this._.matchBoundary = false;
116
+
117
+ // There are more characters in the text node, step forward.
118
+ if ( currentTextNode
119
+ && rtl
120
+ && this.offset > 0 )
121
+ {
122
+ this.offset--;
123
+ return cursorStep.call( this );
124
+ }
125
+ else if ( currentTextNode
126
+ && this.offset < currentTextNode.getLength() - 1 )
127
+ {
128
+ this.offset++;
129
+ return cursorStep.call( this );
130
+ }
131
+ else
132
+ {
133
+ currentTextNode = null;
134
+ // At the end of the text node, walking foward for the next.
135
+ while ( !currentTextNode )
136
+ {
137
+ currentTextNode =
138
+ this._.walker[ rtl ? 'previous' : 'next' ].call( this._.walker );
139
+
140
+ // Stop searching if we're need full word match OR
141
+ // already reach document end.
142
+ if ( this._.matchWord && !currentTextNode
143
+ ||this._.walker._.end )
144
+ break;
145
+
146
+ // Marking as match character boundaries.
147
+ if ( !currentTextNode
148
+ && !nonCharactersBoundary( this._.walker.current ) )
149
+ this._.matchBoundary = true;
150
+
151
+ }
152
+ // Found a fresh text node.
153
+ this.textNode = currentTextNode;
154
+ if ( currentTextNode )
155
+ this.offset = rtl ? currentTextNode.getLength() - 1 : 0;
156
+ else
157
+ this.offset = 0;
158
+ }
159
+
160
+ return cursorStep.call( this );
161
+ }
162
+
163
+ };
164
+
165
+ /**
166
+ * A range of cursors which represent a trunk of characters which try to
167
+ * match, it has the same length as the pattern string.
168
+ */
169
+ var characterRange = function( characterWalker, rangeLength )
170
+ {
171
+ this._ = {
172
+ walker : characterWalker,
173
+ cursors : [],
174
+ rangeLength : rangeLength,
175
+ highlightRange : null,
176
+ isMatched : false
177
+ };
178
+ };
179
+
180
+ characterRange.prototype = {
181
+ /**
182
+ * Translate this range to {@link CKEDITOR.dom.range}
183
+ */
184
+ toDomRange : function()
185
+ {
186
+ var range = new CKEDITOR.dom.range( editor.document );
187
+ var cursors = this._.cursors;
188
+ if ( cursors.length < 1 )
189
+ {
190
+ var textNode = this._.walker.textNode;
191
+ if ( textNode )
192
+ range.setStartAfter( textNode );
193
+ else
194
+ return null;
195
+ }
196
+ else
197
+ {
198
+ var first = cursors[0],
199
+ last = cursors[ cursors.length - 1 ];
200
+
201
+ range.setStart( first.textNode, first.offset );
202
+ range.setEnd( last.textNode, last.offset + 1 );
203
+ }
204
+
205
+ return range;
206
+ },
207
+ /**
208
+ * Reflect the latest changes from dom range.
209
+ */
210
+ updateFromDomRange : function( domRange )
211
+ {
212
+ var cursor,
213
+ walker = new characterWalker( domRange );
214
+ this._.cursors = [];
215
+ do
216
+ {
217
+ cursor = walker.next();
218
+ if ( cursor.character )
219
+ this._.cursors.push( cursor );
220
+ }
221
+ while ( cursor.character );
222
+ this._.rangeLength = this._.cursors.length;
223
+ },
224
+
225
+ setMatched : function()
226
+ {
227
+ this._.isMatched = true;
228
+ },
229
+
230
+ clearMatched : function()
231
+ {
232
+ this._.isMatched = false;
233
+ },
234
+
235
+ isMatched : function()
236
+ {
237
+ return this._.isMatched;
238
+ },
239
+
240
+ /**
241
+ * Hightlight the current matched chunk of text.
242
+ */
243
+ highlight : function()
244
+ {
245
+ // Do not apply if nothing is found.
246
+ if ( this._.cursors.length < 1 )
247
+ return;
248
+
249
+ // Remove the previous highlight if there's one.
250
+ if ( this._.highlightRange )
251
+ this.removeHighlight();
252
+
253
+ // Apply the highlight.
254
+ var range = this.toDomRange();
255
+ highlightStyle.applyToRange( range );
256
+ this._.highlightRange = range;
257
+
258
+ // Scroll the editor to the highlighted area.
259
+ var element = range.startContainer;
260
+ if ( element.type != CKEDITOR.NODE_ELEMENT )
261
+ element = element.getParent();
262
+ element.scrollIntoView();
263
+
264
+ // Update the character cursors.
265
+ this.updateFromDomRange( range );
266
+ },
267
+
268
+ /**
269
+ * Remove highlighted find result.
270
+ */
271
+ removeHighlight : function()
272
+ {
273
+ if ( !this._.highlightRange )
274
+ return;
275
+
276
+ highlightStyle.removeFromRange( this._.highlightRange );
277
+ this.updateFromDomRange( this._.highlightRange );
278
+ this._.highlightRange = null;
279
+ },
280
+
281
+ moveBack : function()
282
+ {
283
+ var retval = this._.walker.back(),
284
+ cursors = this._.cursors;
285
+
286
+ if ( retval.hitMatchBoundary )
287
+ this._.cursors = cursors = [];
288
+
289
+ cursors.unshift( retval );
290
+ if ( cursors.length > this._.rangeLength )
291
+ cursors.pop();
292
+
293
+ return retval;
294
+ },
295
+
296
+ moveNext : function()
297
+ {
298
+ var retval = this._.walker.next(),
299
+ cursors = this._.cursors;
300
+
301
+ // Clear the cursors queue if we've crossed a match boundary.
302
+ if ( retval.hitMatchBoundary )
303
+ this._.cursors = cursors = [];
304
+
305
+ cursors.push( retval );
306
+ if ( cursors.length > this._.rangeLength )
307
+ cursors.shift();
308
+
309
+ return retval;
310
+ },
311
+
312
+ getEndCharacter : function()
313
+ {
314
+ var cursors = this._.cursors;
315
+ if ( cursors.length < 1 )
316
+ return null;
317
+
318
+ return cursors[ cursors.length - 1 ].character;
319
+ },
320
+
321
+ getNextCharacterRange : function( maxLength )
322
+ {
323
+ var lastCursor,
324
+ nextRangeWalker,
325
+ cursors = this._.cursors;
326
+
327
+ if ( ( lastCursor = cursors[ cursors.length - 1 ] ) )
328
+ nextRangeWalker = new characterWalker( getRangeAfterCursor( lastCursor ) );
329
+ // In case it's an empty range (no cursors), figure out next range from walker (#4951).
330
+ else
331
+ nextRangeWalker = this._.walker;
332
+
333
+ return new characterRange( nextRangeWalker, maxLength );
334
+ },
335
+
336
+ getCursors : function()
337
+ {
338
+ return this._.cursors;
339
+ }
340
+ };
341
+
342
+
343
+ // The remaining document range after the character cursor.
344
+ function getRangeAfterCursor( cursor , inclusive )
345
+ {
346
+ var range = new CKEDITOR.dom.range();
347
+ range.setStart( cursor.textNode,
348
+ ( inclusive ? cursor.offset : cursor.offset + 1 ) );
349
+ range.setEndAt( editor.document.getBody(),
350
+ CKEDITOR.POSITION_BEFORE_END );
351
+ return range;
352
+ }
353
+
354
+ // The document range before the character cursor.
355
+ function getRangeBeforeCursor( cursor )
356
+ {
357
+ var range = new CKEDITOR.dom.range();
358
+ range.setStartAt( editor.document.getBody(),
359
+ CKEDITOR.POSITION_AFTER_START );
360
+ range.setEnd( cursor.textNode, cursor.offset );
361
+ return range;
362
+ }
363
+
364
+ var KMP_NOMATCH = 0,
365
+ KMP_ADVANCED = 1,
366
+ KMP_MATCHED = 2;
367
+ /**
368
+ * Examination the occurrence of a word which implement KMP algorithm.
369
+ */
370
+ var kmpMatcher = function( pattern, ignoreCase )
371
+ {
372
+ var overlap = [ -1 ];
373
+ if ( ignoreCase )
374
+ pattern = pattern.toLowerCase();
375
+ for ( var i = 0 ; i < pattern.length ; i++ )
376
+ {
377
+ overlap.push( overlap[i] + 1 );
378
+ while ( overlap[ i + 1 ] > 0
379
+ && pattern.charAt( i ) != pattern
380
+ .charAt( overlap[ i + 1 ] - 1 ) )
381
+ overlap[ i + 1 ] = overlap[ overlap[ i + 1 ] - 1 ] + 1;
382
+ }
383
+
384
+ this._ = {
385
+ overlap : overlap,
386
+ state : 0,
387
+ ignoreCase : !!ignoreCase,
388
+ pattern : pattern
389
+ };
390
+ };
391
+
392
+ kmpMatcher.prototype =
393
+ {
394
+ feedCharacter : function( c )
395
+ {
396
+ if ( this._.ignoreCase )
397
+ c = c.toLowerCase();
398
+
399
+ while ( true )
400
+ {
401
+ if ( c == this._.pattern.charAt( this._.state ) )
402
+ {
403
+ this._.state++;
404
+ if ( this._.state == this._.pattern.length )
405
+ {
406
+ this._.state = 0;
407
+ return KMP_MATCHED;
408
+ }
409
+ return KMP_ADVANCED;
410
+ }
411
+ else if ( !this._.state )
412
+ return KMP_NOMATCH;
413
+ else
414
+ this._.state = this._.overlap[ this._.state ];
415
+ }
416
+
417
+ return null;
418
+ },
419
+
420
+ reset : function()
421
+ {
422
+ this._.state = 0;
423
+ }
424
+ };
425
+
426
+ var wordSeparatorRegex =
427
+ /[.,"'?!;: \u0085\u00a0\u1680\u280e\u2028\u2029\u202f\u205f\u3000]/;
428
+
429
+ var isWordSeparator = function( c )
430
+ {
431
+ if ( !c )
432
+ return true;
433
+ var code = c.charCodeAt( 0 );
434
+ return ( code >= 9 && code <= 0xd )
435
+ || ( code >= 0x2000 && code <= 0x200a )
436
+ || wordSeparatorRegex.test( c );
437
+ };
438
+
439
+ var finder = {
440
+ searchRange : null,
441
+ matchRange : null,
442
+ find : function( pattern, matchCase, matchWord, matchCyclic, highlightMatched, cyclicRerun )
443
+ {
444
+ if ( !this.matchRange )
445
+ this.matchRange =
446
+ new characterRange(
447
+ new characterWalker( this.searchRange ),
448
+ pattern.length );
449
+ else
450
+ {
451
+ this.matchRange.removeHighlight();
452
+ this.matchRange = this.matchRange.getNextCharacterRange( pattern.length );
453
+ }
454
+
455
+ var matcher = new kmpMatcher( pattern, !matchCase ),
456
+ matchState = KMP_NOMATCH,
457
+ character = '%';
458
+
459
+ while ( character !== null )
460
+ {
461
+ this.matchRange.moveNext();
462
+ while ( ( character = this.matchRange.getEndCharacter() ) )
463
+ {
464
+ matchState = matcher.feedCharacter( character );
465
+ if ( matchState == KMP_MATCHED )
466
+ break;
467
+ if ( this.matchRange.moveNext().hitMatchBoundary )
468
+ matcher.reset();
469
+ }
470
+
471
+ if ( matchState == KMP_MATCHED )
472
+ {
473
+ if ( matchWord )
474
+ {
475
+ var cursors = this.matchRange.getCursors(),
476
+ tail = cursors[ cursors.length - 1 ],
477
+ head = cursors[ 0 ];
478
+
479
+ var headWalker = new characterWalker( getRangeBeforeCursor( head ), true ),
480
+ tailWalker = new characterWalker( getRangeAfterCursor( tail ), true );
481
+
482
+ if ( ! ( isWordSeparator( headWalker.back().character )
483
+ && isWordSeparator( tailWalker.next().character ) ) )
484
+ continue;
485
+ }
486
+ this.matchRange.setMatched();
487
+ if ( highlightMatched !== false )
488
+ this.matchRange.highlight();
489
+ return true;
490
+ }
491
+ }
492
+
493
+ this.matchRange.clearMatched();
494
+ this.matchRange.removeHighlight();
495
+ // Clear current session and restart with the default search
496
+ // range.
497
+ // Re-run the finding once for cyclic.(#3517)
498
+ if ( matchCyclic && !cyclicRerun )
499
+ {
500
+ this.searchRange = getSearchRange( true );
501
+ this.matchRange = null;
502
+ return arguments.callee.apply( this,
503
+ Array.prototype.slice.call( arguments ).concat( [ true ] ) );
504
+ }
505
+
506
+ return false;
507
+ },
508
+
509
+ /**
510
+ * Record how much replacement occurred toward one replacing.
511
+ */
512
+ replaceCounter : 0,
513
+
514
+ replace : function( dialog, pattern, newString, matchCase, matchWord,
515
+ matchCyclic , isReplaceAll )
516
+ {
517
+ // Successiveness of current replace/find.
518
+ var result = false;
519
+
520
+ // 1. Perform the replace when there's already a match here.
521
+ // 2. Otherwise perform the find but don't replace it immediately.
522
+ if ( this.matchRange && this.matchRange.isMatched()
523
+ && !this.matchRange._.isReplaced )
524
+ {
525
+ // Turn off highlight for a while when saving snapshots.
526
+ this.matchRange.removeHighlight();
527
+ var domRange = this.matchRange.toDomRange();
528
+ var text = editor.document.createText( newString );
529
+ if ( !isReplaceAll )
530
+ {
531
+ // Save undo snaps before and after the replacement.
532
+ var selection = editor.getSelection();
533
+ selection.selectRanges( [ domRange ] );
534
+ editor.fire( 'saveSnapshot' );
535
+ }
536
+ domRange.deleteContents();
537
+ domRange.insertNode( text );
538
+ if ( !isReplaceAll )
539
+ {
540
+ selection.selectRanges( [ domRange ] );
541
+ editor.fire( 'saveSnapshot' );
542
+ }
543
+ this.matchRange.updateFromDomRange( domRange );
544
+ if ( !isReplaceAll )
545
+ this.matchRange.highlight();
546
+ this.matchRange._.isReplaced = true;
547
+ this.replaceCounter++;
548
+ result = true;
549
+ }
550
+ else
551
+ result = this.find( pattern, matchCase, matchWord, matchCyclic, !isReplaceAll );
552
+
553
+ return result;
554
+ }
555
+ };
556
+
557
+ /**
558
+ * The range in which find/replace happened, receive from user
559
+ * selection prior.
560
+ */
561
+ function getSearchRange( isDefault )
562
+ {
563
+ var searchRange,
564
+ sel = editor.getSelection(),
565
+ body = editor.document.getBody();
566
+ if ( sel && !isDefault )
567
+ {
568
+ searchRange = sel.getRanges()[ 0 ].clone();
569
+ searchRange.collapse( true );
570
+ }
571
+ else
572
+ {
573
+ searchRange = new CKEDITOR.dom.range();
574
+ searchRange.setStartAt( body, CKEDITOR.POSITION_AFTER_START );
575
+ }
576
+ searchRange.setEndAt( body, CKEDITOR.POSITION_BEFORE_END );
577
+ return searchRange;
578
+ }
579
+
580
+ return {
581
+ title : editor.lang.findAndReplace.title,
582
+ resizable : CKEDITOR.DIALOG_RESIZE_NONE,
583
+ minWidth : 350,
584
+ minHeight : 165,
585
+ buttons : [ CKEDITOR.dialog.cancelButton ], //Cancel button only.
586
+ contents : [
587
+ {
588
+ id : 'find',
589
+ label : editor.lang.findAndReplace.find,
590
+ title : editor.lang.findAndReplace.find,
591
+ accessKey : '',
592
+ elements : [
593
+ {
594
+ type : 'hbox',
595
+ widths : [ '230px', '90px' ],
596
+ children :
597
+ [
598
+ {
599
+ type : 'text',
600
+ id : 'txtFindFind',
601
+ label : editor.lang.findAndReplace.findWhat,
602
+ isChanged : false,
603
+ labelLayout : 'horizontal',
604
+ accessKey : 'F'
605
+ },
606
+ {
607
+ type : 'button',
608
+ align : 'left',
609
+ style : 'width:100%',
610
+ label : editor.lang.findAndReplace.find,
611
+ onClick : function()
612
+ {
613
+ var dialog = this.getDialog();
614
+ if ( !finder.find( dialog.getValueOf( 'find', 'txtFindFind' ),
615
+ dialog.getValueOf( 'find', 'txtFindCaseChk' ),
616
+ dialog.getValueOf( 'find', 'txtFindWordChk' ),
617
+ dialog.getValueOf( 'find', 'txtFindCyclic' ) ) )
618
+ alert( editor.lang.findAndReplace
619
+ .notFoundMsg );
620
+ }
621
+ }
622
+ ]
623
+ },
624
+ {
625
+ type : 'vbox',
626
+ padding : 0,
627
+ children :
628
+ [
629
+ {
630
+ type : 'checkbox',
631
+ id : 'txtFindCaseChk',
632
+ isChanged : false,
633
+ style : 'margin-top:28px',
634
+ label : editor.lang.findAndReplace.matchCase
635
+ },
636
+ {
637
+ type : 'checkbox',
638
+ id : 'txtFindWordChk',
639
+ isChanged : false,
640
+ label : editor.lang.findAndReplace.matchWord
641
+ },
642
+ {
643
+ type : 'checkbox',
644
+ id : 'txtFindCyclic',
645
+ isChanged : false,
646
+ 'default' : true,
647
+ label : editor.lang.findAndReplace.matchCyclic
648
+ }
649
+ ]
650
+ }
651
+ ]
652
+ },
653
+ {
654
+ id : 'replace',
655
+ label : editor.lang.findAndReplace.replace,
656
+ accessKey : 'M',
657
+ elements : [
658
+ {
659
+ type : 'hbox',
660
+ widths : [ '230px', '90px' ],
661
+ children :
662
+ [
663
+ {
664
+ type : 'text',
665
+ id : 'txtFindReplace',
666
+ label : editor.lang.findAndReplace.findWhat,
667
+ isChanged : false,
668
+ labelLayout : 'horizontal',
669
+ accessKey : 'F'
670
+ },
671
+ {
672
+ type : 'button',
673
+ align : 'left',
674
+ style : 'width:100%',
675
+ label : editor.lang.findAndReplace.replace,
676
+ onClick : function()
677
+ {
678
+ var dialog = this.getDialog();
679
+ if ( !finder.replace( dialog,
680
+ dialog.getValueOf( 'replace', 'txtFindReplace' ),
681
+ dialog.getValueOf( 'replace', 'txtReplace' ),
682
+ dialog.getValueOf( 'replace', 'txtReplaceCaseChk' ),
683
+ dialog.getValueOf( 'replace', 'txtReplaceWordChk' ),
684
+ dialog.getValueOf( 'replace', 'txtReplaceCyclic' ) ) )
685
+ alert( editor.lang.findAndReplace
686
+ .notFoundMsg );
687
+ }
688
+ }
689
+ ]
690
+ },
691
+ {
692
+ type : 'hbox',
693
+ widths : [ '230px', '90px' ],
694
+ children :
695
+ [
696
+ {
697
+ type : 'text',
698
+ id : 'txtReplace',
699
+ label : editor.lang.findAndReplace.replaceWith,
700
+ isChanged : false,
701
+ labelLayout : 'horizontal',
702
+ accessKey : 'R'
703
+ },
704
+ {
705
+ type : 'button',
706
+ align : 'left',
707
+ style : 'width:100%',
708
+ label : editor.lang.findAndReplace.replaceAll,
709
+ isChanged : false,
710
+ onClick : function()
711
+ {
712
+ var dialog = this.getDialog();
713
+ var replaceNums;
714
+
715
+ finder.replaceCounter = 0;
716
+
717
+ // Scope to full document.
718
+ finder.searchRange = getSearchRange( true );
719
+ if ( finder.matchRange )
720
+ {
721
+ finder.matchRange.removeHighlight();
722
+ finder.matchRange = null;
723
+ }
724
+ editor.fire( 'saveSnapshot' );
725
+ while ( finder.replace( dialog,
726
+ dialog.getValueOf( 'replace', 'txtFindReplace' ),
727
+ dialog.getValueOf( 'replace', 'txtReplace' ),
728
+ dialog.getValueOf( 'replace', 'txtReplaceCaseChk' ),
729
+ dialog.getValueOf( 'replace', 'txtReplaceWordChk' ),
730
+ false, true ) )
731
+ { /*jsl:pass*/ }
732
+
733
+ if ( finder.replaceCounter )
734
+ {
735
+ alert( editor.lang.findAndReplace.replaceSuccessMsg.replace( /%1/, finder.replaceCounter ) );
736
+ editor.fire( 'saveSnapshot' );
737
+ }
738
+ else
739
+ alert( editor.lang.findAndReplace.notFoundMsg );
740
+ }
741
+ }
742
+ ]
743
+ },
744
+ {
745
+ type : 'vbox',
746
+ padding : 0,
747
+ children :
748
+ [
749
+ {
750
+ type : 'checkbox',
751
+ id : 'txtReplaceCaseChk',
752
+ isChanged : false,
753
+ label : editor.lang.findAndReplace
754
+ .matchCase
755
+ },
756
+ {
757
+ type : 'checkbox',
758
+ id : 'txtReplaceWordChk',
759
+ isChanged : false,
760
+ label : editor.lang.findAndReplace
761
+ .matchWord
762
+ },
763
+ {
764
+ type : 'checkbox',
765
+ id : 'txtReplaceCyclic',
766
+ isChanged : false,
767
+ 'default' : true,
768
+ label : editor.lang.findAndReplace
769
+ .matchCyclic
770
+ }
771
+ ]
772
+ }
773
+ ]
774
+ }
775
+ ],
776
+ onLoad : function()
777
+ {
778
+ var dialog = this;
779
+
780
+ //keep track of the current pattern field in use.
781
+ var patternField, wholeWordChkField;
782
+
783
+ //Ignore initial page select on dialog show
784
+ var isUserSelect = false;
785
+ this.on('hide', function()
786
+ {
787
+ isUserSelect = false;
788
+ } );
789
+ this.on('show', function()
790
+ {
791
+ isUserSelect = true;
792
+ } );
793
+
794
+ this.selectPage = CKEDITOR.tools.override( this.selectPage, function( originalFunc )
795
+ {
796
+ return function( pageId )
797
+ {
798
+ originalFunc.call( dialog, pageId );
799
+
800
+ var currPage = dialog._.tabs[ pageId ];
801
+ var patternFieldInput, patternFieldId, wholeWordChkFieldId;
802
+ patternFieldId = pageId === 'find' ? 'txtFindFind' : 'txtFindReplace';
803
+ wholeWordChkFieldId = pageId === 'find' ? 'txtFindWordChk' : 'txtReplaceWordChk';
804
+
805
+ patternField = dialog.getContentElement( pageId,
806
+ patternFieldId );
807
+ wholeWordChkField = dialog.getContentElement( pageId,
808
+ wholeWordChkFieldId );
809
+
810
+ // prepare for check pattern text filed 'keyup' event
811
+ if ( !currPage.initialized )
812
+ {
813
+ patternFieldInput = CKEDITOR.document
814
+ .getById( patternField._.inputId );
815
+ currPage.initialized = true;
816
+ }
817
+
818
+ if ( isUserSelect )
819
+ // synchronize fields on tab switch.
820
+ syncFieldsBetweenTabs.call( this, pageId );
821
+ };
822
+ } );
823
+
824
+ },
825
+ onShow : function()
826
+ {
827
+ // Establish initial searching start position.
828
+ finder.searchRange = getSearchRange();
829
+
830
+ this.selectPage( startupPage );
831
+ },
832
+ onHide : function()
833
+ {
834
+ var range;
835
+ if ( finder.matchRange && finder.matchRange.isMatched() )
836
+ {
837
+ finder.matchRange.removeHighlight();
838
+ editor.focus();
839
+
840
+ range = finder.matchRange.toDomRange();
841
+ if ( range )
842
+ editor.getSelection().selectRanges( [ range ] );
843
+ }
844
+
845
+ // Clear current session before dialog close
846
+ delete finder.matchRange;
847
+ },
848
+ onFocus : function()
849
+ {
850
+ if ( startupPage == 'replace' )
851
+ return this.getContentElement( 'replace', 'txtFindReplace' );
852
+ else
853
+ return this.getContentElement( 'find', 'txtFindFind' );
854
+ }
855
+ };
856
+ };
857
+
858
+ CKEDITOR.dialog.add( 'find', function( editor )
859
+ {
860
+ return findDialog( editor, 'find' );
861
+ });
862
+
863
+ CKEDITOR.dialog.add( 'replace', function( editor )
864
+ {
865
+ return findDialog( editor, 'replace' );
866
+ });
867
+ })();