bcms_content_syncing 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (669) hide show
  1. data/.gitignore +13 -0
  2. data/COPYRIGHT.txt +23 -0
  3. data/GPL.txt +674 -0
  4. data/LICENSE.txt +165 -0
  5. data/README +60 -0
  6. data/Rakefile +34 -0
  7. data/VERSION +1 -0
  8. data/app/controllers/application_controller.rb +10 -0
  9. data/app/helpers/application_helper.rb +3 -0
  10. data/bcms_content_syncing.gemspec +710 -0
  11. data/config/boot.rb +110 -0
  12. data/config/database.yml +22 -0
  13. data/config/environment.rb +42 -0
  14. data/config/environments/development.rb +18 -0
  15. data/config/environments/production.rb +31 -0
  16. data/config/environments/test.rb +29 -0
  17. data/config/initializers/backtrace_silencers.rb +7 -0
  18. data/config/initializers/inflections.rb +10 -0
  19. data/config/initializers/init_module.rb +1 -0
  20. data/config/initializers/mime_types.rb +5 -0
  21. data/config/initializers/new_rails_defaults.rb +21 -0
  22. data/config/initializers/session_store.rb +15 -0
  23. data/config/locales/en.yml +5 -0
  24. data/config/routes.rb +45 -0
  25. data/db/seeds.rb +7 -0
  26. data/doc/README_FOR_APP +2 -0
  27. data/lib/bcms_content_syncing/cap_tasks.rb +35 -0
  28. data/lib/bcms_content_syncing/database.rb +74 -0
  29. data/lib/bcms_content_syncing/rake_tasks.rb +10 -0
  30. data/lib/bcms_content_syncing/routes.rb +7 -0
  31. data/lib/bcms_content_syncing.rb +2 -0
  32. data/lib/tasks/backup.rake +17 -0
  33. data/public/404.html +30 -0
  34. data/public/422.html +30 -0
  35. data/public/500.html +30 -0
  36. data/public/bcms/ckeditor/ckeditor.js +108 -0
  37. data/public/bcms/ckeditor/config.js +18 -0
  38. data/public/bcms/ckeditor/core/_bootstrap.js +64 -0
  39. data/public/bcms/ckeditor/core/ajax.js +143 -0
  40. data/public/bcms/ckeditor/core/ckeditor.js +96 -0
  41. data/public/bcms/ckeditor/core/ckeditor_base.js +190 -0
  42. data/public/bcms/ckeditor/core/ckeditor_basic.js +241 -0
  43. data/public/bcms/ckeditor/core/command.js +70 -0
  44. data/public/bcms/ckeditor/core/commanddefinition.js +72 -0
  45. data/public/bcms/ckeditor/core/config.js +287 -0
  46. data/public/bcms/ckeditor/core/dom/document.js +210 -0
  47. data/public/bcms/ckeditor/core/dom/documentfragment.js +49 -0
  48. data/public/bcms/ckeditor/core/dom/domobject.js +204 -0
  49. data/public/bcms/ckeditor/core/dom/element.js +1384 -0
  50. data/public/bcms/ckeditor/core/dom/elementpath.js +104 -0
  51. data/public/bcms/ckeditor/core/dom/event.js +137 -0
  52. data/public/bcms/ckeditor/core/dom/node.js +649 -0
  53. data/public/bcms/ckeditor/core/dom/nodelist.js +23 -0
  54. data/public/bcms/ckeditor/core/dom/range.js +1668 -0
  55. data/public/bcms/ckeditor/core/dom/text.js +123 -0
  56. data/public/bcms/ckeditor/core/dom/walker.js +411 -0
  57. data/public/bcms/ckeditor/core/dom/window.js +96 -0
  58. data/public/bcms/ckeditor/core/dom.js +21 -0
  59. data/public/bcms/ckeditor/core/dtd.js +200 -0
  60. data/public/bcms/ckeditor/core/editor.js +650 -0
  61. data/public/bcms/ckeditor/core/editor_basic.js +178 -0
  62. data/public/bcms/ckeditor/core/env.js +219 -0
  63. data/public/bcms/ckeditor/core/event.js +335 -0
  64. data/public/bcms/ckeditor/core/eventInfo.js +120 -0
  65. data/public/bcms/ckeditor/core/focusmanager.js +123 -0
  66. data/public/bcms/ckeditor/core/htmlparser/basicwriter.js +140 -0
  67. data/public/bcms/ckeditor/core/htmlparser/cdata.js +44 -0
  68. data/public/bcms/ckeditor/core/htmlparser/comment.js +59 -0
  69. data/public/bcms/ckeditor/core/htmlparser/element.js +196 -0
  70. data/public/bcms/ckeditor/core/htmlparser/filter.js +233 -0
  71. data/public/bcms/ckeditor/core/htmlparser/fragment.js +434 -0
  72. data/public/bcms/ckeditor/core/htmlparser/text.js +55 -0
  73. data/public/bcms/ckeditor/core/htmlparser.js +212 -0
  74. data/public/bcms/ckeditor/core/imagecacher.js +58 -0
  75. data/public/bcms/ckeditor/core/lang.js +147 -0
  76. data/public/bcms/ckeditor/core/loader.js +238 -0
  77. data/public/bcms/ckeditor/core/plugindefinition.js +66 -0
  78. data/public/bcms/ckeditor/core/plugins.js +82 -0
  79. data/public/bcms/ckeditor/core/resourcemanager.js +233 -0
  80. data/public/bcms/ckeditor/core/scriptloader.js +194 -0
  81. data/public/bcms/ckeditor/core/skins.js +185 -0
  82. data/public/bcms/ckeditor/core/test.js +184 -0
  83. data/public/bcms/ckeditor/core/themes.js +18 -0
  84. data/public/bcms/ckeditor/core/tools.js +531 -0
  85. data/public/bcms/ckeditor/core/ui.js +106 -0
  86. data/public/bcms/ckeditor/core/xml.js +165 -0
  87. data/public/bcms/ckeditor/editor.js +51 -0
  88. data/public/bcms/ckeditor/lang/_languages.js +82 -0
  89. data/public/bcms/ckeditor/lang/_translationstatus.txt +59 -0
  90. data/public/bcms/ckeditor/lang/af.js +674 -0
  91. data/public/bcms/ckeditor/lang/ar.js +674 -0
  92. data/public/bcms/ckeditor/lang/bg.js +674 -0
  93. data/public/bcms/ckeditor/lang/bn.js +674 -0
  94. data/public/bcms/ckeditor/lang/bs.js +674 -0
  95. data/public/bcms/ckeditor/lang/ca.js +674 -0
  96. data/public/bcms/ckeditor/lang/cs.js +674 -0
  97. data/public/bcms/ckeditor/lang/da.js +674 -0
  98. data/public/bcms/ckeditor/lang/de.js +674 -0
  99. data/public/bcms/ckeditor/lang/el.js +674 -0
  100. data/public/bcms/ckeditor/lang/en-au.js +674 -0
  101. data/public/bcms/ckeditor/lang/en-ca.js +674 -0
  102. data/public/bcms/ckeditor/lang/en-uk.js +674 -0
  103. data/public/bcms/ckeditor/lang/en.js +674 -0
  104. data/public/bcms/ckeditor/lang/eo.js +674 -0
  105. data/public/bcms/ckeditor/lang/es.js +674 -0
  106. data/public/bcms/ckeditor/lang/et.js +674 -0
  107. data/public/bcms/ckeditor/lang/eu.js +674 -0
  108. data/public/bcms/ckeditor/lang/fa.js +674 -0
  109. data/public/bcms/ckeditor/lang/fi.js +674 -0
  110. data/public/bcms/ckeditor/lang/fo.js +674 -0
  111. data/public/bcms/ckeditor/lang/fr-ca.js +674 -0
  112. data/public/bcms/ckeditor/lang/fr.js +674 -0
  113. data/public/bcms/ckeditor/lang/gl.js +674 -0
  114. data/public/bcms/ckeditor/lang/gu.js +674 -0
  115. data/public/bcms/ckeditor/lang/he.js +674 -0
  116. data/public/bcms/ckeditor/lang/hi.js +674 -0
  117. data/public/bcms/ckeditor/lang/hr.js +674 -0
  118. data/public/bcms/ckeditor/lang/hu.js +674 -0
  119. data/public/bcms/ckeditor/lang/is.js +674 -0
  120. data/public/bcms/ckeditor/lang/it.js +674 -0
  121. data/public/bcms/ckeditor/lang/ja.js +674 -0
  122. data/public/bcms/ckeditor/lang/km.js +674 -0
  123. data/public/bcms/ckeditor/lang/ko.js +674 -0
  124. data/public/bcms/ckeditor/lang/lt.js +674 -0
  125. data/public/bcms/ckeditor/lang/lv.js +674 -0
  126. data/public/bcms/ckeditor/lang/mn.js +674 -0
  127. data/public/bcms/ckeditor/lang/ms.js +674 -0
  128. data/public/bcms/ckeditor/lang/nb.js +674 -0
  129. data/public/bcms/ckeditor/lang/nl.js +674 -0
  130. data/public/bcms/ckeditor/lang/no.js +674 -0
  131. data/public/bcms/ckeditor/lang/pl.js +674 -0
  132. data/public/bcms/ckeditor/lang/pt-br.js +674 -0
  133. data/public/bcms/ckeditor/lang/pt.js +674 -0
  134. data/public/bcms/ckeditor/lang/ro.js +674 -0
  135. data/public/bcms/ckeditor/lang/ru.js +674 -0
  136. data/public/bcms/ckeditor/lang/sk.js +674 -0
  137. data/public/bcms/ckeditor/lang/sl.js +674 -0
  138. data/public/bcms/ckeditor/lang/sr-latn.js +674 -0
  139. data/public/bcms/ckeditor/lang/sr.js +674 -0
  140. data/public/bcms/ckeditor/lang/sv.js +674 -0
  141. data/public/bcms/ckeditor/lang/th.js +674 -0
  142. data/public/bcms/ckeditor/lang/tr.js +674 -0
  143. data/public/bcms/ckeditor/lang/uk.js +674 -0
  144. data/public/bcms/ckeditor/lang/vi.js +674 -0
  145. data/public/bcms/ckeditor/lang/zh-cn.js +674 -0
  146. data/public/bcms/ckeditor/lang/zh.js +674 -0
  147. data/public/bcms/ckeditor/plugins/about/dialogs/about.js +73 -0
  148. data/public/bcms/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  149. data/public/bcms/ckeditor/plugins/about/plugin.js +22 -0
  150. data/public/bcms/ckeditor/plugins/basicstyles/plugin.js +50 -0
  151. data/public/bcms/ckeditor/plugins/blockquote/plugin.js +301 -0
  152. data/public/bcms/ckeditor/plugins/button/plugin.js +264 -0
  153. data/public/bcms/ckeditor/plugins/clipboard/dialogs/paste.js +167 -0
  154. data/public/bcms/ckeditor/plugins/clipboard/plugin.js +208 -0
  155. data/public/bcms/ckeditor/plugins/colorbutton/plugin.js +202 -0
  156. data/public/bcms/ckeditor/plugins/contextmenu/plugin.js +178 -0
  157. data/public/bcms/ckeditor/plugins/dialog/dialogDefinition.js +315 -0
  158. data/public/bcms/ckeditor/plugins/dialog/plugin.js +2742 -0
  159. data/public/bcms/ckeditor/plugins/dialogui/plugin.js +1319 -0
  160. data/public/bcms/ckeditor/plugins/domiterator/plugin.js +354 -0
  161. data/public/bcms/ckeditor/plugins/editingblock/plugin.js +236 -0
  162. data/public/bcms/ckeditor/plugins/elementspath/plugin.js +182 -0
  163. data/public/bcms/ckeditor/plugins/enterkey/plugin.js +324 -0
  164. data/public/bcms/ckeditor/plugins/entities/plugin.js +200 -0
  165. data/public/bcms/ckeditor/plugins/fakeobjects/plugin.js +111 -0
  166. data/public/bcms/ckeditor/plugins/filebrowser/plugin.js +383 -0
  167. data/public/bcms/ckeditor/plugins/find/dialogs/find.js +843 -0
  168. data/public/bcms/ckeditor/plugins/find/plugin.js +46 -0
  169. data/public/bcms/ckeditor/plugins/flash/dialogs/flash.js +682 -0
  170. data/public/bcms/ckeditor/plugins/flash/images/placeholder.png +0 -0
  171. data/public/bcms/ckeditor/plugins/flash/plugin.js +165 -0
  172. data/public/bcms/ckeditor/plugins/floatpanel/plugin.js +325 -0
  173. data/public/bcms/ckeditor/plugins/font/plugin.js +227 -0
  174. data/public/bcms/ckeditor/plugins/format/plugin.js +191 -0
  175. data/public/bcms/ckeditor/plugins/forms/dialogs/button.js +135 -0
  176. data/public/bcms/ckeditor/plugins/forms/dialogs/checkbox.js +138 -0
  177. data/public/bcms/ckeditor/plugins/forms/dialogs/form.js +177 -0
  178. data/public/bcms/ckeditor/plugins/forms/dialogs/hiddenfield.js +91 -0
  179. data/public/bcms/ckeditor/plugins/forms/dialogs/radio.js +135 -0
  180. data/public/bcms/ckeditor/plugins/forms/dialogs/select.js +541 -0
  181. data/public/bcms/ckeditor/plugins/forms/dialogs/textarea.js +114 -0
  182. data/public/bcms/ckeditor/plugins/forms/dialogs/textfield.js +193 -0
  183. data/public/bcms/ckeditor/plugins/forms/plugin.js +193 -0
  184. data/public/bcms/ckeditor/plugins/horizontalrule/plugin.js +35 -0
  185. data/public/bcms/ckeditor/plugins/htmldataprocessor/plugin.js +373 -0
  186. data/public/bcms/ckeditor/plugins/htmlwriter/plugin.js +289 -0
  187. data/public/bcms/ckeditor/plugins/iframedialog/plugin.js +136 -0
  188. data/public/bcms/ckeditor/plugins/image/dialogs/image.js +1225 -0
  189. data/public/bcms/ckeditor/plugins/image/plugin.js +64 -0
  190. data/public/bcms/ckeditor/plugins/indent/plugin.js +323 -0
  191. data/public/bcms/ckeditor/plugins/justify/plugin.js +164 -0
  192. data/public/bcms/ckeditor/plugins/keystrokes/plugin.js +217 -0
  193. data/public/bcms/ckeditor/plugins/link/dialogs/anchor.js +98 -0
  194. data/public/bcms/ckeditor/plugins/link/dialogs/link.js +1217 -0
  195. data/public/bcms/ckeditor/plugins/link/images/anchor.gif +0 -0
  196. data/public/bcms/ckeditor/plugins/link/plugin.js +188 -0
  197. data/public/bcms/ckeditor/plugins/list/plugin.js +570 -0
  198. data/public/bcms/ckeditor/plugins/listblock/plugin.js +231 -0
  199. data/public/bcms/ckeditor/plugins/maximize/plugin.js +267 -0
  200. data/public/bcms/ckeditor/plugins/menu/plugin.js +377 -0
  201. data/public/bcms/ckeditor/plugins/menubutton/plugin.js +93 -0
  202. data/public/bcms/ckeditor/plugins/newpage/plugin.js +65 -0
  203. data/public/bcms/ckeditor/plugins/pagebreak/images/pagebreak.gif +0 -0
  204. data/public/bcms/ckeditor/plugins/pagebreak/plugin.js +96 -0
  205. data/public/bcms/ckeditor/plugins/panel/plugin.js +330 -0
  206. data/public/bcms/ckeditor/plugins/panelbutton/plugin.js +140 -0
  207. data/public/bcms/ckeditor/plugins/pastefromword/dialogs/pastefromword.js +307 -0
  208. data/public/bcms/ckeditor/plugins/pastefromword/plugin.js +54 -0
  209. data/public/bcms/ckeditor/plugins/pastetext/dialogs/pastetext.js +65 -0
  210. data/public/bcms/ckeditor/plugins/pastetext/plugin.js +142 -0
  211. data/public/bcms/ckeditor/plugins/popup/plugin.js +62 -0
  212. data/public/bcms/ckeditor/plugins/preview/plugin.js +97 -0
  213. data/public/bcms/ckeditor/plugins/print/plugin.js +41 -0
  214. data/public/bcms/ckeditor/plugins/removeformat/plugin.js +132 -0
  215. data/public/bcms/ckeditor/plugins/resize/plugin.js +115 -0
  216. data/public/bcms/ckeditor/plugins/richcombo/plugin.js +357 -0
  217. data/public/bcms/ckeditor/plugins/save/plugin.js +55 -0
  218. data/public/bcms/ckeditor/plugins/scayt/dialogs/options.js +494 -0
  219. data/public/bcms/ckeditor/plugins/scayt/dialogs/toolbar.css +71 -0
  220. data/public/bcms/ckeditor/plugins/scayt/plugin.js +511 -0
  221. data/public/bcms/ckeditor/plugins/selection/plugin.js +1072 -0
  222. data/public/bcms/ckeditor/plugins/showblocks/images/block_address.png +0 -0
  223. data/public/bcms/ckeditor/plugins/showblocks/images/block_blockquote.png +0 -0
  224. data/public/bcms/ckeditor/plugins/showblocks/images/block_div.png +0 -0
  225. data/public/bcms/ckeditor/plugins/showblocks/images/block_h1.png +0 -0
  226. data/public/bcms/ckeditor/plugins/showblocks/images/block_h2.png +0 -0
  227. data/public/bcms/ckeditor/plugins/showblocks/images/block_h3.png +0 -0
  228. data/public/bcms/ckeditor/plugins/showblocks/images/block_h4.png +0 -0
  229. data/public/bcms/ckeditor/plugins/showblocks/images/block_h5.png +0 -0
  230. data/public/bcms/ckeditor/plugins/showblocks/images/block_h6.png +0 -0
  231. data/public/bcms/ckeditor/plugins/showblocks/images/block_p.png +0 -0
  232. data/public/bcms/ckeditor/plugins/showblocks/images/block_pre.png +0 -0
  233. data/public/bcms/ckeditor/plugins/showblocks/plugin.js +153 -0
  234. data/public/bcms/ckeditor/plugins/smiley/dialogs/smiley.js +219 -0
  235. data/public/bcms/ckeditor/plugins/smiley/images/angel_smile.gif +0 -0
  236. data/public/bcms/ckeditor/plugins/smiley/images/angry_smile.gif +0 -0
  237. data/public/bcms/ckeditor/plugins/smiley/images/broken_heart.gif +0 -0
  238. data/public/bcms/ckeditor/plugins/smiley/images/confused_smile.gif +0 -0
  239. data/public/bcms/ckeditor/plugins/smiley/images/cry_smile.gif +0 -0
  240. data/public/bcms/ckeditor/plugins/smiley/images/devil_smile.gif +0 -0
  241. data/public/bcms/ckeditor/plugins/smiley/images/embaressed_smile.gif +0 -0
  242. data/public/bcms/ckeditor/plugins/smiley/images/envelope.gif +0 -0
  243. data/public/bcms/ckeditor/plugins/smiley/images/heart.gif +0 -0
  244. data/public/bcms/ckeditor/plugins/smiley/images/kiss.gif +0 -0
  245. data/public/bcms/ckeditor/plugins/smiley/images/lightbulb.gif +0 -0
  246. data/public/bcms/ckeditor/plugins/smiley/images/omg_smile.gif +0 -0
  247. data/public/bcms/ckeditor/plugins/smiley/images/regular_smile.gif +0 -0
  248. data/public/bcms/ckeditor/plugins/smiley/images/sad_smile.gif +0 -0
  249. data/public/bcms/ckeditor/plugins/smiley/images/shades_smile.gif +0 -0
  250. data/public/bcms/ckeditor/plugins/smiley/images/teeth_smile.gif +0 -0
  251. data/public/bcms/ckeditor/plugins/smiley/images/thumbs_down.gif +0 -0
  252. data/public/bcms/ckeditor/plugins/smiley/images/thumbs_up.gif +0 -0
  253. data/public/bcms/ckeditor/plugins/smiley/images/tounge_smile.gif +0 -0
  254. data/public/bcms/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  255. data/public/bcms/ckeditor/plugins/smiley/images/wink_smile.gif +0 -0
  256. data/public/bcms/ckeditor/plugins/smiley/plugin.js +74 -0
  257. data/public/bcms/ckeditor/plugins/sourcearea/plugin.js +185 -0
  258. data/public/bcms/ckeditor/plugins/specialchar/dialogs/specialchar.js +362 -0
  259. data/public/bcms/ckeditor/plugins/specialchar/plugin.js +29 -0
  260. data/public/bcms/ckeditor/plugins/styles/plugin.js +1242 -0
  261. data/public/bcms/ckeditor/plugins/stylescombo/plugin.js +295 -0
  262. data/public/bcms/ckeditor/plugins/stylescombo/styles/default.js +85 -0
  263. data/public/bcms/ckeditor/plugins/tab/plugin.js +266 -0
  264. data/public/bcms/ckeditor/plugins/table/dialogs/table.js +550 -0
  265. data/public/bcms/ckeditor/plugins/table/plugin.js +70 -0
  266. data/public/bcms/ckeditor/plugins/tabletools/dialogs/tableCell.js +328 -0
  267. data/public/bcms/ckeditor/plugins/tabletools/plugin.js +701 -0
  268. data/public/bcms/ckeditor/plugins/templates/dialogs/templates.js +170 -0
  269. data/public/bcms/ckeditor/plugins/templates/plugin.js +99 -0
  270. data/public/bcms/ckeditor/plugins/templates/templates/default.js +94 -0
  271. data/public/bcms/ckeditor/plugins/templates/templates/images/template1.gif +0 -0
  272. data/public/bcms/ckeditor/plugins/templates/templates/images/template2.gif +0 -0
  273. data/public/bcms/ckeditor/plugins/templates/templates/images/template3.gif +0 -0
  274. data/public/bcms/ckeditor/plugins/toolbar/plugin.js +412 -0
  275. data/public/bcms/ckeditor/plugins/uicolor/dialogs/uicolor.js +203 -0
  276. data/public/bcms/ckeditor/plugins/uicolor/lang/en.js +15 -0
  277. data/public/bcms/ckeditor/plugins/uicolor/plugin.js +35 -0
  278. data/public/bcms/ckeditor/plugins/uicolor/uicolor.gif +0 -0
  279. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  280. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  281. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  282. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  283. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/yui.css +15 -0
  284. data/public/bcms/ckeditor/plugins/uicolor/yui/yui.js +71 -0
  285. data/public/bcms/ckeditor/plugins/undo/plugin.js +490 -0
  286. data/public/bcms/ckeditor/plugins/wsc/dialogs/ciframe.html +49 -0
  287. data/public/bcms/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +52 -0
  288. data/public/bcms/ckeditor/plugins/wsc/dialogs/wsc.css +83 -0
  289. data/public/bcms/ckeditor/plugins/wsc/dialogs/wsc.js +169 -0
  290. data/public/bcms/ckeditor/plugins/wsc/plugin.js +32 -0
  291. data/public/bcms/ckeditor/plugins/wysiwygarea/plugin.js +636 -0
  292. data/public/bcms/ckeditor/skins/kama/dialog.css +742 -0
  293. data/public/bcms/ckeditor/skins/kama/editor.css +21 -0
  294. data/public/bcms/ckeditor/skins/kama/elementspath.css +68 -0
  295. data/public/bcms/ckeditor/skins/kama/icons.css +309 -0
  296. data/public/bcms/ckeditor/skins/kama/icons.png +0 -0
  297. data/public/bcms/ckeditor/skins/kama/images/dialog_sides.gif +0 -0
  298. data/public/bcms/ckeditor/skins/kama/images/dialog_sides.png +0 -0
  299. data/public/bcms/ckeditor/skins/kama/images/dialog_sides_rtl.png +0 -0
  300. data/public/bcms/ckeditor/skins/kama/images/mini.gif +0 -0
  301. data/public/bcms/ckeditor/skins/kama/images/noimage.png +0 -0
  302. data/public/bcms/ckeditor/skins/kama/images/sprites.png +0 -0
  303. data/public/bcms/ckeditor/skins/kama/images/sprites_ie6.png +0 -0
  304. data/public/bcms/ckeditor/skins/kama/images/toolbar_start.gif +0 -0
  305. data/public/bcms/ckeditor/skins/kama/mainui.css +139 -0
  306. data/public/bcms/ckeditor/skins/kama/menu.css +179 -0
  307. data/public/bcms/ckeditor/skins/kama/panel.css +203 -0
  308. data/public/bcms/ckeditor/skins/kama/presets.css +49 -0
  309. data/public/bcms/ckeditor/skins/kama/reset.css +78 -0
  310. data/public/bcms/ckeditor/skins/kama/richcombo.css +260 -0
  311. data/public/bcms/ckeditor/skins/kama/skin.js +291 -0
  312. data/public/bcms/ckeditor/skins/kama/templates.css +71 -0
  313. data/public/bcms/ckeditor/skins/kama/toolbar.css +384 -0
  314. data/public/bcms/ckeditor/skins/office2003/dialog.css +643 -0
  315. data/public/bcms/ckeditor/skins/office2003/editor.css +21 -0
  316. data/public/bcms/ckeditor/skins/office2003/elementspath.css +68 -0
  317. data/public/bcms/ckeditor/skins/office2003/icons.css +309 -0
  318. data/public/bcms/ckeditor/skins/office2003/icons.png +0 -0
  319. data/public/bcms/ckeditor/skins/office2003/images/dialog_sides.gif +0 -0
  320. data/public/bcms/ckeditor/skins/office2003/images/dialog_sides.png +0 -0
  321. data/public/bcms/ckeditor/skins/office2003/images/dialog_sides_rtl.png +0 -0
  322. data/public/bcms/ckeditor/skins/office2003/images/mini.gif +0 -0
  323. data/public/bcms/ckeditor/skins/office2003/images/noimage.png +0 -0
  324. data/public/bcms/ckeditor/skins/office2003/images/sprites.png +0 -0
  325. data/public/bcms/ckeditor/skins/office2003/images/sprites_ie6.png +0 -0
  326. data/public/bcms/ckeditor/skins/office2003/mainui.css +97 -0
  327. data/public/bcms/ckeditor/skins/office2003/menu.css +175 -0
  328. data/public/bcms/ckeditor/skins/office2003/panel.css +198 -0
  329. data/public/bcms/ckeditor/skins/office2003/presets.css +49 -0
  330. data/public/bcms/ckeditor/skins/office2003/reset.css +78 -0
  331. data/public/bcms/ckeditor/skins/office2003/richcombo.css +279 -0
  332. data/public/bcms/ckeditor/skins/office2003/skin.js +77 -0
  333. data/public/bcms/ckeditor/skins/office2003/templates.css +71 -0
  334. data/public/bcms/ckeditor/skins/office2003/toolbar.css +442 -0
  335. data/public/bcms/ckeditor/skins/v2/dialog.css +653 -0
  336. data/public/bcms/ckeditor/skins/v2/editor.css +21 -0
  337. data/public/bcms/ckeditor/skins/v2/elementspath.css +68 -0
  338. data/public/bcms/ckeditor/skins/v2/icons.css +309 -0
  339. data/public/bcms/ckeditor/skins/v2/icons.png +0 -0
  340. data/public/bcms/ckeditor/skins/v2/images/dialog_sides.gif +0 -0
  341. data/public/bcms/ckeditor/skins/v2/images/dialog_sides.png +0 -0
  342. data/public/bcms/ckeditor/skins/v2/images/dialog_sides_rtl.png +0 -0
  343. data/public/bcms/ckeditor/skins/v2/images/mini.gif +0 -0
  344. data/public/bcms/ckeditor/skins/v2/images/noimage.png +0 -0
  345. data/public/bcms/ckeditor/skins/v2/images/sprites.png +0 -0
  346. data/public/bcms/ckeditor/skins/v2/images/sprites_ie6.png +0 -0
  347. data/public/bcms/ckeditor/skins/v2/images/toolbar_start.gif +0 -0
  348. data/public/bcms/ckeditor/skins/v2/mainui.css +112 -0
  349. data/public/bcms/ckeditor/skins/v2/menu.css +178 -0
  350. data/public/bcms/ckeditor/skins/v2/panel.css +198 -0
  351. data/public/bcms/ckeditor/skins/v2/presets.css +50 -0
  352. data/public/bcms/ckeditor/skins/v2/reset.css +78 -0
  353. data/public/bcms/ckeditor/skins/v2/richcombo.css +275 -0
  354. data/public/bcms/ckeditor/skins/v2/skin.js +73 -0
  355. data/public/bcms/ckeditor/skins/v2/templates.css +71 -0
  356. data/public/bcms/ckeditor/skins/v2/toolbar.css +399 -0
  357. data/public/bcms/ckeditor/tests/_assets/sample.css +4 -0
  358. data/public/bcms/ckeditor/tests/_assets/sample.js +1 -0
  359. data/public/bcms/ckeditor/tests/_assets/sample.txt +1 -0
  360. data/public/bcms/ckeditor/tests/_assets/sample.xml +5 -0
  361. data/public/bcms/ckeditor/tests/_assets/sample_xml.txt +5 -0
  362. data/public/bcms/ckeditor/tests/core/_editor/custom_config_1.js +10 -0
  363. data/public/bcms/ckeditor/tests/core/_editor/custom_config_2.js +9 -0
  364. data/public/bcms/ckeditor/tests/core/ajax.html +163 -0
  365. data/public/bcms/ckeditor/tests/core/bootstrap.html +66 -0
  366. data/public/bcms/ckeditor/tests/core/ckeditor.html +160 -0
  367. data/public/bcms/ckeditor/tests/core/dom/document.html +126 -0
  368. data/public/bcms/ckeditor/tests/core/dom/documentfragment.html +292 -0
  369. data/public/bcms/ckeditor/tests/core/dom/element.html +637 -0
  370. data/public/bcms/ckeditor/tests/core/dom/node.html +164 -0
  371. data/public/bcms/ckeditor/tests/core/dom/range.html +2411 -0
  372. data/public/bcms/ckeditor/tests/core/dom/text.html +128 -0
  373. data/public/bcms/ckeditor/tests/core/dom/walker.html +340 -0
  374. data/public/bcms/ckeditor/tests/core/dom/window.html +53 -0
  375. data/public/bcms/ckeditor/tests/core/editor.html +123 -0
  376. data/public/bcms/ckeditor/tests/core/env.html +52 -0
  377. data/public/bcms/ckeditor/tests/core/event.html +487 -0
  378. data/public/bcms/ckeditor/tests/core/htmlparser/fragment.html +188 -0
  379. data/public/bcms/ckeditor/tests/core/htmlparser/htmlparser.html +91 -0
  380. data/public/bcms/ckeditor/tests/core/plugins/myplugins/sample/my_plugin.js +3 -0
  381. data/public/bcms/ckeditor/tests/core/plugins.html +45 -0
  382. data/public/bcms/ckeditor/tests/core/scriptloader.html +52 -0
  383. data/public/bcms/ckeditor/tests/core/tools.html +170 -0
  384. data/public/bcms/ckeditor/tests/core/xml.html +150 -0
  385. data/public/bcms/ckeditor/tests/plugins/domiterator/domiterator.html +236 -0
  386. data/public/bcms/ckeditor/tests/plugins/htmldataprocessor/htmldataprocessor.html +386 -0
  387. data/public/bcms/ckeditor/tests/plugins/link/link.html +123 -0
  388. data/public/bcms/ckeditor/tests/plugins/list/list.html +217 -0
  389. data/public/bcms/ckeditor/tests/plugins/selection/selection.html +49 -0
  390. data/public/bcms/ckeditor/tests/plugins/styles/styles.html +596 -0
  391. data/public/bcms/ckeditor/tests/test.css +81 -0
  392. data/public/bcms/ckeditor/tests/test.js +93 -0
  393. data/public/bcms/ckeditor/tests/testall.html +114 -0
  394. data/public/bcms/ckeditor/tests/yuitest.js +75 -0
  395. data/public/bcms/ckeditor/themes/default/theme.js +232 -0
  396. data/public/bcms/content_syncing/README +1 -0
  397. data/public/favicon.ico +0 -0
  398. data/public/images/cms/administration/user_browser_bg.gif +0 -0
  399. data/public/images/cms/bg.png +0 -0
  400. data/public/images/cms/bl_curve.png +0 -0
  401. data/public/images/cms/bottom_cap.png +0 -0
  402. data/public/images/cms/bottom_cap_content.png +0 -0
  403. data/public/images/cms/browse.gif +0 -0
  404. data/public/images/cms/browser_media_logo.png +0 -0
  405. data/public/images/cms/browsercms_logo.png +0 -0
  406. data/public/images/cms/buttons/button.png +0 -0
  407. data/public/images/cms/buttons/button_bg.png +0 -0
  408. data/public/images/cms/buttons/button_cap.png +0 -0
  409. data/public/images/cms/buttons/button_cap_h.png +0 -0
  410. data/public/images/cms/buttons/button_cap_off.gif +0 -0
  411. data/public/images/cms/buttons/button_cap_off_middle.gif +0 -0
  412. data/public/images/cms/buttons/button_h.png +0 -0
  413. data/public/images/cms/buttons/button_left_bg.png +0 -0
  414. data/public/images/cms/buttons/button_off.png +0 -0
  415. data/public/images/cms/buttons/button_off_middle.png +0 -0
  416. data/public/images/cms/buttons/delete_x.png +0 -0
  417. data/public/images/cms/buttons/delete_x_disabled.png +0 -0
  418. data/public/images/cms/buttons/delete_x_h.png +0 -0
  419. data/public/images/cms/buttons/sm_button.gif +0 -0
  420. data/public/images/cms/buttons/sm_button_2.gif +0 -0
  421. data/public/images/cms/buttons/sm_button_2_h.gif +0 -0
  422. data/public/images/cms/buttons/sm_button_h.gif +0 -0
  423. data/public/images/cms/containers/add.gif +0 -0
  424. data/public/images/cms/containers/alpha.png +0 -0
  425. data/public/images/cms/containers/beta.png +0 -0
  426. data/public/images/cms/containers/delete.gif +0 -0
  427. data/public/images/cms/containers/down.gif +0 -0
  428. data/public/images/cms/containers/edit.gif +0 -0
  429. data/public/images/cms/containers/up.gif +0 -0
  430. data/public/images/cms/containers/view.gif +0 -0
  431. data/public/images/cms/content_bg.gif +0 -0
  432. data/public/images/cms/dashboard/bottom_cap.png +0 -0
  433. data/public/images/cms/dashboard/bottom_cap_content.png +0 -0
  434. data/public/images/cms/dashboard/header_bg.gif +0 -0
  435. data/public/images/cms/dashboard/header_left_bg.gif +0 -0
  436. data/public/images/cms/dashboard/table_header_bg.gif +0 -0
  437. data/public/images/cms/dashboard/top_cap.png +0 -0
  438. data/public/images/cms/dashed.gif +0 -0
  439. data/public/images/cms/datepicker/clear.gif +0 -0
  440. data/public/images/cms/datepicker/close.gif +0 -0
  441. data/public/images/cms/dk_button_l.gif +0 -0
  442. data/public/images/cms/dk_button_r.gif +0 -0
  443. data/public/images/cms/dot.png +0 -0
  444. data/public/images/cms/draft_status.gif +0 -0
  445. data/public/images/cms/gray_long_bg.gif +0 -0
  446. data/public/images/cms/icons/actions/add.png +0 -0
  447. data/public/images/cms/icons/actions/config.png +0 -0
  448. data/public/images/cms/icons/actions/connect.png +0 -0
  449. data/public/images/cms/icons/actions/delete.png +0 -0
  450. data/public/images/cms/icons/actions/down.png +0 -0
  451. data/public/images/cms/icons/actions/edit.png +0 -0
  452. data/public/images/cms/icons/actions/folder.png +0 -0
  453. data/public/images/cms/icons/actions/folder_add.png +0 -0
  454. data/public/images/cms/icons/actions/folder_delete.png +0 -0
  455. data/public/images/cms/icons/actions/folder_edit.png +0 -0
  456. data/public/images/cms/icons/actions/folder_move.png +0 -0
  457. data/public/images/cms/icons/actions/folder_open.png +0 -0
  458. data/public/images/cms/icons/actions/history.png +0 -0
  459. data/public/images/cms/icons/actions/home.png +0 -0
  460. data/public/images/cms/icons/actions/left.png +0 -0
  461. data/public/images/cms/icons/actions/link.png +0 -0
  462. data/public/images/cms/icons/actions/page.png +0 -0
  463. data/public/images/cms/icons/actions/page_add.png +0 -0
  464. data/public/images/cms/icons/actions/page_edit.png +0 -0
  465. data/public/images/cms/icons/actions/page_move.png +0 -0
  466. data/public/images/cms/icons/actions/redo.png +0 -0
  467. data/public/images/cms/icons/actions/refresh.png +0 -0
  468. data/public/images/cms/icons/actions/right.png +0 -0
  469. data/public/images/cms/icons/actions/root_folder.png +0 -0
  470. data/public/images/cms/icons/actions/root_link.png +0 -0
  471. data/public/images/cms/icons/actions/root_page.png +0 -0
  472. data/public/images/cms/icons/actions/undo.png +0 -0
  473. data/public/images/cms/icons/actions/up.png +0 -0
  474. data/public/images/cms/icons/actions/view.png +0 -0
  475. data/public/images/cms/icons/file_types/doc.png +0 -0
  476. data/public/images/cms/icons/file_types/file.png +0 -0
  477. data/public/images/cms/icons/file_types/gif.png +0 -0
  478. data/public/images/cms/icons/file_types/htm.png +0 -0
  479. data/public/images/cms/icons/file_types/pdf.png +0 -0
  480. data/public/images/cms/icons/file_types/ppt.png +0 -0
  481. data/public/images/cms/icons/file_types/swf.png +0 -0
  482. data/public/images/cms/icons/file_types/txt.png +0 -0
  483. data/public/images/cms/icons/file_types/xls.png +0 -0
  484. data/public/images/cms/icons/file_types/xml.png +0 -0
  485. data/public/images/cms/icons/file_types/zip.png +0 -0
  486. data/public/images/cms/icons/status/archived.gif +0 -0
  487. data/public/images/cms/icons/status/draft.gif +0 -0
  488. data/public/images/cms/icons/status/hidden.gif +0 -0
  489. data/public/images/cms/icons/status/locked.gif +0 -0
  490. data/public/images/cms/icons/status/published.gif +0 -0
  491. data/public/images/cms/icons/status/unlocked.gif +0 -0
  492. data/public/images/cms/icons/user.png +0 -0
  493. data/public/images/cms/login_bg.jpg +0 -0
  494. data/public/images/cms/login_bottom.jpg +0 -0
  495. data/public/images/cms/login_top.gif +0 -0
  496. data/public/images/cms/lt_button_bg.gif +0 -0
  497. data/public/images/cms/lt_button_l.gif +0 -0
  498. data/public/images/cms/lt_button_r.gif +0 -0
  499. data/public/images/cms/menu/block_cap_h.gif +0 -0
  500. data/public/images/cms/menu/bottom_cap.png +0 -0
  501. data/public/images/cms/menu/bottom_cap_menu.png +0 -0
  502. data/public/images/cms/menu/bottom_cap_menu_first.png +0 -0
  503. data/public/images/cms/menu/menu_header_first_bg.gif +0 -0
  504. data/public/images/cms/menu/selected_block_cap.gif +0 -0
  505. data/public/images/cms/menu/top_cap.png +0 -0
  506. data/public/images/cms/menu/top_cap_menu_header.png +0 -0
  507. data/public/images/cms/menu.png +0 -0
  508. data/public/images/cms/menu_h.gif +0 -0
  509. data/public/images/cms/menu_header.png +0 -0
  510. data/public/images/cms/menu_open.png +0 -0
  511. data/public/images/cms/menu_open_bg.gif +0 -0
  512. data/public/images/cms/nav/on_bg.gif +0 -0
  513. data/public/images/cms/nav.png +0 -0
  514. data/public/images/cms/nav_admin.gif +0 -0
  515. data/public/images/cms/nav_admin_h.gif +0 -0
  516. data/public/images/cms/nav_admin_on.gif +0 -0
  517. data/public/images/cms/nav_cap.png +0 -0
  518. data/public/images/cms/nav_cap_h.gif +0 -0
  519. data/public/images/cms/nav_content_library.gif +0 -0
  520. data/public/images/cms/nav_content_library_h.gif +0 -0
  521. data/public/images/cms/nav_content_library_on.gif +0 -0
  522. data/public/images/cms/nav_dash.gif +0 -0
  523. data/public/images/cms/nav_dash_h.gif +0 -0
  524. data/public/images/cms/nav_dash_on.gif +0 -0
  525. data/public/images/cms/nav_h.gif +0 -0
  526. data/public/images/cms/nav_sitemap.gif +0 -0
  527. data/public/images/cms/nav_sitemap_h.gif +0 -0
  528. data/public/images/cms/nav_sitemap_on.gif +0 -0
  529. data/public/images/cms/page_toolbar/page_toolbar_bg.gif +0 -0
  530. data/public/images/cms/page_toolbar/page_toolbar_inset_bg.gif +0 -0
  531. data/public/images/cms/page_toolbar/page_toolbar_inset_draft_bg.gif +0 -0
  532. data/public/images/cms/page_toolbar/page_toolbar_inset_draft_l.gif +0 -0
  533. data/public/images/cms/page_toolbar/page_toolbar_inset_draft_r.gif +0 -0
  534. data/public/images/cms/page_toolbar/page_toolbar_inset_l.gif +0 -0
  535. data/public/images/cms/page_toolbar/page_toolbar_inset_published_bg.gif +0 -0
  536. data/public/images/cms/page_toolbar/page_toolbar_inset_published_l.gif +0 -0
  537. data/public/images/cms/page_toolbar/page_toolbar_inset_published_r.gif +0 -0
  538. data/public/images/cms/page_toolbar/page_toolbar_inset_r.gif +0 -0
  539. data/public/images/cms/page_toolbar/page_toolbar_l.gif +0 -0
  540. data/public/images/cms/page_toolbar/page_toolbar_r.gif +0 -0
  541. data/public/images/cms/page_toolbar/status_draft_bg.gif +0 -0
  542. data/public/images/cms/page_toolbar/status_draft_l.gif +0 -0
  543. data/public/images/cms/page_toolbar/status_l.gif +0 -0
  544. data/public/images/cms/page_toolbar/status_published_bg.gif +0 -0
  545. data/public/images/cms/page_toolbar/status_published_l.gif +0 -0
  546. data/public/images/cms/page_toolbar/visual_editor_bg.gif +0 -0
  547. data/public/images/cms/page_toolbar/visual_editor_end.gif +0 -0
  548. data/public/images/cms/page_toolbar/visual_editor_r.gif +0 -0
  549. data/public/images/cms/page_toolbar/visual_editor_state_bg.gif +0 -0
  550. data/public/images/cms/pages/add_connectable.gif +0 -0
  551. data/public/images/cms/pages/connect_connectable.gif +0 -0
  552. data/public/images/cms/pages/container_border.gif +0 -0
  553. data/public/images/cms/pages/container_border_l.gif +0 -0
  554. data/public/images/cms/pages/container_border_r.gif +0 -0
  555. data/public/images/cms/pages/delete_connectable.gif +0 -0
  556. data/public/images/cms/pages/down_connectable.gif +0 -0
  557. data/public/images/cms/pages/down_connectable_disabled.gif +0 -0
  558. data/public/images/cms/pages/edit_connectable.gif +0 -0
  559. data/public/images/cms/pages/edit_connectable_2.gif +0 -0
  560. data/public/images/cms/pages/show_connectable.gif +0 -0
  561. data/public/images/cms/pages/up_connectable.gif +0 -0
  562. data/public/images/cms/pages/up_connectable_disabled.gif +0 -0
  563. data/public/images/cms/pagination/first.gif +0 -0
  564. data/public/images/cms/pagination/first_h.gif +0 -0
  565. data/public/images/cms/pagination/input.gif +0 -0
  566. data/public/images/cms/pagination/last.gif +0 -0
  567. data/public/images/cms/pagination/last_h.gif +0 -0
  568. data/public/images/cms/pagination/next.gif +0 -0
  569. data/public/images/cms/pagination/next_h.gif +0 -0
  570. data/public/images/cms/pagination/previous.gif +0 -0
  571. data/public/images/cms/pagination/previous_h.gif +0 -0
  572. data/public/images/cms/published_status.gif +0 -0
  573. data/public/images/cms/search.png +0 -0
  574. data/public/images/cms/search_submit.gif +0 -0
  575. data/public/images/cms/search_submit_h.gif +0 -0
  576. data/public/images/cms/searchbox_gradient.gif +0 -0
  577. data/public/images/cms/select_bg.gif +0 -0
  578. data/public/images/cms/select_bg_2.gif +0 -0
  579. data/public/images/cms/sitemap/bottom_cap.png +0 -0
  580. data/public/images/cms/sitemap/buffer_caps.png +0 -0
  581. data/public/images/cms/sitemap/contract.png +0 -0
  582. data/public/images/cms/sitemap/corners.gif +0 -0
  583. data/public/images/cms/sitemap/corners_hover.gif +0 -0
  584. data/public/images/cms/sitemap/divider.gif +0 -0
  585. data/public/images/cms/sitemap/expand.png +0 -0
  586. data/public/images/cms/sitemap/gradient.gif +0 -0
  587. data/public/images/cms/sitemap/gray_contract.png +0 -0
  588. data/public/images/cms/sitemap/gray_expand.png +0 -0
  589. data/public/images/cms/sitemap/no_contents.png +0 -0
  590. data/public/images/cms/sitemap/site_root_cap.png +0 -0
  591. data/public/images/cms/sitemap/tooltip.gif +0 -0
  592. data/public/images/cms/sitemap/top_cap_content.png +0 -0
  593. data/public/images/cms/solid.gif +0 -0
  594. data/public/images/cms/table/bl.gif +0 -0
  595. data/public/images/cms/table/br.gif +0 -0
  596. data/public/images/cms/table/divider.gif +0 -0
  597. data/public/images/cms/table/td_cap_first_h.gif +0 -0
  598. data/public/images/cms/table/td_cap_first_s.gif +0 -0
  599. data/public/images/cms/table/td_cap_last_h.gif +0 -0
  600. data/public/images/cms/table/td_cap_last_s.gif +0 -0
  601. data/public/images/cms/table/td_last_bg.gif +0 -0
  602. data/public/images/cms/table/th_bg.gif +0 -0
  603. data/public/images/cms/table/th_divider.gif +0 -0
  604. data/public/images/cms/table/th_last_bg.gif +0 -0
  605. data/public/images/cms/table/tl.gif +0 -0
  606. data/public/images/cms/table/tr.gif +0 -0
  607. data/public/images/cms/table/tr_bg.gif +0 -0
  608. data/public/images/cms/thickbox/loadingAnimation.gif +0 -0
  609. data/public/images/cms/thickbox/macFFBgHack.png +0 -0
  610. data/public/images/cms/toolbar_bg.png +0 -0
  611. data/public/images/cms/top_cap.png +0 -0
  612. data/public/images/cms/top_cap_content.png +0 -0
  613. data/public/images/cms/top_cap_menu_header.png +0 -0
  614. data/public/images/cms/user_search_submit.gif +0 -0
  615. data/public/images/cms/usercontrols_bg.png +0 -0
  616. data/public/images/cms/usercontrols_bg_cap.png +0 -0
  617. data/public/images/rails.png +0 -0
  618. data/public/javascripts/application.js +2 -0
  619. data/public/javascripts/cms/application.js +148 -0
  620. data/public/javascripts/cms/content_library.js +36 -0
  621. data/public/javascripts/cms/sitemap.js +438 -0
  622. data/public/javascripts/controls.js +963 -0
  623. data/public/javascripts/dragdrop.js +973 -0
  624. data/public/javascripts/effects.js +1128 -0
  625. data/public/javascripts/jquery-ui.js +591 -0
  626. data/public/javascripts/jquery.contextMenu.js +211 -0
  627. data/public/javascripts/jquery.cookie.js +96 -0
  628. data/public/javascripts/jquery.dimensions.js +119 -0
  629. data/public/javascripts/jquery.js +11 -0
  630. data/public/javascripts/jquery.selectbox-0.5.js +209 -0
  631. data/public/javascripts/jquery.taglist.js +136 -0
  632. data/public/javascripts/jquery.thickbox.js +10 -0
  633. data/public/javascripts/prototype.js +4320 -0
  634. data/public/robots.txt +5 -0
  635. data/public/site/customconfig.js +1 -0
  636. data/public/stylesheets/cms/administration.css +91 -0
  637. data/public/stylesheets/cms/application.css +166 -0
  638. data/public/stylesheets/cms/block.css +26 -0
  639. data/public/stylesheets/cms/buttons.css +120 -0
  640. data/public/stylesheets/cms/content_library.css +139 -0
  641. data/public/stylesheets/cms/content_types.css +4 -0
  642. data/public/stylesheets/cms/dashboard.css +118 -0
  643. data/public/stylesheets/cms/data_table.css +156 -0
  644. data/public/stylesheets/cms/date_picker.css +73 -0
  645. data/public/stylesheets/cms/form_layout.css +279 -0
  646. data/public/stylesheets/cms/jquery.contextMenu.css +61 -0
  647. data/public/stylesheets/cms/login.css +78 -0
  648. data/public/stylesheets/cms/menu.css +116 -0
  649. data/public/stylesheets/cms/nav.css +99 -0
  650. data/public/stylesheets/cms/page_toolbar.css +135 -0
  651. data/public/stylesheets/cms/reset.css +46 -0
  652. data/public/stylesheets/cms/selectbox.css +56 -0
  653. data/public/stylesheets/cms/sitemap.css +390 -0
  654. data/public/stylesheets/cms/taglist.css +18 -0
  655. data/public/stylesheets/cms/thickbox.css +163 -0
  656. data/rails/init.rb +5 -0
  657. data/script/about +4 -0
  658. data/script/console +3 -0
  659. data/script/dbconsole +3 -0
  660. data/script/destroy +3 -0
  661. data/script/generate +3 -0
  662. data/script/performance/benchmarker +3 -0
  663. data/script/performance/profiler +3 -0
  664. data/script/plugin +3 -0
  665. data/script/runner +3 -0
  666. data/script/server +3 -0
  667. data/test/performance/browsing_test.rb +9 -0
  668. data/test/test_helper.rb +38 -0
  669. metadata +736 -0
@@ -0,0 +1,434 @@
1
+ /*
2
+ Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ /**
7
+ * A lightweight representation of an HTML DOM structure.
8
+ * @constructor
9
+ * @example
10
+ */
11
+ CKEDITOR.htmlParser.fragment = function()
12
+ {
13
+ /**
14
+ * The nodes contained in the root of this fragment.
15
+ * @type Array
16
+ * @example
17
+ * var fragment = CKEDITOR.htmlParser.fragment.fromHtml( '<b>Sample</b> Text' );
18
+ * alert( fragment.children.length ); "2"
19
+ */
20
+ this.children = [];
21
+
22
+ /**
23
+ * Get the fragment parent. Should always be null.
24
+ * @type Object
25
+ * @default null
26
+ * @example
27
+ */
28
+ this.parent = null;
29
+
30
+ /** @private */
31
+ this._ =
32
+ {
33
+ isBlockLike : true,
34
+ hasInlineStarted : false
35
+ };
36
+ };
37
+
38
+ (function()
39
+ {
40
+ // Elements which the end tag is marked as optional in the HTML 4.01 DTD
41
+ // (expect empty elements).
42
+ var optionalClose = {colgroup:1,dd:1,dt:1,li:1,option:1,p:1,td:1,tfoot:1,th:1,thead:1,tr:1};
43
+
44
+ // Block-level elements whose internal structure should be respected during
45
+ // parser fixing.
46
+ var nonBreakingBlocks = CKEDITOR.tools.extend(
47
+ {table:1,ul:1,ol:1,dl:1},
48
+ CKEDITOR.dtd.table, CKEDITOR.dtd.ul, CKEDITOR.dtd.ol, CKEDITOR.dtd.dl );
49
+
50
+ /**
51
+ * Creates a {@link CKEDITOR.htmlParser.fragment} from an HTML string.
52
+ * @param {String} fragmentHtml The HTML to be parsed, filling the fragment.
53
+ * @param {Number} [fixForBody=false] Wrap body with specified element if needed.
54
+ * @returns CKEDITOR.htmlParser.fragment The fragment created.
55
+ * @example
56
+ * var fragment = CKEDITOR.htmlParser.fragment.fromHtml( '<b>Sample</b> Text' );
57
+ * alert( fragment.children[0].name ); "b"
58
+ * alert( fragment.children[1].value ); " Text"
59
+ */
60
+ CKEDITOR.htmlParser.fragment.fromHtml = function( fragmentHtml, fixForBody )
61
+ {
62
+ var parser = new CKEDITOR.htmlParser(),
63
+ html = [],
64
+ fragment = new CKEDITOR.htmlParser.fragment(),
65
+ pendingInline = [],
66
+ currentNode = fragment,
67
+ // Indicate we're inside a <pre> element, spaces should be touched differently.
68
+ inPre = false,
69
+ returnPoint;
70
+
71
+ function checkPending( newTagName )
72
+ {
73
+ if ( pendingInline.length > 0 )
74
+ {
75
+ for ( var i = 0 ; i < pendingInline.length ; i++ )
76
+ {
77
+ var pendingElement = pendingInline[ i ],
78
+ pendingName = pendingElement.name,
79
+ pendingDtd = CKEDITOR.dtd[ pendingName ],
80
+ currentDtd = currentNode.name && CKEDITOR.dtd[ currentNode.name ];
81
+
82
+ if ( ( !currentDtd || currentDtd[ pendingName ] ) && ( !newTagName || !pendingDtd || pendingDtd[ newTagName ] || !CKEDITOR.dtd[ newTagName ] ) )
83
+ {
84
+ // Get a clone for the pending element.
85
+ pendingElement = pendingElement.clone();
86
+
87
+ // Add it to the current node and make it the current,
88
+ // so the new element will be added inside of it.
89
+ pendingElement.parent = currentNode;
90
+ currentNode = pendingElement;
91
+
92
+ // Remove the pending element (back the index by one
93
+ // to properly process the next entry).
94
+ pendingInline.splice( i, 1 );
95
+ i--;
96
+ }
97
+ }
98
+ }
99
+ }
100
+
101
+ function addElement( element, target, enforceCurrent )
102
+ {
103
+ target = target || currentNode || fragment;
104
+
105
+ // If the target is the fragment and this element can't go inside
106
+ // body (if fixForBody).
107
+ if ( fixForBody && !target.type )
108
+ {
109
+ var elementName, realElementName;
110
+ if ( element.attributes
111
+ && ( realElementName =
112
+ element.attributes[ '_cke_real_element_type' ] ) )
113
+ elementName = realElementName;
114
+ else
115
+ elementName = element.name;
116
+ if ( !( elementName in CKEDITOR.dtd.$body ) )
117
+ {
118
+ var savedCurrent = currentNode;
119
+
120
+ // Create a <p> in the fragment.
121
+ currentNode = target;
122
+ parser.onTagOpen( fixForBody, {} );
123
+
124
+ // The new target now is the <p>.
125
+ target = currentNode;
126
+
127
+ if ( enforceCurrent )
128
+ currentNode = savedCurrent;
129
+ }
130
+ }
131
+
132
+ // Rtrim empty spaces on block end boundary. (#3585)
133
+ if ( element._.isBlockLike
134
+ && element.name != 'pre' )
135
+ {
136
+
137
+ var length = element.children.length,
138
+ lastChild = element.children[ length - 1 ],
139
+ text;
140
+ if ( lastChild && lastChild.type == CKEDITOR.NODE_TEXT )
141
+ {
142
+ if ( !( text = CKEDITOR.tools.rtrim( lastChild.value ) ) )
143
+ element.children.length = length -1;
144
+ else
145
+ lastChild.value = text;
146
+ }
147
+ }
148
+
149
+ target.add( element );
150
+
151
+ if ( element.returnPoint )
152
+ {
153
+ currentNode = element.returnPoint;
154
+ delete element.returnPoint;
155
+ }
156
+ }
157
+
158
+ parser.onTagOpen = function( tagName, attributes, selfClosing )
159
+ {
160
+ var element = new CKEDITOR.htmlParser.element( tagName, attributes );
161
+
162
+ // "isEmpty" will be always "false" for unknown elements, so we
163
+ // must force it if the parser has identified it as a selfClosing tag.
164
+ if ( element.isUnknown && selfClosing )
165
+ element.isEmpty = true;
166
+
167
+ // This is a tag to be removed if empty, so do not add it immediately.
168
+ if ( CKEDITOR.dtd.$removeEmpty[ tagName ] )
169
+ {
170
+ pendingInline.push( element );
171
+ return;
172
+ }
173
+ else if ( tagName == 'pre' )
174
+ inPre = true;
175
+ else if ( tagName == 'br' && inPre )
176
+ {
177
+ currentNode.add( new CKEDITOR.htmlParser.text( '\n' ) );
178
+ return;
179
+ }
180
+
181
+ var currentName = currentNode.name,
182
+ currentDtd = ( currentName && CKEDITOR.dtd[ currentName ] ) || ( currentNode._.isBlockLike ? CKEDITOR.dtd.div : CKEDITOR.dtd.span );
183
+
184
+ // If the element cannot be child of the current element.
185
+ if ( !element.isUnknown && !currentNode.isUnknown && !currentDtd[ tagName ] )
186
+ {
187
+ // If this is the fragment node, just ignore this tag and add
188
+ // its children.
189
+ if ( !currentName )
190
+ return;
191
+
192
+ var reApply = false;
193
+
194
+ // If the element name is the same as the current element name,
195
+ // then just close the current one and append the new one to the
196
+ // parent. This situation usually happens with <p>, <li>, <dt> and
197
+ // <dd>, specially in IE. Do not enter in this if block in this case.
198
+ if ( tagName == currentName )
199
+ {
200
+ addElement( currentNode, currentNode.parent );
201
+ }
202
+ else
203
+ {
204
+ if ( nonBreakingBlocks[ currentName ] )
205
+ {
206
+ if ( !returnPoint )
207
+ returnPoint = currentNode;
208
+ }
209
+ else
210
+ {
211
+ addElement( currentNode, currentNode.parent, true );
212
+
213
+ if ( !optionalClose[ currentName ] )
214
+ {
215
+ // The current element is an inline element, which
216
+ // cannot hold the new one. Put it in the pending list,
217
+ // and try adding the new one after it.
218
+ pendingInline.unshift( currentNode );
219
+ }
220
+ }
221
+
222
+ reApply = true;
223
+ }
224
+
225
+ // In any of the above cases, we'll be adding, or trying to
226
+ // add it to the parent.
227
+ currentNode = currentNode.returnPoint || currentNode.parent;
228
+
229
+ if ( reApply )
230
+ {
231
+ parser.onTagOpen.apply( this, arguments );
232
+ return;
233
+ }
234
+ }
235
+
236
+ checkPending( tagName );
237
+
238
+ element.parent = currentNode;
239
+ element.returnPoint = returnPoint;
240
+ returnPoint = 0;
241
+
242
+ if ( element.isEmpty )
243
+ addElement( element );
244
+ else
245
+ currentNode = element;
246
+ };
247
+
248
+ parser.onTagClose = function( tagName )
249
+ {
250
+ var index = 0,
251
+ pendingAdd = [],
252
+ candidate = currentNode;
253
+
254
+ while ( candidate.type && candidate.name != tagName )
255
+ {
256
+ // If this is an inline element, add it to the pending list, so
257
+ // it will continue after the closing tag.
258
+ if ( !candidate._.isBlockLike )
259
+ {
260
+ pendingInline.unshift( candidate );
261
+
262
+ // Increase the index, so it will not get checked again in
263
+ // the pending list check that follows.
264
+ index++;
265
+ }
266
+
267
+ // This node should be added to it's parent at this point. But,
268
+ // it should happen only if the closing tag is really closing
269
+ // one of the nodes. So, for now, we just cache it.
270
+ pendingAdd.push( candidate );
271
+
272
+ candidate = candidate.parent;
273
+ }
274
+
275
+ if ( candidate.type )
276
+ {
277
+ // Add all elements that have been found in the above loop.
278
+ for ( var i = 0 ; i < pendingAdd.length ; i++ )
279
+ {
280
+ var node = pendingAdd[ i ];
281
+ addElement( node, node.parent );
282
+ }
283
+
284
+ currentNode = candidate;
285
+
286
+ if( currentNode.name == 'pre' )
287
+ inPre = false;
288
+
289
+ addElement( candidate, candidate.parent );
290
+
291
+ // The parent should start receiving new nodes now, except if
292
+ // addElement changed the currentNode.
293
+ if ( candidate == currentNode )
294
+ currentNode = currentNode.parent;
295
+ }
296
+ // The tag is not actually closing anything, thus we need invalidate
297
+ // the pending elements.(#3862)
298
+ else
299
+ {
300
+ pendingInline.splice( 0, index );
301
+ index = 0;
302
+ }
303
+
304
+ // Check if there is any pending tag to be closed.
305
+ for ( ; index < pendingInline.length ; index++ )
306
+ {
307
+ // If found, just remove it from the list.
308
+ if ( tagName == pendingInline[ index ].name )
309
+ {
310
+ pendingInline.splice( index, 1 );
311
+
312
+ // Decrease the index so we continue from the next one.
313
+ index--;
314
+ }
315
+ }
316
+ };
317
+
318
+ parser.onText = function( text )
319
+ {
320
+ // Trim empty spaces at beginning of element contents except <pre>.
321
+ if ( !currentNode._.hasInlineStarted && !inPre )
322
+ {
323
+ text = CKEDITOR.tools.ltrim( text );
324
+
325
+ if ( text.length === 0 )
326
+ return;
327
+ }
328
+
329
+ checkPending();
330
+
331
+ if ( fixForBody && !currentNode.type )
332
+ this.onTagOpen( fixForBody, {} );
333
+
334
+ // Shrinking consequential spaces into one single for all elements
335
+ // text contents.
336
+ if ( !inPre )
337
+ text = text.replace( /[\t\r\n ]{2,}|[\t\r\n]/g, ' ' );
338
+
339
+ currentNode.add( new CKEDITOR.htmlParser.text( text ) );
340
+ };
341
+
342
+ parser.onCDATA = function( cdata )
343
+ {
344
+ currentNode.add( new CKEDITOR.htmlParser.cdata( cdata ) );
345
+ };
346
+
347
+ parser.onComment = function( comment )
348
+ {
349
+ currentNode.add( new CKEDITOR.htmlParser.comment( comment ) );
350
+ };
351
+
352
+ // Parse it.
353
+ parser.parse( fragmentHtml );
354
+
355
+ // Close all pending nodes.
356
+ while ( currentNode.type )
357
+ {
358
+ var parent = currentNode.parent,
359
+ node = currentNode;
360
+
361
+ if ( fixForBody && !parent.type && !CKEDITOR.dtd.$body[ node.name ] )
362
+ {
363
+ currentNode = parent;
364
+ parser.onTagOpen( fixForBody, {} );
365
+ parent = currentNode;
366
+ }
367
+
368
+ parent.add( node );
369
+ currentNode = parent;
370
+ }
371
+
372
+ return fragment;
373
+ };
374
+
375
+ CKEDITOR.htmlParser.fragment.prototype =
376
+ {
377
+ /**
378
+ * Adds a node to this fragment.
379
+ * @param {Object} node The node to be added. It can be any of of the
380
+ * following types: {@link CKEDITOR.htmlParser.element},
381
+ * {@link CKEDITOR.htmlParser.text} and
382
+ * {@link CKEDITOR.htmlParser.comment}.
383
+ * @example
384
+ */
385
+ add : function( node )
386
+ {
387
+ var len = this.children.length,
388
+ previous = len > 0 && this.children[ len - 1 ] || null;
389
+
390
+ if ( previous )
391
+ {
392
+ // If the block to be appended is following text, trim spaces at
393
+ // the right of it.
394
+ if ( node._.isBlockLike && previous.type == CKEDITOR.NODE_TEXT )
395
+ {
396
+ previous.value = CKEDITOR.tools.rtrim( previous.value );
397
+
398
+ // If we have completely cleared the previous node.
399
+ if ( previous.value.length === 0 )
400
+ {
401
+ // Remove it from the list and add the node again.
402
+ this.children.pop();
403
+ this.add( node );
404
+ return;
405
+ }
406
+ }
407
+
408
+ previous.next = node;
409
+ }
410
+
411
+ node.previous = previous;
412
+ node.parent = this;
413
+
414
+ this.children.push( node );
415
+
416
+ this._.hasInlineStarted = node.type == CKEDITOR.NODE_TEXT || ( node.type == CKEDITOR.NODE_ELEMENT && !node._.isBlockLike );
417
+ },
418
+
419
+ /**
420
+ * Writes the fragment HTML to a CKEDITOR.htmlWriter.
421
+ * @param {CKEDITOR.htmlWriter} writer The writer to which write the HTML.
422
+ * @example
423
+ * var writer = new CKEDITOR.htmlWriter();
424
+ * var fragment = CKEDITOR.htmlParser.fragment.fromHtml( '&lt;P&gt;&lt;B&gt;Example' );
425
+ * fragment.writeHtml( writer )
426
+ * alert( writer.getHtml() ); "&lt;p&gt;&lt;b&gt;Example&lt;/b&gt;&lt;/p&gt;"
427
+ */
428
+ writeHtml : function( writer, filter )
429
+ {
430
+ for ( var i = 0, len = this.children.length ; i < len ; i++ )
431
+ this.children[i].writeHtml( writer, filter );
432
+ }
433
+ };
434
+ })();
@@ -0,0 +1,55 @@
1
+ /*
2
+ Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ (function()
7
+ {
8
+ var spacesRegex = /[\t\r\n ]{2,}|[\t\r\n]/g;
9
+
10
+ /**
11
+ * A lightweight representation of HTML text.
12
+ * @constructor
13
+ * @example
14
+ */
15
+ CKEDITOR.htmlParser.text = function( value )
16
+ {
17
+ /**
18
+ * The text value.
19
+ * @type String
20
+ * @example
21
+ */
22
+ this.value = value;
23
+
24
+ /** @private */
25
+ this._ =
26
+ {
27
+ isBlockLike : false
28
+ };
29
+ };
30
+
31
+ CKEDITOR.htmlParser.text.prototype =
32
+ {
33
+ /**
34
+ * The node type. This is a constant value set to {@link CKEDITOR.NODE_TEXT}.
35
+ * @type Number
36
+ * @example
37
+ */
38
+ type : CKEDITOR.NODE_TEXT,
39
+
40
+ /**
41
+ * Writes the HTML representation of this text to a CKEDITOR.htmlWriter.
42
+ * @param {CKEDITOR.htmlWriter} writer The writer to which write the HTML.
43
+ * @example
44
+ */
45
+ writeHtml : function( writer, filter )
46
+ {
47
+ var text = this.value;
48
+
49
+ if ( filter && !( text = filter.onText( text, this ) ) )
50
+ return;
51
+
52
+ writer.text( text );
53
+ }
54
+ };
55
+ })();
@@ -0,0 +1,212 @@
1
+ /*
2
+ Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ /**
7
+ * HTML text parser.
8
+ * @constructor
9
+ * @example
10
+ */
11
+ CKEDITOR.htmlParser = function()
12
+ {
13
+ this._ =
14
+ {
15
+ htmlPartsRegex : new RegExp( '<(?:(?:\\/([^>]+)>)|(?:!--([\\S|\\s]*?)-->)|(?:([^\\s>]+)\\s*((?:(?:[^"\'>]+)|(?:"[^"]*")|(?:\'[^\']*\'))*)\\/?>))', 'g' )
16
+ };
17
+ };
18
+
19
+ (function()
20
+ {
21
+ var attribsRegex = /([\w:]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,
22
+ emptyAttribs = {checked:1,compact:1,declare:1,defer:1,disabled:1,ismap:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected:1};
23
+
24
+ CKEDITOR.htmlParser.prototype =
25
+ {
26
+ /**
27
+ * Function to be fired when a tag opener is found. This function
28
+ * should be overriden when using this class.
29
+ * @param {String} tagName The tag name. The name is guarantted to be
30
+ * lowercased.
31
+ * @param {Object} attributes An object containing all tag attributes. Each
32
+ * property in this object represent and attribute name and its
33
+ * value is the attribute value.
34
+ * @param {Boolean} selfClosing true if the tag closes itself, false if the
35
+ * tag doesn't.
36
+ * @example
37
+ * var parser = new CKEDITOR.htmlParser();
38
+ * parser.onTagOpen = function( tagName, attributes, selfClosing )
39
+ * {
40
+ * alert( tagName ); // e.g. "b"
41
+ * });
42
+ * parser.parse( "&lt;!-- Example --&gt;&lt;b&gt;Hello&lt;/b&gt;" );
43
+ */
44
+ onTagOpen : function() {},
45
+
46
+ /**
47
+ * Function to be fired when a tag closer is found. This function
48
+ * should be overriden when using this class.
49
+ * @param {String} tagName The tag name. The name is guarantted to be
50
+ * lowercased.
51
+ * @example
52
+ * var parser = new CKEDITOR.htmlParser();
53
+ * parser.onTagClose = function( tagName )
54
+ * {
55
+ * alert( tagName ); // e.g. "b"
56
+ * });
57
+ * parser.parse( "&lt;!-- Example --&gt;&lt;b&gt;Hello&lt;/b&gt;" );
58
+ */
59
+ onTagClose : function() {},
60
+
61
+ /**
62
+ * Function to be fired when text is found. This function
63
+ * should be overriden when using this class.
64
+ * @param {String} text The text found.
65
+ * @example
66
+ * var parser = new CKEDITOR.htmlParser();
67
+ * parser.onText = function( text )
68
+ * {
69
+ * alert( text ); // e.g. "Hello"
70
+ * });
71
+ * parser.parse( "&lt;!-- Example --&gt;&lt;b&gt;Hello&lt;/b&gt;" );
72
+ */
73
+ onText : function() {},
74
+
75
+ /**
76
+ * Function to be fired when CDATA section is found. This function
77
+ * should be overriden when using this class.
78
+ * @param {String} cdata The CDATA been found.
79
+ * @example
80
+ * var parser = new CKEDITOR.htmlParser();
81
+ * parser.onCDATA = function( cdata )
82
+ * {
83
+ * alert( cdata ); // e.g. "var hello;"
84
+ * });
85
+ * parser.parse( "&lt;script&gt;var hello;&lt;/script&gt;" );
86
+ */
87
+ onCDATA : function() {},
88
+
89
+ /**
90
+ * Function to be fired when a commend is found. This function
91
+ * should be overriden when using this class.
92
+ * @param {String} comment The comment text.
93
+ * @example
94
+ * var parser = new CKEDITOR.htmlParser();
95
+ * parser.onText = function( comment )
96
+ * {
97
+ * alert( comment ); // e.g. " Example "
98
+ * });
99
+ * parser.parse( "&lt;!-- Example --&gt;&lt;b&gt;Hello&lt;/b&gt;" );
100
+ */
101
+ onComment : function() {},
102
+
103
+ /**
104
+ * Parses text, looking for HTML tokens, like tag openers or closers,
105
+ * or comments. This function fires the onTagOpen, onTagClose, onText
106
+ * and onComment function during its execution.
107
+ * @param {String} html The HTML to be parsed.
108
+ * @example
109
+ * var parser = new CKEDITOR.htmlParser();
110
+ * // The onTagOpen, onTagClose, onText and onComment should be overriden
111
+ * // at this point.
112
+ * parser.parse( "&lt;!-- Example --&gt;&lt;b&gt;Hello&lt;/b&gt;" );
113
+ */
114
+ parse : function( html )
115
+ {
116
+ var parts,
117
+ tagName,
118
+ nextIndex = 0,
119
+ cdata; // The collected data inside a CDATA section.
120
+
121
+ while ( ( parts = this._.htmlPartsRegex.exec( html ) ) )
122
+ {
123
+ var tagIndex = parts.index;
124
+ if ( tagIndex > nextIndex )
125
+ {
126
+ var text = html.substring( nextIndex, tagIndex );
127
+
128
+ if ( cdata )
129
+ cdata.push( text );
130
+ else
131
+ this.onText( text );
132
+ }
133
+
134
+ nextIndex = this._.htmlPartsRegex.lastIndex;
135
+
136
+ /*
137
+ "parts" is an array with the following items:
138
+ 0 : The entire match for opening/closing tags and comments.
139
+ 1 : Group filled with the tag name for closing tags.
140
+ 2 : Group filled with the comment text.
141
+ 3 : Group filled with the tag name for opening tags.
142
+ 4 : Group filled with the attributes part of opening tags.
143
+ */
144
+
145
+ // Closing tag
146
+ if ( ( tagName = parts[ 1 ] ) )
147
+ {
148
+ tagName = tagName.toLowerCase();
149
+
150
+ if ( cdata && CKEDITOR.dtd.$cdata[ tagName ] )
151
+ {
152
+ // Send the CDATA data.
153
+ this.onCDATA( cdata.join('') );
154
+ cdata = null;
155
+ }
156
+
157
+ if ( !cdata )
158
+ {
159
+ this.onTagClose( tagName );
160
+ continue;
161
+ }
162
+ }
163
+
164
+ // If CDATA is enabled, just save the raw match.
165
+ if ( cdata )
166
+ {
167
+ cdata.push( parts[ 0 ] );
168
+ continue;
169
+ }
170
+
171
+ // Opening tag
172
+ if ( ( tagName = parts[ 3 ] ) )
173
+ {
174
+ tagName = tagName.toLowerCase();
175
+ var attribs = {},
176
+ attribMatch,
177
+ attribsPart = parts[ 4 ],
178
+ selfClosing = !!( attribsPart && attribsPart.charAt( attribsPart.length - 1 ) == '/' );
179
+
180
+ if ( attribsPart )
181
+ {
182
+ while ( ( attribMatch = attribsRegex.exec( attribsPart ) ) )
183
+ {
184
+ var attName = attribMatch[1].toLowerCase(),
185
+ attValue = attribMatch[2] || attribMatch[3] || attribMatch[4] || '';
186
+
187
+ if ( !attValue && emptyAttribs[ attName ] )
188
+ attribs[ attName ] = attName;
189
+ else
190
+ attribs[ attName ] = attValue;
191
+ }
192
+ }
193
+
194
+ this.onTagOpen( tagName, attribs, selfClosing );
195
+
196
+ // Open CDATA mode when finding the appropriate tags.
197
+ if ( !cdata && CKEDITOR.dtd.$cdata[ tagName ] )
198
+ cdata = [];
199
+
200
+ continue;
201
+ }
202
+
203
+ // Comment
204
+ if( ( tagName = parts[ 2 ] ) )
205
+ this.onComment( tagName );
206
+ }
207
+
208
+ if ( html.length > nextIndex )
209
+ this.onText( html.substring( nextIndex, html.length ) );
210
+ }
211
+ };
212
+ })();