browsercms 3.0.6 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (995) hide show
  1. data/app/controllers/cms/application_controller.rb +2 -12
  2. data/app/controllers/cms/content_block_controller.rb +1 -1
  3. data/app/controllers/cms/content_controller.rb +3 -83
  4. data/app/controllers/cms/dashboard_controller.rb +1 -1
  5. data/app/controllers/cms/pages_controller.rb +2 -0
  6. data/app/controllers/tests/pretend_controller.rb +32 -0
  7. data/app/helpers/application_helper.rb +2 -0
  8. data/app/helpers/cms/application_helper.rb +0 -32
  9. data/app/helpers/cms/form_builder.rb +131 -54
  10. data/app/helpers/cms/menu_helper.rb +13 -2
  11. data/app/helpers/cms/page_helper.rb +26 -2
  12. data/app/helpers/cms/rendering_helper.rb +42 -0
  13. data/app/models/forgot_password_mailer.rb +12 -0
  14. data/app/models/guest_user.rb +11 -3
  15. data/app/models/page.rb +1 -1
  16. data/app/models/page_template.rb +1 -18
  17. data/app/models/portlet.rb +10 -1
  18. data/app/models/section.rb +41 -33
  19. data/app/models/task.rb +32 -26
  20. data/app/models/templates.rb +31 -0
  21. data/app/models/user.rb +27 -9
  22. data/app/portlets/forgot_password_portlet.rb +29 -0
  23. data/app/portlets/reset_password_portlet.rb +28 -0
  24. data/app/views/cms/blocks/_toolbar_for_member.html.erb +1 -1
  25. data/app/views/cms/blocks/edit.html.erb +5 -0
  26. data/app/views/cms/blocks/show.html.erb +3 -0
  27. data/app/views/cms/dynamic_views/index.html.erb +3 -2
  28. data/app/views/cms/forgot_password_mailer/reset_password.text.html.erb +3 -0
  29. data/app/views/cms/forgot_password_mailer/reset_password.text.plain.erb +3 -0
  30. data/app/views/cms/form_builder/_cms_check_box.html.erb +7 -0
  31. data/app/views/cms/form_builder/_cms_drop_down.html.erb +0 -7
  32. data/app/views/cms/form_builder/_cms_fancy_drop_down.html.erb +9 -0
  33. data/app/views/cms/form_builder/_cms_file_field.html.erb +11 -7
  34. data/app/views/cms/form_builder/_cms_instructions.html.erb +4 -0
  35. data/app/views/cms/form_builder/_cms_template_editor.html.erb +8 -0
  36. data/app/views/cms/groups/_permissions.html.erb +1 -1
  37. data/app/views/cms/page_routes/index.html.erb +2 -2
  38. data/app/views/cms/page_routes/show.html.erb +2 -2
  39. data/app/views/cms/redirects/index.html.erb +1 -1
  40. data/app/views/layouts/cms/_footer.erb +1 -1
  41. data/app/views/layouts/cms/_head.html.erb +1 -1
  42. data/app/views/layouts/cms/content_library.html.erb +7 -7
  43. data/app/views/layouts/cms/thickbox.html.erb +2 -2
  44. data/app/views/portlets/forgot_password/_form.html.erb +6 -0
  45. data/app/views/portlets/forgot_password/render.html.erb +14 -0
  46. data/app/views/portlets/reset_password/_form.html.erb +3 -0
  47. data/app/views/portlets/reset_password/render.html.erb +24 -0
  48. data/app/views/tests/pretend/open_with_layout.html.erb +5 -0
  49. data/bin/bcms +6 -0
  50. data/bin/browsercms +73 -0
  51. data/browsercms.gemspec +493 -379
  52. data/db/demo/page_templates/sub_page.html.erb +1 -1
  53. data/db/migrate/20081114172307_load_seed_data.rb +0 -29
  54. data/db/migrate/20091109175123_browsercms_3_0_5.rb +9 -0
  55. data/doc/app/classes/AbstractFileBlock.html +32 -6
  56. data/doc/app/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html +136 -85
  57. data/doc/app/classes/ActiveSupport/Cache/FileStore.html +6 -6
  58. data/doc/app/classes/ActsAsList.html +6 -6
  59. data/doc/app/classes/ActsAsList/ClassMethods.html +8 -8
  60. data/doc/app/classes/ActsAsList/InstanceMethods.html +143 -119
  61. data/doc/app/classes/ApplicationHelper.html +4 -0
  62. data/doc/app/classes/Attachment.html +134 -134
  63. data/doc/app/classes/Category.html +24 -24
  64. data/doc/app/classes/CategoryType.html +18 -18
  65. data/doc/app/classes/Cms.html +227 -94
  66. data/doc/app/classes/Cms/Acts.html +5 -0
  67. data/doc/app/classes/Cms/Acts/ContentBlock.html +6 -6
  68. data/doc/app/classes/Cms/Acts/ContentBlock/MacroMethods.html +6 -6
  69. data/doc/app/classes/Cms/Acts/ContentBlock/MacroMethods/InstanceMethods.html +6 -6
  70. data/doc/app/classes/Cms/Acts/ContentPage.html +187 -0
  71. data/doc/app/classes/Cms/Acts/ContentPage/ClassMethods.html +188 -0
  72. data/doc/app/classes/Cms/ApplicationController.html +69 -118
  73. data/doc/app/classes/Cms/ApplicationHelper.html +277 -393
  74. data/doc/app/classes/Cms/AttachmentsController.html +6 -6
  75. data/doc/app/classes/Cms/Authentication/Controller.html +226 -228
  76. data/doc/app/classes/Cms/Authentication/Model.html +6 -6
  77. data/doc/app/classes/Cms/Authentication/Model/ClassMethods.html +30 -30
  78. data/doc/app/classes/Cms/Authentication/Model/InstanceMethods.html +66 -66
  79. data/doc/app/classes/Cms/Behaviors/Archiving.html +6 -6
  80. data/doc/app/classes/Cms/Behaviors/Archiving/InstanceMethods.html +24 -24
  81. data/doc/app/classes/Cms/Behaviors/Archiving/MacroMethods.html +12 -12
  82. data/doc/app/classes/Cms/Behaviors/Attaching.html +6 -6
  83. data/doc/app/classes/Cms/Behaviors/Attaching/InstanceMethods.html +123 -123
  84. data/doc/app/classes/Cms/Behaviors/Attaching/MacroMethods.html +12 -12
  85. data/doc/app/classes/Cms/Behaviors/Categorizing.html +6 -6
  86. data/doc/app/classes/Cms/Behaviors/Categorizing/InstanceMethods.html +6 -6
  87. data/doc/app/classes/Cms/Behaviors/Categorizing/MacroMethods.html +12 -12
  88. data/doc/app/classes/Cms/Behaviors/ClassMethods.html +60 -60
  89. data/doc/app/classes/Cms/Behaviors/Connecting.html +6 -6
  90. data/doc/app/classes/Cms/Behaviors/Connecting/ClassMethods.html +18 -18
  91. data/doc/app/classes/Cms/Behaviors/Connecting/InstanceMethods.html +42 -42
  92. data/doc/app/classes/Cms/Behaviors/Connecting/MacroMethods.html +12 -12
  93. data/doc/app/classes/Cms/Behaviors/DynamicAttributes.html +6 -6
  94. data/doc/app/classes/Cms/Behaviors/DynamicAttributes/InstanceMethods.html +14 -14
  95. data/doc/app/classes/Cms/Behaviors/DynamicAttributes/MacroMethods.html +12 -12
  96. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange.html +12 -12
  97. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange/InstanceMethods.html +6 -6
  98. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange/MacroMethods.html +12 -12
  99. data/doc/app/classes/Cms/Behaviors/Hiding.html +6 -6
  100. data/doc/app/classes/Cms/Behaviors/Hiding/InstanceMethods.html +24 -24
  101. data/doc/app/classes/Cms/Behaviors/Hiding/MacroMethods.html +12 -12
  102. data/doc/app/classes/Cms/Behaviors/InstanceMethods.html +127 -74
  103. data/doc/app/classes/Cms/Behaviors/Pagination.html +6 -6
  104. data/doc/app/classes/Cms/Behaviors/Pagination/ClassMethods.html +12 -12
  105. data/doc/app/classes/Cms/Behaviors/Pagination/Collection.html +55 -55
  106. data/doc/app/classes/Cms/Behaviors/Pagination/InvalidPage.html +6 -6
  107. data/doc/app/classes/Cms/Behaviors/Publishing.html +12 -12
  108. data/doc/app/classes/Cms/Behaviors/Publishing/InstanceMethods.html +119 -119
  109. data/doc/app/classes/Cms/Behaviors/Publishing/MacroMethods.html +25 -14
  110. data/doc/app/classes/Cms/Behaviors/Rendering.html +10 -13
  111. data/doc/app/classes/Cms/Behaviors/Rendering/MacroMethods.html +33 -33
  112. data/doc/app/classes/Cms/Behaviors/Searching.html +6 -6
  113. data/doc/app/classes/Cms/Behaviors/Searching/ClassMethods.html +12 -12
  114. data/doc/app/classes/Cms/Behaviors/Searching/MacroMethods.html +12 -12
  115. data/doc/app/classes/Cms/Behaviors/SoftDeleting.html +6 -6
  116. data/doc/app/classes/Cms/Behaviors/SoftDeleting/ClassMethods.html +24 -24
  117. data/doc/app/classes/Cms/Behaviors/SoftDeleting/InstanceMethods.html +30 -30
  118. data/doc/app/classes/Cms/Behaviors/SoftDeleting/MacroMethods.html +12 -12
  119. data/doc/app/classes/Cms/Behaviors/Taggable.html +6 -6
  120. data/doc/app/classes/Cms/Behaviors/Taggable/ClassMethods.html +12 -12
  121. data/doc/app/classes/Cms/Behaviors/Taggable/InstanceMethods.html +34 -33
  122. data/doc/app/classes/Cms/Behaviors/Taggable/MacroMethods.html +12 -12
  123. data/doc/app/classes/Cms/Behaviors/Userstamping.html +6 -6
  124. data/doc/app/classes/Cms/Behaviors/Userstamping/InstanceMethods.html +6 -6
  125. data/doc/app/classes/Cms/Behaviors/Userstamping/MacroMethods.html +12 -12
  126. data/doc/app/classes/Cms/Behaviors/Versioning.html +6 -6
  127. data/doc/app/classes/Cms/Behaviors/Versioning/ClassMethods.html +30 -30
  128. data/doc/app/classes/Cms/Behaviors/Versioning/InstanceMethods.html +322 -294
  129. data/doc/app/classes/Cms/Behaviors/Versioning/MacroMethods.html +31 -31
  130. data/doc/app/classes/Cms/CacheController.html +12 -12
  131. data/doc/app/classes/Cms/Caching.html +12 -12
  132. data/doc/app/classes/Cms/CategoriesController.html +35 -0
  133. data/doc/app/classes/Cms/CategoryTypesController.html +6 -6
  134. data/doc/app/classes/Cms/ConnectorsController.html +19 -19
  135. data/doc/app/classes/Cms/ContentBlockController.html +486 -440
  136. data/doc/app/classes/Cms/ContentController.html +48 -121
  137. data/doc/app/classes/Cms/ContentRenderingSupport.html +222 -0
  138. data/doc/app/classes/Cms/ContentTypesController.html +6 -6
  139. data/doc/app/classes/Cms/DashboardController.html +12 -11
  140. data/doc/app/classes/Cms/DataLoader.html +12 -12
  141. data/doc/app/classes/Cms/DomainSupport.html +166 -0
  142. data/doc/app/classes/Cms/DynamicViewsController.html +54 -54
  143. data/doc/app/classes/Cms/EmailMessagesController.html +12 -12
  144. data/doc/app/classes/Cms/ErrorHandling.html +50 -23
  145. data/doc/app/classes/Cms/Errors/AccessDenied.html +10 -10
  146. data/doc/app/classes/Cms/Extensions/ActionView/Base.html +6 -6
  147. data/doc/app/classes/Cms/Extensions/ActiveRecord/Base.html +6 -6
  148. data/doc/app/classes/Cms/Extensions/ActiveRecord/Errors.html +6 -6
  149. data/doc/app/classes/Cms/Extensions/Hash.html +12 -12
  150. data/doc/app/classes/Cms/Extensions/Integer.html +6 -6
  151. data/doc/app/classes/Cms/Extensions/NilClass.html +24 -24
  152. data/doc/app/classes/Cms/Extensions/String.html +24 -24
  153. data/doc/app/classes/Cms/FormBuilder.html +258 -90
  154. data/doc/app/classes/Cms/FormTagHelper.html +30 -30
  155. data/doc/app/classes/Cms/GroupsController.html +24 -24
  156. data/doc/app/classes/Cms/HomeController.html +6 -6
  157. data/doc/app/classes/Cms/LinksController.html +64 -62
  158. data/doc/app/classes/Cms/MenuHelper.html +210 -165
  159. data/doc/app/classes/Cms/PageHelper.html +178 -91
  160. data/doc/app/classes/Cms/PageRouteOptionsController.html +54 -54
  161. data/doc/app/classes/Cms/PageRoutesController.html +36 -36
  162. data/doc/app/classes/Cms/PagesController.html +111 -109
  163. data/doc/app/classes/Cms/PathHelper.html +36 -36
  164. data/doc/app/classes/Cms/PortletController.html +6 -6
  165. data/doc/app/classes/Cms/PortletsController.html +43 -43
  166. data/doc/app/classes/Cms/RedirectsController.html +12 -12
  167. data/doc/app/classes/Cms/RenderingHelper.html +214 -0
  168. data/doc/app/classes/Cms/ResourceController.html +114 -114
  169. data/doc/app/classes/Cms/Routes.html +151 -143
  170. data/doc/app/classes/Cms/RoutesController.html +6 -6
  171. data/doc/app/classes/Cms/SectionNodesController.html +36 -36
  172. data/doc/app/classes/Cms/SectionNodesHelper.html +6 -6
  173. data/doc/app/classes/Cms/SectionsController.html +212 -188
  174. data/doc/app/classes/Cms/SessionsController.html +68 -39
  175. data/doc/app/classes/Cms/TagsController.html +30 -6
  176. data/doc/app/classes/Cms/TasksController.html +18 -18
  177. data/doc/app/classes/Cms/TemplateSupport.html +185 -0
  178. data/doc/app/classes/Cms/ToolbarController.html +6 -6
  179. data/doc/app/classes/Cms/UsersController.html +129 -153
  180. data/doc/app/classes/CommandLine.html +226 -0
  181. data/doc/app/classes/Connector.html +75 -71
  182. data/doc/app/classes/ContentType.html +72 -72
  183. data/doc/app/classes/DynamicPortlet.html +6 -6
  184. data/doc/app/classes/DynamicView.html +130 -133
  185. data/doc/app/classes/EmailMessage.html +24 -24
  186. data/doc/app/classes/EmailMessageMailer.html +6 -6
  187. data/doc/app/classes/EmailPagePortlet.html +12 -12
  188. data/doc/app/classes/FileBlock.html +18 -18
  189. data/doc/app/classes/ForgotPasswordMailer.html +151 -0
  190. data/doc/app/classes/ForgotPasswordPortlet.html +162 -0
  191. data/doc/app/classes/Group.html +72 -20
  192. data/doc/app/classes/GuestUser.html +138 -93
  193. data/doc/app/classes/HtmlBlock.html +12 -12
  194. data/doc/app/classes/ImageBlock.html +18 -18
  195. data/doc/app/classes/InitialData.html +6 -6
  196. data/doc/app/classes/Link.html +30 -30
  197. data/doc/app/classes/LoginPortlet.html +6 -6
  198. data/doc/app/classes/Page.html +185 -185
  199. data/doc/app/classes/PagePartial.html +18 -18
  200. data/doc/app/classes/PageRoute.html +48 -48
  201. data/doc/app/classes/PageTemplate.html +60 -78
  202. data/doc/app/classes/Portlet.html +339 -267
  203. data/doc/app/classes/ResetPasswordPortlet.html +169 -0
  204. data/doc/app/classes/Section.html +257 -200
  205. data/doc/app/classes/SectionNode.html +60 -60
  206. data/doc/app/classes/Sequence.html +6 -6
  207. data/doc/app/classes/Site.html +30 -30
  208. data/doc/app/classes/Tag.html +31 -31
  209. data/doc/app/classes/TagCloudPortlet.html +12 -12
  210. data/doc/app/classes/Tagging.html +6 -6
  211. data/doc/app/classes/Task.html +37 -37
  212. data/doc/app/classes/Templates.html +151 -0
  213. data/doc/app/classes/Tests.html +107 -0
  214. data/doc/app/classes/Tests/PretendController.html +275 -0
  215. data/doc/app/classes/User.html +344 -205
  216. data/doc/app/created.rid +1 -1
  217. data/doc/app/files/app/controllers/cms/application_controller_rb.html +1 -1
  218. data/doc/app/files/app/controllers/cms/categories_controller_rb.html +1 -1
  219. data/doc/app/files/app/controllers/cms/connectors_controller_rb.html +1 -1
  220. data/doc/app/files/app/controllers/cms/content_block_controller_rb.html +1 -1
  221. data/doc/app/files/app/controllers/cms/content_controller_rb.html +1 -1
  222. data/doc/app/files/app/controllers/cms/dashboard_controller_rb.html +1 -1
  223. data/doc/app/files/app/controllers/cms/error_handling_rb.html +1 -1
  224. data/doc/app/files/app/controllers/cms/links_controller_rb.html +1 -1
  225. data/doc/app/files/app/controllers/cms/pages_controller_rb.html +1 -1
  226. data/doc/app/files/app/controllers/cms/portlets_controller_rb.html +1 -1
  227. data/doc/app/files/app/controllers/cms/section_nodes_controller_rb.html +1 -1
  228. data/doc/app/files/app/controllers/cms/sections_controller_rb.html +1 -1
  229. data/doc/app/files/app/controllers/cms/sessions_controller_rb.html +1 -1
  230. data/doc/app/files/app/controllers/cms/tags_controller_rb.html +1 -1
  231. data/doc/app/files/app/controllers/cms/users_controller_rb.html +1 -1
  232. data/doc/app/files/app/controllers/tests/pretend_controller_rb.html +112 -0
  233. data/doc/app/files/app/helpers/application_helper_rb.html +5 -1
  234. data/doc/app/files/app/helpers/cms/application_helper_rb.html +1 -1
  235. data/doc/app/files/app/helpers/cms/form_builder_rb.html +8 -1
  236. data/doc/app/files/app/helpers/cms/menu_helper_rb.html +1 -1
  237. data/doc/app/files/app/helpers/cms/page_helper_rb.html +1 -1
  238. data/doc/app/files/app/helpers/cms/rendering_helper_rb.html +111 -0
  239. data/doc/app/files/app/helpers/cms/template_support_rb.html +108 -0
  240. data/doc/app/files/app/models/abstract_file_block_rb.html +1 -1
  241. data/doc/app/files/app/models/attachment_rb.html +2 -2
  242. data/doc/app/files/app/models/connector_rb.html +1 -1
  243. data/doc/app/files/app/models/content_type_rb.html +1 -1
  244. data/doc/app/files/app/models/dynamic_view_rb.html +1 -1
  245. data/doc/app/files/app/models/forgot_password_mailer_rb.html +101 -0
  246. data/doc/app/files/app/models/group_rb.html +10 -1
  247. data/doc/app/files/app/models/guest_user_rb.html +14 -1
  248. data/doc/app/files/app/models/link_rb.html +1 -1
  249. data/doc/app/files/app/models/page_rb.html +1 -1
  250. data/doc/app/files/app/models/page_template_rb.html +1 -1
  251. data/doc/app/files/app/models/portlet_rb.html +1 -1
  252. data/doc/app/files/app/models/section_rb.html +1 -1
  253. data/doc/app/files/app/models/tag_rb.html +1 -1
  254. data/doc/app/files/app/models/task_rb.html +1 -1
  255. data/doc/app/files/app/models/templates_rb.html +108 -0
  256. data/doc/app/files/app/models/user_rb.html +1 -1
  257. data/doc/app/files/app/portlets/forgot_password_portlet_rb.html +108 -0
  258. data/doc/app/files/app/portlets/reset_password_portlet_rb.html +101 -0
  259. data/doc/app/files/doc/README_FOR_APP.html +7 -6
  260. data/doc/app/files/lib/acts_as_list_rb.html +1 -1
  261. data/doc/app/files/lib/browsercms_rb.html +1 -1
  262. data/doc/app/files/lib/cms/acts/content_block_rb.html +1 -1
  263. data/doc/app/files/lib/cms/acts/content_page_rb.html +125 -0
  264. data/doc/app/files/lib/cms/authentication/controller_rb.html +61 -1
  265. data/doc/app/files/lib/cms/behaviors/attaching_rb.html +1 -1
  266. data/doc/app/files/lib/cms/behaviors/publishing_rb.html +1 -1
  267. data/doc/app/files/lib/cms/behaviors/rendering_rb.html +1 -1
  268. data/doc/app/files/lib/cms/behaviors/taggable_rb.html +1 -1
  269. data/doc/app/files/lib/cms/behaviors/versioning_rb.html +1 -1
  270. data/doc/app/files/lib/cms/content_rendering_support_rb.html +108 -0
  271. data/doc/app/files/lib/cms/domain_support_rb.html +108 -0
  272. data/doc/app/files/lib/cms/extensions/active_record/connection_adapters/abstract/schema_statements_rb.html +1 -1
  273. data/doc/app/files/lib/cms/init_rb.html +8 -1
  274. data/doc/app/files/lib/cms/routes_rb.html +1 -1
  275. data/doc/app/files/lib/cms/version_rb.html +107 -0
  276. data/doc/app/files/lib/command_line_rb.html +101 -0
  277. data/doc/app/fr_class_index.html +13 -0
  278. data/doc/app/fr_file_index.html +12 -0
  279. data/doc/app/fr_method_index.html +761 -712
  280. data/doc/guides/html/authentication.html +201 -0
  281. data/doc/guides/html/build_it_yourself.html +21 -18
  282. data/doc/guides/html/building_modules.html +107 -51
  283. data/doc/guides/html/building_templates.html +507 -0
  284. data/doc/guides/html/content_blocks.html +477 -0
  285. data/doc/guides/html/customizing_browsercms.html +173 -0
  286. data/doc/guides/html/deployment_guide.html +31 -5
  287. data/doc/guides/html/getting_started.html +62 -27
  288. data/doc/guides/html/images/content_blocks/add_field_to_form.png +0 -0
  289. data/doc/guides/html/images/content_blocks/add_second_block.png +0 -0
  290. data/doc/guides/html/images/nfl_sitemap.png +0 -0
  291. data/doc/guides/html/index.html +31 -22
  292. data/doc/guides/html/installing_modules.html +25 -17
  293. data/doc/guides/html/portlets.html +238 -0
  294. data/doc/guides/html/user_guide.html +11 -2
  295. data/doc/guides/html/{designer_guide.html → writing_guides.html} +21 -20
  296. data/lib/cms/acts/content_page.rb +69 -0
  297. data/lib/cms/authentication/controller.rb +1 -1
  298. data/lib/cms/behaviors/rendering.rb +9 -2
  299. data/lib/cms/behaviors/versioning.rb +1 -1
  300. data/lib/cms/content_rendering_support.rb +96 -0
  301. data/lib/cms/domain_support.rb +20 -0
  302. data/lib/cms/init.rb +22 -5
  303. data/lib/cms/version.rb +6 -0
  304. data/lib/command_line.rb +39 -0
  305. data/lib/tasks/cms.rake +4 -2
  306. data/public/bcms/ckeditor/ckeditor.js +108 -0
  307. data/public/bcms/ckeditor/config.js +18 -0
  308. data/public/bcms/ckeditor/core/_bootstrap.js +64 -0
  309. data/public/bcms/ckeditor/core/ajax.js +143 -0
  310. data/public/bcms/ckeditor/core/ckeditor.js +96 -0
  311. data/public/bcms/ckeditor/core/ckeditor_base.js +190 -0
  312. data/public/bcms/ckeditor/core/ckeditor_basic.js +241 -0
  313. data/public/bcms/ckeditor/core/command.js +70 -0
  314. data/public/bcms/ckeditor/core/commanddefinition.js +72 -0
  315. data/public/bcms/ckeditor/core/config.js +287 -0
  316. data/public/bcms/ckeditor/core/dom.js +21 -0
  317. data/public/bcms/ckeditor/core/dom/document.js +210 -0
  318. data/public/bcms/ckeditor/core/dom/documentfragment.js +49 -0
  319. data/public/bcms/ckeditor/core/dom/domobject.js +204 -0
  320. data/public/bcms/ckeditor/core/dom/element.js +1384 -0
  321. data/public/bcms/ckeditor/core/dom/elementpath.js +104 -0
  322. data/public/bcms/ckeditor/core/dom/event.js +137 -0
  323. data/public/bcms/ckeditor/core/dom/node.js +649 -0
  324. data/public/bcms/ckeditor/core/dom/nodelist.js +23 -0
  325. data/public/bcms/ckeditor/core/dom/range.js +1668 -0
  326. data/public/bcms/ckeditor/core/dom/text.js +123 -0
  327. data/public/bcms/ckeditor/core/dom/walker.js +411 -0
  328. data/public/bcms/ckeditor/core/dom/window.js +96 -0
  329. data/public/bcms/ckeditor/core/dtd.js +200 -0
  330. data/public/bcms/ckeditor/core/editor.js +650 -0
  331. data/public/bcms/ckeditor/core/editor_basic.js +178 -0
  332. data/public/bcms/ckeditor/core/env.js +219 -0
  333. data/public/bcms/ckeditor/core/event.js +335 -0
  334. data/public/bcms/ckeditor/core/eventInfo.js +120 -0
  335. data/public/bcms/ckeditor/core/focusmanager.js +123 -0
  336. data/public/bcms/ckeditor/core/htmlparser.js +212 -0
  337. data/public/bcms/ckeditor/core/htmlparser/basicwriter.js +140 -0
  338. data/public/bcms/ckeditor/core/htmlparser/cdata.js +44 -0
  339. data/public/bcms/ckeditor/core/htmlparser/comment.js +59 -0
  340. data/public/bcms/ckeditor/core/htmlparser/element.js +196 -0
  341. data/public/bcms/ckeditor/core/htmlparser/filter.js +233 -0
  342. data/public/bcms/ckeditor/core/htmlparser/fragment.js +434 -0
  343. data/public/bcms/ckeditor/core/htmlparser/text.js +55 -0
  344. data/public/bcms/ckeditor/core/imagecacher.js +58 -0
  345. data/public/bcms/ckeditor/core/lang.js +147 -0
  346. data/public/bcms/ckeditor/core/loader.js +238 -0
  347. data/public/bcms/ckeditor/core/plugindefinition.js +66 -0
  348. data/public/bcms/ckeditor/core/plugins.js +82 -0
  349. data/public/bcms/ckeditor/core/resourcemanager.js +233 -0
  350. data/public/bcms/ckeditor/core/scriptloader.js +194 -0
  351. data/public/bcms/ckeditor/core/skins.js +185 -0
  352. data/public/bcms/ckeditor/core/test.js +184 -0
  353. data/public/bcms/ckeditor/core/themes.js +18 -0
  354. data/public/bcms/ckeditor/core/tools.js +531 -0
  355. data/public/bcms/ckeditor/core/ui.js +106 -0
  356. data/public/bcms/ckeditor/core/xml.js +165 -0
  357. data/public/bcms/ckeditor/editor.js +51 -0
  358. data/public/bcms/ckeditor/lang/_languages.js +82 -0
  359. data/public/bcms/ckeditor/lang/_translationstatus.txt +59 -0
  360. data/public/bcms/ckeditor/lang/af.js +674 -0
  361. data/public/bcms/ckeditor/lang/ar.js +674 -0
  362. data/public/bcms/ckeditor/lang/bg.js +674 -0
  363. data/public/bcms/ckeditor/lang/bn.js +674 -0
  364. data/public/bcms/ckeditor/lang/bs.js +674 -0
  365. data/public/bcms/ckeditor/lang/ca.js +674 -0
  366. data/public/bcms/ckeditor/lang/cs.js +674 -0
  367. data/public/bcms/ckeditor/lang/da.js +674 -0
  368. data/public/bcms/ckeditor/lang/de.js +674 -0
  369. data/public/bcms/ckeditor/lang/el.js +674 -0
  370. data/public/bcms/ckeditor/lang/en-au.js +674 -0
  371. data/public/bcms/ckeditor/lang/en-ca.js +674 -0
  372. data/public/bcms/ckeditor/lang/en-uk.js +674 -0
  373. data/public/bcms/ckeditor/lang/en.js +674 -0
  374. data/public/bcms/ckeditor/lang/eo.js +674 -0
  375. data/public/bcms/ckeditor/lang/es.js +674 -0
  376. data/public/bcms/ckeditor/lang/et.js +674 -0
  377. data/public/bcms/ckeditor/lang/eu.js +674 -0
  378. data/public/bcms/ckeditor/lang/fa.js +674 -0
  379. data/public/bcms/ckeditor/lang/fi.js +674 -0
  380. data/public/bcms/ckeditor/lang/fo.js +674 -0
  381. data/public/bcms/ckeditor/lang/fr-ca.js +674 -0
  382. data/public/bcms/ckeditor/lang/fr.js +674 -0
  383. data/public/bcms/ckeditor/lang/gl.js +674 -0
  384. data/public/bcms/ckeditor/lang/gu.js +674 -0
  385. data/public/bcms/ckeditor/lang/he.js +674 -0
  386. data/public/bcms/ckeditor/lang/hi.js +674 -0
  387. data/public/bcms/ckeditor/lang/hr.js +674 -0
  388. data/public/bcms/ckeditor/lang/hu.js +674 -0
  389. data/public/bcms/ckeditor/lang/is.js +674 -0
  390. data/public/bcms/ckeditor/lang/it.js +674 -0
  391. data/public/bcms/ckeditor/lang/ja.js +674 -0
  392. data/public/bcms/ckeditor/lang/km.js +674 -0
  393. data/public/bcms/ckeditor/lang/ko.js +674 -0
  394. data/public/bcms/ckeditor/lang/lt.js +674 -0
  395. data/public/bcms/ckeditor/lang/lv.js +674 -0
  396. data/public/bcms/ckeditor/lang/mn.js +674 -0
  397. data/public/bcms/ckeditor/lang/ms.js +674 -0
  398. data/public/bcms/ckeditor/lang/nb.js +674 -0
  399. data/public/bcms/ckeditor/lang/nl.js +674 -0
  400. data/public/bcms/ckeditor/lang/no.js +674 -0
  401. data/public/bcms/ckeditor/lang/pl.js +674 -0
  402. data/public/bcms/ckeditor/lang/pt-br.js +674 -0
  403. data/public/bcms/ckeditor/lang/pt.js +674 -0
  404. data/public/bcms/ckeditor/lang/ro.js +674 -0
  405. data/public/bcms/ckeditor/lang/ru.js +674 -0
  406. data/public/bcms/ckeditor/lang/sk.js +674 -0
  407. data/public/bcms/ckeditor/lang/sl.js +674 -0
  408. data/public/bcms/ckeditor/lang/sr-latn.js +674 -0
  409. data/public/bcms/ckeditor/lang/sr.js +674 -0
  410. data/public/bcms/ckeditor/lang/sv.js +674 -0
  411. data/public/bcms/ckeditor/lang/th.js +674 -0
  412. data/public/bcms/ckeditor/lang/tr.js +674 -0
  413. data/public/bcms/ckeditor/lang/uk.js +674 -0
  414. data/public/bcms/ckeditor/lang/vi.js +674 -0
  415. data/public/bcms/ckeditor/lang/zh-cn.js +674 -0
  416. data/public/bcms/ckeditor/lang/zh.js +674 -0
  417. data/public/bcms/ckeditor/plugins/about/dialogs/about.js +73 -0
  418. data/public/bcms/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  419. data/public/bcms/ckeditor/plugins/about/plugin.js +22 -0
  420. data/public/bcms/ckeditor/plugins/basicstyles/plugin.js +50 -0
  421. data/public/bcms/ckeditor/plugins/blockquote/plugin.js +301 -0
  422. data/public/bcms/ckeditor/plugins/button/plugin.js +264 -0
  423. data/public/bcms/ckeditor/plugins/clipboard/dialogs/paste.js +167 -0
  424. data/public/bcms/ckeditor/plugins/clipboard/plugin.js +208 -0
  425. data/public/bcms/ckeditor/plugins/colorbutton/plugin.js +202 -0
  426. data/public/bcms/ckeditor/plugins/contextmenu/plugin.js +178 -0
  427. data/public/bcms/ckeditor/plugins/dialog/dialogDefinition.js +315 -0
  428. data/public/bcms/ckeditor/plugins/dialog/plugin.js +2742 -0
  429. data/public/bcms/ckeditor/plugins/dialogui/plugin.js +1319 -0
  430. data/public/bcms/ckeditor/plugins/domiterator/plugin.js +354 -0
  431. data/public/bcms/ckeditor/plugins/editingblock/plugin.js +236 -0
  432. data/public/bcms/ckeditor/plugins/elementspath/plugin.js +182 -0
  433. data/public/bcms/ckeditor/plugins/enterkey/plugin.js +324 -0
  434. data/public/bcms/ckeditor/plugins/entities/plugin.js +200 -0
  435. data/public/bcms/ckeditor/plugins/fakeobjects/plugin.js +111 -0
  436. data/public/bcms/ckeditor/plugins/filebrowser/plugin.js +383 -0
  437. data/public/bcms/ckeditor/plugins/find/dialogs/find.js +843 -0
  438. data/public/bcms/ckeditor/plugins/find/plugin.js +46 -0
  439. data/public/bcms/ckeditor/plugins/flash/dialogs/flash.js +682 -0
  440. data/public/bcms/ckeditor/plugins/flash/images/placeholder.png +0 -0
  441. data/public/bcms/ckeditor/plugins/flash/plugin.js +165 -0
  442. data/public/bcms/ckeditor/plugins/floatpanel/plugin.js +325 -0
  443. data/public/bcms/ckeditor/plugins/font/plugin.js +227 -0
  444. data/public/bcms/ckeditor/plugins/format/plugin.js +191 -0
  445. data/public/bcms/ckeditor/plugins/forms/dialogs/button.js +135 -0
  446. data/public/bcms/ckeditor/plugins/forms/dialogs/checkbox.js +138 -0
  447. data/public/bcms/ckeditor/plugins/forms/dialogs/form.js +177 -0
  448. data/public/bcms/ckeditor/plugins/forms/dialogs/hiddenfield.js +91 -0
  449. data/public/bcms/ckeditor/plugins/forms/dialogs/radio.js +135 -0
  450. data/public/bcms/ckeditor/plugins/forms/dialogs/select.js +541 -0
  451. data/public/bcms/ckeditor/plugins/forms/dialogs/textarea.js +114 -0
  452. data/public/bcms/ckeditor/plugins/forms/dialogs/textfield.js +193 -0
  453. data/public/bcms/ckeditor/plugins/forms/plugin.js +193 -0
  454. data/public/bcms/ckeditor/plugins/horizontalrule/plugin.js +35 -0
  455. data/public/bcms/ckeditor/plugins/htmldataprocessor/plugin.js +373 -0
  456. data/public/bcms/ckeditor/plugins/htmlwriter/plugin.js +289 -0
  457. data/public/bcms/ckeditor/plugins/iframedialog/plugin.js +136 -0
  458. data/public/bcms/ckeditor/plugins/image/dialogs/image.js +1225 -0
  459. data/public/bcms/ckeditor/plugins/image/plugin.js +64 -0
  460. data/public/bcms/ckeditor/plugins/indent/plugin.js +323 -0
  461. data/public/bcms/ckeditor/plugins/justify/plugin.js +164 -0
  462. data/public/bcms/ckeditor/plugins/keystrokes/plugin.js +217 -0
  463. data/public/bcms/ckeditor/plugins/link/dialogs/anchor.js +98 -0
  464. data/public/bcms/ckeditor/plugins/link/dialogs/link.js +1217 -0
  465. data/public/{fckeditor/editor → bcms/ckeditor/plugins/link}/images/anchor.gif +0 -0
  466. data/public/bcms/ckeditor/plugins/link/plugin.js +188 -0
  467. data/public/bcms/ckeditor/plugins/list/plugin.js +570 -0
  468. data/public/bcms/ckeditor/plugins/listblock/plugin.js +231 -0
  469. data/public/bcms/ckeditor/plugins/maximize/plugin.js +267 -0
  470. data/public/bcms/ckeditor/plugins/menu/plugin.js +377 -0
  471. data/public/bcms/ckeditor/plugins/menubutton/plugin.js +93 -0
  472. data/public/bcms/ckeditor/plugins/newpage/plugin.js +65 -0
  473. data/public/{fckeditor/editor/css/images/fck_pagebreak.gif → bcms/ckeditor/plugins/pagebreak/images/pagebreak.gif} +0 -0
  474. data/public/bcms/ckeditor/plugins/pagebreak/plugin.js +96 -0
  475. data/public/bcms/ckeditor/plugins/panel/plugin.js +330 -0
  476. data/public/bcms/ckeditor/plugins/panelbutton/plugin.js +140 -0
  477. data/public/bcms/ckeditor/plugins/pastefromword/dialogs/pastefromword.js +307 -0
  478. data/public/bcms/ckeditor/plugins/pastefromword/plugin.js +54 -0
  479. data/public/bcms/ckeditor/plugins/pastetext/dialogs/pastetext.js +65 -0
  480. data/public/bcms/ckeditor/plugins/pastetext/plugin.js +142 -0
  481. data/public/bcms/ckeditor/plugins/popup/plugin.js +62 -0
  482. data/public/bcms/ckeditor/plugins/preview/plugin.js +97 -0
  483. data/public/bcms/ckeditor/plugins/print/plugin.js +41 -0
  484. data/public/bcms/ckeditor/plugins/removeformat/plugin.js +132 -0
  485. data/public/bcms/ckeditor/plugins/resize/plugin.js +115 -0
  486. data/public/bcms/ckeditor/plugins/richcombo/plugin.js +357 -0
  487. data/public/bcms/ckeditor/plugins/save/plugin.js +55 -0
  488. data/public/bcms/ckeditor/plugins/scayt/dialogs/options.js +494 -0
  489. data/public/bcms/ckeditor/plugins/scayt/dialogs/toolbar.css +71 -0
  490. data/public/bcms/ckeditor/plugins/scayt/plugin.js +511 -0
  491. data/public/bcms/ckeditor/plugins/selection/plugin.js +1072 -0
  492. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_address.png +0 -0
  493. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_blockquote.png +0 -0
  494. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_div.png +0 -0
  495. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h1.png +0 -0
  496. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h2.png +0 -0
  497. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h3.png +0 -0
  498. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h4.png +0 -0
  499. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h5.png +0 -0
  500. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h6.png +0 -0
  501. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_p.png +0 -0
  502. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_pre.png +0 -0
  503. data/public/bcms/ckeditor/plugins/showblocks/plugin.js +153 -0
  504. data/public/bcms/ckeditor/plugins/smiley/dialogs/smiley.js +219 -0
  505. data/public/bcms/ckeditor/plugins/smiley/images/angel_smile.gif +0 -0
  506. data/public/bcms/ckeditor/plugins/smiley/images/angry_smile.gif +0 -0
  507. data/public/bcms/ckeditor/plugins/smiley/images/broken_heart.gif +0 -0
  508. data/public/bcms/ckeditor/plugins/smiley/images/confused_smile.gif +0 -0
  509. data/public/bcms/ckeditor/plugins/smiley/images/cry_smile.gif +0 -0
  510. data/public/bcms/ckeditor/plugins/smiley/images/devil_smile.gif +0 -0
  511. data/public/bcms/ckeditor/plugins/smiley/images/embaressed_smile.gif +0 -0
  512. data/public/bcms/ckeditor/plugins/smiley/images/envelope.gif +0 -0
  513. data/public/bcms/ckeditor/plugins/smiley/images/heart.gif +0 -0
  514. data/public/bcms/ckeditor/plugins/smiley/images/kiss.gif +0 -0
  515. data/public/bcms/ckeditor/plugins/smiley/images/lightbulb.gif +0 -0
  516. data/public/bcms/ckeditor/plugins/smiley/images/omg_smile.gif +0 -0
  517. data/public/bcms/ckeditor/plugins/smiley/images/regular_smile.gif +0 -0
  518. data/public/bcms/ckeditor/plugins/smiley/images/sad_smile.gif +0 -0
  519. data/public/bcms/ckeditor/plugins/smiley/images/shades_smile.gif +0 -0
  520. data/public/bcms/ckeditor/plugins/smiley/images/teeth_smile.gif +0 -0
  521. data/public/bcms/ckeditor/plugins/smiley/images/thumbs_down.gif +0 -0
  522. data/public/bcms/ckeditor/plugins/smiley/images/thumbs_up.gif +0 -0
  523. data/public/bcms/ckeditor/plugins/smiley/images/tounge_smile.gif +0 -0
  524. data/public/bcms/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  525. data/public/bcms/ckeditor/plugins/smiley/images/wink_smile.gif +0 -0
  526. data/public/bcms/ckeditor/plugins/smiley/plugin.js +74 -0
  527. data/public/bcms/ckeditor/plugins/sourcearea/plugin.js +185 -0
  528. data/public/bcms/ckeditor/plugins/specialchar/dialogs/specialchar.js +362 -0
  529. data/public/bcms/ckeditor/plugins/specialchar/plugin.js +29 -0
  530. data/public/bcms/ckeditor/plugins/styles/plugin.js +1242 -0
  531. data/public/bcms/ckeditor/plugins/stylescombo/plugin.js +295 -0
  532. data/public/bcms/ckeditor/plugins/stylescombo/styles/default.js +85 -0
  533. data/public/bcms/ckeditor/plugins/tab/plugin.js +266 -0
  534. data/public/bcms/ckeditor/plugins/table/dialogs/table.js +550 -0
  535. data/public/bcms/ckeditor/plugins/table/plugin.js +70 -0
  536. data/public/bcms/ckeditor/plugins/tabletools/dialogs/tableCell.js +328 -0
  537. data/public/bcms/ckeditor/plugins/tabletools/plugin.js +701 -0
  538. data/public/bcms/ckeditor/plugins/templates/dialogs/templates.js +170 -0
  539. data/public/bcms/ckeditor/plugins/templates/plugin.js +99 -0
  540. data/public/bcms/ckeditor/plugins/templates/templates/default.js +94 -0
  541. data/public/{fckeditor/editor/dialog/fck_template → bcms/ckeditor/plugins/templates/templates}/images/template1.gif +0 -0
  542. data/public/{fckeditor/editor/dialog/fck_template → bcms/ckeditor/plugins/templates/templates}/images/template2.gif +0 -0
  543. data/public/{fckeditor/editor/dialog/fck_template → bcms/ckeditor/plugins/templates/templates}/images/template3.gif +0 -0
  544. data/public/bcms/ckeditor/plugins/toolbar/plugin.js +412 -0
  545. data/public/bcms/ckeditor/plugins/uicolor/dialogs/uicolor.js +203 -0
  546. data/public/bcms/ckeditor/plugins/uicolor/lang/en.js +15 -0
  547. data/public/bcms/ckeditor/plugins/uicolor/plugin.js +35 -0
  548. data/public/bcms/ckeditor/plugins/uicolor/uicolor.gif +0 -0
  549. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  550. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  551. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  552. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  553. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/yui.css +15 -0
  554. data/public/bcms/ckeditor/plugins/uicolor/yui/yui.js +71 -0
  555. data/public/bcms/ckeditor/plugins/undo/plugin.js +490 -0
  556. data/public/bcms/ckeditor/plugins/wsc/dialogs/ciframe.html +49 -0
  557. data/public/bcms/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +52 -0
  558. data/public/bcms/ckeditor/plugins/wsc/dialogs/wsc.css +83 -0
  559. data/public/bcms/ckeditor/plugins/wsc/dialogs/wsc.js +169 -0
  560. data/public/bcms/ckeditor/plugins/wsc/plugin.js +32 -0
  561. data/public/bcms/ckeditor/plugins/wysiwygarea/plugin.js +636 -0
  562. data/public/bcms/ckeditor/skins/kama/dialog.css +742 -0
  563. data/public/bcms/ckeditor/skins/kama/editor.css +21 -0
  564. data/public/bcms/ckeditor/skins/kama/elementspath.css +68 -0
  565. data/public/bcms/ckeditor/skins/kama/icons.css +309 -0
  566. data/public/bcms/ckeditor/skins/kama/icons.png +0 -0
  567. data/public/{fckeditor/editor/skins/default/images/dialog.sides.gif → bcms/ckeditor/skins/kama/images/dialog_sides.gif} +0 -0
  568. data/public/{fckeditor/editor/skins/default/images/dialog.sides.png → bcms/ckeditor/skins/kama/images/dialog_sides.png} +0 -0
  569. data/public/{fckeditor/editor/skins/default/images/dialog.sides.rtl.png → bcms/ckeditor/skins/kama/images/dialog_sides_rtl.png} +0 -0
  570. data/public/bcms/ckeditor/skins/kama/images/mini.gif +0 -0
  571. data/public/bcms/ckeditor/skins/kama/images/noimage.png +0 -0
  572. data/public/bcms/ckeditor/skins/kama/images/sprites.png +0 -0
  573. data/public/bcms/ckeditor/skins/kama/images/sprites_ie6.png +0 -0
  574. data/public/{fckeditor/editor/skins/default/images/toolbar.start.gif → bcms/ckeditor/skins/kama/images/toolbar_start.gif} +0 -0
  575. data/public/bcms/ckeditor/skins/kama/mainui.css +139 -0
  576. data/public/bcms/ckeditor/skins/kama/menu.css +179 -0
  577. data/public/bcms/ckeditor/skins/kama/panel.css +203 -0
  578. data/public/bcms/ckeditor/skins/kama/presets.css +49 -0
  579. data/public/bcms/ckeditor/skins/kama/reset.css +78 -0
  580. data/public/bcms/ckeditor/skins/kama/richcombo.css +260 -0
  581. data/public/bcms/ckeditor/skins/kama/skin.js +291 -0
  582. data/public/bcms/ckeditor/skins/kama/templates.css +71 -0
  583. data/public/bcms/ckeditor/skins/kama/toolbar.css +384 -0
  584. data/public/bcms/ckeditor/skins/office2003/dialog.css +643 -0
  585. data/public/bcms/ckeditor/skins/office2003/editor.css +21 -0
  586. data/public/bcms/ckeditor/skins/office2003/elementspath.css +68 -0
  587. data/public/bcms/ckeditor/skins/office2003/icons.css +309 -0
  588. data/public/bcms/ckeditor/skins/office2003/icons.png +0 -0
  589. data/public/bcms/ckeditor/skins/office2003/images/dialog_sides.gif +0 -0
  590. data/public/bcms/ckeditor/skins/office2003/images/dialog_sides.png +0 -0
  591. data/public/bcms/ckeditor/skins/office2003/images/dialog_sides_rtl.png +0 -0
  592. data/public/bcms/ckeditor/skins/office2003/images/mini.gif +0 -0
  593. data/public/bcms/ckeditor/skins/office2003/images/noimage.png +0 -0
  594. data/public/bcms/ckeditor/skins/office2003/images/sprites.png +0 -0
  595. data/public/bcms/ckeditor/skins/office2003/images/sprites_ie6.png +0 -0
  596. data/public/bcms/ckeditor/skins/office2003/mainui.css +97 -0
  597. data/public/bcms/ckeditor/skins/office2003/menu.css +175 -0
  598. data/public/bcms/ckeditor/skins/office2003/panel.css +198 -0
  599. data/public/bcms/ckeditor/skins/office2003/presets.css +49 -0
  600. data/public/bcms/ckeditor/skins/office2003/reset.css +78 -0
  601. data/public/bcms/ckeditor/skins/office2003/richcombo.css +279 -0
  602. data/public/bcms/ckeditor/skins/office2003/skin.js +77 -0
  603. data/public/bcms/ckeditor/skins/office2003/templates.css +71 -0
  604. data/public/bcms/ckeditor/skins/office2003/toolbar.css +442 -0
  605. data/public/bcms/ckeditor/skins/v2/dialog.css +653 -0
  606. data/public/bcms/ckeditor/skins/v2/editor.css +21 -0
  607. data/public/bcms/ckeditor/skins/v2/elementspath.css +68 -0
  608. data/public/bcms/ckeditor/skins/v2/icons.css +309 -0
  609. data/public/bcms/ckeditor/skins/v2/icons.png +0 -0
  610. data/public/bcms/ckeditor/skins/v2/images/dialog_sides.gif +0 -0
  611. data/public/bcms/ckeditor/skins/v2/images/dialog_sides.png +0 -0
  612. data/public/bcms/ckeditor/skins/v2/images/dialog_sides_rtl.png +0 -0
  613. data/public/bcms/ckeditor/skins/v2/images/mini.gif +0 -0
  614. data/public/bcms/ckeditor/skins/v2/images/noimage.png +0 -0
  615. data/public/bcms/ckeditor/skins/v2/images/sprites.png +0 -0
  616. data/public/bcms/ckeditor/skins/v2/images/sprites_ie6.png +0 -0
  617. data/public/{fckeditor/editor/skins/silver/images/toolbar.start.gif → bcms/ckeditor/skins/v2/images/toolbar_start.gif} +0 -0
  618. data/public/bcms/ckeditor/skins/v2/mainui.css +112 -0
  619. data/public/bcms/ckeditor/skins/v2/menu.css +178 -0
  620. data/public/bcms/ckeditor/skins/v2/panel.css +198 -0
  621. data/public/bcms/ckeditor/skins/v2/presets.css +50 -0
  622. data/public/bcms/ckeditor/skins/v2/reset.css +78 -0
  623. data/public/bcms/ckeditor/skins/v2/richcombo.css +275 -0
  624. data/public/bcms/ckeditor/skins/v2/skin.js +73 -0
  625. data/public/bcms/ckeditor/skins/v2/templates.css +71 -0
  626. data/public/bcms/ckeditor/skins/v2/toolbar.css +399 -0
  627. data/public/bcms/ckeditor/tests/_assets/sample.css +4 -0
  628. data/public/bcms/ckeditor/tests/_assets/sample.js +1 -0
  629. data/public/bcms/ckeditor/tests/_assets/sample.txt +1 -0
  630. data/public/bcms/ckeditor/tests/_assets/sample.xml +5 -0
  631. data/public/bcms/ckeditor/tests/_assets/sample_xml.txt +5 -0
  632. data/public/bcms/ckeditor/tests/core/_editor/custom_config_1.js +10 -0
  633. data/public/bcms/ckeditor/tests/core/_editor/custom_config_2.js +9 -0
  634. data/public/bcms/ckeditor/tests/core/ajax.html +163 -0
  635. data/public/bcms/ckeditor/tests/core/bootstrap.html +66 -0
  636. data/public/bcms/ckeditor/tests/core/ckeditor.html +160 -0
  637. data/public/bcms/ckeditor/tests/core/dom/document.html +126 -0
  638. data/public/bcms/ckeditor/tests/core/dom/documentfragment.html +292 -0
  639. data/public/bcms/ckeditor/tests/core/dom/element.html +637 -0
  640. data/public/bcms/ckeditor/tests/core/dom/node.html +164 -0
  641. data/public/bcms/ckeditor/tests/core/dom/range.html +2411 -0
  642. data/public/bcms/ckeditor/tests/core/dom/text.html +128 -0
  643. data/public/bcms/ckeditor/tests/core/dom/walker.html +340 -0
  644. data/public/bcms/ckeditor/tests/core/dom/window.html +53 -0
  645. data/public/bcms/ckeditor/tests/core/editor.html +123 -0
  646. data/public/bcms/ckeditor/tests/core/env.html +52 -0
  647. data/public/bcms/ckeditor/tests/core/event.html +487 -0
  648. data/public/bcms/ckeditor/tests/core/htmlparser/fragment.html +188 -0
  649. data/public/bcms/ckeditor/tests/core/htmlparser/htmlparser.html +91 -0
  650. data/public/bcms/ckeditor/tests/core/plugins.html +45 -0
  651. data/public/bcms/ckeditor/tests/core/plugins/myplugins/sample/my_plugin.js +3 -0
  652. data/public/bcms/ckeditor/tests/core/scriptloader.html +52 -0
  653. data/public/bcms/ckeditor/tests/core/tools.html +170 -0
  654. data/public/bcms/ckeditor/tests/core/xml.html +150 -0
  655. data/public/bcms/ckeditor/tests/plugins/domiterator/domiterator.html +236 -0
  656. data/public/bcms/ckeditor/tests/plugins/htmldataprocessor/htmldataprocessor.html +386 -0
  657. data/public/bcms/ckeditor/tests/plugins/link/link.html +123 -0
  658. data/public/bcms/ckeditor/tests/plugins/list/list.html +217 -0
  659. data/public/bcms/ckeditor/tests/plugins/selection/selection.html +49 -0
  660. data/public/bcms/ckeditor/tests/plugins/styles/styles.html +596 -0
  661. data/public/bcms/ckeditor/tests/test.css +81 -0
  662. data/public/bcms/ckeditor/tests/test.js +93 -0
  663. data/public/bcms/ckeditor/tests/testall.html +114 -0
  664. data/public/bcms/ckeditor/tests/yuitest.js +75 -0
  665. data/public/bcms/ckeditor/themes/default/theme.js +232 -0
  666. data/public/stylesheets/cms/application.css +2 -2
  667. data/public/stylesheets/cms/form_layout.css +2 -6
  668. data/rails_generators/content_block/templates/migration.rb +1 -1
  669. data/rails_generators/portlet/USAGE +3 -1
  670. data/rails_generators/portlet/portlet_generator.rb +4 -0
  671. data/rails_generators/portlet/templates/_form.html.erb +1 -2
  672. data/rails_generators/portlet/templates/portlet.rb +4 -1
  673. data/rails_generators/portlet/templates/portlet_helper.rb +5 -0
  674. data/rails_generators/template/USAGE +10 -0
  675. data/rails_generators/template/template_generator.rb +18 -0
  676. data/rails_generators/template/templates/template.erb +3 -0
  677. data/templates/blank.rb +11 -1
  678. data/templates/demo.rb +11 -1
  679. data/templates/module.rb +15 -4
  680. data/test/functional/cms/dashboard_controller_test.rb +1 -2
  681. data/test/functional/tests/pretend_controller_test.rb +54 -0
  682. data/test/integration/cms/ckeditor_test.rb +27 -0
  683. data/test/integration/cms/password_management_test.rb +56 -0
  684. data/test/test_helper.rb +14 -0
  685. data/test/unit/helpers/form_builder_test.rb +21 -2
  686. data/test/unit/helpers/menu_helper_test.rb +164 -142
  687. data/test/unit/helpers/page_helper_test.rb +11 -3
  688. data/test/unit/lib/acts_as_content_page_test.rb +72 -0
  689. data/test/unit/lib/cms/authentication/controller_test.rb +20 -0
  690. data/test/unit/lib/cms_domain_support_test.rb +43 -0
  691. data/test/unit/lib/command_line_test.rb +70 -0
  692. data/test/unit/lib/content_rendering_support_test.rb +40 -0
  693. data/test/unit/models/content_type_test.rb +19 -7
  694. data/test/unit/models/page_template_test.rb +4 -1
  695. data/test/unit/models/portlet_test.rb +49 -1
  696. data/test/unit/models/sections_test.rb +41 -2
  697. data/test/unit/models/task_test.rb +37 -22
  698. data/test/unit/models/user_test.rb +158 -55
  699. metadata +490 -378
  700. data/doc/guides/html/developer_guide.html +0 -308
  701. data/public/fckeditor/editor/css/behaviors/disablehandles.htc +0 -15
  702. data/public/fckeditor/editor/css/behaviors/showtableborders.htc +0 -36
  703. data/public/fckeditor/editor/css/fck_editorarea.css +0 -110
  704. data/public/fckeditor/editor/css/fck_internal.css +0 -199
  705. data/public/fckeditor/editor/css/fck_showtableborders_gecko.css +0 -49
  706. data/public/fckeditor/editor/css/images/fck_anchor.gif +0 -0
  707. data/public/fckeditor/editor/css/images/fck_flashlogo.gif +0 -0
  708. data/public/fckeditor/editor/css/images/fck_hiddenfield.gif +0 -0
  709. data/public/fckeditor/editor/css/images/fck_plugin.gif +0 -0
  710. data/public/fckeditor/editor/dialog/common/fck_dialog_common.css +0 -85
  711. data/public/fckeditor/editor/dialog/common/fck_dialog_common.js +0 -311
  712. data/public/fckeditor/editor/dialog/common/images/locked.gif +0 -0
  713. data/public/fckeditor/editor/dialog/common/images/reset.gif +0 -0
  714. data/public/fckeditor/editor/dialog/common/images/unlocked.gif +0 -0
  715. data/public/fckeditor/editor/dialog/fck_about.html +0 -161
  716. data/public/fckeditor/editor/dialog/fck_about/logo_fckeditor.gif +0 -0
  717. data/public/fckeditor/editor/dialog/fck_about/logo_fredck.gif +0 -0
  718. data/public/fckeditor/editor/dialog/fck_about/sponsors/spellchecker_net.gif +0 -0
  719. data/public/fckeditor/editor/dialog/fck_anchor.html +0 -220
  720. data/public/fckeditor/editor/dialog/fck_button.html +0 -104
  721. data/public/fckeditor/editor/dialog/fck_checkbox.html +0 -104
  722. data/public/fckeditor/editor/dialog/fck_colorselector.html +0 -172
  723. data/public/fckeditor/editor/dialog/fck_div.html +0 -364
  724. data/public/fckeditor/editor/dialog/fck_docprops.html +0 -600
  725. data/public/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html +0 -113
  726. data/public/fckeditor/editor/dialog/fck_flash.html +0 -152
  727. data/public/fckeditor/editor/dialog/fck_flash/fck_flash.js +0 -300
  728. data/public/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html +0 -50
  729. data/public/fckeditor/editor/dialog/fck_form.html +0 -109
  730. data/public/fckeditor/editor/dialog/fck_hiddenfield.html +0 -115
  731. data/public/fckeditor/editor/dialog/fck_image.html +0 -258
  732. data/public/fckeditor/editor/dialog/fck_image/fck_image.js +0 -512
  733. data/public/fckeditor/editor/dialog/fck_image/fck_image_preview.html +0 -72
  734. data/public/fckeditor/editor/dialog/fck_link.html +0 -295
  735. data/public/fckeditor/editor/dialog/fck_link/fck_link.js +0 -893
  736. data/public/fckeditor/editor/dialog/fck_listprop.html +0 -120
  737. data/public/fckeditor/editor/dialog/fck_paste.html +0 -346
  738. data/public/fckeditor/editor/dialog/fck_radiobutton.html +0 -104
  739. data/public/fckeditor/editor/dialog/fck_replace.html +0 -648
  740. data/public/fckeditor/editor/dialog/fck_select.html +0 -180
  741. data/public/fckeditor/editor/dialog/fck_select/fck_select.js +0 -194
  742. data/public/fckeditor/editor/dialog/fck_smiley.html +0 -111
  743. data/public/fckeditor/editor/dialog/fck_source.html +0 -68
  744. data/public/fckeditor/editor/dialog/fck_specialchar.html +0 -121
  745. data/public/fckeditor/editor/dialog/fck_spellerpages.html +0 -70
  746. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/blank.html +0 -0
  747. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js +0 -87
  748. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html +0 -153
  749. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm +0 -148
  750. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php +0 -199
  751. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl +0 -181
  752. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js +0 -461
  753. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html +0 -71
  754. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css +0 -49
  755. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js +0 -272
  756. data/public/fckeditor/editor/dialog/fck_table.html +0 -298
  757. data/public/fckeditor/editor/dialog/fck_tablecell.html +0 -257
  758. data/public/fckeditor/editor/dialog/fck_template.html +0 -242
  759. data/public/fckeditor/editor/dialog/fck_textarea.html +0 -94
  760. data/public/fckeditor/editor/dialog/fck_textfield.html +0 -136
  761. data/public/fckeditor/editor/dtd/fck_dtd_test.html +0 -41
  762. data/public/fckeditor/editor/dtd/fck_xhtml10strict.js +0 -116
  763. data/public/fckeditor/editor/dtd/fck_xhtml10transitional.js +0 -140
  764. data/public/fckeditor/editor/fckdebug.html +0 -153
  765. data/public/fckeditor/editor/fckdialog.html +0 -812
  766. data/public/fckeditor/editor/fckeditor.html +0 -317
  767. data/public/fckeditor/editor/fckeditor.original.html +0 -424
  768. data/public/fckeditor/editor/filemanager/browser/default/browser.css +0 -87
  769. data/public/fckeditor/editor/filemanager/browser/default/browser.html +0 -200
  770. data/public/fckeditor/editor/filemanager/browser/default/frmactualfolder.html +0 -95
  771. data/public/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html +0 -114
  772. data/public/fckeditor/editor/filemanager/browser/default/frmfolders.html +0 -198
  773. data/public/fckeditor/editor/filemanager/browser/default/frmresourceslist.html +0 -169
  774. data/public/fckeditor/editor/filemanager/browser/default/frmresourcetype.html +0 -68
  775. data/public/fckeditor/editor/filemanager/browser/default/frmupload.html +0 -115
  776. data/public/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif +0 -0
  777. data/public/fckeditor/editor/filemanager/browser/default/images/Folder.gif +0 -0
  778. data/public/fckeditor/editor/filemanager/browser/default/images/Folder32.gif +0 -0
  779. data/public/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif +0 -0
  780. data/public/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif +0 -0
  781. data/public/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif +0 -0
  782. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/ai.gif +0 -0
  783. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/avi.gif +0 -0
  784. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/bmp.gif +0 -0
  785. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif +0 -0
  786. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/default.icon.gif +0 -0
  787. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif +0 -0
  788. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif +0 -0
  789. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif +0 -0
  790. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif +0 -0
  791. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/gif.gif +0 -0
  792. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif +0 -0
  793. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/html.gif +0 -0
  794. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/jpg.gif +0 -0
  795. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif +0 -0
  796. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/mdb.gif +0 -0
  797. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/mp3.gif +0 -0
  798. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif +0 -0
  799. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif +0 -0
  800. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif +0 -0
  801. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/rdp.gif +0 -0
  802. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif +0 -0
  803. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif +0 -0
  804. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/txt.gif +0 -0
  805. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/vsd.gif +0 -0
  806. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif +0 -0
  807. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif +0 -0
  808. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif +0 -0
  809. data/public/fckeditor/editor/filemanager/browser/default/images/icons/ai.gif +0 -0
  810. data/public/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif +0 -0
  811. data/public/fckeditor/editor/filemanager/browser/default/images/icons/bmp.gif +0 -0
  812. data/public/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif +0 -0
  813. data/public/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif +0 -0
  814. data/public/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif +0 -0
  815. data/public/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif +0 -0
  816. data/public/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif +0 -0
  817. data/public/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif +0 -0
  818. data/public/fckeditor/editor/filemanager/browser/default/images/icons/gif.gif +0 -0
  819. data/public/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif +0 -0
  820. data/public/fckeditor/editor/filemanager/browser/default/images/icons/html.gif +0 -0
  821. data/public/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif +0 -0
  822. data/public/fckeditor/editor/filemanager/browser/default/images/icons/js.gif +0 -0
  823. data/public/fckeditor/editor/filemanager/browser/default/images/icons/mdb.gif +0 -0
  824. data/public/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif +0 -0
  825. data/public/fckeditor/editor/filemanager/browser/default/images/icons/pdf.gif +0 -0
  826. data/public/fckeditor/editor/filemanager/browser/default/images/icons/png.gif +0 -0
  827. data/public/fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif +0 -0
  828. data/public/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif +0 -0
  829. data/public/fckeditor/editor/filemanager/browser/default/images/icons/swf.gif +0 -0
  830. data/public/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif +0 -0
  831. data/public/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif +0 -0
  832. data/public/fckeditor/editor/filemanager/browser/default/images/icons/vsd.gif +0 -0
  833. data/public/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif +0 -0
  834. data/public/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif +0 -0
  835. data/public/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif +0 -0
  836. data/public/fckeditor/editor/filemanager/browser/default/images/spacer.gif +0 -0
  837. data/public/fckeditor/editor/filemanager/browser/default/js/common.js +0 -88
  838. data/public/fckeditor/editor/filemanager/browser/default/js/fckxml.js +0 -147
  839. data/public/fckeditor/editor/images/arrow_ltr.gif +0 -0
  840. data/public/fckeditor/editor/images/arrow_rtl.gif +0 -0
  841. data/public/fckeditor/editor/images/smiley/msn/angel_smile.gif +0 -0
  842. data/public/fckeditor/editor/images/smiley/msn/angry_smile.gif +0 -0
  843. data/public/fckeditor/editor/images/smiley/msn/broken_heart.gif +0 -0
  844. data/public/fckeditor/editor/images/smiley/msn/cake.gif +0 -0
  845. data/public/fckeditor/editor/images/smiley/msn/confused_smile.gif +0 -0
  846. data/public/fckeditor/editor/images/smiley/msn/cry_smile.gif +0 -0
  847. data/public/fckeditor/editor/images/smiley/msn/devil_smile.gif +0 -0
  848. data/public/fckeditor/editor/images/smiley/msn/embaressed_smile.gif +0 -0
  849. data/public/fckeditor/editor/images/smiley/msn/envelope.gif +0 -0
  850. data/public/fckeditor/editor/images/smiley/msn/heart.gif +0 -0
  851. data/public/fckeditor/editor/images/smiley/msn/kiss.gif +0 -0
  852. data/public/fckeditor/editor/images/smiley/msn/lightbulb.gif +0 -0
  853. data/public/fckeditor/editor/images/smiley/msn/omg_smile.gif +0 -0
  854. data/public/fckeditor/editor/images/smiley/msn/regular_smile.gif +0 -0
  855. data/public/fckeditor/editor/images/smiley/msn/sad_smile.gif +0 -0
  856. data/public/fckeditor/editor/images/smiley/msn/shades_smile.gif +0 -0
  857. data/public/fckeditor/editor/images/smiley/msn/teeth_smile.gif +0 -0
  858. data/public/fckeditor/editor/images/smiley/msn/thumbs_down.gif +0 -0
  859. data/public/fckeditor/editor/images/smiley/msn/thumbs_up.gif +0 -0
  860. data/public/fckeditor/editor/images/smiley/msn/tounge_smile.gif +0 -0
  861. data/public/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif +0 -0
  862. data/public/fckeditor/editor/images/smiley/msn/wink_smile.gif +0 -0
  863. data/public/fckeditor/editor/images/spacer.gif +0 -0
  864. data/public/fckeditor/editor/js/fckadobeair.js +0 -176
  865. data/public/fckeditor/editor/js/fckeditorcode_gecko.js +0 -108
  866. data/public/fckeditor/editor/js/fckeditorcode_ie.js +0 -109
  867. data/public/fckeditor/editor/lang/_translationstatus.txt +0 -78
  868. data/public/fckeditor/editor/lang/af.js +0 -526
  869. data/public/fckeditor/editor/lang/ar.js +0 -526
  870. data/public/fckeditor/editor/lang/bg.js +0 -526
  871. data/public/fckeditor/editor/lang/bn.js +0 -526
  872. data/public/fckeditor/editor/lang/bs.js +0 -526
  873. data/public/fckeditor/editor/lang/ca.js +0 -526
  874. data/public/fckeditor/editor/lang/cs.js +0 -526
  875. data/public/fckeditor/editor/lang/da.js +0 -526
  876. data/public/fckeditor/editor/lang/de.js +0 -526
  877. data/public/fckeditor/editor/lang/el.js +0 -526
  878. data/public/fckeditor/editor/lang/en-au.js +0 -526
  879. data/public/fckeditor/editor/lang/en-ca.js +0 -526
  880. data/public/fckeditor/editor/lang/en-uk.js +0 -526
  881. data/public/fckeditor/editor/lang/en.js +0 -526
  882. data/public/fckeditor/editor/lang/eo.js +0 -526
  883. data/public/fckeditor/editor/lang/es.js +0 -526
  884. data/public/fckeditor/editor/lang/et.js +0 -526
  885. data/public/fckeditor/editor/lang/eu.js +0 -527
  886. data/public/fckeditor/editor/lang/fa.js +0 -526
  887. data/public/fckeditor/editor/lang/fi.js +0 -526
  888. data/public/fckeditor/editor/lang/fo.js +0 -526
  889. data/public/fckeditor/editor/lang/fr-ca.js +0 -526
  890. data/public/fckeditor/editor/lang/fr.js +0 -526
  891. data/public/fckeditor/editor/lang/gl.js +0 -526
  892. data/public/fckeditor/editor/lang/gu.js +0 -526
  893. data/public/fckeditor/editor/lang/he.js +0 -526
  894. data/public/fckeditor/editor/lang/hi.js +0 -526
  895. data/public/fckeditor/editor/lang/hr.js +0 -526
  896. data/public/fckeditor/editor/lang/hu.js +0 -526
  897. data/public/fckeditor/editor/lang/it.js +0 -526
  898. data/public/fckeditor/editor/lang/ja.js +0 -526
  899. data/public/fckeditor/editor/lang/km.js +0 -526
  900. data/public/fckeditor/editor/lang/ko.js +0 -526
  901. data/public/fckeditor/editor/lang/lt.js +0 -526
  902. data/public/fckeditor/editor/lang/lv.js +0 -526
  903. data/public/fckeditor/editor/lang/mn.js +0 -526
  904. data/public/fckeditor/editor/lang/ms.js +0 -526
  905. data/public/fckeditor/editor/lang/nb.js +0 -526
  906. data/public/fckeditor/editor/lang/nl.js +0 -526
  907. data/public/fckeditor/editor/lang/no.js +0 -526
  908. data/public/fckeditor/editor/lang/pl.js +0 -526
  909. data/public/fckeditor/editor/lang/pt-br.js +0 -526
  910. data/public/fckeditor/editor/lang/pt.js +0 -526
  911. data/public/fckeditor/editor/lang/ro.js +0 -526
  912. data/public/fckeditor/editor/lang/ru.js +0 -526
  913. data/public/fckeditor/editor/lang/sk.js +0 -526
  914. data/public/fckeditor/editor/lang/sl.js +0 -526
  915. data/public/fckeditor/editor/lang/sr-latn.js +0 -526
  916. data/public/fckeditor/editor/lang/sr.js +0 -526
  917. data/public/fckeditor/editor/lang/sv.js +0 -526
  918. data/public/fckeditor/editor/lang/th.js +0 -526
  919. data/public/fckeditor/editor/lang/tr.js +0 -526
  920. data/public/fckeditor/editor/lang/uk.js +0 -526
  921. data/public/fckeditor/editor/lang/vi.js +0 -526
  922. data/public/fckeditor/editor/lang/zh-cn.js +0 -526
  923. data/public/fckeditor/editor/lang/zh.js +0 -526
  924. data/public/fckeditor/editor/plugins/autogrow/fckplugin.js +0 -99
  925. data/public/fckeditor/editor/plugins/bbcode/_sample/sample.config.js +0 -26
  926. data/public/fckeditor/editor/plugins/bbcode/_sample/sample.html +0 -67
  927. data/public/fckeditor/editor/plugins/bbcode/fckplugin.js +0 -123
  928. data/public/fckeditor/editor/plugins/dragresizetable/fckplugin.js +0 -524
  929. data/public/fckeditor/editor/plugins/placeholder/fck_placeholder.html +0 -105
  930. data/public/fckeditor/editor/plugins/placeholder/fckplugin.js +0 -187
  931. data/public/fckeditor/editor/plugins/placeholder/lang/de.js +0 -27
  932. data/public/fckeditor/editor/plugins/placeholder/lang/en.js +0 -27
  933. data/public/fckeditor/editor/plugins/placeholder/lang/es.js +0 -27
  934. data/public/fckeditor/editor/plugins/placeholder/lang/fr.js +0 -27
  935. data/public/fckeditor/editor/plugins/placeholder/lang/it.js +0 -27
  936. data/public/fckeditor/editor/plugins/placeholder/lang/pl.js +0 -27
  937. data/public/fckeditor/editor/plugins/placeholder/placeholder.gif +0 -0
  938. data/public/fckeditor/editor/plugins/simplecommands/fckplugin.js +0 -29
  939. data/public/fckeditor/editor/plugins/tablecommands/fckplugin.js +0 -33
  940. data/public/fckeditor/editor/skins/_fckviewstrips.html +0 -121
  941. data/public/fckeditor/editor/skins/default/fck_dialog.css +0 -402
  942. data/public/fckeditor/editor/skins/default/fck_dialog_ie6.js +0 -110
  943. data/public/fckeditor/editor/skins/default/fck_editor.css +0 -464
  944. data/public/fckeditor/editor/skins/default/fck_strip.gif +0 -0
  945. data/public/fckeditor/editor/skins/default/images/sprites.gif +0 -0
  946. data/public/fckeditor/editor/skins/default/images/sprites.png +0 -0
  947. data/public/fckeditor/editor/skins/default/images/toolbar.arrowright.gif +0 -0
  948. data/public/fckeditor/editor/skins/default/images/toolbar.buttonarrow.gif +0 -0
  949. data/public/fckeditor/editor/skins/default/images/toolbar.collapse.gif +0 -0
  950. data/public/fckeditor/editor/skins/default/images/toolbar.end.gif +0 -0
  951. data/public/fckeditor/editor/skins/default/images/toolbar.expand.gif +0 -0
  952. data/public/fckeditor/editor/skins/default/images/toolbar.separator.gif +0 -0
  953. data/public/fckeditor/editor/skins/office2003/fck_dialog.css +0 -402
  954. data/public/fckeditor/editor/skins/office2003/fck_dialog_ie6.js +0 -110
  955. data/public/fckeditor/editor/skins/office2003/fck_editor.css +0 -476
  956. data/public/fckeditor/editor/skins/office2003/fck_strip.gif +0 -0
  957. data/public/fckeditor/editor/skins/office2003/images/dialog.sides.gif +0 -0
  958. data/public/fckeditor/editor/skins/office2003/images/dialog.sides.png +0 -0
  959. data/public/fckeditor/editor/skins/office2003/images/dialog.sides.rtl.png +0 -0
  960. data/public/fckeditor/editor/skins/office2003/images/sprites.gif +0 -0
  961. data/public/fckeditor/editor/skins/office2003/images/sprites.png +0 -0
  962. data/public/fckeditor/editor/skins/office2003/images/toolbar.arrowright.gif +0 -0
  963. data/public/fckeditor/editor/skins/office2003/images/toolbar.bg.gif +0 -0
  964. data/public/fckeditor/editor/skins/office2003/images/toolbar.buttonarrow.gif +0 -0
  965. data/public/fckeditor/editor/skins/office2003/images/toolbar.collapse.gif +0 -0
  966. data/public/fckeditor/editor/skins/office2003/images/toolbar.end.gif +0 -0
  967. data/public/fckeditor/editor/skins/office2003/images/toolbar.expand.gif +0 -0
  968. data/public/fckeditor/editor/skins/office2003/images/toolbar.separator.gif +0 -0
  969. data/public/fckeditor/editor/skins/office2003/images/toolbar.start.gif +0 -0
  970. data/public/fckeditor/editor/skins/silver/fck_dialog.css +0 -402
  971. data/public/fckeditor/editor/skins/silver/fck_dialog_ie6.js +0 -110
  972. data/public/fckeditor/editor/skins/silver/fck_editor.css +0 -473
  973. data/public/fckeditor/editor/skins/silver/fck_strip.gif +0 -0
  974. data/public/fckeditor/editor/skins/silver/images/dialog.sides.gif +0 -0
  975. data/public/fckeditor/editor/skins/silver/images/dialog.sides.png +0 -0
  976. data/public/fckeditor/editor/skins/silver/images/dialog.sides.rtl.png +0 -0
  977. data/public/fckeditor/editor/skins/silver/images/sprites.gif +0 -0
  978. data/public/fckeditor/editor/skins/silver/images/sprites.png +0 -0
  979. data/public/fckeditor/editor/skins/silver/images/toolbar.arrowright.gif +0 -0
  980. data/public/fckeditor/editor/skins/silver/images/toolbar.buttonarrow.gif +0 -0
  981. data/public/fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif +0 -0
  982. data/public/fckeditor/editor/skins/silver/images/toolbar.collapse.gif +0 -0
  983. data/public/fckeditor/editor/skins/silver/images/toolbar.end.gif +0 -0
  984. data/public/fckeditor/editor/skins/silver/images/toolbar.expand.gif +0 -0
  985. data/public/fckeditor/editor/skins/silver/images/toolbar.separator.gif +0 -0
  986. data/public/fckeditor/fckconfig.js +0 -364
  987. data/public/fckeditor/fckdebug.html +0 -153
  988. data/public/fckeditor/fckdialog.html +0 -812
  989. data/public/fckeditor/fckeditor.html +0 -317
  990. data/public/fckeditor/fckeditor.js +0 -328
  991. data/public/fckeditor/fckeditor.original.html +0 -424
  992. data/public/fckeditor/fckpackager.xml +0 -262
  993. data/public/fckeditor/fckstyles.xml +0 -111
  994. data/public/fckeditor/fcktemplates.xml +0 -103
  995. data/public/javascripts/cms/editor.js +0 -56
@@ -0,0 +1,185 @@
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
+ * @fileOverview Defines the {@link CKEDITOR.skins} object, which is used to
8
+ * manage skins loading.
9
+ */
10
+
11
+ /**
12
+ * Manages skins loading.
13
+ * @namespace
14
+ * @example
15
+ */
16
+ CKEDITOR.skins = (function()
17
+ {
18
+ // Holds the list of loaded skins.
19
+ var loaded = {};
20
+ var preloaded = {};
21
+ var paths = {};
22
+
23
+ var loadedPart = function( skinName, part, callback )
24
+ {
25
+ // Get the skin definition.
26
+ var skinDefinition = loaded[ skinName ];
27
+
28
+ var appendSkinPath = function( fileNames )
29
+ {
30
+ for ( var n = 0 ; n < fileNames.length ; n++ )
31
+ {
32
+ fileNames[ n ] = CKEDITOR.getUrl( paths[ skinName ] + fileNames[ n ] );
33
+ }
34
+ };
35
+
36
+ // Check if we need to preload images from it.
37
+ if ( !preloaded[ skinName ] )
38
+ {
39
+ var preload = skinDefinition.preload;
40
+ if ( preload && preload.length > 0 )
41
+ {
42
+ appendSkinPath( preload );
43
+ CKEDITOR.imageCacher.load( preload, function()
44
+ {
45
+ preloaded[ skinName ] = 1;
46
+ loadedPart( skinName, part, callback );
47
+ } );
48
+ return;
49
+ }
50
+
51
+ // Mark it as preloaded.
52
+ preloaded[ skinName ] = 1;
53
+ }
54
+
55
+ // Get the part definition.
56
+ part = skinDefinition[ part ];
57
+ var partIsLoaded = !part || !!part._isLoaded;
58
+
59
+ // Call the callback immediately if already loaded.
60
+ if ( partIsLoaded )
61
+ callback && callback();
62
+ else
63
+ {
64
+ // Put the callback in a queue.
65
+ var pending = part._pending || ( part._pending = [] );
66
+ pending.push( callback );
67
+
68
+ // We may have more than one skin part load request. Just the first
69
+ // one must do the loading job.
70
+ if ( pending.length > 1 )
71
+ return;
72
+
73
+ // Check whether the "css" and "js" properties have been defined
74
+ // for that part.
75
+ var cssIsLoaded = !part.css || !part.css.length;
76
+ var jsIsLoaded = !part.js || !part.js.length;
77
+
78
+ // This is the function that will trigger the callback calls on
79
+ // load.
80
+ var checkIsLoaded = function()
81
+ {
82
+ if ( cssIsLoaded && jsIsLoaded )
83
+ {
84
+ // Mark the part as loaded.
85
+ part._isLoaded = 1;
86
+
87
+ // Call all pending callbacks.
88
+ for ( var i = 0 ; i < pending.length ; i++ )
89
+ {
90
+ if ( pending[ i ] )
91
+ pending[ i ]();
92
+ }
93
+ }
94
+ };
95
+
96
+ // Load the "css" pieces.
97
+ if ( !cssIsLoaded )
98
+ {
99
+ appendSkinPath( part.css );
100
+
101
+ for ( var c = 0 ; c < part.css.length ; c++ )
102
+ CKEDITOR.document.appendStyleSheet( part.css[ c ] );
103
+
104
+ cssIsLoaded = 1;
105
+ }
106
+
107
+ // Load the "js" pieces.
108
+ if ( !jsIsLoaded )
109
+ {
110
+ appendSkinPath( part.js );
111
+ CKEDITOR.scriptLoader.load( part.js, function()
112
+ {
113
+ jsIsLoaded = 1;
114
+ checkIsLoaded();
115
+ });
116
+ }
117
+
118
+ // We may have nothing to load, so check it immediately.
119
+ checkIsLoaded();
120
+ }
121
+ };
122
+
123
+ return /** @lends CKEDITOR.skins */ {
124
+
125
+ /**
126
+ * Registers a skin definition.
127
+ * @param {String} skinName The skin name.
128
+ * @param {Object} skinDefinition The skin definition.
129
+ * @example
130
+ */
131
+ add : function( skinName, skinDefinition )
132
+ {
133
+ loaded[ skinName ] = skinDefinition;
134
+
135
+ skinDefinition.skinPath = paths[ skinName ]
136
+ || ( paths[ skinName ] =
137
+ CKEDITOR.getUrl(
138
+ 'skins/' + skinName + '/' ) );
139
+ },
140
+
141
+ /**
142
+ * Loads a skin part. Skins are defined in parts, which are basically
143
+ * separated CSS files. This function is mainly used by the core code and
144
+ * should not have much use out of it.
145
+ * @param {String} skinName The name of the skin to be loaded.
146
+ * @param {String} skinPart The skin part to be loaded. Common skin parts
147
+ * are "editor" and "dialog".
148
+ * @param {Function} [callback] A function to be called once the skin
149
+ * part files are loaded.
150
+ * @example
151
+ */
152
+ load : function( editor, skinPart, callback )
153
+ {
154
+ var skinName = editor.skinName,
155
+ skinPath = editor.skinPath;
156
+
157
+ if ( loaded[ skinName ] )
158
+ {
159
+ loadedPart( skinName, skinPart, callback );
160
+
161
+ // Get the skin definition.
162
+ var skinDefinition = loaded[ skinName ];
163
+
164
+ // Trigger init function if any.
165
+ if ( skinDefinition.init )
166
+ skinDefinition.init( editor );
167
+ }
168
+ else
169
+ {
170
+ paths[ skinName ] = skinPath;
171
+ CKEDITOR.scriptLoader.load( skinPath + 'skin.js', function()
172
+ {
173
+ loadedPart( skinName, skinPart, callback );
174
+
175
+ // Get the skin definition.
176
+ var skinDefinition = loaded[ skinName ];
177
+
178
+ // Trigger init function if any.
179
+ if ( skinDefinition.init )
180
+ skinDefinition.init( editor );
181
+ });
182
+ }
183
+ }
184
+ };
185
+ })();
@@ -0,0 +1,184 @@
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
+ * @fileOverview Defines the {@link CKEDITOR.test} object, which contains
8
+ * functions used at our testing environment.
9
+ */
10
+
11
+ /*jsl:import ../tests/yuitest.js*/
12
+
13
+ /**
14
+ * Contains functions used at our testing environment. Currently,
15
+ * our testing system is based on the
16
+ * <a href="http://developer.yahoo.com/yui/yuitest/">YUI Test</a>.
17
+ * @namespace
18
+ * @example
19
+ */
20
+ CKEDITOR.test =
21
+ {
22
+ /**
23
+ * The assertion namespace, containing all assertion functions. Currently,
24
+ * this is an alias for
25
+ * <a href="http://developer.yahoo.com/yui/docs/YAHOO.util.Assert.html">YAHOO.util.Assert</a>.
26
+ * @example
27
+ * <b>CKEDITOR.test.assert</b>.areEqual( '10', 10 ); // "true"
28
+ * <b>CKEDITOR.test.assert</b>.areSame( '10', 10 ); // "false"
29
+ * <b>CKEDITOR.test.assert</b>.isUndefined( window.test ); // "true"
30
+ */
31
+ assert : YAHOO.util.Assert,
32
+
33
+ runner : YAHOO.tool.TestRunner,
34
+
35
+ /**
36
+ * Adds a test case to the test runner.
37
+ * @param {Object} testCase The test case object. See other tests for
38
+ * examples.
39
+ * @example
40
+ * <b>CKEDITOR.test.addTestCase</b>((function()
41
+ * {
42
+ * // Local reference to the "assert" object.
43
+ * var assert = CKEDITOR.test.assert;
44
+ *
45
+ * return {
46
+ * test_example : function()
47
+ * {
48
+ * assert.areSame( '10', 10 ); // FAIL
49
+ * }
50
+ * };
51
+ * })());
52
+ */
53
+ addTestCase : function( testCase )
54
+ {
55
+ YAHOO.tool.TestRunner.add( new YAHOO.tool.TestCase( testCase ) );
56
+ },
57
+
58
+ /**
59
+ * Gets the inner HTML of an element, for testing purposes.
60
+ * @param {Boolean} stripLineBreaks Assign 'false' to avoid trimming line-breaks.
61
+ */
62
+ getInnerHtml : function( elementOrId , stripLineBreaks )
63
+ {
64
+ var html;
65
+
66
+ if ( typeof elementOrId == 'string' )
67
+ html = document.getElementById( elementOrId ).innerHTML;
68
+ else if ( elementOrId.getHtml )
69
+ html = elementOrId.getHtml();
70
+ else
71
+ html = elementOrId.innerHTML // retrieve from innerHTML
72
+ || elementOrId.value; // retrieve from value
73
+
74
+ return CKEDITOR.test.fixHtml( html, stripLineBreaks );
75
+ },
76
+
77
+ fixHtml : function( html, stripLineBreaks )
78
+ {
79
+ html = html.toLowerCase();
80
+
81
+ if ( stripLineBreaks !== false )
82
+ html = html.replace( /[\n\r]/g, '' );
83
+ else
84
+ html = html.replace( /\r/g, '' ); // Normalize CRLF.
85
+
86
+ function sorter( a, b )
87
+ {
88
+ var nameA = a[ 0 ];
89
+ var nameB = b[ 0 ];
90
+ return nameA < nameB ? -1 : nameA > nameB ? 1 : 0;
91
+ }
92
+
93
+ html = html.replace( /<\w[^>]*/g, function( match )
94
+ {
95
+ var attribs = [];
96
+ var hasClass;
97
+
98
+ match = match.replace( /\s([^\s=]+)=((?:"[^"]*")|(?:'[^']*')|(?:[^\s]+))/g, function( match, attName, attValue )
99
+ {
100
+ if ( attName == 'style' )
101
+ {
102
+ // Reorganize the style rules so they are sorted by name.
103
+
104
+ var rules = [];
105
+
106
+ // Push all rules into an Array.
107
+ attValue.replace( /(?:"| |;|^ )\s*([^ :]+?)\s*:\s*([^;"]+?)\s*(?=;|"|$)/g, function( match, name, value )
108
+ {
109
+ rules.push( [ name, value ] );
110
+ });
111
+
112
+ // Sort the Array.
113
+ rules.sort( sorter );
114
+
115
+ // Transform each rule entry into a string name:value.
116
+ for ( var i = 0 ; i < rules.length ; i++ )
117
+ rules[ i ] = rules[ i ].join( ':' );
118
+
119
+ // Join all rules with commas, removing spaces and adding an extra comma to the end.
120
+ attValue = '"' + rules && ( rules.join( ';' ).replace( /\s+/g, '' ) + ';' );
121
+ }
122
+
123
+ // IE may have 'class' more than once.
124
+ if ( attName == 'class' )
125
+ {
126
+ if ( hasClass )
127
+ return '';
128
+
129
+ hasClass = true;
130
+ }
131
+
132
+ if ( attName != '_cke_expando' )
133
+ attribs.push( [ attName, attValue ] );
134
+
135
+ return '';
136
+ } );
137
+
138
+ attribs.sort( sorter );
139
+
140
+ var ret = match.replace( /\s{2,}/g, ' ' );
141
+
142
+ for ( var i = 0 ; i < attribs.length ; i++ )
143
+ {
144
+ ret += ' ' + attribs[i][0] + '=';
145
+ ret += (/^["']/).test( attribs[i][1] ) ? attribs[i][1] : '"' + attribs[i][1] + '"';
146
+ }
147
+
148
+ return ret;
149
+ } );
150
+
151
+ return html;
152
+ },
153
+
154
+ /**
155
+ * Wrapper of CKEDITOR.dom.element::getAttribute for style text normalization.
156
+ * @param element
157
+ * @param attrName
158
+ */
159
+ getAttribute : function( element, attrName )
160
+ {
161
+ var retval = element.getAttribute( attrName );
162
+ if ( attrName == 'style' )
163
+ {
164
+ // 1. Lower case property name.
165
+ // 2. Add space after colon.
166
+ // 3. Strip whitepsaces around semicolon.
167
+ // 4. Always end with semicolon
168
+ return retval.replace( /(?:^|;)\s*([A-Z-_]+)(:\s*)/ig,
169
+ function( match, property, colon )
170
+ {
171
+ return property.toLowerCase() + ': ';
172
+ } )
173
+ .replace( /\s+(?:;\s*|$)/g, ';' )
174
+ .replace( /([^;])$/g, '$1;' );
175
+ }
176
+
177
+ return retval;
178
+ },
179
+
180
+ /**
181
+ * Whether control the runner manually instead of running on window onload.
182
+ */
183
+ deferRunner : false
184
+ };
@@ -0,0 +1,18 @@
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
+ * @fileOverview Defines the {@link CKEDITOR.themes} object, which is used to
8
+ * manage themes registration and loading.
9
+ */
10
+
11
+ /**
12
+ * Manages themes registration and loading.
13
+ * @namespace
14
+ * @augments CKEDITOR.resourceManager
15
+ * @example
16
+ */
17
+ CKEDITOR.themes = new CKEDITOR.resourceManager(
18
+ 'themes/', 'theme' );
@@ -0,0 +1,531 @@
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
+ * @fileOverview Defines the {@link CKEDITOR.tools} object, which contains
8
+ * utility functions.
9
+ */
10
+
11
+ (function()
12
+ {
13
+ var functions = [];
14
+
15
+ /**
16
+ * Utility functions.
17
+ * @namespace
18
+ * @example
19
+ */
20
+ CKEDITOR.tools =
21
+ {
22
+ arrayCompare : function( arrayA, arrayB )
23
+ {
24
+ if ( !arrayA && !arrayB )
25
+ return true;
26
+
27
+ if ( !arrayA || !arrayB || arrayA.length != arrayB.length )
28
+ return false;
29
+
30
+ for ( var i = 0 ; i < arrayA.length ; i++ )
31
+ {
32
+ if ( arrayA[ i ] != arrayB[ i ] )
33
+ return false;
34
+ }
35
+
36
+ return true;
37
+ },
38
+
39
+ /**
40
+ * Creates a deep copy of an object.
41
+ * Attention: there is no support for recursive references.
42
+ * @param {Object} object The object to be cloned.
43
+ * @returns {Object} The object clone.
44
+ * @example
45
+ * var obj =
46
+ * {
47
+ * name : 'John',
48
+ * cars :
49
+ * {
50
+ * Mercedes : { color : 'blue' },
51
+ * Porsche : { color : 'red' }
52
+ * }
53
+ * };
54
+ * var clone = CKEDITOR.tools.clone( obj );
55
+ * clone.name = 'Paul';
56
+ * clone.cars.Porsche.color = 'silver';
57
+ * alert( obj.name ); // John
58
+ * alert( clone.name ); // Paul
59
+ * alert( obj.cars.Porsche.color ); // red
60
+ * alert( clone.cars.Porsche.color ); // silver
61
+ */
62
+ clone : function( obj )
63
+ {
64
+ var clone;
65
+
66
+ // Array.
67
+ if ( obj && ( obj instanceof Array ) )
68
+ {
69
+ clone = [];
70
+
71
+ for ( var i = 0 ; i < obj.length ; i++ )
72
+ clone[ i ] = this.clone( obj[ i ] );
73
+
74
+ return clone;
75
+ }
76
+
77
+ // "Static" types.
78
+ if ( obj === null
79
+ || ( typeof( obj ) != 'object' )
80
+ || ( obj instanceof String )
81
+ || ( obj instanceof Number )
82
+ || ( obj instanceof Boolean )
83
+ || ( obj instanceof Date ) )
84
+ {
85
+ return obj;
86
+ }
87
+
88
+ // Objects.
89
+ clone = new obj.constructor();
90
+
91
+ for ( var propertyName in obj )
92
+ {
93
+ var property = obj[ propertyName ];
94
+ clone[ propertyName ] = this.clone( property );
95
+ }
96
+
97
+ return clone;
98
+ },
99
+
100
+ /**
101
+ * Copy the properties from one object to another. By default, properties
102
+ * already present in the target object <strong>are not</strong> overwritten.
103
+ * @param {Object} target The object to be extended.
104
+ * @param {Object} source[,souce(n)] The objects from which copy
105
+ * properties. Any number of objects can be passed to this function.
106
+ * @param {Boolean} [overwrite] If 'true' is specified it indicates that
107
+ * properties already present in the target object could be
108
+ * overwritten by subsequent objects.
109
+ * @param {Object} [properties] Only properties within the specified names
110
+ * list will be received from the source object.
111
+ * @returns {Object} the extended object (target).
112
+ * @example
113
+ * // Create the sample object.
114
+ * var myObject =
115
+ * {
116
+ * prop1 : true
117
+ * };
118
+ *
119
+ * // Extend the above object with two properties.
120
+ * CKEDITOR.tools.extend( myObject,
121
+ * {
122
+ * prop2 : true,
123
+ * prop3 : true
124
+ * } );
125
+ *
126
+ * // Alert "prop1", "prop2" and "prop3".
127
+ * for ( var p in myObject )
128
+ * alert( p );
129
+ */
130
+ extend : function( target )
131
+ {
132
+ var argsLength = arguments.length,
133
+ overwrite, propertiesList;
134
+
135
+ if ( typeof ( overwrite = arguments[ argsLength - 1 ] ) == 'boolean')
136
+ argsLength--;
137
+ else if ( typeof ( overwrite = arguments[ argsLength - 2 ] ) == 'boolean' )
138
+ {
139
+ propertiesList = arguments [ argsLength -1 ];
140
+ argsLength-=2;
141
+ }
142
+ for ( var i = 1 ; i < argsLength ; i++ )
143
+ {
144
+ var source = arguments[ i ];
145
+ for ( var propertyName in source )
146
+ {
147
+ // Only copy existed fields if in overwrite mode.
148
+ if ( overwrite === true || target[ propertyName ] == undefined )
149
+ {
150
+ // Only copy specified fields if list is provided.
151
+ if ( !propertiesList || ( propertyName in propertiesList ) )
152
+ target[ propertyName ] = source[ propertyName ];
153
+
154
+ }
155
+ }
156
+ }
157
+
158
+ return target;
159
+ },
160
+
161
+ /**
162
+ * Creates an object which is an instance of a class which prototype is a
163
+ * predefined object. All properties defined in the source object are
164
+ * automatically inherited by the resulting object, including future
165
+ * changes to it.
166
+ * @param {Object} source The source object to be used as the prototype for
167
+ * the final object.
168
+ * @returns {Object} The resulting copy.
169
+ */
170
+ prototypedCopy : function( source )
171
+ {
172
+ var copy = function()
173
+ {};
174
+ copy.prototype = source;
175
+ return new copy();
176
+ },
177
+
178
+ /**
179
+ * Checks if an object is an Array.
180
+ * @param {Object} object The object to be checked.
181
+ * @type Boolean
182
+ * @returns <i>true</i> if the object is an Array, otherwise <i>false</i>.
183
+ * @example
184
+ * alert( CKEDITOR.tools.isArray( [] ) ); // "true"
185
+ * alert( CKEDITOR.tools.isArray( 'Test' ) ); // "false"
186
+ */
187
+ isArray : function( object )
188
+ {
189
+ return ( !!object && object instanceof Array );
190
+ },
191
+
192
+ /**
193
+ * Transforms a CSS property name to its relative DOM style name.
194
+ * @param {String} cssName The CSS property name.
195
+ * @returns {String} The transformed name.
196
+ * @example
197
+ * alert( CKEDITOR.tools.cssStyleToDomStyle( 'background-color' ) ); // "backgroundColor"
198
+ * alert( CKEDITOR.tools.cssStyleToDomStyle( 'float' ) ); // "cssFloat"
199
+ */
200
+ cssStyleToDomStyle : function( cssName )
201
+ {
202
+ if ( cssName == 'float' )
203
+ return 'cssFloat';
204
+ else
205
+ {
206
+ return cssName.replace( /-./g, function( match )
207
+ {
208
+ return match.substr( 1 ).toUpperCase();
209
+ });
210
+ }
211
+ },
212
+
213
+ /**
214
+ * Replace special HTML characters in a string with their relative HTML
215
+ * entity values.
216
+ * @param {String} text The string to be encoded.
217
+ * @returns {String} The encode string.
218
+ * @example
219
+ * alert( CKEDITOR.tools.htmlEncode( 'A > B & C < D' ) ); // "A &amp;gt; B &amp;amp; C &amp;lt; D"
220
+ */
221
+ htmlEncode : function( text )
222
+ {
223
+ var standard = function( text )
224
+ {
225
+ var span = new CKEDITOR.dom.element( 'span' );
226
+ span.setText( text );
227
+ return span.getHtml();
228
+ };
229
+
230
+ var fix1 = ( standard( '\n' ).toLowerCase() == '<br>' ) ?
231
+ function( text )
232
+ {
233
+ // #3874 IE and Safari encode line-break into <br>
234
+ return standard( text ).replace( /<br>/gi, '\n' );
235
+ } :
236
+ standard;
237
+
238
+ var fix2 = ( standard( '>' ) == '>' ) ?
239
+ function( text )
240
+ {
241
+ // WebKit does't encode the ">" character, which makes sense, but
242
+ // it's different than other browsers.
243
+ return fix1( text ).replace( />/g, '&gt;' );
244
+ } :
245
+ fix1;
246
+
247
+ var fix3 = ( standard( ' ' ) == '&nbsp; ' ) ?
248
+ function( text )
249
+ {
250
+ // #3785 IE8 changes spaces (>= 2) to &nbsp;
251
+ return fix2( text ).replace( /&nbsp;/g, ' ' );
252
+ } :
253
+ fix2;
254
+
255
+ this.htmlEncode = fix3;
256
+
257
+ return this.htmlEncode( text );
258
+ },
259
+
260
+ /**
261
+ * Gets a unique number for this CKEDITOR execution session. It returns
262
+ * progressive numbers starting at 1.
263
+ * @function
264
+ * @returns {Number} A unique number.
265
+ * @example
266
+ * alert( CKEDITOR.tools.<b>getNextNumber()</b> ); // "1" (e.g.)
267
+ * alert( CKEDITOR.tools.<b>getNextNumber()</b> ); // "2"
268
+ */
269
+ getNextNumber : (function()
270
+ {
271
+ var last = 0;
272
+ return function()
273
+ {
274
+ return ++last;
275
+ };
276
+ })(),
277
+
278
+ /**
279
+ * Creates a function override.
280
+ * @param {Function} originalFunction The function to be overridden.
281
+ * @param {Function} functionBuilder A function that returns the new
282
+ * function. The original function reference will be passed to this
283
+ * function.
284
+ * @returns {Function} The new function.
285
+ * @example
286
+ * var example =
287
+ * {
288
+ * myFunction : function( name )
289
+ * {
290
+ * alert( 'Name: ' + name );
291
+ * }
292
+ * };
293
+ *
294
+ * example.myFunction = CKEDITOR.tools.override( example.myFunction, function( myFunctionOriginal )
295
+ * {
296
+ * return function( name )
297
+ * {
298
+ * alert( 'Override Name: ' + name );
299
+ * myFunctionOriginal.call( this, name );
300
+ * };
301
+ * });
302
+ */
303
+ override : function( originalFunction, functionBuilder )
304
+ {
305
+ return functionBuilder( originalFunction );
306
+ },
307
+
308
+ /**
309
+ * Executes a function after specified delay.
310
+ * @param {Function} func The function to be executed.
311
+ * @param {Number} [milliseconds] The amount of time (millisecods) to wait
312
+ * to fire the function execution. Defaults to zero.
313
+ * @param {Object} [scope] The object to hold the function execution scope
314
+ * (the "this" object). By default the "window" object.
315
+ * @param {Object|Array} [args] A single object, or an array of objects, to
316
+ * pass as arguments to the function.
317
+ * @param {Object} [ownerWindow] The window that will be used to set the
318
+ * timeout. By default the current "window".
319
+ * @returns {Object} A value that can be used to cancel the function execution.
320
+ * @example
321
+ * CKEDITOR.tools.<b>setTimeout(
322
+ * function()
323
+ * {
324
+ * alert( 'Executed after 2 seconds' );
325
+ * },
326
+ * 2000 )</b>;
327
+ */
328
+ setTimeout : function( func, milliseconds, scope, args, ownerWindow )
329
+ {
330
+ if ( !ownerWindow )
331
+ ownerWindow = window;
332
+
333
+ if ( !scope )
334
+ scope = ownerWindow;
335
+
336
+ return ownerWindow.setTimeout(
337
+ function()
338
+ {
339
+ if ( args )
340
+ func.apply( scope, [].concat( args ) ) ;
341
+ else
342
+ func.apply( scope ) ;
343
+ },
344
+ milliseconds || 0 );
345
+ },
346
+
347
+ /**
348
+ * Remove spaces from the start and the end of a string. The following
349
+ * characters are removed: space, tab, line break, line feed.
350
+ * @function
351
+ * @param {String} str The text from which remove the spaces.
352
+ * @returns {String} The modified string without the boundary spaces.
353
+ * @example
354
+ * alert( CKEDITOR.tools.trim( ' example ' ); // "example"
355
+ */
356
+ trim : (function()
357
+ {
358
+ // We are not using \s because we don't want "non-breaking spaces" to be caught.
359
+ var trimRegex = /(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g;
360
+ return function( str )
361
+ {
362
+ return str.replace( trimRegex, '' ) ;
363
+ };
364
+ })(),
365
+
366
+ /**
367
+ * Remove spaces from the start (left) of a string. The following
368
+ * characters are removed: space, tab, line break, line feed.
369
+ * @function
370
+ * @param {String} str The text from which remove the spaces.
371
+ * @returns {String} The modified string excluding the removed spaces.
372
+ * @example
373
+ * alert( CKEDITOR.tools.ltrim( ' example ' ); // "example "
374
+ */
375
+ ltrim : (function()
376
+ {
377
+ // We are not using \s because we don't want "non-breaking spaces" to be caught.
378
+ var trimRegex = /^[ \t\n\r]+/g;
379
+ return function( str )
380
+ {
381
+ return str.replace( trimRegex, '' ) ;
382
+ };
383
+ })(),
384
+
385
+ /**
386
+ * Remove spaces from the end (right) of a string. The following
387
+ * characters are removed: space, tab, line break, line feed.
388
+ * @function
389
+ * @param {String} str The text from which remove the spaces.
390
+ * @returns {String} The modified string excluding the removed spaces.
391
+ * @example
392
+ * alert( CKEDITOR.tools.ltrim( ' example ' ); // " example"
393
+ */
394
+ rtrim : (function()
395
+ {
396
+ // We are not using \s because we don't want "non-breaking spaces" to be caught.
397
+ var trimRegex = /[ \t\n\r]+$/g;
398
+ return function( str )
399
+ {
400
+ return str.replace( trimRegex, '' ) ;
401
+ };
402
+ })(),
403
+
404
+ /**
405
+ * Returns the index of an element in an array.
406
+ * @param {Array} array The array to be searched.
407
+ * @param {Object} entry The element to be found.
408
+ * @returns {Number} The (zero based) index of the first entry that matches
409
+ * the entry, or -1 if not found.
410
+ * @example
411
+ * var letters = [ 'a', 'b', 0, 'c', false ];
412
+ * alert( CKEDITOR.tools.indexOf( letters, '0' ) ); "-1" because 0 !== '0'
413
+ * alert( CKEDITOR.tools.indexOf( letters, false ) ); "4" because 0 !== false
414
+ */
415
+ indexOf :
416
+ // #2514: We should try to use Array.indexOf if it does exist.
417
+ ( Array.prototype.indexOf ) ?
418
+ function( array, entry )
419
+ {
420
+ return array.indexOf( entry );
421
+ }
422
+ :
423
+ function( array, entry )
424
+ {
425
+ for ( var i = 0, len = array.length ; i < len ; i++ )
426
+ {
427
+ if ( array[ i ] === entry )
428
+ return i;
429
+ }
430
+ return -1;
431
+ },
432
+
433
+ bind : function( func, obj )
434
+ {
435
+ return function() { return func.apply( obj, arguments ); };
436
+ },
437
+
438
+ /**
439
+ * Class creation based on prototype inheritance, with supports of the
440
+ * following features:
441
+ * <ul>
442
+ * <li> Static fields </li>
443
+ * <li> Private fields </li>
444
+ * <li> Public(prototype) fields </li>
445
+ * <li> Chainable base class constructor </li>
446
+ * </ul>
447
+ *
448
+ * @param {Object} definiton (Optional)The class definiton object.
449
+ */
450
+ createClass : function( definition )
451
+ {
452
+ var $ = definition.$,
453
+ baseClass = definition.base,
454
+ privates = definition.privates || definition._,
455
+ proto = definition.proto,
456
+ statics = definition.statics;
457
+
458
+ if ( privates )
459
+ {
460
+ var originalConstructor = $;
461
+ $ = function()
462
+ {
463
+ // Create (and get) the private namespace.
464
+ var _ = this._ || ( this._ = {} );
465
+
466
+ // Make some magic so "this" will refer to the main
467
+ // instance when coding private functions.
468
+ for ( var privateName in privates )
469
+ {
470
+ var priv = privates[ privateName ];
471
+
472
+ _[ privateName ] =
473
+ ( typeof priv == 'function' ) ? CKEDITOR.tools.bind( priv, this ) : priv;
474
+ }
475
+
476
+ originalConstructor.apply( this, arguments );
477
+ };
478
+ }
479
+
480
+ if ( baseClass )
481
+ {
482
+ $.prototype = this.prototypedCopy( baseClass.prototype );
483
+ $.prototype.constructor = $;
484
+ $.prototype.base = function()
485
+ {
486
+ this.base = baseClass.prototype.base;
487
+ baseClass.apply( this, arguments );
488
+ this.base = arguments.callee;
489
+ };
490
+ }
491
+
492
+ if ( proto )
493
+ this.extend( $.prototype, proto, true );
494
+
495
+ if ( statics )
496
+ this.extend( $, statics, true );
497
+
498
+ return $;
499
+ },
500
+
501
+ addFunction : function( fn, scope )
502
+ {
503
+ return functions.push( function()
504
+ {
505
+ fn.apply( scope || this, arguments );
506
+ }) - 1;
507
+ },
508
+
509
+ callFunction : function( index )
510
+ {
511
+ var fn = functions[ index ];
512
+ return fn.apply( window, Array.prototype.slice.call( arguments, 1 ) );
513
+ },
514
+
515
+ cssLength : (function()
516
+ {
517
+ var decimalRegex = /^\d+(?:\.\d+)?$/;
518
+ return function( length )
519
+ {
520
+ return length + ( decimalRegex.test( length ) ? 'px' : '' );
521
+ };
522
+ })(),
523
+
524
+ repeat : function( str, times )
525
+ {
526
+ return new Array( times + 1 ).join( str );
527
+ }
528
+ };
529
+ })();
530
+
531
+ // PACKAGER_RENAME( CKEDITOR.tools )