westarete-skylinecms 3.0.8.20100329
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.
- data/.yardopts +10 -0
- data/CHANGELOG +123 -0
- data/COPYING +674 -0
- data/COPYING.LESSER +165 -0
- data/COPYRIGHT +14 -0
- data/README.md +46 -0
- data/Rakefile +122 -0
- data/app/controllers/skyline/application_controller.rb +256 -0
- data/app/controllers/skyline/article_versions_controller.rb +39 -0
- data/app/controllers/skyline/articles_controller.rb +245 -0
- data/app/controllers/skyline/authentications_controller.rb +34 -0
- data/app/controllers/skyline/browser/files_controller.rb +18 -0
- data/app/controllers/skyline/browser/images_controller.rb +20 -0
- data/app/controllers/skyline/browser/links_controller.rb +26 -0
- data/app/controllers/skyline/browser/pages_controller.rb +10 -0
- data/app/controllers/skyline/browser/tabs/media_library/media_files_controller.rb +31 -0
- data/app/controllers/skyline/content/editors/editable_list_controller.rb +23 -0
- data/app/controllers/skyline/content/editors/joinable_list_controller.rb +73 -0
- data/app/controllers/skyline/content_controller.rb +201 -0
- data/app/controllers/skyline/content_items_controller.rb +14 -0
- data/app/controllers/skyline/content_sections_controller.rb +15 -0
- data/app/controllers/skyline/link_section_links_controller.rb +14 -0
- data/app/controllers/skyline/locales_controller.rb +15 -0
- data/app/controllers/skyline/media_dirs_controller.rb +56 -0
- data/app/controllers/skyline/media_files_controller.rb +87 -0
- data/app/controllers/skyline/media_files_data_controller.rb +60 -0
- data/app/controllers/skyline/publications_controller.rb +45 -0
- data/app/controllers/skyline/published_publications_controller.rb +44 -0
- data/app/controllers/skyline/redirects_controller.rb +5 -0
- data/app/controllers/skyline/sections_controller.rb +24 -0
- data/app/controllers/skyline/settings_controller.rb +30 -0
- data/app/controllers/skyline/site/media_files_data_controller.rb +73 -0
- data/app/controllers/skyline/site/pages_controller.rb +50 -0
- data/app/controllers/skyline/skyline2_controller.rb +21 -0
- data/app/controllers/skyline/users_controller.rb +103 -0
- data/app/controllers/skyline/variant_current_editor_controller.rb +37 -0
- data/app/controllers/skyline/variants_controller.rb +71 -0
- data/app/helpers/skyline/application_helper.rb +82 -0
- data/app/helpers/skyline/button_helper.rb +77 -0
- data/app/helpers/skyline/content_helper.rb +160 -0
- data/app/helpers/skyline/dialog_helper.rb +30 -0
- data/app/helpers/skyline/editors/boolean.rb +6 -0
- data/app/helpers/skyline/editors/checkable_list.rb +54 -0
- data/app/helpers/skyline/editors/date.rb +15 -0
- data/app/helpers/skyline/editors/date_time.rb +11 -0
- data/app/helpers/skyline/editors/display.rb +12 -0
- data/app/helpers/skyline/editors/editable_list.rb +81 -0
- data/app/helpers/skyline/editors/editor.rb +107 -0
- data/app/helpers/skyline/editors/file_browser.rb +54 -0
- data/app/helpers/skyline/editors/heading.rb +13 -0
- data/app/helpers/skyline/editors/inline_list.rb +9 -0
- data/app/helpers/skyline/editors/joinable_list.rb +118 -0
- data/app/helpers/skyline/editors/list.rb +15 -0
- data/app/helpers/skyline/editors/page_browser.rb +54 -0
- data/app/helpers/skyline/editors/text_field.rb +12 -0
- data/app/helpers/skyline/editors/textarea.rb +11 -0
- data/app/helpers/skyline/editors/textile.rb +12 -0
- data/app/helpers/skyline/editors/wysiwyg.rb +28 -0
- data/app/helpers/skyline/media_files_helper.rb +7 -0
- data/app/helpers/skyline/message_generator.rb +25 -0
- data/app/helpers/skyline/pages_helper.rb +44 -0
- data/app/helpers/skyline/presenters/article_list.rb +139 -0
- data/app/helpers/skyline/presenters/presenter.rb +127 -0
- data/app/helpers/skyline/presenters/table.rb +30 -0
- data/app/helpers/skyline/ref_object_helper.rb +84 -0
- data/app/helpers/skyline/translation_helper.rb +36 -0
- data/app/helpers/skyline/tree_helper.rb +63 -0
- data/app/middleware/skyline/flash_session_cookie_middleware.rb +16 -0
- data/app/middleware/skyline/plugins_loader_middleware.rb +10 -0
- data/app/middleware/skyline/sprockets_middleware.rb +71 -0
- data/app/models/skyline/article.rb +272 -0
- data/app/models/skyline/article_version.rb +96 -0
- data/app/models/skyline/associated_tag.rb +15 -0
- data/app/models/skyline/grant.rb +7 -0
- data/app/models/skyline/image_ref.rb +36 -0
- data/app/models/skyline/inline_ref.rb +191 -0
- data/app/models/skyline/link_ref.rb +35 -0
- data/app/models/skyline/link_section_link.rb +24 -0
- data/app/models/skyline/media_cache.rb +39 -0
- data/app/models/skyline/media_dir.rb +62 -0
- data/app/models/skyline/media_file.rb +156 -0
- data/app/models/skyline/media_node.rb +105 -0
- data/app/models/skyline/object_ref.rb +48 -0
- data/app/models/skyline/page.rb +264 -0
- data/app/models/skyline/page_fragment.rb +14 -0
- data/app/models/skyline/publication.rb +25 -0
- data/app/models/skyline/ref_object.rb +10 -0
- data/app/models/skyline/referable_uri.rb +18 -0
- data/app/models/skyline/right.rb +6 -0
- data/app/models/skyline/role.rb +9 -0
- data/app/models/skyline/section.rb +34 -0
- data/app/models/skyline/sections/content_collection_section.rb +39 -0
- data/app/models/skyline/sections/content_item_section.rb +28 -0
- data/app/models/skyline/sections/heading_section.rb +6 -0
- data/app/models/skyline/sections/iframe_section.rb +9 -0
- data/app/models/skyline/sections/link_section.rb +22 -0
- data/app/models/skyline/sections/media_section.rb +40 -0
- data/app/models/skyline/sections/page_fragment_section.rb +8 -0
- data/app/models/skyline/sections/raw_section.rb +8 -0
- data/app/models/skyline/sections/redirect_section.rb +17 -0
- data/app/models/skyline/sections/rss_section.rb +101 -0
- data/app/models/skyline/sections/splitter_section.rb +6 -0
- data/app/models/skyline/sections/wysiwyg_section.rb +13 -0
- data/app/models/skyline/site.rb +30 -0
- data/app/models/skyline/tag.rb +34 -0
- data/app/models/skyline/user.rb +192 -0
- data/app/models/skyline/variant.rb +173 -0
- data/app/observers/skyline/article_version_observer.rb +17 -0
- data/app/observers/skyline/file_cache_sweeper.rb +23 -0
- data/app/observers/skyline/version_stamper.rb +42 -0
- data/app/templates/skyline/page/default/index.html.erb +21 -0
- data/app/templates/skyline/sections/content_collection_section/default/index.html.erb +1 -0
- data/app/templates/skyline/sections/content_item_section/default/index.html.erb +6 -0
- data/app/templates/skyline/sections/heading_section/default/index.html.erb +2 -0
- data/app/templates/skyline/sections/iframe_section/default/index.html.erb +1 -0
- data/app/templates/skyline/sections/link_section/default/index.html.erb +13 -0
- data/app/templates/skyline/sections/media_section/default/index.html.erb +15 -0
- data/app/templates/skyline/sections/page_fragment_section/default/index.html.erb +5 -0
- data/app/templates/skyline/sections/raw_section/default/index.html.erb +1 -0
- data/app/templates/skyline/sections/redirect_section/default/index.html.erb +0 -0
- data/app/templates/skyline/sections/rss_section/default/index.html.erb +11 -0
- data/app/templates/skyline/sections/splitter_section/default/index.html.erb +1 -0
- data/app/templates/skyline/sections/wysiwyg_section/default/index.html.erb +3 -0
- data/app/views/skyline/articles/_currently_editing.html.erb +18 -0
- data/app/views/skyline/articles/_meta.html.erb +146 -0
- data/app/views/skyline/articles/_security.html.erb +30 -0
- data/app/views/skyline/articles/_takeover_action.html.erb +36 -0
- data/app/views/skyline/articles/edit.html.erb +111 -0
- data/app/views/skyline/articles/edit_preview_only.html.erb +16 -0
- data/app/views/skyline/articles/index.html.erb +70 -0
- data/app/views/skyline/articles/page/_header.html.erb +72 -0
- data/app/views/skyline/articles/page/_index.html.erb +28 -0
- data/app/views/skyline/articles/page_fragment/_header.html.erb +23 -0
- data/app/views/skyline/articles/page_fragment/_index.html.erb +15 -0
- data/app/views/skyline/authentications/new.html.erb +58 -0
- data/app/views/skyline/browser/files/_index.html.erb +26 -0
- data/app/views/skyline/browser/images/_index.html.erb +62 -0
- data/app/views/skyline/browser/links/_index.html.erb +56 -0
- data/app/views/skyline/browser/pages/_index.html.erb +27 -0
- data/app/views/skyline/browser/tabs/external_image/_index.html.erb +18 -0
- data/app/views/skyline/browser/tabs/external_link/_index.html.erb +17 -0
- data/app/views/skyline/browser/tabs/media_library/_index.html.erb +51 -0
- data/app/views/skyline/browser/tabs/media_library/media_files/_index.html.erb +63 -0
- data/app/views/skyline/browser/tabs/media_library/media_files/_show.html.erb +44 -0
- data/app/views/skyline/browser/tabs/pages/_index.html.erb +49 -0
- data/app/views/skyline/content/_add.rhtml +30 -0
- data/app/views/skyline/content/_filter.rhtml +41 -0
- data/app/views/skyline/content/_group.html.erb +6 -0
- data/app/views/skyline/content/_import.html.erb +18 -0
- data/app/views/skyline/content/_index.html.erb +28 -0
- data/app/views/skyline/content/_meta.html.erb +45 -0
- data/app/views/skyline/content/_submit.html.erb +15 -0
- data/app/views/skyline/content/create.rhtml +13 -0
- data/app/views/skyline/content/edit.rhtml +13 -0
- data/app/views/skyline/content/editors/joinable_list/_add.html.erb +13 -0
- data/app/views/skyline/content/editors/joinable_list/_list.html.erb +69 -0
- data/app/views/skyline/content/error.rhtml +2 -0
- data/app/views/skyline/content/index.html.erb +0 -0
- data/app/views/skyline/content/list.rhtml +22 -0
- data/app/views/skyline/content/show.rhtml +9 -0
- data/app/views/skyline/content_items/_content_item.html.erb +3 -0
- data/app/views/skyline/content_sections/_tags.html.erb +22 -0
- data/app/views/skyline/layouts/articles.html.erb +30 -0
- data/app/views/skyline/layouts/content.html.erb +66 -0
- data/app/views/skyline/layouts/media.html.erb +22 -0
- data/app/views/skyline/layouts/pages.html.erb +59 -0
- data/app/views/skyline/layouts/settings.html.erb +40 -0
- data/app/views/skyline/link_section_links/_form.html.erb +29 -0
- data/app/views/skyline/locales/show.js.erb +14 -0
- data/app/views/skyline/media_dirs/_edit.html.erb +25 -0
- data/app/views/skyline/media_dirs/_index.html.erb +14 -0
- data/app/views/skyline/media_dirs/index.html.erb +42 -0
- data/app/views/skyline/media_files/_edit.html.erb +75 -0
- data/app/views/skyline/media_files/_header.html.erb +3 -0
- data/app/views/skyline/media_files/_index.html.erb +51 -0
- data/app/views/skyline/media_files/_new.html.erb +50 -0
- data/app/views/skyline/publications/_index.html.erb +35 -0
- data/app/views/skyline/sections/_content_collection_section.html.erb +30 -0
- data/app/views/skyline/sections/_content_item_section.html.erb +27 -0
- data/app/views/skyline/sections/_form.html.erb +45 -0
- data/app/views/skyline/sections/_heading_section.html.erb +23 -0
- data/app/views/skyline/sections/_iframe_section.html.erb +12 -0
- data/app/views/skyline/sections/_link_section.html.erb +33 -0
- data/app/views/skyline/sections/_media_section.html.erb +26 -0
- data/app/views/skyline/sections/_page_fragment_section.html.erb +8 -0
- data/app/views/skyline/sections/_raw_section.html.erb +1 -0
- data/app/views/skyline/sections/_redirect_section.html.erb +10 -0
- data/app/views/skyline/sections/_rss_section.html.erb +12 -0
- data/app/views/skyline/sections/_splitter_section.html.erb +1 -0
- data/app/views/skyline/sections/_wysiwyg_section.html.erb +21 -0
- data/app/views/skyline/settings/edit.html.erb +46 -0
- data/app/views/skyline/settings/index.html.erb +30 -0
- data/app/views/skyline/shared/_head.html.erb +29 -0
- data/app/views/skyline/shared/_header_area.html.erb +49 -0
- data/app/views/skyline/tags/_available_tags.html.erb +5 -0
- data/app/views/skyline/users/_edit.html.erb +3 -0
- data/app/views/skyline/users/_form.html.erb +73 -0
- data/app/views/skyline/users/_new.html.erb +3 -0
- data/app/views/skyline/users/index.html.erb +70 -0
- data/bin/skylinecms +5 -0
- data/config/initializers/dependencies.rb +24 -0
- data/config/initializers/javascript_generator_methods.rb +4 -0
- data/config/initializers/locales.rb +11 -0
- data/config/initializers/middlewares.rb +20 -0
- data/config/initializers/mime_types.rb +225 -0
- data/config/initializers/observers.rb +4 -0
- data/config/initializers/rails_defaults.rb +6 -0
- data/config/locales/en-US.yml +820 -0
- data/config/locales/nl-NL.yml +819 -0
- data/config/routes.rb +89 -0
- data/db/fixtures/files/test.gif +0 -0
- data/db/fixtures/roles_and_rights.rb +81 -0
- data/db/fixtures/roots.rb +15 -0
- data/db/migrate/20090302102548_add_media_nodes.rb +17 -0
- data/db/migrate/20090309133933_add_description_to_media_nodes.rb +9 -0
- data/db/migrate/20090309134731_add_tags.rb +11 -0
- data/db/migrate/20090309135746_create_media_files_tags.rb +12 -0
- data/db/migrate/20090319091342_create_media_caches.rb +13 -0
- data/db/migrate/20090327083240_create_users.rb +16 -0
- data/db/migrate/20090327084656_create_roles.rb +12 -0
- data/db/migrate/20090327084719_create_rights.rb +12 -0
- data/db/migrate/20090327084739_create_grants.rb +12 -0
- data/db/migrate/20090327090918_create_rights_roles.rb +12 -0
- data/db/migrate/20090408115155_create_ref_objects.rb +19 -0
- data/db/migrate/20090504140044_create_test_sections.rb +14 -0
- data/db/migrate/20090506083107_add_refering_column_name_to_ref_objects.rb +9 -0
- data/db/migrate/20090508145820_create_skyline_pages.rb +17 -0
- data/db/migrate/20090508145852_create_skyline_page_versions.rb +27 -0
- data/db/migrate/20090508150149_create_skyline_sections.rb +17 -0
- data/db/migrate/20090508150204_create_skyline_wysiwyg_sections.rb +12 -0
- data/db/migrate/20090508150210_create_skyline_rss_sections.rb +13 -0
- data/db/migrate/20090511074702_create_test_content_objs.rb +14 -0
- data/db/migrate/20090519143912_add_skyline_pages_locked.rb +9 -0
- data/db/migrate/20090525081942_rename_test_content_objs.rb +9 -0
- data/db/migrate/20090526090049_add_pages_url_part.rb +9 -0
- data/db/migrate/20090527130112_create_skyline_iframe_sections.rb +14 -0
- data/db/migrate/20090528080308_create_skyline_versions.rb +14 -0
- data/db/migrate/20090528090319_create_skyline_actions.rb +14 -0
- data/db/migrate/20090603104115_prefix_tables_for_skyline.rb +30 -0
- data/db/migrate/20090608131055_add_skyline_pages_navigation_title.rb +9 -0
- data/db/migrate/20090610134844_create_skyline_content_collection_sections.rb +13 -0
- data/db/migrate/20090610142139_add_skyline_tags_taggable_type.rb +11 -0
- data/db/migrate/20090610143446_move_skyline_media_files_skyline_tags_to_skyline_associated_tags.rb +14 -0
- data/db/migrate/20090616091122_add_skyline_pages_persistent.rb +9 -0
- data/db/migrate/20090616091432_add_skyline_pages_identifier.rb +9 -0
- data/db/migrate/20090616134834_create_skyline_heading_section.rb +12 -0
- data/db/migrate/20090624113754_create_skyline_content_item_section.rb +13 -0
- data/db/migrate/20090624134548_create_skyline_splitter_section.rb +11 -0
- data/db/migrate/20090624154213_create_skyline_link_sections.rb +12 -0
- data/db/migrate/20090624154251_create_skyline_link_section_links.rb +17 -0
- data/db/migrate/20090625110837_remove_skyline_actions.rb +14 -0
- data/db/migrate/20090630100045_add_media_nodes_file_type.rb +10 -0
- data/db/migrate/20090702160937_add_media_node_dimensions.rb +18 -0
- data/db/migrate/20090703101812_rename_page_title_tag.rb +9 -0
- data/db/migrate/20090706124019_add_skyline_media_node_title.rb +11 -0
- data/db/migrate/20090709142235_add_system_users_flag.rb +9 -0
- data/db/migrate/20090710145157_add_skyline_users_destroyed.rb +9 -0
- data/db/migrate/20090713133240_add_skyline_grants_primary_key.rb +9 -0
- data/db/migrate/20090714084713_migrate_sections_in_module.rb +24 -0
- data/db/migrate/20090723132822_add_skyline_page_version_current_editor.rb +13 -0
- data/db/migrate/20090804072505_create_skyline_sections_raw_sections.rb +13 -0
- data/db/migrate/20090804074053_create_skyline_sections_media_sections.rb +16 -0
- data/db/migrate/20090806134610_migrate_pages_to_articles.rb +23 -0
- data/db/migrate/20090806155411_create_skyline_page_datas.rb +85 -0
- data/db/migrate/20090807074314_create_skyline_sections_redirect_sections.rb +13 -0
- data/db/migrate/20090807112358_add_roles_system.rb +9 -0
- data/db/migrate/20090807130819_add_article_data_pointers.rb +48 -0
- data/db/migrate/20090807143152_remove_articles_cached_fields.rb +9 -0
- data/db/migrate/20090810130159_remove_page_url_part_constraint.rb +11 -0
- data/db/migrate/20090810131440_create_skyline_page_fragement_data.rb +12 -0
- data/db/migrate/20090812154655_create_skyline_sections_page_fragment_sections.rb +12 -0
- data/db/migrate/20090814102107_add_associated_tag_id.rb +9 -0
- data/db/migrate/20090904121447_create_skyline_referable_uris.rb +62 -0
- data/db/migrate/20091008134448_article_position_no_default.rb +10 -0
- data/db/migrate/20091013135821_allow_null_for_position_in_articles.rb +9 -0
- data/db/migrate/20091202130512_rename_users_destroyed_to_is_destroyed.rb +9 -0
- data/db/migrate/20091202152514_add_media_nodes_date.rb +9 -0
- data/db/migrate/20091221145204_add_skyline_media_section_link.rb +11 -0
- data/db/migrate/20100109145958_add_associated_tags_index.rb +9 -0
- data/db/migrate/20100120113953_remove_unused_articles_index.rb +9 -0
- data/doc/Bundler.md +71 -0
- data/doc/INSTALL.md +94 -0
- data/doc/MIGRATION.md +69 -0
- data/lib/skyline/belongs_to_referable.rb +166 -0
- data/lib/skyline/cli/base.rb +23 -0
- data/lib/skyline/cli/init/templates/config/initializers/skyline_configuration.rb +5 -0
- data/lib/skyline/cli/init/templates/tasks/skyline.rake +2 -0
- data/lib/skyline/cli/init.rb +119 -0
- data/lib/skyline/configuration.rb +101 -0
- data/lib/skyline/content/class_meta_data.rb +105 -0
- data/lib/skyline/content/content.rb +327 -0
- data/lib/skyline/content/exportable.rb +28 -0
- data/lib/skyline/content/field_meta_data.rb +336 -0
- data/lib/skyline/content/implementation.rb +57 -0
- data/lib/skyline/content/meta_data/class_settings.rb +18 -0
- data/lib/skyline/content/meta_data/field.rb +212 -0
- data/lib/skyline/content/meta_data/field_group.rb +83 -0
- data/lib/skyline/content/meta_data/field_page.rb +82 -0
- data/lib/skyline/content/orderable.rb +81 -0
- data/lib/skyline/content/stack.rb +111 -0
- data/lib/skyline/content/versioning/version.rb +43 -0
- data/lib/skyline/content/versioning/versionable.rb +40 -0
- data/lib/skyline/content_item_section_selectable.rb +32 -0
- data/lib/skyline/deprecated.rb +106 -0
- data/lib/skyline/form_builder.rb +182 -0
- data/lib/skyline/has_many_referables_in.rb +108 -0
- data/lib/skyline/javascript_generator_methods.rb +13 -0
- data/lib/skyline/plugins_manager.rb +29 -0
- data/lib/skyline/positionable.rb +47 -0
- data/lib/skyline/rendering/helpers/bread_crumb_helper.rb +48 -0
- data/lib/skyline/rendering/helpers/column_helper.rb +25 -0
- data/lib/skyline/rendering/helpers/renderer_helper.rb +147 -0
- data/lib/skyline/rendering/renderer.rb +391 -0
- data/lib/skyline/rendering/scopes/interface.rb +29 -0
- data/lib/skyline/rendering/scopes/wildcard.rb +16 -0
- data/lib/skyline/sections/interface.rb +42 -0
- data/lib/skyline/settings.rb +185 -0
- data/lib/skyline/taggable.rb +87 -0
- data/lib/skyline/version.rb +36 -0
- data/lib/skyline.rb +25 -0
- data/lib/skylinecms.rb +3 -0
- data/public/skyline/images/backgrounds/advanced-closed.gif +0 -0
- data/public/skyline/images/backgrounds/advanced-open.gif +0 -0
- data/public/skyline/images/backgrounds/dialog-head.gif +0 -0
- data/public/skyline/images/backgrounds/dialog-shadow-bl-corner.png +0 -0
- data/public/skyline/images/backgrounds/dialog-shadow-bottom.png +0 -0
- data/public/skyline/images/backgrounds/dialog-shadow-br-corner.png +0 -0
- data/public/skyline/images/backgrounds/dialog-shadow-left.png +0 -0
- data/public/skyline/images/backgrounds/dialog-shadow-right.png +0 -0
- data/public/skyline/images/backgrounds/dialog-shadow-tl-corner.png +0 -0
- data/public/skyline/images/backgrounds/dialog-shadow-top.png +0 -0
- data/public/skyline/images/backgrounds/dialog-shadow-tr-corner.png +0 -0
- data/public/skyline/images/backgrounds/dots.gif +0 -0
- data/public/skyline/images/backgrounds/hover.gif +0 -0
- data/public/skyline/images/backgrounds/login-contentarea.gif +0 -0
- data/public/skyline/images/backgrounds/mainnavigation.gif +0 -0
- data/public/skyline/images/backgrounds/menu-arrow-bottom.gif +0 -0
- data/public/skyline/images/backgrounds/menu-arrow-right.gif +0 -0
- data/public/skyline/images/backgrounds/menubutton-active.gif +0 -0
- data/public/skyline/images/backgrounds/menubutton-arrow.gif +0 -0
- data/public/skyline/images/backgrounds/menubutton.gif +0 -0
- data/public/skyline/images/backgrounds/messages-confirmation.gif +0 -0
- data/public/skyline/images/backgrounds/messages-error-icon.gif +0 -0
- data/public/skyline/images/backgrounds/panel-dt.gif +0 -0
- data/public/skyline/images/backgrounds/panel-footer.gif +0 -0
- data/public/skyline/images/backgrounds/panel-head-closed.gif +0 -0
- data/public/skyline/images/backgrounds/panel-head-open.gif +0 -0
- data/public/skyline/images/backgrounds/panel-head.gif +0 -0
- data/public/skyline/images/backgrounds/pixel-blue.gif +0 -0
- data/public/skyline/images/backgrounds/pixel-gray.gif +0 -0
- data/public/skyline/images/backgrounds/progressbar-bar.gif +0 -0
- data/public/skyline/images/backgrounds/progressbar.gif +0 -0
- data/public/skyline/images/backgrounds/section-splitter.gif +0 -0
- data/public/skyline/images/backgrounds/selected.gif +0 -0
- data/public/skyline/images/backgrounds/splitter.gif +0 -0
- data/public/skyline/images/backgrounds/tree-li-closed.gif +0 -0
- data/public/skyline/images/backgrounds/tree-li-last.gif +0 -0
- data/public/skyline/images/backgrounds/tree-li-open.gif +0 -0
- data/public/skyline/images/backgrounds/tree-li.gif +0 -0
- data/public/skyline/images/backgrounds/tree-ul.gif +0 -0
- data/public/skyline/images/backgrounds/usernavigation.gif +0 -0
- data/public/skyline/images/buttons/buttons-medium.gif +0 -0
- data/public/skyline/images/buttons/buttons-small.gif +0 -0
- data/public/skyline/images/buttons/dialog-close.gif +0 -0
- data/public/skyline/images/buttons/section-delete.gif +0 -0
- data/public/skyline/images/icons/attachment.gif +0 -0
- data/public/skyline/images/icons/audio.gif +0 -0
- data/public/skyline/images/icons/cog-blue.gif +0 -0
- data/public/skyline/images/icons/cog.gif +0 -0
- data/public/skyline/images/icons/compressed.gif +0 -0
- data/public/skyline/images/icons/default.gif +0 -0
- data/public/skyline/images/icons/drag.gif +0 -0
- data/public/skyline/images/icons/excel.gif +0 -0
- data/public/skyline/images/icons/executable.gif +0 -0
- data/public/skyline/images/icons/false.gif +0 -0
- data/public/skyline/images/icons/file-failed.gif +0 -0
- data/public/skyline/images/icons/file-success.gif +0 -0
- data/public/skyline/images/icons/flash.gif +0 -0
- data/public/skyline/images/icons/folder.gif +0 -0
- data/public/skyline/images/icons/html.gif +0 -0
- data/public/skyline/images/icons/image.gif +0 -0
- data/public/skyline/images/icons/link-external.gif +0 -0
- data/public/skyline/images/icons/lock-open.gif +0 -0
- data/public/skyline/images/icons/lock.gif +0 -0
- data/public/skyline/images/icons/pages.gif +0 -0
- data/public/skyline/images/icons/pdf.gif +0 -0
- data/public/skyline/images/icons/powerpoint.gif +0 -0
- data/public/skyline/images/icons/text.gif +0 -0
- data/public/skyline/images/icons/toolbar.gif +0 -0
- data/public/skyline/images/icons/true.gif +0 -0
- data/public/skyline/images/icons/video.gif +0 -0
- data/public/skyline/images/icons/word.gif +0 -0
- data/public/skyline/images/logo.gif +0 -0
- data/public/skyline/images/logo.png +0 -0
- data/public/skyline/images/spinner.gif +0 -0
- data/public/skyline/javascripts/README +5 -0
- data/public/skyline/javascripts/src/application.js +403 -0
- data/public/skyline/javascripts/src/browser.js +267 -0
- data/public/skyline/javascripts/src/draggable_files.js +102 -0
- data/public/skyline/javascripts/src/library_uploader.js +226 -0
- data/public/skyline/javascripts/src/messages.js +61 -0
- data/public/skyline/javascripts/src/mootools_on_rails.js +53 -0
- data/public/skyline/javascripts/src/page_helper.js +49 -0
- data/public/skyline/javascripts/src/poller.js +51 -0
- data/public/skyline/javascripts/src/sections.js +70 -0
- data/public/skyline/javascripts/src/skyline/assets/dialog/button-close.gif +0 -0
- data/public/skyline/javascripts/src/skyline/assets/dialog/dialog.css +104 -0
- data/public/skyline/javascripts/src/skyline/assets/dialog/head.gif +0 -0
- data/public/skyline/javascripts/src/skyline/assets/dialog/shadow-bl-corner.png +0 -0
- data/public/skyline/javascripts/src/skyline/assets/dialog/shadow-bottom.png +0 -0
- data/public/skyline/javascripts/src/skyline/assets/dialog/shadow-br-corner.png +0 -0
- data/public/skyline/javascripts/src/skyline/assets/dialog/shadow-left.png +0 -0
- data/public/skyline/javascripts/src/skyline/assets/dialog/shadow-right.png +0 -0
- data/public/skyline/javascripts/src/skyline/assets/dialog/shadow-tl-corner.png +0 -0
- data/public/skyline/javascripts/src/skyline/assets/dialog/shadow-top.png +0 -0
- data/public/skyline/javascripts/src/skyline/assets/dialog/shadow-tr-corner.png +0 -0
- data/public/skyline/javascripts/src/skyline/assets/menubutton/menubutton-active.gif +0 -0
- data/public/skyline/javascripts/src/skyline/assets/menubutton/menubutton-arrow.gif +0 -0
- data/public/skyline/javascripts/src/skyline/assets/menubutton/menubutton.css +66 -0
- data/public/skyline/javascripts/src/skyline/assets/menubutton/menubutton.gif +0 -0
- data/public/skyline/javascripts/src/skyline/assets/tree/icon.gif +0 -0
- data/public/skyline/javascripts/src/skyline/assets/tree/last.gif +0 -0
- data/public/skyline/javascripts/src/skyline/assets/tree/li.gif +0 -0
- data/public/skyline/javascripts/src/skyline/assets/tree/middle-closed.gif +0 -0
- data/public/skyline/javascripts/src/skyline/assets/tree/middle-open.gif +0 -0
- data/public/skyline/javascripts/src/skyline/assets/tree/tree.css +91 -0
- data/public/skyline/javascripts/src/skyline/assets/tree/tree_vert_line.png +0 -0
- data/public/skyline/javascripts/src/skyline/src/dialog.js +286 -0
- data/public/skyline/javascripts/src/skyline/src/drag.js +59 -0
- data/public/skyline/javascripts/src/skyline/src/field_replicator.js +55 -0
- data/public/skyline/javascripts/src/skyline/src/hover_select.js +46 -0
- data/public/skyline/javascripts/src/skyline/src/layout.js +417 -0
- data/public/skyline/javascripts/src/skyline/src/menu.js +54 -0
- data/public/skyline/javascripts/src/skyline/src/menubutton.js +122 -0
- data/public/skyline/javascripts/src/skyline/src/skyline.js +6 -0
- data/public/skyline/javascripts/src/skyline/src/sortable.js +146 -0
- data/public/skyline/javascripts/src/skyline/src/tabs.js +131 -0
- data/public/skyline/javascripts/src/skyline/src/tag_selector.js +110 -0
- data/public/skyline/javascripts/src/skyline/src/toggle.js +66 -0
- data/public/skyline/javascripts/src/skyline/src/tree.js +399 -0
- data/public/skyline/javascripts/src/skyline/src/uploader.js +115 -0
- data/public/skyline/javascripts/src/skyline/src/utils.js +31 -0
- data/public/skyline/javascripts/src/skyline/vendor/fancyupload/FancyUpload2.js +251 -0
- data/public/skyline/javascripts/src/skyline/vendor/fancyupload/FancyUpload3.Attach.js +222 -0
- data/public/skyline/javascripts/src/skyline/vendor/fancyupload/Fx.ProgressBar.js +71 -0
- data/public/skyline/javascripts/src/skyline/vendor/fancyupload/Swiff.Uploader.js +488 -0
- data/public/skyline/javascripts/src/skyline/vendor/fancyupload/Swiff.Uploader.swf +0 -0
- data/public/skyline/javascripts/src/skyline/vendor/mootools/mootools-core.js +356 -0
- data/public/skyline/javascripts/src/skyline/vendor/mootools/mootools-more.js +82 -0
- data/public/skyline/javascripts/src/skyline.editor/assets/content.css +21 -0
- data/public/skyline/javascripts/src/skyline.editor/assets/dialog.css +116 -0
- data/public/skyline/javascripts/src/skyline.editor/assets/icons.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/assets/ui.css +211 -0
- data/public/skyline/javascripts/src/skyline.editor/dialogs/anchor.htm +31 -0
- data/public/skyline/javascripts/src/skyline.editor/dialogs/charmap.htm +53 -0
- data/public/skyline/javascripts/src/skyline.editor/dialogs/color_picker.htm +75 -0
- data/public/skyline/javascripts/src/skyline.editor/dialogs/skyline_code.html +17 -0
- data/public/skyline/javascripts/src/skyline.editor/src/plugins/autoresize/editor_plugin.js +115 -0
- data/public/skyline/javascripts/src/skyline.editor/src/plugins/skylinecode/dialog.js +87 -0
- data/public/skyline/javascripts/src/skyline.editor/src/plugins/skylinecode/editor_plugin.js +38 -0
- data/public/skyline/javascripts/src/skyline.editor/src/plugins/skylinecontextmenu/editor_plugin.js +89 -0
- data/public/skyline/javascripts/src/skyline.editor/src/plugins/skylineimage/dialog.js +88 -0
- data/public/skyline/javascripts/src/skyline.editor/src/plugins/skylineimage/editor_plugin.js +33 -0
- data/public/skyline/javascripts/src/skyline.editor/src/plugins/skylinelink/dialog.js +113 -0
- data/public/skyline/javascripts/src/skyline.editor/src/plugins/skylinelink/editor_plugin.js +51 -0
- data/public/skyline/javascripts/src/skyline.editor/src/plugins/skylinetable/editor_plugin.js +1087 -0
- data/public/skyline/javascripts/src/skyline.editor/src/plugins/skylinewindows/editor_plugin.js +263 -0
- data/public/skyline/javascripts/src/skyline.editor/src/script_loader.js +96 -0
- data/public/skyline/javascripts/src/skyline.editor/src/skyline.editor.js +135 -0
- data/public/skyline/javascripts/src/skyline.editor/src/theme.js +636 -0
- data/public/skyline/javascripts/src/skyline.editor/src/ui/separator.js +34 -0
- data/public/skyline/javascripts/src/skyline.editor/src/ui/toolbar.js +102 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/build.bat +2 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/build.xml +364 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/changelog.txt +886 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/css/content.css +51 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/css/word.css +53 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/full.html +85 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/full_jquery.html +94 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/index.html +10 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/lists/image_list.js +9 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/lists/link_list.js +10 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/lists/media_list.js +10 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/lists/template_list.js +9 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/media/logo.jpg +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/media/logo_over.jpg +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/media/sample.avi +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/media/sample.dcr +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/media/sample.mov +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/media/sample.ram +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/media/sample.rm +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/media/sample.swf +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/menu.html +16 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/simple.html +43 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/skins.html +212 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/templates/layout1.htm +15 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/templates/snippet1.htm +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/translate.html +80 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/word.html +67 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/AddOnManager.js +95 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/CommandManager.js +54 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ControlManager.js +489 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/Developer.js +91 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/Editor.js +2295 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/EditorCommands.js +934 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/EditorManager.js +453 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ForceBlocks.js +644 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/Popup.js +412 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/UndoManager.js +183 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/WindowManager.js +169 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/adapter/jquery/adapter.js +240 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/adapter/jquery/jquery.tinymce.js +179 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/adapter/prototype/adapter.js +38 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/commands/BlockQuote.js +135 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/commands/CutCopyPaste.js +24 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/commands/InsertHorizontalRule.js +15 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/commands/RemoveFormat.js +173 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/commands/UndoRedo.js +38 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/DOMUtils.js +1823 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/Element.js +199 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/EventUtils.js +349 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/Range.js +721 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/ScriptLoader.js +351 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/Selection.js +747 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/Serializer.js +979 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/Sizzle.js +975 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/StringWriter.js +200 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/TridentSelection.js +273 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/XMLWriter.js +155 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/firebug/firebug-lite.js +2518 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/tinymce.js +549 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/Button.js +68 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/ColorSplitButton.js +212 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/Container.js +56 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/Control.js +182 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/DropMenu.js +397 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/ListBox.js +320 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/Menu.js +175 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/MenuButton.js +128 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/MenuItem.js +69 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/NativeListBox.js +198 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/Separator.js +34 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/SplitButton.js +99 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/Toolbar.js +86 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/util/Cookie.js +126 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/util/Dispatcher.js +101 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/util/JSON.js +81 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/util/JSONP.js +25 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/util/JSONRequest.js +87 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/util/URI.js +289 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/util/XHR.js +80 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/xml/Parser.js +126 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/jquery.tinymce.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/langs/en.js +154 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/license.txt +504 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advhr/css/advhr.css +5 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin_src.js +54 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advhr/js/rule.js +43 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advhr/langs/en_dlg.js +5 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advhr/rule.htm +62 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advimage/css/advimage.css +13 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin_src.js +47 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advimage/image.htm +237 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advimage/img/sample.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advimage/js/image.js +443 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advimage/langs/en_dlg.js +43 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlink/css/advlink.css +8 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin_src.js +58 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlink/js/advlink.js +528 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlink/langs/en_dlg.js +52 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlink/link.htm +338 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin_src.js +111 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin_src.js +51 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js +117 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/compat2x/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/compat2x/editor_plugin_src.js +616 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js +95 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js +79 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin_src.js +40 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/emotions.htm +40 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cool.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cry.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-embarassed.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-frown.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-innocent.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-kiss.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-smile.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-undecided.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-wink.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-yell.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/js/emotions.js +22 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/langs/en_dlg.js +20 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/example/dialog.htm +27 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin_src.js +81 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/example/img/example.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/example/js/dialog.js +19 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/example/langs/en.js +3 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/example/langs/en_dlg.js +3 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/css/fullpage.css +182 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js +146 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm +576 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js +461 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/en_dlg.js +85 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js +145 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullscreen/fullscreen.htm +110 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin_src.js +51 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js +632 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css +90 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/template.htm +387 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin_src.js +80 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js +209 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/css/content.css +6 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/css/media.css +16 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin_src.js +405 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/img/flash.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/img/flv_player.swf +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/img/quicktime.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/img/realmedia.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/img/shockwave.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/img/trans.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/img/windowsmedia.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/js/embed.js +73 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/js/media.js +630 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/langs/en_dlg.js +103 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/media.htm +822 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js +50 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin_src.js +87 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/pagebreak/css/content.css +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js +74 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/pagebreak/img/pagebreak.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/pagebreak/img/trans.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin_src.js +512 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/paste/js/pastetext.js +36 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/paste/js/pasteword.js +51 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/paste/langs/en_dlg.js +5 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/paste/pastetext.htm +33 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/paste/pasteword.htm +27 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin_src.js +50 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/preview/example.html +28 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/preview/jscripts/embed.js +73 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/preview/preview.html +17 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin_src.js +31 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/safari/blank.htm +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin_src.js +438 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin_src.js +98 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/searchreplace/css/searchreplace.css +6 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js +54 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js +126 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js +16 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm +104 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/spellchecker/css/content.css +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js +338 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/spellchecker/img/wline.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/style/css/props.css +13 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin_src.js +52 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/style/js/props.js +641 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/style/langs/en_dlg.js +63 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/style/props.htm +730 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js +109 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/cell.htm +183 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/css/cell.css +17 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/css/row.css +25 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/css/table.css +13 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js +1136 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js +269 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/js/merge_cells.js +29 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/js/row.js +212 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/js/table.js +440 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/langs/en_dlg.js +74 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm +37 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/row.htm +160 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/table.htm +192 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/template/blank.htm +12 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/template/css/template.css +23 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin_src.js +156 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/template/js/template.js +106 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/template/langs/en_dlg.js +15 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/template/template.htm +38 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin_src.js +73 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/abbr.htm +148 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/acronym.htm +148 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/attributes.htm +153 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/cite.htm +148 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css +11 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/popup.css +9 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/del.htm +169 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js +136 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/ins.htm +169 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js +25 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js +25 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js +123 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/cite.js +25 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/del.js +60 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js +231 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/ins.js +59 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js +32 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/about.htm +56 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/anchor.htm +31 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/charmap.htm +53 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/color_picker.htm +75 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/editor_template.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/editor_template_src.js +1153 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/image.htm +85 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/img/colorpicker.jpg +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/img/icons.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/about.js +72 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js +37 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/charmap.js +325 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/color_picker.js +253 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/image.js +245 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/link.js +156 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/source_editor.js +62 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/langs/en.js +62 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/langs/en_dlg.js +51 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/link.htm +63 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/content.css +32 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/dialog.css +116 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/buttons.png +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/items.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/progress.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/ui.css +214 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/content.css +32 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css +115 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui.css +215 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +8 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +5 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/source_editor.htm +31 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/simple/editor_template.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js +85 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/simple/img/icons.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/simple/langs/en.js +11 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/simple/skins/default/content.css +25 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/simple/skins/default/ui.css +32 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/content.css +17 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/ui.css +35 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce_dev.js +128 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce_jquery.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce_jquery_src.js +12198 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce_popup.js +5 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce_prototype.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce_prototype_src.js +13057 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce_src.js +13030 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/utils/editable_selects.js +69 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/utils/form_utils.js +199 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/utils/mctabs.js +76 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/utils/validate.js +219 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/api.html +18 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/api_jquery.html +18 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/api_prototype.html +19 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/basic.html +548 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/crossdomain.html +87 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/css/unit.css +120 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/index.html +10 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/jquery_plugin.html +112 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/js/api.js +1438 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/js/testrunner.js +791 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/main.html +8 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/media.html +221 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/menu.html +22 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/parts.html +90 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/paste.html +132 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/performance.html +152 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/range.html +522 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/removeformat.html +88 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/selection.html +235 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/config.ini +27 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/footer.html +3 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/header.html +6 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/index.php +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/instructions.txt +4 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/logo.png +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/selectors.list +40 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/style.css +181 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/system/index.php +112 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/system/slickspeed.js +147 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/system/template.php +47 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/template.html +2865 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/test.xml +6 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tools/ant/ant-contrib.jar +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tools/ant/js_build_tools.jar +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tools/ant/svnClientAdapter.jar +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tools/ant/svnant.jar +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tools/ant/svnjavahl.jar +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tools/ant/svnkit.jar +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tools/ant/yuicompressor.jar +0 -0
- data/public/skyline/javascripts/src/skyline.editor.js +1 -0
- data/public/skyline/javascripts/src/skyline.js +16 -0
- data/public/skyline/javascripts/src/utils.js +111 -0
- data/public/skyline/stylesheets/general.css +2291 -0
- data/public/skyline/stylesheets/ie.css +47 -0
- data/public/skyline/stylesheets/undohtml.css +53 -0
- data/public/skyline/stylesheets/wysiwyg.css +28 -0
- data/rails/init.rb +32 -0
- data/recipes/deploy.rb +31 -0
- data/tasks/database.rake +66 -0
- data/tasks/implementation.rake +2 -0
- data/vendor/andand/andand.rb +96 -0
- data/vendor/digitpaint/configure.rb +144 -0
- data/vendor/digitpaint/nested_attributes_positioning.rb +70 -0
- data/vendor/digitpaint/personify/README.md +86 -0
- data/vendor/digitpaint/personify/lib/parser/personify.rb +838 -0
- data/vendor/digitpaint/personify/lib/parser/personify.treetop +126 -0
- data/vendor/digitpaint/personify/lib/parser/personify_node_classes.rb +7 -0
- data/vendor/digitpaint/personify/lib/template.rb +16 -0
- data/vendor/digitpaint/personify/personify.rb +7 -0
- data/vendor/digitpaint/personify/script/generate_parser.rb +6 -0
- data/vendor/digitpaint/personify/vendor/treetop/History.txt +9 -0
- data/vendor/digitpaint/personify/vendor/treetop/README +164 -0
- data/vendor/digitpaint/personify/vendor/treetop/Rakefile +20 -0
- data/vendor/digitpaint/personify/vendor/treetop/Treetop.tmbundle/Snippets/grammar ___ end.tmSnippet +20 -0
- data/vendor/digitpaint/personify/vendor/treetop/Treetop.tmbundle/Snippets/rule ___ end.tmSnippet +18 -0
- data/vendor/digitpaint/personify/vendor/treetop/Treetop.tmbundle/Syntaxes/Treetop Grammar.tmLanguage +251 -0
- data/vendor/digitpaint/personify/vendor/treetop/Treetop.tmbundle/info.plist +10 -0
- data/vendor/digitpaint/personify/vendor/treetop/bin/tt +28 -0
- data/vendor/digitpaint/personify/vendor/treetop/doc/contributing_and_planned_features.markdown +103 -0
- data/vendor/digitpaint/personify/vendor/treetop/doc/grammar_composition.markdown +65 -0
- data/vendor/digitpaint/personify/vendor/treetop/doc/index.markdown +90 -0
- data/vendor/digitpaint/personify/vendor/treetop/doc/pitfalls_and_advanced_techniques.markdown +51 -0
- data/vendor/digitpaint/personify/vendor/treetop/doc/semantic_interpretation.markdown +189 -0
- data/vendor/digitpaint/personify/vendor/treetop/doc/site.rb +110 -0
- data/vendor/digitpaint/personify/vendor/treetop/doc/sitegen.rb +60 -0
- data/vendor/digitpaint/personify/vendor/treetop/doc/syntactic_recognition.markdown +100 -0
- data/vendor/digitpaint/personify/vendor/treetop/doc/using_in_ruby.markdown +21 -0
- data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/arithmetic.rb +551 -0
- data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/arithmetic.treetop +97 -0
- data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/arithmetic_node_classes.rb +7 -0
- data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/arithmetic_test.rb +54 -0
- data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/lambda_calculus +0 -0
- data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/lambda_calculus.rb +718 -0
- data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/lambda_calculus.treetop +132 -0
- data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/lambda_calculus_node_classes.rb +5 -0
- data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/lambda_calculus_test.rb +89 -0
- data/vendor/digitpaint/personify/vendor/treetop/examples/lambda_calculus/test_helper.rb +18 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/bootstrap_gen_1_metagrammar.rb +45 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/grammar_compiler.rb +40 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/lexical_address_space.rb +17 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/metagrammar.rb +2955 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/metagrammar.treetop +404 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/anything_symbol.rb +20 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/atomic_expression.rb +14 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/character_class.rb +22 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/choice.rb +31 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/declaration_sequence.rb +24 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/grammar.rb +28 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/inline_module.rb +27 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/nonterminal.rb +13 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/optional.rb +19 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/parenthesized_expression.rb +9 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/parsing_expression.rb +138 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/parsing_rule.rb +55 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/predicate.rb +45 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/repetition.rb +55 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/sequence.rb +68 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/terminal.rb +20 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/transient_prefix.rb +9 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/treetop_file.rb +9 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes.rb +19 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/ruby_builder.rb +113 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler.rb +6 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/ruby_extensions/string.rb +42 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/ruby_extensions.rb +2 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime/compiled_parser.rb +95 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime/interval_skip_list/head_node.rb +15 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime/interval_skip_list/interval_skip_list.rb +200 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime/interval_skip_list/node.rb +164 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime/interval_skip_list.rb +4 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime/syntax_node.rb +72 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime/terminal_parse_failure.rb +16 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime/terminal_syntax_node.rb +17 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/runtime.rb +5 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop/version.rb +9 -0
- data/vendor/digitpaint/personify/vendor/treetop/lib/treetop.rb +11 -0
- data/vendor/digitpaint/personify/vendor/treetop/script/generate_metagrammar.rb +14 -0
- data/vendor/digitpaint/personify/vendor/treetop/script/svnadd +11 -0
- data/vendor/digitpaint/personify/vendor/treetop/script/svnrm +11 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/and_predicate_spec.rb +36 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/anything_symbol_spec.rb +52 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/character_class_spec.rb +188 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/choice_spec.rb +80 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/circular_compilation_spec.rb +28 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/failure_propagation_functional_spec.rb +21 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/grammar_compiler_spec.rb +84 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/grammar_spec.rb +41 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/nonterminal_symbol_spec.rb +40 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/not_predicate_spec.rb +38 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/one_or_more_spec.rb +35 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/optional_spec.rb +37 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/parenthesized_expression_spec.rb +19 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/parsing_rule_spec.rb +32 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/sequence_spec.rb +115 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/terminal_spec.rb +81 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/terminal_symbol_spec.rb +37 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/test_grammar.treetop +7 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/test_grammar.tt +7 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/test_grammar_do.treetop +7 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/compiler/zero_or_more_spec.rb +56 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/composition/a.treetop +11 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/composition/b.treetop +11 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/composition/c.treetop +10 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/composition/d.treetop +10 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/composition/grammar_composition_spec.rb +26 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/ruby_extensions/string_spec.rb +32 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/compiled_parser_spec.rb +101 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/delete_spec.rb +147 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/expire_range_spec.rb +349 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/insert_and_delete_node.rb +385 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/insert_spec.rb +660 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/interval_skip_list_spec.graffle +6175 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/interval_skip_list_spec.rb +58 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/palindromic_fixture.rb +23 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/palindromic_fixture_spec.rb +164 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/interval_skip_list/spec_helper.rb +84 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/runtime/syntax_node_spec.rb +53 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/spec_helper.rb +106 -0
- data/vendor/digitpaint/personify/vendor/treetop/spec/spec_suite.rb +4 -0
- data/vendor/digitpaint/personify/vendor/treetop/treetop.gemspec +18 -0
- data/vendor/digitpaint/unique_identifiers.rb +89 -0
- data/vendor/mootools-on-rails/README +54 -0
- data/vendor/mootools-on-rails/Rakefile +22 -0
- data/vendor/mootools-on-rails/lib/mootools_on_rails/mootools_helper.rb +501 -0
- data/vendor/mootools-on-rails/lib/mootools_on_rails.rb +30 -0
- data/vendor/weppos/url_validation.rb +76 -0
- metadata +1192 -0
@@ -0,0 +1,1823 @@
|
|
1
|
+
/**
|
2
|
+
* $Id: DOMUtils.js 1154 2009-06-10 17:31:03Z spocke $
|
3
|
+
*
|
4
|
+
* @author Moxiecode
|
5
|
+
* @copyright Copyright � 2004-2008, Moxiecode Systems AB, All rights reserved.
|
6
|
+
*/
|
7
|
+
|
8
|
+
(function(tinymce) {
|
9
|
+
// Shorten names
|
10
|
+
var each = tinymce.each, is = tinymce.is;
|
11
|
+
var isWebKit = tinymce.isWebKit, isIE = tinymce.isIE;
|
12
|
+
|
13
|
+
/**#@+
|
14
|
+
* @class Utility class for various DOM manipulation and retrival functions.
|
15
|
+
* @member tinymce.dom.DOMUtils
|
16
|
+
*/
|
17
|
+
tinymce.create('tinymce.dom.DOMUtils', {
|
18
|
+
doc : null,
|
19
|
+
root : null,
|
20
|
+
files : null,
|
21
|
+
pixelStyles : /^(top|left|bottom|right|width|height|borderWidth)$/,
|
22
|
+
props : {
|
23
|
+
"for" : "htmlFor",
|
24
|
+
"class" : "className",
|
25
|
+
className : "className",
|
26
|
+
checked : "checked",
|
27
|
+
disabled : "disabled",
|
28
|
+
maxlength : "maxLength",
|
29
|
+
readonly : "readOnly",
|
30
|
+
selected : "selected",
|
31
|
+
value : "value",
|
32
|
+
id : "id",
|
33
|
+
name : "name",
|
34
|
+
type : "type"
|
35
|
+
},
|
36
|
+
|
37
|
+
/**
|
38
|
+
* Constructs a new DOMUtils instance. Consult the Wiki for more details on settings etc for this class.
|
39
|
+
*
|
40
|
+
* @constructor
|
41
|
+
* @param {Document} d Document reference to bind the utility class to.
|
42
|
+
* @param {settings} s Optional settings collection.
|
43
|
+
*/
|
44
|
+
DOMUtils : function(d, s) {
|
45
|
+
var t = this;
|
46
|
+
|
47
|
+
t.doc = d;
|
48
|
+
t.win = window;
|
49
|
+
t.files = {};
|
50
|
+
t.cssFlicker = false;
|
51
|
+
t.counter = 0;
|
52
|
+
t.boxModel = !tinymce.isIE || d.compatMode == "CSS1Compat";
|
53
|
+
t.stdMode = d.documentMode === 8;
|
54
|
+
|
55
|
+
t.settings = s = tinymce.extend({
|
56
|
+
keep_values : false,
|
57
|
+
hex_colors : 1,
|
58
|
+
process_html : 1
|
59
|
+
}, s);
|
60
|
+
|
61
|
+
// Fix IE6SP2 flicker and check it failed for pre SP2
|
62
|
+
if (tinymce.isIE6) {
|
63
|
+
try {
|
64
|
+
d.execCommand('BackgroundImageCache', false, true);
|
65
|
+
} catch (e) {
|
66
|
+
t.cssFlicker = true;
|
67
|
+
}
|
68
|
+
}
|
69
|
+
|
70
|
+
tinymce.addUnload(t.destroy, t);
|
71
|
+
},
|
72
|
+
|
73
|
+
/**#@+
|
74
|
+
* @method
|
75
|
+
*/
|
76
|
+
|
77
|
+
/**
|
78
|
+
* Returns the root node of the document this is normally the body but might be a DIV. Parents like getParent will not
|
79
|
+
* go above the point of this root node.
|
80
|
+
*
|
81
|
+
* @return {Element} Root element for the utility class.
|
82
|
+
*/
|
83
|
+
getRoot : function() {
|
84
|
+
var t = this, s = t.settings;
|
85
|
+
|
86
|
+
return (s && t.get(s.root_element)) || t.doc.body;
|
87
|
+
},
|
88
|
+
|
89
|
+
/**
|
90
|
+
* Returns the viewport of the window.
|
91
|
+
*
|
92
|
+
* @param {Window} w Optional window to get viewport of.
|
93
|
+
* @return {Object} Viewport object with fields x, y, w and h.
|
94
|
+
*/
|
95
|
+
getViewPort : function(w) {
|
96
|
+
var d, b;
|
97
|
+
|
98
|
+
w = !w ? this.win : w;
|
99
|
+
d = w.document;
|
100
|
+
b = this.boxModel ? d.documentElement : d.body;
|
101
|
+
|
102
|
+
// Returns viewport size excluding scrollbars
|
103
|
+
return {
|
104
|
+
x : w.pageXOffset || b.scrollLeft,
|
105
|
+
y : w.pageYOffset || b.scrollTop,
|
106
|
+
w : w.innerWidth || b.clientWidth,
|
107
|
+
h : w.innerHeight || b.clientHeight
|
108
|
+
};
|
109
|
+
},
|
110
|
+
|
111
|
+
/**
|
112
|
+
* Returns the rectangle for a specific element.
|
113
|
+
*
|
114
|
+
* @param {Element/String} e Element object or element ID to get rectange from.
|
115
|
+
* @return {object} Rectange for specified element object with x, y, w, h fields.
|
116
|
+
*/
|
117
|
+
getRect : function(e) {
|
118
|
+
var p, t = this, sr;
|
119
|
+
|
120
|
+
e = t.get(e);
|
121
|
+
p = t.getPos(e);
|
122
|
+
sr = t.getSize(e);
|
123
|
+
|
124
|
+
return {
|
125
|
+
x : p.x,
|
126
|
+
y : p.y,
|
127
|
+
w : sr.w,
|
128
|
+
h : sr.h
|
129
|
+
};
|
130
|
+
},
|
131
|
+
|
132
|
+
/**
|
133
|
+
* Returns the size dimensions of the specified element.
|
134
|
+
*
|
135
|
+
* @param {Element/String} e Element object or element ID to get rectange from.
|
136
|
+
* @return {object} Rectange for specified element object with w, h fields.
|
137
|
+
*/
|
138
|
+
getSize : function(e) {
|
139
|
+
var t = this, w, h;
|
140
|
+
|
141
|
+
e = t.get(e);
|
142
|
+
w = t.getStyle(e, 'width');
|
143
|
+
h = t.getStyle(e, 'height');
|
144
|
+
|
145
|
+
// Non pixel value, then force offset/clientWidth
|
146
|
+
if (w.indexOf('px') === -1)
|
147
|
+
w = 0;
|
148
|
+
|
149
|
+
// Non pixel value, then force offset/clientWidth
|
150
|
+
if (h.indexOf('px') === -1)
|
151
|
+
h = 0;
|
152
|
+
|
153
|
+
return {
|
154
|
+
w : parseInt(w) || e.offsetWidth || e.clientWidth,
|
155
|
+
h : parseInt(h) || e.offsetHeight || e.clientHeight
|
156
|
+
};
|
157
|
+
},
|
158
|
+
|
159
|
+
/**
|
160
|
+
* Returns a node by the specified selector function. This function will
|
161
|
+
* loop through all parent nodes and call the specified function for each node.
|
162
|
+
* If the function then returns true indicating that it has found what it was looking for, the loop execution will then end
|
163
|
+
* and the node it found will be returned.
|
164
|
+
*
|
165
|
+
* @param {Node/String} n DOM node to search parents on or ID string.
|
166
|
+
* @param {function} f Selection function to execute on each node or CSS pattern.
|
167
|
+
* @param {Node} r Optional root element, never go below this point.
|
168
|
+
* @return {Node} DOM Node or null if it wasn't found.
|
169
|
+
*/
|
170
|
+
getParent : function(n, f, r) {
|
171
|
+
return this.getParents(n, f, r, false);
|
172
|
+
},
|
173
|
+
|
174
|
+
/**
|
175
|
+
* Returns a node list of all parents matching the specified selector function or pattern.
|
176
|
+
* If the function then returns true indicating that it has found what it was looking for and that node will be collected.
|
177
|
+
*
|
178
|
+
* @param {Node/String} n DOM node to search parents on or ID string.
|
179
|
+
* @param {function} f Selection function to execute on each node or CSS pattern.
|
180
|
+
* @param {Node} r Optional root element, never go below this point.
|
181
|
+
* @return {Array} Array of nodes or null if it wasn't found.
|
182
|
+
*/
|
183
|
+
getParents : function(n, f, r, c) {
|
184
|
+
var t = this, na, se = t.settings, o = [];
|
185
|
+
|
186
|
+
n = t.get(n);
|
187
|
+
c = c === undefined;
|
188
|
+
|
189
|
+
if (se.strict_root)
|
190
|
+
r = r || t.getRoot();
|
191
|
+
|
192
|
+
// Wrap node name as func
|
193
|
+
if (is(f, 'string')) {
|
194
|
+
na = f;
|
195
|
+
|
196
|
+
if (f === '*') {
|
197
|
+
f = function(n) {return n.nodeType == 1;};
|
198
|
+
} else {
|
199
|
+
f = function(n) {
|
200
|
+
return t.is(n, na);
|
201
|
+
};
|
202
|
+
}
|
203
|
+
}
|
204
|
+
|
205
|
+
while (n) {
|
206
|
+
if (n == r || !n.nodeType || n.nodeType === 9)
|
207
|
+
break;
|
208
|
+
|
209
|
+
if (!f || f(n)) {
|
210
|
+
if (c)
|
211
|
+
o.push(n);
|
212
|
+
else
|
213
|
+
return n;
|
214
|
+
}
|
215
|
+
|
216
|
+
n = n.parentNode;
|
217
|
+
}
|
218
|
+
|
219
|
+
return c ? o : null;
|
220
|
+
},
|
221
|
+
|
222
|
+
/**
|
223
|
+
* Returns the specified element by ID or the input element if it isn't a string.
|
224
|
+
*
|
225
|
+
* @param {String/Element} n Element id to look for or element to just pass though.
|
226
|
+
* @return {Element} Element matching the specified id or null if it wasn't found.
|
227
|
+
*/
|
228
|
+
get : function(e) {
|
229
|
+
var n;
|
230
|
+
|
231
|
+
if (e && this.doc && typeof(e) == 'string') {
|
232
|
+
n = e;
|
233
|
+
e = this.doc.getElementById(e);
|
234
|
+
|
235
|
+
// IE and Opera returns meta elements when they match the specified input ID, but getElementsByName seems to do the trick
|
236
|
+
if (e && e.id !== n)
|
237
|
+
return this.doc.getElementsByName(n)[1];
|
238
|
+
}
|
239
|
+
|
240
|
+
return e;
|
241
|
+
},
|
242
|
+
|
243
|
+
// #ifndef jquery
|
244
|
+
|
245
|
+
/**
|
246
|
+
* Selects specific elements by a CSS level 3 pattern. For example "div#a1 p.test".
|
247
|
+
* This function is optimized for the most common patterns needed in TinyMCE but it also performes good enough
|
248
|
+
* on more complex patterns.
|
249
|
+
*
|
250
|
+
* @param {String} p CSS level 1 pattern to select/find elements by.
|
251
|
+
* @param {Object} s Optional root element/scope element to search in.
|
252
|
+
* @return {Array} Array with all matched elements.
|
253
|
+
*/
|
254
|
+
select : function(pa, s) {
|
255
|
+
var t = this;
|
256
|
+
|
257
|
+
return tinymce.dom.Sizzle(pa, t.get(s) || t.get(t.settings.root_element) || t.doc, []);
|
258
|
+
},
|
259
|
+
|
260
|
+
/**
|
261
|
+
* Returns true/false if the specified element matches the specified css pattern.
|
262
|
+
*
|
263
|
+
* @param {Node/NodeList} n DOM node to match or an array of nodes to match.
|
264
|
+
* @param {String} patt CSS pattern to match the element agains.
|
265
|
+
*/
|
266
|
+
is : function(n, patt) {
|
267
|
+
return tinymce.dom.Sizzle.matches(patt, n.nodeType ? [n] : n).length > 0;
|
268
|
+
},
|
269
|
+
|
270
|
+
// #endif
|
271
|
+
|
272
|
+
/**
|
273
|
+
* Adds the specified element to another element or elements.
|
274
|
+
*
|
275
|
+
* @param {String/Element/Array} Element id string, DOM node element or array of id's or elements to add to.
|
276
|
+
* @param {String/Element} n Name of new element to add or existing element to add.
|
277
|
+
* @param {Object} a Optional object collection with arguments to add to the new element(s).
|
278
|
+
* @param {String} h Optional inner HTML contents to add for each element.
|
279
|
+
* @param {bool} c Optional internal state to indicate if it should create or add.
|
280
|
+
* @return {Element/Array} Element that got created or array with elements if multiple elements where passed.
|
281
|
+
*/
|
282
|
+
add : function(p, n, a, h, c) {
|
283
|
+
var t = this;
|
284
|
+
|
285
|
+
return this.run(p, function(p) {
|
286
|
+
var e, k;
|
287
|
+
|
288
|
+
e = is(n, 'string') ? t.doc.createElement(n) : n;
|
289
|
+
t.setAttribs(e, a);
|
290
|
+
|
291
|
+
if (h) {
|
292
|
+
if (h.nodeType)
|
293
|
+
e.appendChild(h);
|
294
|
+
else
|
295
|
+
t.setHTML(e, h);
|
296
|
+
}
|
297
|
+
|
298
|
+
return !c ? p.appendChild(e) : e;
|
299
|
+
});
|
300
|
+
},
|
301
|
+
|
302
|
+
/**
|
303
|
+
* Creates a new element.
|
304
|
+
*
|
305
|
+
* @param {String} n Name of new element.
|
306
|
+
* @param {Object} a Optional object name/value collection with element attributes.
|
307
|
+
* @param {String} h Optional HTML string to set as inner HTML of the element.
|
308
|
+
* @return {Element} HTML DOM node element that got created.
|
309
|
+
*/
|
310
|
+
create : function(n, a, h) {
|
311
|
+
return this.add(this.doc.createElement(n), n, a, h, 1);
|
312
|
+
},
|
313
|
+
|
314
|
+
/**
|
315
|
+
* Create HTML string for element. The elemtn will be closed unless an empty inner HTML string is passed.
|
316
|
+
*
|
317
|
+
* @param {String} n Name of new element.
|
318
|
+
* @param {Object} a Optional object name/value collection with element attributes.
|
319
|
+
* @param {String} h Optional HTML string to set as inner HTML of the element.
|
320
|
+
* @return {String} String with new HTML element like for example: <a href="#">test</a>.
|
321
|
+
*/
|
322
|
+
createHTML : function(n, a, h) {
|
323
|
+
var o = '', t = this, k;
|
324
|
+
|
325
|
+
o += '<' + n;
|
326
|
+
|
327
|
+
for (k in a) {
|
328
|
+
if (a.hasOwnProperty(k))
|
329
|
+
o += ' ' + k + '="' + t.encode(a[k]) + '"';
|
330
|
+
}
|
331
|
+
|
332
|
+
if (tinymce.is(h))
|
333
|
+
return o + '>' + h + '</' + n + '>';
|
334
|
+
|
335
|
+
return o + ' />';
|
336
|
+
},
|
337
|
+
|
338
|
+
/**
|
339
|
+
* Removes/deletes the specified element(s) from the DOM.
|
340
|
+
*
|
341
|
+
* @param {String/Element/Array} n ID of element or DOM element object or array containing multiple elements/ids.
|
342
|
+
* @param {bool} k Optional state to keep children or not. If set to true all children will be placed at the location of the removed element.
|
343
|
+
* @return {Element/Array} HTML DOM element that got removed or array of elements depending on input.
|
344
|
+
*/
|
345
|
+
remove : function(n, k) {
|
346
|
+
var t = this;
|
347
|
+
|
348
|
+
return this.run(n, function(n) {
|
349
|
+
var p, g, i;
|
350
|
+
|
351
|
+
p = n.parentNode;
|
352
|
+
|
353
|
+
if (!p)
|
354
|
+
return null;
|
355
|
+
|
356
|
+
if (k) {
|
357
|
+
for (i = n.childNodes.length - 1; i >= 0; i--)
|
358
|
+
t.insertAfter(n.childNodes[i], n);
|
359
|
+
|
360
|
+
//each(n.childNodes, function(c) {
|
361
|
+
// p.insertBefore(c.cloneNode(true), n);
|
362
|
+
//});
|
363
|
+
}
|
364
|
+
|
365
|
+
// Fix IE psuedo leak
|
366
|
+
if (t.fixPsuedoLeaks) {
|
367
|
+
p = n.cloneNode(true);
|
368
|
+
k = 'IELeakGarbageBin';
|
369
|
+
g = t.get(k) || t.add(t.doc.body, 'div', {id : k, style : 'display:none'});
|
370
|
+
g.appendChild(n);
|
371
|
+
g.innerHTML = '';
|
372
|
+
|
373
|
+
return p;
|
374
|
+
}
|
375
|
+
|
376
|
+
return p.removeChild(n);
|
377
|
+
});
|
378
|
+
},
|
379
|
+
|
380
|
+
/**
|
381
|
+
* Sets the CSS style value on a HTML element. The name can be a camelcase string
|
382
|
+
* or the CSS style name like background-color.
|
383
|
+
*
|
384
|
+
* @param {String/Element/Array} n HTML element/Element ID or Array of elements/ids to set CSS style value on.
|
385
|
+
* @param {String} na Name of the style value to set.
|
386
|
+
* @param {String} v Value to set on the style.
|
387
|
+
*/
|
388
|
+
setStyle : function(n, na, v) {
|
389
|
+
var t = this;
|
390
|
+
|
391
|
+
return t.run(n, function(e) {
|
392
|
+
var s, i;
|
393
|
+
|
394
|
+
s = e.style;
|
395
|
+
|
396
|
+
// Camelcase it, if needed
|
397
|
+
na = na.replace(/-(\D)/g, function(a, b){
|
398
|
+
return b.toUpperCase();
|
399
|
+
});
|
400
|
+
|
401
|
+
// Default px suffix on these
|
402
|
+
if (t.pixelStyles.test(na) && (tinymce.is(v, 'number') || /^[\-0-9\.]+$/.test(v)))
|
403
|
+
v += 'px';
|
404
|
+
|
405
|
+
switch (na) {
|
406
|
+
case 'opacity':
|
407
|
+
// IE specific opacity
|
408
|
+
if (isIE) {
|
409
|
+
s.filter = v === '' ? '' : "alpha(opacity=" + (v * 100) + ")";
|
410
|
+
|
411
|
+
if (!n.currentStyle || !n.currentStyle.hasLayout)
|
412
|
+
s.display = 'inline-block';
|
413
|
+
}
|
414
|
+
|
415
|
+
// Fix for older browsers
|
416
|
+
s[na] = s['-moz-opacity'] = s['-khtml-opacity'] = v || '';
|
417
|
+
break;
|
418
|
+
|
419
|
+
case 'float':
|
420
|
+
isIE ? s.styleFloat = v : s.cssFloat = v;
|
421
|
+
break;
|
422
|
+
|
423
|
+
default:
|
424
|
+
s[na] = v || '';
|
425
|
+
}
|
426
|
+
|
427
|
+
// Force update of the style data
|
428
|
+
if (t.settings.update_styles)
|
429
|
+
t.setAttrib(e, 'mce_style');
|
430
|
+
});
|
431
|
+
},
|
432
|
+
|
433
|
+
/**
|
434
|
+
* Returns the current style or runtime/computed value of a element.
|
435
|
+
*
|
436
|
+
* @param {String/Element} n HTML element or element id string to get style from.
|
437
|
+
* @param {String} na Style name to return.
|
438
|
+
* @param {String} c Computed style.
|
439
|
+
* @return {String} Current style or computed style value of a element.
|
440
|
+
*/
|
441
|
+
getStyle : function(n, na, c) {
|
442
|
+
n = this.get(n);
|
443
|
+
|
444
|
+
if (!n)
|
445
|
+
return false;
|
446
|
+
|
447
|
+
// Gecko
|
448
|
+
if (this.doc.defaultView && c) {
|
449
|
+
// Remove camelcase
|
450
|
+
na = na.replace(/[A-Z]/g, function(a){
|
451
|
+
return '-' + a;
|
452
|
+
});
|
453
|
+
|
454
|
+
try {
|
455
|
+
return this.doc.defaultView.getComputedStyle(n, null).getPropertyValue(na);
|
456
|
+
} catch (ex) {
|
457
|
+
// Old safari might fail
|
458
|
+
return null;
|
459
|
+
}
|
460
|
+
}
|
461
|
+
|
462
|
+
// Camelcase it, if needed
|
463
|
+
na = na.replace(/-(\D)/g, function(a, b){
|
464
|
+
return b.toUpperCase();
|
465
|
+
});
|
466
|
+
|
467
|
+
if (na == 'float')
|
468
|
+
na = isIE ? 'styleFloat' : 'cssFloat';
|
469
|
+
|
470
|
+
// IE & Opera
|
471
|
+
if (n.currentStyle && c)
|
472
|
+
return n.currentStyle[na];
|
473
|
+
|
474
|
+
return n.style[na];
|
475
|
+
},
|
476
|
+
|
477
|
+
/**
|
478
|
+
* Sets multiple styles on the specified element(s).
|
479
|
+
*
|
480
|
+
* @param {Element/String/Array} e DOM element, element id string or array of elements/ids to set styles on.
|
481
|
+
* @param {Object} o Name/Value collection of style items to add to the element(s).
|
482
|
+
*/
|
483
|
+
setStyles : function(e, o) {
|
484
|
+
var t = this, s = t.settings, ol;
|
485
|
+
|
486
|
+
ol = s.update_styles;
|
487
|
+
s.update_styles = 0;
|
488
|
+
|
489
|
+
each(o, function(v, n) {
|
490
|
+
t.setStyle(e, n, v);
|
491
|
+
});
|
492
|
+
|
493
|
+
// Update style info
|
494
|
+
s.update_styles = ol;
|
495
|
+
if (s.update_styles)
|
496
|
+
t.setAttrib(e, s.cssText);
|
497
|
+
},
|
498
|
+
|
499
|
+
/**
|
500
|
+
* Sets the specified attributes value of a element or elements.
|
501
|
+
*
|
502
|
+
* @param {Element/String/Array} e DOM element, element id string or array of elements/ids to set attribute on.
|
503
|
+
* @param {String} n Name of attribute to set.
|
504
|
+
* @param {String} v Value to set on the attribute of this value is falsy like null 0 or '' it will remove the attribute instead.
|
505
|
+
*/
|
506
|
+
setAttrib : function(e, n, v) {
|
507
|
+
var t = this;
|
508
|
+
|
509
|
+
// Whats the point
|
510
|
+
if (!e || !n)
|
511
|
+
return;
|
512
|
+
|
513
|
+
// Strict XML mode
|
514
|
+
if (t.settings.strict)
|
515
|
+
n = n.toLowerCase();
|
516
|
+
|
517
|
+
return this.run(e, function(e) {
|
518
|
+
var s = t.settings;
|
519
|
+
|
520
|
+
switch (n) {
|
521
|
+
case "style":
|
522
|
+
if (!is(v, 'string')) {
|
523
|
+
each(v, function(v, n) {
|
524
|
+
t.setStyle(e, n, v);
|
525
|
+
});
|
526
|
+
|
527
|
+
return;
|
528
|
+
}
|
529
|
+
|
530
|
+
// No mce_style for elements with these since they might get resized by the user
|
531
|
+
if (s.keep_values) {
|
532
|
+
if (v && !t._isRes(v))
|
533
|
+
e.setAttribute('mce_style', v, 2);
|
534
|
+
else
|
535
|
+
e.removeAttribute('mce_style', 2);
|
536
|
+
}
|
537
|
+
|
538
|
+
e.style.cssText = v;
|
539
|
+
break;
|
540
|
+
|
541
|
+
case "class":
|
542
|
+
e.className = v || ''; // Fix IE null bug
|
543
|
+
break;
|
544
|
+
|
545
|
+
case "src":
|
546
|
+
case "href":
|
547
|
+
if (s.keep_values) {
|
548
|
+
if (s.url_converter)
|
549
|
+
v = s.url_converter.call(s.url_converter_scope || t, v, n, e);
|
550
|
+
|
551
|
+
t.setAttrib(e, 'mce_' + n, v, 2);
|
552
|
+
}
|
553
|
+
|
554
|
+
break;
|
555
|
+
|
556
|
+
case "shape":
|
557
|
+
e.setAttribute('mce_style', v);
|
558
|
+
break;
|
559
|
+
}
|
560
|
+
|
561
|
+
if (is(v) && v !== null && v.length !== 0)
|
562
|
+
e.setAttribute(n, '' + v, 2);
|
563
|
+
else
|
564
|
+
e.removeAttribute(n, 2);
|
565
|
+
});
|
566
|
+
},
|
567
|
+
|
568
|
+
/**
|
569
|
+
* Sets the specified attributes of a element or elements.
|
570
|
+
*
|
571
|
+
* @param {Element/String/Array} e DOM element, element id string or array of elements/ids to set attributes on.
|
572
|
+
* @param {Object} o Name/Value collection of attribute items to add to the element(s).
|
573
|
+
*/
|
574
|
+
setAttribs : function(e, o) {
|
575
|
+
var t = this;
|
576
|
+
|
577
|
+
return this.run(e, function(e) {
|
578
|
+
each(o, function(v, n) {
|
579
|
+
t.setAttrib(e, n, v);
|
580
|
+
});
|
581
|
+
});
|
582
|
+
},
|
583
|
+
|
584
|
+
/**
|
585
|
+
* Returns the specified attribute by name.
|
586
|
+
*
|
587
|
+
* @param {String/Element} e Element string id or DOM element to get attribute from.
|
588
|
+
* @param {String} n Name of attribute to get.
|
589
|
+
* @param {String} dv Optional default value to return if the attribute didn't exist.
|
590
|
+
* @return {String} Attribute value string, default value or null if the attribute wasn't found.
|
591
|
+
*/
|
592
|
+
getAttrib : function(e, n, dv) {
|
593
|
+
var v, t = this;
|
594
|
+
|
595
|
+
e = t.get(e);
|
596
|
+
|
597
|
+
if (!e || e.nodeType !== 1)
|
598
|
+
return false;
|
599
|
+
|
600
|
+
if (!is(dv))
|
601
|
+
dv = '';
|
602
|
+
|
603
|
+
// Try the mce variant for these
|
604
|
+
if (/^(src|href|style|coords|shape)$/.test(n)) {
|
605
|
+
v = e.getAttribute("mce_" + n);
|
606
|
+
|
607
|
+
if (v)
|
608
|
+
return v;
|
609
|
+
}
|
610
|
+
|
611
|
+
if (isIE && t.props[n]) {
|
612
|
+
v = e[t.props[n]];
|
613
|
+
v = v && v.nodeValue ? v.nodeValue : v;
|
614
|
+
}
|
615
|
+
|
616
|
+
if (!v)
|
617
|
+
v = e.getAttribute(n, 2);
|
618
|
+
|
619
|
+
if (n === 'style') {
|
620
|
+
v = v || e.style.cssText;
|
621
|
+
|
622
|
+
if (v) {
|
623
|
+
v = t.serializeStyle(t.parseStyle(v));
|
624
|
+
|
625
|
+
if (t.settings.keep_values && !t._isRes(v))
|
626
|
+
e.setAttribute('mce_style', v);
|
627
|
+
}
|
628
|
+
}
|
629
|
+
|
630
|
+
// Remove Apple and WebKit stuff
|
631
|
+
if (isWebKit && n === "class" && v)
|
632
|
+
v = v.replace(/(apple|webkit)\-[a-z\-]+/gi, '');
|
633
|
+
|
634
|
+
// Handle IE issues
|
635
|
+
if (isIE) {
|
636
|
+
switch (n) {
|
637
|
+
case 'rowspan':
|
638
|
+
case 'colspan':
|
639
|
+
// IE returns 1 as default value
|
640
|
+
if (v === 1)
|
641
|
+
v = '';
|
642
|
+
|
643
|
+
break;
|
644
|
+
|
645
|
+
case 'size':
|
646
|
+
// IE returns +0 as default value for size
|
647
|
+
if (v === '+0' || v === 20 || v === 0)
|
648
|
+
v = '';
|
649
|
+
|
650
|
+
break;
|
651
|
+
|
652
|
+
case 'width':
|
653
|
+
case 'height':
|
654
|
+
case 'vspace':
|
655
|
+
case 'checked':
|
656
|
+
case 'disabled':
|
657
|
+
case 'readonly':
|
658
|
+
if (v === 0)
|
659
|
+
v = '';
|
660
|
+
|
661
|
+
break;
|
662
|
+
|
663
|
+
case 'hspace':
|
664
|
+
// IE returns -1 as default value
|
665
|
+
if (v === -1)
|
666
|
+
v = '';
|
667
|
+
|
668
|
+
break;
|
669
|
+
|
670
|
+
case 'maxlength':
|
671
|
+
case 'tabindex':
|
672
|
+
// IE returns default value
|
673
|
+
if (v === 32768 || v === 2147483647 || v === '32768')
|
674
|
+
v = '';
|
675
|
+
|
676
|
+
break;
|
677
|
+
|
678
|
+
case 'multiple':
|
679
|
+
case 'compact':
|
680
|
+
case 'noshade':
|
681
|
+
case 'nowrap':
|
682
|
+
if (v === 65535)
|
683
|
+
return n;
|
684
|
+
|
685
|
+
return dv;
|
686
|
+
|
687
|
+
case 'shape':
|
688
|
+
v = v.toLowerCase();
|
689
|
+
break;
|
690
|
+
|
691
|
+
default:
|
692
|
+
// IE has odd anonymous function for event attributes
|
693
|
+
if (n.indexOf('on') === 0 && v)
|
694
|
+
v = ('' + v).replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/, '$1');
|
695
|
+
}
|
696
|
+
}
|
697
|
+
|
698
|
+
return (v !== undefined && v !== null && v !== '') ? '' + v : dv;
|
699
|
+
},
|
700
|
+
|
701
|
+
/**
|
702
|
+
* Returns the absolute x, y position of a node. The position will be returned in a object with x, y fields.
|
703
|
+
*
|
704
|
+
* @param {Element/String} n HTML element or element id to get x, y position from.
|
705
|
+
* @param {Element} ro Optional root element to stop calculations at.
|
706
|
+
* @return {object} Absolute position of the specified element object with x, y fields.
|
707
|
+
*/
|
708
|
+
getPos : function(n, ro) {
|
709
|
+
var t = this, x = 0, y = 0, e, d = t.doc, r;
|
710
|
+
|
711
|
+
n = t.get(n);
|
712
|
+
ro = ro || d.body;
|
713
|
+
|
714
|
+
if (n) {
|
715
|
+
// Use getBoundingClientRect on IE, Opera has it but it's not perfect
|
716
|
+
if (isIE && !t.stdMode) {
|
717
|
+
n = n.getBoundingClientRect();
|
718
|
+
e = t.boxModel ? d.documentElement : d.body;
|
719
|
+
x = t.getStyle(t.select('html')[0], 'borderWidth'); // Remove border
|
720
|
+
x = (x == 'medium' || t.boxModel && !t.isIE6) && 2 || x;
|
721
|
+
n.top += t.win.self != t.win.top ? 2 : 0; // IE adds some strange extra cord if used in a frameset
|
722
|
+
|
723
|
+
return {x : n.left + e.scrollLeft - x, y : n.top + e.scrollTop - x};
|
724
|
+
}
|
725
|
+
|
726
|
+
r = n;
|
727
|
+
while (r && r != ro && r.nodeType) {
|
728
|
+
x += r.offsetLeft || 0;
|
729
|
+
y += r.offsetTop || 0;
|
730
|
+
r = r.offsetParent;
|
731
|
+
}
|
732
|
+
|
733
|
+
r = n.parentNode;
|
734
|
+
while (r && r != ro && r.nodeType) {
|
735
|
+
x -= r.scrollLeft || 0;
|
736
|
+
y -= r.scrollTop || 0;
|
737
|
+
r = r.parentNode;
|
738
|
+
}
|
739
|
+
}
|
740
|
+
|
741
|
+
return {x : x, y : y};
|
742
|
+
},
|
743
|
+
|
744
|
+
/**
|
745
|
+
* Parses the specified style value into an object collection. This parser will also
|
746
|
+
* merge and remove any redundant items that browsers might have added. It will also convert non hex
|
747
|
+
* colors to hex values. Urls inside the styles will also be converted to absolute/relative based on settings.
|
748
|
+
*
|
749
|
+
* @param {String} st Style value to parse for example: border:1px solid red;.
|
750
|
+
* @return {Object} Object representation of that style like {border : '1px solid red'}
|
751
|
+
*/
|
752
|
+
parseStyle : function(st) {
|
753
|
+
var t = this, s = t.settings, o = {};
|
754
|
+
|
755
|
+
if (!st)
|
756
|
+
return o;
|
757
|
+
|
758
|
+
function compress(p, s, ot) {
|
759
|
+
var t, r, b, l;
|
760
|
+
|
761
|
+
// Get values and check it it needs compressing
|
762
|
+
t = o[p + '-top' + s];
|
763
|
+
if (!t)
|
764
|
+
return;
|
765
|
+
|
766
|
+
r = o[p + '-right' + s];
|
767
|
+
if (t != r)
|
768
|
+
return;
|
769
|
+
|
770
|
+
b = o[p + '-bottom' + s];
|
771
|
+
if (r != b)
|
772
|
+
return;
|
773
|
+
|
774
|
+
l = o[p + '-left' + s];
|
775
|
+
if (b != l)
|
776
|
+
return;
|
777
|
+
|
778
|
+
// Compress
|
779
|
+
o[ot] = l;
|
780
|
+
delete o[p + '-top' + s];
|
781
|
+
delete o[p + '-right' + s];
|
782
|
+
delete o[p + '-bottom' + s];
|
783
|
+
delete o[p + '-left' + s];
|
784
|
+
};
|
785
|
+
|
786
|
+
function compress2(ta, a, b, c) {
|
787
|
+
var t;
|
788
|
+
|
789
|
+
t = o[a];
|
790
|
+
if (!t)
|
791
|
+
return;
|
792
|
+
|
793
|
+
t = o[b];
|
794
|
+
if (!t)
|
795
|
+
return;
|
796
|
+
|
797
|
+
t = o[c];
|
798
|
+
if (!t)
|
799
|
+
return;
|
800
|
+
|
801
|
+
// Compress
|
802
|
+
o[ta] = o[a] + ' ' + o[b] + ' ' + o[c];
|
803
|
+
delete o[a];
|
804
|
+
delete o[b];
|
805
|
+
delete o[c];
|
806
|
+
};
|
807
|
+
|
808
|
+
st = st.replace(/&(#?[a-z0-9]+);/g, '&$1_MCE_SEMI_'); // Protect entities
|
809
|
+
|
810
|
+
each(st.split(';'), function(v) {
|
811
|
+
var sv, ur = [];
|
812
|
+
|
813
|
+
if (v) {
|
814
|
+
v = v.replace(/_MCE_SEMI_/g, ';'); // Restore entities
|
815
|
+
v = v.replace(/url\([^\)]+\)/g, function(v) {ur.push(v);return 'url(' + ur.length + ')';});
|
816
|
+
v = v.split(':');
|
817
|
+
sv = tinymce.trim(v[1]);
|
818
|
+
sv = sv.replace(/url\(([^\)]+)\)/g, function(a, b) {return ur[parseInt(b) - 1];});
|
819
|
+
|
820
|
+
sv = sv.replace(/rgb\([^\)]+\)/g, function(v) {
|
821
|
+
return t.toHex(v);
|
822
|
+
});
|
823
|
+
|
824
|
+
if (s.url_converter) {
|
825
|
+
sv = sv.replace(/url\([\'\"]?([^\)\'\"]+)[\'\"]?\)/g, function(x, c) {
|
826
|
+
return 'url(' + s.url_converter.call(s.url_converter_scope || t, t.decode(c), 'style', null) + ')';
|
827
|
+
});
|
828
|
+
}
|
829
|
+
|
830
|
+
o[tinymce.trim(v[0]).toLowerCase()] = sv;
|
831
|
+
}
|
832
|
+
});
|
833
|
+
|
834
|
+
compress("border", "", "border");
|
835
|
+
compress("border", "-width", "border-width");
|
836
|
+
compress("border", "-color", "border-color");
|
837
|
+
compress("border", "-style", "border-style");
|
838
|
+
compress("padding", "", "padding");
|
839
|
+
compress("margin", "", "margin");
|
840
|
+
compress2('border', 'border-width', 'border-style', 'border-color');
|
841
|
+
|
842
|
+
if (isIE) {
|
843
|
+
// Remove pointless border
|
844
|
+
if (o.border == 'medium none')
|
845
|
+
o.border = '';
|
846
|
+
}
|
847
|
+
|
848
|
+
return o;
|
849
|
+
},
|
850
|
+
|
851
|
+
/**
|
852
|
+
* Serializes the specified style object into a string.
|
853
|
+
*
|
854
|
+
* @param {Object} o Object to serialize as string for example: {border : '1px solid red'}
|
855
|
+
* @return {String} String representation of the style object for example: border: 1px solid red.
|
856
|
+
*/
|
857
|
+
serializeStyle : function(o) {
|
858
|
+
var s = '';
|
859
|
+
|
860
|
+
each(o, function(v, k) {
|
861
|
+
if (k && v) {
|
862
|
+
if (tinymce.isGecko && k.indexOf('-moz-') === 0)
|
863
|
+
return;
|
864
|
+
|
865
|
+
switch (k) {
|
866
|
+
case 'color':
|
867
|
+
case 'background-color':
|
868
|
+
v = v.toLowerCase();
|
869
|
+
break;
|
870
|
+
}
|
871
|
+
|
872
|
+
s += (s ? ' ' : '') + k + ': ' + v + ';';
|
873
|
+
}
|
874
|
+
});
|
875
|
+
|
876
|
+
return s;
|
877
|
+
},
|
878
|
+
|
879
|
+
/**
|
880
|
+
* Imports/loads the specified CSS file into the document bound to the class.
|
881
|
+
*
|
882
|
+
* @param {String} u URL to CSS file to load.
|
883
|
+
*/
|
884
|
+
loadCSS : function(u) {
|
885
|
+
var t = this, d = t.doc, head;
|
886
|
+
|
887
|
+
if (!u)
|
888
|
+
u = '';
|
889
|
+
|
890
|
+
head = t.select('head')[0];
|
891
|
+
|
892
|
+
each(u.split(','), function(u) {
|
893
|
+
var link;
|
894
|
+
|
895
|
+
if (t.files[u])
|
896
|
+
return;
|
897
|
+
|
898
|
+
t.files[u] = true;
|
899
|
+
link = t.create('link', {rel : 'stylesheet', href : tinymce._addVer(u)});
|
900
|
+
|
901
|
+
// IE 8 has a bug where dynamically loading stylesheets would produce a 1 item remaining bug
|
902
|
+
// This fix seems to resolve that issue by realcing the document ones a stylesheet finishes loading
|
903
|
+
// It's ugly but it seems to work fine.
|
904
|
+
if (isIE && d.documentMode) {
|
905
|
+
link.onload = function() {
|
906
|
+
d.recalc();
|
907
|
+
link.onload = null;
|
908
|
+
};
|
909
|
+
}
|
910
|
+
|
911
|
+
head.appendChild(link);
|
912
|
+
});
|
913
|
+
},
|
914
|
+
|
915
|
+
/**
|
916
|
+
* Adds a class to the specified element or elements.
|
917
|
+
*
|
918
|
+
* @param {String/Element/Array} Element ID string or DOM element or array with elements or IDs.
|
919
|
+
* @param {String} c Class name to add to each element.
|
920
|
+
* @return {String/Array} String with new class value or array with new class values for all elements.
|
921
|
+
*/
|
922
|
+
addClass : function(e, c) {
|
923
|
+
return this.run(e, function(e) {
|
924
|
+
var o;
|
925
|
+
|
926
|
+
if (!c)
|
927
|
+
return 0;
|
928
|
+
|
929
|
+
if (this.hasClass(e, c))
|
930
|
+
return e.className;
|
931
|
+
|
932
|
+
o = this.removeClass(e, c);
|
933
|
+
|
934
|
+
return e.className = (o != '' ? (o + ' ') : '') + c;
|
935
|
+
});
|
936
|
+
},
|
937
|
+
|
938
|
+
/**
|
939
|
+
* Removes a class from the specified element or elements.
|
940
|
+
*
|
941
|
+
* @param {String/Element/Array} Element ID string or DOM element or array with elements or IDs.
|
942
|
+
* @param {String} c Class name to remove to each element.
|
943
|
+
* @return {String/Array} String with new class value or array with new class values for all elements.
|
944
|
+
*/
|
945
|
+
removeClass : function(e, c) {
|
946
|
+
var t = this, re;
|
947
|
+
|
948
|
+
return t.run(e, function(e) {
|
949
|
+
var v;
|
950
|
+
|
951
|
+
if (t.hasClass(e, c)) {
|
952
|
+
if (!re)
|
953
|
+
re = new RegExp("(^|\\s+)" + c + "(\\s+|$)", "g");
|
954
|
+
|
955
|
+
v = e.className.replace(re, ' ');
|
956
|
+
|
957
|
+
return e.className = tinymce.trim(v != ' ' ? v : '');
|
958
|
+
}
|
959
|
+
|
960
|
+
return e.className;
|
961
|
+
});
|
962
|
+
},
|
963
|
+
|
964
|
+
/**
|
965
|
+
* Returns true if the specified element has the specified class.
|
966
|
+
*
|
967
|
+
* @param {String/Element} n HTML element or element id string to check CSS class on.
|
968
|
+
* @param {String] c CSS class to check for.
|
969
|
+
* @return {bool} true/false if the specified element has the specified class.
|
970
|
+
*/
|
971
|
+
hasClass : function(n, c) {
|
972
|
+
n = this.get(n);
|
973
|
+
|
974
|
+
if (!n || !c)
|
975
|
+
return false;
|
976
|
+
|
977
|
+
return (' ' + n.className + ' ').indexOf(' ' + c + ' ') !== -1;
|
978
|
+
},
|
979
|
+
|
980
|
+
/**
|
981
|
+
* Shows the specified element(s) by ID by setting the "display" style.
|
982
|
+
*
|
983
|
+
* @param {String/Element/Array} e ID of DOM element or DOM element or array with elements or IDs to show.
|
984
|
+
*/
|
985
|
+
show : function(e) {
|
986
|
+
return this.setStyle(e, 'display', 'block');
|
987
|
+
},
|
988
|
+
|
989
|
+
/**
|
990
|
+
* Hides the specified element(s) by ID by setting the "display" style.
|
991
|
+
*
|
992
|
+
* @param {String/Element/Array} e ID of DOM element or DOM element or array with elements or IDs to hide.
|
993
|
+
*/
|
994
|
+
hide : function(e) {
|
995
|
+
return this.setStyle(e, 'display', 'none');
|
996
|
+
},
|
997
|
+
|
998
|
+
/**
|
999
|
+
* Returns true/false if the element is hidden or not by checking the "display" style.
|
1000
|
+
*
|
1001
|
+
* @param {String/Element} e Id or element to check display state on.
|
1002
|
+
* @return {bool} true/false if the element is hidden or not.
|
1003
|
+
*/
|
1004
|
+
isHidden : function(e) {
|
1005
|
+
e = this.get(e);
|
1006
|
+
|
1007
|
+
return !e || e.style.display == 'none' || this.getStyle(e, 'display') == 'none';
|
1008
|
+
},
|
1009
|
+
|
1010
|
+
/**
|
1011
|
+
* Returns a unique id. This can be useful when generating elements on the fly.
|
1012
|
+
* This method will not check if the element allready exists.
|
1013
|
+
*
|
1014
|
+
* @param {String} p Optional prefix to add infront of all ids defaults to "mce_".
|
1015
|
+
* @return {String} Unique id.
|
1016
|
+
*/
|
1017
|
+
uniqueId : function(p) {
|
1018
|
+
return (!p ? 'mce_' : p) + (this.counter++);
|
1019
|
+
},
|
1020
|
+
|
1021
|
+
/**
|
1022
|
+
* Sets the specified HTML content inside the element or elements. The HTML will first be processed this means
|
1023
|
+
* URLs will get converted, hex color values fixed etc. Check processHTML for details.
|
1024
|
+
*
|
1025
|
+
* @param {Element/String/Array} e DOM element, element id string or array of elements/ids to set HTML inside.
|
1026
|
+
* @param {String} h HTML content to set as inner HTML of the element.
|
1027
|
+
*/
|
1028
|
+
setHTML : function(e, h) {
|
1029
|
+
var t = this;
|
1030
|
+
|
1031
|
+
return this.run(e, function(e) {
|
1032
|
+
var x, i, nl, n, p, x;
|
1033
|
+
|
1034
|
+
h = t.processHTML(h);
|
1035
|
+
|
1036
|
+
if (isIE) {
|
1037
|
+
function set() {
|
1038
|
+
try {
|
1039
|
+
// IE will remove comments from the beginning
|
1040
|
+
// unless you padd the contents with something
|
1041
|
+
e.innerHTML = '<br />' + h;
|
1042
|
+
e.removeChild(e.firstChild);
|
1043
|
+
} catch (ex) {
|
1044
|
+
// IE sometimes produces an unknown runtime error on innerHTML if it's an block element within a block element for example a div inside a p
|
1045
|
+
// This seems to fix this problem
|
1046
|
+
|
1047
|
+
// Remove all child nodes
|
1048
|
+
while (e.firstChild)
|
1049
|
+
e.firstChild.removeNode();
|
1050
|
+
|
1051
|
+
// Create new div with HTML contents and a BR infront to keep comments
|
1052
|
+
x = t.create('div');
|
1053
|
+
x.innerHTML = '<br />' + h;
|
1054
|
+
|
1055
|
+
// Add all children from div to target
|
1056
|
+
each (x.childNodes, function(n, i) {
|
1057
|
+
// Skip br element
|
1058
|
+
if (i)
|
1059
|
+
e.appendChild(n);
|
1060
|
+
});
|
1061
|
+
}
|
1062
|
+
};
|
1063
|
+
|
1064
|
+
// IE has a serious bug when it comes to paragraphs it can produce an invalid
|
1065
|
+
// DOM tree if contents like this <p><ul><li>Item 1</li></ul></p> is inserted
|
1066
|
+
// It seems to be that IE doesn't like a root block element placed inside another root block element
|
1067
|
+
if (t.settings.fix_ie_paragraphs)
|
1068
|
+
h = h.replace(/<p><\/p>|<p([^>]+)><\/p>|<p[^\/+]\/>/gi, '<p$1 mce_keep="true"> </p>');
|
1069
|
+
|
1070
|
+
set();
|
1071
|
+
|
1072
|
+
if (t.settings.fix_ie_paragraphs) {
|
1073
|
+
// Check for odd paragraphs this is a sign of a broken DOM
|
1074
|
+
nl = e.getElementsByTagName("p");
|
1075
|
+
for (i = nl.length - 1, x = 0; i >= 0; i--) {
|
1076
|
+
n = nl[i];
|
1077
|
+
|
1078
|
+
if (!n.hasChildNodes()) {
|
1079
|
+
if (!n.mce_keep) {
|
1080
|
+
x = 1; // Is broken
|
1081
|
+
break;
|
1082
|
+
}
|
1083
|
+
|
1084
|
+
n.removeAttribute('mce_keep');
|
1085
|
+
}
|
1086
|
+
}
|
1087
|
+
}
|
1088
|
+
|
1089
|
+
// Time to fix the madness IE left us
|
1090
|
+
if (x) {
|
1091
|
+
// So if we replace the p elements with divs and mark them and then replace them back to paragraphs
|
1092
|
+
// after we use innerHTML we can fix the DOM tree
|
1093
|
+
h = h.replace(/<p ([^>]+)>|<p>/g, '<div $1 mce_tmp="1">');
|
1094
|
+
h = h.replace(/<\/p>/g, '</div>');
|
1095
|
+
|
1096
|
+
// Set the new HTML with DIVs
|
1097
|
+
set();
|
1098
|
+
|
1099
|
+
// Replace all DIV elements with he mce_tmp attibute back to paragraphs
|
1100
|
+
// This is needed since IE has a annoying bug see above for details
|
1101
|
+
// This is a slow process but it has to be done. :(
|
1102
|
+
if (t.settings.fix_ie_paragraphs) {
|
1103
|
+
nl = e.getElementsByTagName("DIV");
|
1104
|
+
for (i = nl.length - 1; i >= 0; i--) {
|
1105
|
+
n = nl[i];
|
1106
|
+
|
1107
|
+
// Is it a temp div
|
1108
|
+
if (n.mce_tmp) {
|
1109
|
+
// Create new paragraph
|
1110
|
+
p = t.doc.createElement('p');
|
1111
|
+
|
1112
|
+
// Copy all attributes
|
1113
|
+
n.cloneNode(false).outerHTML.replace(/([a-z0-9\-_]+)=/gi, function(a, b) {
|
1114
|
+
var v;
|
1115
|
+
|
1116
|
+
if (b !== 'mce_tmp') {
|
1117
|
+
v = n.getAttribute(b);
|
1118
|
+
|
1119
|
+
if (!v && b === 'class')
|
1120
|
+
v = n.className;
|
1121
|
+
|
1122
|
+
p.setAttribute(b, v);
|
1123
|
+
}
|
1124
|
+
});
|
1125
|
+
|
1126
|
+
// Append all children to new paragraph
|
1127
|
+
for (x = 0; x<n.childNodes.length; x++)
|
1128
|
+
p.appendChild(n.childNodes[x].cloneNode(true));
|
1129
|
+
|
1130
|
+
// Replace div with new paragraph
|
1131
|
+
n.swapNode(p);
|
1132
|
+
}
|
1133
|
+
}
|
1134
|
+
}
|
1135
|
+
}
|
1136
|
+
} else
|
1137
|
+
e.innerHTML = h;
|
1138
|
+
|
1139
|
+
return h;
|
1140
|
+
});
|
1141
|
+
},
|
1142
|
+
|
1143
|
+
/**
|
1144
|
+
* Processes the HTML by replacing strong, em, del in gecko since it doesn't support them
|
1145
|
+
* properly in a RTE environment. It also converts any URLs in links and images and places
|
1146
|
+
* a converted value into a separate attribute with the mce prefix like mce_src or mce_href.
|
1147
|
+
*
|
1148
|
+
* @param {String} h HTML to process.
|
1149
|
+
* @return {String} Processed HTML code.
|
1150
|
+
*/
|
1151
|
+
processHTML : function(h) {
|
1152
|
+
var t = this, s = t.settings;
|
1153
|
+
|
1154
|
+
if (!s.process_html)
|
1155
|
+
return h;
|
1156
|
+
|
1157
|
+
// Convert strong and em to b and i in FF since it can't handle them
|
1158
|
+
if (tinymce.isGecko) {
|
1159
|
+
h = h.replace(/<(\/?)strong>|<strong( [^>]+)>/gi, '<$1b$2>');
|
1160
|
+
h = h.replace(/<(\/?)em>|<em( [^>]+)>/gi, '<$1i$2>');
|
1161
|
+
} else if (isIE) {
|
1162
|
+
h = h.replace(/'/g, '''); // IE can't handle apos
|
1163
|
+
h = h.replace(/\s+(disabled|checked|readonly|selected)\s*=\s*[\"\']?(false|0)[\"\']?/gi, ''); // IE doesn't handle default values correct
|
1164
|
+
}
|
1165
|
+
|
1166
|
+
// Fix some issues
|
1167
|
+
h = h.replace(/<a( )([^>]+)\/>|<a\/>/gi, '<a$1$2></a>'); // Force open
|
1168
|
+
|
1169
|
+
// Store away src and href in mce_src and mce_href since browsers mess them up
|
1170
|
+
if (s.keep_values) {
|
1171
|
+
// Wrap scripts and styles in comments for serialization purposes
|
1172
|
+
if (/<script|noscript|style/.test(h)) {
|
1173
|
+
function trim(s) {
|
1174
|
+
// Remove prefix and suffix code for element
|
1175
|
+
s = s.replace(/(<!--\[CDATA\[|\]\]-->)/g, '\n');
|
1176
|
+
s = s.replace(/^[\r\n]*|[\r\n]*$/g, '');
|
1177
|
+
s = s.replace(/^\s*(\/\/\s*<!--|\/\/\s*<!\[CDATA\[|<!--|<!\[CDATA\[)[\r\n]*/g, '');
|
1178
|
+
s = s.replace(/\s*(\/\/\s*\]\]>|\/\/\s*-->|\]\]>|-->|\]\]-->)\s*$/g, '');
|
1179
|
+
|
1180
|
+
return s;
|
1181
|
+
};
|
1182
|
+
|
1183
|
+
// Wrap the script contents in CDATA and keep them from executing
|
1184
|
+
h = h.replace(/<script([^>]+|)>([\s\S]*?)<\/script>/g, function(v, attribs, text) {
|
1185
|
+
// Force type attribute
|
1186
|
+
if (!attribs)
|
1187
|
+
attribs = ' type="text/javascript"';
|
1188
|
+
|
1189
|
+
// Prefix script type/language attribute values with mce- to prevent it from executing
|
1190
|
+
attribs = attribs.replace(/(type|language)=\"?/, '$&mce-');
|
1191
|
+
attribs = attribs.replace(/src=\"([^\"]+)\"?/, function(a, url) {
|
1192
|
+
if (s.url_converter)
|
1193
|
+
url = t.encode(s.url_converter.call(s.url_converter_scope || t, t.decode(url), 'src', 'script'));
|
1194
|
+
|
1195
|
+
return 'mce_src="' + url + '"';
|
1196
|
+
});
|
1197
|
+
|
1198
|
+
// Wrap text contents
|
1199
|
+
if (tinymce.trim(text))
|
1200
|
+
text = '<!--\n' + trim(text) + '\n// -->';
|
1201
|
+
|
1202
|
+
return '<mce:script' + attribs + '>' + text + '</mce:script>';
|
1203
|
+
});
|
1204
|
+
|
1205
|
+
// Wrap style elements
|
1206
|
+
h = h.replace(/<style([^>]+|)>([\s\S]*?)<\/style>/g, function(v, attribs, text) {
|
1207
|
+
// Wrap text contents
|
1208
|
+
if (text)
|
1209
|
+
text = '<!--\n' + trim(text) + '\n-->';
|
1210
|
+
|
1211
|
+
return '<mce:style' + attribs + '>' + text + '</mce:style><style ' + attribs + ' mce_bogus="1">' + text + '</style>';
|
1212
|
+
});
|
1213
|
+
|
1214
|
+
// Wrap noscript elements
|
1215
|
+
h = h.replace(/<noscript([^>]+|)>([\s\S]*?)<\/noscript>/g, function(v, attribs, text) {
|
1216
|
+
return '<mce:noscript' + attribs + '><!--' + t.encode(text).replace(/--/g, '--') + '--></mce:noscript>';
|
1217
|
+
});
|
1218
|
+
}
|
1219
|
+
|
1220
|
+
h = h.replace(/<!\[CDATA\[([\s\S]+)\]\]>/g, '<!--[CDATA[$1]]-->');
|
1221
|
+
|
1222
|
+
// Process all tags with src, href or style
|
1223
|
+
h = h.replace(/<([\w:]+) [^>]*(src|href|style|shape|coords)[^>]*>/gi, function(a, n) {
|
1224
|
+
function handle(m, b, c) {
|
1225
|
+
var u = c;
|
1226
|
+
|
1227
|
+
// Tag already got a mce_ version
|
1228
|
+
if (a.indexOf('mce_' + b) != -1)
|
1229
|
+
return m;
|
1230
|
+
|
1231
|
+
if (b == 'style') {
|
1232
|
+
// No mce_style for elements with these since they might get resized by the user
|
1233
|
+
if (t._isRes(c))
|
1234
|
+
return m;
|
1235
|
+
|
1236
|
+
if (s.hex_colors) {
|
1237
|
+
u = u.replace(/rgb\([^\)]+\)/g, function(v) {
|
1238
|
+
return t.toHex(v);
|
1239
|
+
});
|
1240
|
+
}
|
1241
|
+
|
1242
|
+
if (s.url_converter) {
|
1243
|
+
u = u.replace(/url\([\'\"]?([^\)\'\"]+)\)/g, function(x, c) {
|
1244
|
+
return 'url(' + t.encode(s.url_converter.call(s.url_converter_scope || t, t.decode(c), b, n)) + ')';
|
1245
|
+
});
|
1246
|
+
}
|
1247
|
+
} else if (b != 'coords' && b != 'shape') {
|
1248
|
+
if (s.url_converter)
|
1249
|
+
u = t.encode(s.url_converter.call(s.url_converter_scope || t, t.decode(c), b, n));
|
1250
|
+
}
|
1251
|
+
|
1252
|
+
return ' ' + b + '="' + c + '" mce_' + b + '="' + u + '"';
|
1253
|
+
};
|
1254
|
+
|
1255
|
+
a = a.replace(/ (src|href|style|coords|shape)=[\"]([^\"]+)[\"]/gi, handle); // W3C
|
1256
|
+
a = a.replace(/ (src|href|style|coords|shape)=[\']([^\']+)[\']/gi, handle); // W3C
|
1257
|
+
|
1258
|
+
return a.replace(/ (src|href|style|coords|shape)=([^\s\"\'>]+)/gi, handle); // IE
|
1259
|
+
});
|
1260
|
+
}
|
1261
|
+
|
1262
|
+
return h;
|
1263
|
+
},
|
1264
|
+
|
1265
|
+
/**
|
1266
|
+
* Returns the outer HTML of an element.
|
1267
|
+
*
|
1268
|
+
* @param {String/Element} e Element ID or element object to get outer HTML from.
|
1269
|
+
* @return {String} Outer HTML string.
|
1270
|
+
*/
|
1271
|
+
getOuterHTML : function(e) {
|
1272
|
+
var d;
|
1273
|
+
|
1274
|
+
e = this.get(e);
|
1275
|
+
|
1276
|
+
if (!e)
|
1277
|
+
return null;
|
1278
|
+
|
1279
|
+
if (e.outerHTML !== undefined)
|
1280
|
+
return e.outerHTML;
|
1281
|
+
|
1282
|
+
d = (e.ownerDocument || this.doc).createElement("body");
|
1283
|
+
d.appendChild(e.cloneNode(true));
|
1284
|
+
|
1285
|
+
return d.innerHTML;
|
1286
|
+
},
|
1287
|
+
|
1288
|
+
/**
|
1289
|
+
* Sets the specified outer HTML on a element or elements.
|
1290
|
+
*
|
1291
|
+
* @param {Element/String/Array} e DOM element, element id string or array of elements/ids to set outer HTML on.
|
1292
|
+
* @param {Object} h HTML code to set as outer value for the element.
|
1293
|
+
* @param {Document} d Optional document scope to use in this process defaults to the document of the DOM class.
|
1294
|
+
*/
|
1295
|
+
setOuterHTML : function(e, h, d) {
|
1296
|
+
var t = this;
|
1297
|
+
|
1298
|
+
return this.run(e, function(e) {
|
1299
|
+
var n, tp;
|
1300
|
+
|
1301
|
+
e = t.get(e);
|
1302
|
+
d = d || e.ownerDocument || t.doc;
|
1303
|
+
|
1304
|
+
if (isIE && e.nodeType == 1)
|
1305
|
+
e.outerHTML = h;
|
1306
|
+
else {
|
1307
|
+
tp = d.createElement("body");
|
1308
|
+
tp.innerHTML = h;
|
1309
|
+
|
1310
|
+
n = tp.lastChild;
|
1311
|
+
while (n) {
|
1312
|
+
t.insertAfter(n.cloneNode(true), e);
|
1313
|
+
n = n.previousSibling;
|
1314
|
+
}
|
1315
|
+
|
1316
|
+
t.remove(e);
|
1317
|
+
}
|
1318
|
+
});
|
1319
|
+
},
|
1320
|
+
|
1321
|
+
/**
|
1322
|
+
* Entity decode a string, resolves any HTML entities like å.
|
1323
|
+
*
|
1324
|
+
* @param {String} s String to decode entities on.
|
1325
|
+
* @return {String} Entity decoded string.
|
1326
|
+
*/
|
1327
|
+
decode : function(s) {
|
1328
|
+
var e, n, v;
|
1329
|
+
|
1330
|
+
// Look for entities to decode
|
1331
|
+
if (/&[^;]+;/.test(s)) {
|
1332
|
+
// Decode the entities using a div element not super efficient but less code
|
1333
|
+
e = this.doc.createElement("div");
|
1334
|
+
e.innerHTML = s;
|
1335
|
+
n = e.firstChild;
|
1336
|
+
v = '';
|
1337
|
+
|
1338
|
+
if (n) {
|
1339
|
+
do {
|
1340
|
+
v += n.nodeValue;
|
1341
|
+
} while (n.nextSibling);
|
1342
|
+
}
|
1343
|
+
|
1344
|
+
return v || s;
|
1345
|
+
}
|
1346
|
+
|
1347
|
+
return s;
|
1348
|
+
},
|
1349
|
+
|
1350
|
+
/**
|
1351
|
+
* Entity encodes a string, encodes the most common entities <>"& into entities.
|
1352
|
+
*
|
1353
|
+
* @param {String} s String to encode with entities.
|
1354
|
+
* @return {String} Entity encoded string.
|
1355
|
+
*/
|
1356
|
+
encode : function(s) {
|
1357
|
+
return s ? ('' + s).replace(/[<>&\"]/g, function (c, b) {
|
1358
|
+
switch (c) {
|
1359
|
+
case '&':
|
1360
|
+
return '&';
|
1361
|
+
|
1362
|
+
case '"':
|
1363
|
+
return '"';
|
1364
|
+
|
1365
|
+
case '<':
|
1366
|
+
return '<';
|
1367
|
+
|
1368
|
+
case '>':
|
1369
|
+
return '>';
|
1370
|
+
}
|
1371
|
+
|
1372
|
+
return c;
|
1373
|
+
}) : s;
|
1374
|
+
},
|
1375
|
+
|
1376
|
+
/**
|
1377
|
+
* Inserts a element after the reference element.
|
1378
|
+
*
|
1379
|
+
* @param {Element} Element to insert after the reference.
|
1380
|
+
* @param {Element/String/Array} r Reference element, element id or array of elements to insert after.
|
1381
|
+
* @return {Element/Array} Element that got added or an array with elements.
|
1382
|
+
*/
|
1383
|
+
insertAfter : function(n, r) {
|
1384
|
+
var t = this;
|
1385
|
+
|
1386
|
+
r = t.get(r);
|
1387
|
+
|
1388
|
+
return this.run(n, function(n) {
|
1389
|
+
var p, ns;
|
1390
|
+
|
1391
|
+
p = r.parentNode;
|
1392
|
+
ns = r.nextSibling;
|
1393
|
+
|
1394
|
+
if (ns)
|
1395
|
+
p.insertBefore(n, ns);
|
1396
|
+
else
|
1397
|
+
p.appendChild(n);
|
1398
|
+
|
1399
|
+
return n;
|
1400
|
+
});
|
1401
|
+
},
|
1402
|
+
|
1403
|
+
/**
|
1404
|
+
* Returns true/false if the specified element is a block element or not.
|
1405
|
+
*
|
1406
|
+
* @param {Node} n Element/Node to check.
|
1407
|
+
* @return {bool} True/False state if the node is a block element or not.
|
1408
|
+
*/
|
1409
|
+
isBlock : function(n) {
|
1410
|
+
if (n.nodeType && n.nodeType !== 1)
|
1411
|
+
return false;
|
1412
|
+
|
1413
|
+
n = n.nodeName || n;
|
1414
|
+
|
1415
|
+
return /^(H[1-6]|HR|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TR|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP)$/.test(n);
|
1416
|
+
},
|
1417
|
+
|
1418
|
+
/**
|
1419
|
+
* Replaces the specified element or elements with the specified element, the new element will
|
1420
|
+
* be cloned if multiple inputs elements are passed.
|
1421
|
+
*
|
1422
|
+
* @param {Element} n New element to replace old ones with.
|
1423
|
+
* @param {Element/String/Array} o Element DOM node, element id or array of elements or ids to replace.
|
1424
|
+
* @param {bool} k Optional keep children state, if set to true child nodes from the old object will be added to new ones.
|
1425
|
+
*/
|
1426
|
+
replace : function(n, o, k) {
|
1427
|
+
var t = this;
|
1428
|
+
|
1429
|
+
if (is(o, 'array'))
|
1430
|
+
n = n.cloneNode(true);
|
1431
|
+
|
1432
|
+
return t.run(o, function(o) {
|
1433
|
+
if (k) {
|
1434
|
+
each(o.childNodes, function(c) {
|
1435
|
+
n.appendChild(c.cloneNode(true));
|
1436
|
+
});
|
1437
|
+
}
|
1438
|
+
|
1439
|
+
// Fix IE psuedo leak for elements since replacing elements if fairly common
|
1440
|
+
// Will break parentNode for some unknown reason
|
1441
|
+
if (t.fixPsuedoLeaks && o.nodeType === 1) {
|
1442
|
+
o.parentNode.insertBefore(n, o);
|
1443
|
+
t.remove(o);
|
1444
|
+
return n;
|
1445
|
+
}
|
1446
|
+
|
1447
|
+
return o.parentNode.replaceChild(n, o);
|
1448
|
+
});
|
1449
|
+
},
|
1450
|
+
|
1451
|
+
/**
|
1452
|
+
* Find the common ancestor of two elements. This is a shorter method than using the DOM Range logic.
|
1453
|
+
*
|
1454
|
+
* @param {Element} a Element to find common ancestor of.
|
1455
|
+
* @param {Element} b Element to find common ancestor of.
|
1456
|
+
* @return {Element} Common ancestor element of the two input elements.
|
1457
|
+
*/
|
1458
|
+
findCommonAncestor : function(a, b) {
|
1459
|
+
var ps = a, pe;
|
1460
|
+
|
1461
|
+
while (ps) {
|
1462
|
+
pe = b;
|
1463
|
+
|
1464
|
+
while (pe && ps != pe)
|
1465
|
+
pe = pe.parentNode;
|
1466
|
+
|
1467
|
+
if (ps == pe)
|
1468
|
+
break;
|
1469
|
+
|
1470
|
+
ps = ps.parentNode;
|
1471
|
+
}
|
1472
|
+
|
1473
|
+
if (!ps && a.ownerDocument)
|
1474
|
+
return a.ownerDocument.documentElement;
|
1475
|
+
|
1476
|
+
return ps;
|
1477
|
+
},
|
1478
|
+
|
1479
|
+
/**
|
1480
|
+
* Parses the specified RGB color value and returns a hex version of that color.
|
1481
|
+
*
|
1482
|
+
* @param {String} s RGB string value like rgb(1,2,3)
|
1483
|
+
* @return {String} Hex version of that RGB value like #FF00FF.
|
1484
|
+
*/
|
1485
|
+
toHex : function(s) {
|
1486
|
+
var c = /^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(s);
|
1487
|
+
|
1488
|
+
function hex(s) {
|
1489
|
+
s = parseInt(s).toString(16);
|
1490
|
+
|
1491
|
+
return s.length > 1 ? s : '0' + s; // 0 -> 00
|
1492
|
+
};
|
1493
|
+
|
1494
|
+
if (c) {
|
1495
|
+
s = '#' + hex(c[1]) + hex(c[2]) + hex(c[3]);
|
1496
|
+
|
1497
|
+
return s;
|
1498
|
+
}
|
1499
|
+
|
1500
|
+
return s;
|
1501
|
+
},
|
1502
|
+
|
1503
|
+
/**
|
1504
|
+
* Returns a array of all single CSS classes in the document. A single CSS class is a simple
|
1505
|
+
* rule like ".class" complex ones like "div td.class" will not be added to output.
|
1506
|
+
*
|
1507
|
+
* @return {Array} Array with class objects each object has a class field might be other fields in the future.
|
1508
|
+
*/
|
1509
|
+
getClasses : function() {
|
1510
|
+
var t = this, cl = [], i, lo = {}, f = t.settings.class_filter, ov;
|
1511
|
+
|
1512
|
+
if (t.classes)
|
1513
|
+
return t.classes;
|
1514
|
+
|
1515
|
+
function addClasses(s) {
|
1516
|
+
// IE style imports
|
1517
|
+
each(s.imports, function(r) {
|
1518
|
+
addClasses(r);
|
1519
|
+
});
|
1520
|
+
|
1521
|
+
each(s.cssRules || s.rules, function(r) {
|
1522
|
+
// Real type or fake it on IE
|
1523
|
+
switch (r.type || 1) {
|
1524
|
+
// Rule
|
1525
|
+
case 1:
|
1526
|
+
if (r.selectorText) {
|
1527
|
+
each(r.selectorText.split(','), function(v) {
|
1528
|
+
v = v.replace(/^\s*|\s*$|^\s\./g, "");
|
1529
|
+
|
1530
|
+
// Is internal or it doesn't contain a class
|
1531
|
+
if (/\.mce/.test(v) || !/\.[\w\-]+$/.test(v))
|
1532
|
+
return;
|
1533
|
+
|
1534
|
+
// Remove everything but class name
|
1535
|
+
ov = v;
|
1536
|
+
v = v.replace(/.*\.([a-z0-9_\-]+).*/i, '$1');
|
1537
|
+
|
1538
|
+
// Filter classes
|
1539
|
+
if (f && !(v = f(v, ov)))
|
1540
|
+
return;
|
1541
|
+
|
1542
|
+
if (!lo[v]) {
|
1543
|
+
cl.push({'class' : v});
|
1544
|
+
lo[v] = 1;
|
1545
|
+
}
|
1546
|
+
});
|
1547
|
+
}
|
1548
|
+
break;
|
1549
|
+
|
1550
|
+
// Import
|
1551
|
+
case 3:
|
1552
|
+
addClasses(r.styleSheet);
|
1553
|
+
break;
|
1554
|
+
}
|
1555
|
+
});
|
1556
|
+
};
|
1557
|
+
|
1558
|
+
try {
|
1559
|
+
each(t.doc.styleSheets, addClasses);
|
1560
|
+
} catch (ex) {
|
1561
|
+
// Ignore
|
1562
|
+
}
|
1563
|
+
|
1564
|
+
if (cl.length > 0)
|
1565
|
+
t.classes = cl;
|
1566
|
+
|
1567
|
+
return cl;
|
1568
|
+
},
|
1569
|
+
|
1570
|
+
/**
|
1571
|
+
* Executes the specified function on the element by id or dom element node or array of elements/id.
|
1572
|
+
*
|
1573
|
+
* @param {String/Element/Array} Element ID or DOM element object or array with ids or elements.
|
1574
|
+
* @param {function} f Function to execute for each item.
|
1575
|
+
* @param {Object} s Optional scope to execute the function in.
|
1576
|
+
* @return {Object/Array} Single object or array with objects depending on multiple input or not.
|
1577
|
+
*/
|
1578
|
+
run : function(e, f, s) {
|
1579
|
+
var t = this, o;
|
1580
|
+
|
1581
|
+
if (t.doc && typeof(e) === 'string')
|
1582
|
+
e = t.get(e);
|
1583
|
+
|
1584
|
+
if (!e)
|
1585
|
+
return false;
|
1586
|
+
|
1587
|
+
s = s || this;
|
1588
|
+
if (!e.nodeType && (e.length || e.length === 0)) {
|
1589
|
+
o = [];
|
1590
|
+
|
1591
|
+
each(e, function(e, i) {
|
1592
|
+
if (e) {
|
1593
|
+
if (typeof(e) == 'string')
|
1594
|
+
e = t.doc.getElementById(e);
|
1595
|
+
|
1596
|
+
o.push(f.call(s, e, i));
|
1597
|
+
}
|
1598
|
+
});
|
1599
|
+
|
1600
|
+
return o;
|
1601
|
+
}
|
1602
|
+
|
1603
|
+
return f.call(s, e);
|
1604
|
+
},
|
1605
|
+
|
1606
|
+
/**
|
1607
|
+
* Returns an NodeList with attributes for the element.
|
1608
|
+
*
|
1609
|
+
* @param {HTMLElement/string} n Element node or string id to get attributes from.
|
1610
|
+
* @return {NodeList} NodeList with attributes.
|
1611
|
+
*/
|
1612
|
+
getAttribs : function(n) {
|
1613
|
+
var o;
|
1614
|
+
|
1615
|
+
n = this.get(n);
|
1616
|
+
|
1617
|
+
if (!n)
|
1618
|
+
return [];
|
1619
|
+
|
1620
|
+
if (isIE) {
|
1621
|
+
o = [];
|
1622
|
+
|
1623
|
+
// Object will throw exception in IE
|
1624
|
+
if (n.nodeName == 'OBJECT')
|
1625
|
+
return n.attributes;
|
1626
|
+
|
1627
|
+
// It's crazy that this is faster in IE but it's because it returns all attributes all the time
|
1628
|
+
n.cloneNode(false).outerHTML.replace(/([a-z0-9\:\-_]+)=/gi, function(a, b) {
|
1629
|
+
o.push({specified : 1, nodeName : b});
|
1630
|
+
});
|
1631
|
+
|
1632
|
+
return o;
|
1633
|
+
}
|
1634
|
+
|
1635
|
+
return n.attributes;
|
1636
|
+
},
|
1637
|
+
|
1638
|
+
/**
|
1639
|
+
* Destroys all internal references to the DOM to solve IE leak issues.
|
1640
|
+
*/
|
1641
|
+
destroy : function(s) {
|
1642
|
+
var t = this;
|
1643
|
+
|
1644
|
+
if (t.events)
|
1645
|
+
t.events.destroy();
|
1646
|
+
|
1647
|
+
t.win = t.doc = t.root = t.events = null;
|
1648
|
+
|
1649
|
+
// Manual destroy then remove unload handler
|
1650
|
+
if (!s)
|
1651
|
+
tinymce.removeUnload(t.destroy);
|
1652
|
+
},
|
1653
|
+
|
1654
|
+
/**
|
1655
|
+
* Created a new DOM Range object. This will use the native DOM Range API if it's
|
1656
|
+
* available if it's not it will fallback to the custom TinyMCE implementation.
|
1657
|
+
*
|
1658
|
+
* @return {DOMRange} DOM Range object.
|
1659
|
+
*/
|
1660
|
+
createRng : function() {
|
1661
|
+
var d = this.doc;
|
1662
|
+
|
1663
|
+
return d.createRange ? d.createRange() : new tinymce.dom.Range(this);
|
1664
|
+
},
|
1665
|
+
|
1666
|
+
/**
|
1667
|
+
* Splits an element into two new elements and places the specified split
|
1668
|
+
* element or element between the new ones. For example splitting the paragraph at the bold element in
|
1669
|
+
* this example <p>abc<b>abc</b>123</p> would produce <p>abc</p><b>abc</b><p>123</p>.
|
1670
|
+
*
|
1671
|
+
* @param {Element} pe Parent element to split.
|
1672
|
+
* @param {Element} e Element to split at.
|
1673
|
+
* @param {Element} re Optional replacement element to replace the split element by.
|
1674
|
+
* @return {Element} Returns the split element or the replacement element if that is specified.
|
1675
|
+
*/
|
1676
|
+
split : function(pe, e, re) {
|
1677
|
+
var t = this, r = t.createRng(), bef, aft, pa;
|
1678
|
+
|
1679
|
+
// W3C valid browsers tend to leave empty nodes to the left/right side of the contents, this makes sence
|
1680
|
+
// but we don't want that in our code since it serves no purpose
|
1681
|
+
// For example if this is chopped:
|
1682
|
+
// <p>text 1<span><b>CHOP</b></span>text 2</p>
|
1683
|
+
// would produce:
|
1684
|
+
// <p>text 1<span></span></p><b>CHOP</b><p><span></span>text 2</p>
|
1685
|
+
// this function will then trim of empty edges and produce:
|
1686
|
+
// <p>text 1</p><b>CHOP</b><p>text 2</p>
|
1687
|
+
function trimEdge(n, na) {
|
1688
|
+
n = n[na];
|
1689
|
+
|
1690
|
+
if (n && n[na] && n[na].nodeType == 1 && isEmpty(n[na]))
|
1691
|
+
t.remove(n[na]);
|
1692
|
+
};
|
1693
|
+
|
1694
|
+
function isEmpty(n) {
|
1695
|
+
n = t.getOuterHTML(n);
|
1696
|
+
n = n.replace(/<(img|hr|table)/gi, '-'); // Keep these convert them to - chars
|
1697
|
+
n = n.replace(/<[^>]+>/g, ''); // Remove all tags
|
1698
|
+
|
1699
|
+
return n.replace(/[ \t\r\n]+| | /g, '') == '';
|
1700
|
+
};
|
1701
|
+
|
1702
|
+
if (pe && e) {
|
1703
|
+
// Get before chunk
|
1704
|
+
r.setStartBefore(pe);
|
1705
|
+
r.setEndBefore(e);
|
1706
|
+
bef = r.extractContents();
|
1707
|
+
|
1708
|
+
// Get after chunk
|
1709
|
+
r = t.createRng();
|
1710
|
+
r.setStartAfter(e);
|
1711
|
+
r.setEndAfter(pe);
|
1712
|
+
aft = r.extractContents();
|
1713
|
+
|
1714
|
+
// Insert chunks and remove parent
|
1715
|
+
pa = pe.parentNode;
|
1716
|
+
|
1717
|
+
// Remove right side edge of the before contents
|
1718
|
+
trimEdge(bef, 'lastChild');
|
1719
|
+
|
1720
|
+
if (!isEmpty(bef))
|
1721
|
+
pa.insertBefore(bef, pe);
|
1722
|
+
|
1723
|
+
if (re)
|
1724
|
+
pa.replaceChild(re, e);
|
1725
|
+
else
|
1726
|
+
pa.insertBefore(e, pe);
|
1727
|
+
|
1728
|
+
// Remove left site edge of the after contents
|
1729
|
+
trimEdge(aft, 'firstChild');
|
1730
|
+
|
1731
|
+
if (!isEmpty(aft))
|
1732
|
+
pa.insertBefore(aft, pe);
|
1733
|
+
|
1734
|
+
t.remove(pe);
|
1735
|
+
|
1736
|
+
return re || e;
|
1737
|
+
}
|
1738
|
+
},
|
1739
|
+
|
1740
|
+
/**
|
1741
|
+
* Adds an event handler to the specified object.
|
1742
|
+
*
|
1743
|
+
* @param {Element/Document/Window/Array/String} o Object or element id string to add event handler to or an array of elements/ids/documents.
|
1744
|
+
* @param {String} n Name of event handler to add for example: click.
|
1745
|
+
* @param {function} f Function to execute when the event occurs.
|
1746
|
+
* @param {Object} s Optional scope to execute the function in.
|
1747
|
+
* @return {function} Function callback handler the same as the one passed in.
|
1748
|
+
*/
|
1749
|
+
bind : function(target, name, func, scope) {
|
1750
|
+
var t = this;
|
1751
|
+
|
1752
|
+
if (!t.events)
|
1753
|
+
t.events = new tinymce.dom.EventUtils();
|
1754
|
+
|
1755
|
+
return t.events.add(target, name, func, scope || this);
|
1756
|
+
},
|
1757
|
+
|
1758
|
+
/**
|
1759
|
+
* Removes the specified event handler by name and function from a element or collection of elements.
|
1760
|
+
*
|
1761
|
+
* @param {String/Element/Array} o Element ID string or HTML element or an array of elements or ids to remove handler from.
|
1762
|
+
* @param {String} n Event handler name like for example: "click"
|
1763
|
+
* @param {function} f Function to remove.
|
1764
|
+
* @return {bool/Array} Bool state if true if the handler was removed or an array with states if multiple elements where passed in.
|
1765
|
+
*/
|
1766
|
+
unbind : function(target, name, func) {
|
1767
|
+
var t = this;
|
1768
|
+
|
1769
|
+
if (!t.events)
|
1770
|
+
t.events = new tinymce.dom.EventUtils();
|
1771
|
+
|
1772
|
+
return t.events.remove(target, name, func);
|
1773
|
+
},
|
1774
|
+
|
1775
|
+
// #ifdef debug
|
1776
|
+
|
1777
|
+
dumpRng : function(r) {
|
1778
|
+
return 'startContainer: ' + r.startContainer.nodeName + ', startOffset: ' + r.startOffset + ', endContainer: ' + r.endContainer.nodeName + ', endOffset: ' + r.endOffset;
|
1779
|
+
},
|
1780
|
+
|
1781
|
+
// #endif
|
1782
|
+
|
1783
|
+
_isRes : function(c) {
|
1784
|
+
// Is live resizble element
|
1785
|
+
return /^(top|left|bottom|right|width|height)/i.test(c) || /;\s*(top|left|bottom|right|width|height)/i.test(c);
|
1786
|
+
}
|
1787
|
+
|
1788
|
+
/*
|
1789
|
+
walk : function(n, f, s) {
|
1790
|
+
var d = this.doc, w;
|
1791
|
+
|
1792
|
+
if (d.createTreeWalker) {
|
1793
|
+
w = d.createTreeWalker(n, NodeFilter.SHOW_TEXT, null, false);
|
1794
|
+
|
1795
|
+
while ((n = w.nextNode()) != null)
|
1796
|
+
f.call(s || this, n);
|
1797
|
+
} else
|
1798
|
+
tinymce.walk(n, f, 'childNodes', s);
|
1799
|
+
}
|
1800
|
+
*/
|
1801
|
+
|
1802
|
+
/*
|
1803
|
+
toRGB : function(s) {
|
1804
|
+
var c = /^\s*?#([0-9A-F]{2})([0-9A-F]{1,2})([0-9A-F]{2})?\s*?$/.exec(s);
|
1805
|
+
|
1806
|
+
if (c) {
|
1807
|
+
// #FFF -> #FFFFFF
|
1808
|
+
if (!is(c[3]))
|
1809
|
+
c[3] = c[2] = c[1];
|
1810
|
+
|
1811
|
+
return "rgb(" + parseInt(c[1], 16) + "," + parseInt(c[2], 16) + "," + parseInt(c[3], 16) + ")";
|
1812
|
+
}
|
1813
|
+
|
1814
|
+
return s;
|
1815
|
+
}
|
1816
|
+
*/
|
1817
|
+
|
1818
|
+
/**#@-*/
|
1819
|
+
});
|
1820
|
+
|
1821
|
+
// Setup page DOM
|
1822
|
+
tinymce.DOM = new tinymce.dom.DOMUtils(document, {process_html : 0});
|
1823
|
+
})(tinymce);
|